aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/Kconfig3
-rw-r--r--arch/alpha/Kconfig1
-rw-r--r--arch/alpha/include/asm/Kbuild1
-rw-r--r--arch/alpha/include/asm/bug.h17
-rw-r--r--arch/alpha/include/asm/byteorder.h1
-rw-r--r--arch/alpha/include/asm/dma-mapping.h2
-rw-r--r--arch/alpha/include/asm/machvec.h4
-rw-r--r--arch/alpha/include/asm/pgalloc.h7
-rw-r--r--arch/alpha/include/asm/rtc.h12
-rw-r--r--arch/alpha/include/asm/statfs.h2
-rw-r--r--arch/alpha/include/asm/swab.h2
-rw-r--r--arch/alpha/kernel/.gitignore1
-rw-r--r--arch/alpha/kernel/core_marvel.c10
-rw-r--r--arch/alpha/kernel/entry.S10
-rw-r--r--arch/alpha/kernel/irq.c2
-rw-r--r--arch/alpha/kernel/irq_srm.c2
-rw-r--r--arch/alpha/kernel/machvec_impl.h5
-rw-r--r--arch/alpha/kernel/osf_sys.c113
-rw-r--r--arch/alpha/kernel/pci-noop.c3
-rw-r--r--arch/alpha/kernel/process.c8
-rw-r--r--arch/alpha/kernel/proto.h2
-rw-r--r--arch/alpha/kernel/signal.c18
-rw-r--r--arch/alpha/kernel/smp.c11
-rw-r--r--arch/alpha/kernel/sys_jensen.c2
-rw-r--r--arch/alpha/kernel/sys_marvel.c56
-rw-r--r--arch/alpha/kernel/sys_nautilus.c4
-rw-r--r--arch/alpha/kernel/systbls.S54
-rw-r--r--arch/alpha/kernel/time.c10
-rw-r--r--arch/alpha/mm/init.c7
-rw-r--r--arch/arm/common/clkdev.c25
-rw-r--r--arch/arm/configs/afeb9260_defconfig6
-rw-r--r--arch/arm/configs/ams_delta_defconfig2
-rw-r--r--arch/arm/configs/at91cap9adk_defconfig4
-rw-r--r--arch/arm/configs/at91rm9200dk_defconfig2
-rw-r--r--arch/arm/configs/at91rm9200ek_defconfig2
-rw-r--r--arch/arm/configs/at91sam9260ek_defconfig4
-rw-r--r--arch/arm/configs/at91sam9261ek_defconfig6
-rw-r--r--arch/arm/configs/at91sam9263ek_defconfig6
-rw-r--r--arch/arm/configs/at91sam9g20ek_defconfig2
-rw-r--r--arch/arm/configs/at91sam9rlek_defconfig6
-rw-r--r--arch/arm/configs/ateb9200_defconfig2
-rw-r--r--arch/arm/configs/badge4_defconfig2
-rw-r--r--arch/arm/configs/cam60_defconfig4
-rw-r--r--arch/arm/configs/cm_x300_defconfig4
-rw-r--r--arch/arm/configs/colibri_defconfig2
-rw-r--r--arch/arm/configs/corgi_defconfig6
-rw-r--r--arch/arm/configs/csb337_defconfig2
-rw-r--r--arch/arm/configs/csb637_defconfig2
-rw-r--r--arch/arm/configs/ecbat91_defconfig4
-rw-r--r--arch/arm/configs/ep93xx_defconfig2
-rw-r--r--arch/arm/configs/ezx_defconfig4
-rw-r--r--arch/arm/configs/footbridge_defconfig2
-rw-r--r--arch/arm/configs/iop13xx_defconfig2
-rw-r--r--arch/arm/configs/iop32x_defconfig2
-rw-r--r--arch/arm/configs/iop33x_defconfig2
-rw-r--r--arch/arm/configs/ixp2000_defconfig2
-rw-r--r--arch/arm/configs/ixp23xx_defconfig2
-rw-r--r--arch/arm/configs/ixp4xx_defconfig2
-rw-r--r--arch/arm/configs/kafa_defconfig2
-rw-r--r--arch/arm/configs/kirkwood_defconfig6
-rw-r--r--arch/arm/configs/loki_defconfig4
-rw-r--r--arch/arm/configs/magician_defconfig2
-rw-r--r--arch/arm/configs/msm_defconfig2
-rw-r--r--arch/arm/configs/mv78xx0_defconfig2
-rw-r--r--arch/arm/configs/n770_defconfig4
-rw-r--r--arch/arm/configs/neocore926_defconfig6
-rw-r--r--arch/arm/configs/neponset_defconfig2
-rw-r--r--arch/arm/configs/omap3_beagle_defconfig4
-rw-r--r--arch/arm/configs/omap3_pandora_defconfig6
-rw-r--r--arch/arm/configs/omap_2430sdp_defconfig4
-rw-r--r--arch/arm/configs/omap_apollon_2420_defconfig2
-rw-r--r--arch/arm/configs/omap_generic_1510_defconfig2
-rw-r--r--arch/arm/configs/omap_generic_1610_defconfig2
-rw-r--r--arch/arm/configs/omap_h2_1610_defconfig4
-rw-r--r--arch/arm/configs/omap_h4_2420_defconfig2
-rw-r--r--arch/arm/configs/omap_innovator_1510_defconfig2
-rw-r--r--arch/arm/configs/omap_ldp_defconfig6
-rw-r--r--arch/arm/configs/omap_osk_5912_defconfig2
-rw-r--r--arch/arm/configs/onearm_defconfig2
-rw-r--r--arch/arm/configs/orion5x_defconfig4
-rw-r--r--arch/arm/configs/overo_defconfig6
-rw-r--r--arch/arm/configs/palmz71_defconfig2
-rw-r--r--arch/arm/configs/palmz72_defconfig6
-rw-r--r--arch/arm/configs/pcm027_defconfig2
-rw-r--r--arch/arm/configs/pcm038_defconfig4
-rw-r--r--arch/arm/configs/picotux200_defconfig2
-rw-r--r--arch/arm/configs/pnx4008_defconfig2
-rw-r--r--arch/arm/configs/qil-a9260_defconfig6
-rw-r--r--arch/arm/configs/rpc_defconfig2
-rw-r--r--arch/arm/configs/s3c2410_defconfig4
-rw-r--r--arch/arm/configs/s3c6400_defconfig4
-rw-r--r--arch/arm/configs/spitz_defconfig6
-rw-r--r--arch/arm/configs/sx1_defconfig2
-rw-r--r--arch/arm/configs/trizeps4_defconfig2
-rw-r--r--arch/arm/configs/usb-a9260_defconfig2
-rw-r--r--arch/arm/configs/usb-a9263_defconfig2
-rw-r--r--arch/arm/configs/versatile_defconfig2
-rw-r--r--arch/arm/configs/viper_defconfig4
-rw-r--r--arch/arm/configs/xm_x2xx_defconfig4
-rw-r--r--arch/arm/configs/yl9200_defconfig2
-rw-r--r--arch/arm/include/asm/Kbuild1
-rw-r--r--arch/arm/include/asm/a.out.h2
-rw-r--r--arch/arm/include/asm/byteorder.h2
-rw-r--r--arch/arm/include/asm/setup.h2
-rw-r--r--arch/arm/include/asm/swab.h2
-rw-r--r--arch/arm/kernel/calls.S2
-rw-r--r--arch/arm/kernel/elf.c4
-rw-r--r--arch/arm/kernel/entry-armv.S1
-rw-r--r--arch/arm/kernel/entry-common.S2
-rw-r--r--arch/arm/kernel/irq.c20
-rw-r--r--arch/arm/kernel/machine_kexec.c4
-rw-r--r--arch/arm/kernel/vmlinux.lds.S1
-rw-r--r--arch/arm/mach-at91/at91cap9_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam9260_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam9261_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam9263_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam9rl_devices.c2
-rw-r--r--arch/arm/mach-at91/gpio.c15
-rw-r--r--arch/arm/mach-at91/include/mach/board.h1
-rw-r--r--arch/arm/mach-davinci/board-evm.c6
-rw-r--r--arch/arm/mach-davinci/clock.c5
-rw-r--r--arch/arm/mach-davinci/usb.c25
-rw-r--r--arch/arm/mach-ep93xx/include/mach/gesbc9312.h3
-rw-r--r--arch/arm/mach-ep93xx/include/mach/hardware.h1
-rw-r--r--arch/arm/mach-imx/clock.c2
-rw-r--r--arch/arm/mach-imx/generic.c6
-rw-r--r--arch/arm/mach-imx/include/mach/imx-regs.h106
-rw-r--r--arch/arm/mach-integrator/clock.h0
-rw-r--r--arch/arm/mach-kirkwood/irq.c2
-rw-r--r--arch/arm/mach-msm/board-halibut.c1
-rw-r--r--arch/arm/mach-mv78xx0/irq.c2
-rw-r--r--arch/arm/mach-omap1/board-h2.c45
-rw-r--r--arch/arm/mach-omap1/board-h3.c50
-rw-r--r--arch/arm/mach-omap1/board-innovator.c39
-rw-r--r--arch/arm/mach-omap1/board-nokia770.c8
-rw-r--r--arch/arm/mach-omap1/board-osk.c43
-rw-r--r--arch/arm/mach-omap1/board-palmte.c29
-rw-r--r--arch/arm/mach-omap1/board-palmtt.c41
-rw-r--r--arch/arm/mach-omap1/board-palmz71.c37
-rw-r--r--arch/arm/mach-omap1/board-sx1.c39
-rw-r--r--arch/arm/mach-omap1/board-voiceblue.c1
-rw-r--r--arch/arm/mach-omap1/devices.c2
-rw-r--r--arch/arm/mach-omap1/mcbsp.c99
-rw-r--r--arch/arm/mach-omap2/board-apollon.c64
-rw-r--r--arch/arm/mach-omap2/board-ldp.c2
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c9
-rw-r--r--arch/arm/mach-omap2/clock.c16
-rw-r--r--arch/arm/mach-omap2/devices.c11
-rw-r--r--arch/arm/mach-omap2/id.c6
-rw-r--r--arch/arm/mach-omap2/irq.c1
-rw-r--r--arch/arm/mach-omap2/mcbsp.c146
-rw-r--r--arch/arm/mach-omap2/sleep24xx.S3
-rw-r--r--arch/arm/mach-omap2/timer-gp.c3
-rw-r--r--arch/arm/mach-orion5x/irq.c2
-rw-r--r--arch/arm/mach-pxa/dma.c18
-rw-r--r--arch/arm/mach-pxa/include/mach/regs-ac97.h2
-rw-r--r--arch/arm/mach-pxa/include/mach/regs-ssp.h3
-rw-r--r--arch/arm/mach-pxa/pxa300.c4
-rw-r--r--arch/arm/mach-pxa/pxa320.c2
-rw-r--r--arch/arm/mach-rpc/riscpc.c6
-rw-r--r--arch/arm/mach-sa1100/generic.c2
-rw-r--r--arch/arm/mach-w90x900/mach-w90p910evb.c1
-rw-r--r--arch/arm/mach-w90x900/time.c1
-rw-r--r--arch/arm/mm/copypage-v4mc.c2
-rw-r--r--arch/arm/mm/fault-armv.c5
-rw-r--r--arch/arm/mm/ioremap.c11
-rw-r--r--arch/arm/mm/mmu.c3
-rw-r--r--arch/arm/mm/proc-syms.c1
-rw-r--r--arch/arm/oprofile/op_model_mpcore.c2
-rw-r--r--arch/arm/plat-mxc/include/mach/ipu.h181
-rw-r--r--arch/arm/plat-mxc/include/mach/irqs.h10
-rw-r--r--arch/arm/plat-mxc/include/mach/mmc.h36
-rw-r--r--arch/arm/plat-mxc/include/mach/mx3fb.h38
-rw-r--r--arch/arm/plat-omap/devices.c7
-rw-r--r--arch/arm/plat-omap/dma.c16
-rw-r--r--arch/arm/plat-omap/gpio.c3
-rw-r--r--arch/arm/plat-omap/include/mach/aic23.h116
-rw-r--r--arch/arm/plat-omap/include/mach/board-h3.h4
-rw-r--r--arch/arm/plat-omap/include/mach/cpu.h1
-rw-r--r--arch/arm/plat-omap/include/mach/gpio.h10
-rw-r--r--arch/arm/plat-omap/include/mach/mcbsp.h17
-rw-r--r--arch/arm/plat-omap/include/mach/mmc.h10
-rw-r--r--arch/arm/plat-omap/mcbsp.c56
-rw-r--r--arch/arm/plat-omap/usb.c14
-rw-r--r--arch/arm/plat-orion/gpio.c73
-rw-r--r--arch/arm/plat-orion/include/plat/gpio.h3
-rw-r--r--arch/avr32/configs/atngw100_defconfig6
-rw-r--r--arch/avr32/configs/atngw100_evklcd100_defconfig4
-rw-r--r--arch/avr32/configs/atngw100_evklcd101_defconfig4
-rw-r--r--arch/avr32/configs/atstk1002_defconfig6
-rw-r--r--arch/avr32/configs/atstk1003_defconfig6
-rw-r--r--arch/avr32/configs/atstk1004_defconfig2
-rw-r--r--arch/avr32/configs/atstk1006_defconfig6
-rw-r--r--arch/avr32/configs/favr-32_defconfig6
-rw-r--r--arch/avr32/configs/hammerhead_defconfig6
-rw-r--r--arch/avr32/configs/mimc200_defconfig6
-rw-r--r--arch/avr32/include/asm/Kbuild1
-rw-r--r--arch/avr32/include/asm/byteorder.h1
-rw-r--r--arch/avr32/include/asm/swab.h2
-rw-r--r--arch/avr32/mach-at32ap/include/mach/board.h1
-rw-r--r--arch/blackfin/Kconfig52
-rw-r--r--arch/blackfin/Makefile106
-rw-r--r--arch/blackfin/configs/BF518F-EZBRD_defconfig13
-rw-r--r--arch/blackfin/configs/BF526-EZBRD_defconfig8
-rw-r--r--arch/blackfin/configs/BF527-EZKIT_defconfig8
-rw-r--r--arch/blackfin/configs/BF533-EZKIT_defconfig4
-rw-r--r--arch/blackfin/configs/BF533-STAMP_defconfig8
-rw-r--r--arch/blackfin/configs/BF537-STAMP_defconfig8
-rw-r--r--arch/blackfin/configs/BF538-EZKIT_defconfig8
-rw-r--r--arch/blackfin/configs/BF548-EZKIT_defconfig8
-rw-r--r--arch/blackfin/configs/BF561-EZKIT_defconfig4
-rw-r--r--arch/blackfin/configs/BlackStamp_defconfig4
-rw-r--r--arch/blackfin/configs/CM-BF527_defconfig441
-rw-r--r--arch/blackfin/configs/CM-BF548_defconfig4
-rw-r--r--arch/blackfin/configs/H8606_defconfig2
-rw-r--r--arch/blackfin/configs/IP0X_defconfig2
-rw-r--r--arch/blackfin/configs/PNAV-10_defconfig6
-rw-r--r--arch/blackfin/configs/SRV1_defconfig4
-rw-r--r--arch/blackfin/configs/TCM-BF537_defconfig2
-rw-r--r--arch/blackfin/include/asm/Kbuild1
-rw-r--r--arch/blackfin/include/asm/byteorder.h1
-rw-r--r--arch/blackfin/include/asm/checksum.h34
-rw-r--r--arch/blackfin/include/asm/delay.h35
-rw-r--r--arch/blackfin/include/asm/gpio.h58
-rw-r--r--arch/blackfin/include/asm/kgdb.h53
-rw-r--r--arch/blackfin/include/asm/mem_init.h2
-rw-r--r--arch/blackfin/include/asm/pda.h1
-rw-r--r--arch/blackfin/include/asm/reboot.h2
-rw-r--r--arch/blackfin/include/asm/swab.h2
-rw-r--r--arch/blackfin/kernel/Makefile2
-rw-r--r--arch/blackfin/kernel/bfin_dma_5xx.c7
-rw-r--r--arch/blackfin/kernel/bfin_gpio.c578
-rw-r--r--arch/blackfin/kernel/cplb-mpu/cplbinit.c4
-rw-r--r--arch/blackfin/kernel/cplb-nompu/cplbmgr.c12
-rw-r--r--arch/blackfin/kernel/irqchip.c13
-rw-r--r--arch/blackfin/kernel/reboot.c30
-rw-r--r--arch/blackfin/kernel/setup.c12
-rw-r--r--arch/blackfin/kernel/traps.c39
-rw-r--r--arch/blackfin/mach-bf518/boards/ezbrd.c59
-rw-r--r--arch/blackfin/mach-bf518/include/mach/portmux.h2
-rw-r--r--arch/blackfin/mach-bf527/boards/cm_bf527.c18
-rw-r--r--arch/blackfin/mach-bf527/boards/ezbrd.c18
-rw-r--r--arch/blackfin/mach-bf527/boards/ezkit.c18
-rw-r--r--arch/blackfin/mach-bf527/include/mach/portmux.h2
-rw-r--r--arch/blackfin/mach-bf533/boards/blackstamp.c4
-rw-r--r--arch/blackfin/mach-bf533/boards/stamp.c4
-rw-r--r--arch/blackfin/mach-bf533/include/mach/portmux.h5
-rw-r--r--arch/blackfin/mach-bf537/boards/cm_bf537.c6
-rw-r--r--arch/blackfin/mach-bf537/boards/generic_board.c12
-rw-r--r--arch/blackfin/mach-bf537/boards/minotaur.c8
-rw-r--r--arch/blackfin/mach-bf537/boards/pnav10.c10
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c14
-rw-r--r--arch/blackfin/mach-bf537/boards/tcm_bf537.c10
-rw-r--r--arch/blackfin/mach-bf537/include/mach/portmux.h1
-rw-r--r--arch/blackfin/mach-bf538/include/mach/portmux.h1
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c4
-rw-r--r--arch/blackfin/mach-bf548/include/mach/anomaly.h1
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bf548.h12
-rw-r--r--arch/blackfin/mach-bf548/include/mach/gpio.h12
-rw-r--r--arch/blackfin/mach-bf548/include/mach/portmux.h1
-rw-r--r--arch/blackfin/mach-bf561/include/mach/defBF561.h2
-rw-r--r--arch/blackfin/mach-bf561/include/mach/portmux.h1
-rw-r--r--arch/blackfin/mach-common/clocks-init.c3
-rw-r--r--arch/blackfin/mach-common/entry.S9
-rw-r--r--arch/blackfin/mach-common/head.S84
-rw-r--r--arch/blackfin/mach-common/interrupt.S2
-rw-r--r--arch/blackfin/mach-common/ints-priority.c11
-rw-r--r--arch/blackfin/mach-common/pm.c11
-rw-r--r--arch/cris/arch-v10/kernel/entry.S2
-rw-r--r--arch/cris/arch-v32/kernel/entry.S2
-rw-r--r--arch/cris/include/arch-v10/arch/swab.h (renamed from arch/cris/include/arch-v10/arch/byteorder.h)16
-rw-r--r--arch/cris/include/arch-v32/arch/byteorder.h20
-rw-r--r--arch/cris/include/arch-v32/arch/swab.h24
-rw-r--r--arch/cris/include/asm/byteorder.h19
-rw-r--r--arch/cris/include/asm/swab.h8
-rw-r--r--arch/frv/mm/dma-alloc.c2
-rw-r--r--arch/h8300/include/asm/Kbuild1
-rw-r--r--arch/h8300/include/asm/byteorder.h1
-rw-r--r--arch/h8300/include/asm/swab.h2
-rw-r--r--arch/h8300/kernel/syscalls.S2
-rw-r--r--arch/ia64/Kconfig19
-rw-r--r--arch/ia64/configs/bigsur_defconfig2
-rw-r--r--arch/ia64/configs/generic_defconfig2
-rw-r--r--arch/ia64/configs/xen_domu_defconfig1601
-rw-r--r--arch/ia64/configs/zx1_defconfig2
-rw-r--r--arch/ia64/hp/common/sba_iommu.c12
-rw-r--r--arch/ia64/ia32/ia32_entry.S2
-rw-r--r--arch/ia64/include/asm/Kbuild1
-rw-r--r--arch/ia64/include/asm/byteorder.h1
-rw-r--r--arch/ia64/include/asm/dma-mapping.h2
-rw-r--r--arch/ia64/include/asm/fpu.h2
-rw-r--r--arch/ia64/include/asm/gcc_intrin.h1
-rw-r--r--arch/ia64/include/asm/intrinsics.h1
-rw-r--r--arch/ia64/include/asm/irq.h2
-rw-r--r--arch/ia64/include/asm/kvm.h7
-rw-r--r--arch/ia64/include/asm/machvec.h7
-rw-r--r--arch/ia64/include/asm/machvec_init.h1
-rw-r--r--arch/ia64/include/asm/machvec_sn2.h2
-rw-r--r--arch/ia64/include/asm/mmzone.h4
-rw-r--r--arch/ia64/include/asm/percpu.h4
-rw-r--r--arch/ia64/include/asm/sn/bte.h2
-rw-r--r--arch/ia64/include/asm/swab.h2
-rw-r--r--arch/ia64/include/asm/topology.h4
-rw-r--r--arch/ia64/include/asm/unistd.h2
-rw-r--r--arch/ia64/include/asm/uv/uv.h13
-rw-r--r--arch/ia64/kernel/acpi.c4
-rw-r--r--arch/ia64/kernel/entry.S2
-rw-r--r--arch/ia64/kernel/iosapic.c4
-rw-r--r--arch/ia64/kernel/irq.c17
-rw-r--r--arch/ia64/kernel/irq_ia64.c12
-rw-r--r--arch/ia64/kernel/kprobes.c2
-rw-r--r--arch/ia64/kernel/msi_ia64.c4
-rw-r--r--arch/ia64/kernel/smpboot.c5
-rw-r--r--arch/ia64/kernel/sys_ia64.c2
-rw-r--r--arch/ia64/kernel/unaligned.c6
-rw-r--r--arch/ia64/kernel/unwind.c2
-rw-r--r--arch/ia64/kernel/vmlinux.lds.S1
-rw-r--r--arch/ia64/kvm/kvm-ia64.c4
-rw-r--r--arch/ia64/kvm/process.c17
-rw-r--r--arch/ia64/mm/numa.c4
-rw-r--r--arch/ia64/pci/pci.c27
-rw-r--r--arch/ia64/sn/kernel/bte.c7
-rw-r--r--arch/ia64/sn/kernel/io_acpi_init.c2
-rw-r--r--arch/ia64/sn/kernel/io_init.c2
-rw-r--r--arch/ia64/sn/kernel/msi_sn.c2
-rw-r--r--arch/ia64/sn/pci/pci_dma.c6
-rw-r--r--arch/ia64/xen/Kconfig3
-rw-r--r--arch/ia64/xen/time.c4
-rw-r--r--arch/ia64/xen/xen_pv_ops.c4
-rw-r--r--arch/m32r/configs/m32104ut_defconfig2
-rw-r--r--arch/m68k/amiga/amiints.c12
-rw-r--r--arch/m68k/amiga/cia.c4
-rw-r--r--arch/m68k/amiga/config.c3
-rw-r--r--arch/m68k/apollo/config.c7
-rw-r--r--arch/m68k/atari/ataints.c16
-rw-r--r--arch/m68k/atari/atakeyb.c14
-rw-r--r--arch/m68k/atari/config.c2
-rw-r--r--arch/m68k/atari/debug.c22
-rw-r--r--arch/m68k/atari/stdma.c5
-rw-r--r--arch/m68k/atari/time.c13
-rw-r--r--arch/m68k/bvme6000/config.c1
-rw-r--r--arch/m68k/hp300/time.c3
-rw-r--r--arch/m68k/include/asm/Kbuild (renamed from arch/m68knommu/include/asm/Kbuild)3
-rw-r--r--arch/m68k/include/asm/MC68328.h (renamed from arch/m68knommu/include/asm/MC68328.h)0
-rw-r--r--arch/m68k/include/asm/MC68332.h (renamed from arch/m68knommu/include/asm/MC68332.h)0
-rw-r--r--arch/m68k/include/asm/MC68EZ328.h (renamed from arch/m68knommu/include/asm/MC68EZ328.h)0
-rw-r--r--arch/m68k/include/asm/MC68VZ328.h (renamed from arch/m68knommu/include/asm/MC68VZ328.h)0
-rw-r--r--arch/m68k/include/asm/a.out-core.h67
-rw-r--r--arch/m68k/include/asm/a.out.h20
-rw-r--r--arch/m68k/include/asm/adb_iop.h44
-rw-r--r--arch/m68k/include/asm/amigahw.h350
-rw-r--r--arch/m68k/include/asm/amigaints.h113
-rw-r--r--arch/m68k/include/asm/amigayle.h107
-rw-r--r--arch/m68k/include/asm/amipcmcia.h110
-rw-r--r--arch/m68k/include/asm/anchor.h (renamed from arch/m68knommu/include/asm/anchor.h)0
-rw-r--r--arch/m68k/include/asm/apollodma.h248
-rw-r--r--arch/m68k/include/asm/apollohw.h108
-rw-r--r--arch/m68k/include/asm/atafd.h12
-rw-r--r--arch/m68k/include/asm/atafdreg.h79
-rw-r--r--arch/m68k/include/asm/atari_joystick.h22
-rw-r--r--arch/m68k/include/asm/atari_stdma.h22
-rw-r--r--arch/m68k/include/asm/atari_stram.h17
-rw-r--r--arch/m68k/include/asm/atarihw.h807
-rw-r--r--arch/m68k/include/asm/atariints.h204
-rw-r--r--arch/m68k/include/asm/atarikb.h46
-rw-r--r--arch/m68k/include/asm/atomic.h5
-rw-r--r--arch/m68k/include/asm/atomic_mm.h196
-rw-r--r--arch/m68k/include/asm/atomic_no.h (renamed from arch/m68knommu/include/asm/atomic.h)0
-rw-r--r--arch/m68k/include/asm/auxvec.h (renamed from arch/m68knommu/include/asm/auxvec.h)0
-rw-r--r--arch/m68k/include/asm/bitops.h5
-rw-r--r--arch/m68k/include/asm/bitops_mm.h464
-rw-r--r--arch/m68k/include/asm/bitops_no.h (renamed from arch/m68knommu/include/asm/bitops.h)0
-rw-r--r--arch/m68k/include/asm/blinken.h32
-rw-r--r--arch/m68k/include/asm/bootinfo.h5
-rw-r--r--arch/m68k/include/asm/bootinfo_mm.h378
-rw-r--r--arch/m68k/include/asm/bootinfo_no.h (renamed from arch/m68knommu/include/asm/bootinfo.h)0
-rw-r--r--arch/m68k/include/asm/bootstd.h (renamed from arch/m68knommu/include/asm/bootstd.h)0
-rw-r--r--arch/m68k/include/asm/bug.h5
-rw-r--r--arch/m68k/include/asm/bug_mm.h29
-rw-r--r--arch/m68k/include/asm/bug_no.h (renamed from arch/m68knommu/include/asm/bug.h)0
-rw-r--r--arch/m68k/include/asm/bugs.h5
-rw-r--r--arch/m68k/include/asm/bugs_mm.h14
-rw-r--r--arch/m68k/include/asm/bugs_no.h (renamed from arch/m68knommu/include/asm/bugs.h)0
-rw-r--r--arch/m68k/include/asm/bvme6000hw.h150
-rw-r--r--arch/m68k/include/asm/byteorder.h6
-rw-r--r--arch/m68k/include/asm/cache.h5
-rw-r--r--arch/m68k/include/asm/cache_mm.h11
-rw-r--r--arch/m68k/include/asm/cache_no.h (renamed from arch/m68knommu/include/asm/cache.h)0
-rw-r--r--arch/m68k/include/asm/cachectl.h14
-rw-r--r--arch/m68k/include/asm/cacheflush.h5
-rw-r--r--arch/m68k/include/asm/cacheflush_mm.h156
-rw-r--r--arch/m68k/include/asm/cacheflush_no.h (renamed from arch/m68knommu/include/asm/cacheflush.h)11
-rw-r--r--arch/m68k/include/asm/checksum.h5
-rw-r--r--arch/m68k/include/asm/checksum_mm.h148
-rw-r--r--arch/m68k/include/asm/checksum_no.h (renamed from arch/m68knommu/include/asm/checksum.h)0
-rw-r--r--arch/m68k/include/asm/coldfire.h (renamed from arch/m68knommu/include/asm/coldfire.h)0
-rw-r--r--arch/m68k/include/asm/commproc.h (renamed from arch/m68knommu/include/asm/commproc.h)0
-rw-r--r--arch/m68k/include/asm/contregs.h53
-rw-r--r--arch/m68k/include/asm/cputime.h6
-rw-r--r--arch/m68k/include/asm/current.h5
-rw-r--r--arch/m68k/include/asm/current_mm.h6
-rw-r--r--arch/m68k/include/asm/current_no.h (renamed from arch/m68knommu/include/asm/current.h)0
-rw-r--r--arch/m68k/include/asm/dbg.h (renamed from arch/m68knommu/include/asm/dbg.h)0
-rw-r--r--arch/m68k/include/asm/delay.h5
-rw-r--r--arch/m68k/include/asm/delay_mm.h57
-rw-r--r--arch/m68k/include/asm/delay_no.h (renamed from arch/m68knommu/include/asm/delay.h)0
-rw-r--r--arch/m68k/include/asm/device.h (renamed from arch/m68knommu/include/asm/device.h)0
-rw-r--r--arch/m68k/include/asm/div64.h5
-rw-r--r--arch/m68k/include/asm/div64_mm.h28
-rw-r--r--arch/m68k/include/asm/div64_no.h (renamed from arch/m68knommu/include/asm/div64.h)0
-rw-r--r--arch/m68k/include/asm/dma-mapping.h5
-rw-r--r--arch/m68k/include/asm/dma-mapping_mm.h112
-rw-r--r--arch/m68k/include/asm/dma-mapping_no.h (renamed from arch/m68knommu/include/asm/dma-mapping.h)4
-rw-r--r--arch/m68k/include/asm/dma.h5
-rw-r--r--arch/m68k/include/asm/dma_mm.h16
-rw-r--r--arch/m68k/include/asm/dma_no.h (renamed from arch/m68knommu/include/asm/dma.h)0
-rw-r--r--arch/m68k/include/asm/dsp56k.h35
-rw-r--r--arch/m68k/include/asm/dvma.h240
-rw-r--r--arch/m68k/include/asm/elf.h5
-rw-r--r--arch/m68k/include/asm/elf_mm.h119
-rw-r--r--arch/m68k/include/asm/elf_no.h (renamed from arch/m68knommu/include/asm/elf.h)0
-rw-r--r--arch/m68k/include/asm/elia.h (renamed from arch/m68knommu/include/asm/elia.h)0
-rw-r--r--arch/m68k/include/asm/emergency-restart.h (renamed from arch/m68knommu/include/asm/emergency-restart.h)0
-rw-r--r--arch/m68k/include/asm/entry.h5
-rw-r--r--arch/m68k/include/asm/entry_mm.h137
-rw-r--r--arch/m68k/include/asm/entry_no.h (renamed from arch/m68knommu/include/asm/entry.h)0
-rw-r--r--arch/m68k/include/asm/errno.h6
-rw-r--r--arch/m68k/include/asm/fb.h5
-rw-r--r--arch/m68k/include/asm/fb_mm.h34
-rw-r--r--arch/m68k/include/asm/fb_no.h (renamed from arch/m68knommu/include/asm/fb.h)0
-rw-r--r--arch/m68k/include/asm/fbio.h330
-rw-r--r--arch/m68k/include/asm/fcntl.h11
-rw-r--r--arch/m68k/include/asm/flat.h (renamed from arch/m68knommu/include/asm/flat.h)0
-rw-r--r--arch/m68k/include/asm/floppy.h254
-rw-r--r--arch/m68k/include/asm/fpu.h5
-rw-r--r--arch/m68k/include/asm/fpu_mm.h21
-rw-r--r--arch/m68k/include/asm/fpu_no.h (renamed from arch/m68knommu/include/asm/fpu.h)0
-rw-r--r--arch/m68k/include/asm/futex.h (renamed from arch/m68knommu/include/asm/futex.h)0
-rw-r--r--arch/m68k/include/asm/hardirq.h5
-rw-r--r--arch/m68k/include/asm/hardirq_mm.h16
-rw-r--r--arch/m68k/include/asm/hardirq_no.h (renamed from arch/m68knommu/include/asm/hardirq.h)0
-rw-r--r--arch/m68k/include/asm/hp300hw.h25
-rw-r--r--arch/m68k/include/asm/hw_irq.h5
-rw-r--r--arch/m68k/include/asm/hw_irq_mm.h6
-rw-r--r--arch/m68k/include/asm/hw_irq_no.h (renamed from arch/m68knommu/include/asm/hw_irq.h)0
-rw-r--r--arch/m68k/include/asm/hwtest.h15
-rw-r--r--arch/m68k/include/asm/ide.h130
-rw-r--r--arch/m68k/include/asm/idprom.h27
-rw-r--r--arch/m68k/include/asm/intersil.h48
-rw-r--r--arch/m68k/include/asm/io.h5
-rw-r--r--arch/m68k/include/asm/io_mm.h369
-rw-r--r--arch/m68k/include/asm/io_no.h (renamed from arch/m68knommu/include/asm/io.h)0
-rw-r--r--arch/m68k/include/asm/ioctl.h (renamed from arch/m68knommu/include/asm/ioctl.h)0
-rw-r--r--arch/m68k/include/asm/ioctls.h84
-rw-r--r--arch/m68k/include/asm/ipcbuf.h29
-rw-r--r--arch/m68k/include/asm/irq.h5
-rw-r--r--arch/m68k/include/asm/irq_mm.h125
-rw-r--r--arch/m68k/include/asm/irq_no.h (renamed from arch/m68knommu/include/asm/irq.h)0
-rw-r--r--arch/m68k/include/asm/irq_regs.h (renamed from arch/m68knommu/include/asm/irq_regs.h)0
-rw-r--r--arch/m68k/include/asm/kdebug.h (renamed from arch/m68knommu/include/asm/kdebug.h)0
-rw-r--r--arch/m68k/include/asm/kmap_types.h5
-rw-r--r--arch/m68k/include/asm/kmap_types_mm.h21
-rw-r--r--arch/m68k/include/asm/kmap_types_no.h (renamed from arch/m68knommu/include/asm/kmap_types.h)0
-rw-r--r--arch/m68k/include/asm/linkage.h7
-rw-r--r--arch/m68k/include/asm/local.h6
-rw-r--r--arch/m68k/include/asm/m5206sim.h (renamed from arch/m68knommu/include/asm/m5206sim.h)0
-rw-r--r--arch/m68k/include/asm/m520xsim.h (renamed from arch/m68knommu/include/asm/m520xsim.h)0
-rw-r--r--arch/m68k/include/asm/m523xsim.h (renamed from arch/m68knommu/include/asm/m523xsim.h)0
-rw-r--r--arch/m68k/include/asm/m5249sim.h (renamed from arch/m68knommu/include/asm/m5249sim.h)0
-rw-r--r--arch/m68k/include/asm/m5272sim.h (renamed from arch/m68knommu/include/asm/m5272sim.h)0
-rw-r--r--arch/m68k/include/asm/m527xsim.h (renamed from arch/m68knommu/include/asm/m527xsim.h)0
-rw-r--r--arch/m68k/include/asm/m528xsim.h (renamed from arch/m68knommu/include/asm/m528xsim.h)0
-rw-r--r--arch/m68k/include/asm/m5307sim.h (renamed from arch/m68knommu/include/asm/m5307sim.h)0
-rw-r--r--arch/m68k/include/asm/m532xsim.h (renamed from arch/m68knommu/include/asm/m532xsim.h)0
-rw-r--r--arch/m68k/include/asm/m5407sim.h (renamed from arch/m68knommu/include/asm/m5407sim.h)0
-rw-r--r--arch/m68k/include/asm/m68360.h (renamed from arch/m68knommu/include/asm/m68360.h)0
-rw-r--r--arch/m68k/include/asm/m68360_enet.h (renamed from arch/m68knommu/include/asm/m68360_enet.h)0
-rw-r--r--arch/m68k/include/asm/m68360_pram.h (renamed from arch/m68knommu/include/asm/m68360_pram.h)0
-rw-r--r--arch/m68k/include/asm/m68360_quicc.h (renamed from arch/m68knommu/include/asm/m68360_quicc.h)0
-rw-r--r--arch/m68k/include/asm/m68360_regs.h (renamed from arch/m68knommu/include/asm/m68360_regs.h)0
-rw-r--r--arch/m68k/include/asm/mac_asc.h27
-rw-r--r--arch/m68k/include/asm/mac_baboon.h32
-rw-r--r--arch/m68k/include/asm/mac_iop.h162
-rw-r--r--arch/m68k/include/asm/mac_mouse.h23
-rw-r--r--arch/m68k/include/asm/mac_oss.h94
-rw-r--r--arch/m68k/include/asm/mac_psc.h248
-rw-r--r--arch/m68k/include/asm/mac_via.h267
-rw-r--r--arch/m68k/include/asm/machdep.h5
-rw-r--r--arch/m68k/include/asm/machdep_mm.h35
-rw-r--r--arch/m68k/include/asm/machdep_no.h (renamed from arch/m68knommu/include/asm/machdep.h)0
-rw-r--r--arch/m68k/include/asm/machines.h85
-rw-r--r--arch/m68k/include/asm/machw.h49
-rw-r--r--arch/m68k/include/asm/macintosh.h135
-rw-r--r--arch/m68k/include/asm/macints.h155
-rw-r--r--arch/m68k/include/asm/math-emu.h315
-rw-r--r--arch/m68k/include/asm/mc146818rtc.h5
-rw-r--r--arch/m68k/include/asm/mc146818rtc_mm.h26
-rw-r--r--arch/m68k/include/asm/mc146818rtc_no.h (renamed from arch/m68knommu/include/asm/mc146818rtc.h)0
-rw-r--r--arch/m68k/include/asm/mcfcache.h (renamed from arch/m68knommu/include/asm/mcfcache.h)0
-rw-r--r--arch/m68k/include/asm/mcfdma.h (renamed from arch/m68knommu/include/asm/mcfdma.h)0
-rw-r--r--arch/m68k/include/asm/mcfmbus.h (renamed from arch/m68knommu/include/asm/mcfmbus.h)0
-rw-r--r--arch/m68k/include/asm/mcfne.h (renamed from arch/m68knommu/include/asm/mcfne.h)0
-rw-r--r--arch/m68k/include/asm/mcfpci.h (renamed from arch/m68knommu/include/asm/mcfpci.h)0
-rw-r--r--arch/m68k/include/asm/mcfpit.h (renamed from arch/m68knommu/include/asm/mcfpit.h)0
-rw-r--r--arch/m68k/include/asm/mcfsim.h (renamed from arch/m68knommu/include/asm/mcfsim.h)0
-rw-r--r--arch/m68k/include/asm/mcfsmc.h (renamed from arch/m68knommu/include/asm/mcfsmc.h)0
-rw-r--r--arch/m68k/include/asm/mcftimer.h (renamed from arch/m68knommu/include/asm/mcftimer.h)0
-rw-r--r--arch/m68k/include/asm/mcfuart.h (renamed from arch/m68knommu/include/asm/mcfuart.h)0
-rw-r--r--arch/m68k/include/asm/mcfwdebug.h (renamed from arch/m68knommu/include/asm/mcfwdebug.h)0
-rw-r--r--arch/m68k/include/asm/md.h13
-rw-r--r--arch/m68k/include/asm/mman.h17
-rw-r--r--arch/m68k/include/asm/mmu.h5
-rw-r--r--arch/m68k/include/asm/mmu_context.h5
-rw-r--r--arch/m68k/include/asm/mmu_context_mm.h154
-rw-r--r--arch/m68k/include/asm/mmu_context_no.h (renamed from arch/m68knommu/include/asm/mmu_context.h)0
-rw-r--r--arch/m68k/include/asm/mmu_mm.h7
-rw-r--r--arch/m68k/include/asm/mmu_no.h (renamed from arch/m68knommu/include/asm/mmu.h)0
-rw-r--r--arch/m68k/include/asm/mmzone.h9
-rw-r--r--arch/m68k/include/asm/module.h5
-rw-r--r--arch/m68k/include/asm/module_mm.h39
-rw-r--r--arch/m68k/include/asm/module_no.h (renamed from arch/m68knommu/include/asm/module.h)0
-rw-r--r--arch/m68k/include/asm/motorola_pgalloc.h109
-rw-r--r--arch/m68k/include/asm/motorola_pgtable.h291
-rw-r--r--arch/m68k/include/asm/movs.h55
-rw-r--r--arch/m68k/include/asm/msgbuf.h31
-rw-r--r--arch/m68k/include/asm/mutex.h (renamed from arch/m68knommu/include/asm/mutex.h)0
-rw-r--r--arch/m68k/include/asm/mvme147hw.h113
-rw-r--r--arch/m68k/include/asm/mvme16xhw.h111
-rw-r--r--arch/m68k/include/asm/nettel.h (renamed from arch/m68knommu/include/asm/nettel.h)0
-rw-r--r--arch/m68k/include/asm/nubus.h46
-rw-r--r--arch/m68k/include/asm/openprom.h312
-rw-r--r--arch/m68k/include/asm/oplib.h291
-rw-r--r--arch/m68k/include/asm/page.h5
-rw-r--r--arch/m68k/include/asm/page_mm.h228
-rw-r--r--arch/m68k/include/asm/page_no.h (renamed from arch/m68knommu/include/asm/page.h)0
-rw-r--r--arch/m68k/include/asm/page_offset.h5
-rw-r--r--arch/m68k/include/asm/page_offset_mm.h8
-rw-r--r--arch/m68k/include/asm/page_offset_no.h (renamed from arch/m68knommu/include/asm/page_offset.h)0
-rw-r--r--arch/m68k/include/asm/param.h5
-rw-r--r--arch/m68k/include/asm/param_mm.h22
-rw-r--r--arch/m68k/include/asm/param_no.h (renamed from arch/m68knommu/include/asm/param.h)0
-rw-r--r--arch/m68k/include/asm/parport.h26
-rw-r--r--arch/m68k/include/asm/pci.h5
-rw-r--r--arch/m68k/include/asm/pci_mm.h12
-rw-r--r--arch/m68k/include/asm/pci_no.h (renamed from arch/m68knommu/include/asm/pci.h)2
-rw-r--r--arch/m68k/include/asm/percpu.h6
-rw-r--r--arch/m68k/include/asm/pgalloc.h5
-rw-r--r--arch/m68k/include/asm/pgalloc_mm.h19
-rw-r--r--arch/m68k/include/asm/pgalloc_no.h (renamed from arch/m68knommu/include/asm/pgalloc.h)0
-rw-r--r--arch/m68k/include/asm/pgtable.h5
-rw-r--r--arch/m68k/include/asm/pgtable_mm.h166
-rw-r--r--arch/m68k/include/asm/pgtable_no.h (renamed from arch/m68knommu/include/asm/pgtable.h)0
-rw-r--r--arch/m68k/include/asm/poll.h9
-rw-r--r--arch/m68k/include/asm/posix_types.h61
-rw-r--r--arch/m68k/include/asm/processor.h5
-rw-r--r--arch/m68k/include/asm/processor_mm.h130
-rw-r--r--arch/m68k/include/asm/processor_no.h (renamed from arch/m68knommu/include/asm/processor.h)0
-rw-r--r--arch/m68k/include/asm/ptrace.h5
-rw-r--r--arch/m68k/include/asm/ptrace_mm.h80
-rw-r--r--arch/m68k/include/asm/ptrace_no.h (renamed from arch/m68knommu/include/asm/ptrace.h)0
-rw-r--r--arch/m68k/include/asm/q40_master.h69
-rw-r--r--arch/m68k/include/asm/q40ints.h29
-rw-r--r--arch/m68k/include/asm/quicc_simple.h (renamed from arch/m68knommu/include/asm/quicc_simple.h)0
-rw-r--r--arch/m68k/include/asm/raw_io.h347
-rw-r--r--arch/m68k/include/asm/resource.h6
-rw-r--r--arch/m68k/include/asm/rtc.h76
-rw-r--r--arch/m68k/include/asm/sbus.h45
-rw-r--r--arch/m68k/include/asm/scatterlist.h5
-rw-r--r--arch/m68k/include/asm/scatterlist_mm.h23
-rw-r--r--arch/m68k/include/asm/scatterlist_no.h (renamed from arch/m68knommu/include/asm/scatterlist.h)0
-rw-r--r--arch/m68k/include/asm/sections.h6
-rw-r--r--arch/m68k/include/asm/segment.h5
-rw-r--r--arch/m68k/include/asm/segment_mm.h57
-rw-r--r--arch/m68k/include/asm/segment_no.h (renamed from arch/m68knommu/include/asm/segment.h)0
-rw-r--r--arch/m68k/include/asm/sembuf.h25
-rw-r--r--arch/m68k/include/asm/serial.h33
-rw-r--r--arch/m68k/include/asm/setup.h5
-rw-r--r--arch/m68k/include/asm/setup_mm.h376
-rw-r--r--arch/m68k/include/asm/setup_no.h (renamed from arch/m68knommu/include/asm/setup.h)2
-rw-r--r--arch/m68k/include/asm/shm.h31
-rw-r--r--arch/m68k/include/asm/shmbuf.h42
-rw-r--r--arch/m68k/include/asm/shmparam.h6
-rw-r--r--arch/m68k/include/asm/sigcontext.h5
-rw-r--r--arch/m68k/include/asm/sigcontext_mm.h19
-rw-r--r--arch/m68k/include/asm/sigcontext_no.h (renamed from arch/m68knommu/include/asm/sigcontext.h)0
-rw-r--r--arch/m68k/include/asm/siginfo.h5
-rw-r--r--arch/m68k/include/asm/siginfo_mm.h92
-rw-r--r--arch/m68k/include/asm/siginfo_no.h (renamed from arch/m68knommu/include/asm/siginfo.h)0
-rw-r--r--arch/m68k/include/asm/signal.h5
-rw-r--r--arch/m68k/include/asm/signal_mm.h206
-rw-r--r--arch/m68k/include/asm/signal_no.h (renamed from arch/m68knommu/include/asm/signal.h)0
-rw-r--r--arch/m68k/include/asm/smp.h (renamed from arch/m68knommu/include/asm/smp.h)0
-rw-r--r--arch/m68k/include/asm/socket.h57
-rw-r--r--arch/m68k/include/asm/sockios.h13
-rw-r--r--arch/m68k/include/asm/spinlock.h6
-rw-r--r--arch/m68k/include/asm/stat.h77
-rw-r--r--arch/m68k/include/asm/statfs.h6
-rw-r--r--arch/m68k/include/asm/string.h5
-rw-r--r--arch/m68k/include/asm/string_mm.h131
-rw-r--r--arch/m68k/include/asm/string_no.h (renamed from arch/m68knommu/include/asm/string.h)0
-rw-r--r--arch/m68k/include/asm/sun3-head.h10
-rw-r--r--arch/m68k/include/asm/sun3_pgalloc.h102
-rw-r--r--arch/m68k/include/asm/sun3_pgtable.h234
-rw-r--r--arch/m68k/include/asm/sun3ints.h37
-rw-r--r--arch/m68k/include/asm/sun3mmu.h171
-rw-r--r--arch/m68k/include/asm/sun3x.h27
-rw-r--r--arch/m68k/include/asm/sun3xflop.h263
-rw-r--r--arch/m68k/include/asm/sun3xprom.h43
-rw-r--r--arch/m68k/include/asm/suspend.h6
-rw-r--r--arch/m68k/include/asm/swab.h5
-rw-r--r--arch/m68k/include/asm/swab_mm.h16
-rw-r--r--arch/m68k/include/asm/swab_no.h (renamed from arch/m68knommu/include/asm/swab.h)0
-rw-r--r--arch/m68k/include/asm/system.h5
-rw-r--r--arch/m68k/include/asm/system_mm.h218
-rw-r--r--arch/m68k/include/asm/system_no.h (renamed from arch/m68knommu/include/asm/system.h)2
-rw-r--r--arch/m68k/include/asm/termbits.h200
-rw-r--r--arch/m68k/include/asm/termios.h92
-rw-r--r--arch/m68k/include/asm/thread_info.h5
-rw-r--r--arch/m68k/include/asm/thread_info_mm.h57
-rw-r--r--arch/m68k/include/asm/thread_info_no.h (renamed from arch/m68knommu/include/asm/thread_info.h)0
-rw-r--r--arch/m68k/include/asm/timex.h5
-rw-r--r--arch/m68k/include/asm/timex_mm.h18
-rw-r--r--arch/m68k/include/asm/timex_no.h (renamed from arch/m68knommu/include/asm/timex.h)0
-rw-r--r--arch/m68k/include/asm/tlb.h20
-rw-r--r--arch/m68k/include/asm/tlbflush.h5
-rw-r--r--arch/m68k/include/asm/tlbflush_mm.h219
-rw-r--r--arch/m68k/include/asm/tlbflush_no.h (renamed from arch/m68knommu/include/asm/tlbflush.h)0
-rw-r--r--arch/m68k/include/asm/topology.h (renamed from arch/m68knommu/include/asm/topology.h)0
-rw-r--r--arch/m68k/include/asm/traps.h5
-rw-r--r--arch/m68k/include/asm/traps_mm.h272
-rw-r--r--arch/m68k/include/asm/traps_no.h (renamed from arch/m68knommu/include/asm/traps.h)0
-rw-r--r--arch/m68k/include/asm/types.h37
-rw-r--r--arch/m68k/include/asm/uaccess.h5
-rw-r--r--arch/m68k/include/asm/uaccess_mm.h374
-rw-r--r--arch/m68k/include/asm/uaccess_no.h (renamed from arch/m68knommu/include/asm/uaccess.h)0
-rw-r--r--arch/m68k/include/asm/ucontext.h5
-rw-r--r--arch/m68k/include/asm/ucontext_mm.h30
-rw-r--r--arch/m68k/include/asm/ucontext_no.h (renamed from arch/m68knommu/include/asm/ucontext.h)0
-rw-r--r--arch/m68k/include/asm/unaligned.h5
-rw-r--r--arch/m68k/include/asm/unaligned_mm.h13
-rw-r--r--arch/m68k/include/asm/unaligned_no.h (renamed from arch/m68knommu/include/asm/unaligned.h)0
-rw-r--r--arch/m68k/include/asm/unistd.h5
-rw-r--r--arch/m68k/include/asm/unistd_mm.h372
-rw-r--r--arch/m68k/include/asm/unistd_no.h (renamed from arch/m68knommu/include/asm/unistd.h)0
-rw-r--r--arch/m68k/include/asm/user.h86
-rw-r--r--arch/m68k/include/asm/virtconvert.h48
-rw-r--r--arch/m68k/include/asm/xor.h1
-rw-r--r--arch/m68k/include/asm/zorro.h45
-rw-r--r--arch/m68k/kernel/.gitignore1
-rw-r--r--arch/m68k/kernel/entry.S4
-rw-r--r--arch/m68k/kernel/setup.c11
-rw-r--r--arch/m68k/kernel/signal.c15
-rw-r--r--arch/m68k/kernel/vmlinux-sun3.lds1
-rw-r--r--arch/m68k/mac/baboon.c3
-rw-r--r--arch/m68k/mac/config.c12
-rw-r--r--arch/m68k/mac/debug.c1
-rw-r--r--arch/m68k/mac/iop.c10
-rw-r--r--arch/m68k/mac/macints.c15
-rw-r--r--arch/m68k/mac/misc.c1
-rw-r--r--arch/m68k/mac/oss.c25
-rw-r--r--arch/m68k/mac/psc.c12
-rw-r--r--arch/m68k/mac/via.c35
-rw-r--r--arch/m68k/math-emu/fp_log.c1
-rw-r--r--arch/m68k/mm/init.c4
-rw-r--r--arch/m68k/mm/motorola.c7
-rw-r--r--arch/m68k/mvme147/config.c6
-rw-r--r--arch/m68k/mvme16x/config.c1
-rw-r--r--arch/m68k/q40/config.c3
-rw-r--r--arch/m68k/sun3/config.c8
-rw-r--r--arch/m68k/sun3/mmu_emu.c1
-rw-r--r--arch/m68k/sun3/sun3ints.c9
-rw-r--r--arch/m68k/sun3x/config.c1
-rw-r--r--arch/m68knommu/Kconfig27
-rw-r--r--arch/m68knommu/Makefile1
-rw-r--r--arch/m68knommu/include/asm/byteorder.h7
-rw-r--r--arch/m68knommu/include/asm/cachectl.h1
-rw-r--r--arch/m68knommu/include/asm/cputime.h6
-rw-r--r--arch/m68knommu/include/asm/errno.h1
-rw-r--r--arch/m68knommu/include/asm/fcntl.h1
-rw-r--r--arch/m68knommu/include/asm/hwtest.h1
-rw-r--r--arch/m68knommu/include/asm/ioctls.h1
-rw-r--r--arch/m68knommu/include/asm/ipcbuf.h1
-rw-r--r--arch/m68knommu/include/asm/linkage.h1
-rw-r--r--arch/m68knommu/include/asm/local.h6
-rw-r--r--arch/m68knommu/include/asm/math-emu.h1
-rw-r--r--arch/m68knommu/include/asm/md.h1
-rw-r--r--arch/m68knommu/include/asm/mman.h1
-rw-r--r--arch/m68knommu/include/asm/movs.h1
-rw-r--r--arch/m68knommu/include/asm/msgbuf.h1
-rw-r--r--arch/m68knommu/include/asm/openprom.h1
-rw-r--r--arch/m68knommu/include/asm/oplib.h1
-rw-r--r--arch/m68knommu/include/asm/percpu.h6
-rw-r--r--arch/m68knommu/include/asm/poll.h1
-rw-r--r--arch/m68knommu/include/asm/posix_types.h1
-rw-r--r--arch/m68knommu/include/asm/resource.h1
-rw-r--r--arch/m68knommu/include/asm/rtc.h1
-rw-r--r--arch/m68knommu/include/asm/sections.h7
-rw-r--r--arch/m68knommu/include/asm/sembuf.h1
-rw-r--r--arch/m68knommu/include/asm/shm.h1
-rw-r--r--arch/m68knommu/include/asm/shmbuf.h1
-rw-r--r--arch/m68knommu/include/asm/shmparam.h1
-rw-r--r--arch/m68knommu/include/asm/socket.h1
-rw-r--r--arch/m68knommu/include/asm/sockios.h1
-rw-r--r--arch/m68knommu/include/asm/spinlock.h1
-rw-r--r--arch/m68knommu/include/asm/stat.h1
-rw-r--r--arch/m68knommu/include/asm/statfs.h1
-rw-r--r--arch/m68knommu/include/asm/termbits.h1
-rw-r--r--arch/m68knommu/include/asm/termios.h1
-rw-r--r--arch/m68knommu/include/asm/tlb.h1
-rw-r--r--arch/m68knommu/include/asm/types.h1
-rw-r--r--arch/m68knommu/include/asm/user.h1
-rw-r--r--arch/m68knommu/kernel/Makefile1
-rw-r--r--arch/m68knommu/kernel/comempci.c980
-rw-r--r--arch/m68knommu/kernel/signal.c15
-rw-r--r--arch/m68knommu/kernel/syscalltable.S4
-rw-r--r--arch/m68knommu/platform/5307/config.c2
-rw-r--r--arch/m68knommu/platform/532x/config.c8
-rw-r--r--arch/m68knommu/platform/coldfire/entry.S15
-rw-r--r--arch/mips/Kconfig83
-rw-r--r--arch/mips/Makefile40
-rw-r--r--arch/mips/alchemy/Kconfig5
-rw-r--r--arch/mips/alchemy/common/Makefile4
-rw-r--r--arch/mips/alchemy/common/au1xxx_irqmap.c205
-rw-r--r--arch/mips/alchemy/common/clocks.c65
-rw-r--r--arch/mips/alchemy/common/cputable.c52
-rw-r--r--arch/mips/alchemy/common/dbdma.c65
-rw-r--r--arch/mips/alchemy/common/irq.c745
-rw-r--r--arch/mips/alchemy/common/power.c406
-rw-r--r--arch/mips/alchemy/common/reset.c2
-rw-r--r--arch/mips/alchemy/common/setup.c71
-rw-r--r--arch/mips/alchemy/common/sleeper.S118
-rw-r--r--arch/mips/alchemy/common/time.c311
-rw-r--r--arch/mips/alchemy/db1x00/init.c62
-rw-r--r--arch/mips/alchemy/devboards/Makefile18
-rw-r--r--arch/mips/alchemy/devboards/db1x00/Makefile (renamed from arch/mips/alchemy/db1x00/Makefile)2
-rw-r--r--arch/mips/alchemy/devboards/db1x00/board_setup.c (renamed from arch/mips/alchemy/db1x00/board_setup.c)37
-rw-r--r--arch/mips/alchemy/devboards/db1x00/irqmap.c (renamed from arch/mips/alchemy/db1x00/irqmap.c)24
-rw-r--r--arch/mips/alchemy/devboards/pb1000/Makefile (renamed from arch/mips/alchemy/pb1000/Makefile)2
-rw-r--r--arch/mips/alchemy/devboards/pb1000/board_setup.c (renamed from arch/mips/alchemy/pb1000/board_setup.c)30
-rw-r--r--arch/mips/alchemy/devboards/pb1100/Makefile (renamed from arch/mips/alchemy/pb1100/Makefile)2
-rw-r--r--arch/mips/alchemy/devboards/pb1100/board_setup.c (renamed from arch/mips/alchemy/pb1100/board_setup.c)47
-rw-r--r--arch/mips/alchemy/devboards/pb1200/Makefile (renamed from arch/mips/alchemy/pb1200/Makefile)3
-rw-r--r--arch/mips/alchemy/devboards/pb1200/board_setup.c (renamed from arch/mips/alchemy/pb1200/board_setup.c)34
-rw-r--r--arch/mips/alchemy/devboards/pb1200/irqmap.c (renamed from arch/mips/alchemy/pb1200/irqmap.c)94
-rw-r--r--arch/mips/alchemy/devboards/pb1200/platform.c (renamed from arch/mips/alchemy/pb1200/platform.c)0
-rw-r--r--arch/mips/alchemy/devboards/pb1500/Makefile (renamed from arch/mips/alchemy/pb1500/Makefile)2
-rw-r--r--arch/mips/alchemy/devboards/pb1500/board_setup.c (renamed from arch/mips/alchemy/pb1500/board_setup.c)44
-rw-r--r--arch/mips/alchemy/devboards/pb1550/Makefile (renamed from arch/mips/alchemy/pb1550/Makefile)2
-rw-r--r--arch/mips/alchemy/devboards/pb1550/board_setup.c (renamed from arch/mips/alchemy/pb1550/board_setup.c)34
-rw-r--r--arch/mips/alchemy/devboards/pm.c229
-rw-r--r--arch/mips/alchemy/devboards/prom.c (renamed from arch/mips/alchemy/pb1200/init.c)26
-rw-r--r--arch/mips/alchemy/mtx-1/board_setup.c12
-rw-r--r--arch/mips/alchemy/mtx-1/init.c2
-rw-r--r--arch/mips/alchemy/mtx-1/irqmap.c18
-rw-r--r--arch/mips/alchemy/pb1000/init.c57
-rw-r--r--arch/mips/alchemy/pb1000/irqmap.c38
-rw-r--r--arch/mips/alchemy/pb1100/init.c60
-rw-r--r--arch/mips/alchemy/pb1100/irqmap.c40
-rw-r--r--arch/mips/alchemy/pb1500/init.c58
-rw-r--r--arch/mips/alchemy/pb1500/irqmap.c46
-rw-r--r--arch/mips/alchemy/pb1550/init.c58
-rw-r--r--arch/mips/alchemy/pb1550/irqmap.c43
-rw-r--r--arch/mips/alchemy/xxs1500/board_setup.c12
-rw-r--r--arch/mips/alchemy/xxs1500/init.c2
-rw-r--r--arch/mips/alchemy/xxs1500/irqmap.c31
-rw-r--r--arch/mips/cavium-octeon/Kconfig85
-rw-r--r--arch/mips/cavium-octeon/Makefile16
-rw-r--r--arch/mips/cavium-octeon/csrc-octeon.c58
-rw-r--r--arch/mips/cavium-octeon/dma-octeon.c32
-rw-r--r--arch/mips/cavium-octeon/executive/Makefile13
-rw-r--r--arch/mips/cavium-octeon/executive/cvmx-bootmem.c586
-rw-r--r--arch/mips/cavium-octeon/executive/cvmx-l2c.c734
-rw-r--r--arch/mips/cavium-octeon/executive/cvmx-sysinfo.c116
-rw-r--r--arch/mips/cavium-octeon/executive/octeon-model.c358
-rw-r--r--arch/mips/cavium-octeon/flash_setup.c84
-rw-r--r--arch/mips/cavium-octeon/octeon-irq.c497
-rw-r--r--arch/mips/cavium-octeon/octeon-memcpy.S521
-rw-r--r--arch/mips/cavium-octeon/serial.c136
-rw-r--r--arch/mips/cavium-octeon/setup.c927
-rw-r--r--arch/mips/cavium-octeon/smp.c211
-rw-r--r--arch/mips/configs/bigsur_defconfig2
-rw-r--r--arch/mips/configs/cavium-octeon_defconfig943
-rw-r--r--arch/mips/configs/emma2rh_defconfig2
-rw-r--r--arch/mips/configs/fulong_defconfig4
-rw-r--r--arch/mips/configs/ip27_defconfig2
-rw-r--r--arch/mips/configs/msp71xx_defconfig2
-rw-r--r--arch/mips/configs/mtx1_defconfig4
-rw-r--r--arch/mips/configs/pnx8335-stb225_defconfig4
-rw-r--r--arch/mips/configs/rbtx49xx_defconfig2
-rw-r--r--arch/mips/include/asm/Kbuild1
-rw-r--r--arch/mips/include/asm/atomic.h52
-rw-r--r--arch/mips/include/asm/byteorder.h2
-rw-r--r--arch/mips/include/asm/cpu-features.h3
-rw-r--r--arch/mips/include/asm/cpu.h14
-rw-r--r--arch/mips/include/asm/hazards.h4
-rw-r--r--arch/mips/include/asm/io.h14
-rw-r--r--arch/mips/include/asm/irq.h2
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1000.h89
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h5
-rw-r--r--arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h78
-rw-r--r--arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h64
-rw-r--r--arch/mips/include/asm/mach-cavium-octeon/irq.h244
-rw-r--r--arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h131
-rw-r--r--arch/mips/include/asm/mach-cavium-octeon/war.h26
-rw-r--r--arch/mips/include/asm/mach-generic/dma-coherence.h26
-rw-r--r--arch/mips/include/asm/mach-ip27/dma-coherence.h26
-rw-r--r--arch/mips/include/asm/mach-ip32/dma-coherence.h26
-rw-r--r--arch/mips/include/asm/mach-jazz/dma-coherence.h26
-rw-r--r--arch/mips/include/asm/mach-lemote/dma-coherence.h26
-rw-r--r--arch/mips/include/asm/mach-rc32434/gpio.h5
-rw-r--r--arch/mips/include/asm/mach-rc32434/irq.h3
-rw-r--r--arch/mips/include/asm/mach-rc32434/rb.h3
-rw-r--r--arch/mips/include/asm/mipsregs.h22
-rw-r--r--arch/mips/include/asm/module.h2
-rw-r--r--arch/mips/include/asm/octeon/cvmx-asm.h128
-rw-r--r--arch/mips/include/asm/octeon/cvmx-bootinfo.h262
-rw-r--r--arch/mips/include/asm/octeon/cvmx-bootmem.h288
-rw-r--r--arch/mips/include/asm/octeon/cvmx-ciu-defs.h1616
-rw-r--r--arch/mips/include/asm/octeon/cvmx-gpio-defs.h219
-rw-r--r--arch/mips/include/asm/octeon/cvmx-iob-defs.h530
-rw-r--r--arch/mips/include/asm/octeon/cvmx-ipd-defs.h877
-rw-r--r--arch/mips/include/asm/octeon/cvmx-l2c-defs.h963
-rw-r--r--arch/mips/include/asm/octeon/cvmx-l2c.h325
-rw-r--r--arch/mips/include/asm/octeon/cvmx-l2d-defs.h369
-rw-r--r--arch/mips/include/asm/octeon/cvmx-l2t-defs.h141
-rw-r--r--arch/mips/include/asm/octeon/cvmx-led-defs.h240
-rw-r--r--arch/mips/include/asm/octeon/cvmx-mio-defs.h2004
-rw-r--r--arch/mips/include/asm/octeon/cvmx-packet.h61
-rw-r--r--arch/mips/include/asm/octeon/cvmx-pow-defs.h698
-rw-r--r--arch/mips/include/asm/octeon/cvmx-spinlock.h232
-rw-r--r--arch/mips/include/asm/octeon/cvmx-sysinfo.h152
-rw-r--r--arch/mips/include/asm/octeon/cvmx.h505
-rw-r--r--arch/mips/include/asm/octeon/octeon-feature.h119
-rw-r--r--arch/mips/include/asm/octeon/octeon-model.h321
-rw-r--r--arch/mips/include/asm/octeon/octeon.h248
-rw-r--r--arch/mips/include/asm/processor.h69
-rw-r--r--arch/mips/include/asm/ptrace.h6
-rw-r--r--arch/mips/include/asm/seccomp.h1
-rw-r--r--arch/mips/include/asm/sigcontext.h1
-rw-r--r--arch/mips/include/asm/smp.h3
-rw-r--r--arch/mips/include/asm/spinlock.h1
-rw-r--r--arch/mips/include/asm/stackframe.h17
-rw-r--r--arch/mips/include/asm/swab.h2
-rw-r--r--arch/mips/include/asm/termios.h100
-rw-r--r--arch/mips/include/asm/time.h24
-rw-r--r--arch/mips/include/asm/txx9/tx4939.h1
-rw-r--r--arch/mips/kernel/Makefile5
-rw-r--r--arch/mips/kernel/asm-offsets.c31
-rw-r--r--arch/mips/kernel/branch.c33
-rw-r--r--arch/mips/kernel/cevt-r4k.c2
-rw-r--r--arch/mips/kernel/cpu-probe.c31
-rw-r--r--arch/mips/kernel/csrc-r4k.c2
-rw-r--r--arch/mips/kernel/genex.S10
-rw-r--r--arch/mips/kernel/irq-gic.c2
-rw-r--r--arch/mips/kernel/linux32.c69
-rw-r--r--arch/mips/kernel/mips-mt-fpaff.c3
-rw-r--r--arch/mips/kernel/octeon_switch.S506
-rw-r--r--arch/mips/kernel/ptrace32.c64
-rw-r--r--arch/mips/kernel/scall32-o32.S6
-rw-r--r--arch/mips/kernel/scall64-64.S2
-rw-r--r--arch/mips/kernel/scall64-n32.S28
-rw-r--r--arch/mips/kernel/scall64-o32.S40
-rw-r--r--arch/mips/kernel/signal.c5
-rw-r--r--arch/mips/kernel/signal32.c28
-rw-r--r--arch/mips/kernel/smtc.c6
-rw-r--r--arch/mips/kernel/syscall.c26
-rw-r--r--arch/mips/kernel/traps.c37
-rw-r--r--arch/mips/lib/Makefile1
-rw-r--r--arch/mips/lib/memcpy-inatomic.S2
-rw-r--r--arch/mips/lib/memcpy.S2
-rw-r--r--arch/mips/mm/Makefile1
-rw-r--r--arch/mips/mm/c-octeon.c307
-rw-r--r--arch/mips/mm/c-r4k.c22
-rw-r--r--arch/mips/mm/cache.c11
-rw-r--r--arch/mips/mm/cex-oct.S70
-rw-r--r--arch/mips/mm/dma-default.c25
-rw-r--r--arch/mips/mm/fault.c21
-rw-r--r--arch/mips/mm/tlb-r4k.c5
-rw-r--r--arch/mips/mm/tlbex.c1
-rw-r--r--arch/mips/mti-malta/malta-smtc.c5
-rw-r--r--arch/mips/pci/pci-rc32434.c11
-rw-r--r--arch/mips/rb532/devices.c57
-rw-r--r--arch/mips/rb532/gpio.c90
-rw-r--r--arch/mips/rb532/irq.c27
-rw-r--r--arch/mips/rb532/serial.c2
-rw-r--r--arch/mips/sgi-ip22/ip22-int.c2
-rw-r--r--arch/mips/sgi-ip22/ip22-time.c2
-rw-r--r--arch/mips/sibyte/bcm1480/smp.c3
-rw-r--r--arch/mips/sibyte/sb1250/smp.c3
-rw-r--r--arch/mips/txx9/generic/setup_tx4939.c22
-rw-r--r--arch/mips/txx9/rbtx4939/setup.c1
-rw-r--r--arch/mn10300/Kconfig1
-rw-r--r--arch/mn10300/kernel/entry.S2
-rw-r--r--arch/mn10300/kernel/mn10300-watchdog.c3
-rw-r--r--arch/mn10300/unit-asb2305/pci.c2
-rw-r--r--arch/parisc/include/asm/Kbuild1
-rw-r--r--arch/parisc/include/asm/byteorder.h1
-rw-r--r--arch/parisc/include/asm/dma-mapping.h2
-rw-r--r--arch/parisc/include/asm/pdc.h3
-rw-r--r--arch/parisc/include/asm/swab.h2
-rw-r--r--arch/parisc/kernel/irq.c8
-rw-r--r--arch/parisc/kernel/pci-dma.c2
-rw-r--r--arch/powerpc/Kconfig5
-rw-r--r--arch/powerpc/boot/cuboot-warp.c43
-rw-r--r--arch/powerpc/boot/dts/gef_sbc610.dts15
-rw-r--r--arch/powerpc/boot/dts/haleakala.dts5
-rw-r--r--arch/powerpc/boot/dts/kilauea.dts5
-rw-r--r--arch/powerpc/boot/dts/makalu.dts5
-rw-r--r--arch/powerpc/boot/dts/mpc8313erdb.dts13
-rw-r--r--arch/powerpc/boot/dts/mpc8315erdb.dts4
-rw-r--r--arch/powerpc/boot/dts/mpc8544ds.dts4
-rw-r--r--arch/powerpc/boot/dts/mpc8572ds.dts6
-rw-r--r--arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts2
-rw-r--r--arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts2
-rw-r--r--arch/powerpc/boot/dts/warp.dts42
-rw-r--r--arch/powerpc/configs/40x/acadia_defconfig76
-rw-r--r--arch/powerpc/configs/40x/ep405_defconfig87
-rw-r--r--arch/powerpc/configs/40x/hcu4_defconfig78
-rw-r--r--arch/powerpc/configs/40x/kilauea_defconfig76
-rw-r--r--arch/powerpc/configs/40x/makalu_defconfig76
-rw-r--r--arch/powerpc/configs/40x/virtex_defconfig53
-rw-r--r--arch/powerpc/configs/40x/walnut_defconfig84
-rw-r--r--arch/powerpc/configs/44x/arches_defconfig60
-rw-r--r--arch/powerpc/configs/44x/bamboo_defconfig76
-rw-r--r--arch/powerpc/configs/44x/canyonlands_defconfig60
-rw-r--r--arch/powerpc/configs/44x/ebony_defconfig84
-rw-r--r--arch/powerpc/configs/44x/katmai_defconfig76
-rw-r--r--arch/powerpc/configs/44x/rainier_defconfig83
-rw-r--r--arch/powerpc/configs/44x/sam440ep_defconfig81
-rw-r--r--arch/powerpc/configs/44x/sequoia_defconfig83
-rw-r--r--arch/powerpc/configs/44x/taishan_defconfig83
-rw-r--r--arch/powerpc/configs/44x/virtex5_defconfig53
-rw-r--r--arch/powerpc/configs/44x/warp_defconfig140
-rw-r--r--arch/powerpc/configs/52xx/cm5200_defconfig83
-rw-r--r--arch/powerpc/configs/52xx/lite5200b_defconfig86
-rw-r--r--arch/powerpc/configs/52xx/motionpro_defconfig85
-rw-r--r--arch/powerpc/configs/52xx/pcm030_defconfig82
-rw-r--r--arch/powerpc/configs/52xx/tqm5200_defconfig89
-rw-r--r--arch/powerpc/configs/83xx/asp8347_defconfig95
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig111
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig109
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig90
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig95
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig106
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig104
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig88
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig97
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_rdk_defconfig94
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig88
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig94
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig78
-rw-r--r--arch/powerpc/configs/85xx/ksi8560_defconfig79
-rw-r--r--arch/powerpc/configs/85xx/mpc8536_ds_defconfig115
-rw-r--r--arch/powerpc/configs/85xx/mpc8540_ads_defconfig66
-rw-r--r--arch/powerpc/configs/85xx/mpc8544_ds_defconfig115
-rw-r--r--arch/powerpc/configs/85xx/mpc8560_ads_defconfig73
-rw-r--r--arch/powerpc/configs/85xx/mpc8568mds_defconfig90
-rw-r--r--arch/powerpc/configs/85xx/mpc8572_ds_defconfig84
-rw-r--r--arch/powerpc/configs/85xx/mpc85xx_cds_defconfig69
-rw-r--r--arch/powerpc/configs/85xx/sbc8548_defconfig60
-rw-r--r--arch/powerpc/configs/85xx/sbc8560_defconfig66
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig92
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig85
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig92
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig88
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig92
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig92
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc610_defconfig139
-rw-r--r--arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig87
-rw-r--r--arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig115
-rw-r--r--arch/powerpc/configs/86xx/sbc8641d_defconfig106
-rw-r--r--arch/powerpc/configs/adder875_defconfig65
-rw-r--r--arch/powerpc/configs/c2k_defconfig122
-rw-r--r--arch/powerpc/configs/cell_defconfig2
-rw-r--r--arch/powerpc/configs/celleb_defconfig2
-rw-r--r--arch/powerpc/configs/chrp32_defconfig4
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig77
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig65
-rw-r--r--arch/powerpc/configs/g5_defconfig4
-rw-r--r--arch/powerpc/configs/linkstation_defconfig114
-rw-r--r--arch/powerpc/configs/maple_defconfig4
-rw-r--r--arch/powerpc/configs/mgcoge_defconfig74
-rw-r--r--arch/powerpc/configs/mgsuvd_defconfig63
-rw-r--r--arch/powerpc/configs/mpc5200_defconfig104
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig71
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig77
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig111
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig124
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig64
-rw-r--r--arch/powerpc/configs/mpc86xx_defconfig147
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig65
-rw-r--r--arch/powerpc/configs/pasemi_defconfig2
-rw-r--r--arch/powerpc/configs/pmac32_defconfig4
-rw-r--r--arch/powerpc/configs/ppc40x_defconfig81
-rw-r--r--arch/powerpc/configs/ppc44x_defconfig83
-rw-r--r--arch/powerpc/configs/ppc64_defconfig30
-rw-r--r--arch/powerpc/configs/ppc6xx_defconfig4
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig87
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig100
-rw-r--r--arch/powerpc/configs/pseries_defconfig4
-rw-r--r--arch/powerpc/configs/storcenter_defconfig89
-rw-r--r--arch/powerpc/include/asm/Kbuild1
-rw-r--r--arch/powerpc/include/asm/bootx.h2
-rw-r--r--arch/powerpc/include/asm/byteorder.h2
-rw-r--r--arch/powerpc/include/asm/compat.h5
-rw-r--r--arch/powerpc/include/asm/elf.h2
-rw-r--r--arch/powerpc/include/asm/kvm.h2
-rw-r--r--arch/powerpc/include/asm/pgtable-4k.h2
-rw-r--r--arch/powerpc/include/asm/pgtable-64k.h2
-rw-r--r--arch/powerpc/include/asm/pgtable-ppc32.h3
-rw-r--r--arch/powerpc/include/asm/ps3.h8
-rw-r--r--arch/powerpc/include/asm/ps3fb.h1
-rw-r--r--arch/powerpc/include/asm/qe.h19
-rw-r--r--arch/powerpc/include/asm/rtas.h2
-rw-r--r--arch/powerpc/include/asm/seccomp.h4
-rw-r--r--arch/powerpc/include/asm/spu_info.h3
-rw-r--r--arch/powerpc/include/asm/swab.h2
-rw-r--r--arch/powerpc/include/asm/systbl.h2
-rw-r--r--arch/powerpc/include/asm/types.h7
-rw-r--r--arch/powerpc/kernel/align.c36
-rw-r--r--arch/powerpc/kernel/asm-offsets.c7
-rw-r--r--arch/powerpc/kernel/cacheinfo.c10
-rw-r--r--arch/powerpc/kernel/dma-iommu.c4
-rw-r--r--arch/powerpc/kernel/ftrace.c5
-rw-r--r--arch/powerpc/kernel/head_64.S9
-rw-r--r--arch/powerpc/kernel/head_fsl_booke.S8
-rw-r--r--arch/powerpc/kernel/iommu.c12
-rw-r--r--arch/powerpc/kernel/irq.c2
-rw-r--r--arch/powerpc/kernel/lparcfg.c10
-rw-r--r--arch/powerpc/kernel/machine_kexec.c25
-rw-r--r--arch/powerpc/kernel/pci-common.c22
-rw-r--r--arch/powerpc/kernel/pci_64.c6
-rw-r--r--arch/powerpc/kernel/prom.c5
-rw-r--r--arch/powerpc/kernel/setup_64.c6
-rw-r--r--arch/powerpc/kernel/vio.c7
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S5
-rw-r--r--arch/powerpc/kvm/powerpc.c4
-rw-r--r--arch/powerpc/lib/copyuser_64.S38
-rw-r--r--arch/powerpc/lib/memcpy_64.S26
-rw-r--r--arch/powerpc/lib/sstep.c2
-rw-r--r--arch/powerpc/mm/fsl_booke_mmu.c13
-rw-r--r--arch/powerpc/mm/hash_low_32.S2
-rw-r--r--arch/powerpc/mm/mmu_decl.h11
-rw-r--r--arch/powerpc/mm/numa.c5
-rw-r--r--arch/powerpc/mm/pgtable_32.c4
-rw-r--r--arch/powerpc/mm/ppc_mmu_32.c6
-rw-r--r--arch/powerpc/mm/slice.c11
-rw-r--r--arch/powerpc/mm/stab.c4
-rw-r--r--arch/powerpc/oprofile/cell/spu_profiler.c1
-rw-r--r--arch/powerpc/oprofile/op_model_pa6t.c6
-rw-r--r--arch/powerpc/platforms/44x/Makefile1
-rw-r--r--arch/powerpc/platforms/44x/warp-nand.c135
-rw-r--r--arch/powerpc/platforms/512x/clock.c4
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_gpio.c3
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_pci.c24
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_pic.c8
-rw-r--r--arch/powerpc/platforms/82xx/pq2ads-pci-pic.c2
-rw-r--r--arch/powerpc/platforms/83xx/Makefile1
-rw-r--r--arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c209
-rw-r--r--arch/powerpc/platforms/83xx/mpc831x_rdb.c1
-rw-r--r--arch/powerpc/platforms/Kconfig11
-rw-r--r--arch/powerpc/platforms/cell/beat_interrupt.c2
-rw-r--r--arch/powerpc/platforms/cell/cbe_cpufreq.c2
-rw-r--r--arch/powerpc/platforms/cell/celleb_scc_epci.c4
-rw-r--r--arch/powerpc/platforms/cell/cpufreq_spudemand.c4
-rw-r--r--arch/powerpc/platforms/cell/iommu.c4
-rw-r--r--arch/powerpc/platforms/cell/ras.c8
-rw-r--r--arch/powerpc/platforms/cell/spu_base.c4
-rw-r--r--arch/powerpc/platforms/cell/spu_callbacks.c2
-rw-r--r--arch/powerpc/platforms/cell/spufs/coredump.c2
-rw-r--r--arch/powerpc/platforms/cell/spufs/fault.c2
-rw-r--r--arch/powerpc/platforms/cell/spufs/file.c6
-rw-r--r--arch/powerpc/platforms/fsl_uli1575.c1
-rw-r--r--arch/powerpc/platforms/iseries/iommu.c4
-rw-r--r--arch/powerpc/platforms/pasemi/cpufreq.c2
-rw-r--r--arch/powerpc/platforms/powermac/cpufreq_64.c2
-rw-r--r--arch/powerpc/platforms/powermac/smp.c2
-rw-r--r--arch/powerpc/platforms/ps3/device-init.c26
-rw-r--r--arch/powerpc/platforms/ps3/htab.c2
-rw-r--r--arch/powerpc/platforms/ps3/interrupt.c28
-rw-r--r--arch/powerpc/platforms/ps3/mm.c99
-rw-r--r--arch/powerpc/platforms/ps3/os-area.c2
-rw-r--r--arch/powerpc/platforms/ps3/repository.c22
-rw-r--r--arch/powerpc/platforms/ps3/setup.c2
-rw-r--r--arch/powerpc/platforms/ps3/spu.c12
-rw-r--r--arch/powerpc/platforms/ps3/system-bus.c14
-rw-r--r--arch/powerpc/platforms/pseries/hotplug-memory.c1
-rw-r--r--arch/powerpc/platforms/pseries/iommu.c35
-rw-r--r--arch/powerpc/platforms/pseries/phyp_dump.c26
-rw-r--r--arch/powerpc/platforms/pseries/xics.c5
-rw-r--r--arch/powerpc/sysdev/cpm2_pic.c2
-rw-r--r--arch/powerpc/sysdev/fsl_pci.c107
-rw-r--r--arch/powerpc/sysdev/ipic.c2
-rw-r--r--arch/powerpc/sysdev/mpic.c5
-rw-r--r--arch/powerpc/sysdev/ppc4xx_pci.c17
-rw-r--r--arch/s390/Kconfig1
-rw-r--r--arch/s390/defconfig87
-rw-r--r--arch/s390/include/asm/Kbuild1
-rw-r--r--arch/s390/include/asm/byteorder.h1
-rw-r--r--arch/s390/include/asm/cputime.h2
-rw-r--r--arch/s390/include/asm/elf.h16
-rw-r--r--arch/s390/include/asm/lowcore.h4
-rw-r--r--arch/s390/include/asm/setup.h2
-rw-r--r--arch/s390/kernel/compat_wrapper.S42
-rw-r--r--arch/s390/kernel/entry.h16
-rw-r--r--arch/s390/kernel/irq.c2
-rw-r--r--arch/s390/kernel/process.c9
-rw-r--r--arch/s390/kernel/setup.c9
-rw-r--r--arch/s390/kernel/signal.c19
-rw-r--r--arch/s390/kernel/sys_s390.c35
-rw-r--r--arch/s390/kernel/syscalls.S24
-rw-r--r--arch/s390/kernel/time.c6
-rw-r--r--arch/s390/kernel/vtime.c4
-rw-r--r--arch/s390/kvm/kvm-s390.c4
-rw-r--r--arch/sh/Kconfig63
-rw-r--r--arch/sh/boards/board-ap325rxa.c63
-rw-r--r--arch/sh/boards/board-magicpanelr2.c23
-rw-r--r--arch/sh/boards/board-sh7785lcr.c1
-rw-r--r--arch/sh/boards/mach-highlander/setup.c1
-rw-r--r--arch/sh/boards/mach-hp6xx/setup.c2
-rw-r--r--arch/sh/boards/mach-migor/setup.c171
-rw-r--r--arch/sh/boards/mach-rsk/devices-rsk7203.c24
-rw-r--r--arch/sh/boards/mach-x3proto/setup.c1
-rw-r--r--arch/sh/configs/ap325rxa_defconfig376
-rw-r--r--arch/sh/configs/cayman_defconfig4
-rw-r--r--arch/sh/configs/dreamcast_defconfig60
-rw-r--r--arch/sh/configs/edosk7705_defconfig18
-rw-r--r--arch/sh/configs/edosk7760_defconfig87
-rw-r--r--arch/sh/configs/hp6xx_defconfig88
-rw-r--r--arch/sh/configs/landisk_defconfig76
-rw-r--r--arch/sh/configs/lboxre2_defconfig63
-rw-r--r--arch/sh/configs/magicpanelr2_defconfig119
-rw-r--r--arch/sh/configs/microdev_defconfig63
-rw-r--r--arch/sh/configs/migor_defconfig133
-rw-r--r--arch/sh/configs/r7780mp_defconfig89
-rw-r--r--arch/sh/configs/r7785rp_defconfig134
-rw-r--r--arch/sh/configs/rsk7201_defconfig26
-rw-r--r--arch/sh/configs/rsk7203_defconfig88
-rw-r--r--arch/sh/configs/rts7751r2d1_defconfig89
-rw-r--r--arch/sh/configs/rts7751r2dplus_defconfig89
-rw-r--r--arch/sh/configs/sdk7780_defconfig101
-rw-r--r--arch/sh/configs/se7206_defconfig75
-rw-r--r--arch/sh/configs/se7343_defconfig65
-rw-r--r--arch/sh/configs/se7619_defconfig47
-rw-r--r--arch/sh/configs/se7705_defconfig60
-rw-r--r--arch/sh/configs/se7712_defconfig79
-rw-r--r--arch/sh/configs/se7721_defconfig85
-rw-r--r--arch/sh/configs/se7722_defconfig61
-rw-r--r--arch/sh/configs/se7750_defconfig61
-rw-r--r--arch/sh/configs/se7751_defconfig56
-rw-r--r--arch/sh/configs/se7780_defconfig87
-rw-r--r--arch/sh/configs/sh03_defconfig82
-rw-r--r--arch/sh/configs/sh7710voipgw_defconfig55
-rw-r--r--arch/sh/configs/sh7763rdp_defconfig71
-rw-r--r--arch/sh/configs/sh7785lcr_defconfig96
-rw-r--r--arch/sh/configs/shmin_defconfig54
-rw-r--r--arch/sh/configs/shx3_defconfig83
-rw-r--r--arch/sh/configs/snapgear_defconfig53
-rw-r--r--arch/sh/configs/systemh_defconfig50
-rw-r--r--arch/sh/configs/titan_defconfig90
-rw-r--r--arch/sh/configs/ul2_defconfig69
-rw-r--r--arch/sh/include/asm/Kbuild1
-rw-r--r--arch/sh/include/asm/byteorder.h2
-rw-r--r--arch/sh/include/asm/mutex-llsc.h21
-rw-r--r--arch/sh/include/asm/posix_types_32.h8
-rw-r--r--arch/sh/include/asm/posix_types_64.h8
-rw-r--r--arch/sh/include/asm/syscall_32.h22
-rw-r--r--arch/sh/include/asm/syscall_64.h22
-rw-r--r--arch/sh/include/asm/syscalls_32.h6
-rw-r--r--arch/sh/kernel/cpu/sh2a/clock-sh7201.c4
-rw-r--r--arch/sh/kernel/cpu/sh4/fpu.c2
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7343.c31
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7722.c2
-rw-r--r--arch/sh/kernel/process_64.c2
-rw-r--r--arch/sh/kernel/setup.c8
-rw-r--r--arch/sh/kernel/signal_32.c4
-rw-r--r--arch/sh/kernel/signal_64.c4
-rw-r--r--arch/sh/kernel/sys_sh32.c2
-rw-r--r--arch/sh/kernel/syscalls_32.S4
-rw-r--r--arch/sh/kernel/syscalls_64.S2
-rw-r--r--arch/sh/kernel/traps_32.c9
-rw-r--r--arch/sh/lib/checksum.S69
-rw-r--r--arch/sh/mm/ioremap_64.c2
-rw-r--r--arch/sparc/Kconfig1
-rw-r--r--arch/sparc/configs/sparc32_defconfig290
-rw-r--r--arch/sparc/configs/sparc64_defconfig4
-rw-r--r--arch/sparc/include/asm/Kbuild1
-rw-r--r--arch/sparc/include/asm/byteorder.h1
-rw-r--r--arch/sparc/include/asm/compat.h5
-rw-r--r--arch/sparc/include/asm/cpudata_64.h2
-rw-r--r--arch/sparc/include/asm/irq_64.h4
-rw-r--r--arch/sparc/include/asm/kdebug_64.h2
-rw-r--r--arch/sparc/include/asm/nmi.h10
-rw-r--r--arch/sparc/include/asm/oplib_32.h11
-rw-r--r--arch/sparc/include/asm/oplib_64.h10
-rw-r--r--arch/sparc/include/asm/pcr.h46
-rw-r--r--arch/sparc/include/asm/pil.h1
-rw-r--r--arch/sparc/include/asm/seccomp.h6
-rw-r--r--arch/sparc/include/asm/signal.h4
-rw-r--r--arch/sparc/include/asm/topology_64.h4
-rw-r--r--arch/sparc/kernel/Makefile2
-rw-r--r--arch/sparc/kernel/auxio_32.c3
-rw-r--r--arch/sparc/kernel/auxio_64.c2
-rw-r--r--arch/sparc/kernel/central.c2
-rw-r--r--arch/sparc/kernel/chmc.c1
-rw-r--r--arch/sparc/kernel/cpu.c53
-rw-r--r--arch/sparc/kernel/entry.S4
-rw-r--r--arch/sparc/kernel/head_64.S31
-rw-r--r--arch/sparc/kernel/idprom.c3
-rw-r--r--arch/sparc/kernel/ioport.c15
-rw-r--r--arch/sparc/kernel/irq_32.c1
-rw-r--r--arch/sparc/kernel/irq_64.c73
-rw-r--r--arch/sparc/kernel/kernel.h1
-rw-r--r--arch/sparc/kernel/nmi.c225
-rw-r--r--arch/sparc/kernel/pci.c1
-rw-r--r--arch/sparc/kernel/pcic.c6
-rw-r--r--arch/sparc/kernel/pcr.c158
-rw-r--r--arch/sparc/kernel/process_32.c2
-rw-r--r--arch/sparc/kernel/process_64.c7
-rw-r--r--arch/sparc/kernel/psycho_common.c60
-rw-r--r--arch/sparc/kernel/sbus.c1
-rw-r--r--arch/sparc/kernel/setup_32.c3
-rw-r--r--arch/sparc/kernel/setup_64.c5
-rw-r--r--arch/sparc/kernel/sparc_ksyms_32.c225
-rw-r--r--arch/sparc/kernel/sparc_ksyms_64.c252
-rw-r--r--arch/sparc/kernel/sun4d_smp.c4
-rw-r--r--arch/sparc/kernel/sys_sparc_64.c50
-rw-r--r--arch/sparc/kernel/syscalls.S4
-rw-r--r--arch/sparc/kernel/systbls.h3
-rw-r--r--arch/sparc/kernel/systbls_32.S4
-rw-r--r--arch/sparc/kernel/systbls_64.S20
-rw-r--r--arch/sparc/kernel/time_32.c2
-rw-r--r--arch/sparc/kernel/time_64.c4
-rw-r--r--arch/sparc/kernel/traps_32.c1
-rw-r--r--arch/sparc/kernel/traps_64.c19
-rw-r--r--arch/sparc/kernel/ttable.S3
-rw-r--r--arch/sparc/kernel/unaligned_64.c8
-rw-r--r--arch/sparc/lib/GENbzero.S6
-rw-r--r--arch/sparc/lib/GENcopy_from_user.S8
-rw-r--r--arch/sparc/lib/GENcopy_to_user.S8
-rw-r--r--arch/sparc/lib/Makefile4
-rw-r--r--arch/sparc/lib/NG2copy_from_user.S9
-rw-r--r--arch/sparc/lib/NG2copy_to_user.S9
-rw-r--r--arch/sparc/lib/NGbzero.S6
-rw-r--r--arch/sparc/lib/NGcopy_from_user.S9
-rw-r--r--arch/sparc/lib/NGcopy_to_user.S9
-rw-r--r--arch/sparc/lib/PeeCeeI.c8
-rw-r--r--arch/sparc/lib/U1copy_from_user.S8
-rw-r--r--arch/sparc/lib/U1copy_to_user.S8
-rw-r--r--arch/sparc/lib/U3copy_from_user.S6
-rw-r--r--arch/sparc/lib/U3copy_to_user.S8
-rw-r--r--arch/sparc/lib/bzero.S6
-rw-r--r--arch/sparc/lib/copy_in_user.S61
-rw-r--r--arch/sparc/lib/ksyms.c196
-rw-r--r--arch/sparc/lib/user_fixup.c5
-rw-r--r--arch/sparc/mm/fault_64.c44
-rw-r--r--arch/sparc/mm/generic_32.c1
-rw-r--r--arch/sparc/mm/generic_64.c1
-rw-r--r--arch/sparc/mm/highmem.c2
-rw-r--r--arch/sparc/mm/init_32.c6
-rw-r--r--arch/sparc/mm/init_64.c4
-rw-r--r--arch/sparc/oprofile/init.c232
-rw-r--r--arch/sparc/prom/init_32.c4
-rw-r--r--arch/sparc/prom/misc_32.c3
-rw-r--r--arch/sparc/prom/misc_64.c3
-rw-r--r--arch/sparc/prom/ranges.c3
-rw-r--r--arch/sparc/prom/tree_32.c17
-rw-r--r--arch/sparc/prom/tree_64.c18
-rw-r--r--arch/um/drivers/vde_user.c6
-rw-r--r--arch/x86/Kconfig661
-rw-r--r--arch/x86/Kconfig.cpu108
-rw-r--r--arch/x86/Kconfig.debug74
-rw-r--r--arch/x86/Makefile43
-rw-r--r--arch/x86/boot/Makefile1
-rw-r--r--arch/x86/boot/a20.c79
-rw-r--r--arch/x86/boot/boot.h3
-rw-r--r--arch/x86/boot/compressed/head_32.S8
-rw-r--r--arch/x86/boot/compressed/head_64.S10
-rw-r--r--arch/x86/boot/copy.S40
-rw-r--r--arch/x86/boot/header.S2
-rw-r--r--arch/x86/boot/main.c5
-rw-r--r--arch/x86/boot/pmjump.S16
-rw-r--r--arch/x86/boot/video-vesa.c11
-rw-r--r--arch/x86/boot/voyager.c40
-rw-r--r--arch/x86/configs/i386_defconfig419
-rw-r--r--arch/x86/configs/x86_64_defconfig425
-rw-r--r--arch/x86/ia32/ia32_signal.c405
-rw-r--r--arch/x86/ia32/ia32entry.S16
-rw-r--r--arch/x86/include/asm/Kbuild1
-rw-r--r--arch/x86/include/asm/a.out-core.h4
-rw-r--r--arch/x86/include/asm/acpi.h3
-rw-r--r--arch/x86/include/asm/apic.h442
-rw-r--r--arch/x86/include/asm/apicnum.h12
-rw-r--r--arch/x86/include/asm/apm.h (renamed from arch/x86/include/asm/mach-default/apm.h)0
-rw-r--r--arch/x86/include/asm/arch_hooks.h26
-rw-r--r--arch/x86/include/asm/bigsmp/apic.h155
-rw-r--r--arch/x86/include/asm/bigsmp/apicdef.h13
-rw-r--r--arch/x86/include/asm/bigsmp/ipi.h22
-rw-r--r--arch/x86/include/asm/bitops.h14
-rw-r--r--arch/x86/include/asm/byteorder.h1
-rw-r--r--arch/x86/include/asm/calling.h56
-rw-r--r--arch/x86/include/asm/cpu.h17
-rw-r--r--arch/x86/include/asm/cpufeature.h1
-rw-r--r--arch/x86/include/asm/cpumask.h32
-rw-r--r--arch/x86/include/asm/current.h24
-rw-r--r--arch/x86/include/asm/dma-mapping.h4
-rw-r--r--arch/x86/include/asm/do_timer.h (renamed from arch/x86/include/asm/mach-default/do_timer.h)0
-rw-r--r--arch/x86/include/asm/e820.h1
-rw-r--r--arch/x86/include/asm/elf.h15
-rw-r--r--arch/x86/include/asm/entry_arch.h (renamed from arch/x86/include/asm/mach-default/entry_arch.h)25
-rw-r--r--arch/x86/include/asm/es7000/apic.h240
-rw-r--r--arch/x86/include/asm/es7000/apicdef.h13
-rw-r--r--arch/x86/include/asm/es7000/ipi.h22
-rw-r--r--arch/x86/include/asm/es7000/mpparse.h30
-rw-r--r--arch/x86/include/asm/es7000/wakecpu.h37
-rw-r--r--arch/x86/include/asm/fixmap.h149
-rw-r--r--arch/x86/include/asm/fixmap_32.h119
-rw-r--r--arch/x86/include/asm/fixmap_64.h83
-rw-r--r--arch/x86/include/asm/genapic.h6
-rw-r--r--arch/x86/include/asm/genapic_32.h148
-rw-r--r--arch/x86/include/asm/genapic_64.h66
-rw-r--r--arch/x86/include/asm/hardirq.h49
-rw-r--r--arch/x86/include/asm/hardirq_32.h30
-rw-r--r--arch/x86/include/asm/hardirq_64.h25
-rw-r--r--arch/x86/include/asm/hw_irq.h24
-rw-r--r--arch/x86/include/asm/i8259.h4
-rw-r--r--arch/x86/include/asm/io.h99
-rw-r--r--arch/x86/include/asm/io_32.h88
-rw-r--r--arch/x86/include/asm/io_64.h61
-rw-r--r--arch/x86/include/asm/io_apic.h41
-rw-r--r--arch/x86/include/asm/iomap.h3
-rw-r--r--arch/x86/include/asm/ipi.h75
-rw-r--r--arch/x86/include/asm/irq.h4
-rw-r--r--arch/x86/include/asm/irq_regs.h36
-rw-r--r--arch/x86/include/asm/irq_regs_32.h31
-rw-r--r--arch/x86/include/asm/irq_regs_64.h1
-rw-r--r--arch/x86/include/asm/irq_vectors.h209
-rw-r--r--arch/x86/include/asm/kexec.h27
-rw-r--r--arch/x86/include/asm/kvm.h9
-rw-r--r--arch/x86/include/asm/linkage.h64
-rw-r--r--arch/x86/include/asm/mach-default/mach_apic.h168
-rw-r--r--arch/x86/include/asm/mach-default/mach_apicdef.h24
-rw-r--r--arch/x86/include/asm/mach-default/mach_ipi.h64
-rw-r--r--arch/x86/include/asm/mach-default/mach_mpparse.h17
-rw-r--r--arch/x86/include/asm/mach-default/mach_mpspec.h12
-rw-r--r--arch/x86/include/asm/mach-default/mach_wakecpu.h35
-rw-r--r--arch/x86/include/asm/mach-generic/gpio.h15
-rw-r--r--arch/x86/include/asm/mach-generic/mach_apic.h35
-rw-r--r--arch/x86/include/asm/mach-generic/mach_apicdef.h11
-rw-r--r--arch/x86/include/asm/mach-generic/mach_ipi.h10
-rw-r--r--arch/x86/include/asm/mach-generic/mach_mpparse.h10
-rw-r--r--arch/x86/include/asm/mach-generic/mach_mpspec.h12
-rw-r--r--arch/x86/include/asm/mach-generic/mach_wakecpu.h12
-rw-r--r--arch/x86/include/asm/mach-rdc321x/gpio.h60
-rw-r--r--arch/x86/include/asm/mach-voyager/do_timer.h17
-rw-r--r--arch/x86/include/asm/mach-voyager/entry_arch.h26
-rw-r--r--arch/x86/include/asm/mach-voyager/setup_arch.h12
-rw-r--r--arch/x86/include/asm/mach_timer.h (renamed from arch/x86/include/asm/mach-default/mach_timer.h)0
-rw-r--r--arch/x86/include/asm/mach_traps.h (renamed from arch/x86/include/asm/mach-default/mach_traps.h)0
-rw-r--r--arch/x86/include/asm/math_emu.h29
-rw-r--r--arch/x86/include/asm/mce.h5
-rw-r--r--arch/x86/include/asm/mmu_context.h63
-rw-r--r--arch/x86/include/asm/mmu_context_32.h55
-rw-r--r--arch/x86/include/asm/mmu_context_64.h54
-rw-r--r--arch/x86/include/asm/mmzone_32.h2
-rw-r--r--arch/x86/include/asm/mmzone_64.h2
-rw-r--r--arch/x86/include/asm/mpspec.h39
-rw-r--r--arch/x86/include/asm/mpspec_def.h125
-rw-r--r--arch/x86/include/asm/msr-index.h29
-rw-r--r--arch/x86/include/asm/mtrr.h11
-rw-r--r--arch/x86/include/asm/numa_32.h6
-rw-r--r--arch/x86/include/asm/numaq.h2
-rw-r--r--arch/x86/include/asm/numaq/apic.h142
-rw-r--r--arch/x86/include/asm/numaq/apicdef.h14
-rw-r--r--arch/x86/include/asm/numaq/ipi.h22
-rw-r--r--arch/x86/include/asm/numaq/mpparse.h7
-rw-r--r--arch/x86/include/asm/numaq/wakecpu.h45
-rw-r--r--arch/x86/include/asm/page.h153
-rw-r--r--arch/x86/include/asm/page_32.h87
-rw-r--r--arch/x86/include/asm/page_32_types.h60
-rw-r--r--arch/x86/include/asm/page_64.h101
-rw-r--r--arch/x86/include/asm/page_64_types.h89
-rw-r--r--arch/x86/include/asm/page_types.h57
-rw-r--r--arch/x86/include/asm/paravirt.h483
-rw-r--r--arch/x86/include/asm/pat.h5
-rw-r--r--arch/x86/include/asm/pci-functions.h (renamed from arch/x86/include/asm/mach-default/pci-functions.h)0
-rw-r--r--arch/x86/include/asm/pda.h137
-rw-r--r--arch/x86/include/asm/percpu.h169
-rw-r--r--arch/x86/include/asm/pgalloc.h1
-rw-r--r--arch/x86/include/asm/pgtable-2level.h2
-rw-r--r--arch/x86/include/asm/pgtable-2level_types.h (renamed from arch/x86/include/asm/pgtable-2level-defs.h)17
-rw-r--r--arch/x86/include/asm/pgtable-3level.h35
-rw-r--r--arch/x86/include/asm/pgtable-3level_types.h (renamed from arch/x86/include/asm/pgtable-3level-defs.h)20
-rw-r--r--arch/x86/include/asm/pgtable.h548
-rw-r--r--arch/x86/include/asm/pgtable_32.h88
-rw-r--r--arch/x86/include/asm/pgtable_32_types.h46
-rw-r--r--arch/x86/include/asm/pgtable_64.h113
-rw-r--r--arch/x86/include/asm/pgtable_64_types.h63
-rw-r--r--arch/x86/include/asm/pgtable_types.h328
-rw-r--r--arch/x86/include/asm/prctl.h4
-rw-r--r--arch/x86/include/asm/processor.h47
-rw-r--r--arch/x86/include/asm/proto.h4
-rw-r--r--arch/x86/include/asm/ptrace-abi.h2
-rw-r--r--arch/x86/include/asm/ptrace.h4
-rw-r--r--arch/x86/include/asm/rdc321x_defs.h (renamed from arch/x86/include/asm/mach-rdc321x/rdc321x_defs.h)0
-rw-r--r--arch/x86/include/asm/seccomp_32.h6
-rw-r--r--arch/x86/include/asm/seccomp_64.h8
-rw-r--r--arch/x86/include/asm/segment.h9
-rw-r--r--arch/x86/include/asm/setup.h76
-rw-r--r--arch/x86/include/asm/setup_arch.h (renamed from arch/x86/include/asm/mach-default/setup_arch.h)0
-rw-r--r--arch/x86/include/asm/sigcontext.h2
-rw-r--r--arch/x86/include/asm/sigcontext32.h2
-rw-r--r--arch/x86/include/asm/smp.h65
-rw-r--r--arch/x86/include/asm/smpboot_hooks.h (renamed from arch/x86/include/asm/mach-default/smpboot_hooks.h)6
-rw-r--r--arch/x86/include/asm/spinlock.h70
-rw-r--r--arch/x86/include/asm/stackprotector.h124
-rw-r--r--arch/x86/include/asm/summit/apic.h201
-rw-r--r--arch/x86/include/asm/summit/apicdef.h13
-rw-r--r--arch/x86/include/asm/summit/ipi.h26
-rw-r--r--arch/x86/include/asm/summit/mpparse.h109
-rw-r--r--arch/x86/include/asm/swab.h2
-rw-r--r--arch/x86/include/asm/syscalls.h23
-rw-r--r--arch/x86/include/asm/system.h70
-rw-r--r--arch/x86/include/asm/thread_info.h21
-rw-r--r--arch/x86/include/asm/timer.h2
-rw-r--r--arch/x86/include/asm/timex.h13
-rw-r--r--arch/x86/include/asm/tlbflush.h17
-rw-r--r--arch/x86/include/asm/topology.h31
-rw-r--r--arch/x86/include/asm/trampoline.h1
-rw-r--r--arch/x86/include/asm/traps.h2
-rw-r--r--arch/x86/include/asm/uaccess.h138
-rw-r--r--arch/x86/include/asm/uaccess_64.h10
-rw-r--r--arch/x86/include/asm/uv/uv.h33
-rw-r--r--arch/x86/include/asm/uv/uv_bau.h1
-rw-r--r--arch/x86/include/asm/vic.h61
-rw-r--r--arch/x86/include/asm/voyager.h529
-rw-r--r--arch/x86/include/asm/xen/events.h6
-rw-r--r--arch/x86/include/asm/xen/hypervisor.h28
-rw-r--r--arch/x86/include/asm/xen/page.h2
-rw-r--r--arch/x86/kernel/Makefile42
-rw-r--r--arch/x86/kernel/acpi/boot.c192
-rw-r--r--arch/x86/kernel/acpi/cstate.c70
-rw-r--r--arch/x86/kernel/acpi/realmode/wakeup.S4
-rw-r--r--arch/x86/kernel/acpi/sleep.c5
-rw-r--r--arch/x86/kernel/acpi/wakeup_32.S2
-rw-r--r--arch/x86/kernel/acpi/wakeup_64.S34
-rw-r--r--arch/x86/kernel/alternative.c6
-rw-r--r--arch/x86/kernel/apic/Makefile19
-rw-r--r--arch/x86/kernel/apic/apic.c (renamed from arch/x86/kernel/apic.c)323
-rw-r--r--arch/x86/kernel/apic/apic_flat_64.c (renamed from arch/x86/kernel/genapic_flat_64.c)192
-rw-r--r--arch/x86/kernel/apic/bigsmp_32.c267
-rw-r--r--arch/x86/kernel/apic/es7000_32.c780
-rw-r--r--arch/x86/kernel/apic/io_apic.c (renamed from arch/x86/kernel/io_apic.c)470
-rw-r--r--arch/x86/kernel/apic/ipi.c164
-rw-r--r--arch/x86/kernel/apic/nmi.c (renamed from arch/x86/kernel/nmi.c)13
-rw-r--r--arch/x86/kernel/apic/numaq_32.c557
-rw-r--r--arch/x86/kernel/apic/probe_32.c284
-rw-r--r--arch/x86/kernel/apic/probe_64.c (renamed from arch/x86/kernel/genapic_64.c)55
-rw-r--r--arch/x86/kernel/apic/summit_32.c579
-rw-r--r--arch/x86/kernel/apic/x2apic_cluster.c (renamed from arch/x86/kernel/genx2apic_cluster.c)153
-rw-r--r--arch/x86/kernel/apic/x2apic_phys.c (renamed from arch/x86/kernel/genx2apic_phys.c)150
-rw-r--r--arch/x86/kernel/apic/x2apic_uv_x.c (renamed from arch/x86/kernel/genx2apic_uv_x.c)161
-rw-r--r--arch/x86/kernel/apm_32.c10
-rw-r--r--arch/x86/kernel/asm-offsets_32.c1
-rw-r--r--arch/x86/kernel/asm-offsets_64.c11
-rw-r--r--arch/x86/kernel/cpu/addon_cpuid_features.c54
-rw-r--r--arch/x86/kernel/cpu/amd.c2
-rw-r--r--arch/x86/kernel/cpu/common.c283
-rw-r--r--arch/x86/kernel/cpu/cpufreq/Kconfig11
-rw-r--r--arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c164
-rw-r--r--arch/x86/kernel/cpu/cpufreq/e_powersaver.c6
-rw-r--r--arch/x86/kernel/cpu/cpufreq/p4-clockmod.c8
-rw-r--r--arch/x86/kernel/cpu/cpufreq/powernow-k8.c46
-rw-r--r--arch/x86/kernel/cpu/cpufreq/powernow-k8.h2
-rw-r--r--arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c41
-rw-r--r--arch/x86/kernel/cpu/cpufreq/speedstep-ich.c18
-rw-r--r--arch/x86/kernel/cpu/intel.c33
-rw-r--r--arch/x86/kernel/cpu/intel_cacheinfo.c78
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_32.c2
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_64.c7
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_amd_64.c25
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_intel_64.c11
-rw-r--r--arch/x86/kernel/cpu/mcheck/p4.c4
-rw-r--r--arch/x86/kernel/cpu/mcheck/p5.c2
-rw-r--r--arch/x86/kernel/cpu/mcheck/p6.c2
-rw-r--r--arch/x86/kernel/cpu/mcheck/winchip.c2
-rw-r--r--arch/x86/kernel/cpu/mtrr/generic.c12
-rw-r--r--arch/x86/kernel/cpu/mtrr/main.c3
-rw-r--r--arch/x86/kernel/cpu/perfctr-watchdog.c2
-rw-r--r--arch/x86/kernel/cpu/proc.c20
-rw-r--r--arch/x86/kernel/crash.c4
-rw-r--r--arch/x86/kernel/ds.c31
-rw-r--r--arch/x86/kernel/dumpstack.c2
-rw-r--r--arch/x86/kernel/dumpstack_64.c35
-rw-r--r--arch/x86/kernel/e820.c3
-rw-r--r--arch/x86/kernel/early_printk.c2
-rw-r--r--arch/x86/kernel/efi.c2
-rw-r--r--arch/x86/kernel/efi_64.c1
-rw-r--r--arch/x86/kernel/efi_stub_32.S3
-rw-r--r--arch/x86/kernel/efi_stub_64.S7
-rw-r--r--arch/x86/kernel/entry_32.S457
-rw-r--r--arch/x86/kernel/entry_64.S73
-rw-r--r--arch/x86/kernel/es7000_32.c378
-rw-r--r--arch/x86/kernel/ftrace.c17
-rw-r--r--arch/x86/kernel/head64.c23
-rw-r--r--arch/x86/kernel/head_32.S44
-rw-r--r--arch/x86/kernel/head_64.S25
-rw-r--r--arch/x86/kernel/hpet.c17
-rw-r--r--arch/x86/kernel/i8237.c17
-rw-r--r--arch/x86/kernel/i8259.c9
-rw-r--r--arch/x86/kernel/ioport.c18
-rw-r--r--arch/x86/kernel/ipi.c190
-rw-r--r--arch/x86/kernel/irq.c46
-rw-r--r--arch/x86/kernel/irq_32.c42
-rw-r--r--arch/x86/kernel/irq_64.c65
-rw-r--r--arch/x86/kernel/irqinit_32.c36
-rw-r--r--arch/x86/kernel/irqinit_64.c8
-rw-r--r--arch/x86/kernel/kgdb.c4
-rw-r--r--arch/x86/kernel/kprobes.c2
-rw-r--r--arch/x86/kernel/kvmclock.c1
-rw-r--r--arch/x86/kernel/machine_kexec_32.c2
-rw-r--r--arch/x86/kernel/machine_kexec_64.c82
-rw-r--r--arch/x86/kernel/mca_32.c5
-rw-r--r--arch/x86/kernel/microcode_intel.c10
-rw-r--r--arch/x86/kernel/module_32.c6
-rw-r--r--arch/x86/kernel/module_64.c32
-rw-r--r--arch/x86/kernel/mpparse.c482
-rw-r--r--arch/x86/kernel/msr.c2
-rw-r--r--arch/x86/kernel/numaq_32.c295
-rw-r--r--arch/x86/kernel/olpc.c2
-rw-r--r--arch/x86/kernel/paravirt-spinlocks.c10
-rw-r--r--arch/x86/kernel/paravirt.c82
-rw-r--r--arch/x86/kernel/paravirt_patch_32.c12
-rw-r--r--arch/x86/kernel/paravirt_patch_64.c15
-rw-r--r--arch/x86/kernel/pci-gart_64.c2
-rw-r--r--arch/x86/kernel/probe_roms_32.c2
-rw-r--r--arch/x86/kernel/process.c199
-rw-r--r--arch/x86/kernel/process_32.c259
-rw-r--r--arch/x86/kernel/process_64.c239
-rw-r--r--arch/x86/kernel/ptrace.c39
-rw-r--r--arch/x86/kernel/reboot.c5
-rw-r--r--arch/x86/kernel/relocate_kernel_32.S2
-rw-r--r--arch/x86/kernel/relocate_kernel_64.S129
-rw-r--r--arch/x86/kernel/setup.c141
-rw-r--r--arch/x86/kernel/setup_percpu.c400
-rw-r--r--arch/x86/kernel/signal.c456
-rw-r--r--arch/x86/kernel/smp.c32
-rw-r--r--arch/x86/kernel/smpboot.c277
-rw-r--r--arch/x86/kernel/smpcommon.c30
-rw-r--r--arch/x86/kernel/stacktrace.c2
-rw-r--r--arch/x86/kernel/summit_32.c188
-rw-r--r--arch/x86/kernel/syscall_table_32.S22
-rw-r--r--arch/x86/kernel/time_32.c12
-rw-r--r--arch/x86/kernel/time_64.c4
-rw-r--r--arch/x86/kernel/tlb_32.c256
-rw-r--r--arch/x86/kernel/tlb_uv.c75
-rw-r--r--arch/x86/kernel/trampoline_32.S2
-rw-r--r--arch/x86/kernel/trampoline_64.S23
-rw-r--r--arch/x86/kernel/traps.c78
-rw-r--r--arch/x86/kernel/tsc.c2
-rw-r--r--arch/x86/kernel/visws_quirks.c40
-rw-r--r--arch/x86/kernel/vm86_32.c20
-rw-r--r--arch/x86/kernel/vmi_32.c26
-rw-r--r--arch/x86/kernel/vmiclock_32.c9
-rw-r--r--arch/x86/kernel/vmlinux_32.lds.S11
-rw-r--r--arch/x86/kernel/vmlinux_64.lds.S37
-rw-r--r--arch/x86/kernel/vsmp_64.c24
-rw-r--r--arch/x86/kernel/x8664_ksyms_64.c2
-rw-r--r--arch/x86/kvm/i8254.c2
-rw-r--r--arch/x86/kvm/irq.c7
-rw-r--r--arch/x86/kvm/irq.h1
-rw-r--r--arch/x86/kvm/lapic.c66
-rw-r--r--arch/x86/kvm/lapic.h2
-rw-r--r--arch/x86/kvm/mmu.c9
-rw-r--r--arch/x86/kvm/svm.c1
-rw-r--r--arch/x86/kvm/vmx.c5
-rw-r--r--arch/x86/kvm/x86.c10
-rw-r--r--arch/x86/lguest/Kconfig1
-rw-r--r--arch/x86/lguest/boot.c36
-rw-r--r--arch/x86/lib/getuser.S2
-rw-r--r--arch/x86/lib/usercopy_32.c4
-rw-r--r--arch/x86/lib/usercopy_64.c4
-rw-r--r--arch/x86/mach-default/Makefile5
-rw-r--r--arch/x86/mach-default/setup.c162
-rw-r--r--arch/x86/mach-generic/Makefile11
-rw-r--r--arch/x86/mach-generic/bigsmp.c60
-rw-r--r--arch/x86/mach-generic/default.c27
-rw-r--r--arch/x86/mach-generic/es7000.c103
-rw-r--r--arch/x86/mach-generic/numaq.c54
-rw-r--r--arch/x86/mach-generic/probe.c153
-rw-r--r--arch/x86/mach-generic/summit.c40
-rw-r--r--arch/x86/mach-rdc321x/Makefile5
-rw-r--r--arch/x86/mach-rdc321x/gpio.c194
-rw-r--r--arch/x86/mach-rdc321x/platform.c69
-rw-r--r--arch/x86/mach-voyager/Makefile8
-rw-r--r--arch/x86/mach-voyager/setup.c108
-rw-r--r--arch/x86/mach-voyager/voyager_basic.c317
-rw-r--r--arch/x86/mach-voyager/voyager_cat.c1197
-rw-r--r--arch/x86/mach-voyager/voyager_smp.c1808
-rw-r--r--arch/x86/mach-voyager/voyager_thread.c128
-rw-r--r--arch/x86/math-emu/fpu_entry.c6
-rw-r--r--arch/x86/math-emu/fpu_proto.h4
-rw-r--r--arch/x86/math-emu/fpu_system.h16
-rw-r--r--arch/x86/math-emu/get_address.c75
-rw-r--r--arch/x86/mm/Makefile4
-rw-r--r--arch/x86/mm/extable.c6
-rw-r--r--arch/x86/mm/fault.c1335
-rw-r--r--arch/x86/mm/highmem_32.c34
-rw-r--r--arch/x86/mm/init.c49
-rw-r--r--arch/x86/mm/init_32.c242
-rw-r--r--arch/x86/mm/init_64.c41
-rw-r--r--arch/x86/mm/iomap_32.c21
-rw-r--r--arch/x86/mm/ioremap.c46
-rw-r--r--arch/x86/mm/k8topology_64.c20
-rw-r--r--arch/x86/mm/memtest.c156
-rw-r--r--arch/x86/mm/mmap.c2
-rw-r--r--arch/x86/mm/numa_32.c28
-rw-r--r--arch/x86/mm/numa_64.c219
-rw-r--r--arch/x86/mm/pageattr.c86
-rw-r--r--arch/x86/mm/pat.c182
-rw-r--r--arch/x86/mm/pgtable.c18
-rw-r--r--arch/x86/mm/pgtable_32.c18
-rw-r--r--arch/x86/mm/srat_64.c3
-rw-r--r--arch/x86/mm/tlb.c (renamed from arch/x86/kernel/tlb_64.c)123
-rw-r--r--arch/x86/oprofile/op_model_ppro.c14
-rw-r--r--arch/x86/pci/i386.c12
-rw-r--r--arch/x86/pci/irq.c1
-rw-r--r--arch/x86/pci/numaq_32.c6
-rw-r--r--arch/x86/pci/pcbios.c2
-rw-r--r--arch/x86/power/hibernate_asm_32.S2
-rw-r--r--arch/x86/power/hibernate_asm_64.S2
-rw-r--r--arch/x86/scripts/strip-symbols1
-rw-r--r--arch/x86/vdso/Makefile2
-rw-r--r--arch/x86/vdso/vma.c4
-rw-r--r--arch/x86/xen/Kconfig2
-rw-r--r--arch/x86/xen/Makefile3
-rw-r--r--arch/x86/xen/enlighten.c809
-rw-r--r--arch/x86/xen/irq.c39
-rw-r--r--arch/x86/xen/mmu.c750
-rw-r--r--arch/x86/xen/mmu.h3
-rw-r--r--arch/x86/xen/multicalls.c15
-rw-r--r--arch/x86/xen/multicalls.h6
-rw-r--r--arch/x86/xen/smp.c41
-rw-r--r--arch/x86/xen/suspend.c1
-rw-r--r--arch/x86/xen/xen-asm.S142
-rw-r--r--arch/x86/xen/xen-asm.h12
-rw-r--r--arch/x86/xen/xen-asm_32.S343
-rw-r--r--arch/x86/xen/xen-asm_64.S252
-rw-r--r--arch/x86/xen/xen-head.S2
-rw-r--r--arch/x86/xen/xen-ops.h10
-rw-r--r--arch/xtensa/include/asm/Kbuild2
-rw-r--r--arch/xtensa/include/asm/byteorder.h2
-rw-r--r--arch/xtensa/include/asm/swab.h2
1653 files changed, 62032 insertions, 28568 deletions
diff --git a/arch/Kconfig b/arch/Kconfig
index 2e13aa261929..550dab22daa1 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -62,6 +62,9 @@ config HAVE_EFFICIENT_UNALIGNED_ACCESS
62 See Documentation/unaligned-memory-access.txt for more 62 See Documentation/unaligned-memory-access.txt for more
63 information on the topic of unaligned memory accesses. 63 information on the topic of unaligned memory accesses.
64 64
65config HAVE_SYSCALL_WRAPPERS
66 bool
67
65config KRETPROBES 68config KRETPROBES
66 def_bool y 69 def_bool y
67 depends on KPROBES && HAVE_KRETPROBES 70 depends on KPROBES && HAVE_KRETPROBES
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 6110197757a3..9fb8aae5c391 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -8,6 +8,7 @@ config ALPHA
8 select HAVE_AOUT 8 select HAVE_AOUT
9 select HAVE_IDE 9 select HAVE_IDE
10 select HAVE_OPROFILE 10 select HAVE_OPROFILE
11 select HAVE_SYSCALL_WRAPPERS
11 help 12 help
12 The Alpha is a 64-bit general-purpose processor designed and 13 The Alpha is a 64-bit general-purpose processor designed and
13 marketed by the Digital Equipment Corporation of blessed memory, 14 marketed by the Digital Equipment Corporation of blessed memory,
diff --git a/arch/alpha/include/asm/Kbuild b/arch/alpha/include/asm/Kbuild
index 4dad27360576..b7c8f188b313 100644
--- a/arch/alpha/include/asm/Kbuild
+++ b/arch/alpha/include/asm/Kbuild
@@ -9,4 +9,3 @@ unifdef-y += console.h
9unifdef-y += fpu.h 9unifdef-y += fpu.h
10unifdef-y += sysinfo.h 10unifdef-y += sysinfo.h
11unifdef-y += compiler.h 11unifdef-y += compiler.h
12unifdef-y += swab.h
diff --git a/arch/alpha/include/asm/bug.h b/arch/alpha/include/asm/bug.h
index 695a5ee4b5d3..1720c8ad86fe 100644
--- a/arch/alpha/include/asm/bug.h
+++ b/arch/alpha/include/asm/bug.h
@@ -8,17 +8,12 @@
8 8
9/* ??? Would be nice to use .gprel32 here, but we can't be sure that the 9/* ??? Would be nice to use .gprel32 here, but we can't be sure that the
10 function loaded the GP, so this could fail in modules. */ 10 function loaded the GP, so this could fail in modules. */
11static inline void ATTRIB_NORET __BUG(const char *file, int line) 11#define BUG() do { \
12{ 12 __asm__ __volatile__( \
13 __asm__ __volatile__( 13 "call_pal %0 # bugchk\n\t" \
14 "call_pal %0 # bugchk\n\t" 14 ".long %1\n\t.8byte %2" \
15 ".long %1\n\t.8byte %2" 15 : : "i"(PAL_bugchk), "i"(__LINE__), "i"(__FILE__)); \
16 : : "i" (PAL_bugchk), "i"(line), "i"(file)); 16 for ( ; ; ); } while (0)
17 for ( ; ; )
18 ;
19}
20
21#define BUG() __BUG(__FILE__, __LINE__)
22 17
23#define HAVE_ARCH_BUG 18#define HAVE_ARCH_BUG
24#endif 19#endif
diff --git a/arch/alpha/include/asm/byteorder.h b/arch/alpha/include/asm/byteorder.h
index 6772f3168701..73683093202d 100644
--- a/arch/alpha/include/asm/byteorder.h
+++ b/arch/alpha/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _ALPHA_BYTEORDER_H 1#ifndef _ALPHA_BYTEORDER_H
2#define _ALPHA_BYTEORDER_H 2#define _ALPHA_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/little_endian.h> 4#include <linux/byteorder/little_endian.h>
6 5
7#endif /* _ALPHA_BYTEORDER_H */ 6#endif /* _ALPHA_BYTEORDER_H */
diff --git a/arch/alpha/include/asm/dma-mapping.h b/arch/alpha/include/asm/dma-mapping.h
index a5801ae02e4b..04eb5681448c 100644
--- a/arch/alpha/include/asm/dma-mapping.h
+++ b/arch/alpha/include/asm/dma-mapping.h
@@ -29,6 +29,8 @@
29 29
30#else /* no PCI - no IOMMU. */ 30#else /* no PCI - no IOMMU. */
31 31
32#include <asm/io.h> /* for virt_to_phys() */
33
32struct scatterlist; 34struct scatterlist;
33void *dma_alloc_coherent(struct device *dev, size_t size, 35void *dma_alloc_coherent(struct device *dev, size_t size,
34 dma_addr_t *dma_handle, gfp_t gfp); 36 dma_addr_t *dma_handle, gfp_t gfp);
diff --git a/arch/alpha/include/asm/machvec.h b/arch/alpha/include/asm/machvec.h
index a86c083cdf7f..fea4ea75b79d 100644
--- a/arch/alpha/include/asm/machvec.h
+++ b/arch/alpha/include/asm/machvec.h
@@ -21,6 +21,7 @@ struct pci_dev;
21struct pci_ops; 21struct pci_ops;
22struct pci_controller; 22struct pci_controller;
23struct _alpha_agp_info; 23struct _alpha_agp_info;
24struct rtc_time;
24 25
25struct alpha_machine_vector 26struct alpha_machine_vector
26{ 27{
@@ -94,6 +95,9 @@ struct alpha_machine_vector
94 95
95 struct _alpha_agp_info *(*agp_info)(void); 96 struct _alpha_agp_info *(*agp_info)(void);
96 97
98 unsigned int (*rtc_get_time)(struct rtc_time *);
99 int (*rtc_set_time)(struct rtc_time *);
100
97 const char *vector_name; 101 const char *vector_name;
98 102
99 /* NUMA information */ 103 /* NUMA information */
diff --git a/arch/alpha/include/asm/pgalloc.h b/arch/alpha/include/asm/pgalloc.h
index fd090155dccd..bc2a0daf2d92 100644
--- a/arch/alpha/include/asm/pgalloc.h
+++ b/arch/alpha/include/asm/pgalloc.h
@@ -50,7 +50,12 @@ pmd_free(struct mm_struct *mm, pmd_t *pmd)
50 free_page((unsigned long)pmd); 50 free_page((unsigned long)pmd);
51} 51}
52 52
53extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr); 53static inline pte_t *
54pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
55{
56 pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
57 return pte;
58}
54 59
55static inline void 60static inline void
56pte_free_kernel(struct mm_struct *mm, pte_t *pte) 61pte_free_kernel(struct mm_struct *mm, pte_t *pte)
diff --git a/arch/alpha/include/asm/rtc.h b/arch/alpha/include/asm/rtc.h
index 4e854b1333eb..1f7fba671ae6 100644
--- a/arch/alpha/include/asm/rtc.h
+++ b/arch/alpha/include/asm/rtc.h
@@ -1,9 +1,15 @@
1#ifndef _ALPHA_RTC_H 1#ifndef _ALPHA_RTC_H
2#define _ALPHA_RTC_H 2#define _ALPHA_RTC_H
3 3
4/* 4#if defined(CONFIG_ALPHA_GENERIC)
5 * Alpha uses the default access methods for the RTC. 5# define get_rtc_time alpha_mv.rtc_get_time
6 */ 6# define set_rtc_time alpha_mv.rtc_set_time
7#else
8# if defined(CONFIG_ALPHA_MARVEL) && defined(CONFIG_SMP)
9# define get_rtc_time marvel_get_rtc_time
10# define set_rtc_time marvel_set_rtc_time
11# endif
12#endif
7 13
8#include <asm-generic/rtc.h> 14#include <asm-generic/rtc.h>
9 15
diff --git a/arch/alpha/include/asm/statfs.h b/arch/alpha/include/asm/statfs.h
index de35cd438a10..ccd2e186bfd8 100644
--- a/arch/alpha/include/asm/statfs.h
+++ b/arch/alpha/include/asm/statfs.h
@@ -1,6 +1,8 @@
1#ifndef _ALPHA_STATFS_H 1#ifndef _ALPHA_STATFS_H
2#define _ALPHA_STATFS_H 2#define _ALPHA_STATFS_H
3 3
4#include <linux/types.h>
5
4/* Alpha is the only 64-bit platform with 32-bit statfs. And doesn't 6/* Alpha is the only 64-bit platform with 32-bit statfs. And doesn't
5 even seem to implement statfs64 */ 7 even seem to implement statfs64 */
6#define __statfs_word __u32 8#define __statfs_word __u32
diff --git a/arch/alpha/include/asm/swab.h b/arch/alpha/include/asm/swab.h
index 68e7089e02d5..4d682b16c7c4 100644
--- a/arch/alpha/include/asm/swab.h
+++ b/arch/alpha/include/asm/swab.h
@@ -1,7 +1,7 @@
1#ifndef _ALPHA_SWAB_H 1#ifndef _ALPHA_SWAB_H
2#define _ALPHA_SWAB_H 2#define _ALPHA_SWAB_H
3 3
4#include <asm/types.h> 4#include <linux/types.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
6#include <asm/compiler.h> 6#include <asm/compiler.h>
7 7
diff --git a/arch/alpha/kernel/.gitignore b/arch/alpha/kernel/.gitignore
new file mode 100644
index 000000000000..c5f676c3c224
--- /dev/null
+++ b/arch/alpha/kernel/.gitignore
@@ -0,0 +1 @@
vmlinux.lds
diff --git a/arch/alpha/kernel/core_marvel.c b/arch/alpha/kernel/core_marvel.c
index 9cd8dca742a7..e302daecbe56 100644
--- a/arch/alpha/kernel/core_marvel.c
+++ b/arch/alpha/kernel/core_marvel.c
@@ -658,16 +658,8 @@ __marvel_rtc_io(u8 b, unsigned long addr, int write)
658 rtc_access.data = bcd2bin(b); 658 rtc_access.data = bcd2bin(b);
659 rtc_access.function = 0x48 + !write; /* GET/PUT_TOY */ 659 rtc_access.function = 0x48 + !write; /* GET/PUT_TOY */
660 660
661#ifdef CONFIG_SMP
662 if (smp_processor_id() != boot_cpuid)
663 smp_call_function_single(boot_cpuid,
664 __marvel_access_rtc,
665 &rtc_access, 1);
666 else
667 __marvel_access_rtc(&rtc_access);
668#else
669 __marvel_access_rtc(&rtc_access); 661 __marvel_access_rtc(&rtc_access);
670#endif 662
671 ret = bin2bcd(rtc_access.data); 663 ret = bin2bcd(rtc_access.data);
672 break; 664 break;
673 665
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S
index f77345bc66a9..e4a54b615894 100644
--- a/arch/alpha/kernel/entry.S
+++ b/arch/alpha/kernel/entry.S
@@ -896,9 +896,9 @@ sys_getxpid:
896.end sys_getxpid 896.end sys_getxpid
897 897
898 .align 4 898 .align 4
899 .globl sys_pipe 899 .globl sys_alpha_pipe
900 .ent sys_pipe 900 .ent sys_alpha_pipe
901sys_pipe: 901sys_alpha_pipe:
902 lda $sp, -16($sp) 902 lda $sp, -16($sp)
903 stq $26, 0($sp) 903 stq $26, 0($sp)
904 .prologue 0 904 .prologue 0
@@ -916,7 +916,7 @@ sys_pipe:
916 stq $1, 80+16($sp) 916 stq $1, 80+16($sp)
9171: lda $sp, 16($sp) 9171: lda $sp, 16($sp)
918 ret 918 ret
919.end sys_pipe 919.end sys_alpha_pipe
920 920
921 .align 4 921 .align 4
922 .globl sys_execve 922 .globl sys_execve
@@ -933,7 +933,7 @@ sys_execve:
933osf_sigprocmask: 933osf_sigprocmask:
934 .prologue 0 934 .prologue 0
935 mov $sp, $18 935 mov $sp, $18
936 jmp $31, do_osf_sigprocmask 936 jmp $31, sys_osf_sigprocmask
937.end osf_sigprocmask 937.end osf_sigprocmask
938 938
939 .align 4 939 .align 4
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c
index 703731accda6..7bc7489223f3 100644
--- a/arch/alpha/kernel/irq.c
+++ b/arch/alpha/kernel/irq.c
@@ -55,7 +55,7 @@ int irq_select_affinity(unsigned int irq)
55 cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0); 55 cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);
56 last_cpu = cpu; 56 last_cpu = cpu;
57 57
58 irq_desc[irq].affinity = cpumask_of_cpu(cpu); 58 cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu));
59 irq_desc[irq].chip->set_affinity(irq, cpumask_of(cpu)); 59 irq_desc[irq].chip->set_affinity(irq, cpumask_of(cpu));
60 return 0; 60 return 0;
61} 61}
diff --git a/arch/alpha/kernel/irq_srm.c b/arch/alpha/kernel/irq_srm.c
index 32212014fbe9..a03fbca4940e 100644
--- a/arch/alpha/kernel/irq_srm.c
+++ b/arch/alpha/kernel/irq_srm.c
@@ -63,6 +63,8 @@ init_srm_irqs(long max, unsigned long ignore_mask)
63{ 63{
64 long i; 64 long i;
65 65
66 if (NR_IRQS <= 16)
67 return;
66 for (i = 16; i < max; ++i) { 68 for (i = 16; i < max; ++i) {
67 if (i < 64 && ((ignore_mask >> i) & 1)) 69 if (i < 64 && ((ignore_mask >> i) & 1))
68 continue; 70 continue;
diff --git a/arch/alpha/kernel/machvec_impl.h b/arch/alpha/kernel/machvec_impl.h
index 466c9dff8181..512685f78097 100644
--- a/arch/alpha/kernel/machvec_impl.h
+++ b/arch/alpha/kernel/machvec_impl.h
@@ -40,7 +40,10 @@
40#define CAT1(x,y) x##y 40#define CAT1(x,y) x##y
41#define CAT(x,y) CAT1(x,y) 41#define CAT(x,y) CAT1(x,y)
42 42
43#define DO_DEFAULT_RTC .rtc_port = 0x70 43#define DO_DEFAULT_RTC \
44 .rtc_port = 0x70, \
45 .rtc_get_time = common_get_rtc_time, \
46 .rtc_set_time = common_set_rtc_time
44 47
45#define DO_EV4_MMU \ 48#define DO_EV4_MMU \
46 .max_asn = EV4_MAX_ASN, \ 49 .max_asn = EV4_MAX_ASN, \
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
index 18a3ea1aac51..ae41f097864b 100644
--- a/arch/alpha/kernel/osf_sys.c
+++ b/arch/alpha/kernel/osf_sys.c
@@ -54,8 +54,7 @@ extern int do_pipe(int *);
54 * identical to OSF as we don't return 0 on success, but doing otherwise 54 * identical to OSF as we don't return 0 on success, but doing otherwise
55 * would require changes to libc. Hopefully this is good enough. 55 * would require changes to libc. Hopefully this is good enough.
56 */ 56 */
57asmlinkage unsigned long 57SYSCALL_DEFINE1(osf_brk, unsigned long, brk)
58osf_brk(unsigned long brk)
59{ 58{
60 unsigned long retval = sys_brk(brk); 59 unsigned long retval = sys_brk(brk);
61 if (brk && brk != retval) 60 if (brk && brk != retval)
@@ -66,9 +65,9 @@ osf_brk(unsigned long brk)
66/* 65/*
67 * This is pure guess-work.. 66 * This is pure guess-work..
68 */ 67 */
69asmlinkage int 68SYSCALL_DEFINE4(osf_set_program_attributes, unsigned long, text_start,
70osf_set_program_attributes(unsigned long text_start, unsigned long text_len, 69 unsigned long, text_len, unsigned long, bss_start,
71 unsigned long bss_start, unsigned long bss_len) 70 unsigned long, bss_len)
72{ 71{
73 struct mm_struct *mm; 72 struct mm_struct *mm;
74 73
@@ -146,9 +145,9 @@ Efault:
146 return -EFAULT; 145 return -EFAULT;
147} 146}
148 147
149asmlinkage int 148SYSCALL_DEFINE4(osf_getdirentries, unsigned int, fd,
150osf_getdirentries(unsigned int fd, struct osf_dirent __user *dirent, 149 struct osf_dirent __user *, dirent, unsigned int, count,
151 unsigned int count, long __user *basep) 150 long __user *, basep)
152{ 151{
153 int error; 152 int error;
154 struct file *file; 153 struct file *file;
@@ -177,9 +176,9 @@ osf_getdirentries(unsigned int fd, struct osf_dirent __user *dirent,
177 176
178#undef NAME_OFFSET 177#undef NAME_OFFSET
179 178
180asmlinkage unsigned long 179SYSCALL_DEFINE6(osf_mmap, unsigned long, addr, unsigned long, len,
181osf_mmap(unsigned long addr, unsigned long len, unsigned long prot, 180 unsigned long, prot, unsigned long, flags, unsigned long, fd,
182 unsigned long flags, unsigned long fd, unsigned long off) 181 unsigned long, off)
183{ 182{
184 struct file *file = NULL; 183 struct file *file = NULL;
185 unsigned long ret = -EBADF; 184 unsigned long ret = -EBADF;
@@ -254,8 +253,8 @@ do_osf_statfs(struct dentry * dentry, struct osf_statfs __user *buffer,
254 return error; 253 return error;
255} 254}
256 255
257asmlinkage int 256SYSCALL_DEFINE3(osf_statfs, char __user *, pathname,
258osf_statfs(char __user *pathname, struct osf_statfs __user *buffer, unsigned long bufsiz) 257 struct osf_statfs __user *, buffer, unsigned long, bufsiz)
259{ 258{
260 struct path path; 259 struct path path;
261 int retval; 260 int retval;
@@ -268,8 +267,8 @@ osf_statfs(char __user *pathname, struct osf_statfs __user *buffer, unsigned lon
268 return retval; 267 return retval;
269} 268}
270 269
271asmlinkage int 270SYSCALL_DEFINE3(osf_fstatfs, unsigned long, fd,
272osf_fstatfs(unsigned long fd, struct osf_statfs __user *buffer, unsigned long bufsiz) 271 struct osf_statfs __user *, buffer, unsigned long, bufsiz)
273{ 272{
274 struct file *file; 273 struct file *file;
275 int retval; 274 int retval;
@@ -368,8 +367,8 @@ osf_procfs_mount(char *dirname, struct procfs_args __user *args, int flags)
368 return do_mount("", dirname, "proc", flags, NULL); 367 return do_mount("", dirname, "proc", flags, NULL);
369} 368}
370 369
371asmlinkage int 370SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, char __user *, path,
372osf_mount(unsigned long typenr, char __user *path, int flag, void __user *data) 371 int, flag, void __user *, data)
373{ 372{
374 int retval = -EINVAL; 373 int retval = -EINVAL;
375 char *name; 374 char *name;
@@ -399,8 +398,7 @@ osf_mount(unsigned long typenr, char __user *path, int flag, void __user *data)
399 return retval; 398 return retval;
400} 399}
401 400
402asmlinkage int 401SYSCALL_DEFINE1(osf_utsname, char __user *, name)
403osf_utsname(char __user *name)
404{ 402{
405 int error; 403 int error;
406 404
@@ -423,14 +421,12 @@ osf_utsname(char __user *name)
423 return error; 421 return error;
424} 422}
425 423
426asmlinkage unsigned long 424SYSCALL_DEFINE0(getpagesize)
427sys_getpagesize(void)
428{ 425{
429 return PAGE_SIZE; 426 return PAGE_SIZE;
430} 427}
431 428
432asmlinkage unsigned long 429SYSCALL_DEFINE0(getdtablesize)
433sys_getdtablesize(void)
434{ 430{
435 return sysctl_nr_open; 431 return sysctl_nr_open;
436} 432}
@@ -438,8 +434,7 @@ sys_getdtablesize(void)
438/* 434/*
439 * For compatibility with OSF/1 only. Use utsname(2) instead. 435 * For compatibility with OSF/1 only. Use utsname(2) instead.
440 */ 436 */
441asmlinkage int 437SYSCALL_DEFINE2(osf_getdomainname, char __user *, name, int, namelen)
442osf_getdomainname(char __user *name, int namelen)
443{ 438{
444 unsigned len; 439 unsigned len;
445 int i; 440 int i;
@@ -527,8 +522,8 @@ enum pl_code {
527 PL_DEL = 5, PL_FDEL = 6 522 PL_DEL = 5, PL_FDEL = 6
528}; 523};
529 524
530asmlinkage long 525SYSCALL_DEFINE2(osf_proplist_syscall, enum pl_code, code,
531osf_proplist_syscall(enum pl_code code, union pl_args __user *args) 526 union pl_args __user *, args)
532{ 527{
533 long error; 528 long error;
534 int __user *min_buf_size_ptr; 529 int __user *min_buf_size_ptr;
@@ -567,8 +562,8 @@ osf_proplist_syscall(enum pl_code code, union pl_args __user *args)
567 return error; 562 return error;
568} 563}
569 564
570asmlinkage int 565SYSCALL_DEFINE2(osf_sigstack, struct sigstack __user *, uss,
571osf_sigstack(struct sigstack __user *uss, struct sigstack __user *uoss) 566 struct sigstack __user *, uoss)
572{ 567{
573 unsigned long usp = rdusp(); 568 unsigned long usp = rdusp();
574 unsigned long oss_sp = current->sas_ss_sp + current->sas_ss_size; 569 unsigned long oss_sp = current->sas_ss_sp + current->sas_ss_size;
@@ -608,8 +603,7 @@ osf_sigstack(struct sigstack __user *uss, struct sigstack __user *uoss)
608 return error; 603 return error;
609} 604}
610 605
611asmlinkage long 606SYSCALL_DEFINE3(osf_sysinfo, int, command, char __user *, buf, long, count)
612osf_sysinfo(int command, char __user *buf, long count)
613{ 607{
614 char *sysinfo_table[] = { 608 char *sysinfo_table[] = {
615 utsname()->sysname, 609 utsname()->sysname,
@@ -647,9 +641,8 @@ osf_sysinfo(int command, char __user *buf, long count)
647 return err; 641 return err;
648} 642}
649 643
650asmlinkage unsigned long 644SYSCALL_DEFINE5(osf_getsysinfo, unsigned long, op, void __user *, buffer,
651osf_getsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes, 645 unsigned long, nbytes, int __user *, start, void __user *, arg)
652 int __user *start, void __user *arg)
653{ 646{
654 unsigned long w; 647 unsigned long w;
655 struct percpu_struct *cpu; 648 struct percpu_struct *cpu;
@@ -705,9 +698,8 @@ osf_getsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes,
705 return -EOPNOTSUPP; 698 return -EOPNOTSUPP;
706} 699}
707 700
708asmlinkage unsigned long 701SYSCALL_DEFINE5(osf_setsysinfo, unsigned long, op, void __user *, buffer,
709osf_setsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes, 702 unsigned long, nbytes, int __user *, start, void __user *, arg)
710 int __user *start, void __user *arg)
711{ 703{
712 switch (op) { 704 switch (op) {
713 case SSI_IEEE_FP_CONTROL: { 705 case SSI_IEEE_FP_CONTROL: {
@@ -880,8 +872,8 @@ jiffies_to_timeval32(unsigned long jiffies, struct timeval32 *value)
880 value->tv_sec = jiffies / HZ; 872 value->tv_sec = jiffies / HZ;
881} 873}
882 874
883asmlinkage int 875SYSCALL_DEFINE2(osf_gettimeofday, struct timeval32 __user *, tv,
884osf_gettimeofday(struct timeval32 __user *tv, struct timezone __user *tz) 876 struct timezone __user *, tz)
885{ 877{
886 if (tv) { 878 if (tv) {
887 struct timeval ktv; 879 struct timeval ktv;
@@ -896,8 +888,8 @@ osf_gettimeofday(struct timeval32 __user *tv, struct timezone __user *tz)
896 return 0; 888 return 0;
897} 889}
898 890
899asmlinkage int 891SYSCALL_DEFINE2(osf_settimeofday, struct timeval32 __user *, tv,
900osf_settimeofday(struct timeval32 __user *tv, struct timezone __user *tz) 892 struct timezone __user *, tz)
901{ 893{
902 struct timespec kts; 894 struct timespec kts;
903 struct timezone ktz; 895 struct timezone ktz;
@@ -916,8 +908,7 @@ osf_settimeofday(struct timeval32 __user *tv, struct timezone __user *tz)
916 return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL); 908 return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL);
917} 909}
918 910
919asmlinkage int 911SYSCALL_DEFINE2(osf_getitimer, int, which, struct itimerval32 __user *, it)
920osf_getitimer(int which, struct itimerval32 __user *it)
921{ 912{
922 struct itimerval kit; 913 struct itimerval kit;
923 int error; 914 int error;
@@ -929,8 +920,8 @@ osf_getitimer(int which, struct itimerval32 __user *it)
929 return error; 920 return error;
930} 921}
931 922
932asmlinkage int 923SYSCALL_DEFINE3(osf_setitimer, int, which, struct itimerval32 __user *, in,
933osf_setitimer(int which, struct itimerval32 __user *in, struct itimerval32 __user *out) 924 struct itimerval32 __user *, out)
934{ 925{
935 struct itimerval kin, kout; 926 struct itimerval kin, kout;
936 int error; 927 int error;
@@ -952,8 +943,8 @@ osf_setitimer(int which, struct itimerval32 __user *in, struct itimerval32 __use
952 943
953} 944}
954 945
955asmlinkage int 946SYSCALL_DEFINE2(osf_utimes, char __user *, filename,
956osf_utimes(char __user *filename, struct timeval32 __user *tvs) 947 struct timeval32 __user *, tvs)
957{ 948{
958 struct timespec tv[2]; 949 struct timespec tv[2];
959 950
@@ -979,9 +970,8 @@ osf_utimes(char __user *filename, struct timeval32 __user *tvs)
979#define MAX_SELECT_SECONDS \ 970#define MAX_SELECT_SECONDS \
980 ((unsigned long) (MAX_SCHEDULE_TIMEOUT / HZ)-1) 971 ((unsigned long) (MAX_SCHEDULE_TIMEOUT / HZ)-1)
981 972
982asmlinkage int 973SYSCALL_DEFINE5(osf_select, int, n, fd_set __user *, inp, fd_set __user *, outp,
983osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, 974 fd_set __user *, exp, struct timeval32 __user *, tvp)
984 struct timeval32 __user *tvp)
985{ 975{
986 struct timespec end_time, *to = NULL; 976 struct timespec end_time, *to = NULL;
987 if (tvp) { 977 if (tvp) {
@@ -1026,8 +1016,7 @@ struct rusage32 {
1026 long ru_nivcsw; /* involuntary " */ 1016 long ru_nivcsw; /* involuntary " */
1027}; 1017};
1028 1018
1029asmlinkage int 1019SYSCALL_DEFINE2(osf_getrusage, int, who, struct rusage32 __user *, ru)
1030osf_getrusage(int who, struct rusage32 __user *ru)
1031{ 1020{
1032 struct rusage32 r; 1021 struct rusage32 r;
1033 1022
@@ -1053,9 +1042,8 @@ osf_getrusage(int who, struct rusage32 __user *ru)
1053 return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0; 1042 return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0;
1054} 1043}
1055 1044
1056asmlinkage long 1045SYSCALL_DEFINE4(osf_wait4, pid_t, pid, int __user *, ustatus, int, options,
1057osf_wait4(pid_t pid, int __user *ustatus, int options, 1046 struct rusage32 __user *, ur)
1058 struct rusage32 __user *ur)
1059{ 1047{
1060 struct rusage r; 1048 struct rusage r;
1061 long ret, err; 1049 long ret, err;
@@ -1101,8 +1089,8 @@ osf_wait4(pid_t pid, int __user *ustatus, int options,
1101 * seems to be a timeval pointer, and I suspect the second 1089 * seems to be a timeval pointer, and I suspect the second
1102 * one is the time remaining.. Ho humm.. No documentation. 1090 * one is the time remaining.. Ho humm.. No documentation.
1103 */ 1091 */
1104asmlinkage int 1092SYSCALL_DEFINE2(osf_usleep_thread, struct timeval32 __user *, sleep,
1105osf_usleep_thread(struct timeval32 __user *sleep, struct timeval32 __user *remain) 1093 struct timeval32 __user *, remain)
1106{ 1094{
1107 struct timeval tmp; 1095 struct timeval tmp;
1108 unsigned long ticks; 1096 unsigned long ticks;
@@ -1155,8 +1143,7 @@ struct timex32 {
1155 int :32; int :32; int :32; int :32; 1143 int :32; int :32; int :32; int :32;
1156}; 1144};
1157 1145
1158asmlinkage int 1146SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p)
1159sys_old_adjtimex(struct timex32 __user *txc_p)
1160{ 1147{
1161 struct timex txc; 1148 struct timex txc;
1162 int ret; 1149 int ret;
@@ -1267,8 +1254,8 @@ osf_fix_iov_len(const struct iovec __user *iov, unsigned long count)
1267 return 0; 1254 return 0;
1268} 1255}
1269 1256
1270asmlinkage ssize_t 1257SYSCALL_DEFINE3(osf_readv, unsigned long, fd,
1271osf_readv(unsigned long fd, const struct iovec __user * vector, unsigned long count) 1258 const struct iovec __user *, vector, unsigned long, count)
1272{ 1259{
1273 if (unlikely(personality(current->personality) == PER_OSF4)) 1260 if (unlikely(personality(current->personality) == PER_OSF4))
1274 if (osf_fix_iov_len(vector, count)) 1261 if (osf_fix_iov_len(vector, count))
@@ -1276,8 +1263,8 @@ osf_readv(unsigned long fd, const struct iovec __user * vector, unsigned long co
1276 return sys_readv(fd, vector, count); 1263 return sys_readv(fd, vector, count);
1277} 1264}
1278 1265
1279asmlinkage ssize_t 1266SYSCALL_DEFINE3(osf_writev, unsigned long, fd,
1280osf_writev(unsigned long fd, const struct iovec __user * vector, unsigned long count) 1267 const struct iovec __user *, vector, unsigned long, count)
1281{ 1268{
1282 if (unlikely(personality(current->personality) == PER_OSF4)) 1269 if (unlikely(personality(current->personality) == PER_OSF4))
1283 if (osf_fix_iov_len(vector, count)) 1270 if (osf_fix_iov_len(vector, count))
diff --git a/arch/alpha/kernel/pci-noop.c b/arch/alpha/kernel/pci-noop.c
index 8ac08311f5a5..c19a376520f4 100644
--- a/arch/alpha/kernel/pci-noop.c
+++ b/arch/alpha/kernel/pci-noop.c
@@ -109,7 +109,8 @@ sys_pciconfig_write(unsigned long bus, unsigned long dfn,
109/* Stubs for the routines in pci_iommu.c: */ 109/* Stubs for the routines in pci_iommu.c: */
110 110
111void * 111void *
112pci_alloc_consistent(struct pci_dev *pdev, size_t size, dma_addr_t *dma_addrp) 112__pci_alloc_consistent(struct pci_dev *pdev, size_t size,
113 dma_addr_t *dma_addrp, gfp_t gfp)
113{ 114{
114 return NULL; 115 return NULL;
115} 116}
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c
index f238370c907d..8d0097f10208 100644
--- a/arch/alpha/kernel/process.c
+++ b/arch/alpha/kernel/process.c
@@ -93,8 +93,8 @@ common_shutdown_1(void *generic_ptr)
93 if (cpuid != boot_cpuid) { 93 if (cpuid != boot_cpuid) {
94 flags |= 0x00040000UL; /* "remain halted" */ 94 flags |= 0x00040000UL; /* "remain halted" */
95 *pflags = flags; 95 *pflags = flags;
96 cpu_clear(cpuid, cpu_present_map); 96 set_cpu_present(cpuid, false);
97 cpu_clear(cpuid, cpu_possible_map); 97 set_cpu_possible(cpuid, false);
98 halt(); 98 halt();
99 } 99 }
100#endif 100#endif
@@ -120,8 +120,8 @@ common_shutdown_1(void *generic_ptr)
120 120
121#ifdef CONFIG_SMP 121#ifdef CONFIG_SMP
122 /* Wait for the secondaries to halt. */ 122 /* Wait for the secondaries to halt. */
123 cpu_clear(boot_cpuid, cpu_present_map); 123 set_cpu_present(boot_cpuid, false);
124 cpu_clear(boot_cpuid, cpu_possible_map); 124 set_cpu_possible(boot_cpuid, false);
125 while (cpus_weight(cpu_present_map)) 125 while (cpus_weight(cpu_present_map))
126 barrier(); 126 barrier();
127#endif 127#endif
diff --git a/arch/alpha/kernel/proto.h b/arch/alpha/kernel/proto.h
index 708d5ca87782..fe14c6747cd6 100644
--- a/arch/alpha/kernel/proto.h
+++ b/arch/alpha/kernel/proto.h
@@ -145,6 +145,8 @@ extern void smp_percpu_timer_interrupt(struct pt_regs *);
145extern irqreturn_t timer_interrupt(int irq, void *dev); 145extern irqreturn_t timer_interrupt(int irq, void *dev);
146extern void common_init_rtc(void); 146extern void common_init_rtc(void);
147extern unsigned long est_cycle_freq; 147extern unsigned long est_cycle_freq;
148extern unsigned int common_get_rtc_time(struct rtc_time *time);
149extern int common_set_rtc_time(struct rtc_time *time);
148 150
149/* smc37c93x.c */ 151/* smc37c93x.c */
150extern void SMC93x_Init(void); 152extern void SMC93x_Init(void);
diff --git a/arch/alpha/kernel/signal.c b/arch/alpha/kernel/signal.c
index 410af4f3140e..df65eaa84c4c 100644
--- a/arch/alpha/kernel/signal.c
+++ b/arch/alpha/kernel/signal.c
@@ -19,6 +19,7 @@
19#include <linux/tty.h> 19#include <linux/tty.h>
20#include <linux/binfmts.h> 20#include <linux/binfmts.h>
21#include <linux/bitops.h> 21#include <linux/bitops.h>
22#include <linux/syscalls.h>
22 23
23#include <asm/uaccess.h> 24#include <asm/uaccess.h>
24#include <asm/sigcontext.h> 25#include <asm/sigcontext.h>
@@ -51,8 +52,8 @@ static void do_signal(struct pt_regs *, struct switch_stack *,
51 * Note that we don't need to acquire the kernel lock for SMP 52 * Note that we don't need to acquire the kernel lock for SMP
52 * operation, as all of this is local to this thread. 53 * operation, as all of this is local to this thread.
53 */ 54 */
54asmlinkage unsigned long 55SYSCALL_DEFINE3(osf_sigprocmask, int, how, unsigned long, newmask,
55do_osf_sigprocmask(int how, unsigned long newmask, struct pt_regs *regs) 56 struct pt_regs *, regs)
56{ 57{
57 unsigned long oldmask = -EINVAL; 58 unsigned long oldmask = -EINVAL;
58 59
@@ -81,9 +82,9 @@ do_osf_sigprocmask(int how, unsigned long newmask, struct pt_regs *regs)
81 return oldmask; 82 return oldmask;
82} 83}
83 84
84asmlinkage int 85SYSCALL_DEFINE3(osf_sigaction, int, sig,
85osf_sigaction(int sig, const struct osf_sigaction __user *act, 86 const struct osf_sigaction __user *, act,
86 struct osf_sigaction __user *oact) 87 struct osf_sigaction __user *, oact)
87{ 88{
88 struct k_sigaction new_ka, old_ka; 89 struct k_sigaction new_ka, old_ka;
89 int ret; 90 int ret;
@@ -112,10 +113,9 @@ osf_sigaction(int sig, const struct osf_sigaction __user *act,
112 return ret; 113 return ret;
113} 114}
114 115
115asmlinkage long 116SYSCALL_DEFINE5(rt_sigaction, int, sig, const struct sigaction __user *, act,
116sys_rt_sigaction(int sig, const struct sigaction __user *act, 117 struct sigaction __user *, oact,
117 struct sigaction __user *oact, 118 size_t, sigsetsize, void __user *, restorer)
118 size_t sigsetsize, void __user *restorer)
119{ 119{
120 struct k_sigaction new_ka, old_ka; 120 struct k_sigaction new_ka, old_ka;
121 int ret; 121 int ret;
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c
index d953e510f68d..b1fe5674c3a1 100644
--- a/arch/alpha/kernel/smp.c
+++ b/arch/alpha/kernel/smp.c
@@ -121,10 +121,11 @@ smp_callin(void)
121{ 121{
122 int cpuid = hard_smp_processor_id(); 122 int cpuid = hard_smp_processor_id();
123 123
124 if (cpu_test_and_set(cpuid, cpu_online_map)) { 124 if (cpu_online(cpuid)) {
125 printk("??, cpu 0x%x already present??\n", cpuid); 125 printk("??, cpu 0x%x already present??\n", cpuid);
126 BUG(); 126 BUG();
127 } 127 }
128 set_cpu_online(cpuid, true);
128 129
129 /* Turn on machine checks. */ 130 /* Turn on machine checks. */
130 wrmces(7); 131 wrmces(7);
@@ -435,8 +436,8 @@ setup_smp(void)
435 ((char *)cpubase + i*hwrpb->processor_size); 436 ((char *)cpubase + i*hwrpb->processor_size);
436 if ((cpu->flags & 0x1cc) == 0x1cc) { 437 if ((cpu->flags & 0x1cc) == 0x1cc) {
437 smp_num_probed++; 438 smp_num_probed++;
438 cpu_set(i, cpu_possible_map); 439 set_cpu_possible(i, true);
439 cpu_set(i, cpu_present_map); 440 set_cpu_present(i, true);
440 cpu->pal_revision = boot_cpu_palrev; 441 cpu->pal_revision = boot_cpu_palrev;
441 } 442 }
442 443
@@ -469,8 +470,8 @@ smp_prepare_cpus(unsigned int max_cpus)
469 470
470 /* Nothing to do on a UP box, or when told not to. */ 471 /* Nothing to do on a UP box, or when told not to. */
471 if (smp_num_probed == 1 || max_cpus == 0) { 472 if (smp_num_probed == 1 || max_cpus == 0) {
472 cpu_possible_map = cpumask_of_cpu(boot_cpuid); 473 init_cpu_possible(cpumask_of(boot_cpuid));
473 cpu_present_map = cpumask_of_cpu(boot_cpuid); 474 init_cpu_present(cpumask_of(boot_cpuid));
474 printk(KERN_INFO "SMP mode deactivated.\n"); 475 printk(KERN_INFO "SMP mode deactivated.\n");
475 return; 476 return;
476 } 477 }
diff --git a/arch/alpha/kernel/sys_jensen.c b/arch/alpha/kernel/sys_jensen.c
index 2c3de97de46c..e2516f9a8967 100644
--- a/arch/alpha/kernel/sys_jensen.c
+++ b/arch/alpha/kernel/sys_jensen.c
@@ -261,6 +261,8 @@ struct alpha_machine_vector jensen_mv __initmv = {
261 .machine_check = jensen_machine_check, 261 .machine_check = jensen_machine_check,
262 .max_isa_dma_address = ALPHA_MAX_ISA_DMA_ADDRESS, 262 .max_isa_dma_address = ALPHA_MAX_ISA_DMA_ADDRESS,
263 .rtc_port = 0x170, 263 .rtc_port = 0x170,
264 .rtc_get_time = common_get_rtc_time,
265 .rtc_set_time = common_set_rtc_time,
264 266
265 .nr_irqs = 16, 267 .nr_irqs = 16,
266 .device_interrupt = jensen_device_interrupt, 268 .device_interrupt = jensen_device_interrupt,
diff --git a/arch/alpha/kernel/sys_marvel.c b/arch/alpha/kernel/sys_marvel.c
index 828449cd2636..c5a1a2438c67 100644
--- a/arch/alpha/kernel/sys_marvel.c
+++ b/arch/alpha/kernel/sys_marvel.c
@@ -23,6 +23,7 @@
23#include <asm/hwrpb.h> 23#include <asm/hwrpb.h>
24#include <asm/tlbflush.h> 24#include <asm/tlbflush.h>
25#include <asm/vga.h> 25#include <asm/vga.h>
26#include <asm/rtc.h>
26 27
27#include "proto.h" 28#include "proto.h"
28#include "err_impl.h" 29#include "err_impl.h"
@@ -426,6 +427,57 @@ marvel_init_rtc(void)
426 init_rtc_irq(); 427 init_rtc_irq();
427} 428}
428 429
430struct marvel_rtc_time {
431 struct rtc_time *time;
432 int retval;
433};
434
435#ifdef CONFIG_SMP
436static void
437smp_get_rtc_time(void *data)
438{
439 struct marvel_rtc_time *mrt = data;
440 mrt->retval = __get_rtc_time(mrt->time);
441}
442
443static void
444smp_set_rtc_time(void *data)
445{
446 struct marvel_rtc_time *mrt = data;
447 mrt->retval = __set_rtc_time(mrt->time);
448}
449#endif
450
451static unsigned int
452marvel_get_rtc_time(struct rtc_time *time)
453{
454#ifdef CONFIG_SMP
455 struct marvel_rtc_time mrt;
456
457 if (smp_processor_id() != boot_cpuid) {
458 mrt.time = time;
459 smp_call_function_single(boot_cpuid, smp_get_rtc_time, &mrt, 1);
460 return mrt.retval;
461 }
462#endif
463 return __get_rtc_time(time);
464}
465
466static int
467marvel_set_rtc_time(struct rtc_time *time)
468{
469#ifdef CONFIG_SMP
470 struct marvel_rtc_time mrt;
471
472 if (smp_processor_id() != boot_cpuid) {
473 mrt.time = time;
474 smp_call_function_single(boot_cpuid, smp_set_rtc_time, &mrt, 1);
475 return mrt.retval;
476 }
477#endif
478 return __set_rtc_time(time);
479}
480
429static void 481static void
430marvel_smp_callin(void) 482marvel_smp_callin(void)
431{ 483{
@@ -466,7 +518,9 @@ marvel_smp_callin(void)
466struct alpha_machine_vector marvel_ev7_mv __initmv = { 518struct alpha_machine_vector marvel_ev7_mv __initmv = {
467 .vector_name = "MARVEL/EV7", 519 .vector_name = "MARVEL/EV7",
468 DO_EV7_MMU, 520 DO_EV7_MMU,
469 DO_DEFAULT_RTC, 521 .rtc_port = 0x70,
522 .rtc_get_time = marvel_get_rtc_time,
523 .rtc_set_time = marvel_set_rtc_time,
470 DO_MARVEL_IO, 524 DO_MARVEL_IO,
471 .machine_check = marvel_machine_check, 525 .machine_check = marvel_machine_check,
472 .max_isa_dma_address = ALPHA_MAX_ISA_DMA_ADDRESS, 526 .max_isa_dma_address = ALPHA_MAX_ISA_DMA_ADDRESS,
diff --git a/arch/alpha/kernel/sys_nautilus.c b/arch/alpha/kernel/sys_nautilus.c
index a7f23b5ab814..99c0f46f6b9c 100644
--- a/arch/alpha/kernel/sys_nautilus.c
+++ b/arch/alpha/kernel/sys_nautilus.c
@@ -245,6 +245,10 @@ nautilus_init_pci(void)
245 IRONGATE0->pci_mem = pci_mem; 245 IRONGATE0->pci_mem = pci_mem;
246 246
247 pci_bus_assign_resources(bus); 247 pci_bus_assign_resources(bus);
248
249 /* pci_common_swizzle() relies on bus->self being NULL
250 for the root bus, so just clear it. */
251 bus->self = NULL;
248 pci_fixup_irqs(alpha_mv.pci_swizzle, alpha_mv.pci_map_irq); 252 pci_fixup_irqs(alpha_mv.pci_swizzle, alpha_mv.pci_map_irq);
249} 253}
250 254
diff --git a/arch/alpha/kernel/systbls.S b/arch/alpha/kernel/systbls.S
index ba914af18c4f..95c9aef1c106 100644
--- a/arch/alpha/kernel/systbls.S
+++ b/arch/alpha/kernel/systbls.S
@@ -17,7 +17,7 @@ sys_call_table:
17 .quad sys_write 17 .quad sys_write
18 .quad alpha_ni_syscall /* 5 */ 18 .quad alpha_ni_syscall /* 5 */
19 .quad sys_close 19 .quad sys_close
20 .quad osf_wait4 20 .quad sys_osf_wait4
21 .quad alpha_ni_syscall 21 .quad alpha_ni_syscall
22 .quad sys_link 22 .quad sys_link
23 .quad sys_unlink /* 10 */ 23 .quad sys_unlink /* 10 */
@@ -27,11 +27,11 @@ sys_call_table:
27 .quad sys_mknod 27 .quad sys_mknod
28 .quad sys_chmod /* 15 */ 28 .quad sys_chmod /* 15 */
29 .quad sys_chown 29 .quad sys_chown
30 .quad osf_brk 30 .quad sys_osf_brk
31 .quad alpha_ni_syscall 31 .quad alpha_ni_syscall
32 .quad sys_lseek 32 .quad sys_lseek
33 .quad sys_getxpid /* 20 */ 33 .quad sys_getxpid /* 20 */
34 .quad osf_mount 34 .quad sys_osf_mount
35 .quad sys_umount 35 .quad sys_umount
36 .quad sys_setuid 36 .quad sys_setuid
37 .quad sys_getxuid 37 .quad sys_getxuid
@@ -52,8 +52,8 @@ sys_call_table:
52 .quad sys_setpgid 52 .quad sys_setpgid
53 .quad alpha_ni_syscall /* 40 */ 53 .quad alpha_ni_syscall /* 40 */
54 .quad sys_dup 54 .quad sys_dup
55 .quad sys_pipe 55 .quad sys_alpha_pipe
56 .quad osf_set_program_attributes 56 .quad sys_osf_set_program_attributes
57 .quad alpha_ni_syscall 57 .quad alpha_ni_syscall
58 .quad sys_open /* 45 */ 58 .quad sys_open /* 45 */
59 .quad alpha_ni_syscall 59 .quad alpha_ni_syscall
@@ -81,7 +81,7 @@ sys_call_table:
81 .quad sys_newlstat 81 .quad sys_newlstat
82 .quad alpha_ni_syscall 82 .quad alpha_ni_syscall
83 .quad alpha_ni_syscall /* 70 */ 83 .quad alpha_ni_syscall /* 70 */
84 .quad osf_mmap 84 .quad sys_osf_mmap
85 .quad alpha_ni_syscall 85 .quad alpha_ni_syscall
86 .quad sys_munmap 86 .quad sys_munmap
87 .quad sys_mprotect 87 .quad sys_mprotect
@@ -94,17 +94,17 @@ sys_call_table:
94 .quad sys_setgroups /* 80 */ 94 .quad sys_setgroups /* 80 */
95 .quad alpha_ni_syscall 95 .quad alpha_ni_syscall
96 .quad sys_setpgid 96 .quad sys_setpgid
97 .quad osf_setitimer 97 .quad sys_osf_setitimer
98 .quad alpha_ni_syscall 98 .quad alpha_ni_syscall
99 .quad alpha_ni_syscall /* 85 */ 99 .quad alpha_ni_syscall /* 85 */
100 .quad osf_getitimer 100 .quad sys_osf_getitimer
101 .quad sys_gethostname 101 .quad sys_gethostname
102 .quad sys_sethostname 102 .quad sys_sethostname
103 .quad sys_getdtablesize 103 .quad sys_getdtablesize
104 .quad sys_dup2 /* 90 */ 104 .quad sys_dup2 /* 90 */
105 .quad sys_newfstat 105 .quad sys_newfstat
106 .quad sys_fcntl 106 .quad sys_fcntl
107 .quad osf_select 107 .quad sys_osf_select
108 .quad sys_poll 108 .quad sys_poll
109 .quad sys_fsync /* 95 */ 109 .quad sys_fsync /* 95 */
110 .quad sys_setpriority 110 .quad sys_setpriority
@@ -123,22 +123,22 @@ sys_call_table:
123 .quad alpha_ni_syscall 123 .quad alpha_ni_syscall
124 .quad alpha_ni_syscall /* 110 */ 124 .quad alpha_ni_syscall /* 110 */
125 .quad sys_sigsuspend 125 .quad sys_sigsuspend
126 .quad osf_sigstack 126 .quad sys_osf_sigstack
127 .quad sys_recvmsg 127 .quad sys_recvmsg
128 .quad sys_sendmsg 128 .quad sys_sendmsg
129 .quad alpha_ni_syscall /* 115 */ 129 .quad alpha_ni_syscall /* 115 */
130 .quad osf_gettimeofday 130 .quad sys_osf_gettimeofday
131 .quad osf_getrusage 131 .quad sys_osf_getrusage
132 .quad sys_getsockopt 132 .quad sys_getsockopt
133 .quad alpha_ni_syscall 133 .quad alpha_ni_syscall
134#ifdef CONFIG_OSF4_COMPAT 134#ifdef CONFIG_OSF4_COMPAT
135 .quad osf_readv /* 120 */ 135 .quad sys_osf_readv /* 120 */
136 .quad osf_writev 136 .quad sys_osf_writev
137#else 137#else
138 .quad sys_readv /* 120 */ 138 .quad sys_readv /* 120 */
139 .quad sys_writev 139 .quad sys_writev
140#endif 140#endif
141 .quad osf_settimeofday 141 .quad sys_osf_settimeofday
142 .quad sys_fchown 142 .quad sys_fchown
143 .quad sys_fchmod 143 .quad sys_fchmod
144 .quad sys_recvfrom /* 125 */ 144 .quad sys_recvfrom /* 125 */
@@ -154,7 +154,7 @@ sys_call_table:
154 .quad sys_socketpair /* 135 */ 154 .quad sys_socketpair /* 135 */
155 .quad sys_mkdir 155 .quad sys_mkdir
156 .quad sys_rmdir 156 .quad sys_rmdir
157 .quad osf_utimes 157 .quad sys_osf_utimes
158 .quad alpha_ni_syscall 158 .quad alpha_ni_syscall
159 .quad alpha_ni_syscall /* 140 */ 159 .quad alpha_ni_syscall /* 140 */
160 .quad sys_getpeername 160 .quad sys_getpeername
@@ -172,16 +172,16 @@ sys_call_table:
172 .quad alpha_ni_syscall 172 .quad alpha_ni_syscall
173 .quad alpha_ni_syscall 173 .quad alpha_ni_syscall
174 .quad alpha_ni_syscall /* 155 */ 174 .quad alpha_ni_syscall /* 155 */
175 .quad osf_sigaction 175 .quad sys_osf_sigaction
176 .quad alpha_ni_syscall 176 .quad alpha_ni_syscall
177 .quad alpha_ni_syscall 177 .quad alpha_ni_syscall
178 .quad osf_getdirentries 178 .quad sys_osf_getdirentries
179 .quad osf_statfs /* 160 */ 179 .quad sys_osf_statfs /* 160 */
180 .quad osf_fstatfs 180 .quad sys_osf_fstatfs
181 .quad alpha_ni_syscall 181 .quad alpha_ni_syscall
182 .quad alpha_ni_syscall 182 .quad alpha_ni_syscall
183 .quad alpha_ni_syscall 183 .quad alpha_ni_syscall
184 .quad osf_getdomainname /* 165 */ 184 .quad sys_osf_getdomainname /* 165 */
185 .quad sys_setdomainname 185 .quad sys_setdomainname
186 .quad alpha_ni_syscall 186 .quad alpha_ni_syscall
187 .quad alpha_ni_syscall 187 .quad alpha_ni_syscall
@@ -224,7 +224,7 @@ sys_call_table:
224 .quad sys_semctl 224 .quad sys_semctl
225 .quad sys_semget /* 205 */ 225 .quad sys_semget /* 205 */
226 .quad sys_semop 226 .quad sys_semop
227 .quad osf_utsname 227 .quad sys_osf_utsname
228 .quad sys_lchown 228 .quad sys_lchown
229 .quad sys_shmat 229 .quad sys_shmat
230 .quad sys_shmctl /* 210 */ 230 .quad sys_shmctl /* 210 */
@@ -258,23 +258,23 @@ sys_call_table:
258 .quad alpha_ni_syscall 258 .quad alpha_ni_syscall
259 .quad alpha_ni_syscall 259 .quad alpha_ni_syscall
260 .quad alpha_ni_syscall /* 240 */ 260 .quad alpha_ni_syscall /* 240 */
261 .quad osf_sysinfo 261 .quad sys_osf_sysinfo
262 .quad alpha_ni_syscall 262 .quad alpha_ni_syscall
263 .quad alpha_ni_syscall 263 .quad alpha_ni_syscall
264 .quad osf_proplist_syscall 264 .quad sys_osf_proplist_syscall
265 .quad alpha_ni_syscall /* 245 */ 265 .quad alpha_ni_syscall /* 245 */
266 .quad alpha_ni_syscall 266 .quad alpha_ni_syscall
267 .quad alpha_ni_syscall 267 .quad alpha_ni_syscall
268 .quad alpha_ni_syscall 268 .quad alpha_ni_syscall
269 .quad alpha_ni_syscall 269 .quad alpha_ni_syscall
270 .quad alpha_ni_syscall /* 250 */ 270 .quad alpha_ni_syscall /* 250 */
271 .quad osf_usleep_thread 271 .quad sys_osf_usleep_thread
272 .quad alpha_ni_syscall 272 .quad alpha_ni_syscall
273 .quad alpha_ni_syscall 273 .quad alpha_ni_syscall
274 .quad sys_sysfs 274 .quad sys_sysfs
275 .quad alpha_ni_syscall /* 255 */ 275 .quad alpha_ni_syscall /* 255 */
276 .quad osf_getsysinfo 276 .quad sys_osf_getsysinfo
277 .quad osf_setsysinfo 277 .quad sys_osf_setsysinfo
278 .quad alpha_ni_syscall 278 .quad alpha_ni_syscall
279 .quad alpha_ni_syscall 279 .quad alpha_ni_syscall
280 .quad alpha_ni_syscall /* 260 */ 280 .quad alpha_ni_syscall /* 260 */
diff --git a/arch/alpha/kernel/time.c b/arch/alpha/kernel/time.c
index e6a231435cba..b04e2cbf23a4 100644
--- a/arch/alpha/kernel/time.c
+++ b/arch/alpha/kernel/time.c
@@ -46,6 +46,7 @@
46#include <asm/io.h> 46#include <asm/io.h>
47#include <asm/hwrpb.h> 47#include <asm/hwrpb.h>
48#include <asm/8253pit.h> 48#include <asm/8253pit.h>
49#include <asm/rtc.h>
49 50
50#include <linux/mc146818rtc.h> 51#include <linux/mc146818rtc.h>
51#include <linux/time.h> 52#include <linux/time.h>
@@ -180,6 +181,15 @@ common_init_rtc(void)
180 init_rtc_irq(); 181 init_rtc_irq();
181} 182}
182 183
184unsigned int common_get_rtc_time(struct rtc_time *time)
185{
186 return __get_rtc_time(time);
187}
188
189int common_set_rtc_time(struct rtc_time *time)
190{
191 return __set_rtc_time(time);
192}
183 193
184/* Validate a computed cycle counter result against the known bounds for 194/* Validate a computed cycle counter result against the known bounds for
185 the given processor core. There's too much brokenness in the way of 195 the given processor core. There's too much brokenness in the way of
diff --git a/arch/alpha/mm/init.c b/arch/alpha/mm/init.c
index 234e42b8ee74..5d7a16eab312 100644
--- a/arch/alpha/mm/init.c
+++ b/arch/alpha/mm/init.c
@@ -59,13 +59,6 @@ pgd_alloc(struct mm_struct *mm)
59 return ret; 59 return ret;
60} 60}
61 61
62pte_t *
63pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
64{
65 pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
66 return pte;
67}
68
69 62
70/* 63/*
71 * BAD_PAGE is the page that is used for page faults when linux 64 * BAD_PAGE is the page that is used for page faults when linux
diff --git a/arch/arm/common/clkdev.c b/arch/arm/common/clkdev.c
index 17a17b49a45b..1037bba18329 100644
--- a/arch/arm/common/clkdev.c
+++ b/arch/arm/common/clkdev.c
@@ -24,6 +24,15 @@
24static LIST_HEAD(clocks); 24static LIST_HEAD(clocks);
25static DEFINE_MUTEX(clocks_mutex); 25static DEFINE_MUTEX(clocks_mutex);
26 26
27/*
28 * Find the correct struct clk for the device and connection ID.
29 * We do slightly fuzzy matching here:
30 * An entry with a NULL ID is assumed to be a wildcard.
31 * If an entry has a device ID, it must match
32 * If an entry has a connection ID, it must match
33 * Then we take the most specific entry - with the following
34 * order of precidence: dev+con > dev only > con only.
35 */
27static struct clk *clk_find(const char *dev_id, const char *con_id) 36static struct clk *clk_find(const char *dev_id, const char *con_id)
28{ 37{
29 struct clk_lookup *p; 38 struct clk_lookup *p;
@@ -31,13 +40,17 @@ static struct clk *clk_find(const char *dev_id, const char *con_id)
31 int match, best = 0; 40 int match, best = 0;
32 41
33 list_for_each_entry(p, &clocks, node) { 42 list_for_each_entry(p, &clocks, node) {
34 if ((p->dev_id && !dev_id) || (p->con_id && !con_id))
35 continue;
36 match = 0; 43 match = 0;
37 if (p->dev_id) 44 if (p->dev_id) {
38 match += 2 * (strcmp(p->dev_id, dev_id) == 0); 45 if (!dev_id || strcmp(p->dev_id, dev_id))
39 if (p->con_id) 46 continue;
40 match += 1 * (strcmp(p->con_id, con_id) == 0); 47 match += 2;
48 }
49 if (p->con_id) {
50 if (!con_id || strcmp(p->con_id, con_id))
51 continue;
52 match += 1;
53 }
41 if (match == 0) 54 if (match == 0)
42 continue; 55 continue;
43 56
diff --git a/arch/arm/configs/afeb9260_defconfig b/arch/arm/configs/afeb9260_defconfig
index ce909586a34f..f7a272cb3da0 100644
--- a/arch/arm/configs/afeb9260_defconfig
+++ b/arch/arm/configs/afeb9260_defconfig
@@ -719,8 +719,8 @@ CONFIG_I2C_GPIO=y
719# Miscellaneous I2C Chip support 719# Miscellaneous I2C Chip support
720# 720#
721# CONFIG_DS1682 is not set 721# CONFIG_DS1682 is not set
722CONFIG_AT24=y 722CONFIG_EEPROM_AT24=y
723# CONFIG_SENSORS_EEPROM is not set 723# CONFIG_EEPROM_LEGACY is not set
724# CONFIG_SENSORS_PCF8574 is not set 724# CONFIG_SENSORS_PCF8574 is not set
725# CONFIG_PCF8575 is not set 725# CONFIG_PCF8575 is not set
726# CONFIG_SENSORS_PCA9539 is not set 726# CONFIG_SENSORS_PCA9539 is not set
@@ -744,7 +744,7 @@ CONFIG_SPI_ATMEL=y
744# 744#
745# SPI Protocol Masters 745# SPI Protocol Masters
746# 746#
747# CONFIG_SPI_AT25 is not set 747# CONFIG_EEPROM_AT25 is not set
748CONFIG_SPI_SPIDEV=y 748CONFIG_SPI_SPIDEV=y
749# CONFIG_SPI_TLE62X0 is not set 749# CONFIG_SPI_TLE62X0 is not set
750# CONFIG_W1 is not set 750# CONFIG_W1 is not set
diff --git a/arch/arm/configs/ams_delta_defconfig b/arch/arm/configs/ams_delta_defconfig
index 2c4aa11f0b0d..764732529ea3 100644
--- a/arch/arm/configs/ams_delta_defconfig
+++ b/arch/arm/configs/ams_delta_defconfig
@@ -767,7 +767,7 @@ CONFIG_I2C_OMAP=y
767# 767#
768# CONFIG_SENSORS_DS1337 is not set 768# CONFIG_SENSORS_DS1337 is not set
769# CONFIG_SENSORS_DS1374 is not set 769# CONFIG_SENSORS_DS1374 is not set
770# CONFIG_SENSORS_EEPROM is not set 770# CONFIG_EEPROM_LEGACY is not set
771# CONFIG_SENSORS_PCF8574 is not set 771# CONFIG_SENSORS_PCF8574 is not set
772# CONFIG_SENSORS_PCA9539 is not set 772# CONFIG_SENSORS_PCA9539 is not set
773# CONFIG_SENSORS_PCF8591 is not set 773# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/at91cap9adk_defconfig b/arch/arm/configs/at91cap9adk_defconfig
index bf97801a1068..bc6bd9f6174d 100644
--- a/arch/arm/configs/at91cap9adk_defconfig
+++ b/arch/arm/configs/at91cap9adk_defconfig
@@ -676,7 +676,7 @@ CONFIG_I2C_CHARDEV=y
676# CONFIG_SENSORS_DS1337 is not set 676# CONFIG_SENSORS_DS1337 is not set
677# CONFIG_SENSORS_DS1374 is not set 677# CONFIG_SENSORS_DS1374 is not set
678# CONFIG_DS1682 is not set 678# CONFIG_DS1682 is not set
679# CONFIG_SENSORS_EEPROM is not set 679# CONFIG_EEPROM_LEGACY is not set
680# CONFIG_SENSORS_PCF8574 is not set 680# CONFIG_SENSORS_PCF8574 is not set
681# CONFIG_SENSORS_PCA9539 is not set 681# CONFIG_SENSORS_PCA9539 is not set
682# CONFIG_SENSORS_PCF8591 is not set 682# CONFIG_SENSORS_PCF8591 is not set
@@ -703,7 +703,7 @@ CONFIG_SPI_ATMEL=y
703# 703#
704# SPI Protocol Masters 704# SPI Protocol Masters
705# 705#
706# CONFIG_SPI_AT25 is not set 706# CONFIG_EEPROM_AT25 is not set
707# CONFIG_SPI_SPIDEV is not set 707# CONFIG_SPI_SPIDEV is not set
708# CONFIG_SPI_TLE62X0 is not set 708# CONFIG_SPI_TLE62X0 is not set
709# CONFIG_W1 is not set 709# CONFIG_W1 is not set
diff --git a/arch/arm/configs/at91rm9200dk_defconfig b/arch/arm/configs/at91rm9200dk_defconfig
index 868fb7b9530b..238b218394e3 100644
--- a/arch/arm/configs/at91rm9200dk_defconfig
+++ b/arch/arm/configs/at91rm9200dk_defconfig
@@ -636,7 +636,7 @@ CONFIG_I2C_GPIO=y
636# 636#
637# CONFIG_SENSORS_DS1337 is not set 637# CONFIG_SENSORS_DS1337 is not set
638# CONFIG_SENSORS_DS1374 is not set 638# CONFIG_SENSORS_DS1374 is not set
639# CONFIG_SENSORS_EEPROM is not set 639# CONFIG_EEPROM_LEGACY is not set
640# CONFIG_SENSORS_PCF8574 is not set 640# CONFIG_SENSORS_PCF8574 is not set
641# CONFIG_SENSORS_PCA9539 is not set 641# CONFIG_SENSORS_PCA9539 is not set
642# CONFIG_SENSORS_PCF8591 is not set 642# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/at91rm9200ek_defconfig b/arch/arm/configs/at91rm9200ek_defconfig
index de43fc675616..9f7a99ace514 100644
--- a/arch/arm/configs/at91rm9200ek_defconfig
+++ b/arch/arm/configs/at91rm9200ek_defconfig
@@ -610,7 +610,7 @@ CONFIG_I2C_GPIO=y
610# 610#
611# CONFIG_SENSORS_DS1337 is not set 611# CONFIG_SENSORS_DS1337 is not set
612# CONFIG_SENSORS_DS1374 is not set 612# CONFIG_SENSORS_DS1374 is not set
613# CONFIG_SENSORS_EEPROM is not set 613# CONFIG_EEPROM_LEGACY is not set
614# CONFIG_SENSORS_PCF8574 is not set 614# CONFIG_SENSORS_PCF8574 is not set
615# CONFIG_SENSORS_PCA9539 is not set 615# CONFIG_SENSORS_PCA9539 is not set
616# CONFIG_SENSORS_PCF8591 is not set 616# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/at91sam9260ek_defconfig b/arch/arm/configs/at91sam9260ek_defconfig
index 38e6a0abeb4e..98e2f3de4bc5 100644
--- a/arch/arm/configs/at91sam9260ek_defconfig
+++ b/arch/arm/configs/at91sam9260ek_defconfig
@@ -582,7 +582,7 @@ CONFIG_I2C_GPIO=y
582# CONFIG_SENSORS_DS1337 is not set 582# CONFIG_SENSORS_DS1337 is not set
583# CONFIG_SENSORS_DS1374 is not set 583# CONFIG_SENSORS_DS1374 is not set
584# CONFIG_DS1682 is not set 584# CONFIG_DS1682 is not set
585# CONFIG_SENSORS_EEPROM is not set 585# CONFIG_EEPROM_LEGACY is not set
586# CONFIG_SENSORS_PCF8574 is not set 586# CONFIG_SENSORS_PCF8574 is not set
587# CONFIG_SENSORS_PCA9539 is not set 587# CONFIG_SENSORS_PCA9539 is not set
588# CONFIG_SENSORS_PCF8591 is not set 588# CONFIG_SENSORS_PCF8591 is not set
@@ -608,7 +608,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
608# Watchdog Device Drivers 608# Watchdog Device Drivers
609# 609#
610# CONFIG_SOFT_WATCHDOG is not set 610# CONFIG_SOFT_WATCHDOG is not set
611CONFIG_AT91SAM9_WATCHDOG=y 611CONFIG_AT91SAM9X_WATCHDOG=y
612 612
613# 613#
614# USB-based Watchdog Cards 614# USB-based Watchdog Cards
diff --git a/arch/arm/configs/at91sam9261ek_defconfig b/arch/arm/configs/at91sam9261ek_defconfig
index 93b779f94b41..149456142392 100644
--- a/arch/arm/configs/at91sam9261ek_defconfig
+++ b/arch/arm/configs/at91sam9261ek_defconfig
@@ -660,7 +660,7 @@ CONFIG_I2C_GPIO=y
660# CONFIG_SENSORS_DS1337 is not set 660# CONFIG_SENSORS_DS1337 is not set
661# CONFIG_SENSORS_DS1374 is not set 661# CONFIG_SENSORS_DS1374 is not set
662# CONFIG_DS1682 is not set 662# CONFIG_DS1682 is not set
663# CONFIG_SENSORS_EEPROM is not set 663# CONFIG_EEPROM_LEGACY is not set
664# CONFIG_SENSORS_PCF8574 is not set 664# CONFIG_SENSORS_PCF8574 is not set
665# CONFIG_SENSORS_PCA9539 is not set 665# CONFIG_SENSORS_PCA9539 is not set
666# CONFIG_SENSORS_PCF8591 is not set 666# CONFIG_SENSORS_PCF8591 is not set
@@ -687,7 +687,7 @@ CONFIG_SPI_ATMEL=y
687# 687#
688# SPI Protocol Masters 688# SPI Protocol Masters
689# 689#
690# CONFIG_SPI_AT25 is not set 690# CONFIG_EEPROM_AT25 is not set
691# CONFIG_SPI_SPIDEV is not set 691# CONFIG_SPI_SPIDEV is not set
692# CONFIG_SPI_TLE62X0 is not set 692# CONFIG_SPI_TLE62X0 is not set
693# CONFIG_W1 is not set 693# CONFIG_W1 is not set
@@ -700,7 +700,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
700# Watchdog Device Drivers 700# Watchdog Device Drivers
701# 701#
702# CONFIG_SOFT_WATCHDOG is not set 702# CONFIG_SOFT_WATCHDOG is not set
703CONFIG_AT91SAM9_WATCHDOG=y 703CONFIG_AT91SAM9X_WATCHDOG=y
704 704
705# 705#
706# USB-based Watchdog Cards 706# USB-based Watchdog Cards
diff --git a/arch/arm/configs/at91sam9263ek_defconfig b/arch/arm/configs/at91sam9263ek_defconfig
index a7ddd94363ca..21599f3c6275 100644
--- a/arch/arm/configs/at91sam9263ek_defconfig
+++ b/arch/arm/configs/at91sam9263ek_defconfig
@@ -670,7 +670,7 @@ CONFIG_I2C_GPIO=y
670# CONFIG_SENSORS_DS1337 is not set 670# CONFIG_SENSORS_DS1337 is not set
671# CONFIG_SENSORS_DS1374 is not set 671# CONFIG_SENSORS_DS1374 is not set
672# CONFIG_DS1682 is not set 672# CONFIG_DS1682 is not set
673# CONFIG_SENSORS_EEPROM is not set 673# CONFIG_EEPROM_LEGACY is not set
674# CONFIG_SENSORS_PCF8574 is not set 674# CONFIG_SENSORS_PCF8574 is not set
675# CONFIG_SENSORS_PCA9539 is not set 675# CONFIG_SENSORS_PCA9539 is not set
676# CONFIG_SENSORS_PCF8591 is not set 676# CONFIG_SENSORS_PCF8591 is not set
@@ -697,7 +697,7 @@ CONFIG_SPI_ATMEL=y
697# 697#
698# SPI Protocol Masters 698# SPI Protocol Masters
699# 699#
700# CONFIG_SPI_AT25 is not set 700# CONFIG_EEPROM_AT25 is not set
701# CONFIG_SPI_SPIDEV is not set 701# CONFIG_SPI_SPIDEV is not set
702# CONFIG_SPI_TLE62X0 is not set 702# CONFIG_SPI_TLE62X0 is not set
703# CONFIG_W1 is not set 703# CONFIG_W1 is not set
@@ -710,7 +710,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
710# Watchdog Device Drivers 710# Watchdog Device Drivers
711# 711#
712# CONFIG_SOFT_WATCHDOG is not set 712# CONFIG_SOFT_WATCHDOG is not set
713CONFIG_AT91SAM9_WATCHDOG=y 713CONFIG_AT91SAM9X_WATCHDOG=y
714 714
715# 715#
716# USB-based Watchdog Cards 716# USB-based Watchdog Cards
diff --git a/arch/arm/configs/at91sam9g20ek_defconfig b/arch/arm/configs/at91sam9g20ek_defconfig
index df0d6ee672b3..7e018a04c31b 100644
--- a/arch/arm/configs/at91sam9g20ek_defconfig
+++ b/arch/arm/configs/at91sam9g20ek_defconfig
@@ -665,7 +665,7 @@ CONFIG_SPI_ATMEL=y
665# 665#
666# SPI Protocol Masters 666# SPI Protocol Masters
667# 667#
668# CONFIG_SPI_AT25 is not set 668# CONFIG_EEPROM_AT25 is not set
669CONFIG_SPI_SPIDEV=y 669CONFIG_SPI_SPIDEV=y
670# CONFIG_SPI_TLE62X0 is not set 670# CONFIG_SPI_TLE62X0 is not set
671# CONFIG_W1 is not set 671# CONFIG_W1 is not set
diff --git a/arch/arm/configs/at91sam9rlek_defconfig b/arch/arm/configs/at91sam9rlek_defconfig
index 811bebbdc784..e2df81a3e804 100644
--- a/arch/arm/configs/at91sam9rlek_defconfig
+++ b/arch/arm/configs/at91sam9rlek_defconfig
@@ -566,7 +566,7 @@ CONFIG_I2C_GPIO=y
566# CONFIG_SENSORS_DS1337 is not set 566# CONFIG_SENSORS_DS1337 is not set
567# CONFIG_SENSORS_DS1374 is not set 567# CONFIG_SENSORS_DS1374 is not set
568# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
569# CONFIG_SENSORS_EEPROM is not set 569# CONFIG_EEPROM_LEGACY is not set
570# CONFIG_SENSORS_PCF8574 is not set 570# CONFIG_SENSORS_PCF8574 is not set
571# CONFIG_SENSORS_PCA9539 is not set 571# CONFIG_SENSORS_PCA9539 is not set
572# CONFIG_SENSORS_PCF8591 is not set 572# CONFIG_SENSORS_PCF8591 is not set
@@ -593,7 +593,7 @@ CONFIG_SPI_ATMEL=y
593# 593#
594# SPI Protocol Masters 594# SPI Protocol Masters
595# 595#
596# CONFIG_SPI_AT25 is not set 596# CONFIG_EEPROM_AT25 is not set
597# CONFIG_SPI_SPIDEV is not set 597# CONFIG_SPI_SPIDEV is not set
598# CONFIG_SPI_TLE62X0 is not set 598# CONFIG_SPI_TLE62X0 is not set
599# CONFIG_W1 is not set 599# CONFIG_W1 is not set
@@ -606,7 +606,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
606# Watchdog Device Drivers 606# Watchdog Device Drivers
607# 607#
608# CONFIG_SOFT_WATCHDOG is not set 608# CONFIG_SOFT_WATCHDOG is not set
609CONFIG_AT91SAM9_WATCHDOG=y 609CONFIG_AT91SAM9X_WATCHDOG=y
610 610
611# 611#
612# Sonics Silicon Backplane 612# Sonics Silicon Backplane
diff --git a/arch/arm/configs/ateb9200_defconfig b/arch/arm/configs/ateb9200_defconfig
index 85c80f723d8e..a19e824cf7f8 100644
--- a/arch/arm/configs/ateb9200_defconfig
+++ b/arch/arm/configs/ateb9200_defconfig
@@ -723,7 +723,7 @@ CONFIG_I2C_GPIO=m
723# 723#
724# CONFIG_SENSORS_DS1337 is not set 724# CONFIG_SENSORS_DS1337 is not set
725# CONFIG_SENSORS_DS1374 is not set 725# CONFIG_SENSORS_DS1374 is not set
726# CONFIG_SENSORS_EEPROM is not set 726# CONFIG_EEPROM_LEGACY is not set
727# CONFIG_SENSORS_PCF8574 is not set 727# CONFIG_SENSORS_PCF8574 is not set
728# CONFIG_SENSORS_PCA9539 is not set 728# CONFIG_SENSORS_PCA9539 is not set
729# CONFIG_SENSORS_PCF8591 is not set 729# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/badge4_defconfig b/arch/arm/configs/badge4_defconfig
index b2bbf217c707..80222feb7dad 100644
--- a/arch/arm/configs/badge4_defconfig
+++ b/arch/arm/configs/badge4_defconfig
@@ -750,7 +750,7 @@ CONFIG_I2C_ELEKTOR=m
750# Other I2C Chip support 750# Other I2C Chip support
751# 751#
752# CONFIG_SENSORS_DS1337 is not set 752# CONFIG_SENSORS_DS1337 is not set
753# CONFIG_SENSORS_EEPROM is not set 753# CONFIG_EEPROM_LEGACY is not set
754# CONFIG_SENSORS_PCF8574 is not set 754# CONFIG_SENSORS_PCF8574 is not set
755# CONFIG_SENSORS_PCF8591 is not set 755# CONFIG_SENSORS_PCF8591 is not set
756# CONFIG_SENSORS_RTC8564 is not set 756# CONFIG_SENSORS_RTC8564 is not set
diff --git a/arch/arm/configs/cam60_defconfig b/arch/arm/configs/cam60_defconfig
index f945105d6cd6..8448108347cf 100644
--- a/arch/arm/configs/cam60_defconfig
+++ b/arch/arm/configs/cam60_defconfig
@@ -722,7 +722,7 @@ CONFIG_I2C_ALGOBIT=y
722# CONFIG_SENSORS_DS1337 is not set 722# CONFIG_SENSORS_DS1337 is not set
723# CONFIG_SENSORS_DS1374 is not set 723# CONFIG_SENSORS_DS1374 is not set
724# CONFIG_DS1682 is not set 724# CONFIG_DS1682 is not set
725# CONFIG_SENSORS_EEPROM is not set 725# CONFIG_EEPROM_LEGACY is not set
726# CONFIG_SENSORS_PCF8574 is not set 726# CONFIG_SENSORS_PCF8574 is not set
727# CONFIG_SENSORS_PCA9539 is not set 727# CONFIG_SENSORS_PCA9539 is not set
728# CONFIG_SENSORS_PCF8591 is not set 728# CONFIG_SENSORS_PCF8591 is not set
@@ -749,7 +749,7 @@ CONFIG_SPI_ATMEL=y
749# 749#
750# SPI Protocol Masters 750# SPI Protocol Masters
751# 751#
752# CONFIG_SPI_AT25 is not set 752# CONFIG_EEPROM_AT25 is not set
753# CONFIG_SPI_SPIDEV is not set 753# CONFIG_SPI_SPIDEV is not set
754# CONFIG_SPI_TLE62X0 is not set 754# CONFIG_SPI_TLE62X0 is not set
755# CONFIG_W1 is not set 755# CONFIG_W1 is not set
diff --git a/arch/arm/configs/cm_x300_defconfig b/arch/arm/configs/cm_x300_defconfig
index 46f1c9dc350c..227da0843ead 100644
--- a/arch/arm/configs/cm_x300_defconfig
+++ b/arch/arm/configs/cm_x300_defconfig
@@ -763,8 +763,8 @@ CONFIG_I2C_PXA=y
763# Miscellaneous I2C Chip support 763# Miscellaneous I2C Chip support
764# 764#
765# CONFIG_DS1682 is not set 765# CONFIG_DS1682 is not set
766# CONFIG_AT24 is not set 766# CONFIG_EEPROM_AT24 is not set
767# CONFIG_SENSORS_EEPROM is not set 767# CONFIG_EEPROM_LEGACY is not set
768# CONFIG_SENSORS_PCF8574 is not set 768# CONFIG_SENSORS_PCF8574 is not set
769# CONFIG_PCF8575 is not set 769# CONFIG_PCF8575 is not set
770# CONFIG_SENSORS_PCF8591 is not set 770# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/colibri_defconfig b/arch/arm/configs/colibri_defconfig
index c3e3418ed4fe..744086fff414 100644
--- a/arch/arm/configs/colibri_defconfig
+++ b/arch/arm/configs/colibri_defconfig
@@ -801,7 +801,7 @@ CONFIG_I2C_CHARDEV=y
801# CONFIG_SENSORS_DS1337 is not set 801# CONFIG_SENSORS_DS1337 is not set
802# CONFIG_SENSORS_DS1374 is not set 802# CONFIG_SENSORS_DS1374 is not set
803# CONFIG_DS1682 is not set 803# CONFIG_DS1682 is not set
804# CONFIG_SENSORS_EEPROM is not set 804# CONFIG_EEPROM_LEGACY is not set
805# CONFIG_SENSORS_PCF8574 is not set 805# CONFIG_SENSORS_PCF8574 is not set
806# CONFIG_SENSORS_PCA9539 is not set 806# CONFIG_SENSORS_PCA9539 is not set
807# CONFIG_SENSORS_PCF8591 is not set 807# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/corgi_defconfig b/arch/arm/configs/corgi_defconfig
index 98765438048d..d6cd165e9310 100644
--- a/arch/arm/configs/corgi_defconfig
+++ b/arch/arm/configs/corgi_defconfig
@@ -982,8 +982,8 @@ CONFIG_I2C_PXA=y
982# Miscellaneous I2C Chip support 982# Miscellaneous I2C Chip support
983# 983#
984# CONFIG_DS1682 is not set 984# CONFIG_DS1682 is not set
985# CONFIG_AT24 is not set 985# CONFIG_EEPROM_AT24 is not set
986# CONFIG_SENSORS_EEPROM is not set 986# CONFIG_EEPROM_LEGACY is not set
987# CONFIG_SENSORS_PCF8574 is not set 987# CONFIG_SENSORS_PCF8574 is not set
988# CONFIG_PCF8575 is not set 988# CONFIG_PCF8575 is not set
989# CONFIG_SENSORS_PCA9539 is not set 989# CONFIG_SENSORS_PCA9539 is not set
@@ -1008,7 +1008,7 @@ CONFIG_SPI_PXA2XX=y
1008# 1008#
1009# SPI Protocol Masters 1009# SPI Protocol Masters
1010# 1010#
1011# CONFIG_SPI_AT25 is not set 1011# CONFIG_EEPROM_AT25 is not set
1012# CONFIG_SPI_SPIDEV is not set 1012# CONFIG_SPI_SPIDEV is not set
1013# CONFIG_SPI_TLE62X0 is not set 1013# CONFIG_SPI_TLE62X0 is not set
1014CONFIG_ARCH_REQUIRE_GPIOLIB=y 1014CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/csb337_defconfig b/arch/arm/configs/csb337_defconfig
index 67e65e4f0cdc..29f68c2effe6 100644
--- a/arch/arm/configs/csb337_defconfig
+++ b/arch/arm/configs/csb337_defconfig
@@ -679,7 +679,7 @@ CONFIG_I2C_GPIO=y
679# CONFIG_SENSORS_DS1337 is not set 679# CONFIG_SENSORS_DS1337 is not set
680# CONFIG_SENSORS_DS1374 is not set 680# CONFIG_SENSORS_DS1374 is not set
681# CONFIG_DS1682 is not set 681# CONFIG_DS1682 is not set
682# CONFIG_SENSORS_EEPROM is not set 682# CONFIG_EEPROM_LEGACY is not set
683# CONFIG_SENSORS_PCF8574 is not set 683# CONFIG_SENSORS_PCF8574 is not set
684# CONFIG_SENSORS_PCA9539 is not set 684# CONFIG_SENSORS_PCA9539 is not set
685# CONFIG_SENSORS_PCF8591 is not set 685# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/csb637_defconfig b/arch/arm/configs/csb637_defconfig
index 99702146c9fc..f7b60ceed6c7 100644
--- a/arch/arm/configs/csb637_defconfig
+++ b/arch/arm/configs/csb637_defconfig
@@ -704,7 +704,7 @@ CONFIG_I2C_CHARDEV=y
704# Miscellaneous I2C Chip support 704# Miscellaneous I2C Chip support
705# 705#
706# CONFIG_DS1682 is not set 706# CONFIG_DS1682 is not set
707# CONFIG_SENSORS_EEPROM is not set 707# CONFIG_EEPROM_LEGACY is not set
708# CONFIG_SENSORS_PCF8574 is not set 708# CONFIG_SENSORS_PCF8574 is not set
709# CONFIG_PCF8575 is not set 709# CONFIG_PCF8575 is not set
710# CONFIG_SENSORS_PCF8591 is not set 710# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ecbat91_defconfig b/arch/arm/configs/ecbat91_defconfig
index cfeb817ad21a..ca520733bdb0 100644
--- a/arch/arm/configs/ecbat91_defconfig
+++ b/arch/arm/configs/ecbat91_defconfig
@@ -721,7 +721,7 @@ CONFIG_I2C_GPIO=y
721# 721#
722# CONFIG_SENSORS_DS1337 is not set 722# CONFIG_SENSORS_DS1337 is not set
723# CONFIG_SENSORS_DS1374 is not set 723# CONFIG_SENSORS_DS1374 is not set
724# CONFIG_SENSORS_EEPROM is not set 724# CONFIG_EEPROM_LEGACY is not set
725# CONFIG_SENSORS_PCF8574 is not set 725# CONFIG_SENSORS_PCF8574 is not set
726# CONFIG_SENSORS_PCA9539 is not set 726# CONFIG_SENSORS_PCA9539 is not set
727# CONFIG_SENSORS_PCF8591 is not set 727# CONFIG_SENSORS_PCF8591 is not set
@@ -747,7 +747,7 @@ CONFIG_SPI_AT91=y
747# 747#
748# SPI Protocol Masters 748# SPI Protocol Masters
749# 749#
750# CONFIG_SPI_AT25 is not set 750# CONFIG_EEPROM_AT25 is not set
751# CONFIG_SPI_SPIDEV is not set 751# CONFIG_SPI_SPIDEV is not set
752 752
753# 753#
diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig
index 21aa013793c6..3f89d5f25bce 100644
--- a/arch/arm/configs/ep93xx_defconfig
+++ b/arch/arm/configs/ep93xx_defconfig
@@ -681,7 +681,7 @@ CONFIG_I2C_ALGOBIT=y
681# 681#
682# CONFIG_SENSORS_DS1337 is not set 682# CONFIG_SENSORS_DS1337 is not set
683# CONFIG_SENSORS_DS1374 is not set 683# CONFIG_SENSORS_DS1374 is not set
684CONFIG_SENSORS_EEPROM=y 684CONFIG_EEPROM_LEGACY=y
685# CONFIG_SENSORS_PCF8574 is not set 685# CONFIG_SENSORS_PCF8574 is not set
686# CONFIG_SENSORS_PCA9539 is not set 686# CONFIG_SENSORS_PCA9539 is not set
687# CONFIG_SENSORS_PCF8591 is not set 687# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ezx_defconfig b/arch/arm/configs/ezx_defconfig
index 2a84d557adc2..d5ee16e6abf3 100644
--- a/arch/arm/configs/ezx_defconfig
+++ b/arch/arm/configs/ezx_defconfig
@@ -877,7 +877,7 @@ CONFIG_I2C_PXA=y
877# Miscellaneous I2C Chip support 877# Miscellaneous I2C Chip support
878# 878#
879# CONFIG_DS1682 is not set 879# CONFIG_DS1682 is not set
880# CONFIG_SENSORS_EEPROM is not set 880# CONFIG_EEPROM_LEGACY is not set
881# CONFIG_SENSORS_PCF8574 is not set 881# CONFIG_SENSORS_PCF8574 is not set
882# CONFIG_PCF8575 is not set 882# CONFIG_PCF8575 is not set
883# CONFIG_SENSORS_PCF8591 is not set 883# CONFIG_SENSORS_PCF8591 is not set
@@ -900,7 +900,7 @@ CONFIG_SPI_PXA2XX=m
900# 900#
901# SPI Protocol Masters 901# SPI Protocol Masters
902# 902#
903# CONFIG_SPI_AT25 is not set 903# CONFIG_EEPROM_AT25 is not set
904# CONFIG_SPI_SPIDEV is not set 904# CONFIG_SPI_SPIDEV is not set
905# CONFIG_SPI_TLE62X0 is not set 905# CONFIG_SPI_TLE62X0 is not set
906CONFIG_HAVE_GPIO_LIB=y 906CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig
index 299dc22294a0..6ace512fa101 100644
--- a/arch/arm/configs/footbridge_defconfig
+++ b/arch/arm/configs/footbridge_defconfig
@@ -801,7 +801,7 @@ CONFIG_I2C=m
801# 801#
802# Other I2C Chip support 802# Other I2C Chip support
803# 803#
804# CONFIG_SENSORS_EEPROM is not set 804# CONFIG_EEPROM_LEGACY is not set
805# CONFIG_SENSORS_PCF8574 is not set 805# CONFIG_SENSORS_PCF8574 is not set
806# CONFIG_SENSORS_PCF8591 is not set 806# CONFIG_SENSORS_PCF8591 is not set
807# CONFIG_SENSORS_RTC8564 is not set 807# CONFIG_SENSORS_RTC8564 is not set
diff --git a/arch/arm/configs/iop13xx_defconfig b/arch/arm/configs/iop13xx_defconfig
index 482e57061053..89c17761726b 100644
--- a/arch/arm/configs/iop13xx_defconfig
+++ b/arch/arm/configs/iop13xx_defconfig
@@ -744,7 +744,7 @@ CONFIG_I2C_IOP3XX=y
744# CONFIG_SENSORS_DS1337 is not set 744# CONFIG_SENSORS_DS1337 is not set
745# CONFIG_SENSORS_DS1374 is not set 745# CONFIG_SENSORS_DS1374 is not set
746# CONFIG_DS1682 is not set 746# CONFIG_DS1682 is not set
747# CONFIG_SENSORS_EEPROM is not set 747# CONFIG_EEPROM_LEGACY is not set
748# CONFIG_SENSORS_PCF8574 is not set 748# CONFIG_SENSORS_PCF8574 is not set
749# CONFIG_SENSORS_PCA9539 is not set 749# CONFIG_SENSORS_PCA9539 is not set
750# CONFIG_SENSORS_PCF8591 is not set 750# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/iop32x_defconfig b/arch/arm/configs/iop32x_defconfig
index 8612f58e1056..d70177b38f5f 100644
--- a/arch/arm/configs/iop32x_defconfig
+++ b/arch/arm/configs/iop32x_defconfig
@@ -847,7 +847,7 @@ CONFIG_I2C_IOP3XX=y
847# CONFIG_SENSORS_DS1337 is not set 847# CONFIG_SENSORS_DS1337 is not set
848# CONFIG_SENSORS_DS1374 is not set 848# CONFIG_SENSORS_DS1374 is not set
849# CONFIG_DS1682 is not set 849# CONFIG_DS1682 is not set
850# CONFIG_SENSORS_EEPROM is not set 850# CONFIG_EEPROM_LEGACY is not set
851# CONFIG_SENSORS_PCF8574 is not set 851# CONFIG_SENSORS_PCF8574 is not set
852# CONFIG_SENSORS_PCA9539 is not set 852# CONFIG_SENSORS_PCA9539 is not set
853# CONFIG_SENSORS_PCF8591 is not set 853# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/iop33x_defconfig b/arch/arm/configs/iop33x_defconfig
index 8b0098d19d08..eec488298267 100644
--- a/arch/arm/configs/iop33x_defconfig
+++ b/arch/arm/configs/iop33x_defconfig
@@ -746,7 +746,7 @@ CONFIG_I2C_IOP3XX=y
746# CONFIG_SENSORS_DS1337 is not set 746# CONFIG_SENSORS_DS1337 is not set
747# CONFIG_SENSORS_DS1374 is not set 747# CONFIG_SENSORS_DS1374 is not set
748# CONFIG_DS1682 is not set 748# CONFIG_DS1682 is not set
749# CONFIG_SENSORS_EEPROM is not set 749# CONFIG_EEPROM_LEGACY is not set
750# CONFIG_SENSORS_PCF8574 is not set 750# CONFIG_SENSORS_PCF8574 is not set
751# CONFIG_SENSORS_PCA9539 is not set 751# CONFIG_SENSORS_PCA9539 is not set
752# CONFIG_SENSORS_PCF8591 is not set 752# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ixp2000_defconfig b/arch/arm/configs/ixp2000_defconfig
index 84680db6c615..57526c15e854 100644
--- a/arch/arm/configs/ixp2000_defconfig
+++ b/arch/arm/configs/ixp2000_defconfig
@@ -768,7 +768,7 @@ CONFIG_I2C_IXP2000=y
768# 768#
769# CONFIG_SENSORS_DS1337 is not set 769# CONFIG_SENSORS_DS1337 is not set
770# CONFIG_SENSORS_DS1374 is not set 770# CONFIG_SENSORS_DS1374 is not set
771CONFIG_SENSORS_EEPROM=y 771CONFIG_EEPROM_LEGACY=y
772# CONFIG_SENSORS_PCF8574 is not set 772# CONFIG_SENSORS_PCF8574 is not set
773# CONFIG_SENSORS_PCA9539 is not set 773# CONFIG_SENSORS_PCA9539 is not set
774# CONFIG_SENSORS_PCF8591 is not set 774# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ixp23xx_defconfig b/arch/arm/configs/ixp23xx_defconfig
index 4a2f7b2372db..ef97561ed75b 100644
--- a/arch/arm/configs/ixp23xx_defconfig
+++ b/arch/arm/configs/ixp23xx_defconfig
@@ -900,7 +900,7 @@ CONFIG_I2C_ALGOBIT=y
900# 900#
901# CONFIG_SENSORS_DS1337 is not set 901# CONFIG_SENSORS_DS1337 is not set
902# CONFIG_SENSORS_DS1374 is not set 902# CONFIG_SENSORS_DS1374 is not set
903CONFIG_SENSORS_EEPROM=y 903CONFIG_EEPROM_LEGACY=y
904# CONFIG_SENSORS_PCF8574 is not set 904# CONFIG_SENSORS_PCF8574 is not set
905# CONFIG_SENSORS_PCA9539 is not set 905# CONFIG_SENSORS_PCA9539 is not set
906# CONFIG_SENSORS_PCF8591 is not set 906# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ixp4xx_defconfig b/arch/arm/configs/ixp4xx_defconfig
index fc14932e3abd..95cd8dfb5f1e 100644
--- a/arch/arm/configs/ixp4xx_defconfig
+++ b/arch/arm/configs/ixp4xx_defconfig
@@ -1083,7 +1083,7 @@ CONFIG_I2C_IXP4XX=y
1083# CONFIG_SENSORS_DS1337 is not set 1083# CONFIG_SENSORS_DS1337 is not set
1084# CONFIG_SENSORS_DS1374 is not set 1084# CONFIG_SENSORS_DS1374 is not set
1085# CONFIG_DS1682 is not set 1085# CONFIG_DS1682 is not set
1086CONFIG_SENSORS_EEPROM=y 1086CONFIG_EEPROM_LEGACY=y
1087# CONFIG_SENSORS_PCF8574 is not set 1087# CONFIG_SENSORS_PCF8574 is not set
1088# CONFIG_SENSORS_PCA9539 is not set 1088# CONFIG_SENSORS_PCA9539 is not set
1089# CONFIG_SENSORS_PCF8591 is not set 1089# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/kafa_defconfig b/arch/arm/configs/kafa_defconfig
index 6dd95a2c8d5d..9f92fc527f59 100644
--- a/arch/arm/configs/kafa_defconfig
+++ b/arch/arm/configs/kafa_defconfig
@@ -603,7 +603,7 @@ CONFIG_I2C_GPIO=y
603# 603#
604# CONFIG_SENSORS_DS1337 is not set 604# CONFIG_SENSORS_DS1337 is not set
605# CONFIG_SENSORS_DS1374 is not set 605# CONFIG_SENSORS_DS1374 is not set
606# CONFIG_SENSORS_EEPROM is not set 606# CONFIG_EEPROM_LEGACY is not set
607# CONFIG_SENSORS_PCF8574 is not set 607# CONFIG_SENSORS_PCF8574 is not set
608# CONFIG_SENSORS_PCA9539 is not set 608# CONFIG_SENSORS_PCA9539 is not set
609# CONFIG_SENSORS_PCF8591 is not set 609# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig
index ab8b1e0d0dac..4bc38078d580 100644
--- a/arch/arm/configs/kirkwood_defconfig
+++ b/arch/arm/configs/kirkwood_defconfig
@@ -905,8 +905,8 @@ CONFIG_I2C_MV64XXX=y
905# Miscellaneous I2C Chip support 905# Miscellaneous I2C Chip support
906# 906#
907# CONFIG_DS1682 is not set 907# CONFIG_DS1682 is not set
908# CONFIG_AT24 is not set 908# CONFIG_EEPROM_AT24 is not set
909# CONFIG_SENSORS_EEPROM is not set 909# CONFIG_EEPROM_LEGACY is not set
910# CONFIG_SENSORS_PCF8574 is not set 910# CONFIG_SENSORS_PCF8574 is not set
911# CONFIG_PCF8575 is not set 911# CONFIG_PCF8575 is not set
912# CONFIG_SENSORS_PCA9539 is not set 912# CONFIG_SENSORS_PCA9539 is not set
@@ -930,7 +930,7 @@ CONFIG_SPI_ORION=y
930# 930#
931# SPI Protocol Masters 931# SPI Protocol Masters
932# 932#
933# CONFIG_SPI_AT25 is not set 933# CONFIG_EEPROM_AT25 is not set
934# CONFIG_SPI_SPIDEV is not set 934# CONFIG_SPI_SPIDEV is not set
935# CONFIG_SPI_TLE62X0 is not set 935# CONFIG_SPI_TLE62X0 is not set
936# CONFIG_W1 is not set 936# CONFIG_W1 is not set
diff --git a/arch/arm/configs/loki_defconfig b/arch/arm/configs/loki_defconfig
index 17da7c3b3d53..b720fcffbcd4 100644
--- a/arch/arm/configs/loki_defconfig
+++ b/arch/arm/configs/loki_defconfig
@@ -654,7 +654,7 @@ CONFIG_I2C_MV64XXX=y
654# Miscellaneous I2C Chip support 654# Miscellaneous I2C Chip support
655# 655#
656# CONFIG_DS1682 is not set 656# CONFIG_DS1682 is not set
657# CONFIG_SENSORS_EEPROM is not set 657# CONFIG_EEPROM_LEGACY is not set
658# CONFIG_SENSORS_PCF8574 is not set 658# CONFIG_SENSORS_PCF8574 is not set
659# CONFIG_PCF8575 is not set 659# CONFIG_PCF8575 is not set
660# CONFIG_SENSORS_PCF8591 is not set 660# CONFIG_SENSORS_PCF8591 is not set
@@ -675,7 +675,7 @@ CONFIG_SPI_MASTER=y
675# 675#
676# SPI Protocol Masters 676# SPI Protocol Masters
677# 677#
678# CONFIG_SPI_AT25 is not set 678# CONFIG_EEPROM_AT25 is not set
679# CONFIG_SPI_SPIDEV is not set 679# CONFIG_SPI_SPIDEV is not set
680# CONFIG_SPI_TLE62X0 is not set 680# CONFIG_SPI_TLE62X0 is not set
681# CONFIG_W1 is not set 681# CONFIG_W1 is not set
diff --git a/arch/arm/configs/magician_defconfig b/arch/arm/configs/magician_defconfig
index 4d11678584db..73ba62b71063 100644
--- a/arch/arm/configs/magician_defconfig
+++ b/arch/arm/configs/magician_defconfig
@@ -678,7 +678,7 @@ CONFIG_I2C_PXA=m
678# CONFIG_SENSORS_DS1337 is not set 678# CONFIG_SENSORS_DS1337 is not set
679# CONFIG_SENSORS_DS1374 is not set 679# CONFIG_SENSORS_DS1374 is not set
680# CONFIG_DS1682 is not set 680# CONFIG_DS1682 is not set
681# CONFIG_SENSORS_EEPROM is not set 681# CONFIG_EEPROM_LEGACY is not set
682# CONFIG_SENSORS_PCF8574 is not set 682# CONFIG_SENSORS_PCF8574 is not set
683# CONFIG_SENSORS_PCA9539 is not set 683# CONFIG_SENSORS_PCA9539 is not set
684# CONFIG_SENSORS_PCF8591 is not set 684# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/msm_defconfig b/arch/arm/configs/msm_defconfig
index 3b4ecf2a90dd..cc3b06ee24f9 100644
--- a/arch/arm/configs/msm_defconfig
+++ b/arch/arm/configs/msm_defconfig
@@ -580,7 +580,7 @@ CONFIG_I2C_MSM=y
580# CONFIG_SENSORS_DS1337 is not set 580# CONFIG_SENSORS_DS1337 is not set
581# CONFIG_SENSORS_DS1374 is not set 581# CONFIG_SENSORS_DS1374 is not set
582# CONFIG_DS1682 is not set 582# CONFIG_DS1682 is not set
583# CONFIG_SENSORS_EEPROM is not set 583# CONFIG_EEPROM_LEGACY is not set
584# CONFIG_SENSORS_PCF8574 is not set 584# CONFIG_SENSORS_PCF8574 is not set
585# CONFIG_SENSORS_PCA9539 is not set 585# CONFIG_SENSORS_PCA9539 is not set
586CONFIG_SENSORS_PCA9633=y 586CONFIG_SENSORS_PCA9633=y
diff --git a/arch/arm/configs/mv78xx0_defconfig b/arch/arm/configs/mv78xx0_defconfig
index d38ebf8721a4..83c817f31bcc 100644
--- a/arch/arm/configs/mv78xx0_defconfig
+++ b/arch/arm/configs/mv78xx0_defconfig
@@ -832,7 +832,7 @@ CONFIG_I2C_MV64XXX=y
832# Miscellaneous I2C Chip support 832# Miscellaneous I2C Chip support
833# 833#
834# CONFIG_DS1682 is not set 834# CONFIG_DS1682 is not set
835# CONFIG_SENSORS_EEPROM is not set 835# CONFIG_EEPROM_LEGACY is not set
836# CONFIG_SENSORS_PCF8574 is not set 836# CONFIG_SENSORS_PCF8574 is not set
837# CONFIG_PCF8575 is not set 837# CONFIG_PCF8575 is not set
838# CONFIG_SENSORS_PCF8591 is not set 838# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/n770_defconfig b/arch/arm/configs/n770_defconfig
index 568ef1770d5f..672f6db06a52 100644
--- a/arch/arm/configs/n770_defconfig
+++ b/arch/arm/configs/n770_defconfig
@@ -767,7 +767,7 @@ CONFIG_I2C_OMAP=y
767# CONFIG_SENSORS_DS1337 is not set 767# CONFIG_SENSORS_DS1337 is not set
768# CONFIG_SENSORS_DS1374 is not set 768# CONFIG_SENSORS_DS1374 is not set
769# CONFIG_DS1682 is not set 769# CONFIG_DS1682 is not set
770# CONFIG_SENSORS_EEPROM is not set 770# CONFIG_EEPROM_LEGACY is not set
771# CONFIG_SENSORS_PCF8574 is not set 771# CONFIG_SENSORS_PCF8574 is not set
772# CONFIG_SENSORS_PCA9539 is not set 772# CONFIG_SENSORS_PCA9539 is not set
773# CONFIG_SENSORS_PCF8591 is not set 773# CONFIG_SENSORS_PCF8591 is not set
@@ -798,7 +798,7 @@ CONFIG_SPI_OMAP_UWIRE=y
798# 798#
799# SPI Protocol Masters 799# SPI Protocol Masters
800# 800#
801# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
802# CONFIG_SPI_TSC2101 is not set 802# CONFIG_SPI_TSC2101 is not set
803# CONFIG_SPI_TSC2102 is not set 803# CONFIG_SPI_TSC2102 is not set
804# CONFIG_SPI_TSC210X is not set 804# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/neocore926_defconfig b/arch/arm/configs/neocore926_defconfig
index 325f1e105f69..e0e4e98b5aa2 100644
--- a/arch/arm/configs/neocore926_defconfig
+++ b/arch/arm/configs/neocore926_defconfig
@@ -774,8 +774,8 @@ CONFIG_I2C_CHARDEV=y
774# Miscellaneous I2C Chip support 774# Miscellaneous I2C Chip support
775# 775#
776# CONFIG_DS1682 is not set 776# CONFIG_DS1682 is not set
777# CONFIG_AT24 is not set 777# CONFIG_EEPROM_AT24 is not set
778# CONFIG_SENSORS_EEPROM is not set 778# CONFIG_EEPROM_LEGACY is not set
779# CONFIG_SENSORS_PCF8574 is not set 779# CONFIG_SENSORS_PCF8574 is not set
780# CONFIG_PCF8575 is not set 780# CONFIG_PCF8575 is not set
781# CONFIG_SENSORS_PCA9539 is not set 781# CONFIG_SENSORS_PCA9539 is not set
@@ -798,7 +798,7 @@ CONFIG_SPI_ATMEL=y
798# 798#
799# SPI Protocol Masters 799# SPI Protocol Masters
800# 800#
801# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
802# CONFIG_SPI_SPIDEV is not set 802# CONFIG_SPI_SPIDEV is not set
803# CONFIG_SPI_TLE62X0 is not set 803# CONFIG_SPI_TLE62X0 is not set
804# CONFIG_W1 is not set 804# CONFIG_W1 is not set
diff --git a/arch/arm/configs/neponset_defconfig b/arch/arm/configs/neponset_defconfig
index 92ccdc6492f7..d81ea219c934 100644
--- a/arch/arm/configs/neponset_defconfig
+++ b/arch/arm/configs/neponset_defconfig
@@ -737,7 +737,7 @@ CONFIG_I2C_ALGOBIT=y
737# 737#
738# Other I2C Chip support 738# Other I2C Chip support
739# 739#
740# CONFIG_SENSORS_EEPROM is not set 740# CONFIG_EEPROM_LEGACY is not set
741# CONFIG_SENSORS_PCF8574 is not set 741# CONFIG_SENSORS_PCF8574 is not set
742# CONFIG_SENSORS_PCF8591 is not set 742# CONFIG_SENSORS_PCF8591 is not set
743# CONFIG_SENSORS_RTC8564 is not set 743# CONFIG_SENSORS_RTC8564 is not set
diff --git a/arch/arm/configs/omap3_beagle_defconfig b/arch/arm/configs/omap3_beagle_defconfig
index e042d27eae16..4c6fb7e959df 100644
--- a/arch/arm/configs/omap3_beagle_defconfig
+++ b/arch/arm/configs/omap3_beagle_defconfig
@@ -687,8 +687,8 @@ CONFIG_I2C_OMAP=y
687# Miscellaneous I2C Chip support 687# Miscellaneous I2C Chip support
688# 688#
689# CONFIG_DS1682 is not set 689# CONFIG_DS1682 is not set
690# CONFIG_AT24 is not set 690# CONFIG_EEPROM_AT24 is not set
691# CONFIG_SENSORS_EEPROM is not set 691# CONFIG_EEPROM_LEGACY is not set
692# CONFIG_SENSORS_PCF8574 is not set 692# CONFIG_SENSORS_PCF8574 is not set
693# CONFIG_PCF8575 is not set 693# CONFIG_PCF8575 is not set
694# CONFIG_SENSORS_PCA9539 is not set 694# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/omap3_pandora_defconfig b/arch/arm/configs/omap3_pandora_defconfig
index 09543f4de5bc..b54ad2e2da36 100644
--- a/arch/arm/configs/omap3_pandora_defconfig
+++ b/arch/arm/configs/omap3_pandora_defconfig
@@ -713,8 +713,8 @@ CONFIG_I2C_OMAP=y
713# Miscellaneous I2C Chip support 713# Miscellaneous I2C Chip support
714# 714#
715# CONFIG_DS1682 is not set 715# CONFIG_DS1682 is not set
716# CONFIG_AT24 is not set 716# CONFIG_EEPROM_AT24 is not set
717# CONFIG_SENSORS_EEPROM is not set 717# CONFIG_EEPROM_LEGACY is not set
718# CONFIG_SENSORS_PCF8574 is not set 718# CONFIG_SENSORS_PCF8574 is not set
719# CONFIG_PCF8575 is not set 719# CONFIG_PCF8575 is not set
720# CONFIG_SENSORS_PCA9539 is not set 720# CONFIG_SENSORS_PCA9539 is not set
@@ -740,7 +740,7 @@ CONFIG_SPI_OMAP24XX=y
740# 740#
741# SPI Protocol Masters 741# SPI Protocol Masters
742# 742#
743# CONFIG_SPI_AT25 is not set 743# CONFIG_EEPROM_AT25 is not set
744# CONFIG_SPI_SPIDEV is not set 744# CONFIG_SPI_SPIDEV is not set
745# CONFIG_SPI_TLE62X0 is not set 745# CONFIG_SPI_TLE62X0 is not set
746CONFIG_ARCH_REQUIRE_GPIOLIB=y 746CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/omap_2430sdp_defconfig b/arch/arm/configs/omap_2430sdp_defconfig
index b0617c0da2a1..640e9afc4630 100644
--- a/arch/arm/configs/omap_2430sdp_defconfig
+++ b/arch/arm/configs/omap_2430sdp_defconfig
@@ -710,7 +710,7 @@ CONFIG_I2C_OMAP=y
710# CONFIG_SENSORS_DS1337 is not set 710# CONFIG_SENSORS_DS1337 is not set
711# CONFIG_SENSORS_DS1374 is not set 711# CONFIG_SENSORS_DS1374 is not set
712# CONFIG_DS1682 is not set 712# CONFIG_DS1682 is not set
713# CONFIG_SENSORS_EEPROM is not set 713# CONFIG_EEPROM_LEGACY is not set
714# CONFIG_SENSORS_PCF8574 is not set 714# CONFIG_SENSORS_PCF8574 is not set
715# CONFIG_SENSORS_PCA9539 is not set 715# CONFIG_SENSORS_PCA9539 is not set
716# CONFIG_SENSORS_PCF8591 is not set 716# CONFIG_SENSORS_PCF8591 is not set
@@ -743,7 +743,7 @@ CONFIG_SPI_MASTER=y
743# 743#
744# SPI Protocol Masters 744# SPI Protocol Masters
745# 745#
746# CONFIG_SPI_AT25 is not set 746# CONFIG_EEPROM_AT25 is not set
747# CONFIG_SPI_TSC2101 is not set 747# CONFIG_SPI_TSC2101 is not set
748# CONFIG_SPI_TSC2102 is not set 748# CONFIG_SPI_TSC2102 is not set
749# CONFIG_SPI_TSC210X is not set 749# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/omap_apollon_2420_defconfig b/arch/arm/configs/omap_apollon_2420_defconfig
index bb39dfc72d69..ac7adf34c54a 100644
--- a/arch/arm/configs/omap_apollon_2420_defconfig
+++ b/arch/arm/configs/omap_apollon_2420_defconfig
@@ -612,7 +612,7 @@ CONFIG_SPI_OMAP24XX=y
612# 612#
613# SPI Protocol Masters 613# SPI Protocol Masters
614# 614#
615# CONFIG_SPI_AT25 is not set 615# CONFIG_EEPROM_AT25 is not set
616# CONFIG_SPI_TSC2101 is not set 616# CONFIG_SPI_TSC2101 is not set
617# CONFIG_SPI_TSC2102 is not set 617# CONFIG_SPI_TSC2102 is not set
618# CONFIG_SPI_TSC210X is not set 618# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/omap_generic_1510_defconfig b/arch/arm/configs/omap_generic_1510_defconfig
index 4b1c252f2091..ccdc661b5856 100644
--- a/arch/arm/configs/omap_generic_1510_defconfig
+++ b/arch/arm/configs/omap_generic_1510_defconfig
@@ -637,7 +637,7 @@ CONFIG_I2C_ALGOBIT=y
637# CONFIG_SENSORS_DS1337 is not set 637# CONFIG_SENSORS_DS1337 is not set
638# CONFIG_SENSORS_DS1374 is not set 638# CONFIG_SENSORS_DS1374 is not set
639# CONFIG_DS1682 is not set 639# CONFIG_DS1682 is not set
640# CONFIG_SENSORS_EEPROM is not set 640# CONFIG_EEPROM_LEGACY is not set
641# CONFIG_SENSORS_PCF8574 is not set 641# CONFIG_SENSORS_PCF8574 is not set
642# CONFIG_SENSORS_PCA9539 is not set 642# CONFIG_SENSORS_PCA9539 is not set
643# CONFIG_SENSORS_PCF8591 is not set 643# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_generic_1610_defconfig b/arch/arm/configs/omap_generic_1610_defconfig
index fc66f019d56c..0c42c8955047 100644
--- a/arch/arm/configs/omap_generic_1610_defconfig
+++ b/arch/arm/configs/omap_generic_1610_defconfig
@@ -641,7 +641,7 @@ CONFIG_I2C_ALGOBIT=y
641# CONFIG_SENSORS_DS1337 is not set 641# CONFIG_SENSORS_DS1337 is not set
642# CONFIG_SENSORS_DS1374 is not set 642# CONFIG_SENSORS_DS1374 is not set
643# CONFIG_DS1682 is not set 643# CONFIG_DS1682 is not set
644# CONFIG_SENSORS_EEPROM is not set 644# CONFIG_EEPROM_LEGACY is not set
645# CONFIG_SENSORS_PCF8574 is not set 645# CONFIG_SENSORS_PCF8574 is not set
646# CONFIG_SENSORS_PCA9539 is not set 646# CONFIG_SENSORS_PCA9539 is not set
647# CONFIG_SENSORS_PCF8591 is not set 647# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_h2_1610_defconfig b/arch/arm/configs/omap_h2_1610_defconfig
index c03507202f3c..74dbdc644d32 100644
--- a/arch/arm/configs/omap_h2_1610_defconfig
+++ b/arch/arm/configs/omap_h2_1610_defconfig
@@ -700,7 +700,7 @@ CONFIG_I2C_OMAP=y
700# Miscellaneous I2C Chip support 700# Miscellaneous I2C Chip support
701# 701#
702# CONFIG_DS1682 is not set 702# CONFIG_DS1682 is not set
703# CONFIG_SENSORS_EEPROM is not set 703# CONFIG_EEPROM_LEGACY is not set
704# CONFIG_SENSORS_PCF8574 is not set 704# CONFIG_SENSORS_PCF8574 is not set
705# CONFIG_PCF8575 is not set 705# CONFIG_PCF8575 is not set
706# CONFIG_SENSORS_PCF8591 is not set 706# CONFIG_SENSORS_PCF8591 is not set
@@ -731,7 +731,7 @@ CONFIG_SPI_OMAP_UWIRE=y
731# 731#
732# SPI Protocol Masters 732# SPI Protocol Masters
733# 733#
734# CONFIG_SPI_AT25 is not set 734# CONFIG_EEPROM_AT25 is not set
735CONFIG_SPI_TSC2101=y 735CONFIG_SPI_TSC2101=y
736# CONFIG_SPI_TSC2102 is not set 736# CONFIG_SPI_TSC2102 is not set
737# CONFIG_SPI_TSC210X is not set 737# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/omap_h4_2420_defconfig b/arch/arm/configs/omap_h4_2420_defconfig
index 5bc89185a64f..a4aab8e4c29b 100644
--- a/arch/arm/configs/omap_h4_2420_defconfig
+++ b/arch/arm/configs/omap_h4_2420_defconfig
@@ -681,7 +681,7 @@ CONFIG_I2C_OMAP=y
681# CONFIG_SENSORS_DS1337 is not set 681# CONFIG_SENSORS_DS1337 is not set
682# CONFIG_SENSORS_DS1374 is not set 682# CONFIG_SENSORS_DS1374 is not set
683# CONFIG_DS1682 is not set 683# CONFIG_DS1682 is not set
684# CONFIG_SENSORS_EEPROM is not set 684# CONFIG_EEPROM_LEGACY is not set
685# CONFIG_SENSORS_PCF8574 is not set 685# CONFIG_SENSORS_PCF8574 is not set
686# CONFIG_SENSORS_PCA9539 is not set 686# CONFIG_SENSORS_PCA9539 is not set
687# CONFIG_SENSORS_PCF8591 is not set 687# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_innovator_1510_defconfig b/arch/arm/configs/omap_innovator_1510_defconfig
index 55b2611bd90a..0cfe363e3365 100644
--- a/arch/arm/configs/omap_innovator_1510_defconfig
+++ b/arch/arm/configs/omap_innovator_1510_defconfig
@@ -631,7 +631,7 @@ CONFIG_I2C_BOARDINFO=y
631# CONFIG_SENSORS_DS1337 is not set 631# CONFIG_SENSORS_DS1337 is not set
632# CONFIG_SENSORS_DS1374 is not set 632# CONFIG_SENSORS_DS1374 is not set
633# CONFIG_DS1682 is not set 633# CONFIG_DS1682 is not set
634# CONFIG_SENSORS_EEPROM is not set 634# CONFIG_EEPROM_LEGACY is not set
635# CONFIG_SENSORS_PCF8574 is not set 635# CONFIG_SENSORS_PCF8574 is not set
636# CONFIG_SENSORS_PCA9539 is not set 636# CONFIG_SENSORS_PCA9539 is not set
637# CONFIG_SENSORS_PCF8591 is not set 637# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_ldp_defconfig b/arch/arm/configs/omap_ldp_defconfig
index b77d054169ee..aa9d34feddc6 100644
--- a/arch/arm/configs/omap_ldp_defconfig
+++ b/arch/arm/configs/omap_ldp_defconfig
@@ -629,8 +629,8 @@ CONFIG_I2C_OMAP=y
629# Miscellaneous I2C Chip support 629# Miscellaneous I2C Chip support
630# 630#
631# CONFIG_DS1682 is not set 631# CONFIG_DS1682 is not set
632# CONFIG_AT24 is not set 632# CONFIG_EEPROM_AT24 is not set
633# CONFIG_SENSORS_EEPROM is not set 633# CONFIG_EEPROM_LEGACY is not set
634# CONFIG_SENSORS_PCF8574 is not set 634# CONFIG_SENSORS_PCF8574 is not set
635# CONFIG_PCF8575 is not set 635# CONFIG_PCF8575 is not set
636# CONFIG_SENSORS_PCA9539 is not set 636# CONFIG_SENSORS_PCA9539 is not set
@@ -656,7 +656,7 @@ CONFIG_SPI_OMAP24XX=y
656# 656#
657# SPI Protocol Masters 657# SPI Protocol Masters
658# 658#
659# CONFIG_SPI_AT25 is not set 659# CONFIG_EEPROM_AT25 is not set
660# CONFIG_SPI_SPIDEV is not set 660# CONFIG_SPI_SPIDEV is not set
661# CONFIG_SPI_TLE62X0 is not set 661# CONFIG_SPI_TLE62X0 is not set
662CONFIG_ARCH_REQUIRE_GPIOLIB=y 662CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/omap_osk_5912_defconfig b/arch/arm/configs/omap_osk_5912_defconfig
index b68e0144cab5..6b3b5c610da0 100644
--- a/arch/arm/configs/omap_osk_5912_defconfig
+++ b/arch/arm/configs/omap_osk_5912_defconfig
@@ -711,7 +711,7 @@ CONFIG_I2C_OMAP=y
711# CONFIG_SENSORS_DS1337 is not set 711# CONFIG_SENSORS_DS1337 is not set
712# CONFIG_SENSORS_DS1374 is not set 712# CONFIG_SENSORS_DS1374 is not set
713# CONFIG_DS1682 is not set 713# CONFIG_DS1682 is not set
714# CONFIG_SENSORS_EEPROM is not set 714# CONFIG_EEPROM_LEGACY is not set
715# CONFIG_SENSORS_PCF8574 is not set 715# CONFIG_SENSORS_PCF8574 is not set
716# CONFIG_SENSORS_PCA9539 is not set 716# CONFIG_SENSORS_PCA9539 is not set
717# CONFIG_SENSORS_PCF8591 is not set 717# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/onearm_defconfig b/arch/arm/configs/onearm_defconfig
index 418ca2febbe3..f8701fadb600 100644
--- a/arch/arm/configs/onearm_defconfig
+++ b/arch/arm/configs/onearm_defconfig
@@ -698,7 +698,7 @@ CONFIG_I2C_CHARDEV=y
698# 698#
699# CONFIG_SENSORS_DS1337 is not set 699# CONFIG_SENSORS_DS1337 is not set
700# CONFIG_SENSORS_DS1374 is not set 700# CONFIG_SENSORS_DS1374 is not set
701# CONFIG_SENSORS_EEPROM is not set 701# CONFIG_EEPROM_LEGACY is not set
702# CONFIG_SENSORS_PCF8574 is not set 702# CONFIG_SENSORS_PCF8574 is not set
703# CONFIG_SENSORS_PCA9539 is not set 703# CONFIG_SENSORS_PCA9539 is not set
704# CONFIG_SENSORS_PCF8591 is not set 704# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig
index b2456ca544c9..a8ee6984a09e 100644
--- a/arch/arm/configs/orion5x_defconfig
+++ b/arch/arm/configs/orion5x_defconfig
@@ -886,8 +886,8 @@ CONFIG_I2C_MV64XXX=y
886# Miscellaneous I2C Chip support 886# Miscellaneous I2C Chip support
887# 887#
888# CONFIG_DS1682 is not set 888# CONFIG_DS1682 is not set
889# CONFIG_AT24 is not set 889# CONFIG_EEPROM_AT24 is not set
890# CONFIG_SENSORS_EEPROM is not set 890# CONFIG_EEPROM_LEGACY is not set
891# CONFIG_SENSORS_PCF8574 is not set 891# CONFIG_SENSORS_PCF8574 is not set
892# CONFIG_PCF8575 is not set 892# CONFIG_PCF8575 is not set
893# CONFIG_SENSORS_PCA9539 is not set 893# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/overo_defconfig b/arch/arm/configs/overo_defconfig
index 49200967a153..a57f9e4124fa 100644
--- a/arch/arm/configs/overo_defconfig
+++ b/arch/arm/configs/overo_defconfig
@@ -858,8 +858,8 @@ CONFIG_I2C_OMAP=y
858# Miscellaneous I2C Chip support 858# Miscellaneous I2C Chip support
859# 859#
860# CONFIG_DS1682 is not set 860# CONFIG_DS1682 is not set
861# CONFIG_AT24 is not set 861# CONFIG_EEPROM_AT24 is not set
862CONFIG_SENSORS_EEPROM=y 862CONFIG_EEPROM_LEGACY=y
863# CONFIG_SENSORS_PCF8574 is not set 863# CONFIG_SENSORS_PCF8574 is not set
864# CONFIG_PCF8575 is not set 864# CONFIG_PCF8575 is not set
865# CONFIG_SENSORS_PCA9539 is not set 865# CONFIG_SENSORS_PCA9539 is not set
@@ -885,7 +885,7 @@ CONFIG_SPI_OMAP24XX=y
885# 885#
886# SPI Protocol Masters 886# SPI Protocol Masters
887# 887#
888# CONFIG_SPI_AT25 is not set 888# CONFIG_EEPROM_AT25 is not set
889# CONFIG_SPI_SPIDEV is not set 889# CONFIG_SPI_SPIDEV is not set
890# CONFIG_SPI_TLE62X0 is not set 890# CONFIG_SPI_TLE62X0 is not set
891CONFIG_ARCH_REQUIRE_GPIOLIB=y 891CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/palmz71_defconfig b/arch/arm/configs/palmz71_defconfig
index 6361922e71c1..08e14068fff7 100644
--- a/arch/arm/configs/palmz71_defconfig
+++ b/arch/arm/configs/palmz71_defconfig
@@ -554,7 +554,7 @@ CONFIG_SPI_OMAP_UWIRE=y
554# 554#
555# SPI Protocol Masters 555# SPI Protocol Masters
556# 556#
557# CONFIG_SPI_AT25 is not set 557# CONFIG_EEPROM_AT25 is not set
558# CONFIG_SPI_TSC2101 is not set 558# CONFIG_SPI_TSC2101 is not set
559# CONFIG_SPI_TSC2102 is not set 559# CONFIG_SPI_TSC2102 is not set
560# CONFIG_SPI_TSC210X is not set 560# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/palmz72_defconfig b/arch/arm/configs/palmz72_defconfig
index 3245f8f33e0a..a0dc37c05dea 100644
--- a/arch/arm/configs/palmz72_defconfig
+++ b/arch/arm/configs/palmz72_defconfig
@@ -527,8 +527,8 @@ CONFIG_I2C_PXA=y
527# Miscellaneous I2C Chip support 527# Miscellaneous I2C Chip support
528# 528#
529# CONFIG_DS1682 is not set 529# CONFIG_DS1682 is not set
530# CONFIG_AT24 is not set 530# CONFIG_EEPROM_AT24 is not set
531# CONFIG_SENSORS_EEPROM is not set 531# CONFIG_EEPROM_LEGACY is not set
532# CONFIG_SENSORS_PCF8574 is not set 532# CONFIG_SENSORS_PCF8574 is not set
533# CONFIG_PCF8575 is not set 533# CONFIG_PCF8575 is not set
534# CONFIG_SENSORS_PCA9539 is not set 534# CONFIG_SENSORS_PCA9539 is not set
@@ -552,7 +552,7 @@ CONFIG_SPI_MASTER=y
552# 552#
553# SPI Protocol Masters 553# SPI Protocol Masters
554# 554#
555# CONFIG_SPI_AT25 is not set 555# CONFIG_EEPROM_AT25 is not set
556CONFIG_SPI_SPIDEV=y 556CONFIG_SPI_SPIDEV=y
557# CONFIG_SPI_TLE62X0 is not set 557# CONFIG_SPI_TLE62X0 is not set
558CONFIG_ARCH_REQUIRE_GPIOLIB=y 558CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/pcm027_defconfig b/arch/arm/configs/pcm027_defconfig
index 17b9b2469570..05ad96a43b1d 100644
--- a/arch/arm/configs/pcm027_defconfig
+++ b/arch/arm/configs/pcm027_defconfig
@@ -606,7 +606,7 @@ CONFIG_I2C_PXA=y
606# CONFIG_SENSORS_DS1337 is not set 606# CONFIG_SENSORS_DS1337 is not set
607# CONFIG_SENSORS_DS1374 is not set 607# CONFIG_SENSORS_DS1374 is not set
608# CONFIG_DS1682 is not set 608# CONFIG_DS1682 is not set
609CONFIG_SENSORS_EEPROM=y 609CONFIG_EEPROM_LEGACY=y
610# CONFIG_SENSORS_PCF8574 is not set 610# CONFIG_SENSORS_PCF8574 is not set
611# CONFIG_SENSORS_PCA9539 is not set 611# CONFIG_SENSORS_PCA9539 is not set
612# CONFIG_SENSORS_PCF8591 is not set 612# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/pcm038_defconfig b/arch/arm/configs/pcm038_defconfig
index 6b798c215ca8..41429a00f58c 100644
--- a/arch/arm/configs/pcm038_defconfig
+++ b/arch/arm/configs/pcm038_defconfig
@@ -604,7 +604,7 @@ CONFIG_I2C_BOARDINFO=y
604# Miscellaneous I2C Chip support 604# Miscellaneous I2C Chip support
605# 605#
606# CONFIG_DS1682 is not set 606# CONFIG_DS1682 is not set
607# CONFIG_SENSORS_EEPROM is not set 607# CONFIG_EEPROM_LEGACY is not set
608# CONFIG_SENSORS_PCF8574 is not set 608# CONFIG_SENSORS_PCF8574 is not set
609# CONFIG_PCF8575 is not set 609# CONFIG_PCF8575 is not set
610# CONFIG_SENSORS_PCF8591 is not set 610# CONFIG_SENSORS_PCF8591 is not set
@@ -626,7 +626,7 @@ CONFIG_SPI_BITBANG=y
626# 626#
627# SPI Protocol Masters 627# SPI Protocol Masters
628# 628#
629# CONFIG_SPI_AT25 is not set 629# CONFIG_EEPROM_AT25 is not set
630# CONFIG_SPI_SPIDEV is not set 630# CONFIG_SPI_SPIDEV is not set
631# CONFIG_SPI_TLE62X0 is not set 631# CONFIG_SPI_TLE62X0 is not set
632CONFIG_HAVE_GPIO_LIB=y 632CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/arm/configs/picotux200_defconfig b/arch/arm/configs/picotux200_defconfig
index 59e4463c2da2..9018f0f298aa 100644
--- a/arch/arm/configs/picotux200_defconfig
+++ b/arch/arm/configs/picotux200_defconfig
@@ -744,7 +744,7 @@ CONFIG_I2C_GPIO=m
744# 744#
745CONFIG_SENSORS_DS1337=m 745CONFIG_SENSORS_DS1337=m
746CONFIG_SENSORS_DS1374=m 746CONFIG_SENSORS_DS1374=m
747CONFIG_SENSORS_EEPROM=m 747CONFIG_EEPROM_LEGACY=m
748CONFIG_SENSORS_PCF8574=m 748CONFIG_SENSORS_PCF8574=m
749CONFIG_SENSORS_PCA9539=m 749CONFIG_SENSORS_PCA9539=m
750CONFIG_SENSORS_PCF8591=m 750CONFIG_SENSORS_PCF8591=m
diff --git a/arch/arm/configs/pnx4008_defconfig b/arch/arm/configs/pnx4008_defconfig
index 811b8f60d19d..67b5f1e15f4a 100644
--- a/arch/arm/configs/pnx4008_defconfig
+++ b/arch/arm/configs/pnx4008_defconfig
@@ -915,7 +915,7 @@ CONFIG_I2C_ALGOPCA=m
915# 915#
916# CONFIG_SENSORS_DS1337 is not set 916# CONFIG_SENSORS_DS1337 is not set
917# CONFIG_SENSORS_DS1374 is not set 917# CONFIG_SENSORS_DS1374 is not set
918CONFIG_SENSORS_EEPROM=m 918CONFIG_EEPROM_LEGACY=m
919CONFIG_SENSORS_PCF8574=m 919CONFIG_SENSORS_PCF8574=m
920# CONFIG_SENSORS_PCA9539 is not set 920# CONFIG_SENSORS_PCA9539 is not set
921CONFIG_SENSORS_PCF8591=m 921CONFIG_SENSORS_PCF8591=m
diff --git a/arch/arm/configs/qil-a9260_defconfig b/arch/arm/configs/qil-a9260_defconfig
index 5cbd81589647..9b32d0eb89ba 100644
--- a/arch/arm/configs/qil-a9260_defconfig
+++ b/arch/arm/configs/qil-a9260_defconfig
@@ -687,7 +687,7 @@ CONFIG_I2C_CHARDEV=y
687# CONFIG_SENSORS_DS1337 is not set 687# CONFIG_SENSORS_DS1337 is not set
688# CONFIG_SENSORS_DS1374 is not set 688# CONFIG_SENSORS_DS1374 is not set
689# CONFIG_DS1682 is not set 689# CONFIG_DS1682 is not set
690# CONFIG_SENSORS_EEPROM is not set 690# CONFIG_EEPROM_LEGACY is not set
691# CONFIG_SENSORS_PCF8574 is not set 691# CONFIG_SENSORS_PCF8574 is not set
692# CONFIG_SENSORS_PCA9539 is not set 692# CONFIG_SENSORS_PCA9539 is not set
693# CONFIG_SENSORS_PCF8591 is not set 693# CONFIG_SENSORS_PCF8591 is not set
@@ -714,7 +714,7 @@ CONFIG_SPI_ATMEL=y
714# 714#
715# SPI Protocol Masters 715# SPI Protocol Masters
716# 716#
717# CONFIG_SPI_AT25 is not set 717# CONFIG_EEPROM_AT25 is not set
718# CONFIG_SPI_SPIDEV is not set 718# CONFIG_SPI_SPIDEV is not set
719# CONFIG_SPI_TLE62X0 is not set 719# CONFIG_SPI_TLE62X0 is not set
720# CONFIG_W1 is not set 720# CONFIG_W1 is not set
@@ -727,7 +727,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
727# Watchdog Device Drivers 727# Watchdog Device Drivers
728# 728#
729# CONFIG_SOFT_WATCHDOG is not set 729# CONFIG_SOFT_WATCHDOG is not set
730# CONFIG_AT91SAM9_WATCHDOG is not set 730# CONFIG_AT91SAM9X_WATCHDOG is not set
731 731
732# 732#
733# USB-based Watchdog Cards 733# USB-based Watchdog Cards
diff --git a/arch/arm/configs/rpc_defconfig b/arch/arm/configs/rpc_defconfig
index f62d1817d2c6..a29d61fe4c6a 100644
--- a/arch/arm/configs/rpc_defconfig
+++ b/arch/arm/configs/rpc_defconfig
@@ -590,7 +590,7 @@ CONFIG_I2C_ACORN=y
590# CONFIG_SENSORS_DS1337 is not set 590# CONFIG_SENSORS_DS1337 is not set
591# CONFIG_SENSORS_DS1374 is not set 591# CONFIG_SENSORS_DS1374 is not set
592# CONFIG_DS1682 is not set 592# CONFIG_DS1682 is not set
593# CONFIG_SENSORS_EEPROM is not set 593# CONFIG_EEPROM_LEGACY is not set
594# CONFIG_SENSORS_PCF8574 is not set 594# CONFIG_SENSORS_PCF8574 is not set
595# CONFIG_SENSORS_PCA9539 is not set 595# CONFIG_SENSORS_PCA9539 is not set
596# CONFIG_SENSORS_PCF8591 is not set 596# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig
index 35faaea8623e..65a583ee5df8 100644
--- a/arch/arm/configs/s3c2410_defconfig
+++ b/arch/arm/configs/s3c2410_defconfig
@@ -923,7 +923,7 @@ CONFIG_I2C_SIMTEC=y
923# Miscellaneous I2C Chip support 923# Miscellaneous I2C Chip support
924# 924#
925# CONFIG_DS1682 is not set 925# CONFIG_DS1682 is not set
926CONFIG_SENSORS_EEPROM=m 926CONFIG_EEPROM_LEGACY=m
927# CONFIG_SENSORS_PCF8574 is not set 927# CONFIG_SENSORS_PCF8574 is not set
928# CONFIG_PCF8575 is not set 928# CONFIG_PCF8575 is not set
929# CONFIG_SENSORS_PCF8591 is not set 929# CONFIG_SENSORS_PCF8591 is not set
@@ -950,7 +950,7 @@ CONFIG_SPI_S3C24XX_GPIO=m
950# 950#
951# SPI Protocol Masters 951# SPI Protocol Masters
952# 952#
953# CONFIG_SPI_AT25 is not set 953# CONFIG_EEPROM_AT25 is not set
954# CONFIG_SPI_SPIDEV is not set 954# CONFIG_SPI_SPIDEV is not set
955# CONFIG_SPI_TLE62X0 is not set 955# CONFIG_SPI_TLE62X0 is not set
956CONFIG_HAVE_GPIO_LIB=y 956CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/arm/configs/s3c6400_defconfig b/arch/arm/configs/s3c6400_defconfig
index cf3c1b5d7048..2e8fa50e9a09 100644
--- a/arch/arm/configs/s3c6400_defconfig
+++ b/arch/arm/configs/s3c6400_defconfig
@@ -465,8 +465,8 @@ CONFIG_I2C_S3C2410=y
465# Miscellaneous I2C Chip support 465# Miscellaneous I2C Chip support
466# 466#
467# CONFIG_DS1682 is not set 467# CONFIG_DS1682 is not set
468CONFIG_AT24=y 468CONFIG_EEPROM_AT24=y
469# CONFIG_SENSORS_EEPROM is not set 469# CONFIG_EEPROM_LEGACY is not set
470# CONFIG_SENSORS_PCF8574 is not set 470# CONFIG_SENSORS_PCF8574 is not set
471# CONFIG_PCF8575 is not set 471# CONFIG_PCF8575 is not set
472# CONFIG_SENSORS_PCA9539 is not set 472# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig
index 4df5b4db2aa0..745c68ffb885 100644
--- a/arch/arm/configs/spitz_defconfig
+++ b/arch/arm/configs/spitz_defconfig
@@ -977,8 +977,8 @@ CONFIG_I2C_PXA=y
977# Miscellaneous I2C Chip support 977# Miscellaneous I2C Chip support
978# 978#
979# CONFIG_DS1682 is not set 979# CONFIG_DS1682 is not set
980# CONFIG_AT24 is not set 980# CONFIG_EEPROM_AT24 is not set
981# CONFIG_SENSORS_EEPROM is not set 981# CONFIG_EEPROM_LEGACY is not set
982# CONFIG_SENSORS_PCF8574 is not set 982# CONFIG_SENSORS_PCF8574 is not set
983# CONFIG_PCF8575 is not set 983# CONFIG_PCF8575 is not set
984# CONFIG_SENSORS_PCA9539 is not set 984# CONFIG_SENSORS_PCA9539 is not set
@@ -1003,7 +1003,7 @@ CONFIG_SPI_PXA2XX=y
1003# 1003#
1004# SPI Protocol Masters 1004# SPI Protocol Masters
1005# 1005#
1006# CONFIG_SPI_AT25 is not set 1006# CONFIG_EEPROM_AT25 is not set
1007# CONFIG_SPI_SPIDEV is not set 1007# CONFIG_SPI_SPIDEV is not set
1008# CONFIG_SPI_TLE62X0 is not set 1008# CONFIG_SPI_TLE62X0 is not set
1009CONFIG_ARCH_REQUIRE_GPIOLIB=y 1009CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/sx1_defconfig b/arch/arm/configs/sx1_defconfig
index 853dcdd9f2e0..25b007ff8bab 100644
--- a/arch/arm/configs/sx1_defconfig
+++ b/arch/arm/configs/sx1_defconfig
@@ -610,7 +610,7 @@ CONFIG_I2C_OMAP=y
610# 610#
611# CONFIG_SENSORS_DS1337 is not set 611# CONFIG_SENSORS_DS1337 is not set
612# CONFIG_SENSORS_DS1374 is not set 612# CONFIG_SENSORS_DS1374 is not set
613# CONFIG_SENSORS_EEPROM is not set 613# CONFIG_EEPROM_LEGACY is not set
614# CONFIG_SENSORS_PCF8574 is not set 614# CONFIG_SENSORS_PCF8574 is not set
615# CONFIG_SENSORS_PCA9539 is not set 615# CONFIG_SENSORS_PCA9539 is not set
616# CONFIG_SENSORS_PCF8591 is not set 616# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/trizeps4_defconfig b/arch/arm/configs/trizeps4_defconfig
index 9033d147f052..b6f838197816 100644
--- a/arch/arm/configs/trizeps4_defconfig
+++ b/arch/arm/configs/trizeps4_defconfig
@@ -948,7 +948,7 @@ CONFIG_I2C_PXA_SLAVE=y
948# 948#
949# CONFIG_SENSORS_DS1337 is not set 949# CONFIG_SENSORS_DS1337 is not set
950# CONFIG_SENSORS_DS1374 is not set 950# CONFIG_SENSORS_DS1374 is not set
951# CONFIG_SENSORS_EEPROM is not set 951# CONFIG_EEPROM_LEGACY is not set
952# CONFIG_SENSORS_PCF8574 is not set 952# CONFIG_SENSORS_PCF8574 is not set
953# CONFIG_SENSORS_PCA9539 is not set 953# CONFIG_SENSORS_PCA9539 is not set
954# CONFIG_SENSORS_PCF8591 is not set 954# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/usb-a9260_defconfig b/arch/arm/configs/usb-a9260_defconfig
index fcb4aaabd439..fd7774033d64 100644
--- a/arch/arm/configs/usb-a9260_defconfig
+++ b/arch/arm/configs/usb-a9260_defconfig
@@ -676,7 +676,7 @@ CONFIG_SPI_ATMEL=y
676# 676#
677# SPI Protocol Masters 677# SPI Protocol Masters
678# 678#
679# CONFIG_SPI_AT25 is not set 679# CONFIG_EEPROM_AT25 is not set
680# CONFIG_SPI_SPIDEV is not set 680# CONFIG_SPI_SPIDEV is not set
681# CONFIG_SPI_TLE62X0 is not set 681# CONFIG_SPI_TLE62X0 is not set
682# CONFIG_W1 is not set 682# CONFIG_W1 is not set
diff --git a/arch/arm/configs/usb-a9263_defconfig b/arch/arm/configs/usb-a9263_defconfig
index b786e0407e8e..e7c19dd92557 100644
--- a/arch/arm/configs/usb-a9263_defconfig
+++ b/arch/arm/configs/usb-a9263_defconfig
@@ -668,7 +668,7 @@ CONFIG_SPI_ATMEL=y
668# 668#
669# SPI Protocol Masters 669# SPI Protocol Masters
670# 670#
671# CONFIG_SPI_AT25 is not set 671# CONFIG_EEPROM_AT25 is not set
672# CONFIG_SPI_SPIDEV is not set 672# CONFIG_SPI_SPIDEV is not set
673# CONFIG_SPI_TLE62X0 is not set 673# CONFIG_SPI_TLE62X0 is not set
674# CONFIG_W1 is not set 674# CONFIG_W1 is not set
diff --git a/arch/arm/configs/versatile_defconfig b/arch/arm/configs/versatile_defconfig
index 8355f88f7292..b11c5da3996c 100644
--- a/arch/arm/configs/versatile_defconfig
+++ b/arch/arm/configs/versatile_defconfig
@@ -611,7 +611,7 @@ CONFIG_I2C_ALGOBIT=y
611# 611#
612# CONFIG_SENSORS_DS1337 is not set 612# CONFIG_SENSORS_DS1337 is not set
613# CONFIG_SENSORS_DS1374 is not set 613# CONFIG_SENSORS_DS1374 is not set
614CONFIG_SENSORS_EEPROM=m 614CONFIG_EEPROM_LEGACY=m
615# CONFIG_SENSORS_PCF8574 is not set 615# CONFIG_SENSORS_PCF8574 is not set
616# CONFIG_SENSORS_PCA9539 is not set 616# CONFIG_SENSORS_PCA9539 is not set
617# CONFIG_SENSORS_PCF8591 is not set 617# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/viper_defconfig b/arch/arm/configs/viper_defconfig
index d01fecb8673e..30f463d2fa8a 100644
--- a/arch/arm/configs/viper_defconfig
+++ b/arch/arm/configs/viper_defconfig
@@ -860,8 +860,8 @@ CONFIG_I2C_PXA=y
860# Miscellaneous I2C Chip support 860# Miscellaneous I2C Chip support
861# 861#
862# CONFIG_DS1682 is not set 862# CONFIG_DS1682 is not set
863# CONFIG_AT24 is not set 863# CONFIG_EEPROM_AT24 is not set
864# CONFIG_SENSORS_EEPROM is not set 864# CONFIG_EEPROM_LEGACY is not set
865# CONFIG_SENSORS_PCF8574 is not set 865# CONFIG_SENSORS_PCF8574 is not set
866# CONFIG_PCF8575 is not set 866# CONFIG_PCF8575 is not set
867# CONFIG_SENSORS_PCA9539 is not set 867# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/xm_x2xx_defconfig b/arch/arm/configs/xm_x2xx_defconfig
index f891364deceb..1039f366bf8d 100644
--- a/arch/arm/configs/xm_x2xx_defconfig
+++ b/arch/arm/configs/xm_x2xx_defconfig
@@ -1009,8 +1009,8 @@ CONFIG_I2C_PXA=y
1009# Miscellaneous I2C Chip support 1009# Miscellaneous I2C Chip support
1010# 1010#
1011# CONFIG_DS1682 is not set 1011# CONFIG_DS1682 is not set
1012# CONFIG_AT24 is not set 1012# CONFIG_EEPROM_AT24 is not set
1013# CONFIG_SENSORS_EEPROM is not set 1013# CONFIG_EEPROM_LEGACY is not set
1014# CONFIG_SENSORS_PCF8574 is not set 1014# CONFIG_SENSORS_PCF8574 is not set
1015# CONFIG_PCF8575 is not set 1015# CONFIG_PCF8575 is not set
1016# CONFIG_SENSORS_PCA9539 is not set 1016# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/yl9200_defconfig b/arch/arm/configs/yl9200_defconfig
index a9f41c24c9dc..9192e5977674 100644
--- a/arch/arm/configs/yl9200_defconfig
+++ b/arch/arm/configs/yl9200_defconfig
@@ -682,7 +682,7 @@ CONFIG_SPI_ATMEL=y
682# 682#
683# SPI Protocol Masters 683# SPI Protocol Masters
684# 684#
685# CONFIG_SPI_AT25 is not set 685# CONFIG_EEPROM_AT25 is not set
686# CONFIG_SPI_TLE62X0 is not set 686# CONFIG_SPI_TLE62X0 is not set
687# CONFIG_W1 is not set 687# CONFIG_W1 is not set
688# CONFIG_POWER_SUPPLY is not set 688# CONFIG_POWER_SUPPLY is not set
diff --git a/arch/arm/include/asm/Kbuild b/arch/arm/include/asm/Kbuild
index 43b0b2ba392f..73237bd130a2 100644
--- a/arch/arm/include/asm/Kbuild
+++ b/arch/arm/include/asm/Kbuild
@@ -1,4 +1,3 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2
3unifdef-y += hwcap.h 3unifdef-y += hwcap.h
4unifdef-y += swab.h
diff --git a/arch/arm/include/asm/a.out.h b/arch/arm/include/asm/a.out.h
index 79489fdcc8b8..083894b2e3bc 100644
--- a/arch/arm/include/asm/a.out.h
+++ b/arch/arm/include/asm/a.out.h
@@ -2,7 +2,7 @@
2#define __ARM_A_OUT_H__ 2#define __ARM_A_OUT_H__
3 3
4#include <linux/personality.h> 4#include <linux/personality.h>
5#include <asm/types.h> 5#include <linux/types.h>
6 6
7struct exec 7struct exec
8{ 8{
diff --git a/arch/arm/include/asm/byteorder.h b/arch/arm/include/asm/byteorder.h
index c02b6fc28e1a..77379748b171 100644
--- a/arch/arm/include/asm/byteorder.h
+++ b/arch/arm/include/asm/byteorder.h
@@ -15,8 +15,6 @@
15#ifndef __ASM_ARM_BYTEORDER_H 15#ifndef __ASM_ARM_BYTEORDER_H
16#define __ASM_ARM_BYTEORDER_H 16#define __ASM_ARM_BYTEORDER_H
17 17
18#include <asm/swab.h>
19
20#ifdef __ARMEB__ 18#ifdef __ARMEB__
21#include <linux/byteorder/big_endian.h> 19#include <linux/byteorder/big_endian.h>
22#else 20#else
diff --git a/arch/arm/include/asm/setup.h b/arch/arm/include/asm/setup.h
index f2cd18a0932b..ee1304f22f94 100644
--- a/arch/arm/include/asm/setup.h
+++ b/arch/arm/include/asm/setup.h
@@ -14,7 +14,7 @@
14#ifndef __ASMARM_SETUP_H 14#ifndef __ASMARM_SETUP_H
15#define __ASMARM_SETUP_H 15#define __ASMARM_SETUP_H
16 16
17#include <asm/types.h> 17#include <linux/types.h>
18 18
19#define COMMAND_LINE_SIZE 1024 19#define COMMAND_LINE_SIZE 1024
20 20
diff --git a/arch/arm/include/asm/swab.h b/arch/arm/include/asm/swab.h
index 27a689be0856..ca2bf2f6d6ea 100644
--- a/arch/arm/include/asm/swab.h
+++ b/arch/arm/include/asm/swab.h
@@ -16,7 +16,7 @@
16#define __ASM_ARM_SWAB_H 16#define __ASM_ARM_SWAB_H
17 17
18#include <linux/compiler.h> 18#include <linux/compiler.h>
19#include <asm/types.h> 19#include <linux/types.h>
20 20
21#if !defined(__STRICT_ANSI__) || defined(__KERNEL__) 21#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
22# define __SWAB_64_THRU_32__ 22# define __SWAB_64_THRU_32__
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index 09a061cb7838..9ca8d13f05f7 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -98,7 +98,7 @@
98 CALL(sys_uselib) 98 CALL(sys_uselib)
99 CALL(sys_swapon) 99 CALL(sys_swapon)
100 CALL(sys_reboot) 100 CALL(sys_reboot)
101 CALL(OBSOLETE(old_readdir)) /* used by libc4 */ 101 CALL(OBSOLETE(sys_old_readdir)) /* used by libc4 */
102/* 90 */ CALL(OBSOLETE(old_mmap)) /* used by libc4 */ 102/* 90 */ CALL(OBSOLETE(old_mmap)) /* used by libc4 */
103 CALL(sys_munmap) 103 CALL(sys_munmap)
104 CALL(sys_truncate) 104 CALL(sys_truncate)
diff --git a/arch/arm/kernel/elf.c b/arch/arm/kernel/elf.c
index 84849098c8e8..d4a0da1e48f4 100644
--- a/arch/arm/kernel/elf.c
+++ b/arch/arm/kernel/elf.c
@@ -74,9 +74,9 @@ EXPORT_SYMBOL(elf_set_personality);
74 */ 74 */
75int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack) 75int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack)
76{ 76{
77 if (executable_stack != EXSTACK_ENABLE_X) 77 if (executable_stack != EXSTACK_DISABLE_X)
78 return 1; 78 return 1;
79 if (cpu_architecture() <= CPU_ARCH_ARMv6) 79 if (cpu_architecture() < CPU_ARCH_ARMv6)
80 return 1; 80 return 1;
81 return 0; 81 return 0;
82} 82}
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 77b047475539..85040cfeb5e5 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -650,6 +650,7 @@ ENTRY(fp_enter)
650no_fp: mov pc, lr 650no_fp: mov pc, lr
651 651
652__und_usr_unknown: 652__und_usr_unknown:
653 enable_irq
653 mov r0, sp 654 mov r0, sp
654 adr lr, ret_from_exception 655 adr lr, ret_from_exception
655 b do_undefinstr 656 b do_undefinstr
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 06269ea375c5..49a6ba926c2b 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -136,7 +136,7 @@ ENTRY(mcount)
136 ldmia sp!, {r0-r3, pc} 136 ldmia sp!, {r0-r3, pc}
137 137
138trace: 138trace:
139 ldr r1, [fp, #-4] 139 ldr r1, [fp, #-4] @ lr of instrumented routine
140 mov r0, lr 140 mov r0, lr
141 sub r0, r0, #MCOUNT_INSN_SIZE 141 sub r0, r0, #MCOUNT_INSN_SIZE
142 mov lr, pc 142 mov lr, pc
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index 7141cee1fab7..45eacb5a2ecd 100644
--- a/arch/arm/kernel/irq.c
+++ b/arch/arm/kernel/irq.c
@@ -101,9 +101,14 @@ unlock:
101/* Handle bad interrupts */ 101/* Handle bad interrupts */
102static struct irq_desc bad_irq_desc = { 102static struct irq_desc bad_irq_desc = {
103 .handle_irq = handle_bad_irq, 103 .handle_irq = handle_bad_irq,
104 .lock = SPIN_LOCK_UNLOCKED 104 .lock = __SPIN_LOCK_UNLOCKED(bad_irq_desc.lock),
105}; 105};
106 106
107#ifdef CONFIG_CPUMASK_OFFSTACK
108/* We are not allocating bad_irq_desc.affinity or .pending_mask */
109#error "ARM architecture does not support CONFIG_CPUMASK_OFFSTACK."
110#endif
111
107/* 112/*
108 * do_IRQ handles all hardware IRQ's. Decoded IRQs should not 113 * do_IRQ handles all hardware IRQ's. Decoded IRQs should not
109 * come via this function. Instead, they should provide their 114 * come via this function. Instead, they should provide their
@@ -161,7 +166,7 @@ void __init init_IRQ(void)
161 irq_desc[irq].status |= IRQ_NOREQUEST | IRQ_NOPROBE; 166 irq_desc[irq].status |= IRQ_NOREQUEST | IRQ_NOPROBE;
162 167
163#ifdef CONFIG_SMP 168#ifdef CONFIG_SMP
164 bad_irq_desc.affinity = CPU_MASK_ALL; 169 cpumask_setall(bad_irq_desc.affinity);
165 bad_irq_desc.cpu = smp_processor_id(); 170 bad_irq_desc.cpu = smp_processor_id();
166#endif 171#endif
167 init_arch_irq(); 172 init_arch_irq();
@@ -191,15 +196,16 @@ void migrate_irqs(void)
191 struct irq_desc *desc = irq_desc + i; 196 struct irq_desc *desc = irq_desc + i;
192 197
193 if (desc->cpu == cpu) { 198 if (desc->cpu == cpu) {
194 unsigned int newcpu = any_online_cpu(desc->affinity); 199 unsigned int newcpu = cpumask_any_and(desc->affinity,
195 200 cpu_online_mask);
196 if (newcpu == NR_CPUS) { 201 if (newcpu >= nr_cpu_ids) {
197 if (printk_ratelimit()) 202 if (printk_ratelimit())
198 printk(KERN_INFO "IRQ%u no longer affine to CPU%u\n", 203 printk(KERN_INFO "IRQ%u no longer affine to CPU%u\n",
199 i, cpu); 204 i, cpu);
200 205
201 cpus_setall(desc->affinity); 206 cpumask_setall(desc->affinity);
202 newcpu = any_online_cpu(desc->affinity); 207 newcpu = cpumask_any_and(desc->affinity,
208 cpu_online_mask);
203 } 209 }
204 210
205 route_irq(desc, i, newcpu); 211 route_irq(desc, i, newcpu);
diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c
index 440dc62cdc3a..598ca61e7bca 100644
--- a/arch/arm/kernel/machine_kexec.c
+++ b/arch/arm/kernel/machine_kexec.c
@@ -13,8 +13,8 @@
13#include <asm/cacheflush.h> 13#include <asm/cacheflush.h>
14#include <asm/mach-types.h> 14#include <asm/mach-types.h>
15 15
16const extern unsigned char relocate_new_kernel[]; 16extern const unsigned char relocate_new_kernel[];
17const extern unsigned int relocate_new_kernel_size; 17extern const unsigned int relocate_new_kernel_size;
18 18
19extern void setup_mm_for_reboot(char mode); 19extern void setup_mm_for_reboot(char mode);
20 20
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index 00216071eaf7..85598f7da407 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -65,6 +65,7 @@ SECTIONS
65#endif 65#endif
66 . = ALIGN(4096); 66 . = ALIGN(4096);
67 __per_cpu_start = .; 67 __per_cpu_start = .;
68 *(.data.percpu.page_aligned)
68 *(.data.percpu) 69 *(.data.percpu)
69 *(.data.percpu.shared_aligned) 70 *(.data.percpu.shared_aligned)
70 __per_cpu_end = .; 71 __per_cpu_end = .;
diff --git a/arch/arm/mach-at91/at91cap9_devices.c b/arch/arm/mach-at91/at91cap9_devices.c
index 9eca2209cde6..412aa49ad2fb 100644
--- a/arch/arm/mach-at91/at91cap9_devices.c
+++ b/arch/arm/mach-at91/at91cap9_devices.c
@@ -697,7 +697,7 @@ static void __init at91_add_device_rtt(void)
697 * Watchdog 697 * Watchdog
698 * -------------------------------------------------------------------- */ 698 * -------------------------------------------------------------------- */
699 699
700#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) 700#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
701static struct platform_device at91cap9_wdt_device = { 701static struct platform_device at91cap9_wdt_device = {
702 .name = "at91_wdt", 702 .name = "at91_wdt",
703 .id = -1, 703 .id = -1,
diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
index fdde1ea21b07..d74c9ac007e7 100644
--- a/arch/arm/mach-at91/at91sam9260_devices.c
+++ b/arch/arm/mach-at91/at91sam9260_devices.c
@@ -643,7 +643,7 @@ static void __init at91_add_device_rtt(void)
643 * Watchdog 643 * Watchdog
644 * -------------------------------------------------------------------- */ 644 * -------------------------------------------------------------------- */
645 645
646#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) 646#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
647static struct platform_device at91sam9260_wdt_device = { 647static struct platform_device at91sam9260_wdt_device = {
648 .name = "at91_wdt", 648 .name = "at91_wdt",
649 .id = -1, 649 .id = -1,
diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c
index 17289756f80f..59fc48311fb0 100644
--- a/arch/arm/mach-at91/at91sam9261_devices.c
+++ b/arch/arm/mach-at91/at91sam9261_devices.c
@@ -621,7 +621,7 @@ static void __init at91_add_device_rtt(void)
621 * Watchdog 621 * Watchdog
622 * -------------------------------------------------------------------- */ 622 * -------------------------------------------------------------------- */
623 623
624#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) 624#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
625static struct platform_device at91sam9261_wdt_device = { 625static struct platform_device at91sam9261_wdt_device = {
626 .name = "at91_wdt", 626 .name = "at91_wdt",
627 .id = -1, 627 .id = -1,
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
index b753cb879d8e..134af97ff340 100644
--- a/arch/arm/mach-at91/at91sam9263_devices.c
+++ b/arch/arm/mach-at91/at91sam9263_devices.c
@@ -854,7 +854,7 @@ static void __init at91_add_device_rtt(void)
854 * Watchdog 854 * Watchdog
855 * -------------------------------------------------------------------- */ 855 * -------------------------------------------------------------------- */
856 856
857#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) 857#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
858static struct platform_device at91sam9263_wdt_device = { 858static struct platform_device at91sam9263_wdt_device = {
859 .name = "at91_wdt", 859 .name = "at91_wdt",
860 .id = -1, 860 .id = -1,
diff --git a/arch/arm/mach-at91/at91sam9rl_devices.c b/arch/arm/mach-at91/at91sam9rl_devices.c
index 145324f4ec56..728186515cdf 100644
--- a/arch/arm/mach-at91/at91sam9rl_devices.c
+++ b/arch/arm/mach-at91/at91sam9rl_devices.c
@@ -609,7 +609,7 @@ static void __init at91_add_device_rtt(void)
609 * Watchdog 609 * Watchdog
610 * -------------------------------------------------------------------- */ 610 * -------------------------------------------------------------------- */
611 611
612#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) 612#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
613static struct platform_device at91sam9rl_wdt_device = { 613static struct platform_device at91sam9rl_wdt_device = {
614 .name = "at91_wdt", 614 .name = "at91_wdt",
615 .id = -1, 615 .id = -1,
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
index 9b0447c3d59b..2f7d4977dce9 100644
--- a/arch/arm/mach-at91/gpio.c
+++ b/arch/arm/mach-at91/gpio.c
@@ -490,7 +490,8 @@ postcore_initcall(at91_gpio_debugfs_init);
490 490
491/*--------------------------------------------------------------------------*/ 491/*--------------------------------------------------------------------------*/
492 492
493/* This lock class tells lockdep that GPIO irqs are in a different 493/*
494 * This lock class tells lockdep that GPIO irqs are in a different
494 * category than their parents, so it won't report false recursion. 495 * category than their parents, so it won't report false recursion.
495 */ 496 */
496static struct lock_class_key gpio_lock_class; 497static struct lock_class_key gpio_lock_class;
@@ -509,9 +510,6 @@ void __init at91_gpio_irq_setup(void)
509 unsigned id = this->id; 510 unsigned id = this->id;
510 unsigned i; 511 unsigned i;
511 512
512 /* enable PIO controller's clock */
513 clk_enable(this->clock);
514
515 __raw_writel(~0, this->regbase + PIO_IDR); 513 __raw_writel(~0, this->regbase + PIO_IDR);
516 514
517 for (i = 0, pin = this->chipbase; i < 32; i++, pin++) { 515 for (i = 0, pin = this->chipbase; i < 32; i++, pin++) {
@@ -556,7 +554,14 @@ void __init at91_gpio_init(struct at91_gpio_bank *data, int nr_banks)
556 data->chipbase = PIN_BASE + i * 32; 554 data->chipbase = PIN_BASE + i * 32;
557 data->regbase = data->offset + (void __iomem *)AT91_VA_BASE_SYS; 555 data->regbase = data->offset + (void __iomem *)AT91_VA_BASE_SYS;
558 556
559 /* AT91SAM9263_ID_PIOCDE groups PIOC, PIOD, PIOE */ 557 /* enable PIO controller's clock */
558 clk_enable(data->clock);
559
560 /*
561 * Some processors share peripheral ID between multiple GPIO banks.
562 * SAM9263 (PIOC, PIOD, PIOE)
563 * CAP9 (PIOA, PIOB, PIOC, PIOD)
564 */
560 if (last && last->id == data->id) 565 if (last && last->id == data->id)
561 last->next = data; 566 last->next = data;
562 } 567 }
diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h
index fb51f0e0a83f..0b3ae21b4565 100644
--- a/arch/arm/mach-at91/include/mach/board.h
+++ b/arch/arm/mach-at91/include/mach/board.h
@@ -93,6 +93,7 @@ struct atmel_nand_data {
93 u8 enable_pin; /* chip enable */ 93 u8 enable_pin; /* chip enable */
94 u8 det_pin; /* card detect */ 94 u8 det_pin; /* card detect */
95 u8 rdy_pin; /* ready/busy */ 95 u8 rdy_pin; /* ready/busy */
96 u8 rdy_pin_active_low; /* rdy_pin value is inverted */
96 u8 ale; /* address line number connected to ALE */ 97 u8 ale; /* address line number connected to ALE */
97 u8 cle; /* address line number connected to CLE */ 98 u8 cle; /* address line number connected to CLE */
98 u8 bus_width_16; /* buswidth is 16 bit */ 99 u8 bus_width_16; /* buswidth is 16 bit */
diff --git a/arch/arm/mach-davinci/board-evm.c b/arch/arm/mach-davinci/board-evm.c
index a957d239a683..38b6a9ce2a93 100644
--- a/arch/arm/mach-davinci/board-evm.c
+++ b/arch/arm/mach-davinci/board-evm.c
@@ -311,6 +311,9 @@ evm_u35_setup(struct i2c_client *client, int gpio, unsigned ngpio, void *c)
311 gpio_request(gpio + 7, "nCF_SEL"); 311 gpio_request(gpio + 7, "nCF_SEL");
312 gpio_direction_output(gpio + 7, 1); 312 gpio_direction_output(gpio + 7, 1);
313 313
314 /* irlml6401 sustains over 3A, switches 5V in under 8 msec */
315 setup_usb(500, 8);
316
314 return 0; 317 return 0;
315} 318}
316 319
@@ -417,9 +420,6 @@ static __init void davinci_evm_init(void)
417 platform_add_devices(davinci_evm_devices, 420 platform_add_devices(davinci_evm_devices,
418 ARRAY_SIZE(davinci_evm_devices)); 421 ARRAY_SIZE(davinci_evm_devices));
419 evm_init_i2c(); 422 evm_init_i2c();
420
421 /* irlml6401 sustains over 3A, switches 5V in under 8 msec */
422 setup_usb(500, 8);
423} 423}
424 424
425static __init void davinci_evm_irq_init(void) 425static __init void davinci_evm_irq_init(void)
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c
index 28f6dbc95bd7..abb92b7eca0c 100644
--- a/arch/arm/mach-davinci/clock.c
+++ b/arch/arm/mach-davinci/clock.c
@@ -231,6 +231,11 @@ static struct clk davinci_clks[] = {
231 .lpsc = DAVINCI_LPSC_GPIO, 231 .lpsc = DAVINCI_LPSC_GPIO,
232 }, 232 },
233 { 233 {
234 .name = "usb",
235 .rate = &commonrate,
236 .lpsc = DAVINCI_LPSC_USB,
237 },
238 {
234 .name = "AEMIFCLK", 239 .name = "AEMIFCLK",
235 .rate = &commonrate, 240 .rate = &commonrate,
236 .lpsc = DAVINCI_LPSC_AEMIF, 241 .lpsc = DAVINCI_LPSC_AEMIF,
diff --git a/arch/arm/mach-davinci/usb.c b/arch/arm/mach-davinci/usb.c
index fe182a85159c..69680784448a 100644
--- a/arch/arm/mach-davinci/usb.c
+++ b/arch/arm/mach-davinci/usb.c
@@ -12,6 +12,7 @@
12 12
13#include <mach/common.h> 13#include <mach/common.h>
14#include <mach/hardware.h> 14#include <mach/hardware.h>
15#include <mach/irqs.h>
15 16
16#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) 17#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
17static struct musb_hdrc_eps_bits musb_eps[] = { 18static struct musb_hdrc_eps_bits musb_eps[] = {
@@ -46,6 +47,7 @@ static struct musb_hdrc_platform_data usb_data = {
46#elif defined(CONFIG_USB_MUSB_HOST) 47#elif defined(CONFIG_USB_MUSB_HOST)
47 .mode = MUSB_HOST, 48 .mode = MUSB_HOST,
48#endif 49#endif
50 .clock = "usb",
49 .config = &musb_config, 51 .config = &musb_config,
50}; 52};
51 53
@@ -76,29 +78,6 @@ static struct platform_device usb_dev = {
76 .num_resources = ARRAY_SIZE(usb_resources), 78 .num_resources = ARRAY_SIZE(usb_resources),
77}; 79};
78 80
79#ifdef CONFIG_USB_MUSB_OTG
80
81static struct otg_transceiver *xceiv;
82
83struct otg_transceiver *otg_get_transceiver(void)
84{
85 if (xceiv)
86 get_device(xceiv->dev);
87 return xceiv;
88}
89EXPORT_SYMBOL(otg_get_transceiver);
90
91int otg_set_transceiver(struct otg_transceiver *x)
92{
93 if (xceiv && x)
94 return -EBUSY;
95 xceiv = x;
96 return 0;
97}
98EXPORT_SYMBOL(otg_set_transceiver);
99
100#endif
101
102void __init setup_usb(unsigned mA, unsigned potpgt_msec) 81void __init setup_usb(unsigned mA, unsigned potpgt_msec)
103{ 82{
104 usb_data.power = mA / 2; 83 usb_data.power = mA / 2;
diff --git a/arch/arm/mach-ep93xx/include/mach/gesbc9312.h b/arch/arm/mach-ep93xx/include/mach/gesbc9312.h
deleted file mode 100644
index 21fe2b922aa5..000000000000
--- a/arch/arm/mach-ep93xx/include/mach/gesbc9312.h
+++ /dev/null
@@ -1,3 +0,0 @@
1/*
2 * arch/arm/mach-ep93xx/include/mach/gesbc9312.h
3 */
diff --git a/arch/arm/mach-ep93xx/include/mach/hardware.h b/arch/arm/mach-ep93xx/include/mach/hardware.h
index 529807d182bf..2866297310b7 100644
--- a/arch/arm/mach-ep93xx/include/mach/hardware.h
+++ b/arch/arm/mach-ep93xx/include/mach/hardware.h
@@ -10,7 +10,6 @@
10 10
11#include "platform.h" 11#include "platform.h"
12 12
13#include "gesbc9312.h"
14#include "ts72xx.h" 13#include "ts72xx.h"
15 14
16#endif 15#endif
diff --git a/arch/arm/mach-imx/clock.c b/arch/arm/mach-imx/clock.c
index 7ec60fc91565..cf332aeb942e 100644
--- a/arch/arm/mach-imx/clock.c
+++ b/arch/arm/mach-imx/clock.c
@@ -23,7 +23,7 @@
23#include <linux/err.h> 23#include <linux/err.h>
24#include <linux/io.h> 24#include <linux/io.h>
25 25
26#include <mach/imx-regs.h> 26#include <mach/hardware.h>
27 27
28/* 28/*
29 * Very simple approach: We can't disable clocks, so we do 29 * Very simple approach: We can't disable clocks, so we do
diff --git a/arch/arm/mach-imx/generic.c b/arch/arm/mach-imx/generic.c
index fa72174dd95c..887cb21f75b0 100644
--- a/arch/arm/mach-imx/generic.c
+++ b/arch/arm/mach-imx/generic.c
@@ -245,11 +245,11 @@ void __init imx_set_mmc_info(struct imxmmc_platform_data *info)
245 imx_mmc_device.dev.platform_data = info; 245 imx_mmc_device.dev.platform_data = info;
246} 246}
247 247
248static struct imxfb_mach_info imx_fb_info; 248static struct imx_fb_platform_data imx_fb_info;
249 249
250void __init set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info) 250void __init set_imx_fb_info(struct imx_fb_platform_data *hard_imx_fb_info)
251{ 251{
252 memcpy(&imx_fb_info,hard_imx_fb_info,sizeof(struct imxfb_mach_info)); 252 memcpy(&imx_fb_info,hard_imx_fb_info,sizeof(struct imx_fb_platform_data));
253} 253}
254 254
255static struct resource imxfb_resources[] = { 255static struct resource imxfb_resources[] = {
diff --git a/arch/arm/mach-imx/include/mach/imx-regs.h b/arch/arm/mach-imx/include/mach/imx-regs.h
index fb9de2733879..490297fc0e38 100644
--- a/arch/arm/mach-imx/include/mach/imx-regs.h
+++ b/arch/arm/mach-imx/include/mach/imx-regs.h
@@ -373,110 +373,4 @@
373#define TSTAT_CAPT (1<<1) 373#define TSTAT_CAPT (1<<1)
374#define TSTAT_COMP (1<<0) 374#define TSTAT_COMP (1<<0)
375 375
376/*
377 * LCD Controller
378 */
379
380#define LCDC_SSA __REG(IMX_LCDC_BASE+0x00)
381
382#define LCDC_SIZE __REG(IMX_LCDC_BASE+0x04)
383#define SIZE_XMAX(x) ((((x) >> 4) & 0x3f) << 20)
384#define SIZE_YMAX(y) ( (y) & 0x1ff )
385
386#define LCDC_VPW __REG(IMX_LCDC_BASE+0x08)
387#define VPW_VPW(x) ( (x) & 0x3ff )
388
389#define LCDC_CPOS __REG(IMX_LCDC_BASE+0x0C)
390#define CPOS_CC1 (1<<31)
391#define CPOS_CC0 (1<<30)
392#define CPOS_OP (1<<28)
393#define CPOS_CXP(x) (((x) & 3ff) << 16)
394#define CPOS_CYP(y) ((y) & 0x1ff)
395
396#define LCDC_LCWHB __REG(IMX_LCDC_BASE+0x10)
397#define LCWHB_BK_EN (1<<31)
398#define LCWHB_CW(w) (((w) & 0x1f) << 24)
399#define LCWHB_CH(h) (((h) & 0x1f) << 16)
400#define LCWHB_BD(x) ((x) & 0xff)
401
402#define LCDC_LCHCC __REG(IMX_LCDC_BASE+0x14)
403#define LCHCC_CUR_COL_R(r) (((r) & 0x1f) << 11)
404#define LCHCC_CUR_COL_G(g) (((g) & 0x3f) << 5)
405#define LCHCC_CUR_COL_B(b) ((b) & 0x1f)
406
407#define LCDC_PCR __REG(IMX_LCDC_BASE+0x18)
408#define PCR_TFT (1<<31)
409#define PCR_COLOR (1<<30)
410#define PCR_PBSIZ_1 (0<<28)
411#define PCR_PBSIZ_2 (1<<28)
412#define PCR_PBSIZ_4 (2<<28)
413#define PCR_PBSIZ_8 (3<<28)
414#define PCR_BPIX_1 (0<<25)
415#define PCR_BPIX_2 (1<<25)
416#define PCR_BPIX_4 (2<<25)
417#define PCR_BPIX_8 (3<<25)
418#define PCR_BPIX_12 (4<<25)
419#define PCR_BPIX_16 (4<<25)
420#define PCR_PIXPOL (1<<24)
421#define PCR_FLMPOL (1<<23)
422#define PCR_LPPOL (1<<22)
423#define PCR_CLKPOL (1<<21)
424#define PCR_OEPOL (1<<20)
425#define PCR_SCLKIDLE (1<<19)
426#define PCR_END_SEL (1<<18)
427#define PCR_END_BYTE_SWAP (1<<17)
428#define PCR_REV_VS (1<<16)
429#define PCR_ACD_SEL (1<<15)
430#define PCR_ACD(x) (((x) & 0x7f) << 8)
431#define PCR_SCLK_SEL (1<<7)
432#define PCR_SHARP (1<<6)
433#define PCR_PCD(x) ((x) & 0x3f)
434
435#define LCDC_HCR __REG(IMX_LCDC_BASE+0x1C)
436#define HCR_H_WIDTH(x) (((x) & 0x3f) << 26)
437#define HCR_H_WAIT_1(x) (((x) & 0xff) << 8)
438#define HCR_H_WAIT_2(x) ((x) & 0xff)
439
440#define LCDC_VCR __REG(IMX_LCDC_BASE+0x20)
441#define VCR_V_WIDTH(x) (((x) & 0x3f) << 26)
442#define VCR_V_WAIT_1(x) (((x) & 0xff) << 8)
443#define VCR_V_WAIT_2(x) ((x) & 0xff)
444
445#define LCDC_POS __REG(IMX_LCDC_BASE+0x24)
446#define POS_POS(x) ((x) & 1f)
447
448#define LCDC_LSCR1 __REG(IMX_LCDC_BASE+0x28)
449#define LSCR1_PS_RISE_DELAY(x) (((x) & 0x7f) << 26)
450#define LSCR1_CLS_RISE_DELAY(x) (((x) & 0x3f) << 16)
451#define LSCR1_REV_TOGGLE_DELAY(x) (((x) & 0xf) << 8)
452#define LSCR1_GRAY2(x) (((x) & 0xf) << 4)
453#define LSCR1_GRAY1(x) (((x) & 0xf))
454
455#define LCDC_PWMR __REG(IMX_LCDC_BASE+0x2C)
456#define PWMR_CLS(x) (((x) & 0x1ff) << 16)
457#define PWMR_LDMSK (1<<15)
458#define PWMR_SCR1 (1<<10)
459#define PWMR_SCR0 (1<<9)
460#define PWMR_CC_EN (1<<8)
461#define PWMR_PW(x) ((x) & 0xff)
462
463#define LCDC_DMACR __REG(IMX_LCDC_BASE+0x30)
464#define DMACR_BURST (1<<31)
465#define DMACR_HM(x) (((x) & 0xf) << 16)
466#define DMACR_TM(x) ((x) &0xf)
467
468#define LCDC_RMCR __REG(IMX_LCDC_BASE+0x34)
469#define RMCR_LCDC_EN (1<<1)
470#define RMCR_SELF_REF (1<<0)
471
472#define LCDC_LCDICR __REG(IMX_LCDC_BASE+0x38)
473#define LCDICR_INT_SYN (1<<2)
474#define LCDICR_INT_CON (1)
475
476#define LCDC_LCDISR __REG(IMX_LCDC_BASE+0x40)
477#define LCDISR_UDR_ERR (1<<3)
478#define LCDISR_ERR_RES (1<<2)
479#define LCDISR_EOF (1<<1)
480#define LCDISR_BOF (1<<0)
481
482#endif // _IMX_REGS_H 376#endif // _IMX_REGS_H
diff --git a/arch/arm/mach-integrator/clock.h b/arch/arm/mach-integrator/clock.h
deleted file mode 100644
index e69de29bb2d1..000000000000
--- a/arch/arm/mach-integrator/clock.h
+++ /dev/null
diff --git a/arch/arm/mach-kirkwood/irq.c b/arch/arm/mach-kirkwood/irq.c
index efb86b700276..06083b23bb44 100644
--- a/arch/arm/mach-kirkwood/irq.c
+++ b/arch/arm/mach-kirkwood/irq.c
@@ -42,7 +42,7 @@ void __init kirkwood_init_irq(void)
42 writel(0, GPIO_EDGE_CAUSE(32)); 42 writel(0, GPIO_EDGE_CAUSE(32));
43 43
44 for (i = IRQ_KIRKWOOD_GPIO_START; i < NR_IRQS; i++) { 44 for (i = IRQ_KIRKWOOD_GPIO_START; i < NR_IRQS; i++) {
45 set_irq_chip(i, &orion_gpio_irq_level_chip); 45 set_irq_chip(i, &orion_gpio_irq_chip);
46 set_irq_handler(i, handle_level_irq); 46 set_irq_handler(i, handle_level_irq);
47 irq_desc[i].status |= IRQ_LEVEL; 47 irq_desc[i].status |= IRQ_LEVEL;
48 set_irq_flags(i, IRQF_VALID); 48 set_irq_flags(i, IRQF_VALID);
diff --git a/arch/arm/mach-msm/board-halibut.c b/arch/arm/mach-msm/board-halibut.c
index c2a96e3965a6..e61967dde9a1 100644
--- a/arch/arm/mach-msm/board-halibut.c
+++ b/arch/arm/mach-msm/board-halibut.c
@@ -27,6 +27,7 @@
27#include <asm/mach/map.h> 27#include <asm/mach/map.h>
28#include <asm/mach/flash.h> 28#include <asm/mach/flash.h>
29 29
30#include <mach/irqs.h>
30#include <mach/board.h> 31#include <mach/board.h>
31#include <mach/msm_iomap.h> 32#include <mach/msm_iomap.h>
32 33
diff --git a/arch/arm/mach-mv78xx0/irq.c b/arch/arm/mach-mv78xx0/irq.c
index e273418797b4..30b7e4bcdbc7 100644
--- a/arch/arm/mach-mv78xx0/irq.c
+++ b/arch/arm/mach-mv78xx0/irq.c
@@ -40,7 +40,7 @@ void __init mv78xx0_init_irq(void)
40 writel(0, GPIO_EDGE_CAUSE(0)); 40 writel(0, GPIO_EDGE_CAUSE(0));
41 41
42 for (i = IRQ_MV78XX0_GPIO_START; i < NR_IRQS; i++) { 42 for (i = IRQ_MV78XX0_GPIO_START; i < NR_IRQS; i++) {
43 set_irq_chip(i, &orion_gpio_irq_level_chip); 43 set_irq_chip(i, &orion_gpio_irq_chip);
44 set_irq_handler(i, handle_level_irq); 44 set_irq_handler(i, handle_level_irq);
45 irq_desc[i].status |= IRQ_LEVEL; 45 irq_desc[i].status |= IRQ_LEVEL;
46 set_irq_flags(i, IRQF_VALID); 46 set_irq_flags(i, IRQF_VALID);
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c
index b240c5f861da..0d784a795092 100644
--- a/arch/arm/mach-omap1/board-h2.c
+++ b/arch/arm/mach-omap1/board-h2.c
@@ -37,16 +37,14 @@
37#include <asm/mach/flash.h> 37#include <asm/mach/flash.h>
38#include <asm/mach/map.h> 38#include <asm/mach/map.h>
39 39
40#include <mach/gpio-switch.h>
41#include <mach/mux.h> 40#include <mach/mux.h>
41#include <mach/dma.h>
42#include <mach/tc.h> 42#include <mach/tc.h>
43#include <mach/nand.h> 43#include <mach/nand.h>
44#include <mach/irda.h> 44#include <mach/irda.h>
45#include <mach/usb.h> 45#include <mach/usb.h>
46#include <mach/keypad.h> 46#include <mach/keypad.h>
47#include <mach/common.h> 47#include <mach/common.h>
48#include <mach/mcbsp.h>
49#include <mach/omap-alsa.h>
50 48
51static int h2_keymap[] = { 49static int h2_keymap[] = {
52 KEY(0, 0, KEY_LEFT), 50 KEY(0, 0, KEY_LEFT),
@@ -292,41 +290,6 @@ static struct platform_device h2_lcd_device = {
292 .id = -1, 290 .id = -1,
293}; 291};
294 292
295static struct omap_mcbsp_reg_cfg mcbsp_regs = {
296 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
297 .spcr1 = RINTM(3) | RRST,
298 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
299 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(1),
300 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
301 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
302 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(1) | XFIG,
303 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
304 .srgr1 = FWID(15),
305 .srgr2 = GSYNC | CLKSP | FSGM | FPER(31),
306
307 .pcr0 = CLKXM | CLKRM | FSXP | FSRP | CLKXP | CLKRP,
308 /*.pcr0 = CLKXP | CLKRP,*/ /* mcbsp: slave */
309};
310
311static struct omap_alsa_codec_config alsa_config = {
312 .name = "H2 TSC2101",
313 .mcbsp_regs_alsa = &mcbsp_regs,
314 .codec_configure_dev = NULL, /* tsc2101_configure, */
315 .codec_set_samplerate = NULL, /* tsc2101_set_samplerate, */
316 .codec_clock_setup = NULL, /* tsc2101_clock_setup, */
317 .codec_clock_on = NULL, /* tsc2101_clock_on, */
318 .codec_clock_off = NULL, /* tsc2101_clock_off, */
319 .get_default_samplerate = NULL, /* tsc2101_get_default_samplerate, */
320};
321
322static struct platform_device h2_mcbsp1_device = {
323 .name = "omap_alsa_mcbsp",
324 .id = 1,
325 .dev = {
326 .platform_data = &alsa_config,
327 },
328};
329
330static struct platform_device *h2_devices[] __initdata = { 293static struct platform_device *h2_devices[] __initdata = {
331 &h2_nor_device, 294 &h2_nor_device,
332 &h2_nand_device, 295 &h2_nand_device,
@@ -334,7 +297,6 @@ static struct platform_device *h2_devices[] __initdata = {
334 &h2_irda_device, 297 &h2_irda_device,
335 &h2_kp_device, 298 &h2_kp_device,
336 &h2_lcd_device, 299 &h2_lcd_device,
337 &h2_mcbsp1_device,
338}; 300};
339 301
340static void __init h2_init_smc91x(void) 302static void __init h2_init_smc91x(void)
@@ -409,11 +371,6 @@ static struct omap_board_config_kernel h2_config[] __initdata = {
409 371
410#define H2_NAND_RB_GPIO_PIN 62 372#define H2_NAND_RB_GPIO_PIN 62
411 373
412static int h2_nand_dev_ready(struct omap_nand_platform_data *data)
413{
414 return gpio_get_value(H2_NAND_RB_GPIO_PIN);
415}
416
417static void __init h2_init(void) 374static void __init h2_init(void)
418{ 375{
419 /* Here we assume the NOR boot config: NOR on CS3 (possibly swapped 376 /* Here we assume the NOR boot config: NOR on CS3 (possibly swapped
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c
index 5157eea9be35..bf08b6ad22ee 100644
--- a/arch/arm/mach-omap1/board-h3.c
+++ b/arch/arm/mach-omap1/board-h3.c
@@ -49,8 +49,6 @@
49#include <mach/keypad.h> 49#include <mach/keypad.h>
50#include <mach/dma.h> 50#include <mach/dma.h>
51#include <mach/common.h> 51#include <mach/common.h>
52#include <mach/mcbsp.h>
53#include <mach/omap-alsa.h>
54 52
55#define H3_TS_GPIO 48 53#define H3_TS_GPIO 48
56 54
@@ -387,41 +385,6 @@ static struct spi_board_info h3_spi_board_info[] __initdata = {
387 }, 385 },
388}; 386};
389 387
390static struct omap_mcbsp_reg_cfg mcbsp_regs = {
391 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
392 .spcr1 = RINTM(3) | RRST,
393 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
394 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(1),
395 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
396 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
397 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(1) | XFIG,
398 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
399 .srgr1 = FWID(15),
400 .srgr2 = GSYNC | CLKSP | FSGM | FPER(31),
401
402 .pcr0 = CLKRM | SCLKME | FSXP | FSRP | CLKXP | CLKRP,
403 /*.pcr0 = CLKXP | CLKRP,*/ /* mcbsp: slave */
404};
405
406static struct omap_alsa_codec_config alsa_config = {
407 .name = "H3 TSC2101",
408 .mcbsp_regs_alsa = &mcbsp_regs,
409 .codec_configure_dev = NULL, /* tsc2101_configure, */
410 .codec_set_samplerate = NULL, /* tsc2101_set_samplerate, */
411 .codec_clock_setup = NULL, /* tsc2101_clock_setup, */
412 .codec_clock_on = NULL, /* tsc2101_clock_on, */
413 .codec_clock_off = NULL, /* tsc2101_clock_off, */
414 .get_default_samplerate = NULL, /* tsc2101_get_default_samplerate, */
415};
416
417static struct platform_device h3_mcbsp1_device = {
418 .name = "omap_alsa_mcbsp",
419 .id = 1,
420 .dev = {
421 .platform_data = &alsa_config,
422 },
423};
424
425static struct platform_device *devices[] __initdata = { 388static struct platform_device *devices[] __initdata = {
426 &nor_device, 389 &nor_device,
427 &nand_device, 390 &nand_device,
@@ -430,7 +393,6 @@ static struct platform_device *devices[] __initdata = {
430 &h3_irda_device, 393 &h3_irda_device,
431 &h3_kp_device, 394 &h3_kp_device,
432 &h3_lcd_device, 395 &h3_lcd_device,
433 &h3_mcbsp1_device,
434}; 396};
435 397
436static struct omap_usb_config h3_usb_config __initdata = { 398static struct omap_usb_config h3_usb_config __initdata = {
@@ -472,18 +434,6 @@ static struct i2c_board_info __initdata h3_i2c_board_info[] = {
472 }, 434 },
473}; 435};
474 436
475static struct omap_gpio_switch h3_gpio_switches[] __initdata = {
476 {
477 .name = "mmc_slot",
478 .gpio = OMAP_MPUIO(1),
479 .type = OMAP_GPIO_SWITCH_TYPE_COVER,
480 .debounce_rising = 100,
481 .debounce_falling = 0,
482 .notify = h3_mmc_slot_cover_handler,
483 .notify_data = NULL,
484 },
485};
486
487#define H3_NAND_RB_GPIO_PIN 10 437#define H3_NAND_RB_GPIO_PIN 10
488 438
489static int nand_dev_ready(struct omap_nand_platform_data *data) 439static int nand_dev_ready(struct omap_nand_platform_data *data)
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c
index af2fb9070083..071cd02a734e 100644
--- a/arch/arm/mach-omap1/board-innovator.c
+++ b/arch/arm/mach-omap1/board-innovator.c
@@ -37,8 +37,6 @@
37#include <mach/usb.h> 37#include <mach/usb.h>
38#include <mach/keypad.h> 38#include <mach/keypad.h>
39#include <mach/common.h> 39#include <mach/common.h>
40#include <mach/mcbsp.h>
41#include <mach/omap-alsa.h>
42#include <mach/mmc.h> 40#include <mach/mmc.h>
43 41
44static int innovator_keymap[] = { 42static int innovator_keymap[] = {
@@ -115,42 +113,6 @@ static struct platform_device innovator_flash_device = {
115 .resource = &innovator_flash_resource, 113 .resource = &innovator_flash_resource,
116}; 114};
117 115
118#define DEFAULT_BITPERSAMPLE 16
119
120static struct omap_mcbsp_reg_cfg mcbsp_regs = {
121 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
122 .spcr1 = RINTM(3) | RRST,
123 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
124 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
125 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
126 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
127 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
128 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
129 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
130 .srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
131 /*.pcr0 = FSXM | FSRM | CLKXM | CLKRM | CLKXP | CLKRP,*/ /* mcbsp: master */
132 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
133};
134
135static struct omap_alsa_codec_config alsa_config = {
136 .name = "OMAP Innovator AIC23",
137 .mcbsp_regs_alsa = &mcbsp_regs,
138 .codec_configure_dev = NULL, /* aic23_configure, */
139 .codec_set_samplerate = NULL, /* aic23_set_samplerate, */
140 .codec_clock_setup = NULL, /* aic23_clock_setup, */
141 .codec_clock_on = NULL, /* aic23_clock_on, */
142 .codec_clock_off = NULL, /* aic23_clock_off, */
143 .get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
144};
145
146static struct platform_device innovator_mcbsp1_device = {
147 .name = "omap_alsa_mcbsp",
148 .id = 1,
149 .dev = {
150 .platform_data = &alsa_config,
151 },
152};
153
154static struct resource innovator_kp_resources[] = { 116static struct resource innovator_kp_resources[] = {
155 [0] = { 117 [0] = {
156 .start = INT_KEYBOARD, 118 .start = INT_KEYBOARD,
@@ -227,7 +189,6 @@ static struct platform_device innovator1510_spi_device = {
227static struct platform_device *innovator1510_devices[] __initdata = { 189static struct platform_device *innovator1510_devices[] __initdata = {
228 &innovator_flash_device, 190 &innovator_flash_device,
229 &innovator1510_smc91x_device, 191 &innovator1510_smc91x_device,
230 &innovator_mcbsp1_device,
231 &innovator_kp_device, 192 &innovator_kp_device,
232 &innovator1510_lcd_device, 193 &innovator1510_lcd_device,
233 &innovator1510_spi_device, 194 &innovator1510_spi_device,
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c
index 4970c402a594..af51e0b180f2 100644
--- a/arch/arm/mach-omap1/board-nokia770.c
+++ b/arch/arm/mach-omap1/board-nokia770.c
@@ -32,7 +32,6 @@
32#include <mach/keypad.h> 32#include <mach/keypad.h>
33#include <mach/common.h> 33#include <mach/common.h>
34#include <mach/dsp_common.h> 34#include <mach/dsp_common.h>
35#include <mach/aic23.h>
36#include <mach/omapfb.h> 35#include <mach/omapfb.h>
37#include <mach/lcd_mipid.h> 36#include <mach/lcd_mipid.h>
38#include <mach/mmc.h> 37#include <mach/mmc.h>
@@ -261,6 +260,13 @@ static DEFINE_MUTEX(audio_pwr_lock);
261 */ 260 */
262static int audio_pwr_state = -1; 261static int audio_pwr_state = -1;
263 262
263static inline void aic23_power_up(void)
264{
265}
266static inline void aic23_power_down(void)
267{
268}
269
264/* 270/*
265 * audio_pwr_up / down should be called under audio_pwr_lock 271 * audio_pwr_up / down should be called under audio_pwr_lock
266 */ 272 */
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c
index ff9e67baa5c9..1a16ecb2ccc8 100644
--- a/arch/arm/mach-omap1/board-osk.c
+++ b/arch/arm/mach-omap1/board-osk.c
@@ -51,8 +51,6 @@
51#include <mach/mux.h> 51#include <mach/mux.h>
52#include <mach/tc.h> 52#include <mach/tc.h>
53#include <mach/common.h> 53#include <mach/common.h>
54#include <mach/mcbsp.h>
55#include <mach/omap-alsa.h>
56 54
57static struct mtd_partition osk_partitions[] = { 55static struct mtd_partition osk_partitions[] = {
58 /* bootloader (U-Boot, etc) in first sector */ 56 /* bootloader (U-Boot, etc) in first sector */
@@ -141,47 +139,10 @@ static struct platform_device osk5912_cf_device = {
141 .resource = osk5912_cf_resources, 139 .resource = osk5912_cf_resources,
142}; 140};
143 141
144#define DEFAULT_BITPERSAMPLE 16
145
146static struct omap_mcbsp_reg_cfg mcbsp_regs = {
147 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
148 .spcr1 = RINTM(3) | RRST,
149 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
150 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
151 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
152 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
153 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
154 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
155 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
156 .srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
157 /*.pcr0 = FSXM | FSRM | CLKXM | CLKRM | CLKXP | CLKRP,*/ /* mcbsp: master */
158 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
159};
160
161static struct omap_alsa_codec_config alsa_config = {
162 .name = "OSK AIC23",
163 .mcbsp_regs_alsa = &mcbsp_regs,
164 .codec_configure_dev = NULL, /* aic23_configure, */
165 .codec_set_samplerate = NULL, /* aic23_set_samplerate, */
166 .codec_clock_setup = NULL, /* aic23_clock_setup, */
167 .codec_clock_on = NULL, /* aic23_clock_on, */
168 .codec_clock_off = NULL, /* aic23_clock_off, */
169 .get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
170};
171
172static struct platform_device osk5912_mcbsp1_device = {
173 .name = "omap_alsa_mcbsp",
174 .id = 1,
175 .dev = {
176 .platform_data = &alsa_config,
177 },
178};
179
180static struct platform_device *osk5912_devices[] __initdata = { 142static struct platform_device *osk5912_devices[] __initdata = {
181 &osk5912_flash_device, 143 &osk5912_flash_device,
182 &osk5912_smc91x_device, 144 &osk5912_smc91x_device,
183 &osk5912_cf_device, 145 &osk5912_cf_device,
184 &osk5912_mcbsp1_device,
185}; 146};
186 147
187static struct gpio_led tps_leds[] = { 148static struct gpio_led tps_leds[] = {
@@ -259,8 +220,10 @@ static struct i2c_board_info __initdata osk_i2c_board_info[] = {
259 .platform_data = &tps_board, 220 .platform_data = &tps_board,
260 221
261 }, 222 },
223 {
224 I2C_BOARD_INFO("tlv320aic23", 0x1B),
225 },
262 /* TODO when driver support is ready: 226 /* TODO when driver support is ready:
263 * - aic23 audio chip at 0x1a
264 * - optionally on Mistral, ov9640 camera sensor at 0x30 227 * - optionally on Mistral, ov9640 camera sensor at 0x30
265 */ 228 */
266}; 229};
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c
index 75e32d35afd9..99f2b43f2541 100644
--- a/arch/arm/mach-omap1/board-palmte.c
+++ b/arch/arm/mach-omap1/board-palmte.c
@@ -42,8 +42,6 @@
42#include <mach/irda.h> 42#include <mach/irda.h>
43#include <mach/keypad.h> 43#include <mach/keypad.h>
44#include <mach/common.h> 44#include <mach/common.h>
45#include <mach/mcbsp.h>
46#include <mach/omap-alsa.h>
47 45
48static void __init omap_palmte_init_irq(void) 46static void __init omap_palmte_init_irq(void)
49{ 47{
@@ -195,15 +193,6 @@ static struct omap_usb_config palmte_usb_config __initdata = {
195 .pins[0] = 2, 193 .pins[0] = 2,
196}; 194};
197 195
198static struct omap_mmc_config palmte_mmc_config __initdata = {
199 .mmc[0] = {
200 .enabled = 1,
201 .wp_pin = PALMTE_MMC_WP_GPIO,
202 .power_pin = PALMTE_MMC_POWER_GPIO,
203 .switch_pin = PALMTE_MMC_SWITCH_GPIO,
204 },
205};
206
207static struct omap_lcd_config palmte_lcd_config __initdata = { 196static struct omap_lcd_config palmte_lcd_config __initdata = {
208 .ctrl_name = "internal", 197 .ctrl_name = "internal",
209}; 198};
@@ -212,24 +201,6 @@ static struct omap_uart_config palmte_uart_config __initdata = {
212 .enabled_uarts = (1 << 0) | (1 << 1) | (0 << 2), 201 .enabled_uarts = (1 << 0) | (1 << 1) | (0 << 2),
213}; 202};
214 203
215static struct omap_mcbsp_reg_cfg palmte_mcbsp1_regs = {
216 .spcr2 = FRST | GRST | XRST | XINTM(3),
217 .xcr2 = XDATDLY(1) | XFIG,
218 .xcr1 = XWDLEN1(OMAP_MCBSP_WORD_32),
219 .pcr0 = SCLKME | FSXP | CLKXP,
220};
221
222static struct omap_alsa_codec_config palmte_alsa_config = {
223 .name = "TSC2102 audio",
224 .mcbsp_regs_alsa = &palmte_mcbsp1_regs,
225 .codec_configure_dev = NULL, /* tsc2102_configure, */
226 .codec_set_samplerate = NULL, /* tsc2102_set_samplerate, */
227 .codec_clock_setup = NULL, /* tsc2102_clock_setup, */
228 .codec_clock_on = NULL, /* tsc2102_clock_on, */
229 .codec_clock_off = NULL, /* tsc2102_clock_off, */
230 .get_default_samplerate = NULL, /* tsc2102_get_default_samplerate, */
231};
232
233#ifdef CONFIG_APM 204#ifdef CONFIG_APM
234/* 205/*
235 * Values measured in 10 minute intervals averaged over 10 samples. 206 * Values measured in 10 minute intervals averaged over 10 samples.
diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-omap1/board-palmtt.c
index 5c001afe8062..1cbc1275c95f 100644
--- a/arch/arm/mach-omap1/board-palmtt.c
+++ b/arch/arm/mach-omap1/board-palmtt.c
@@ -30,7 +30,6 @@
30#include <asm/mach/flash.h> 30#include <asm/mach/flash.h>
31 31
32#include <mach/led.h> 32#include <mach/led.h>
33#include <mach/mcbsp.h>
34#include <mach/gpio.h> 33#include <mach/gpio.h>
35#include <mach/mux.h> 34#include <mach/mux.h>
36#include <mach/usb.h> 35#include <mach/usb.h>
@@ -40,7 +39,6 @@
40#include <mach/irda.h> 39#include <mach/irda.h>
41#include <mach/keypad.h> 40#include <mach/keypad.h>
42#include <mach/common.h> 41#include <mach/common.h>
43#include <mach/omap-alsa.h>
44 42
45#include <linux/spi/spi.h> 43#include <linux/spi/spi.h>
46#include <linux/spi/ads7846.h> 44#include <linux/spi/ads7846.h>
@@ -122,44 +120,6 @@ static struct platform_device palmtt_flash_device = {
122 .resource = &palmtt_flash_resource, 120 .resource = &palmtt_flash_resource,
123}; 121};
124 122
125#define DEFAULT_BITPERSAMPLE 16
126
127static struct omap_mcbsp_reg_cfg mcbsp_regs = {
128 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
129 .spcr1 = RINTM(3) | RRST,
130 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
131 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
132 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) |
133 RWDLEN1(OMAP_MCBSP_WORD_16),
134 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
135 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
136 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) |
137 XWDLEN1(OMAP_MCBSP_WORD_16),
138 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
139 .srgr2 = GSYNC | CLKSP | FSGM |
140 FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
141 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
142};
143
144static struct omap_alsa_codec_config alsa_config = {
145 .name = "PalmTT AIC23",
146 .mcbsp_regs_alsa = &mcbsp_regs,
147 .codec_configure_dev = NULL, /* aic23_configure, */
148 .codec_set_samplerate = NULL, /* aic23_set_samplerate, */
149 .codec_clock_setup = NULL, /* aic23_clock_setup, */
150 .codec_clock_on = NULL, /* aic23_clock_on, */
151 .codec_clock_off = NULL, /* aic23_clock_off, */
152 .get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
153};
154
155static struct platform_device palmtt_mcbsp1_device = {
156 .name = "omap_alsa_mcbsp",
157 .id = 1,
158 .dev = {
159 .platform_data = &alsa_config,
160 },
161};
162
163static struct resource palmtt_kp_resources[] = { 123static struct resource palmtt_kp_resources[] = {
164 [0] = { 124 [0] = {
165 .start = INT_KEYBOARD, 125 .start = INT_KEYBOARD,
@@ -257,7 +217,6 @@ static struct platform_device palmtt_led_device = {
257 217
258static struct platform_device *palmtt_devices[] __initdata = { 218static struct platform_device *palmtt_devices[] __initdata = {
259 &palmtt_flash_device, 219 &palmtt_flash_device,
260 &palmtt_mcbsp1_device,
261 &palmtt_kp_device, 220 &palmtt_kp_device,
262 &palmtt_lcd_device, 221 &palmtt_lcd_device,
263 &palmtt_irda_device, 222 &palmtt_irda_device,
diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-omap1/board-palmz71.c
index cc05257eb1cd..baf5efbfe3e8 100644
--- a/arch/arm/mach-omap1/board-palmz71.c
+++ b/arch/arm/mach-omap1/board-palmz71.c
@@ -32,7 +32,6 @@
32#include <asm/mach/map.h> 32#include <asm/mach/map.h>
33#include <asm/mach/flash.h> 33#include <asm/mach/flash.h>
34 34
35#include <mach/mcbsp.h>
36#include <mach/gpio.h> 35#include <mach/gpio.h>
37#include <mach/mux.h> 36#include <mach/mux.h>
38#include <mach/usb.h> 37#include <mach/usb.h>
@@ -179,41 +178,6 @@ static struct platform_device palmz71_spi_device = {
179 .id = -1, 178 .id = -1,
180}; 179};
181 180
182#define DEFAULT_BITPERSAMPLE 16
183
184static struct omap_mcbsp_reg_cfg mcbsp_regs = {
185 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
186 .spcr1 = RINTM(3) | RRST,
187 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
188 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
189 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
190 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
191 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
192 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
193 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
194 .srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
195 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
196};
197
198static struct omap_alsa_codec_config alsa_config = {
199 .name = "PalmZ71 AIC23",
200 .mcbsp_regs_alsa = &mcbsp_regs,
201 .codec_configure_dev = NULL, /* aic23_configure */
202 .codec_set_samplerate = NULL, /* aic23_set_samplerate */
203 .codec_clock_setup = NULL, /* aic23_clock_setup */
204 .codec_clock_on = NULL, /* aic23_clock_on */
205 .codec_clock_off = NULL, /* aic23_clock_off */
206 .get_default_samplerate = NULL, /* aic23_get_default_samplerate */
207};
208
209static struct platform_device palmz71_mcbsp1_device = {
210 .name = "omap_alsa_mcbsp",
211 .id = 1,
212 .dev = {
213 .platform_data = &alsa_config,
214 },
215};
216
217static struct omap_backlight_config palmz71_backlight_config = { 181static struct omap_backlight_config palmz71_backlight_config = {
218 .default_intensity = 0xa0, 182 .default_intensity = 0xa0,
219}; 183};
@@ -229,7 +193,6 @@ static struct platform_device palmz71_backlight_device = {
229static struct platform_device *devices[] __initdata = { 193static struct platform_device *devices[] __initdata = {
230 &palmz71_rom_device, 194 &palmz71_rom_device,
231 &palmz71_kp_device, 195 &palmz71_kp_device,
232 &palmz71_mcbsp1_device,
233 &palmz71_lcd_device, 196 &palmz71_lcd_device,
234 &palmz71_irda_device, 197 &palmz71_irda_device,
235 &palmz71_spi_device, 198 &palmz71_spi_device,
diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c
index 8171fe0ca082..28c76a1e71c0 100644
--- a/arch/arm/mach-omap1/board-sx1.c
+++ b/arch/arm/mach-omap1/board-sx1.c
@@ -34,13 +34,12 @@
34 34
35#include <mach/gpio.h> 35#include <mach/gpio.h>
36#include <mach/mux.h> 36#include <mach/mux.h>
37#include <mach/dma.h>
37#include <mach/irda.h> 38#include <mach/irda.h>
38#include <mach/usb.h> 39#include <mach/usb.h>
39#include <mach/tc.h> 40#include <mach/tc.h>
40#include <mach/board.h> 41#include <mach/board.h>
41#include <mach/common.h> 42#include <mach/common.h>
42#include <mach/mcbsp.h>
43#include <mach/omap-alsa.h>
44#include <mach/keypad.h> 43#include <mach/keypad.h>
45 44
46/* Write to I2C device */ 45/* Write to I2C device */
@@ -254,35 +253,6 @@ static struct platform_device sx1_irda_device = {
254 .resource = sx1_irda_resources, 253 .resource = sx1_irda_resources,
255}; 254};
256 255
257/*----------- McBSP & Sound -------------------------*/
258
259/* Playback interface - McBSP1 */
260static struct omap_mcbsp_reg_cfg mcbsp1_regs = {
261 .spcr2 = XINTM(3), /* SPCR2=30 */
262 .spcr1 = RINTM(3), /* SPCR1=30 */
263 .rcr2 = 0, /* RCR2 =00 */
264 .rcr1 = RFRLEN1(1) | RWDLEN1(OMAP_MCBSP_WORD_16), /* RCR1=140 */
265 .xcr2 = 0, /* XCR2 = 0 */
266 .xcr1 = XFRLEN1(1) | XWDLEN1(OMAP_MCBSP_WORD_16), /* XCR1 = 140 */
267 .srgr1 = FWID(15) | CLKGDV(12), /* SRGR1=0f0c */
268 .srgr2 = FSGM | FPER(31), /* SRGR2=101f */
269 .pcr0 = FSXM | FSRM | CLKXM | CLKRM | FSXP | FSRP | CLKXP | CLKRP,
270 /* PCR0 =0f0f */
271};
272
273static struct omap_alsa_codec_config sx1_alsa_config = {
274 .name = "SX1 EGold",
275 .mcbsp_regs_alsa = &mcbsp1_regs,
276};
277
278static struct platform_device sx1_mcbsp1_device = {
279 .name = "omap_alsa_mcbsp",
280 .id = 1,
281 .dev = {
282 .platform_data = &sx1_alsa_config,
283 },
284};
285
286/*----------- MTD -------------------------*/ 256/*----------- MTD -------------------------*/
287 257
288static struct mtd_partition sx1_partitions[] = { 258static struct mtd_partition sx1_partitions[] = {
@@ -394,7 +364,6 @@ static struct platform_device *sx1_devices[] __initdata = {
394 &sx1_flash_device, 364 &sx1_flash_device,
395 &sx1_kp_device, 365 &sx1_kp_device,
396 &sx1_lcd_device, 366 &sx1_lcd_device,
397 &sx1_mcbsp1_device,
398 &sx1_irda_device, 367 &sx1_irda_device,
399}; 368};
400/*-----------------------------------------*/ 369/*-----------------------------------------*/
@@ -423,9 +392,9 @@ static void __init omap_sx1_init(void)
423 392
424 /* turn on USB power */ 393 /* turn on USB power */
425 /* sx1_setusbpower(1); cant do it here because i2c is not ready */ 394 /* sx1_setusbpower(1); cant do it here because i2c is not ready */
426 omap_request_gpio(1); /* A_IRDA_OFF */ 395 gpio_request(1, "A_IRDA_OFF");
427 omap_request_gpio(11); /* A_SWITCH */ 396 gpio_request(11, "A_SWITCH");
428 omap_request_gpio(15); /* A_USB_ON */ 397 gpio_request(15, "A_USB_ON");
429 gpio_direction_output(1, 1); /*A_IRDA_OFF = 1 */ 398 gpio_direction_output(1, 1); /*A_IRDA_OFF = 1 */
430 gpio_direction_output(11, 0); /*A_SWITCH = 0 */ 399 gpio_direction_output(11, 0); /*A_SWITCH = 0 */
431 gpio_direction_output(15, 0); /*A_USB_ON = 0 */ 400 gpio_direction_output(15, 0); /*A_USB_ON = 0 */
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c
index c224f3c64235..a7653542a2b0 100644
--- a/arch/arm/mach-omap1/board-voiceblue.c
+++ b/arch/arm/mach-omap1/board-voiceblue.c
@@ -22,7 +22,6 @@
22#include <linux/reboot.h> 22#include <linux/reboot.h>
23#include <linux/serial_8250.h> 23#include <linux/serial_8250.h>
24#include <linux/serial_reg.h> 24#include <linux/serial_reg.h>
25#include <linux/irq.h>
26 25
27#include <mach/hardware.h> 26#include <mach/hardware.h>
28#include <asm/mach-types.h> 27#include <asm/mach-types.h>
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c
index 77382d8b6b2f..ba5d7c08dc17 100644
--- a/arch/arm/mach-omap1/devices.c
+++ b/arch/arm/mach-omap1/devices.c
@@ -181,7 +181,7 @@ void __init omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
181 } 181 }
182 size = OMAP1_MMC_SIZE; 182 size = OMAP1_MMC_SIZE;
183 183
184 omap_mmc_add(i, base, size, irq, mmc_data[i]); 184 omap_mmc_add("mmci-omap", i, base, size, irq, mmc_data[i]);
185 }; 185 };
186} 186}
187 187
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c
index 4474da7bc88a..575ba31295cf 100644
--- a/arch/arm/mach-omap1/mcbsp.c
+++ b/arch/arm/mach-omap1/mcbsp.c
@@ -17,6 +17,7 @@
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19 19
20#include <mach/irqs.h>
20#include <mach/dma.h> 21#include <mach/dma.h>
21#include <mach/irqs.h> 22#include <mach/irqs.h>
22#include <mach/mux.h> 23#include <mach/mux.h>
@@ -27,81 +28,8 @@
27#define DPS_RSTCT2_PER_EN (1 << 0) 28#define DPS_RSTCT2_PER_EN (1 << 0)
28#define DSP_RSTCT2_WD_PER_EN (1 << 1) 29#define DSP_RSTCT2_WD_PER_EN (1 << 1)
29 30
30struct mcbsp_internal_clk {
31 struct clk clk;
32 struct clk **childs;
33 int n_childs;
34};
35
36#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) 31#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX)
37static void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk) 32const char *clk_names[] = { "dsp_ck", "api_ck", "dspxor_ck" };
38{
39 const char *clk_names[] = { "dsp_ck", "api_ck", "dspxor_ck" };
40 int i;
41
42 mclk->n_childs = ARRAY_SIZE(clk_names);
43 mclk->childs = kzalloc(mclk->n_childs * sizeof(struct clk *),
44 GFP_KERNEL);
45
46 for (i = 0; i < mclk->n_childs; i++) {
47 /* We fake a platform device to get correct device id */
48 struct platform_device pdev;
49
50 pdev.dev.bus = &platform_bus_type;
51 pdev.id = mclk->clk.id;
52 mclk->childs[i] = clk_get(&pdev.dev, clk_names[i]);
53 if (IS_ERR(mclk->childs[i]))
54 printk(KERN_ERR "Could not get clock %s (%d).\n",
55 clk_names[i], mclk->clk.id);
56 }
57}
58
59static int omap_mcbsp_clk_enable(struct clk *clk)
60{
61 struct mcbsp_internal_clk *mclk = container_of(clk,
62 struct mcbsp_internal_clk, clk);
63 int i;
64
65 for (i = 0; i < mclk->n_childs; i++)
66 clk_enable(mclk->childs[i]);
67 return 0;
68}
69
70static void omap_mcbsp_clk_disable(struct clk *clk)
71{
72 struct mcbsp_internal_clk *mclk = container_of(clk,
73 struct mcbsp_internal_clk, clk);
74 int i;
75
76 for (i = 0; i < mclk->n_childs; i++)
77 clk_disable(mclk->childs[i]);
78}
79
80static struct mcbsp_internal_clk omap_mcbsp_clks[] = {
81 {
82 .clk = {
83 .name = "mcbsp_clk",
84 .id = 1,
85 .enable = omap_mcbsp_clk_enable,
86 .disable = omap_mcbsp_clk_disable,
87 },
88 },
89 {
90 .clk = {
91 .name = "mcbsp_clk",
92 .id = 3,
93 .enable = omap_mcbsp_clk_enable,
94 .disable = omap_mcbsp_clk_disable,
95 },
96 },
97};
98
99#define omap_mcbsp_clks_size ARRAY_SIZE(omap_mcbsp_clks)
100#else
101#define omap_mcbsp_clks_size 0
102static struct mcbsp_internal_clk __initdata *omap_mcbsp_clks;
103static inline void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk)
104{ }
105#endif 33#endif
106 34
107static void omap1_mcbsp_request(unsigned int id) 35static void omap1_mcbsp_request(unsigned int id)
@@ -166,8 +94,9 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
166 .rx_irq = INT_McBSP1RX, 94 .rx_irq = INT_McBSP1RX,
167 .tx_irq = INT_McBSP1TX, 95 .tx_irq = INT_McBSP1TX,
168 .ops = &omap1_mcbsp_ops, 96 .ops = &omap1_mcbsp_ops,
169 .clk_name = "mcbsp_clk", 97 .clk_names = clk_names,
170 }, 98 .num_clks = 3,
99 },
171 { 100 {
172 .phys_base = OMAP1510_MCBSP2_BASE, 101 .phys_base = OMAP1510_MCBSP2_BASE,
173 .dma_rx_sync = OMAP_DMA_MCBSP2_RX, 102 .dma_rx_sync = OMAP_DMA_MCBSP2_RX,
@@ -183,7 +112,8 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
183 .rx_irq = INT_McBSP3RX, 112 .rx_irq = INT_McBSP3RX,
184 .tx_irq = INT_McBSP3TX, 113 .tx_irq = INT_McBSP3TX,
185 .ops = &omap1_mcbsp_ops, 114 .ops = &omap1_mcbsp_ops,
186 .clk_name = "mcbsp_clk", 115 .clk_names = clk_names,
116 .num_clks = 3,
187 }, 117 },
188}; 118};
189#define OMAP15XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap15xx_mcbsp_pdata) 119#define OMAP15XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap15xx_mcbsp_pdata)
@@ -201,7 +131,8 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
201 .rx_irq = INT_McBSP1RX, 131 .rx_irq = INT_McBSP1RX,
202 .tx_irq = INT_McBSP1TX, 132 .tx_irq = INT_McBSP1TX,
203 .ops = &omap1_mcbsp_ops, 133 .ops = &omap1_mcbsp_ops,
204 .clk_name = "mcbsp_clk", 134 .clk_names = clk_names,
135 .num_clks = 3,
205 }, 136 },
206 { 137 {
207 .phys_base = OMAP1610_MCBSP2_BASE, 138 .phys_base = OMAP1610_MCBSP2_BASE,
@@ -218,7 +149,8 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
218 .rx_irq = INT_McBSP3RX, 149 .rx_irq = INT_McBSP3RX,
219 .tx_irq = INT_McBSP3TX, 150 .tx_irq = INT_McBSP3TX,
220 .ops = &omap1_mcbsp_ops, 151 .ops = &omap1_mcbsp_ops,
221 .clk_name = "mcbsp_clk", 152 .clk_names = clk_names,
153 .num_clks = 3,
222 }, 154 },
223}; 155};
224#define OMAP16XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap16xx_mcbsp_pdata) 156#define OMAP16XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap16xx_mcbsp_pdata)
@@ -229,15 +161,6 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
229 161
230int __init omap1_mcbsp_init(void) 162int __init omap1_mcbsp_init(void)
231{ 163{
232 int i;
233
234 for (i = 0; i < omap_mcbsp_clks_size; i++) {
235 if (cpu_is_omap15xx() || cpu_is_omap16xx()) {
236 omap_mcbsp_clk_init(&omap_mcbsp_clks[i]);
237 clk_register(&omap_mcbsp_clks[i].clk);
238 }
239 }
240
241 if (cpu_is_omap730()) 164 if (cpu_is_omap730())
242 omap_mcbsp_count = OMAP730_MCBSP_PDATA_SZ; 165 omap_mcbsp_count = OMAP730_MCBSP_PDATA_SZ;
243 if (cpu_is_omap15xx()) 166 if (cpu_is_omap15xx())
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c
index bf1e5d32c2a3..0a7b24ba1652 100644
--- a/arch/arm/mach-omap2/board-apollon.c
+++ b/arch/arm/mach-omap2/board-apollon.c
@@ -22,8 +22,6 @@
22#include <linux/mtd/mtd.h> 22#include <linux/mtd/mtd.h>
23#include <linux/mtd/partitions.h> 23#include <linux/mtd/partitions.h>
24#include <linux/mtd/onenand.h> 24#include <linux/mtd/onenand.h>
25#include <linux/irq.h>
26#include <linux/interrupt.h>
27#include <linux/delay.h> 25#include <linux/delay.h>
28#include <linux/leds.h> 26#include <linux/leds.h>
29#include <linux/err.h> 27#include <linux/err.h>
@@ -282,65 +280,16 @@ static void __init apollon_led_init(void)
282{ 280{
283 /* LED0 - AA10 */ 281 /* LED0 - AA10 */
284 omap_cfg_reg(AA10_242X_GPIO13); 282 omap_cfg_reg(AA10_242X_GPIO13);
285 omap_request_gpio(LED0_GPIO13); 283 gpio_request(LED0_GPIO13, "LED0");
286 omap_set_gpio_direction(LED0_GPIO13, 0); 284 gpio_direction_output(LED0_GPIO13, 0);
287 omap_set_gpio_dataout(LED0_GPIO13, 0);
288 /* LED1 - AA6 */ 285 /* LED1 - AA6 */
289 omap_cfg_reg(AA6_242X_GPIO14); 286 omap_cfg_reg(AA6_242X_GPIO14);
290 omap_request_gpio(LED1_GPIO14); 287 gpio_request(LED1_GPIO14, "LED1");
291 omap_set_gpio_direction(LED1_GPIO14, 0); 288 gpio_direction_output(LED1_GPIO14, 0);
292 omap_set_gpio_dataout(LED1_GPIO14, 0);
293 /* LED2 - AA4 */ 289 /* LED2 - AA4 */
294 omap_cfg_reg(AA4_242X_GPIO15); 290 omap_cfg_reg(AA4_242X_GPIO15);
295 omap_request_gpio(LED2_GPIO15); 291 gpio_request(LED2_GPIO15, "LED2");
296 omap_set_gpio_direction(LED2_GPIO15, 0); 292 gpio_direction_output(LED2_GPIO15, 0);
297 omap_set_gpio_dataout(LED2_GPIO15, 0);
298}
299
300static irqreturn_t apollon_sw_interrupt(int irq, void *ignored)
301{
302 static unsigned int led0, led1, led2;
303
304 if (irq == OMAP_GPIO_IRQ(SW_ENTER_GPIO16))
305 omap_set_gpio_dataout(LED0_GPIO13, led0 ^= 1);
306 else if (irq == OMAP_GPIO_IRQ(SW_UP_GPIO17))
307 omap_set_gpio_dataout(LED1_GPIO14, led1 ^= 1);
308 else if (irq == OMAP_GPIO_IRQ(SW_DOWN_GPIO58))
309 omap_set_gpio_dataout(LED2_GPIO15, led2 ^= 1);
310
311 return IRQ_HANDLED;
312}
313
314static void __init apollon_sw_init(void)
315{
316 /* Enter SW - Y11 */
317 omap_cfg_reg(Y11_242X_GPIO16);
318 omap_request_gpio(SW_ENTER_GPIO16);
319 gpio_direction_input(SW_ENTER_GPIO16);
320 /* Up SW - AA12 */
321 omap_cfg_reg(AA12_242X_GPIO17);
322 omap_request_gpio(SW_UP_GPIO17);
323 gpio_direction_input(SW_UP_GPIO17);
324 /* Down SW - AA8 */
325 omap_cfg_reg(AA8_242X_GPIO58);
326 omap_request_gpio(SW_DOWN_GPIO58);
327 gpio_direction_input(SW_DOWN_GPIO58);
328
329 set_irq_type(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), IRQ_TYPE_EDGE_RISING);
330 if (request_irq(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), &apollon_sw_interrupt,
331 IRQF_SHARED, "enter sw",
332 &apollon_sw_interrupt))
333 return;
334 set_irq_type(OMAP_GPIO_IRQ(SW_UP_GPIO17), IRQ_TYPE_EDGE_RISING);
335 if (request_irq(OMAP_GPIO_IRQ(SW_UP_GPIO17), &apollon_sw_interrupt,
336 IRQF_SHARED, "up sw",
337 &apollon_sw_interrupt))
338 return;
339 set_irq_type(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), IRQ_TYPE_EDGE_RISING);
340 if (request_irq(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), &apollon_sw_interrupt,
341 IRQF_SHARED, "down sw",
342 &apollon_sw_interrupt))
343 return;
344} 293}
345 294
346static void __init apollon_usb_init(void) 295static void __init apollon_usb_init(void)
@@ -357,7 +306,6 @@ static void __init omap_apollon_init(void)
357 u32 v; 306 u32 v;
358 307
359 apollon_led_init(); 308 apollon_led_init();
360 apollon_sw_init();
361 apollon_flash_init(); 309 apollon_flash_init();
362 apollon_usb_init(); 310 apollon_usb_init();
363 311
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
index aa6972781e4a..f6a13451d1fd 100644
--- a/arch/arm/mach-omap2/board-ldp.c
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -88,7 +88,7 @@ static inline void __init ldp_init_smc911x(void)
88 88
89 ldp_smc911x_resources[1].start = OMAP_GPIO_IRQ(eth_gpio); 89 ldp_smc911x_resources[1].start = OMAP_GPIO_IRQ(eth_gpio);
90 90
91 if (omap_request_gpio(eth_gpio) < 0) { 91 if (gpio_request(eth_gpio, "smc911x irq") < 0) {
92 printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n", 92 printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n",
93 eth_gpio); 93 eth_gpio);
94 return; 94 return;
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 9e5ada01b5fa..38c88fbe658d 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -28,6 +28,8 @@
28#include <linux/mtd/partitions.h> 28#include <linux/mtd/partitions.h>
29#include <linux/mtd/nand.h> 29#include <linux/mtd/nand.h>
30 30
31#include <linux/i2c/twl4030.h>
32
31#include <mach/hardware.h> 33#include <mach/hardware.h>
32#include <asm/mach-types.h> 34#include <asm/mach-types.h>
33#include <asm/mach/arch.h> 35#include <asm/mach/arch.h>
@@ -120,6 +122,9 @@ static int beagle_twl_gpio_setup(struct device *dev,
120 unsigned gpio, unsigned ngpio) 122 unsigned gpio, unsigned ngpio)
121{ 123{
122 /* gpio + 0 is "mmc0_cd" (input/IRQ) */ 124 /* gpio + 0 is "mmc0_cd" (input/IRQ) */
125 omap_cfg_reg(AH8_34XX_GPIO29);
126 mmc[0].gpio_cd = gpio + 0;
127 twl4030_mmc_init(mmc);
123 128
124 /* REVISIT: need ehci-omap hooks for external VBUS 129 /* REVISIT: need ehci-omap hooks for external VBUS
125 * power switch and overcurrent detect 130 * power switch and overcurrent detect
@@ -304,10 +309,6 @@ static void __init omap3_beagle_init(void)
304 omap_board_config_size = ARRAY_SIZE(omap3_beagle_config); 309 omap_board_config_size = ARRAY_SIZE(omap3_beagle_config);
305 omap_serial_init(); 310 omap_serial_init();
306 311
307 omap_cfg_reg(AH8_34XX_GPIO29);
308 mmc[0].gpio_cd = gpio + 0;
309 twl4030_mmc_init(mmc);
310
311 omap_cfg_reg(J25_34XX_GPIO170); 312 omap_cfg_reg(J25_34XX_GPIO170);
312 gpio_request(170, "DVI_nPD"); 313 gpio_request(170, "DVI_nPD");
313 /* REVISIT leave DVI powered down until it's needed ... */ 314 /* REVISIT leave DVI powered down until it's needed ... */
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
index ad721e0cbf7a..ce4d46a4a838 100644
--- a/arch/arm/mach-omap2/clock.c
+++ b/arch/arm/mach-omap2/clock.c
@@ -565,7 +565,7 @@ u32 omap2_clksel_to_divisor(struct clk *clk, u32 field_val)
565 * 565 *
566 * Given a struct clk of a rate-selectable clksel clock, and a clock divisor, 566 * Given a struct clk of a rate-selectable clksel clock, and a clock divisor,
567 * find the corresponding register field value. The return register value is 567 * find the corresponding register field value. The return register value is
568 * the value before left-shifting. Returns 0xffffffff on error 568 * the value before left-shifting. Returns ~0 on error
569 */ 569 */
570u32 omap2_divisor_to_clksel(struct clk *clk, u32 div) 570u32 omap2_divisor_to_clksel(struct clk *clk, u32 div)
571{ 571{
@@ -577,7 +577,7 @@ u32 omap2_divisor_to_clksel(struct clk *clk, u32 div)
577 577
578 clks = omap2_get_clksel_by_parent(clk, clk->parent); 578 clks = omap2_get_clksel_by_parent(clk, clk->parent);
579 if (clks == NULL) 579 if (clks == NULL)
580 return 0; 580 return ~0;
581 581
582 for (clkr = clks->rates; clkr->div; clkr++) { 582 for (clkr = clks->rates; clkr->div; clkr++) {
583 if ((clkr->flags & cpu_mask) && (clkr->div == div)) 583 if ((clkr->flags & cpu_mask) && (clkr->div == div))
@@ -588,7 +588,7 @@ u32 omap2_divisor_to_clksel(struct clk *clk, u32 div)
588 printk(KERN_ERR "clock: Could not find divisor %d for " 588 printk(KERN_ERR "clock: Could not find divisor %d for "
589 "clock %s parent %s\n", div, clk->name, 589 "clock %s parent %s\n", div, clk->name,
590 clk->parent->name); 590 clk->parent->name);
591 return 0; 591 return ~0;
592 } 592 }
593 593
594 return clkr->val; 594 return clkr->val;
@@ -708,7 +708,7 @@ static u32 omap2_clksel_get_src_field(void __iomem **src_addr,
708 return 0; 708 return 0;
709 709
710 for (clkr = clks->rates; clkr->div; clkr++) { 710 for (clkr = clks->rates; clkr->div; clkr++) {
711 if (clkr->flags & (cpu_mask | DEFAULT_RATE)) 711 if (clkr->flags & cpu_mask && clkr->flags & DEFAULT_RATE)
712 break; /* Found the default rate for this platform */ 712 break; /* Found the default rate for this platform */
713 } 713 }
714 714
@@ -746,7 +746,7 @@ int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent)
746 return -EINVAL; 746 return -EINVAL;
747 747
748 if (clk->usecount > 0) 748 if (clk->usecount > 0)
749 _omap2_clk_disable(clk); 749 omap2_clk_disable(clk);
750 750
751 /* Set new source value (previous dividers if any in effect) */ 751 /* Set new source value (previous dividers if any in effect) */
752 reg_val = __raw_readl(src_addr) & ~field_mask; 752 reg_val = __raw_readl(src_addr) & ~field_mask;
@@ -759,11 +759,11 @@ int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent)
759 wmb(); 759 wmb();
760 } 760 }
761 761
762 if (clk->usecount > 0)
763 _omap2_clk_enable(clk);
764
765 clk->parent = new_parent; 762 clk->parent = new_parent;
766 763
764 if (clk->usecount > 0)
765 omap2_clk_enable(clk);
766
767 /* CLKSEL clocks follow their parents' rates, divided by a divisor */ 767 /* CLKSEL clocks follow their parents' rates, divided by a divisor */
768 clk->rate = new_parent->rate; 768 clk->rate = new_parent->rate;
769 769
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 9d7216ff6c9f..ce03fa750775 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -421,6 +421,7 @@ void __init omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
421 int nr_controllers) 421 int nr_controllers)
422{ 422{
423 int i; 423 int i;
424 char *name;
424 425
425 for (i = 0; i < nr_controllers; i++) { 426 for (i = 0; i < nr_controllers; i++) {
426 unsigned long base, size; 427 unsigned long base, size;
@@ -450,12 +451,14 @@ void __init omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
450 continue; 451 continue;
451 } 452 }
452 453
453 if (cpu_is_omap2420()) 454 if (cpu_is_omap2420()) {
454 size = OMAP2420_MMC_SIZE; 455 size = OMAP2420_MMC_SIZE;
455 else 456 name = "mmci-omap";
457 } else {
456 size = HSMMC_SIZE; 458 size = HSMMC_SIZE;
457 459 name = "mmci-omap-hs";
458 omap_mmc_add(i, base, size, irq, mmc_data[i]); 460 }
461 omap_mmc_add(name, i, base, size, irq, mmc_data[i]);
459 }; 462 };
460} 463}
461 464
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index b0f8e7d62798..b52a02fc7cd6 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -172,9 +172,13 @@ void __init omap34xx_check_revision(void)
172 omap_revision = OMAP3430_REV_ES3_0; 172 omap_revision = OMAP3430_REV_ES3_0;
173 rev_name = "ES3.0"; 173 rev_name = "ES3.0";
174 break; 174 break;
175 case 4:
176 omap_revision = OMAP3430_REV_ES3_1;
177 rev_name = "ES3.1";
178 break;
175 default: 179 default:
176 /* Use the latest known revision as default */ 180 /* Use the latest known revision as default */
177 omap_revision = OMAP3430_REV_ES3_0; 181 omap_revision = OMAP3430_REV_ES3_1;
178 rev_name = "Unknown revision\n"; 182 rev_name = "Unknown revision\n";
179 } 183 }
180 } 184 }
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
index 636e2821af7d..9ba20d985dda 100644
--- a/arch/arm/mach-omap2/irq.c
+++ b/arch/arm/mach-omap2/irq.c
@@ -134,6 +134,7 @@ static struct irq_chip omap_irq_chip = {
134 .ack = omap_mask_ack_irq, 134 .ack = omap_mask_ack_irq,
135 .mask = omap_mask_irq, 135 .mask = omap_mask_irq,
136 .unmask = omap_unmask_irq, 136 .unmask = omap_unmask_irq,
137 .disable = omap_mask_irq,
137}; 138};
138 139
139static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank) 140static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank)
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c
index acdc709901cd..a9e631fc1134 100644
--- a/arch/arm/mach-omap2/mcbsp.c
+++ b/arch/arm/mach-omap2/mcbsp.c
@@ -17,112 +17,14 @@
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19 19
20#include <mach/irqs.h>
20#include <mach/dma.h> 21#include <mach/dma.h>
21#include <mach/irqs.h> 22#include <mach/irqs.h>
22#include <mach/mux.h> 23#include <mach/mux.h>
23#include <mach/cpu.h> 24#include <mach/cpu.h>
24#include <mach/mcbsp.h> 25#include <mach/mcbsp.h>
25 26
26struct mcbsp_internal_clk { 27const char *clk_names[] = { "mcbsp_ick", "mcbsp_fck" };
27 struct clk clk;
28 struct clk **childs;
29 int n_childs;
30};
31
32#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
33static void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk)
34{
35 const char *clk_names[] = { "mcbsp_ick", "mcbsp_fck" };
36 int i;
37
38 mclk->n_childs = ARRAY_SIZE(clk_names);
39 mclk->childs = kzalloc(mclk->n_childs * sizeof(struct clk *),
40 GFP_KERNEL);
41
42 for (i = 0; i < mclk->n_childs; i++) {
43 /* We fake a platform device to get correct device id */
44 struct platform_device pdev;
45
46 pdev.dev.bus = &platform_bus_type;
47 pdev.id = mclk->clk.id;
48 mclk->childs[i] = clk_get(&pdev.dev, clk_names[i]);
49 if (IS_ERR(mclk->childs[i]))
50 printk(KERN_ERR "Could not get clock %s (%d).\n",
51 clk_names[i], mclk->clk.id);
52 }
53}
54
55static int omap_mcbsp_clk_enable(struct clk *clk)
56{
57 struct mcbsp_internal_clk *mclk = container_of(clk,
58 struct mcbsp_internal_clk, clk);
59 int i;
60
61 for (i = 0; i < mclk->n_childs; i++)
62 clk_enable(mclk->childs[i]);
63 return 0;
64}
65
66static void omap_mcbsp_clk_disable(struct clk *clk)
67{
68 struct mcbsp_internal_clk *mclk = container_of(clk,
69 struct mcbsp_internal_clk, clk);
70 int i;
71
72 for (i = 0; i < mclk->n_childs; i++)
73 clk_disable(mclk->childs[i]);
74}
75
76static struct mcbsp_internal_clk omap_mcbsp_clks[] = {
77 {
78 .clk = {
79 .name = "mcbsp_clk",
80 .id = 1,
81 .enable = omap_mcbsp_clk_enable,
82 .disable = omap_mcbsp_clk_disable,
83 },
84 },
85 {
86 .clk = {
87 .name = "mcbsp_clk",
88 .id = 2,
89 .enable = omap_mcbsp_clk_enable,
90 .disable = omap_mcbsp_clk_disable,
91 },
92 },
93 {
94 .clk = {
95 .name = "mcbsp_clk",
96 .id = 3,
97 .enable = omap_mcbsp_clk_enable,
98 .disable = omap_mcbsp_clk_disable,
99 },
100 },
101 {
102 .clk = {
103 .name = "mcbsp_clk",
104 .id = 4,
105 .enable = omap_mcbsp_clk_enable,
106 .disable = omap_mcbsp_clk_disable,
107 },
108 },
109 {
110 .clk = {
111 .name = "mcbsp_clk",
112 .id = 5,
113 .enable = omap_mcbsp_clk_enable,
114 .disable = omap_mcbsp_clk_disable,
115 },
116 },
117};
118
119#define omap_mcbsp_clks_size ARRAY_SIZE(omap_mcbsp_clks)
120#else
121#define omap_mcbsp_clks_size 0
122static struct mcbsp_internal_clk __initdata *omap_mcbsp_clks;
123static inline void omap_mcbsp_clk_init(struct clk *clk)
124{ }
125#endif
126 28
127static void omap2_mcbsp2_mux_setup(void) 29static void omap2_mcbsp2_mux_setup(void)
128{ 30{
@@ -155,7 +57,8 @@ static struct omap_mcbsp_platform_data omap2420_mcbsp_pdata[] = {
155 .rx_irq = INT_24XX_MCBSP1_IRQ_RX, 57 .rx_irq = INT_24XX_MCBSP1_IRQ_RX,
156 .tx_irq = INT_24XX_MCBSP1_IRQ_TX, 58 .tx_irq = INT_24XX_MCBSP1_IRQ_TX,
157 .ops = &omap2_mcbsp_ops, 59 .ops = &omap2_mcbsp_ops,
158 .clk_name = "mcbsp_clk", 60 .clk_names = clk_names,
61 .num_clks = 2,
159 }, 62 },
160 { 63 {
161 .phys_base = OMAP24XX_MCBSP2_BASE, 64 .phys_base = OMAP24XX_MCBSP2_BASE,
@@ -164,7 +67,8 @@ static struct omap_mcbsp_platform_data omap2420_mcbsp_pdata[] = {
164 .rx_irq = INT_24XX_MCBSP2_IRQ_RX, 67 .rx_irq = INT_24XX_MCBSP2_IRQ_RX,
165 .tx_irq = INT_24XX_MCBSP2_IRQ_TX, 68 .tx_irq = INT_24XX_MCBSP2_IRQ_TX,
166 .ops = &omap2_mcbsp_ops, 69 .ops = &omap2_mcbsp_ops,
167 .clk_name = "mcbsp_clk", 70 .clk_names = clk_names,
71 .num_clks = 2,
168 }, 72 },
169}; 73};
170#define OMAP2420_MCBSP_PDATA_SZ ARRAY_SIZE(omap2420_mcbsp_pdata) 74#define OMAP2420_MCBSP_PDATA_SZ ARRAY_SIZE(omap2420_mcbsp_pdata)
@@ -182,7 +86,8 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
182 .rx_irq = INT_24XX_MCBSP1_IRQ_RX, 86 .rx_irq = INT_24XX_MCBSP1_IRQ_RX,
183 .tx_irq = INT_24XX_MCBSP1_IRQ_TX, 87 .tx_irq = INT_24XX_MCBSP1_IRQ_TX,
184 .ops = &omap2_mcbsp_ops, 88 .ops = &omap2_mcbsp_ops,
185 .clk_name = "mcbsp_clk", 89 .clk_names = clk_names,
90 .num_clks = 2,
186 }, 91 },
187 { 92 {
188 .phys_base = OMAP24XX_MCBSP2_BASE, 93 .phys_base = OMAP24XX_MCBSP2_BASE,
@@ -191,7 +96,8 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
191 .rx_irq = INT_24XX_MCBSP2_IRQ_RX, 96 .rx_irq = INT_24XX_MCBSP2_IRQ_RX,
192 .tx_irq = INT_24XX_MCBSP2_IRQ_TX, 97 .tx_irq = INT_24XX_MCBSP2_IRQ_TX,
193 .ops = &omap2_mcbsp_ops, 98 .ops = &omap2_mcbsp_ops,
194 .clk_name = "mcbsp_clk", 99 .clk_names = clk_names,
100 .num_clks = 2,
195 }, 101 },
196 { 102 {
197 .phys_base = OMAP2430_MCBSP3_BASE, 103 .phys_base = OMAP2430_MCBSP3_BASE,
@@ -200,7 +106,8 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
200 .rx_irq = INT_24XX_MCBSP3_IRQ_RX, 106 .rx_irq = INT_24XX_MCBSP3_IRQ_RX,
201 .tx_irq = INT_24XX_MCBSP3_IRQ_TX, 107 .tx_irq = INT_24XX_MCBSP3_IRQ_TX,
202 .ops = &omap2_mcbsp_ops, 108 .ops = &omap2_mcbsp_ops,
203 .clk_name = "mcbsp_clk", 109 .clk_names = clk_names,
110 .num_clks = 2,
204 }, 111 },
205 { 112 {
206 .phys_base = OMAP2430_MCBSP4_BASE, 113 .phys_base = OMAP2430_MCBSP4_BASE,
@@ -209,7 +116,8 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
209 .rx_irq = INT_24XX_MCBSP4_IRQ_RX, 116 .rx_irq = INT_24XX_MCBSP4_IRQ_RX,
210 .tx_irq = INT_24XX_MCBSP4_IRQ_TX, 117 .tx_irq = INT_24XX_MCBSP4_IRQ_TX,
211 .ops = &omap2_mcbsp_ops, 118 .ops = &omap2_mcbsp_ops,
212 .clk_name = "mcbsp_clk", 119 .clk_names = clk_names,
120 .num_clks = 2,
213 }, 121 },
214 { 122 {
215 .phys_base = OMAP2430_MCBSP5_BASE, 123 .phys_base = OMAP2430_MCBSP5_BASE,
@@ -218,7 +126,8 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
218 .rx_irq = INT_24XX_MCBSP5_IRQ_RX, 126 .rx_irq = INT_24XX_MCBSP5_IRQ_RX,
219 .tx_irq = INT_24XX_MCBSP5_IRQ_TX, 127 .tx_irq = INT_24XX_MCBSP5_IRQ_TX,
220 .ops = &omap2_mcbsp_ops, 128 .ops = &omap2_mcbsp_ops,
221 .clk_name = "mcbsp_clk", 129 .clk_names = clk_names,
130 .num_clks = 2,
222 }, 131 },
223}; 132};
224#define OMAP2430_MCBSP_PDATA_SZ ARRAY_SIZE(omap2430_mcbsp_pdata) 133#define OMAP2430_MCBSP_PDATA_SZ ARRAY_SIZE(omap2430_mcbsp_pdata)
@@ -236,7 +145,8 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
236 .rx_irq = INT_24XX_MCBSP1_IRQ_RX, 145 .rx_irq = INT_24XX_MCBSP1_IRQ_RX,
237 .tx_irq = INT_24XX_MCBSP1_IRQ_TX, 146 .tx_irq = INT_24XX_MCBSP1_IRQ_TX,
238 .ops = &omap2_mcbsp_ops, 147 .ops = &omap2_mcbsp_ops,
239 .clk_name = "mcbsp_clk", 148 .clk_names = clk_names,
149 .num_clks = 2,
240 }, 150 },
241 { 151 {
242 .phys_base = OMAP34XX_MCBSP2_BASE, 152 .phys_base = OMAP34XX_MCBSP2_BASE,
@@ -245,7 +155,8 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
245 .rx_irq = INT_24XX_MCBSP2_IRQ_RX, 155 .rx_irq = INT_24XX_MCBSP2_IRQ_RX,
246 .tx_irq = INT_24XX_MCBSP2_IRQ_TX, 156 .tx_irq = INT_24XX_MCBSP2_IRQ_TX,
247 .ops = &omap2_mcbsp_ops, 157 .ops = &omap2_mcbsp_ops,
248 .clk_name = "mcbsp_clk", 158 .clk_names = clk_names,
159 .num_clks = 2,
249 }, 160 },
250 { 161 {
251 .phys_base = OMAP34XX_MCBSP3_BASE, 162 .phys_base = OMAP34XX_MCBSP3_BASE,
@@ -254,7 +165,8 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
254 .rx_irq = INT_24XX_MCBSP3_IRQ_RX, 165 .rx_irq = INT_24XX_MCBSP3_IRQ_RX,
255 .tx_irq = INT_24XX_MCBSP3_IRQ_TX, 166 .tx_irq = INT_24XX_MCBSP3_IRQ_TX,
256 .ops = &omap2_mcbsp_ops, 167 .ops = &omap2_mcbsp_ops,
257 .clk_name = "mcbsp_clk", 168 .clk_names = clk_names,
169 .num_clks = 2,
258 }, 170 },
259 { 171 {
260 .phys_base = OMAP34XX_MCBSP4_BASE, 172 .phys_base = OMAP34XX_MCBSP4_BASE,
@@ -263,7 +175,8 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
263 .rx_irq = INT_24XX_MCBSP4_IRQ_RX, 175 .rx_irq = INT_24XX_MCBSP4_IRQ_RX,
264 .tx_irq = INT_24XX_MCBSP4_IRQ_TX, 176 .tx_irq = INT_24XX_MCBSP4_IRQ_TX,
265 .ops = &omap2_mcbsp_ops, 177 .ops = &omap2_mcbsp_ops,
266 .clk_name = "mcbsp_clk", 178 .clk_names = clk_names,
179 .num_clks = 2,
267 }, 180 },
268 { 181 {
269 .phys_base = OMAP34XX_MCBSP5_BASE, 182 .phys_base = OMAP34XX_MCBSP5_BASE,
@@ -272,7 +185,8 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
272 .rx_irq = INT_24XX_MCBSP5_IRQ_RX, 185 .rx_irq = INT_24XX_MCBSP5_IRQ_RX,
273 .tx_irq = INT_24XX_MCBSP5_IRQ_TX, 186 .tx_irq = INT_24XX_MCBSP5_IRQ_TX,
274 .ops = &omap2_mcbsp_ops, 187 .ops = &omap2_mcbsp_ops,
275 .clk_name = "mcbsp_clk", 188 .clk_names = clk_names,
189 .num_clks = 2,
276 }, 190 },
277}; 191};
278#define OMAP34XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap34xx_mcbsp_pdata) 192#define OMAP34XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap34xx_mcbsp_pdata)
@@ -283,14 +197,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
283 197
284static int __init omap2_mcbsp_init(void) 198static int __init omap2_mcbsp_init(void)
285{ 199{
286 int i;
287
288 for (i = 0; i < omap_mcbsp_clks_size; i++) {
289 /* Once we call clk_get inside init, we do not register it */
290 omap_mcbsp_clk_init(&omap_mcbsp_clks[i]);
291 clk_register(&omap_mcbsp_clks[i].clk);
292 }
293
294 if (cpu_is_omap2420()) 200 if (cpu_is_omap2420())
295 omap_mcbsp_count = OMAP2420_MCBSP_PDATA_SZ; 201 omap_mcbsp_count = OMAP2420_MCBSP_PDATA_SZ;
296 if (cpu_is_omap2430()) 202 if (cpu_is_omap2430())
diff --git a/arch/arm/mach-omap2/sleep24xx.S b/arch/arm/mach-omap2/sleep24xx.S
index 43336b93b21c..bf9e96105e11 100644
--- a/arch/arm/mach-omap2/sleep24xx.S
+++ b/arch/arm/mach-omap2/sleep24xx.S
@@ -93,9 +93,8 @@ ENTRY(omap24xx_cpu_suspend)
93 orr r4, r4, #0x40 @ enable self refresh on idle req 93 orr r4, r4, #0x40 @ enable self refresh on idle req
94 mov r5, #0x2000 @ set delay (DPLL relock + DLL relock) 94 mov r5, #0x2000 @ set delay (DPLL relock + DLL relock)
95 str r4, [r2] @ make it so 95 str r4, [r2] @ make it so
96 mov r2, #0
97 nop 96 nop
98 mcr p15, 0, r2, c7, c0, 4 @ wait for interrupt 97 mcr p15, 0, r3, c7, c0, 4 @ wait for interrupt
99 nop 98 nop
100loop: 99loop:
101 subs r5, r5, #0x1 @ awake, wait just a bit 100 subs r5, r5, #0x1 @ awake, wait just a bit
diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c
index ae6036300f60..9fc13a2cc3f4 100644
--- a/arch/arm/mach-omap2/timer-gp.c
+++ b/arch/arm/mach-omap2/timer-gp.c
@@ -118,7 +118,8 @@ static void __init omap2_gp_clockevent_init(void)
118 clockevent_gpt.max_delta_ns = 118 clockevent_gpt.max_delta_ns =
119 clockevent_delta2ns(0xffffffff, &clockevent_gpt); 119 clockevent_delta2ns(0xffffffff, &clockevent_gpt);
120 clockevent_gpt.min_delta_ns = 120 clockevent_gpt.min_delta_ns =
121 clockevent_delta2ns(1, &clockevent_gpt); 121 clockevent_delta2ns(3, &clockevent_gpt);
122 /* Timer internal resynch latency. */
122 123
123 clockevent_gpt.cpumask = cpumask_of(0); 124 clockevent_gpt.cpumask = cpumask_of(0);
124 clockevents_register_device(&clockevent_gpt); 125 clockevents_register_device(&clockevent_gpt);
diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c
index 0caae43301e5..e03f7b45cb0d 100644
--- a/arch/arm/mach-orion5x/irq.c
+++ b/arch/arm/mach-orion5x/irq.c
@@ -44,7 +44,7 @@ void __init orion5x_init_irq(void)
44 * User can use set_type() if he wants to use edge types handlers. 44 * User can use set_type() if he wants to use edge types handlers.
45 */ 45 */
46 for (i = IRQ_ORION5X_GPIO_START; i < NR_IRQS; i++) { 46 for (i = IRQ_ORION5X_GPIO_START; i < NR_IRQS; i++) {
47 set_irq_chip(i, &orion_gpio_irq_level_chip); 47 set_irq_chip(i, &orion_gpio_irq_chip);
48 set_irq_handler(i, handle_level_irq); 48 set_irq_handler(i, handle_level_irq);
49 irq_desc[i].status |= IRQ_LEVEL; 49 irq_desc[i].status |= IRQ_LEVEL;
50 set_irq_flags(i, IRQF_VALID); 50 set_irq_flags(i, IRQF_VALID);
diff --git a/arch/arm/mach-pxa/dma.c b/arch/arm/mach-pxa/dma.c
index b1514fb20d3a..7de17fc5d54b 100644
--- a/arch/arm/mach-pxa/dma.c
+++ b/arch/arm/mach-pxa/dma.c
@@ -121,20 +121,22 @@ int __init pxa_init_dma(int num_ch)
121 if (dma_channels == NULL) 121 if (dma_channels == NULL)
122 return -ENOMEM; 122 return -ENOMEM;
123 123
124 ret = request_irq(IRQ_DMA, dma_irq_handler, IRQF_DISABLED, "DMA", NULL);
125 if (ret) {
126 printk (KERN_CRIT "Wow! Can't register IRQ for DMA\n");
127 kfree(dma_channels);
128 return ret;
129 }
130
131 /* dma channel priorities on pxa2xx processors: 124 /* dma channel priorities on pxa2xx processors:
132 * ch 0 - 3, 16 - 19 <--> (0) DMA_PRIO_HIGH 125 * ch 0 - 3, 16 - 19 <--> (0) DMA_PRIO_HIGH
133 * ch 4 - 7, 20 - 23 <--> (1) DMA_PRIO_MEDIUM 126 * ch 4 - 7, 20 - 23 <--> (1) DMA_PRIO_MEDIUM
134 * ch 8 - 15, 24 - 31 <--> (2) DMA_PRIO_LOW 127 * ch 8 - 15, 24 - 31 <--> (2) DMA_PRIO_LOW
135 */ 128 */
136 for (i = 0; i < num_ch; i++) 129 for (i = 0; i < num_ch; i++) {
130 DCSR(i) = 0;
137 dma_channels[i].prio = min((i & 0xf) >> 2, DMA_PRIO_LOW); 131 dma_channels[i].prio = min((i & 0xf) >> 2, DMA_PRIO_LOW);
132 }
133
134 ret = request_irq(IRQ_DMA, dma_irq_handler, IRQF_DISABLED, "DMA", NULL);
135 if (ret) {
136 printk (KERN_CRIT "Wow! Can't register IRQ for DMA\n");
137 kfree(dma_channels);
138 return ret;
139 }
138 140
139 num_dma_channels = num_ch; 141 num_dma_channels = num_ch;
140 return 0; 142 return 0;
diff --git a/arch/arm/mach-pxa/include/mach/regs-ac97.h b/arch/arm/mach-pxa/include/mach/regs-ac97.h
index e41b9d202b8c..b8d14bd9ae59 100644
--- a/arch/arm/mach-pxa/include/mach/regs-ac97.h
+++ b/arch/arm/mach-pxa/include/mach/regs-ac97.h
@@ -1,6 +1,8 @@
1#ifndef __ASM_ARCH_REGS_AC97_H 1#ifndef __ASM_ARCH_REGS_AC97_H
2#define __ASM_ARCH_REGS_AC97_H 2#define __ASM_ARCH_REGS_AC97_H
3 3
4#include <mach/hardware.h>
5
4/* 6/*
5 * AC97 Controller registers 7 * AC97 Controller registers
6 */ 8 */
diff --git a/arch/arm/mach-pxa/include/mach/regs-ssp.h b/arch/arm/mach-pxa/include/mach/regs-ssp.h
index 3c04cde2cf1f..cf31986f6f05 100644
--- a/arch/arm/mach-pxa/include/mach/regs-ssp.h
+++ b/arch/arm/mach-pxa/include/mach/regs-ssp.h
@@ -41,6 +41,9 @@
41#elif defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx) 41#elif defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
42#define SSCR0_SCR (0x000fff00) /* Serial Clock Rate (mask) */ 42#define SSCR0_SCR (0x000fff00) /* Serial Clock Rate (mask) */
43#define SSCR0_SerClkDiv(x) (((x) - 1) << 8) /* Divisor [1..4096] */ 43#define SSCR0_SerClkDiv(x) (((x) - 1) << 8) /* Divisor [1..4096] */
44#endif
45
46#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
44#define SSCR0_EDSS (1 << 20) /* Extended data size select */ 47#define SSCR0_EDSS (1 << 20) /* Extended data size select */
45#define SSCR0_NCS (1 << 21) /* Network clock select */ 48#define SSCR0_NCS (1 << 21) /* Network clock select */
46#define SSCR0_RIM (1 << 22) /* Receive FIFO overrrun interrupt mask */ 49#define SSCR0_RIM (1 << 22) /* Receive FIFO overrrun interrupt mask */
diff --git a/arch/arm/mach-pxa/pxa300.c b/arch/arm/mach-pxa/pxa300.c
index f735e58e6669..83fb609b6eb7 100644
--- a/arch/arm/mach-pxa/pxa300.c
+++ b/arch/arm/mach-pxa/pxa300.c
@@ -88,13 +88,13 @@ static struct pxa3xx_mfp_addr_map pxa310_mfp_addr_map[] __initdata = {
88static DEFINE_PXA3_CKEN(common_nand, NAND, 156000000, 0); 88static DEFINE_PXA3_CKEN(common_nand, NAND, 156000000, 0);
89 89
90static struct clk_lookup common_clkregs[] = { 90static struct clk_lookup common_clkregs[] = {
91 INIT_CLKREG(&clk_common_nand, "pxa3xx-nand", "NANDCLK"), 91 INIT_CLKREG(&clk_common_nand, "pxa3xx-nand", NULL),
92}; 92};
93 93
94static DEFINE_PXA3_CKEN(pxa310_mmc3, MMC3, 19500000, 0); 94static DEFINE_PXA3_CKEN(pxa310_mmc3, MMC3, 19500000, 0);
95 95
96static struct clk_lookup pxa310_clkregs[] = { 96static struct clk_lookup pxa310_clkregs[] = {
97 INIT_CLKREG(&clk_pxa310_mmc3, "pxa2xx-mci.2", "MMCCLK"), 97 INIT_CLKREG(&clk_pxa310_mmc3, "pxa2xx-mci.2", NULL),
98}; 98};
99 99
100static int __init pxa300_init(void) 100static int __init pxa300_init(void)
diff --git a/arch/arm/mach-pxa/pxa320.c b/arch/arm/mach-pxa/pxa320.c
index effe408c186f..36f066196fa2 100644
--- a/arch/arm/mach-pxa/pxa320.c
+++ b/arch/arm/mach-pxa/pxa320.c
@@ -83,7 +83,7 @@ static struct pxa3xx_mfp_addr_map pxa320_mfp_addr_map[] __initdata = {
83static DEFINE_PXA3_CKEN(pxa320_nand, NAND, 104000000, 0); 83static DEFINE_PXA3_CKEN(pxa320_nand, NAND, 104000000, 0);
84 84
85static struct clk_lookup pxa320_clkregs[] = { 85static struct clk_lookup pxa320_clkregs[] = {
86 INIT_CLKREG(&clk_pxa320_nand, "pxa3xx-nand", "NANDCLK"), 86 INIT_CLKREG(&clk_pxa320_nand, "pxa3xx-nand", NULL),
87}; 87};
88 88
89static int __init pxa320_init(void) 89static int __init pxa320_init(void)
diff --git a/arch/arm/mach-rpc/riscpc.c b/arch/arm/mach-rpc/riscpc.c
index e88d417736af..c7fc01e9d1f6 100644
--- a/arch/arm/mach-rpc/riscpc.c
+++ b/arch/arm/mach-rpc/riscpc.c
@@ -19,6 +19,7 @@
19#include <linux/serial_8250.h> 19#include <linux/serial_8250.h>
20#include <linux/ata_platform.h> 20#include <linux/ata_platform.h>
21#include <linux/io.h> 21#include <linux/io.h>
22#include <linux/i2c.h>
22 23
23#include <asm/elf.h> 24#include <asm/elf.h>
24#include <asm/mach-types.h> 25#include <asm/mach-types.h>
@@ -201,8 +202,13 @@ static struct platform_device *devs[] __initdata = {
201 &pata_device, 202 &pata_device,
202}; 203};
203 204
205static struct i2c_board_info i2c_rtc = {
206 I2C_BOARD_INFO("pcf8583", 0x50)
207};
208
204static int __init rpc_init(void) 209static int __init rpc_init(void)
205{ 210{
211 i2c_register_board_info(0, &i2c_rtc, 1);
206 return platform_add_devices(devs, ARRAY_SIZE(devs)); 212 return platform_add_devices(devs, ARRAY_SIZE(devs));
207} 213}
208 214
diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c
index c1fbd5b5f9c4..23cfdd593954 100644
--- a/arch/arm/mach-sa1100/generic.c
+++ b/arch/arm/mach-sa1100/generic.c
@@ -289,7 +289,7 @@ static struct platform_device sa11x0pcmcia_device = {
289}; 289};
290 290
291static struct platform_device sa11x0mtd_device = { 291static struct platform_device sa11x0mtd_device = {
292 .name = "flash", 292 .name = "sa1100-mtd",
293 .id = -1, 293 .id = -1,
294}; 294};
295 295
diff --git a/arch/arm/mach-w90x900/mach-w90p910evb.c b/arch/arm/mach-w90x900/mach-w90p910evb.c
index 9307a2475438..9ebc93f48530 100644
--- a/arch/arm/mach-w90x900/mach-w90p910evb.c
+++ b/arch/arm/mach-w90x900/mach-w90p910evb.c
@@ -29,6 +29,7 @@
29#include <asm/mach-types.h> 29#include <asm/mach-types.h>
30 30
31#include <mach/regs-serial.h> 31#include <mach/regs-serial.h>
32#include <mach/map.h>
32 33
33#include "cpu.h" 34#include "cpu.h"
34 35
diff --git a/arch/arm/mach-w90x900/time.c b/arch/arm/mach-w90x900/time.c
index 3a69e381f316..bcc838f6b393 100644
--- a/arch/arm/mach-w90x900/time.c
+++ b/arch/arm/mach-w90x900/time.c
@@ -28,7 +28,6 @@
28#include <asm/mach/irq.h> 28#include <asm/mach/irq.h>
29#include <asm/mach/time.h> 29#include <asm/mach/time.h>
30 30
31#include <mach/system.h>
32#include <mach/map.h> 31#include <mach/map.h>
33#include <mach/regs-timer.h> 32#include <mach/regs-timer.h>
34 33
diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c
index bdb5fd983b15..1601698b9800 100644
--- a/arch/arm/mm/copypage-v4mc.c
+++ b/arch/arm/mm/copypage-v4mc.c
@@ -68,7 +68,7 @@ mc_copy_user_page(void *from, void *to)
68 : "r" (from), "r" (to), "I" (PAGE_SIZE / 64)); 68 : "r" (from), "r" (to), "I" (PAGE_SIZE / 64));
69} 69}
70 70
71void v4_mc_copy_user_highpage(struct page *from, struct page *to, 71void v4_mc_copy_user_highpage(struct page *to, struct page *from,
72 unsigned long vaddr) 72 unsigned long vaddr)
73{ 73{
74 void *kto = kmap_atomic(to, KM_USER1); 74 void *kto = kmap_atomic(to, KM_USER1);
diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c
index 81d0b8772de3..bc0099d5ae85 100644
--- a/arch/arm/mm/fault-armv.c
+++ b/arch/arm/mm/fault-armv.c
@@ -66,7 +66,10 @@ static int adjust_pte(struct vm_area_struct *vma, unsigned long address)
66 * fault (ie, is old), we can safely ignore any issues. 66 * fault (ie, is old), we can safely ignore any issues.
67 */ 67 */
68 if (ret && (pte_val(entry) & L_PTE_MT_MASK) != shared_pte_mask) { 68 if (ret && (pte_val(entry) & L_PTE_MT_MASK) != shared_pte_mask) {
69 flush_cache_page(vma, address, pte_pfn(entry)); 69 unsigned long pfn = pte_pfn(entry);
70 flush_cache_page(vma, address, pfn);
71 outer_flush_range((pfn << PAGE_SHIFT),
72 (pfn << PAGE_SHIFT) + PAGE_SIZE);
70 pte_val(entry) &= ~L_PTE_MT_MASK; 73 pte_val(entry) &= ~L_PTE_MT_MASK;
71 pte_val(entry) |= shared_pte_mask; 74 pte_val(entry) |= shared_pte_mask;
72 set_pte_at(vma->vm_mm, address, pte, entry); 75 set_pte_at(vma->vm_mm, address, pte, entry);
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index 18373f73f2fc..9f88dd3be601 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -138,7 +138,7 @@ void __check_kvm_seq(struct mm_struct *mm)
138 */ 138 */
139static void unmap_area_sections(unsigned long virt, unsigned long size) 139static void unmap_area_sections(unsigned long virt, unsigned long size)
140{ 140{
141 unsigned long addr = virt, end = virt + (size & ~SZ_1M); 141 unsigned long addr = virt, end = virt + (size & ~(SZ_1M - 1));
142 pgd_t *pgd; 142 pgd_t *pgd;
143 143
144 flush_cache_vunmap(addr, end); 144 flush_cache_vunmap(addr, end);
@@ -337,10 +337,7 @@ void __iounmap(volatile void __iomem *io_addr)
337 void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr); 337 void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr);
338#ifndef CONFIG_SMP 338#ifndef CONFIG_SMP
339 struct vm_struct **p, *tmp; 339 struct vm_struct **p, *tmp;
340#endif
341 unsigned int section_mapping = 0;
342 340
343#ifndef CONFIG_SMP
344 /* 341 /*
345 * If this is a section based mapping we need to handle it 342 * If this is a section based mapping we need to handle it
346 * specially as the VM subsystem does not know how to handle 343 * specially as the VM subsystem does not know how to handle
@@ -352,11 +349,8 @@ void __iounmap(volatile void __iomem *io_addr)
352 for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) { 349 for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) {
353 if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) { 350 if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) {
354 if (tmp->flags & VM_ARM_SECTION_MAPPING) { 351 if (tmp->flags & VM_ARM_SECTION_MAPPING) {
355 *p = tmp->next;
356 unmap_area_sections((unsigned long)tmp->addr, 352 unmap_area_sections((unsigned long)tmp->addr,
357 tmp->size); 353 tmp->size);
358 kfree(tmp);
359 section_mapping = 1;
360 } 354 }
361 break; 355 break;
362 } 356 }
@@ -364,7 +358,6 @@ void __iounmap(volatile void __iomem *io_addr)
364 write_unlock(&vmlist_lock); 358 write_unlock(&vmlist_lock);
365#endif 359#endif
366 360
367 if (!section_mapping) 361 vunmap(addr);
368 vunmap(addr);
369} 362}
370EXPORT_SYMBOL(__iounmap); 363EXPORT_SYMBOL(__iounmap);
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 9b36c5cb5e9f..d4d082c5c2d4 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -693,7 +693,8 @@ static void __init sanity_check_meminfo(void)
693 * Check whether this memory bank would entirely overlap 693 * Check whether this memory bank would entirely overlap
694 * the vmalloc area. 694 * the vmalloc area.
695 */ 695 */
696 if (__va(bank->start) >= VMALLOC_MIN) { 696 if (__va(bank->start) >= VMALLOC_MIN ||
697 __va(bank->start) < PAGE_OFFSET) {
697 printk(KERN_NOTICE "Ignoring RAM at %.8lx-%.8lx " 698 printk(KERN_NOTICE "Ignoring RAM at %.8lx-%.8lx "
698 "(vmalloc region overlap).\n", 699 "(vmalloc region overlap).\n",
699 bank->start, bank->start + bank->size - 1); 700 bank->start, bank->start + bank->size - 1);
diff --git a/arch/arm/mm/proc-syms.c b/arch/arm/mm/proc-syms.c
index 4ad3bf291ad3..195e48edd8c2 100644
--- a/arch/arm/mm/proc-syms.c
+++ b/arch/arm/mm/proc-syms.c
@@ -27,6 +27,7 @@ EXPORT_SYMBOL(__cpuc_flush_kern_all);
27EXPORT_SYMBOL(__cpuc_flush_user_all); 27EXPORT_SYMBOL(__cpuc_flush_user_all);
28EXPORT_SYMBOL(__cpuc_flush_user_range); 28EXPORT_SYMBOL(__cpuc_flush_user_range);
29EXPORT_SYMBOL(__cpuc_coherent_kern_range); 29EXPORT_SYMBOL(__cpuc_coherent_kern_range);
30EXPORT_SYMBOL(dmac_inv_range); /* because of flush_ioremap_region() */
30#else 31#else
31EXPORT_SYMBOL(cpu_cache); 32EXPORT_SYMBOL(cpu_cache);
32#endif 33#endif
diff --git a/arch/arm/oprofile/op_model_mpcore.c b/arch/arm/oprofile/op_model_mpcore.c
index 6d6bd5899240..853d42bb8682 100644
--- a/arch/arm/oprofile/op_model_mpcore.c
+++ b/arch/arm/oprofile/op_model_mpcore.c
@@ -263,7 +263,7 @@ static void em_route_irq(int irq, unsigned int cpu)
263 const struct cpumask *mask = cpumask_of(cpu); 263 const struct cpumask *mask = cpumask_of(cpu);
264 264
265 spin_lock_irq(&desc->lock); 265 spin_lock_irq(&desc->lock);
266 desc->affinity = *mask; 266 cpumask_copy(desc->affinity, mask);
267 desc->chip->set_affinity(irq, mask); 267 desc->chip->set_affinity(irq, mask);
268 spin_unlock_irq(&desc->lock); 268 spin_unlock_irq(&desc->lock);
269} 269}
diff --git a/arch/arm/plat-mxc/include/mach/ipu.h b/arch/arm/plat-mxc/include/mach/ipu.h
new file mode 100644
index 000000000000..a9221f1cc1a0
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/ipu.h
@@ -0,0 +1,181 @@
1/*
2 * Copyright (C) 2008
3 * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
4 *
5 * Copyright (C) 2005-2007 Freescale Semiconductor, Inc.
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 version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#ifndef _IPU_H_
13#define _IPU_H_
14
15#include <linux/types.h>
16#include <linux/dmaengine.h>
17
18/* IPU DMA Controller channel definitions. */
19enum ipu_channel {
20 IDMAC_IC_0 = 0, /* IC (encoding task) to memory */
21 IDMAC_IC_1 = 1, /* IC (viewfinder task) to memory */
22 IDMAC_ADC_0 = 1,
23 IDMAC_IC_2 = 2,
24 IDMAC_ADC_1 = 2,
25 IDMAC_IC_3 = 3,
26 IDMAC_IC_4 = 4,
27 IDMAC_IC_5 = 5,
28 IDMAC_IC_6 = 6,
29 IDMAC_IC_7 = 7, /* IC (sensor data) to memory */
30 IDMAC_IC_8 = 8,
31 IDMAC_IC_9 = 9,
32 IDMAC_IC_10 = 10,
33 IDMAC_IC_11 = 11,
34 IDMAC_IC_12 = 12,
35 IDMAC_IC_13 = 13,
36 IDMAC_SDC_0 = 14, /* Background synchronous display data */
37 IDMAC_SDC_1 = 15, /* Foreground data (overlay) */
38 IDMAC_SDC_2 = 16,
39 IDMAC_SDC_3 = 17,
40 IDMAC_ADC_2 = 18,
41 IDMAC_ADC_3 = 19,
42 IDMAC_ADC_4 = 20,
43 IDMAC_ADC_5 = 21,
44 IDMAC_ADC_6 = 22,
45 IDMAC_ADC_7 = 23,
46 IDMAC_PF_0 = 24,
47 IDMAC_PF_1 = 25,
48 IDMAC_PF_2 = 26,
49 IDMAC_PF_3 = 27,
50 IDMAC_PF_4 = 28,
51 IDMAC_PF_5 = 29,
52 IDMAC_PF_6 = 30,
53 IDMAC_PF_7 = 31,
54};
55
56/* Order significant! */
57enum ipu_channel_status {
58 IPU_CHANNEL_FREE,
59 IPU_CHANNEL_INITIALIZED,
60 IPU_CHANNEL_READY,
61 IPU_CHANNEL_ENABLED,
62};
63
64#define IPU_CHANNELS_NUM 32
65
66enum pixel_fmt {
67 /* 1 byte */
68 IPU_PIX_FMT_GENERIC,
69 IPU_PIX_FMT_RGB332,
70 IPU_PIX_FMT_YUV420P,
71 IPU_PIX_FMT_YUV422P,
72 IPU_PIX_FMT_YUV420P2,
73 IPU_PIX_FMT_YVU422P,
74 /* 2 bytes */
75 IPU_PIX_FMT_RGB565,
76 IPU_PIX_FMT_RGB666,
77 IPU_PIX_FMT_BGR666,
78 IPU_PIX_FMT_YUYV,
79 IPU_PIX_FMT_UYVY,
80 /* 3 bytes */
81 IPU_PIX_FMT_RGB24,
82 IPU_PIX_FMT_BGR24,
83 /* 4 bytes */
84 IPU_PIX_FMT_GENERIC_32,
85 IPU_PIX_FMT_RGB32,
86 IPU_PIX_FMT_BGR32,
87 IPU_PIX_FMT_ABGR32,
88 IPU_PIX_FMT_BGRA32,
89 IPU_PIX_FMT_RGBA32,
90};
91
92enum ipu_color_space {
93 IPU_COLORSPACE_RGB,
94 IPU_COLORSPACE_YCBCR,
95 IPU_COLORSPACE_YUV
96};
97
98/*
99 * Enumeration of IPU rotation modes
100 */
101enum ipu_rotate_mode {
102 /* Note the enum values correspond to BAM value */
103 IPU_ROTATE_NONE = 0,
104 IPU_ROTATE_VERT_FLIP = 1,
105 IPU_ROTATE_HORIZ_FLIP = 2,
106 IPU_ROTATE_180 = 3,
107 IPU_ROTATE_90_RIGHT = 4,
108 IPU_ROTATE_90_RIGHT_VFLIP = 5,
109 IPU_ROTATE_90_RIGHT_HFLIP = 6,
110 IPU_ROTATE_90_LEFT = 7,
111};
112
113struct ipu_platform_data {
114 unsigned int irq_base;
115};
116
117/*
118 * Enumeration of DI ports for ADC.
119 */
120enum display_port {
121 DISP0,
122 DISP1,
123 DISP2,
124 DISP3
125};
126
127struct idmac_video_param {
128 unsigned short in_width;
129 unsigned short in_height;
130 uint32_t in_pixel_fmt;
131 unsigned short out_width;
132 unsigned short out_height;
133 uint32_t out_pixel_fmt;
134 unsigned short out_stride;
135 bool graphics_combine_en;
136 bool global_alpha_en;
137 bool key_color_en;
138 enum display_port disp;
139 unsigned short out_left;
140 unsigned short out_top;
141};
142
143/*
144 * Union of initialization parameters for a logical channel. So far only video
145 * parameters are used.
146 */
147union ipu_channel_param {
148 struct idmac_video_param video;
149};
150
151struct idmac_tx_desc {
152 struct dma_async_tx_descriptor txd;
153 struct scatterlist *sg; /* scatterlist for this */
154 unsigned int sg_len; /* tx-descriptor. */
155 struct list_head list;
156};
157
158struct idmac_channel {
159 struct dma_chan dma_chan;
160 dma_cookie_t completed; /* last completed cookie */
161 union ipu_channel_param params;
162 enum ipu_channel link; /* input channel, linked to the output */
163 enum ipu_channel_status status;
164 void *client; /* Only one client per channel */
165 unsigned int n_tx_desc;
166 struct idmac_tx_desc *desc; /* allocated tx-descriptors */
167 struct scatterlist *sg[2]; /* scatterlist elements in buffer-0 and -1 */
168 struct list_head free_list; /* free tx-descriptors */
169 struct list_head queue; /* queued tx-descriptors */
170 spinlock_t lock; /* protects sg[0,1], queue */
171 struct mutex chan_mutex; /* protects status, cookie, free_list */
172 bool sec_chan_en;
173 int active_buffer;
174 unsigned int eof_irq;
175 char eof_name[16]; /* EOF IRQ name for request_irq() */
176};
177
178#define to_tx_desc(tx) container_of(tx, struct idmac_tx_desc, txd)
179#define to_idmac_chan(c) container_of(c, struct idmac_channel, dma_chan)
180
181#endif
diff --git a/arch/arm/plat-mxc/include/mach/irqs.h b/arch/arm/plat-mxc/include/mach/irqs.h
index e06d3cb0ee11..c02b8fc2d821 100644
--- a/arch/arm/plat-mxc/include/mach/irqs.h
+++ b/arch/arm/plat-mxc/include/mach/irqs.h
@@ -35,7 +35,15 @@
35#define MXC_BOARD_IRQ_START (MXC_INTERNAL_IRQS + MXC_GPIO_IRQS) 35#define MXC_BOARD_IRQ_START (MXC_INTERNAL_IRQS + MXC_GPIO_IRQS)
36#define MXC_BOARD_IRQS 16 36#define MXC_BOARD_IRQS 16
37 37
38#define NR_IRQS (MXC_BOARD_IRQ_START + MXC_BOARD_IRQS) 38#define MXC_IPU_IRQ_START (MXC_BOARD_IRQ_START + MXC_BOARD_IRQS)
39
40#ifdef CONFIG_MX3_IPU_IRQS
41#define MX3_IPU_IRQS CONFIG_MX3_IPU_IRQS
42#else
43#define MX3_IPU_IRQS 0
44#endif
45
46#define NR_IRQS (MXC_IPU_IRQ_START + MX3_IPU_IRQS)
39 47
40extern void imx_irq_set_priority(unsigned char irq, unsigned char prio); 48extern void imx_irq_set_priority(unsigned char irq, unsigned char prio);
41 49
diff --git a/arch/arm/plat-mxc/include/mach/mmc.h b/arch/arm/plat-mxc/include/mach/mmc.h
new file mode 100644
index 000000000000..de2128dada5c
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/mmc.h
@@ -0,0 +1,36 @@
1#ifndef ASMARM_ARCH_MMC_H
2#define ASMARM_ARCH_MMC_H
3
4#include <linux/mmc/host.h>
5
6struct device;
7
8/* board specific SDHC data, optional.
9 * If not present, a writable card with 3,3V is assumed.
10 */
11struct imxmmc_platform_data {
12 /* Return values for the get_ro callback should be:
13 * 0 for a read/write card
14 * 1 for a read-only card
15 * -ENOSYS when not supported (equal to NULL callback)
16 * or a negative errno value when something bad happened
17 */
18 int (*get_ro)(struct device *);
19
20 /* board specific hook to (de)initialize the SD slot.
21 * The board code can call 'handler' on a card detection
22 * change giving data as argument.
23 */
24 int (*init)(struct device *dev, irq_handler_t handler, void *data);
25 void (*exit)(struct device *dev, void *data);
26
27 /* available voltages. If not given, assume
28 * MMC_VDD_32_33 | MMC_VDD_33_34
29 */
30 unsigned int ocr_avail;
31
32 /* adjust slot voltage */
33 void (*setpower)(struct device *, unsigned int vdd);
34};
35
36#endif
diff --git a/arch/arm/plat-mxc/include/mach/mx3fb.h b/arch/arm/plat-mxc/include/mach/mx3fb.h
new file mode 100644
index 000000000000..e391a76ca87d
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/mx3fb.h
@@ -0,0 +1,38 @@
1/*
2 * Copyright (C) 2008
3 * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
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 version 2 as
7 * published by the Free Software Foundation.
8 */
9
10#ifndef __ASM_ARCH_MX3FB_H__
11#define __ASM_ARCH_MX3FB_H__
12
13#include <linux/device.h>
14#include <linux/fb.h>
15
16/* Proprietary FB_SYNC_ flags */
17#define FB_SYNC_OE_ACT_HIGH 0x80000000
18#define FB_SYNC_CLK_INVERT 0x40000000
19#define FB_SYNC_DATA_INVERT 0x20000000
20#define FB_SYNC_CLK_IDLE_EN 0x10000000
21#define FB_SYNC_SHARP_MODE 0x08000000
22#define FB_SYNC_SWAP_RGB 0x04000000
23#define FB_SYNC_CLK_SEL_EN 0x02000000
24
25/**
26 * struct mx3fb_platform_data - mx3fb platform data
27 *
28 * @dma_dev: pointer to the dma-device, used for dma-slave connection
29 * @mode: pointer to a platform-provided per mxc_register_fb() videomode
30 */
31struct mx3fb_platform_data {
32 struct device *dma_dev;
33 const char *name;
34 const struct fb_videomode *mode;
35 int num_modes;
36};
37
38#endif
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
index ac15c23fd5da..208dbb121f47 100644
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -200,14 +200,15 @@ void omap_mcbsp_register_board_cfg(struct omap_mcbsp_platform_data *config,
200/* 200/*
201 * Register MMC devices. Called from mach-omap1 and mach-omap2 device init. 201 * Register MMC devices. Called from mach-omap1 and mach-omap2 device init.
202 */ 202 */
203int __init omap_mmc_add(int id, unsigned long base, unsigned long size, 203int __init omap_mmc_add(const char *name, int id, unsigned long base,
204 unsigned int irq, struct omap_mmc_platform_data *data) 204 unsigned long size, unsigned int irq,
205 struct omap_mmc_platform_data *data)
205{ 206{
206 struct platform_device *pdev; 207 struct platform_device *pdev;
207 struct resource res[OMAP_MMC_NR_RES]; 208 struct resource res[OMAP_MMC_NR_RES];
208 int ret; 209 int ret;
209 210
210 pdev = platform_device_alloc("mmci-omap", id); 211 pdev = platform_device_alloc(name, id);
211 if (!pdev) 212 if (!pdev)
212 return -ENOMEM; 213 return -ENOMEM;
213 214
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 692d2b495af3..47ec77af4ccb 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -278,14 +278,11 @@ void omap_set_dma_transfer_params(int lch, int data_type, int elem_count,
278 u32 val; 278 u32 val;
279 279
280 val = dma_read(CCR(lch)); 280 val = dma_read(CCR(lch));
281 val &= ~(3 << 19);
282 if (dma_trigger > 63)
283 val |= 1 << 20;
284 if (dma_trigger > 31)
285 val |= 1 << 19;
286 281
287 val &= ~(0x1f); 282 /* DMA_SYNCHRO_CONTROL_UPPER depends on the channel number */
288 val |= (dma_trigger & 0x1f); 283 val &= ~((3 << 19) | 0x1f);
284 val |= (dma_trigger & ~0x1f) << 14;
285 val |= dma_trigger & 0x1f;
289 286
290 if (sync_mode & OMAP_DMA_SYNC_FRAME) 287 if (sync_mode & OMAP_DMA_SYNC_FRAME)
291 val |= 1 << 5; 288 val |= 1 << 5;
@@ -712,6 +709,7 @@ int omap_request_dma(int dev_id, const char *dev_name,
712 chan->dev_name = dev_name; 709 chan->dev_name = dev_name;
713 chan->callback = callback; 710 chan->callback = callback;
714 chan->data = data; 711 chan->data = data;
712 chan->flags = 0;
715 713
716#ifndef CONFIG_ARCH_OMAP1 714#ifndef CONFIG_ARCH_OMAP1
717 if (cpu_class_is_omap2()) { 715 if (cpu_class_is_omap2()) {
@@ -1891,11 +1889,11 @@ static int omap2_dma_handle_ch(int ch)
1891 status = dma_read(CSR(ch)); 1889 status = dma_read(CSR(ch));
1892 } 1890 }
1893 1891
1892 dma_write(status, CSR(ch));
1893
1894 if (likely(dma_chan[ch].callback != NULL)) 1894 if (likely(dma_chan[ch].callback != NULL))
1895 dma_chan[ch].callback(ch, status, dma_chan[ch].data); 1895 dma_chan[ch].callback(ch, status, dma_chan[ch].data);
1896 1896
1897 dma_write(status, CSR(ch));
1898
1899 return 0; 1897 return 0;
1900} 1898}
1901 1899
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 07b6968a7d16..f856a90b264e 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -1789,6 +1789,8 @@ static int dbg_gpio_show(struct seq_file *s, void *unused)
1789/* FIXME for at least omap2, show pullup/pulldown state */ 1789/* FIXME for at least omap2, show pullup/pulldown state */
1790 1790
1791 irqstat = irq_desc[irq].status; 1791 irqstat = irq_desc[irq].status;
1792#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP24XX) || \
1793 defined(CONFIG_ARCH_OMAP34XX)
1792 if (is_in && ((bank->suspend_wakeup & mask) 1794 if (is_in && ((bank->suspend_wakeup & mask)
1793 || irqstat & IRQ_TYPE_SENSE_MASK)) { 1795 || irqstat & IRQ_TYPE_SENSE_MASK)) {
1794 char *trigger = NULL; 1796 char *trigger = NULL;
@@ -1818,6 +1820,7 @@ static int dbg_gpio_show(struct seq_file *s, void *unused)
1818 (bank->suspend_wakeup & mask) 1820 (bank->suspend_wakeup & mask)
1819 ? " wakeup" : ""); 1821 ? " wakeup" : "");
1820 } 1822 }
1823#endif
1821 seq_printf(s, "\n"); 1824 seq_printf(s, "\n");
1822 } 1825 }
1823 1826
diff --git a/arch/arm/plat-omap/include/mach/aic23.h b/arch/arm/plat-omap/include/mach/aic23.h
deleted file mode 100644
index 5ccedac77526..000000000000
--- a/arch/arm/plat-omap/include/mach/aic23.h
+++ /dev/null
@@ -1,116 +0,0 @@
1/*
2 * arch/arm/plat-omap/include/mach/aic23.h
3 *
4 * Hardware definitions for TI TLV320AIC23 audio codec
5 *
6 * Copyright (C) 2002 RidgeRun, Inc.
7 * Author: Steve Johnson
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#ifndef __ASM_ARCH_AIC23_H
31#define __ASM_ARCH_AIC23_H
32
33// Codec TLV320AIC23
34#define LEFT_LINE_VOLUME_ADDR 0x00
35#define RIGHT_LINE_VOLUME_ADDR 0x01
36#define LEFT_CHANNEL_VOLUME_ADDR 0x02
37#define RIGHT_CHANNEL_VOLUME_ADDR 0x03
38#define ANALOG_AUDIO_CONTROL_ADDR 0x04
39#define DIGITAL_AUDIO_CONTROL_ADDR 0x05
40#define POWER_DOWN_CONTROL_ADDR 0x06
41#define DIGITAL_AUDIO_FORMAT_ADDR 0x07
42#define SAMPLE_RATE_CONTROL_ADDR 0x08
43#define DIGITAL_INTERFACE_ACT_ADDR 0x09
44#define RESET_CONTROL_ADDR 0x0F
45
46// Left (right) line input volume control register
47#define LRS_ENABLED 0x0100
48#define LIM_MUTED 0x0080
49#define LIV_DEFAULT 0x0017
50#define LIV_MAX 0x001f
51#define LIV_MIN 0x0000
52
53// Left (right) channel headphone volume control register
54#define LZC_ON 0x0080
55#define LHV_DEFAULT 0x0079
56#define LHV_MAX 0x007f
57#define LHV_MIN 0x0000
58
59// Analog audio path control register
60#define STA_REG(x) ((x)<<6)
61#define STE_ENABLED 0x0020
62#define DAC_SELECTED 0x0010
63#define BYPASS_ON 0x0008
64#define INSEL_MIC 0x0004
65#define MICM_MUTED 0x0002
66#define MICB_20DB 0x0001
67
68// Digital audio path control register
69#define DACM_MUTE 0x0008
70#define DEEMP_32K 0x0002
71#define DEEMP_44K 0x0004
72#define DEEMP_48K 0x0006
73#define ADCHP_ON 0x0001
74
75// Power control down register
76#define DEVICE_POWER_OFF 0x0080
77#define CLK_OFF 0x0040
78#define OSC_OFF 0x0020
79#define OUT_OFF 0x0010
80#define DAC_OFF 0x0008
81#define ADC_OFF 0x0004
82#define MIC_OFF 0x0002
83#define LINE_OFF 0x0001
84
85// Digital audio interface register
86#define MS_MASTER 0x0040
87#define LRSWAP_ON 0x0020
88#define LRP_ON 0x0010
89#define IWL_16 0x0000
90#define IWL_20 0x0004
91#define IWL_24 0x0008
92#define IWL_32 0x000C
93#define FOR_I2S 0x0002
94#define FOR_DSP 0x0003
95
96// Sample rate control register
97#define CLKOUT_HALF 0x0080
98#define CLKIN_HALF 0x0040
99#define BOSR_384fs 0x0002 // BOSR_272fs when in USB mode
100#define USB_CLK_ON 0x0001
101#define SR_MASK 0xf
102#define CLKOUT_SHIFT 7
103#define CLKIN_SHIFT 6
104#define SR_SHIFT 2
105#define BOSR_SHIFT 1
106
107// Digital interface register
108#define ACT_ON 0x0001
109
110#define TLV320AIC23ID1 (0x1a) // cs low
111#define TLV320AIC23ID2 (0x1b) // cs high
112
113void aic23_power_up(void);
114void aic23_power_down(void);
115
116#endif /* __ASM_ARCH_AIC23_H */
diff --git a/arch/arm/plat-omap/include/mach/board-h3.h b/arch/arm/plat-omap/include/mach/board-h3.h
index 14909dc7858a..1888326da7ea 100644
--- a/arch/arm/plat-omap/include/mach/board-h3.h
+++ b/arch/arm/plat-omap/include/mach/board-h3.h
@@ -30,7 +30,9 @@
30/* In OMAP1710 H3 the Ethernet is directly connected to CS1 */ 30/* In OMAP1710 H3 the Ethernet is directly connected to CS1 */
31#define OMAP1710_ETHR_START 0x04000300 31#define OMAP1710_ETHR_START 0x04000300
32 32
33#define H3_TPS_GPIO_BASE (OMAP_MAX_GPIO_LINES + 16 /* MPUIO */)
34# define H3_TPS_GPIO_MMC_PWR_EN (H3_TPS_GPIO_BASE + 4)
35
33extern void h3_mmc_init(void); 36extern void h3_mmc_init(void);
34extern void h3_mmc_slot_cover_handler(void *arg, int state);
35 37
36#endif /* __ASM_ARCH_OMAP_H3_H */ 38#endif /* __ASM_ARCH_OMAP_H3_H */
diff --git a/arch/arm/plat-omap/include/mach/cpu.h b/arch/arm/plat-omap/include/mach/cpu.h
index b2062f1175de..a8e1178a9468 100644
--- a/arch/arm/plat-omap/include/mach/cpu.h
+++ b/arch/arm/plat-omap/include/mach/cpu.h
@@ -339,6 +339,7 @@ IS_OMAP_TYPE(3430, 0x3430)
339#define OMAP3430_REV_ES2_0 0x34301034 339#define OMAP3430_REV_ES2_0 0x34301034
340#define OMAP3430_REV_ES2_1 0x34302034 340#define OMAP3430_REV_ES2_1 0x34302034
341#define OMAP3430_REV_ES3_0 0x34303034 341#define OMAP3430_REV_ES3_0 0x34303034
342#define OMAP3430_REV_ES3_1 0x34304034
342 343
343/* 344/*
344 * omap_chip bits 345 * omap_chip bits
diff --git a/arch/arm/plat-omap/include/mach/gpio.h b/arch/arm/plat-omap/include/mach/gpio.h
index 04e68e88f134..8d9dfe314387 100644
--- a/arch/arm/plat-omap/include/mach/gpio.h
+++ b/arch/arm/plat-omap/include/mach/gpio.h
@@ -87,16 +87,6 @@ extern void omap_set_gpio_debounce_time(int gpio, int enable);
87#include <linux/errno.h> 87#include <linux/errno.h>
88#include <asm-generic/gpio.h> 88#include <asm-generic/gpio.h>
89 89
90static inline int omap_request_gpio(int gpio)
91{
92 return gpio_request(gpio, "FIXME");
93}
94
95static inline void omap_free_gpio(int gpio)
96{
97 gpio_free(gpio);
98}
99
100static inline int gpio_get_value(unsigned gpio) 90static inline int gpio_get_value(unsigned gpio)
101{ 91{
102 return __gpio_get_value(gpio); 92 return __gpio_get_value(gpio);
diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat-omap/include/mach/mcbsp.h
index 6a0d1a0a24a7..113c2466c86a 100644
--- a/arch/arm/plat-omap/include/mach/mcbsp.h
+++ b/arch/arm/plat-omap/include/mach/mcbsp.h
@@ -87,6 +87,10 @@
87#define OMAP_MCBSP_REG_XCERG 0x3A 87#define OMAP_MCBSP_REG_XCERG 0x3A
88#define OMAP_MCBSP_REG_XCERH 0x3C 88#define OMAP_MCBSP_REG_XCERH 0x3C
89 89
90/* Dummy defines, these are not available on omap1 */
91#define OMAP_MCBSP_REG_XCCR 0x00
92#define OMAP_MCBSP_REG_RCCR 0x00
93
90#define AUDIO_MCBSP_DATAWRITE (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DXR1) 94#define AUDIO_MCBSP_DATAWRITE (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DXR1)
91#define AUDIO_MCBSP_DATAREAD (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1) 95#define AUDIO_MCBSP_DATAREAD (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1)
92 96
@@ -231,11 +235,16 @@
231#define XPBBLK(value) ((value)<<7) /* Bits 7:8 */ 235#define XPBBLK(value) ((value)<<7) /* Bits 7:8 */
232 236
233/*********************** McBSP XCCR bit definitions *************************/ 237/*********************** McBSP XCCR bit definitions *************************/
238#define EXTCLKGATE 0x8000
239#define PPCONNECT 0x4000
240#define DXENDLY(value) ((value)<<12) /* Bits 12:13 */
241#define XFULL_CYCLE 0x0800
234#define DILB 0x0020 242#define DILB 0x0020
235#define XDMAEN 0x0008 243#define XDMAEN 0x0008
236#define XDISABLE 0x0001 244#define XDISABLE 0x0001
237 245
238/********************** McBSP RCCR bit definitions *************************/ 246/********************** McBSP RCCR bit definitions *************************/
247#define RFULL_CYCLE 0x0800
239#define RDMAEN 0x0008 248#define RDMAEN 0x0008
240#define RDISABLE 0x0001 249#define RDISABLE 0x0001
241 250
@@ -267,6 +276,8 @@ struct omap_mcbsp_reg_cfg {
267 u16 rcerh; 276 u16 rcerh;
268 u16 xcerg; 277 u16 xcerg;
269 u16 xcerh; 278 u16 xcerh;
279 u16 xccr;
280 u16 rccr;
270}; 281};
271 282
272typedef enum { 283typedef enum {
@@ -333,7 +344,8 @@ struct omap_mcbsp_platform_data {
333 u8 dma_rx_sync, dma_tx_sync; 344 u8 dma_rx_sync, dma_tx_sync;
334 u16 rx_irq, tx_irq; 345 u16 rx_irq, tx_irq;
335 struct omap_mcbsp_ops *ops; 346 struct omap_mcbsp_ops *ops;
336 char const *clk_name; 347 char const **clk_names;
348 int num_clks;
337}; 349};
338 350
339struct omap_mcbsp { 351struct omap_mcbsp {
@@ -365,7 +377,8 @@ struct omap_mcbsp {
365 /* Protect the field .free, while checking if the mcbsp is in use */ 377 /* Protect the field .free, while checking if the mcbsp is in use */
366 spinlock_t lock; 378 spinlock_t lock;
367 struct omap_mcbsp_platform_data *pdata; 379 struct omap_mcbsp_platform_data *pdata;
368 struct clk *clk; 380 struct clk **clks;
381 int num_clks;
369}; 382};
370extern struct omap_mcbsp **mcbsp_ptr; 383extern struct omap_mcbsp **mcbsp_ptr;
371extern int omap_mcbsp_count; 384extern int omap_mcbsp_count;
diff --git a/arch/arm/plat-omap/include/mach/mmc.h b/arch/arm/plat-omap/include/mach/mmc.h
index 031250f02805..73a9e15031b1 100644
--- a/arch/arm/plat-omap/include/mach/mmc.h
+++ b/arch/arm/plat-omap/include/mach/mmc.h
@@ -115,8 +115,9 @@ void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
115 int nr_controllers); 115 int nr_controllers);
116void omap2_init_mmc(struct omap_mmc_platform_data **mmc_data, 116void omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
117 int nr_controllers); 117 int nr_controllers);
118int omap_mmc_add(int id, unsigned long base, unsigned long size, 118int omap_mmc_add(const char *name, int id, unsigned long base,
119 unsigned int irq, struct omap_mmc_platform_data *data); 119 unsigned long size, unsigned int irq,
120 struct omap_mmc_platform_data *data);
120#else 121#else
121static inline void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data, 122static inline void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
122 int nr_controllers) 123 int nr_controllers)
@@ -126,8 +127,9 @@ static inline void omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
126 int nr_controllers) 127 int nr_controllers)
127{ 128{
128} 129}
129static inline int omap_mmc_add(int id, unsigned long base, unsigned long size, 130static inline int omap_mmc_add(const char *name, int id, unsigned long base,
130 unsigned int irq, struct omap_mmc_platform_data *data) 131 unsigned long size, unsigned int irq,
132 struct omap_mmc_platform_data *data)
131{ 133{
132 return 0; 134 return 0;
133} 135}
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index af33fc713e1a..e5842e30e534 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -173,6 +173,10 @@ void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg *config)
173 OMAP_MCBSP_WRITE(io_base, MCR2, config->mcr2); 173 OMAP_MCBSP_WRITE(io_base, MCR2, config->mcr2);
174 OMAP_MCBSP_WRITE(io_base, MCR1, config->mcr1); 174 OMAP_MCBSP_WRITE(io_base, MCR1, config->mcr1);
175 OMAP_MCBSP_WRITE(io_base, PCR0, config->pcr0); 175 OMAP_MCBSP_WRITE(io_base, PCR0, config->pcr0);
176 if (cpu_is_omap2430() || cpu_is_omap34xx()) {
177 OMAP_MCBSP_WRITE(io_base, XCCR, config->xccr);
178 OMAP_MCBSP_WRITE(io_base, RCCR, config->rccr);
179 }
176} 180}
177EXPORT_SYMBOL(omap_mcbsp_config); 181EXPORT_SYMBOL(omap_mcbsp_config);
178 182
@@ -210,6 +214,7 @@ EXPORT_SYMBOL(omap_mcbsp_set_io_type);
210int omap_mcbsp_request(unsigned int id) 214int omap_mcbsp_request(unsigned int id)
211{ 215{
212 struct omap_mcbsp *mcbsp; 216 struct omap_mcbsp *mcbsp;
217 int i;
213 int err; 218 int err;
214 219
215 if (!omap_mcbsp_check_valid_id(id)) { 220 if (!omap_mcbsp_check_valid_id(id)) {
@@ -221,7 +226,8 @@ int omap_mcbsp_request(unsigned int id)
221 if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->request) 226 if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->request)
222 mcbsp->pdata->ops->request(id); 227 mcbsp->pdata->ops->request(id);
223 228
224 clk_enable(mcbsp->clk); 229 for (i = 0; i < mcbsp->num_clks; i++)
230 clk_enable(mcbsp->clks[i]);
225 231
226 spin_lock(&mcbsp->lock); 232 spin_lock(&mcbsp->lock);
227 if (!mcbsp->free) { 233 if (!mcbsp->free) {
@@ -272,6 +278,7 @@ EXPORT_SYMBOL(omap_mcbsp_request);
272void omap_mcbsp_free(unsigned int id) 278void omap_mcbsp_free(unsigned int id)
273{ 279{
274 struct omap_mcbsp *mcbsp; 280 struct omap_mcbsp *mcbsp;
281 int i;
275 282
276 if (!omap_mcbsp_check_valid_id(id)) { 283 if (!omap_mcbsp_check_valid_id(id)) {
277 printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1); 284 printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
@@ -282,7 +289,8 @@ void omap_mcbsp_free(unsigned int id)
282 if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->free) 289 if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->free)
283 mcbsp->pdata->ops->free(id); 290 mcbsp->pdata->ops->free(id);
284 291
285 clk_disable(mcbsp->clk); 292 for (i = mcbsp->num_clks - 1; i >= 0; i--)
293 clk_disable(mcbsp->clks[i]);
286 294
287 spin_lock(&mcbsp->lock); 295 spin_lock(&mcbsp->lock);
288 if (mcbsp->free) { 296 if (mcbsp->free) {
@@ -868,6 +876,7 @@ static int __devinit omap_mcbsp_probe(struct platform_device *pdev)
868 struct omap_mcbsp_platform_data *pdata = pdev->dev.platform_data; 876 struct omap_mcbsp_platform_data *pdata = pdev->dev.platform_data;
869 struct omap_mcbsp *mcbsp; 877 struct omap_mcbsp *mcbsp;
870 int id = pdev->id - 1; 878 int id = pdev->id - 1;
879 int i;
871 int ret = 0; 880 int ret = 0;
872 881
873 if (!pdata) { 882 if (!pdata) {
@@ -912,14 +921,25 @@ static int __devinit omap_mcbsp_probe(struct platform_device *pdev)
912 mcbsp->dma_rx_sync = pdata->dma_rx_sync; 921 mcbsp->dma_rx_sync = pdata->dma_rx_sync;
913 mcbsp->dma_tx_sync = pdata->dma_tx_sync; 922 mcbsp->dma_tx_sync = pdata->dma_tx_sync;
914 923
915 if (pdata->clk_name) 924 if (pdata->num_clks) {
916 mcbsp->clk = clk_get(&pdev->dev, pdata->clk_name); 925 mcbsp->num_clks = pdata->num_clks;
917 if (IS_ERR(mcbsp->clk)) { 926 mcbsp->clks = kzalloc(mcbsp->num_clks * sizeof(struct clk *),
918 dev_err(&pdev->dev, 927 GFP_KERNEL);
919 "Invalid clock configuration for McBSP%d.\n", 928 if (!mcbsp->clks) {
920 mcbsp->id); 929 ret = -ENOMEM;
921 ret = PTR_ERR(mcbsp->clk); 930 goto exit;
922 goto err_clk; 931 }
932 for (i = 0; i < mcbsp->num_clks; i++) {
933 mcbsp->clks[i] = clk_get(&pdev->dev, pdata->clk_names[i]);
934 if (IS_ERR(mcbsp->clks[i])) {
935 dev_err(&pdev->dev,
936 "Invalid %s configuration for McBSP%d.\n",
937 pdata->clk_names[i], mcbsp->id);
938 ret = PTR_ERR(mcbsp->clks[i]);
939 goto err_clk;
940 }
941 }
942
923 } 943 }
924 944
925 mcbsp->pdata = pdata; 945 mcbsp->pdata = pdata;
@@ -928,6 +948,9 @@ static int __devinit omap_mcbsp_probe(struct platform_device *pdev)
928 return 0; 948 return 0;
929 949
930err_clk: 950err_clk:
951 while (i--)
952 clk_put(mcbsp->clks[i]);
953 kfree(mcbsp->clks);
931 iounmap(mcbsp->io_base); 954 iounmap(mcbsp->io_base);
932err_ioremap: 955err_ioremap:
933 mcbsp->free = 0; 956 mcbsp->free = 0;
@@ -938,6 +961,7 @@ exit:
938static int __devexit omap_mcbsp_remove(struct platform_device *pdev) 961static int __devexit omap_mcbsp_remove(struct platform_device *pdev)
939{ 962{
940 struct omap_mcbsp *mcbsp = platform_get_drvdata(pdev); 963 struct omap_mcbsp *mcbsp = platform_get_drvdata(pdev);
964 int i;
941 965
942 platform_set_drvdata(pdev, NULL); 966 platform_set_drvdata(pdev, NULL);
943 if (mcbsp) { 967 if (mcbsp) {
@@ -946,12 +970,18 @@ static int __devexit omap_mcbsp_remove(struct platform_device *pdev)
946 mcbsp->pdata->ops->free) 970 mcbsp->pdata->ops->free)
947 mcbsp->pdata->ops->free(mcbsp->id); 971 mcbsp->pdata->ops->free(mcbsp->id);
948 972
949 clk_disable(mcbsp->clk); 973 for (i = mcbsp->num_clks - 1; i >= 0; i--) {
950 clk_put(mcbsp->clk); 974 clk_disable(mcbsp->clks[i]);
975 clk_put(mcbsp->clks[i]);
976 }
951 977
952 iounmap(mcbsp->io_base); 978 iounmap(mcbsp->io_base);
953 979
954 mcbsp->clk = NULL; 980 if (mcbsp->num_clks) {
981 kfree(mcbsp->clks);
982 mcbsp->clks = NULL;
983 mcbsp->num_clks = 0;
984 }
955 mcbsp->free = 0; 985 mcbsp->free = 0;
956 mcbsp->dev = NULL; 986 mcbsp->dev = NULL;
957 } 987 }
diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c
index add0485703b5..e278de6862ae 100644
--- a/arch/arm/plat-omap/usb.c
+++ b/arch/arm/plat-omap/usb.c
@@ -431,15 +431,6 @@ bad:
431 431
432/*-------------------------------------------------------------------------*/ 432/*-------------------------------------------------------------------------*/
433 433
434#if defined(CONFIG_USB_GADGET_OMAP) || \
435 defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) || \
436 (defined(CONFIG_USB_OTG) && defined(CONFIG_ARCH_OMAP_OTG))
437static void usb_release(struct device *dev)
438{
439 /* normally not freed */
440}
441#endif
442
443#ifdef CONFIG_USB_GADGET_OMAP 434#ifdef CONFIG_USB_GADGET_OMAP
444 435
445static struct resource udc_resources[] = { 436static struct resource udc_resources[] = {
@@ -466,7 +457,6 @@ static struct platform_device udc_device = {
466 .name = "omap_udc", 457 .name = "omap_udc",
467 .id = -1, 458 .id = -1,
468 .dev = { 459 .dev = {
469 .release = usb_release,
470 .dma_mask = &udc_dmamask, 460 .dma_mask = &udc_dmamask,
471 .coherent_dma_mask = 0xffffffff, 461 .coherent_dma_mask = 0xffffffff,
472 }, 462 },
@@ -497,7 +487,6 @@ static struct platform_device ohci_device = {
497 .name = "ohci", 487 .name = "ohci",
498 .id = -1, 488 .id = -1,
499 .dev = { 489 .dev = {
500 .release = usb_release,
501 .dma_mask = &ohci_dmamask, 490 .dma_mask = &ohci_dmamask,
502 .coherent_dma_mask = 0xffffffff, 491 .coherent_dma_mask = 0xffffffff,
503 }, 492 },
@@ -524,9 +513,6 @@ static struct resource otg_resources[] = {
524static struct platform_device otg_device = { 513static struct platform_device otg_device = {
525 .name = "omap_otg", 514 .name = "omap_otg",
526 .id = -1, 515 .id = -1,
527 .dev = {
528 .release = usb_release,
529 },
530 .num_resources = ARRAY_SIZE(otg_resources), 516 .num_resources = ARRAY_SIZE(otg_resources),
531 .resource = otg_resources, 517 .resource = otg_resources,
532}; 518};
diff --git a/arch/arm/plat-orion/gpio.c b/arch/arm/plat-orion/gpio.c
index 967186425ca1..0d12c2164766 100644
--- a/arch/arm/plat-orion/gpio.c
+++ b/arch/arm/plat-orion/gpio.c
@@ -265,51 +265,36 @@ EXPORT_SYMBOL(orion_gpio_set_blink);
265 * polarity LEVEL mask 265 * polarity LEVEL mask
266 * 266 *
267 ****************************************************************************/ 267 ****************************************************************************/
268static void gpio_irq_edge_ack(u32 irq)
269{
270 int pin = irq_to_gpio(irq);
271
272 writel(~(1 << (pin & 31)), GPIO_EDGE_CAUSE(pin));
273}
274
275static void gpio_irq_edge_mask(u32 irq)
276{
277 int pin = irq_to_gpio(irq);
278 u32 u;
279
280 u = readl(GPIO_EDGE_MASK(pin));
281 u &= ~(1 << (pin & 31));
282 writel(u, GPIO_EDGE_MASK(pin));
283}
284 268
285static void gpio_irq_edge_unmask(u32 irq) 269static void gpio_irq_ack(u32 irq)
286{ 270{
287 int pin = irq_to_gpio(irq); 271 int type = irq_desc[irq].status & IRQ_TYPE_SENSE_MASK;
288 u32 u; 272 if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) {
289 273 int pin = irq_to_gpio(irq);
290 u = readl(GPIO_EDGE_MASK(pin)); 274 writel(~(1 << (pin & 31)), GPIO_EDGE_CAUSE(pin));
291 u |= 1 << (pin & 31); 275 }
292 writel(u, GPIO_EDGE_MASK(pin));
293} 276}
294 277
295static void gpio_irq_level_mask(u32 irq) 278static void gpio_irq_mask(u32 irq)
296{ 279{
297 int pin = irq_to_gpio(irq); 280 int pin = irq_to_gpio(irq);
298 u32 u; 281 int type = irq_desc[irq].status & IRQ_TYPE_SENSE_MASK;
299 282 u32 reg = (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) ?
300 u = readl(GPIO_LEVEL_MASK(pin)); 283 GPIO_EDGE_MASK(pin) : GPIO_LEVEL_MASK(pin);
284 u32 u = readl(reg);
301 u &= ~(1 << (pin & 31)); 285 u &= ~(1 << (pin & 31));
302 writel(u, GPIO_LEVEL_MASK(pin)); 286 writel(u, reg);
303} 287}
304 288
305static void gpio_irq_level_unmask(u32 irq) 289static void gpio_irq_unmask(u32 irq)
306{ 290{
307 int pin = irq_to_gpio(irq); 291 int pin = irq_to_gpio(irq);
308 u32 u; 292 int type = irq_desc[irq].status & IRQ_TYPE_SENSE_MASK;
309 293 u32 reg = (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) ?
310 u = readl(GPIO_LEVEL_MASK(pin)); 294 GPIO_EDGE_MASK(pin) : GPIO_LEVEL_MASK(pin);
295 u32 u = readl(reg);
311 u |= 1 << (pin & 31); 296 u |= 1 << (pin & 31);
312 writel(u, GPIO_LEVEL_MASK(pin)); 297 writel(u, reg);
313} 298}
314 299
315static int gpio_irq_set_type(u32 irq, u32 type) 300static int gpio_irq_set_type(u32 irq, u32 type)
@@ -331,9 +316,9 @@ static int gpio_irq_set_type(u32 irq, u32 type)
331 * Set edge/level type. 316 * Set edge/level type.
332 */ 317 */
333 if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) { 318 if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) {
334 desc->chip = &orion_gpio_irq_edge_chip; 319 desc->handle_irq = handle_edge_irq;
335 } else if (type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) { 320 } else if (type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) {
336 desc->chip = &orion_gpio_irq_level_chip; 321 desc->handle_irq = handle_level_irq;
337 } else { 322 } else {
338 printk(KERN_ERR "failed to set irq=%d (type=%d)\n", irq, type); 323 printk(KERN_ERR "failed to set irq=%d (type=%d)\n", irq, type);
339 return -EINVAL; 324 return -EINVAL;
@@ -371,19 +356,11 @@ static int gpio_irq_set_type(u32 irq, u32 type)
371 return 0; 356 return 0;
372} 357}
373 358
374struct irq_chip orion_gpio_irq_edge_chip = { 359struct irq_chip orion_gpio_irq_chip = {
375 .name = "orion_gpio_irq_edge", 360 .name = "orion_gpio",
376 .ack = gpio_irq_edge_ack, 361 .ack = gpio_irq_ack,
377 .mask = gpio_irq_edge_mask, 362 .mask = gpio_irq_mask,
378 .unmask = gpio_irq_edge_unmask, 363 .unmask = gpio_irq_unmask,
379 .set_type = gpio_irq_set_type,
380};
381
382struct irq_chip orion_gpio_irq_level_chip = {
383 .name = "orion_gpio_irq_level",
384 .mask = gpio_irq_level_mask,
385 .mask_ack = gpio_irq_level_mask,
386 .unmask = gpio_irq_level_unmask,
387 .set_type = gpio_irq_set_type, 364 .set_type = gpio_irq_set_type,
388}; 365};
389 366
diff --git a/arch/arm/plat-orion/include/plat/gpio.h b/arch/arm/plat-orion/include/plat/gpio.h
index 54deaf274b52..ec743e82c876 100644
--- a/arch/arm/plat-orion/include/plat/gpio.h
+++ b/arch/arm/plat-orion/include/plat/gpio.h
@@ -31,8 +31,7 @@ void orion_gpio_set_blink(unsigned pin, int blink);
31/* 31/*
32 * GPIO interrupt handling. 32 * GPIO interrupt handling.
33 */ 33 */
34extern struct irq_chip orion_gpio_irq_edge_chip; 34extern struct irq_chip orion_gpio_irq_chip;
35extern struct irq_chip orion_gpio_irq_level_chip;
36void orion_gpio_irq_handler(int irqoff); 35void orion_gpio_irq_handler(int irqoff);
37 36
38 37
diff --git a/arch/avr32/configs/atngw100_defconfig b/arch/avr32/configs/atngw100_defconfig
index 164e2814ae78..574aca975334 100644
--- a/arch/avr32/configs/atngw100_defconfig
+++ b/arch/avr32/configs/atngw100_defconfig
@@ -644,8 +644,8 @@ CONFIG_I2C_GPIO=m
644# Miscellaneous I2C Chip support 644# Miscellaneous I2C Chip support
645# 645#
646# CONFIG_DS1682 is not set 646# CONFIG_DS1682 is not set
647CONFIG_AT24=m 647CONFIG_EEPROM_AT24=m
648# CONFIG_SENSORS_EEPROM is not set 648# CONFIG_EEPROM_LEGACY is not set
649# CONFIG_SENSORS_PCF8574 is not set 649# CONFIG_SENSORS_PCF8574 is not set
650# CONFIG_PCF8575 is not set 650# CONFIG_PCF8575 is not set
651# CONFIG_SENSORS_PCA9539 is not set 651# CONFIG_SENSORS_PCA9539 is not set
@@ -670,7 +670,7 @@ CONFIG_SPI_ATMEL=y
670# 670#
671# SPI Protocol Masters 671# SPI Protocol Masters
672# 672#
673# CONFIG_SPI_AT25 is not set 673# CONFIG_EEPROM_AT25 is not set
674CONFIG_SPI_SPIDEV=m 674CONFIG_SPI_SPIDEV=m
675# CONFIG_SPI_TLE62X0 is not set 675# CONFIG_SPI_TLE62X0 is not set
676CONFIG_ARCH_REQUIRE_GPIOLIB=y 676CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atngw100_evklcd100_defconfig b/arch/avr32/configs/atngw100_evklcd100_defconfig
index b0572d213826..86a45b5c9d0d 100644
--- a/arch/avr32/configs/atngw100_evklcd100_defconfig
+++ b/arch/avr32/configs/atngw100_evklcd100_defconfig
@@ -671,7 +671,7 @@ CONFIG_I2C_GPIO=m
671# Miscellaneous I2C Chip support 671# Miscellaneous I2C Chip support
672# 672#
673# CONFIG_DS1682 is not set 673# CONFIG_DS1682 is not set
674# CONFIG_SENSORS_EEPROM is not set 674# CONFIG_EEPROM_LEGACY is not set
675# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
676# CONFIG_PCF8575 is not set 676# CONFIG_PCF8575 is not set
677# CONFIG_SENSORS_PCF8591 is not set 677# CONFIG_SENSORS_PCF8591 is not set
@@ -699,7 +699,7 @@ CONFIG_SPI_ATMEL=y
699# 699#
700# SPI Protocol Masters 700# SPI Protocol Masters
701# 701#
702# CONFIG_SPI_AT25 is not set 702# CONFIG_EEPROM_AT25 is not set
703CONFIG_SPI_SPIDEV=m 703CONFIG_SPI_SPIDEV=m
704# CONFIG_SPI_TLE62X0 is not set 704# CONFIG_SPI_TLE62X0 is not set
705CONFIG_HAVE_GPIO_LIB=y 705CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/avr32/configs/atngw100_evklcd101_defconfig b/arch/avr32/configs/atngw100_evklcd101_defconfig
index c5b898d21075..a96b68ea5e83 100644
--- a/arch/avr32/configs/atngw100_evklcd101_defconfig
+++ b/arch/avr32/configs/atngw100_evklcd101_defconfig
@@ -671,7 +671,7 @@ CONFIG_I2C_GPIO=m
671# Miscellaneous I2C Chip support 671# Miscellaneous I2C Chip support
672# 672#
673# CONFIG_DS1682 is not set 673# CONFIG_DS1682 is not set
674# CONFIG_SENSORS_EEPROM is not set 674# CONFIG_EEPROM_LEGACY is not set
675# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
676# CONFIG_PCF8575 is not set 676# CONFIG_PCF8575 is not set
677# CONFIG_SENSORS_PCF8591 is not set 677# CONFIG_SENSORS_PCF8591 is not set
@@ -699,7 +699,7 @@ CONFIG_SPI_ATMEL=y
699# 699#
700# SPI Protocol Masters 700# SPI Protocol Masters
701# 701#
702# CONFIG_SPI_AT25 is not set 702# CONFIG_EEPROM_AT25 is not set
703CONFIG_SPI_SPIDEV=m 703CONFIG_SPI_SPIDEV=m
704# CONFIG_SPI_TLE62X0 is not set 704# CONFIG_SPI_TLE62X0 is not set
705CONFIG_HAVE_GPIO_LIB=y 705CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/avr32/configs/atstk1002_defconfig b/arch/avr32/configs/atstk1002_defconfig
index c9dc64832a19..0abe90adb1a4 100644
--- a/arch/avr32/configs/atstk1002_defconfig
+++ b/arch/avr32/configs/atstk1002_defconfig
@@ -663,8 +663,8 @@ CONFIG_I2C_GPIO=m
663# Miscellaneous I2C Chip support 663# Miscellaneous I2C Chip support
664# 664#
665# CONFIG_DS1682 is not set 665# CONFIG_DS1682 is not set
666CONFIG_AT24=m 666CONFIG_EEPROM_AT24=m
667# CONFIG_SENSORS_EEPROM is not set 667# CONFIG_EEPROM_LEGACY is not set
668# CONFIG_SENSORS_PCF8574 is not set 668# CONFIG_SENSORS_PCF8574 is not set
669# CONFIG_PCF8575 is not set 669# CONFIG_PCF8575 is not set
670# CONFIG_SENSORS_PCA9539 is not set 670# CONFIG_SENSORS_PCA9539 is not set
@@ -689,7 +689,7 @@ CONFIG_SPI_ATMEL=y
689# 689#
690# SPI Protocol Masters 690# SPI Protocol Masters
691# 691#
692# CONFIG_SPI_AT25 is not set 692# CONFIG_EEPROM_AT25 is not set
693CONFIG_SPI_SPIDEV=m 693CONFIG_SPI_SPIDEV=m
694# CONFIG_SPI_TLE62X0 is not set 694# CONFIG_SPI_TLE62X0 is not set
695CONFIG_ARCH_REQUIRE_GPIOLIB=y 695CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atstk1003_defconfig b/arch/avr32/configs/atstk1003_defconfig
index 29ea1327b498..101972f40f07 100644
--- a/arch/avr32/configs/atstk1003_defconfig
+++ b/arch/avr32/configs/atstk1003_defconfig
@@ -611,8 +611,8 @@ CONFIG_I2C_GPIO=m
611# Miscellaneous I2C Chip support 611# Miscellaneous I2C Chip support
612# 612#
613# CONFIG_DS1682 is not set 613# CONFIG_DS1682 is not set
614CONFIG_AT24=m 614CONFIG_EEPROM_AT24=m
615# CONFIG_SENSORS_EEPROM is not set 615# CONFIG_EEPROM_LEGACY is not set
616# CONFIG_SENSORS_PCF8574 is not set 616# CONFIG_SENSORS_PCF8574 is not set
617# CONFIG_PCF8575 is not set 617# CONFIG_PCF8575 is not set
618# CONFIG_SENSORS_PCA9539 is not set 618# CONFIG_SENSORS_PCA9539 is not set
@@ -637,7 +637,7 @@ CONFIG_SPI_ATMEL=y
637# 637#
638# SPI Protocol Masters 638# SPI Protocol Masters
639# 639#
640# CONFIG_SPI_AT25 is not set 640# CONFIG_EEPROM_AT25 is not set
641CONFIG_SPI_SPIDEV=m 641CONFIG_SPI_SPIDEV=m
642# CONFIG_SPI_TLE62X0 is not set 642# CONFIG_SPI_TLE62X0 is not set
643CONFIG_ARCH_REQUIRE_GPIOLIB=y 643CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atstk1004_defconfig b/arch/avr32/configs/atstk1004_defconfig
index 69e6c0d08ce8..518f7898df75 100644
--- a/arch/avr32/configs/atstk1004_defconfig
+++ b/arch/avr32/configs/atstk1004_defconfig
@@ -394,7 +394,7 @@ CONFIG_SPI_ATMEL=y
394# 394#
395# SPI Protocol Masters 395# SPI Protocol Masters
396# 396#
397# CONFIG_SPI_AT25 is not set 397# CONFIG_EEPROM_AT25 is not set
398# CONFIG_SPI_SPIDEV is not set 398# CONFIG_SPI_SPIDEV is not set
399# CONFIG_SPI_TLE62X0 is not set 399# CONFIG_SPI_TLE62X0 is not set
400CONFIG_ARCH_REQUIRE_GPIOLIB=y 400CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atstk1006_defconfig b/arch/avr32/configs/atstk1006_defconfig
index 361c31c2af10..c1603c4860e0 100644
--- a/arch/avr32/configs/atstk1006_defconfig
+++ b/arch/avr32/configs/atstk1006_defconfig
@@ -684,8 +684,8 @@ CONFIG_I2C_GPIO=m
684# Miscellaneous I2C Chip support 684# Miscellaneous I2C Chip support
685# 685#
686# CONFIG_DS1682 is not set 686# CONFIG_DS1682 is not set
687# CONFIG_AT24 is not set 687# CONFIG_EEPROM_AT24 is not set
688# CONFIG_SENSORS_EEPROM is not set 688# CONFIG_EEPROM_LEGACY is not set
689# CONFIG_SENSORS_PCF8574 is not set 689# CONFIG_SENSORS_PCF8574 is not set
690# CONFIG_PCF8575 is not set 690# CONFIG_PCF8575 is not set
691# CONFIG_SENSORS_PCA9539 is not set 691# CONFIG_SENSORS_PCA9539 is not set
@@ -710,7 +710,7 @@ CONFIG_SPI_ATMEL=y
710# 710#
711# SPI Protocol Masters 711# SPI Protocol Masters
712# 712#
713# CONFIG_SPI_AT25 is not set 713# CONFIG_EEPROM_AT25 is not set
714CONFIG_SPI_SPIDEV=m 714CONFIG_SPI_SPIDEV=m
715# CONFIG_SPI_TLE62X0 is not set 715# CONFIG_SPI_TLE62X0 is not set
716CONFIG_ARCH_REQUIRE_GPIOLIB=y 716CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/favr-32_defconfig b/arch/avr32/configs/favr-32_defconfig
index e2bd9982e2af..4c3ac0643e4a 100644
--- a/arch/avr32/configs/favr-32_defconfig
+++ b/arch/avr32/configs/favr-32_defconfig
@@ -633,8 +633,8 @@ CONFIG_I2C_GPIO=m
633# Miscellaneous I2C Chip support 633# Miscellaneous I2C Chip support
634# 634#
635# CONFIG_DS1682 is not set 635# CONFIG_DS1682 is not set
636# CONFIG_AT24 is not set 636# CONFIG_EEPROM_AT24 is not set
637# CONFIG_SENSORS_EEPROM is not set 637# CONFIG_EEPROM_LEGACY is not set
638# CONFIG_SENSORS_PCF8574 is not set 638# CONFIG_SENSORS_PCF8574 is not set
639# CONFIG_PCF8575 is not set 639# CONFIG_PCF8575 is not set
640# CONFIG_SENSORS_PCA9539 is not set 640# CONFIG_SENSORS_PCA9539 is not set
@@ -659,7 +659,7 @@ CONFIG_SPI_ATMEL=y
659# 659#
660# SPI Protocol Masters 660# SPI Protocol Masters
661# 661#
662# CONFIG_SPI_AT25 is not set 662# CONFIG_EEPROM_AT25 is not set
663CONFIG_SPI_SPIDEV=m 663CONFIG_SPI_SPIDEV=m
664# CONFIG_SPI_TLE62X0 is not set 664# CONFIG_SPI_TLE62X0 is not set
665CONFIG_ARCH_REQUIRE_GPIOLIB=y 665CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/hammerhead_defconfig b/arch/avr32/configs/hammerhead_defconfig
index 0d3d2982c8f5..3970fcc4d76e 100644
--- a/arch/avr32/configs/hammerhead_defconfig
+++ b/arch/avr32/configs/hammerhead_defconfig
@@ -716,8 +716,8 @@ CONFIG_I2C_GPIO=m
716# Miscellaneous I2C Chip support 716# Miscellaneous I2C Chip support
717# 717#
718# CONFIG_DS1682 is not set 718# CONFIG_DS1682 is not set
719# CONFIG_AT24 is not set 719# CONFIG_EEPROM_AT24 is not set
720# CONFIG_SENSORS_EEPROM is not set 720# CONFIG_EEPROM_LEGACY is not set
721# CONFIG_SENSORS_PCF8574 is not set 721# CONFIG_SENSORS_PCF8574 is not set
722# CONFIG_PCF8575 is not set 722# CONFIG_PCF8575 is not set
723# CONFIG_SENSORS_PCA9539 is not set 723# CONFIG_SENSORS_PCA9539 is not set
@@ -742,7 +742,7 @@ CONFIG_SPI_ATMEL=y
742# 742#
743# SPI Protocol Masters 743# SPI Protocol Masters
744# 744#
745# CONFIG_SPI_AT25 is not set 745# CONFIG_EEPROM_AT25 is not set
746CONFIG_SPI_SPIDEV=m 746CONFIG_SPI_SPIDEV=m
747# CONFIG_SPI_TLE62X0 is not set 747# CONFIG_SPI_TLE62X0 is not set
748CONFIG_ARCH_REQUIRE_GPIOLIB=y 748CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/mimc200_defconfig b/arch/avr32/configs/mimc200_defconfig
index 981e4f8b8aeb..1a58ffbc752d 100644
--- a/arch/avr32/configs/mimc200_defconfig
+++ b/arch/avr32/configs/mimc200_defconfig
@@ -565,8 +565,8 @@ CONFIG_I2C_GPIO=y
565# Miscellaneous I2C Chip support 565# Miscellaneous I2C Chip support
566# 566#
567# CONFIG_DS1682 is not set 567# CONFIG_DS1682 is not set
568CONFIG_AT24=y 568CONFIG_EEPROM_AT24=y
569# CONFIG_SENSORS_EEPROM is not set 569# CONFIG_EEPROM_LEGACY is not set
570# CONFIG_SENSORS_PCF8574 is not set 570# CONFIG_SENSORS_PCF8574 is not set
571# CONFIG_PCF8575 is not set 571# CONFIG_PCF8575 is not set
572# CONFIG_SENSORS_PCA9539 is not set 572# CONFIG_SENSORS_PCA9539 is not set
@@ -592,7 +592,7 @@ CONFIG_SPI_ATMEL=y
592# 592#
593# SPI Protocol Masters 593# SPI Protocol Masters
594# 594#
595CONFIG_SPI_AT25=y 595CONFIG_EEPROM_AT25=y
596# CONFIG_SPI_SPIDEV is not set 596# CONFIG_SPI_SPIDEV is not set
597# CONFIG_SPI_TLE62X0 is not set 597# CONFIG_SPI_TLE62X0 is not set
598CONFIG_ARCH_REQUIRE_GPIOLIB=y 598CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/include/asm/Kbuild b/arch/avr32/include/asm/Kbuild
index 219822c8ad18..3136628ba8d2 100644
--- a/arch/avr32/include/asm/Kbuild
+++ b/arch/avr32/include/asm/Kbuild
@@ -1,4 +1,3 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2
3header-y += swab.h
4header-y += cachectl.h 3header-y += cachectl.h
diff --git a/arch/avr32/include/asm/byteorder.h b/arch/avr32/include/asm/byteorder.h
index 2aba64b4e122..50abc21619a8 100644
--- a/arch/avr32/include/asm/byteorder.h
+++ b/arch/avr32/include/asm/byteorder.h
@@ -4,7 +4,6 @@
4#ifndef __ASM_AVR32_BYTEORDER_H 4#ifndef __ASM_AVR32_BYTEORDER_H
5#define __ASM_AVR32_BYTEORDER_H 5#define __ASM_AVR32_BYTEORDER_H
6 6
7#include <asm/swab.h>
8#include <linux/byteorder/big_endian.h> 7#include <linux/byteorder/big_endian.h>
9 8
10#endif /* __ASM_AVR32_BYTEORDER_H */ 9#endif /* __ASM_AVR32_BYTEORDER_H */
diff --git a/arch/avr32/include/asm/swab.h b/arch/avr32/include/asm/swab.h
index a14aa5b46d98..14cc737bbca6 100644
--- a/arch/avr32/include/asm/swab.h
+++ b/arch/avr32/include/asm/swab.h
@@ -4,7 +4,7 @@
4#ifndef __ASM_AVR32_SWAB_H 4#ifndef __ASM_AVR32_SWAB_H
5#define __ASM_AVR32_SWAB_H 5#define __ASM_AVR32_SWAB_H
6 6
7#include <asm/types.h> 7#include <linux/types.h>
8#include <linux/compiler.h> 8#include <linux/compiler.h>
9 9
10#define __SWAB_64_THRU_32__ 10#define __SWAB_64_THRU_32__
diff --git a/arch/avr32/mach-at32ap/include/mach/board.h b/arch/avr32/mach-at32ap/include/mach/board.h
index aafaf7a78886..cff8e84f78f2 100644
--- a/arch/avr32/mach-at32ap/include/mach/board.h
+++ b/arch/avr32/mach-at32ap/include/mach/board.h
@@ -116,6 +116,7 @@ struct atmel_nand_data {
116 int enable_pin; /* chip enable */ 116 int enable_pin; /* chip enable */
117 int det_pin; /* card detect */ 117 int det_pin; /* card detect */
118 int rdy_pin; /* ready/busy */ 118 int rdy_pin; /* ready/busy */
119 u8 rdy_pin_active_low; /* rdy_pin value is inverted */
119 u8 ale; /* address line number connected to ALE */ 120 u8 ale; /* address line number connected to ALE */
120 u8 cle; /* address line number connected to CLE */ 121 u8 cle; /* address line number connected to CLE */
121 u8 bus_width_16; /* buswidth is 16 bit */ 122 u8 bus_width_16; /* buswidth is 16 bit */
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index a949c4fbbddd..8f1f97d56e1e 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -169,26 +169,51 @@ config BF542
169 help 169 help
170 BF542 Processor Support. 170 BF542 Processor Support.
171 171
172config BF542M
173 bool "BF542m"
174 help
175 BF542 Processor Support.
176
172config BF544 177config BF544
173 bool "BF544" 178 bool "BF544"
174 help 179 help
175 BF544 Processor Support. 180 BF544 Processor Support.
176 181
182config BF544M
183 bool "BF544m"
184 help
185 BF544 Processor Support.
186
177config BF547 187config BF547
178 bool "BF547" 188 bool "BF547"
179 help 189 help
180 BF547 Processor Support. 190 BF547 Processor Support.
181 191
192config BF547M
193 bool "BF547m"
194 help
195 BF547 Processor Support.
196
182config BF548 197config BF548
183 bool "BF548" 198 bool "BF548"
184 help 199 help
185 BF548 Processor Support. 200 BF548 Processor Support.
186 201
202config BF548M
203 bool "BF548m"
204 help
205 BF548 Processor Support.
206
187config BF549 207config BF549
188 bool "BF549" 208 bool "BF549"
189 help 209 help
190 BF549 Processor Support. 210 BF549 Processor Support.
191 211
212config BF549M
213 bool "BF549m"
214 help
215 BF549 Processor Support.
216
192config BF561 217config BF561
193 bool "BF561" 218 bool "BF561"
194 help 219 help
@@ -224,39 +249,39 @@ config TICK_SOURCE_SYSTMR0
224 249
225config BF_REV_MIN 250config BF_REV_MIN
226 int 251 int
227 default 0 if (BF51x || BF52x || BF54x) 252 default 0 if (BF51x || BF52x || (BF54x && !BF54xM))
228 default 2 if (BF537 || BF536 || BF534) 253 default 2 if (BF537 || BF536 || BF534)
229 default 3 if (BF561 ||BF533 || BF532 || BF531) 254 default 3 if (BF561 || BF533 || BF532 || BF531 || BF54xM)
230 default 4 if (BF538 || BF539) 255 default 4 if (BF538 || BF539)
231 256
232config BF_REV_MAX 257config BF_REV_MAX
233 int 258 int
234 default 2 if (BF51x || BF52x || BF54x) 259 default 2 if (BF51x || BF52x || (BF54x && !BF54xM))
235 default 3 if (BF537 || BF536 || BF534) 260 default 3 if (BF537 || BF536 || BF534 || BF54xM)
236 default 5 if (BF561 || BF538 || BF539) 261 default 5 if (BF561 || BF538 || BF539)
237 default 6 if (BF533 || BF532 || BF531) 262 default 6 if (BF533 || BF532 || BF531)
238 263
239choice 264choice
240 prompt "Silicon Rev" 265 prompt "Silicon Rev"
241 default BF_REV_0_1 if (BF51x || BF52x || BF54x) 266 default BF_REV_0_1 if (BF51x || BF52x || (BF54x && !BF54xM))
242 default BF_REV_0_2 if (BF534 || BF536 || BF537) 267 default BF_REV_0_2 if (BF534 || BF536 || BF537)
243 default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF561) 268 default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF54xM || BF561)
244 269
245config BF_REV_0_0 270config BF_REV_0_0
246 bool "0.0" 271 bool "0.0"
247 depends on (BF51x || BF52x || BF54x) 272 depends on (BF51x || BF52x || (BF54x && !BF54xM))
248 273
249config BF_REV_0_1 274config BF_REV_0_1
250 bool "0.1" 275 bool "0.1"
251 depends on (BF52x || BF54x) 276 depends on (BF52x || (BF54x && !BF54xM))
252 277
253config BF_REV_0_2 278config BF_REV_0_2
254 bool "0.2" 279 bool "0.2"
255 depends on (BF52x || BF537 || BF536 || BF534 || BF54x) 280 depends on (BF52x || BF537 || BF536 || BF534 || (BF54x && !BF54xM))
256 281
257config BF_REV_0_3 282config BF_REV_0_3
258 bool "0.3" 283 bool "0.3"
259 depends on (BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531) 284 depends on (BF54xM || BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
260 285
261config BF_REV_0_4 286config BF_REV_0_4
262 bool "0.4" 287 bool "0.4"
@@ -293,9 +318,14 @@ config BF53x
293 depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537) 318 depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
294 default y 319 default y
295 320
321config BF54xM
322 bool
323 depends on (BF542M || BF544M || BF547M || BF548M || BF549M)
324 default y
325
296config BF54x 326config BF54x
297 bool 327 bool
298 depends on (BF542 || BF544 || BF547 || BF548 || BF549) 328 depends on (BF542 || BF544 || BF547 || BF548 || BF549 || BF54xM)
299 default y 329 default y
300 330
301config MEM_GENERIC_BOARD 331config MEM_GENERIC_BOARD
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile
index e550c8d46066..d54c8283825c 100644
--- a/arch/blackfin/Makefile
+++ b/arch/blackfin/Makefile
@@ -21,57 +21,67 @@ KALLSYMS += --symbol-prefix=_
21KBUILD_DEFCONFIG := BF537-STAMP_defconfig 21KBUILD_DEFCONFIG := BF537-STAMP_defconfig
22 22
23# setup the machine name and the machine dependent settings 23# setup the machine name and the machine dependent settings
24machine-$(CONFIG_BF512) := bf518 24machine-$(CONFIG_BF512) := bf518
25machine-$(CONFIG_BF514) := bf518 25machine-$(CONFIG_BF514) := bf518
26machine-$(CONFIG_BF516) := bf518 26machine-$(CONFIG_BF516) := bf518
27machine-$(CONFIG_BF518) := bf518 27machine-$(CONFIG_BF518) := bf518
28machine-$(CONFIG_BF522) := bf527 28machine-$(CONFIG_BF522) := bf527
29machine-$(CONFIG_BF523) := bf527 29machine-$(CONFIG_BF523) := bf527
30machine-$(CONFIG_BF524) := bf527 30machine-$(CONFIG_BF524) := bf527
31machine-$(CONFIG_BF525) := bf527 31machine-$(CONFIG_BF525) := bf527
32machine-$(CONFIG_BF526) := bf527 32machine-$(CONFIG_BF526) := bf527
33machine-$(CONFIG_BF527) := bf527 33machine-$(CONFIG_BF527) := bf527
34machine-$(CONFIG_BF531) := bf533 34machine-$(CONFIG_BF531) := bf533
35machine-$(CONFIG_BF532) := bf533 35machine-$(CONFIG_BF532) := bf533
36machine-$(CONFIG_BF533) := bf533 36machine-$(CONFIG_BF533) := bf533
37machine-$(CONFIG_BF534) := bf537 37machine-$(CONFIG_BF534) := bf537
38machine-$(CONFIG_BF536) := bf537 38machine-$(CONFIG_BF536) := bf537
39machine-$(CONFIG_BF537) := bf537 39machine-$(CONFIG_BF537) := bf537
40machine-$(CONFIG_BF538) := bf538 40machine-$(CONFIG_BF538) := bf538
41machine-$(CONFIG_BF539) := bf538 41machine-$(CONFIG_BF539) := bf538
42machine-$(CONFIG_BF542) := bf548 42machine-$(CONFIG_BF542) := bf548
43machine-$(CONFIG_BF544) := bf548 43machine-$(CONFIG_BF542M) := bf548
44machine-$(CONFIG_BF547) := bf548 44machine-$(CONFIG_BF544) := bf548
45machine-$(CONFIG_BF548) := bf548 45machine-$(CONFIG_BF544M) := bf548
46machine-$(CONFIG_BF549) := bf548 46machine-$(CONFIG_BF547) := bf548
47machine-$(CONFIG_BF561) := bf561 47machine-$(CONFIG_BF547M) := bf548
48machine-$(CONFIG_BF548) := bf548
49machine-$(CONFIG_BF548M) := bf548
50machine-$(CONFIG_BF549) := bf548
51machine-$(CONFIG_BF549M) := bf548
52machine-$(CONFIG_BF561) := bf561
48MACHINE := $(machine-y) 53MACHINE := $(machine-y)
49export MACHINE 54export MACHINE
50 55
51cpu-$(CONFIG_BF512) := bf512 56cpu-$(CONFIG_BF512) := bf512
52cpu-$(CONFIG_BF514) := bf514 57cpu-$(CONFIG_BF514) := bf514
53cpu-$(CONFIG_BF516) := bf516 58cpu-$(CONFIG_BF516) := bf516
54cpu-$(CONFIG_BF518) := bf518 59cpu-$(CONFIG_BF518) := bf518
55cpu-$(CONFIG_BF522) := bf522 60cpu-$(CONFIG_BF522) := bf522
56cpu-$(CONFIG_BF523) := bf523 61cpu-$(CONFIG_BF523) := bf523
57cpu-$(CONFIG_BF524) := bf524 62cpu-$(CONFIG_BF524) := bf524
58cpu-$(CONFIG_BF525) := bf525 63cpu-$(CONFIG_BF525) := bf525
59cpu-$(CONFIG_BF526) := bf526 64cpu-$(CONFIG_BF526) := bf526
60cpu-$(CONFIG_BF527) := bf527 65cpu-$(CONFIG_BF527) := bf527
61cpu-$(CONFIG_BF531) := bf531 66cpu-$(CONFIG_BF531) := bf531
62cpu-$(CONFIG_BF532) := bf532 67cpu-$(CONFIG_BF532) := bf532
63cpu-$(CONFIG_BF533) := bf533 68cpu-$(CONFIG_BF533) := bf533
64cpu-$(CONFIG_BF534) := bf534 69cpu-$(CONFIG_BF534) := bf534
65cpu-$(CONFIG_BF536) := bf536 70cpu-$(CONFIG_BF536) := bf536
66cpu-$(CONFIG_BF537) := bf537 71cpu-$(CONFIG_BF537) := bf537
67cpu-$(CONFIG_BF538) := bf538 72cpu-$(CONFIG_BF538) := bf538
68cpu-$(CONFIG_BF539) := bf539 73cpu-$(CONFIG_BF539) := bf539
69cpu-$(CONFIG_BF542) := bf542 74cpu-$(CONFIG_BF542) := bf542
70cpu-$(CONFIG_BF544) := bf544 75cpu-$(CONFIG_BF542M) := bf542m
71cpu-$(CONFIG_BF547) := bf547 76cpu-$(CONFIG_BF544) := bf544
72cpu-$(CONFIG_BF548) := bf548 77cpu-$(CONFIG_BF544M) := bf544m
73cpu-$(CONFIG_BF549) := bf549 78cpu-$(CONFIG_BF547) := bf547
74cpu-$(CONFIG_BF561) := bf561 79cpu-$(CONFIG_BF547M) := bf547m
80cpu-$(CONFIG_BF548) := bf548
81cpu-$(CONFIG_BF548M) := bf548m
82cpu-$(CONFIG_BF549) := bf549
83cpu-$(CONFIG_BF549M) := bf549m
84cpu-$(CONFIG_BF561) := bf561
75 85
76rev-$(CONFIG_BF_REV_0_0) := 0.0 86rev-$(CONFIG_BF_REV_0_0) := 0.0
77rev-$(CONFIG_BF_REV_0_1) := 0.1 87rev-$(CONFIG_BF_REV_0_1) := 0.1
diff --git a/arch/blackfin/configs/BF518F-EZBRD_defconfig b/arch/blackfin/configs/BF518F-EZBRD_defconfig
index e0b3f242b555..4fdb9e04759f 100644
--- a/arch/blackfin/configs/BF518F-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF518F-EZBRD_defconfig
@@ -1,6 +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.28-rc2 3# Linux kernel version: 2.6.28-rc2
4# Fri Jan 9 17:58:41 2009
4# 5#
5# CONFIG_MMU is not set 6# CONFIG_MMU is not set
6# CONFIG_FPU is not set 7# CONFIG_FPU is not set
@@ -149,6 +150,7 @@ CONFIG_BF_REV_0_0=y
149# CONFIG_BF_REV_ANY is not set 150# CONFIG_BF_REV_ANY is not set
150# CONFIG_BF_REV_NONE is not set 151# CONFIG_BF_REV_NONE is not set
151CONFIG_BF51x=y 152CONFIG_BF51x=y
153CONFIG_MEM_MT48LC32M8A2_75=y
152CONFIG_BFIN518F_EZBRD=y 154CONFIG_BFIN518F_EZBRD=y
153 155
154# 156#
@@ -598,7 +600,10 @@ CONFIG_PHYLIB=y
598# CONFIG_MDIO_BITBANG is not set 600# CONFIG_MDIO_BITBANG is not set
599CONFIG_NET_ETHERNET=y 601CONFIG_NET_ETHERNET=y
600CONFIG_MII=y 602CONFIG_MII=y
601# CONFIG_BFIN_MAC is not set 603CONFIG_BFIN_MAC=y
604CONFIG_BFIN_TX_DESC_NUM=10
605CONFIG_BFIN_RX_DESC_NUM=20
606# CONFIG_BFIN_MAC_RMII is not set
602# CONFIG_SMC91X is not set 607# CONFIG_SMC91X is not set
603# CONFIG_SMSC911X is not set 608# CONFIG_SMSC911X is not set
604# CONFIG_DM9000 is not set 609# CONFIG_DM9000 is not set
@@ -679,7 +684,7 @@ CONFIG_VT_CONSOLE=y
679CONFIG_HW_CONSOLE=y 684CONFIG_HW_CONSOLE=y
680# CONFIG_VT_HW_CONSOLE_BINDING is not set 685# CONFIG_VT_HW_CONSOLE_BINDING is not set
681# CONFIG_DEVKMEM is not set 686# CONFIG_DEVKMEM is not set
682# CONFIG_BFIN_JTAG_COMM is not set 687CONFIG_BFIN_JTAG_COMM=m
683# CONFIG_SERIAL_NONSTANDARD is not set 688# CONFIG_SERIAL_NONSTANDARD is not set
684 689
685# 690#
@@ -746,9 +751,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
746# Miscellaneous I2C Chip support 751# Miscellaneous I2C Chip support
747# 752#
748# CONFIG_DS1682 is not set 753# CONFIG_DS1682 is not set
749# CONFIG_AT24 is not set 754# CONFIG_EEPROM_AT24 is not set
750# CONFIG_SENSORS_AD5252 is not set 755# CONFIG_SENSORS_AD5252 is not set
751# CONFIG_SENSORS_EEPROM is not set 756# CONFIG_EEPROM_LEGACY is not set
752# CONFIG_SENSORS_PCF8574 is not set 757# CONFIG_SENSORS_PCF8574 is not set
753# CONFIG_PCF8575 is not set 758# CONFIG_PCF8575 is not set
754# CONFIG_SENSORS_PCA9539 is not set 759# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/blackfin/configs/BF526-EZBRD_defconfig b/arch/blackfin/configs/BF526-EZBRD_defconfig
index 69f66c35b2a5..8e2b855b8db7 100644
--- a/arch/blackfin/configs/BF526-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF526-EZBRD_defconfig
@@ -723,7 +723,7 @@ CONFIG_VT_CONSOLE=y
723CONFIG_HW_CONSOLE=y 723CONFIG_HW_CONSOLE=y
724# CONFIG_VT_HW_CONSOLE_BINDING is not set 724# CONFIG_VT_HW_CONSOLE_BINDING is not set
725# CONFIG_DEVKMEM is not set 725# CONFIG_DEVKMEM is not set
726# CONFIG_BFIN_JTAG_COMM is not set 726CONFIG_BFIN_JTAG_COMM=m
727# CONFIG_SERIAL_NONSTANDARD is not set 727# CONFIG_SERIAL_NONSTANDARD is not set
728 728
729# 729#
@@ -793,9 +793,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
793# Miscellaneous I2C Chip support 793# Miscellaneous I2C Chip support
794# 794#
795# CONFIG_DS1682 is not set 795# CONFIG_DS1682 is not set
796# CONFIG_AT24 is not set 796# CONFIG_EEPROM_AT24 is not set
797# CONFIG_SENSORS_AD5252 is not set 797# CONFIG_SENSORS_AD5252 is not set
798# CONFIG_SENSORS_EEPROM is not set 798# CONFIG_EEPROM_LEGACY is not set
799# CONFIG_SENSORS_PCF8574 is not set 799# CONFIG_SENSORS_PCF8574 is not set
800# CONFIG_PCF8575 is not set 800# CONFIG_PCF8575 is not set
801# CONFIG_SENSORS_PCA9539 is not set 801# CONFIG_SENSORS_PCA9539 is not set
@@ -820,7 +820,7 @@ CONFIG_SPI_BFIN=y
820# 820#
821# SPI Protocol Masters 821# SPI Protocol Masters
822# 822#
823# CONFIG_SPI_AT25 is not set 823# CONFIG_EEPROM_AT25 is not set
824# CONFIG_SPI_SPIDEV is not set 824# CONFIG_SPI_SPIDEV is not set
825# CONFIG_SPI_TLE62X0 is not set 825# CONFIG_SPI_TLE62X0 is not set
826CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 826CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig
index f92668af00b0..833128b39724 100644
--- a/arch/blackfin/configs/BF527-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF527-EZKIT_defconfig
@@ -767,7 +767,7 @@ CONFIG_VT_CONSOLE=y
767CONFIG_HW_CONSOLE=y 767CONFIG_HW_CONSOLE=y
768# CONFIG_VT_HW_CONSOLE_BINDING is not set 768# CONFIG_VT_HW_CONSOLE_BINDING is not set
769# CONFIG_DEVKMEM is not set 769# CONFIG_DEVKMEM is not set
770# CONFIG_BFIN_JTAG_COMM is not set 770CONFIG_BFIN_JTAG_COMM=m
771# CONFIG_SERIAL_NONSTANDARD is not set 771# CONFIG_SERIAL_NONSTANDARD is not set
772 772
773# 773#
@@ -837,9 +837,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
837# Miscellaneous I2C Chip support 837# Miscellaneous I2C Chip support
838# 838#
839# CONFIG_DS1682 is not set 839# CONFIG_DS1682 is not set
840# CONFIG_AT24 is not set 840# CONFIG_EEPROM_AT24 is not set
841# CONFIG_SENSORS_AD5252 is not set 841# CONFIG_SENSORS_AD5252 is not set
842# CONFIG_SENSORS_EEPROM is not set 842# CONFIG_EEPROM_LEGACY is not set
843# CONFIG_SENSORS_PCF8574 is not set 843# CONFIG_SENSORS_PCF8574 is not set
844# CONFIG_PCF8575 is not set 844# CONFIG_PCF8575 is not set
845# CONFIG_SENSORS_PCA9539 is not set 845# CONFIG_SENSORS_PCA9539 is not set
@@ -864,7 +864,7 @@ CONFIG_SPI_BFIN=y
864# 864#
865# SPI Protocol Masters 865# SPI Protocol Masters
866# 866#
867# CONFIG_SPI_AT25 is not set 867# CONFIG_EEPROM_AT25 is not set
868# CONFIG_SPI_SPIDEV is not set 868# CONFIG_SPI_SPIDEV is not set
869# CONFIG_SPI_TLE62X0 is not set 869# CONFIG_SPI_TLE62X0 is not set
870CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 870CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig
index 92afd988449b..334c94b51c40 100644
--- a/arch/blackfin/configs/BF533-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF533-EZKIT_defconfig
@@ -672,7 +672,7 @@ CONFIG_BFIN_DMA_INTERFACE=m
672CONFIG_SIMPLE_GPIO=m 672CONFIG_SIMPLE_GPIO=m
673# CONFIG_VT is not set 673# CONFIG_VT is not set
674# CONFIG_DEVKMEM is not set 674# CONFIG_DEVKMEM is not set
675# CONFIG_BFIN_JTAG_COMM is not set 675CONFIG_BFIN_JTAG_COMM=m
676# CONFIG_SERIAL_NONSTANDARD is not set 676# CONFIG_SERIAL_NONSTANDARD is not set
677 677
678# 678#
@@ -719,7 +719,7 @@ CONFIG_SPI_BFIN=y
719# 719#
720# SPI Protocol Masters 720# SPI Protocol Masters
721# 721#
722# CONFIG_SPI_AT25 is not set 722# CONFIG_EEPROM_AT25 is not set
723# CONFIG_SPI_SPIDEV is not set 723# CONFIG_SPI_SPIDEV is not set
724# CONFIG_SPI_TLE62X0 is not set 724# CONFIG_SPI_TLE62X0 is not set
725CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 725CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig
index 49eabb41e9e5..9d733436e300 100644
--- a/arch/blackfin/configs/BF533-STAMP_defconfig
+++ b/arch/blackfin/configs/BF533-STAMP_defconfig
@@ -679,7 +679,7 @@ CONFIG_BFIN_DMA_INTERFACE=m
679CONFIG_SIMPLE_GPIO=m 679CONFIG_SIMPLE_GPIO=m
680# CONFIG_VT is not set 680# CONFIG_VT is not set
681# CONFIG_DEVKMEM is not set 681# CONFIG_DEVKMEM is not set
682# CONFIG_BFIN_JTAG_COMM is not set 682CONFIG_BFIN_JTAG_COMM=m
683# CONFIG_SERIAL_NONSTANDARD is not set 683# CONFIG_SERIAL_NONSTANDARD is not set
684 684
685# 685#
@@ -743,9 +743,9 @@ CONFIG_I2C_HELPER_AUTO=y
743# Miscellaneous I2C Chip support 743# Miscellaneous I2C Chip support
744# 744#
745# CONFIG_DS1682 is not set 745# CONFIG_DS1682 is not set
746# CONFIG_AT24 is not set 746# CONFIG_EEPROM_AT24 is not set
747# CONFIG_SENSORS_AD5252 is not set 747# CONFIG_SENSORS_AD5252 is not set
748# CONFIG_SENSORS_EEPROM is not set 748# CONFIG_EEPROM_LEGACY is not set
749# CONFIG_SENSORS_PCF8574 is not set 749# CONFIG_SENSORS_PCF8574 is not set
750# CONFIG_PCF8575 is not set 750# CONFIG_PCF8575 is not set
751# CONFIG_SENSORS_PCA9539 is not set 751# CONFIG_SENSORS_PCA9539 is not set
@@ -770,7 +770,7 @@ CONFIG_SPI_BFIN=y
770# 770#
771# SPI Protocol Masters 771# SPI Protocol Masters
772# 772#
773# CONFIG_SPI_AT25 is not set 773# CONFIG_EEPROM_AT25 is not set
774# CONFIG_SPI_SPIDEV is not set 774# CONFIG_SPI_SPIDEV is not set
775# CONFIG_SPI_TLE62X0 is not set 775# CONFIG_SPI_TLE62X0 is not set
776CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 776CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig
index 332142f7f9b4..4fb4108d3103 100644
--- a/arch/blackfin/configs/BF537-STAMP_defconfig
+++ b/arch/blackfin/configs/BF537-STAMP_defconfig
@@ -722,7 +722,7 @@ CONFIG_BFIN_DMA_INTERFACE=m
722CONFIG_SIMPLE_GPIO=m 722CONFIG_SIMPLE_GPIO=m
723# CONFIG_VT is not set 723# CONFIG_VT is not set
724# CONFIG_DEVKMEM is not set 724# CONFIG_DEVKMEM is not set
725# CONFIG_BFIN_JTAG_COMM is not set 725CONFIG_BFIN_JTAG_COMM=m
726# CONFIG_SERIAL_NONSTANDARD is not set 726# CONFIG_SERIAL_NONSTANDARD is not set
727 727
728# 728#
@@ -794,9 +794,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
794# Miscellaneous I2C Chip support 794# Miscellaneous I2C Chip support
795# 795#
796# CONFIG_DS1682 is not set 796# CONFIG_DS1682 is not set
797# CONFIG_AT24 is not set 797# CONFIG_EEPROM_AT24 is not set
798CONFIG_SENSORS_AD5252=m 798CONFIG_SENSORS_AD5252=m
799# CONFIG_SENSORS_EEPROM is not set 799# CONFIG_EEPROM_LEGACY is not set
800# CONFIG_SENSORS_PCF8574 is not set 800# CONFIG_SENSORS_PCF8574 is not set
801# CONFIG_PCF8575 is not set 801# CONFIG_PCF8575 is not set
802# CONFIG_SENSORS_PCA9539 is not set 802# CONFIG_SENSORS_PCA9539 is not set
@@ -821,7 +821,7 @@ CONFIG_SPI_BFIN=y
821# 821#
822# SPI Protocol Masters 822# SPI Protocol Masters
823# 823#
824# CONFIG_SPI_AT25 is not set 824# CONFIG_EEPROM_AT25 is not set
825# CONFIG_SPI_SPIDEV is not set 825# CONFIG_SPI_SPIDEV is not set
826# CONFIG_SPI_TLE62X0 is not set 826# CONFIG_SPI_TLE62X0 is not set
827CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 827CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF538-EZKIT_defconfig b/arch/blackfin/configs/BF538-EZKIT_defconfig
index ed15934c67c2..cb32f5624a1b 100644
--- a/arch/blackfin/configs/BF538-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF538-EZKIT_defconfig
@@ -726,7 +726,7 @@ CONFIG_BFIN_DMA_INTERFACE=m
726CONFIG_SIMPLE_GPIO=m 726CONFIG_SIMPLE_GPIO=m
727# CONFIG_VT is not set 727# CONFIG_VT is not set
728# CONFIG_DEVKMEM is not set 728# CONFIG_DEVKMEM is not set
729# CONFIG_BFIN_JTAG_COMM is not set 729CONFIG_BFIN_JTAG_COMM=m
730# CONFIG_SERIAL_NONSTANDARD is not set 730# CONFIG_SERIAL_NONSTANDARD is not set
731 731
732# 732#
@@ -796,9 +796,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
796# Miscellaneous I2C Chip support 796# Miscellaneous I2C Chip support
797# 797#
798# CONFIG_DS1682 is not set 798# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 799# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_AD5252 is not set 800# CONFIG_SENSORS_AD5252 is not set
801# CONFIG_SENSORS_EEPROM is not set 801# CONFIG_EEPROM_LEGACY is not set
802# CONFIG_SENSORS_PCF8574 is not set 802# CONFIG_SENSORS_PCF8574 is not set
803# CONFIG_PCF8575 is not set 803# CONFIG_PCF8575 is not set
804# CONFIG_SENSORS_PCA9539 is not set 804# CONFIG_SENSORS_PCA9539 is not set
@@ -823,7 +823,7 @@ CONFIG_SPI_BFIN=y
823# 823#
824# SPI Protocol Masters 824# SPI Protocol Masters
825# 825#
826# CONFIG_SPI_AT25 is not set 826# CONFIG_EEPROM_AT25 is not set
827# CONFIG_SPI_SPIDEV is not set 827# CONFIG_SPI_SPIDEV is not set
828# CONFIG_SPI_TLE62X0 is not set 828# CONFIG_SPI_TLE62X0 is not set
829CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 829CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig
index d4ed9ce1f62f..0f8697618aa5 100644
--- a/arch/blackfin/configs/BF548-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF548-EZKIT_defconfig
@@ -856,7 +856,7 @@ CONFIG_VT_CONSOLE=y
856CONFIG_HW_CONSOLE=y 856CONFIG_HW_CONSOLE=y
857# CONFIG_VT_HW_CONSOLE_BINDING is not set 857# CONFIG_VT_HW_CONSOLE_BINDING is not set
858# CONFIG_DEVKMEM is not set 858# CONFIG_DEVKMEM is not set
859# CONFIG_BFIN_JTAG_COMM is not set 859CONFIG_BFIN_JTAG_COMM=m
860# CONFIG_SERIAL_NONSTANDARD is not set 860# CONFIG_SERIAL_NONSTANDARD is not set
861 861
862# 862#
@@ -928,9 +928,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
928# Miscellaneous I2C Chip support 928# Miscellaneous I2C Chip support
929# 929#
930# CONFIG_DS1682 is not set 930# CONFIG_DS1682 is not set
931# CONFIG_AT24 is not set 931# CONFIG_EEPROM_AT24 is not set
932# CONFIG_SENSORS_AD5252 is not set 932# CONFIG_SENSORS_AD5252 is not set
933# CONFIG_SENSORS_EEPROM is not set 933# CONFIG_EEPROM_LEGACY is not set
934# CONFIG_SENSORS_PCF8574 is not set 934# CONFIG_SENSORS_PCF8574 is not set
935# CONFIG_PCF8575 is not set 935# CONFIG_PCF8575 is not set
936# CONFIG_SENSORS_PCA9539 is not set 936# CONFIG_SENSORS_PCA9539 is not set
@@ -955,7 +955,7 @@ CONFIG_SPI_BFIN=y
955# 955#
956# SPI Protocol Masters 956# SPI Protocol Masters
957# 957#
958# CONFIG_SPI_AT25 is not set 958# CONFIG_EEPROM_AT25 is not set
959# CONFIG_SPI_SPIDEV is not set 959# CONFIG_SPI_SPIDEV is not set
960# CONFIG_SPI_TLE62X0 is not set 960# CONFIG_SPI_TLE62X0 is not set
961CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 961CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig
index 1ecb7a38c905..042c7adfccfa 100644
--- a/arch/blackfin/configs/BF561-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF561-EZKIT_defconfig
@@ -709,7 +709,7 @@ CONFIG_BFIN_DMA_INTERFACE=m
709CONFIG_SIMPLE_GPIO=m 709CONFIG_SIMPLE_GPIO=m
710# CONFIG_VT is not set 710# CONFIG_VT is not set
711# CONFIG_DEVKMEM is not set 711# CONFIG_DEVKMEM is not set
712# CONFIG_BFIN_JTAG_COMM is not set 712CONFIG_BFIN_JTAG_COMM=m
713# CONFIG_SERIAL_NONSTANDARD is not set 713# CONFIG_SERIAL_NONSTANDARD is not set
714 714
715# 715#
@@ -756,7 +756,7 @@ CONFIG_SPI_BFIN=y
756# 756#
757# SPI Protocol Masters 757# SPI Protocol Masters
758# 758#
759# CONFIG_SPI_AT25 is not set 759# CONFIG_EEPROM_AT25 is not set
760# CONFIG_SPI_SPIDEV is not set 760# CONFIG_SPI_SPIDEV is not set
761# CONFIG_SPI_TLE62X0 is not set 761# CONFIG_SPI_TLE62X0 is not set
762CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 762CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BlackStamp_defconfig b/arch/blackfin/configs/BlackStamp_defconfig
index 9683b2e13097..3a20e281d23c 100644
--- a/arch/blackfin/configs/BlackStamp_defconfig
+++ b/arch/blackfin/configs/BlackStamp_defconfig
@@ -691,7 +691,7 @@ CONFIG_I2C_GPIO=m
691# 691#
692# CONFIG_DS1682 is not set 692# CONFIG_DS1682 is not set
693# CONFIG_SENSORS_AD5252 is not set 693# CONFIG_SENSORS_AD5252 is not set
694# CONFIG_SENSORS_EEPROM is not set 694# CONFIG_EEPROM_LEGACY is not set
695# CONFIG_SENSORS_PCF8574 is not set 695# CONFIG_SENSORS_PCF8574 is not set
696# CONFIG_PCF8575 is not set 696# CONFIG_PCF8575 is not set
697# CONFIG_SENSORS_PCF8591 is not set 697# CONFIG_SENSORS_PCF8591 is not set
@@ -713,7 +713,7 @@ CONFIG_SPI_BFIN=y
713# 713#
714# SPI Protocol Masters 714# SPI Protocol Masters
715# 715#
716CONFIG_SPI_AT25=y 716CONFIG_EEPROM_AT25=y
717CONFIG_SPI_SPIDEV=m 717CONFIG_SPI_SPIDEV=m
718# CONFIG_SPI_TLE62X0 is not set 718# CONFIG_SPI_TLE62X0 is not set
719# CONFIG_W1 is not set 719# CONFIG_W1 is not set
diff --git a/arch/blackfin/configs/CM-BF527_defconfig b/arch/blackfin/configs/CM-BF527_defconfig
index a041e7eba770..865ed85a5760 100644
--- a/arch/blackfin/configs/CM-BF527_defconfig
+++ b/arch/blackfin/configs/CM-BF527_defconfig
@@ -1,7 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24.7 3# Linux kernel version: 2.6.28
4# Fri Jul 18 18:00:41 2008
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -9,7 +8,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
9# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
10CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
11CONFIG_ZONE_DMA=y 10CONFIG_ZONE_DMA=y
12CONFIG_SEMAPHORE_SLEEPERS=y
13CONFIG_GENERIC_FIND_NEXT_BIT=y 11CONFIG_GENERIC_FIND_NEXT_BIT=y
14CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
@@ -32,18 +30,16 @@ CONFIG_SYSVIPC_SYSCTL=y
32# CONFIG_POSIX_MQUEUE is not set 30# CONFIG_POSIX_MQUEUE is not set
33# CONFIG_BSD_PROCESS_ACCT is not set 31# CONFIG_BSD_PROCESS_ACCT is not set
34# CONFIG_TASKSTATS is not set 32# CONFIG_TASKSTATS is not set
35# CONFIG_USER_NS is not set
36# CONFIG_PID_NS is not set
37# CONFIG_AUDIT is not set 33# CONFIG_AUDIT is not set
38CONFIG_IKCONFIG=y 34CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y 35CONFIG_IKCONFIG_PROC=y
40CONFIG_LOG_BUF_SHIFT=14 36CONFIG_LOG_BUF_SHIFT=14
41# CONFIG_CGROUPS is not set 37# CONFIG_CGROUPS is not set
42CONFIG_FAIR_GROUP_SCHED=y 38# CONFIG_GROUP_SCHED is not set
43CONFIG_FAIR_USER_SCHED=y 39CONFIG_SYSFS_DEPRECATED=y
44# CONFIG_FAIR_CGROUP_SCHED is not set 40CONFIG_SYSFS_DEPRECATED_V2=y
45# CONFIG_SYSFS_DEPRECATED is not set
46# CONFIG_RELAY is not set 41# CONFIG_RELAY is not set
42# CONFIG_NAMESPACES is not set
47CONFIG_BLK_DEV_INITRD=y 43CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 44CONFIG_INITRAMFS_SOURCE=""
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -52,26 +48,35 @@ CONFIG_EMBEDDED=y
52CONFIG_UID16=y 48CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 49CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 50CONFIG_KALLSYMS=y
51# CONFIG_KALLSYMS_ALL is not set
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 52# CONFIG_KALLSYMS_EXTRA_PASS is not set
56CONFIG_HOTPLUG=y 53CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 54CONFIG_PRINTK=y
58CONFIG_BUG=y 55CONFIG_BUG=y
59# CONFIG_ELF_CORE is not set 56# CONFIG_ELF_CORE is not set
57CONFIG_COMPAT_BRK=y
60CONFIG_BASE_FULL=y 58CONFIG_BASE_FULL=y
61CONFIG_FUTEX=y 59CONFIG_FUTEX=y
62CONFIG_ANON_INODES=y 60CONFIG_ANON_INODES=y
63CONFIG_EPOLL=y 61CONFIG_EPOLL=y
64CONFIG_SIGNALFD=y 62CONFIG_SIGNALFD=y
63CONFIG_TIMERFD=y
65CONFIG_EVENTFD=y 64CONFIG_EVENTFD=y
65CONFIG_AIO=y
66CONFIG_VM_EVENT_COUNTERS=y 66CONFIG_VM_EVENT_COUNTERS=y
67CONFIG_SLAB=y 67CONFIG_SLAB=y
68# CONFIG_SLUB is not set 68# CONFIG_SLUB is not set
69# CONFIG_SLOB is not set 69# CONFIG_SLOB is not set
70# CONFIG_PROFILING is not set
71# CONFIG_MARKERS is not set
72CONFIG_HAVE_OPROFILE=y
73# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
70CONFIG_SLABINFO=y 74CONFIG_SLABINFO=y
71CONFIG_RT_MUTEXES=y 75CONFIG_RT_MUTEXES=y
72CONFIG_TINY_SHMEM=y 76CONFIG_TINY_SHMEM=y
73CONFIG_BASE_SMALL=0 77CONFIG_BASE_SMALL=0
74CONFIG_MODULES=y 78CONFIG_MODULES=y
79# CONFIG_MODULE_FORCE_LOAD is not set
75CONFIG_MODULE_UNLOAD=y 80CONFIG_MODULE_UNLOAD=y
76# CONFIG_MODULE_FORCE_UNLOAD is not set 81# CONFIG_MODULE_FORCE_UNLOAD is not set
77# CONFIG_MODVERSIONS is not set 82# CONFIG_MODVERSIONS is not set
@@ -82,6 +87,7 @@ CONFIG_BLOCK=y
82# CONFIG_BLK_DEV_IO_TRACE is not set 87# CONFIG_BLK_DEV_IO_TRACE is not set
83# CONFIG_LSF is not set 88# CONFIG_LSF is not set
84# CONFIG_BLK_DEV_BSG is not set 89# CONFIG_BLK_DEV_BSG is not set
90# CONFIG_BLK_DEV_INTEGRITY is not set
85 91
86# 92#
87# IO Schedulers 93# IO Schedulers
@@ -95,9 +101,11 @@ CONFIG_IOSCHED_CFQ=y
95CONFIG_DEFAULT_CFQ=y 101CONFIG_DEFAULT_CFQ=y
96# CONFIG_DEFAULT_NOOP is not set 102# CONFIG_DEFAULT_NOOP is not set
97CONFIG_DEFAULT_IOSCHED="cfq" 103CONFIG_DEFAULT_IOSCHED="cfq"
104CONFIG_CLASSIC_RCU=y
98# CONFIG_PREEMPT_NONE is not set 105# CONFIG_PREEMPT_NONE is not set
99CONFIG_PREEMPT_VOLUNTARY=y 106CONFIG_PREEMPT_VOLUNTARY=y
100# CONFIG_PREEMPT is not set 107# CONFIG_PREEMPT is not set
108# CONFIG_FREEZER is not set
101 109
102# 110#
103# Blackfin Processor Options 111# Blackfin Processor Options
@@ -106,6 +114,10 @@ CONFIG_PREEMPT_VOLUNTARY=y
106# 114#
107# Processor and Board Settings 115# Processor and Board Settings
108# 116#
117# CONFIG_BF512 is not set
118# CONFIG_BF514 is not set
119# CONFIG_BF516 is not set
120# CONFIG_BF518 is not set
109# CONFIG_BF522 is not set 121# CONFIG_BF522 is not set
110# CONFIG_BF523 is not set 122# CONFIG_BF523 is not set
111# CONFIG_BF524 is not set 123# CONFIG_BF524 is not set
@@ -118,48 +130,32 @@ CONFIG_BF527=y
118# CONFIG_BF534 is not set 130# CONFIG_BF534 is not set
119# CONFIG_BF536 is not set 131# CONFIG_BF536 is not set
120# CONFIG_BF537 is not set 132# CONFIG_BF537 is not set
133# CONFIG_BF538 is not set
134# CONFIG_BF539 is not set
121# CONFIG_BF542 is not set 135# CONFIG_BF542 is not set
136# CONFIG_BF542M is not set
122# CONFIG_BF544 is not set 137# CONFIG_BF544 is not set
138# CONFIG_BF544M is not set
123# CONFIG_BF547 is not set 139# CONFIG_BF547 is not set
140# CONFIG_BF547M is not set
124# CONFIG_BF548 is not set 141# CONFIG_BF548 is not set
142# CONFIG_BF548M is not set
125# CONFIG_BF549 is not set 143# CONFIG_BF549 is not set
144# CONFIG_BF549M is not set
126# CONFIG_BF561 is not set 145# CONFIG_BF561 is not set
146CONFIG_BF_REV_MIN=0
147CONFIG_BF_REV_MAX=2
127# CONFIG_BF_REV_0_0 is not set 148# CONFIG_BF_REV_0_0 is not set
128CONFIG_BF_REV_0_1=y 149CONFIG_BF_REV_0_1=y
129# CONFIG_BF_REV_0_2 is not set 150# CONFIG_BF_REV_0_2 is not set
130# CONFIG_BF_REV_0_3 is not set 151# CONFIG_BF_REV_0_3 is not set
131# CONFIG_BF_REV_0_4 is not set 152# CONFIG_BF_REV_0_4 is not set
132# CONFIG_BF_REV_0_5 is not set 153# CONFIG_BF_REV_0_5 is not set
154# CONFIG_BF_REV_0_6 is not set
133# CONFIG_BF_REV_ANY is not set 155# CONFIG_BF_REV_ANY is not set
134# CONFIG_BF_REV_NONE is not set 156# CONFIG_BF_REV_NONE is not set
135CONFIG_BF52x=y 157CONFIG_BF52x=y
136CONFIG_MEM_MT48LC16M16A2TG_75=y 158CONFIG_MEM_MT48LC16M16A2TG_75=y
137# CONFIG_BFIN527_EZKIT is not set
138CONFIG_BFIN527_BLUETECHNIX_CM=y
139
140#
141# BF527 Specific Configuration
142#
143
144#
145# Alternative Multiplexing Scheme
146#
147# CONFIG_BF527_SPORT0_PORTF is not set
148CONFIG_BF527_SPORT0_PORTG=y
149CONFIG_BF527_SPORT0_TSCLK_PG10=y
150# CONFIG_BF527_SPORT0_TSCLK_PG14 is not set
151CONFIG_BF527_UART1_PORTF=y
152# CONFIG_BF527_UART1_PORTG is not set
153# CONFIG_BF527_NAND_D_PORTF is not set
154CONFIG_BF527_NAND_D_PORTH=y
155
156#
157# Interrupt Priority Assignment
158#
159
160#
161# Priority
162#
163CONFIG_IRQ_PLL_WAKEUP=7 159CONFIG_IRQ_PLL_WAKEUP=7
164CONFIG_IRQ_DMA0_ERROR=7 160CONFIG_IRQ_DMA0_ERROR=7
165CONFIG_IRQ_DMAR0_BLK=7 161CONFIG_IRQ_DMAR0_BLK=7
@@ -179,7 +175,6 @@ CONFIG_IRQ_SPORT0_TX=9
179CONFIG_IRQ_SPORT1_RX=9 175CONFIG_IRQ_SPORT1_RX=9
180CONFIG_IRQ_SPORT1_TX=9 176CONFIG_IRQ_SPORT1_TX=9
181CONFIG_IRQ_TWI=10 177CONFIG_IRQ_TWI=10
182CONFIG_IRQ_SPI=10
183CONFIG_IRQ_UART0_RX=10 178CONFIG_IRQ_UART0_RX=10
184CONFIG_IRQ_UART0_TX=10 179CONFIG_IRQ_UART0_TX=10
185CONFIG_IRQ_UART1_RX=10 180CONFIG_IRQ_UART1_RX=10
@@ -205,6 +200,34 @@ CONFIG_IRQ_MEM_DMA1=13
205CONFIG_IRQ_WATCH=13 200CONFIG_IRQ_WATCH=13
206CONFIG_IRQ_PORTF_INTA=13 201CONFIG_IRQ_PORTF_INTA=13
207CONFIG_IRQ_PORTF_INTB=13 202CONFIG_IRQ_PORTF_INTB=13
203# CONFIG_BFIN527_EZKIT is not set
204CONFIG_BFIN527_BLUETECHNIX_CM=y
205# CONFIG_BFIN526_EZBRD is not set
206
207#
208# BF527 Specific Configuration
209#
210
211#
212# Alternative Multiplexing Scheme
213#
214# CONFIG_BF527_SPORT0_PORTF is not set
215CONFIG_BF527_SPORT0_PORTG=y
216CONFIG_BF527_SPORT0_TSCLK_PG10=y
217# CONFIG_BF527_SPORT0_TSCLK_PG14 is not set
218CONFIG_BF527_UART1_PORTF=y
219# CONFIG_BF527_UART1_PORTG is not set
220# CONFIG_BF527_NAND_D_PORTF is not set
221CONFIG_BF527_NAND_D_PORTH=y
222
223#
224# Interrupt Priority Assignment
225#
226
227#
228# Priority
229#
230CONFIG_IRQ_SPI=10
208CONFIG_IRQ_SPI_ERROR=7 231CONFIG_IRQ_SPI_ERROR=7
209CONFIG_IRQ_NFC_ERROR=7 232CONFIG_IRQ_NFC_ERROR=7
210CONFIG_IRQ_HDMA_ERROR=7 233CONFIG_IRQ_HDMA_ERROR=7
@@ -226,7 +249,6 @@ CONFIG_BOOT_LOAD=0x1000
226# 249#
227CONFIG_CLKIN_HZ=25000000 250CONFIG_CLKIN_HZ=25000000
228# CONFIG_BFIN_KERNEL_CLOCK is not set 251# CONFIG_BFIN_KERNEL_CLOCK is not set
229CONFIG_MAX_MEM_SIZE=512
230CONFIG_MAX_VCO_HZ=600000000 252CONFIG_MAX_VCO_HZ=600000000
231CONFIG_MIN_VCO_HZ=50000000 253CONFIG_MIN_VCO_HZ=50000000
232CONFIG_MAX_SCLK_HZ=133333333 254CONFIG_MAX_SCLK_HZ=133333333
@@ -240,10 +262,10 @@ CONFIG_HZ_250=y
240# CONFIG_HZ_300 is not set 262# CONFIG_HZ_300 is not set
241# CONFIG_HZ_1000 is not set 263# CONFIG_HZ_1000 is not set
242CONFIG_HZ=250 264CONFIG_HZ=250
265# CONFIG_SCHED_HRTICK is not set
243CONFIG_GENERIC_TIME=y 266CONFIG_GENERIC_TIME=y
244CONFIG_GENERIC_CLOCKEVENTS=y 267CONFIG_GENERIC_CLOCKEVENTS=y
245# CONFIG_CYCLES_CLOCKSOURCE is not set 268# CONFIG_CYCLES_CLOCKSOURCE is not set
246# CONFIG_TICK_ONESHOT is not set
247# CONFIG_NO_HZ is not set 269# CONFIG_NO_HZ is not set
248# CONFIG_HIGH_RES_TIMERS is not set 270# CONFIG_HIGH_RES_TIMERS is not set
249CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 271CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -277,6 +299,12 @@ CONFIG_ACCESS_OK_L1=y
277CONFIG_CACHELINE_ALIGNED_L1=y 299CONFIG_CACHELINE_ALIGNED_L1=y
278# CONFIG_SYSCALL_TAB_L1 is not set 300# CONFIG_SYSCALL_TAB_L1 is not set
279# CONFIG_CPLB_SWITCH_TAB_L1 is not set 301# CONFIG_CPLB_SWITCH_TAB_L1 is not set
302CONFIG_APP_STACK_L1=y
303
304#
305# Speed Optimizations
306#
307CONFIG_BFIN_INS_LOWOVERHEAD=y
280CONFIG_RAMKERNEL=y 308CONFIG_RAMKERNEL=y
281# CONFIG_ROMKERNEL is not set 309# CONFIG_ROMKERNEL is not set
282CONFIG_SELECT_MEMORY_MODEL=y 310CONFIG_SELECT_MEMORY_MODEL=y
@@ -285,10 +313,10 @@ CONFIG_FLATMEM_MANUAL=y
285# CONFIG_SPARSEMEM_MANUAL is not set 313# CONFIG_SPARSEMEM_MANUAL is not set
286CONFIG_FLATMEM=y 314CONFIG_FLATMEM=y
287CONFIG_FLAT_NODE_MEM_MAP=y 315CONFIG_FLAT_NODE_MEM_MAP=y
288# CONFIG_SPARSEMEM_STATIC is not set 316CONFIG_PAGEFLAGS_EXTENDED=y
289# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
290CONFIG_SPLIT_PTLOCK_CPUS=4 317CONFIG_SPLIT_PTLOCK_CPUS=4
291# CONFIG_RESOURCES_64BIT is not set 318# CONFIG_RESOURCES_64BIT is not set
319# CONFIG_PHYS_ADDR_T_64BIT is not set
292CONFIG_ZONE_DMA_FLAG=1 320CONFIG_ZONE_DMA_FLAG=1
293CONFIG_VIRT_TO_BUS=y 321CONFIG_VIRT_TO_BUS=y
294CONFIG_BFIN_GPTIMERS=y 322CONFIG_BFIN_GPTIMERS=y
@@ -334,7 +362,6 @@ CONFIG_BANK_3=0xFFC0
334# 362#
335# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 363# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
336# 364#
337# CONFIG_PCI is not set
338# CONFIG_ARCH_SUPPORTS_MSI is not set 365# CONFIG_ARCH_SUPPORTS_MSI is not set
339# CONFIG_PCCARD is not set 366# CONFIG_PCCARD is not set
340 367
@@ -345,25 +372,20 @@ CONFIG_BINFMT_ELF_FDPIC=y
345CONFIG_BINFMT_FLAT=y 372CONFIG_BINFMT_FLAT=y
346CONFIG_BINFMT_ZFLAT=y 373CONFIG_BINFMT_ZFLAT=y
347# CONFIG_BINFMT_SHARED_FLAT is not set 374# CONFIG_BINFMT_SHARED_FLAT is not set
375# CONFIG_HAVE_AOUT is not set
348# CONFIG_BINFMT_MISC is not set 376# CONFIG_BINFMT_MISC is not set
349 377
350# 378#
351# Power management options 379# Power management options
352# 380#
353# CONFIG_PM is not set 381# CONFIG_PM is not set
354CONFIG_SUSPEND_UP_POSSIBLE=y 382CONFIG_ARCH_SUSPEND_POSSIBLE=y
355# CONFIG_PM_BFIN_SLEEP_DEEPER is not set
356# CONFIG_PM_BFIN_SLEEP is not set
357# CONFIG_PM_WAKEUP_BY_GPIO is not set 383# CONFIG_PM_WAKEUP_BY_GPIO is not set
358 384
359# 385#
360# CPU Frequency scaling 386# CPU Frequency scaling
361# 387#
362# CONFIG_CPU_FREQ is not set 388# CONFIG_CPU_FREQ is not set
363
364#
365# Networking
366#
367CONFIG_NET=y 389CONFIG_NET=y
368 390
369# 391#
@@ -376,6 +398,7 @@ CONFIG_XFRM=y
376# CONFIG_XFRM_USER is not set 398# CONFIG_XFRM_USER is not set
377# CONFIG_XFRM_SUB_POLICY is not set 399# CONFIG_XFRM_SUB_POLICY is not set
378# CONFIG_XFRM_MIGRATE is not set 400# CONFIG_XFRM_MIGRATE is not set
401# CONFIG_XFRM_STATISTICS is not set
379# CONFIG_NET_KEY is not set 402# CONFIG_NET_KEY is not set
380CONFIG_INET=y 403CONFIG_INET=y
381# CONFIG_IP_MULTICAST is not set 404# CONFIG_IP_MULTICAST is not set
@@ -405,8 +428,6 @@ CONFIG_TCP_CONG_CUBIC=y
405CONFIG_DEFAULT_TCP_CONG="cubic" 428CONFIG_DEFAULT_TCP_CONG="cubic"
406# CONFIG_TCP_MD5SIG is not set 429# CONFIG_TCP_MD5SIG is not set
407# CONFIG_IPV6 is not set 430# CONFIG_IPV6 is not set
408# CONFIG_INET6_XFRM_TUNNEL is not set
409# CONFIG_INET6_TUNNEL is not set
410# CONFIG_NETLABEL is not set 431# CONFIG_NETLABEL is not set
411# CONFIG_NETWORK_SECMARK is not set 432# CONFIG_NETWORK_SECMARK is not set
412# CONFIG_NETFILTER is not set 433# CONFIG_NETFILTER is not set
@@ -415,6 +436,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
415# CONFIG_TIPC is not set 436# CONFIG_TIPC is not set
416# CONFIG_ATM is not set 437# CONFIG_ATM is not set
417# CONFIG_BRIDGE is not set 438# CONFIG_BRIDGE is not set
439# CONFIG_NET_DSA is not set
418# CONFIG_VLAN_8021Q is not set 440# CONFIG_VLAN_8021Q is not set
419# CONFIG_DECNET is not set 441# CONFIG_DECNET is not set
420# CONFIG_LLC2 is not set 442# CONFIG_LLC2 is not set
@@ -431,14 +453,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
431# 453#
432# CONFIG_NET_PKTGEN is not set 454# CONFIG_NET_PKTGEN is not set
433# CONFIG_HAMRADIO is not set 455# CONFIG_HAMRADIO is not set
456# CONFIG_CAN is not set
434# CONFIG_IRDA is not set 457# CONFIG_IRDA is not set
435# CONFIG_BT is not set 458# CONFIG_BT is not set
436# CONFIG_AF_RXRPC is not set 459# CONFIG_AF_RXRPC is not set
437 460# CONFIG_PHONET is not set
438# 461CONFIG_WIRELESS=y
439# Wireless
440#
441# CONFIG_CFG80211 is not set 462# CONFIG_CFG80211 is not set
463CONFIG_WIRELESS_OLD_REGULATORY=y
442# CONFIG_WIRELESS_EXT is not set 464# CONFIG_WIRELESS_EXT is not set
443# CONFIG_MAC80211 is not set 465# CONFIG_MAC80211 is not set
444# CONFIG_IEEE80211 is not set 466# CONFIG_IEEE80211 is not set
@@ -456,6 +478,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
456CONFIG_STANDALONE=y 478CONFIG_STANDALONE=y
457CONFIG_PREVENT_FIRMWARE_BUILD=y 479CONFIG_PREVENT_FIRMWARE_BUILD=y
458# CONFIG_FW_LOADER is not set 480# CONFIG_FW_LOADER is not set
481# CONFIG_DEBUG_DRIVER is not set
482# CONFIG_DEBUG_DEVRES is not set
459# CONFIG_SYS_HYPERVISOR is not set 483# CONFIG_SYS_HYPERVISOR is not set
460# CONFIG_CONNECTOR is not set 484# CONFIG_CONNECTOR is not set
461CONFIG_MTD=y 485CONFIG_MTD=y
@@ -464,6 +488,7 @@ CONFIG_MTD=y
464CONFIG_MTD_PARTITIONS=y 488CONFIG_MTD_PARTITIONS=y
465# CONFIG_MTD_REDBOOT_PARTS is not set 489# CONFIG_MTD_REDBOOT_PARTS is not set
466# CONFIG_MTD_CMDLINE_PARTS is not set 490# CONFIG_MTD_CMDLINE_PARTS is not set
491# CONFIG_MTD_AR7_PARTS is not set
467 492
468# 493#
469# User Modules And Translation Layers 494# User Modules And Translation Layers
@@ -507,6 +532,7 @@ CONFIG_MTD_ROM=m
507# 532#
508CONFIG_MTD_COMPLEX_MAPPINGS=y 533CONFIG_MTD_COMPLEX_MAPPINGS=y
509# CONFIG_MTD_PHYSMAP is not set 534# CONFIG_MTD_PHYSMAP is not set
535# CONFIG_MTD_GPIO_ADDR is not set
510# CONFIG_MTD_UCLINUX is not set 536# CONFIG_MTD_UCLINUX is not set
511# CONFIG_MTD_PLATRAM is not set 537# CONFIG_MTD_PLATRAM is not set
512 538
@@ -542,10 +568,12 @@ CONFIG_BLK_DEV=y
542CONFIG_BLK_DEV_RAM=y 568CONFIG_BLK_DEV_RAM=y
543CONFIG_BLK_DEV_RAM_COUNT=16 569CONFIG_BLK_DEV_RAM_COUNT=16
544CONFIG_BLK_DEV_RAM_SIZE=4096 570CONFIG_BLK_DEV_RAM_SIZE=4096
545CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 571# CONFIG_BLK_DEV_XIP is not set
546# CONFIG_CDROM_PKTCDVD is not set 572# CONFIG_CDROM_PKTCDVD is not set
547# CONFIG_ATA_OVER_ETH is not set 573# CONFIG_ATA_OVER_ETH is not set
574# CONFIG_BLK_DEV_HD is not set
548# CONFIG_MISC_DEVICES is not set 575# CONFIG_MISC_DEVICES is not set
576CONFIG_HAVE_IDE=y
549# CONFIG_IDE is not set 577# CONFIG_IDE is not set
550 578
551# 579#
@@ -558,7 +586,6 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
558# CONFIG_ATA is not set 586# CONFIG_ATA is not set
559# CONFIG_MD is not set 587# CONFIG_MD is not set
560CONFIG_NETDEVICES=y 588CONFIG_NETDEVICES=y
561# CONFIG_NETDEVICES_MULTIQUEUE is not set
562# CONFIG_DUMMY is not set 589# CONFIG_DUMMY is not set
563# CONFIG_BONDING is not set 590# CONFIG_BONDING is not set
564# CONFIG_MACVLAN is not set 591# CONFIG_MACVLAN is not set
@@ -579,6 +606,7 @@ CONFIG_PHYLIB=y
579# CONFIG_SMSC_PHY is not set 606# CONFIG_SMSC_PHY is not set
580# CONFIG_BROADCOM_PHY is not set 607# CONFIG_BROADCOM_PHY is not set
581# CONFIG_ICPLUS_PHY is not set 608# CONFIG_ICPLUS_PHY is not set
609# CONFIG_REALTEK_PHY is not set
582# CONFIG_FIXED_PHY is not set 610# CONFIG_FIXED_PHY is not set
583# CONFIG_MDIO_BITBANG is not set 611# CONFIG_MDIO_BITBANG is not set
584CONFIG_NET_ETHERNET=y 612CONFIG_NET_ETHERNET=y
@@ -591,11 +619,14 @@ CONFIG_BFIN_MAC_RMII=y
591# CONFIG_SMC91X is not set 619# CONFIG_SMC91X is not set
592# CONFIG_SMSC911X is not set 620# CONFIG_SMSC911X is not set
593# CONFIG_DM9000 is not set 621# CONFIG_DM9000 is not set
622# CONFIG_ENC28J60 is not set
594# CONFIG_IBM_NEW_EMAC_ZMII is not set 623# CONFIG_IBM_NEW_EMAC_ZMII is not set
595# CONFIG_IBM_NEW_EMAC_RGMII is not set 624# CONFIG_IBM_NEW_EMAC_RGMII is not set
596# CONFIG_IBM_NEW_EMAC_TAH is not set 625# CONFIG_IBM_NEW_EMAC_TAH is not set
597# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 626# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
598# CONFIG_B44 is not set 627# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
628# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
629# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
599# CONFIG_NETDEV_1000 is not set 630# CONFIG_NETDEV_1000 is not set
600# CONFIG_NETDEV_10000 is not set 631# CONFIG_NETDEV_10000 is not set
601 632
@@ -604,6 +635,7 @@ CONFIG_BFIN_MAC_RMII=y
604# 635#
605# CONFIG_WLAN_PRE80211 is not set 636# CONFIG_WLAN_PRE80211 is not set
606# CONFIG_WLAN_80211 is not set 637# CONFIG_WLAN_80211 is not set
638# CONFIG_IWLWIFI_LEDS is not set
607 639
608# 640#
609# USB Network Adapters 641# USB Network Adapters
@@ -616,7 +648,6 @@ CONFIG_BFIN_MAC_RMII=y
616# CONFIG_WAN is not set 648# CONFIG_WAN is not set
617# CONFIG_PPP is not set 649# CONFIG_PPP is not set
618# CONFIG_SLIP is not set 650# CONFIG_SLIP is not set
619# CONFIG_SHAPER is not set
620# CONFIG_NETCONSOLE is not set 651# CONFIG_NETCONSOLE is not set
621# CONFIG_NETPOLL is not set 652# CONFIG_NETPOLL is not set
622# CONFIG_NET_POLL_CONTROLLER is not set 653# CONFIG_NET_POLL_CONTROLLER is not set
@@ -642,14 +673,15 @@ CONFIG_BFIN_MAC_RMII=y
642# CONFIG_BF5xx_PPIFCD is not set 673# CONFIG_BF5xx_PPIFCD is not set
643# CONFIG_BFIN_SIMPLE_TIMER is not set 674# CONFIG_BFIN_SIMPLE_TIMER is not set
644# CONFIG_BF5xx_PPI is not set 675# CONFIG_BF5xx_PPI is not set
645CONFIG_BFIN_OTP=y 676# CONFIG_BF5xx_EPPI is not set
646# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
647# CONFIG_BFIN_SPORT is not set 677# CONFIG_BFIN_SPORT is not set
648# CONFIG_BFIN_TIMER_LATENCY is not set 678# CONFIG_BFIN_TIMER_LATENCY is not set
649# CONFIG_TWI_LCD is not set 679# CONFIG_TWI_LCD is not set
680CONFIG_BFIN_DMA_INTERFACE=m
650CONFIG_SIMPLE_GPIO=m 681CONFIG_SIMPLE_GPIO=m
651# CONFIG_VT is not set 682# CONFIG_VT is not set
652# CONFIG_DEVKMEM is not set 683# CONFIG_DEVKMEM is not set
684# CONFIG_BFIN_JTAG_COMM is not set
653# CONFIG_SERIAL_NONSTANDARD is not set 685# CONFIG_SERIAL_NONSTANDARD is not set
654 686
655# 687#
@@ -673,6 +705,8 @@ CONFIG_SERIAL_CORE_CONSOLE=y
673# CONFIG_SERIAL_BFIN_SPORT is not set 705# CONFIG_SERIAL_BFIN_SPORT is not set
674CONFIG_UNIX98_PTYS=y 706CONFIG_UNIX98_PTYS=y
675# CONFIG_LEGACY_PTYS is not set 707# CONFIG_LEGACY_PTYS is not set
708CONFIG_BFIN_OTP=y
709# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
676 710
677# 711#
678# CAN, the car bus and industrial fieldbus 712# CAN, the car bus and industrial fieldbus
@@ -680,44 +714,49 @@ CONFIG_UNIX98_PTYS=y
680# CONFIG_CAN4LINUX is not set 714# CONFIG_CAN4LINUX is not set
681# CONFIG_IPMI_HANDLER is not set 715# CONFIG_IPMI_HANDLER is not set
682# CONFIG_HW_RANDOM is not set 716# CONFIG_HW_RANDOM is not set
683# CONFIG_GEN_RTC is not set
684# CONFIG_R3964 is not set 717# CONFIG_R3964 is not set
685# CONFIG_RAW_DRIVER is not set 718# CONFIG_RAW_DRIVER is not set
686# CONFIG_TCG_TPM is not set 719# CONFIG_TCG_TPM is not set
687CONFIG_I2C=y 720CONFIG_I2C=y
688CONFIG_I2C_BOARDINFO=y 721CONFIG_I2C_BOARDINFO=y
689CONFIG_I2C_CHARDEV=m 722CONFIG_I2C_CHARDEV=m
723CONFIG_I2C_HELPER_AUTO=y
690 724
691# 725#
692# I2C Algorithms 726# I2C Hardware Bus support
693# 727#
694# CONFIG_I2C_ALGOBIT is not set
695# CONFIG_I2C_ALGOPCF is not set
696# CONFIG_I2C_ALGOPCA is not set
697 728
698# 729#
699# I2C Hardware Bus support 730# I2C system bus drivers (mostly embedded / system-on-chip)
700# 731#
701CONFIG_I2C_BLACKFIN_TWI=m 732CONFIG_I2C_BLACKFIN_TWI=m
702CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100 733CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
703# CONFIG_I2C_GPIO is not set 734# CONFIG_I2C_GPIO is not set
704# CONFIG_I2C_OCORES is not set 735# CONFIG_I2C_OCORES is not set
705# CONFIG_I2C_PARPORT_LIGHT is not set
706# CONFIG_I2C_SIMTEC is not set 736# CONFIG_I2C_SIMTEC is not set
737
738#
739# External I2C/SMBus adapter drivers
740#
741# CONFIG_I2C_PARPORT_LIGHT is not set
707# CONFIG_I2C_TAOS_EVM is not set 742# CONFIG_I2C_TAOS_EVM is not set
708# CONFIG_I2C_STUB is not set
709# CONFIG_I2C_TINY_USB is not set 743# CONFIG_I2C_TINY_USB is not set
710 744
711# 745#
746# Other I2C/SMBus bus drivers
747#
748# CONFIG_I2C_PCA_PLATFORM is not set
749# CONFIG_I2C_STUB is not set
750
751#
712# Miscellaneous I2C Chip support 752# Miscellaneous I2C Chip support
713# 753#
714# CONFIG_SENSORS_DS1337 is not set
715# CONFIG_SENSORS_DS1374 is not set
716# CONFIG_DS1682 is not set 754# CONFIG_DS1682 is not set
755# CONFIG_AT24 is not set
717# CONFIG_SENSORS_AD5252 is not set 756# CONFIG_SENSORS_AD5252 is not set
718# CONFIG_SENSORS_EEPROM is not set 757# CONFIG_SENSORS_EEPROM is not set
719# CONFIG_SENSORS_PCF8574 is not set 758# CONFIG_SENSORS_PCF8574 is not set
720# CONFIG_SENSORS_PCF8575 is not set 759# CONFIG_PCF8575 is not set
721# CONFIG_SENSORS_PCA9539 is not set 760# CONFIG_SENSORS_PCA9539 is not set
722# CONFIG_SENSORS_PCF8591 is not set 761# CONFIG_SENSORS_PCF8591 is not set
723# CONFIG_SENSORS_MAX6875 is not set 762# CONFIG_SENSORS_MAX6875 is not set
@@ -726,17 +765,15 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
726# CONFIG_I2C_DEBUG_ALGO is not set 765# CONFIG_I2C_DEBUG_ALGO is not set
727# CONFIG_I2C_DEBUG_BUS is not set 766# CONFIG_I2C_DEBUG_BUS is not set
728# CONFIG_I2C_DEBUG_CHIP is not set 767# CONFIG_I2C_DEBUG_CHIP is not set
729
730#
731# SPI support
732#
733CONFIG_SPI=y 768CONFIG_SPI=y
769# CONFIG_SPI_DEBUG is not set
734CONFIG_SPI_MASTER=y 770CONFIG_SPI_MASTER=y
735 771
736# 772#
737# SPI Master Controller Drivers 773# SPI Master Controller Drivers
738# 774#
739CONFIG_SPI_BFIN=y 775CONFIG_SPI_BFIN=y
776# CONFIG_SPI_BFIN_LOCK is not set
740# CONFIG_SPI_BITBANG is not set 777# CONFIG_SPI_BITBANG is not set
741 778
742# 779#
@@ -745,18 +782,24 @@ CONFIG_SPI_BFIN=y
745# CONFIG_SPI_AT25 is not set 782# CONFIG_SPI_AT25 is not set
746# CONFIG_SPI_SPIDEV is not set 783# CONFIG_SPI_SPIDEV is not set
747# CONFIG_SPI_TLE62X0 is not set 784# CONFIG_SPI_TLE62X0 is not set
785CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
786# CONFIG_GPIOLIB is not set
748# CONFIG_W1 is not set 787# CONFIG_W1 is not set
749# CONFIG_POWER_SUPPLY is not set 788# CONFIG_POWER_SUPPLY is not set
750CONFIG_HWMON=y 789CONFIG_HWMON=y
751# CONFIG_HWMON_VID is not set 790# CONFIG_HWMON_VID is not set
791# CONFIG_SENSORS_AD7414 is not set
752# CONFIG_SENSORS_AD7418 is not set 792# CONFIG_SENSORS_AD7418 is not set
793# CONFIG_SENSORS_ADCXX is not set
753# CONFIG_SENSORS_ADM1021 is not set 794# CONFIG_SENSORS_ADM1021 is not set
754# CONFIG_SENSORS_ADM1025 is not set 795# CONFIG_SENSORS_ADM1025 is not set
755# CONFIG_SENSORS_ADM1026 is not set 796# CONFIG_SENSORS_ADM1026 is not set
756# CONFIG_SENSORS_ADM1029 is not set 797# CONFIG_SENSORS_ADM1029 is not set
757# CONFIG_SENSORS_ADM1031 is not set 798# CONFIG_SENSORS_ADM1031 is not set
758# CONFIG_SENSORS_ADM9240 is not set 799# CONFIG_SENSORS_ADM9240 is not set
800# CONFIG_SENSORS_ADT7462 is not set
759# CONFIG_SENSORS_ADT7470 is not set 801# CONFIG_SENSORS_ADT7470 is not set
802# CONFIG_SENSORS_ADT7473 is not set
760# CONFIG_SENSORS_ATXP1 is not set 803# CONFIG_SENSORS_ATXP1 is not set
761# CONFIG_SENSORS_DS1621 is not set 804# CONFIG_SENSORS_DS1621 is not set
762# CONFIG_SENSORS_F71805F is not set 805# CONFIG_SENSORS_F71805F is not set
@@ -777,6 +820,7 @@ CONFIG_HWMON=y
777# CONFIG_SENSORS_LM90 is not set 820# CONFIG_SENSORS_LM90 is not set
778# CONFIG_SENSORS_LM92 is not set 821# CONFIG_SENSORS_LM92 is not set
779# CONFIG_SENSORS_LM93 is not set 822# CONFIG_SENSORS_LM93 is not set
823# CONFIG_SENSORS_MAX1111 is not set
780# CONFIG_SENSORS_MAX1619 is not set 824# CONFIG_SENSORS_MAX1619 is not set
781# CONFIG_SENSORS_MAX6650 is not set 825# CONFIG_SENSORS_MAX6650 is not set
782# CONFIG_SENSORS_PC87360 is not set 826# CONFIG_SENSORS_PC87360 is not set
@@ -785,6 +829,7 @@ CONFIG_HWMON=y
785# CONFIG_SENSORS_SMSC47M1 is not set 829# CONFIG_SENSORS_SMSC47M1 is not set
786# CONFIG_SENSORS_SMSC47M192 is not set 830# CONFIG_SENSORS_SMSC47M192 is not set
787# CONFIG_SENSORS_SMSC47B397 is not set 831# CONFIG_SENSORS_SMSC47B397 is not set
832# CONFIG_SENSORS_ADS7828 is not set
788# CONFIG_SENSORS_THMC50 is not set 833# CONFIG_SENSORS_THMC50 is not set
789# CONFIG_SENSORS_VT1211 is not set 834# CONFIG_SENSORS_VT1211 is not set
790# CONFIG_SENSORS_W83781D is not set 835# CONFIG_SENSORS_W83781D is not set
@@ -792,9 +837,12 @@ CONFIG_HWMON=y
792# CONFIG_SENSORS_W83792D is not set 837# CONFIG_SENSORS_W83792D is not set
793# CONFIG_SENSORS_W83793 is not set 838# CONFIG_SENSORS_W83793 is not set
794# CONFIG_SENSORS_W83L785TS is not set 839# CONFIG_SENSORS_W83L785TS is not set
840# CONFIG_SENSORS_W83L786NG is not set
795# CONFIG_SENSORS_W83627HF is not set 841# CONFIG_SENSORS_W83627HF is not set
796# CONFIG_SENSORS_W83627EHF is not set 842# CONFIG_SENSORS_W83627EHF is not set
797# CONFIG_HWMON_DEBUG_CHIP is not set 843# CONFIG_HWMON_DEBUG_CHIP is not set
844# CONFIG_THERMAL is not set
845# CONFIG_THERMAL_HWMON is not set
798CONFIG_WATCHDOG=y 846CONFIG_WATCHDOG=y
799# CONFIG_WATCHDOG_NOWAYOUT is not set 847# CONFIG_WATCHDOG_NOWAYOUT is not set
800 848
@@ -810,21 +858,31 @@ CONFIG_BFIN_WDT=y
810# CONFIG_USBPCWATCHDOG is not set 858# CONFIG_USBPCWATCHDOG is not set
811 859
812# 860#
813# Sonics Silicon Backplane
814#
815CONFIG_SSB_POSSIBLE=y
816# CONFIG_SSB is not set
817
818#
819# Multifunction device drivers 861# Multifunction device drivers
820# 862#
863# CONFIG_MFD_CORE is not set
821# CONFIG_MFD_SM501 is not set 864# CONFIG_MFD_SM501 is not set
865# CONFIG_HTC_PASIC3 is not set
866# CONFIG_MFD_TMIO is not set
867# CONFIG_PMIC_DA903X is not set
868# CONFIG_MFD_WM8400 is not set
869# CONFIG_MFD_WM8350_I2C is not set
870# CONFIG_REGULATOR is not set
822 871
823# 872#
824# Multimedia devices 873# Multimedia devices
825# 874#
875
876#
877# Multimedia core support
878#
826# CONFIG_VIDEO_DEV is not set 879# CONFIG_VIDEO_DEV is not set
827# CONFIG_DVB_CORE is not set 880# CONFIG_DVB_CORE is not set
881# CONFIG_VIDEO_MEDIA is not set
882
883#
884# Multimedia drivers
885#
828# CONFIG_DAB is not set 886# CONFIG_DAB is not set
829 887
830# 888#
@@ -839,10 +897,6 @@ CONFIG_SSB_POSSIBLE=y
839# Display device support 897# Display device support
840# 898#
841# CONFIG_DISPLAY_SUPPORT is not set 899# CONFIG_DISPLAY_SUPPORT is not set
842
843#
844# Sound
845#
846# CONFIG_SOUND is not set 900# CONFIG_SOUND is not set
847CONFIG_USB_SUPPORT=y 901CONFIG_USB_SUPPORT=y
848CONFIG_USB_ARCH_HAS_HCD=y 902CONFIG_USB_ARCH_HAS_HCD=y
@@ -850,6 +904,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
850# CONFIG_USB_ARCH_HAS_EHCI is not set 904# CONFIG_USB_ARCH_HAS_EHCI is not set
851CONFIG_USB=y 905CONFIG_USB=y
852# CONFIG_USB_DEBUG is not set 906# CONFIG_USB_DEBUG is not set
907# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
853 908
854# 909#
855# Miscellaneous USB options 910# Miscellaneous USB options
@@ -860,40 +915,48 @@ CONFIG_USB_DEVICE_CLASS=y
860# CONFIG_USB_OTG is not set 915# CONFIG_USB_OTG is not set
861# CONFIG_USB_OTG_WHITELIST is not set 916# CONFIG_USB_OTG_WHITELIST is not set
862CONFIG_USB_OTG_BLACKLIST_HUB=y 917CONFIG_USB_OTG_BLACKLIST_HUB=y
918CONFIG_USB_MON=y
919# CONFIG_USB_WUSB is not set
920# CONFIG_USB_WUSB_CBAF is not set
863 921
864# 922#
865# USB Host Controller Drivers 923# USB Host Controller Drivers
866# 924#
925# CONFIG_USB_C67X00_HCD is not set
867# CONFIG_USB_ISP116X_HCD is not set 926# CONFIG_USB_ISP116X_HCD is not set
868# CONFIG_USB_ISP1362_HCD is not set
869# CONFIG_USB_ISP1760_HCD is not set 927# CONFIG_USB_ISP1760_HCD is not set
928# CONFIG_USB_ISP1362_HCD is not set
870# CONFIG_USB_SL811_HCD is not set 929# CONFIG_USB_SL811_HCD is not set
871# CONFIG_USB_R8A66597_HCD is not set 930# CONFIG_USB_R8A66597_HCD is not set
931# CONFIG_USB_HWA_HCD is not set
872CONFIG_USB_MUSB_HDRC=y 932CONFIG_USB_MUSB_HDRC=y
873CONFIG_USB_MUSB_SOC=y 933CONFIG_USB_MUSB_SOC=y
874 934
875# 935#
876# Blackfin high speed USB support 936# Blackfin high speed USB Support
877# 937#
878CONFIG_USB_MUSB_HOST=y 938CONFIG_USB_MUSB_HOST=y
879# CONFIG_USB_MUSB_PERIPHERAL is not set 939# CONFIG_USB_MUSB_PERIPHERAL is not set
880# CONFIG_USB_MUSB_OTG is not set 940# CONFIG_USB_MUSB_OTG is not set
881CONFIG_USB_MUSB_HDRC_HCD=y 941CONFIG_USB_MUSB_HDRC_HCD=y
882CONFIG_MUSB_PIO_ONLY=y 942CONFIG_MUSB_PIO_ONLY=y
883CONFIG_USB_MUSB_LOGLEVEL=0 943CONFIG_MUSB_DMA_POLL=y
944# CONFIG_USB_MUSB_DEBUG is not set
884 945
885# 946#
886# USB Device Class drivers 947# USB Device Class drivers
887# 948#
888# CONFIG_USB_ACM is not set 949# CONFIG_USB_ACM is not set
889# CONFIG_USB_PRINTER is not set 950# CONFIG_USB_PRINTER is not set
951# CONFIG_USB_WDM is not set
952# CONFIG_USB_TMC is not set
890 953
891# 954#
892# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 955# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
893# 956#
894 957
895# 958#
896# may also be needed; see USB_STORAGE Help for more information 959# see USB_STORAGE Help for more information
897# 960#
898# CONFIG_USB_LIBUSUAL is not set 961# CONFIG_USB_LIBUSUAL is not set
899 962
@@ -901,15 +964,10 @@ CONFIG_USB_MUSB_LOGLEVEL=0
901# USB Imaging devices 964# USB Imaging devices
902# 965#
903# CONFIG_USB_MDC800 is not set 966# CONFIG_USB_MDC800 is not set
904CONFIG_USB_MON=y
905 967
906# 968#
907# USB port drivers 969# USB port drivers
908# 970#
909
910#
911# USB Serial Converter support
912#
913# CONFIG_USB_SERIAL is not set 971# CONFIG_USB_SERIAL is not set
914 972
915# 973#
@@ -918,7 +976,7 @@ CONFIG_USB_MON=y
918# CONFIG_USB_EMI62 is not set 976# CONFIG_USB_EMI62 is not set
919# CONFIG_USB_EMI26 is not set 977# CONFIG_USB_EMI26 is not set
920# CONFIG_USB_ADUTUX is not set 978# CONFIG_USB_ADUTUX is not set
921# CONFIG_USB_AUERSWALD is not set 979# CONFIG_USB_SEVSEG is not set
922# CONFIG_USB_RIO500 is not set 980# CONFIG_USB_RIO500 is not set
923# CONFIG_USB_LEGOTOWER is not set 981# CONFIG_USB_LEGOTOWER is not set
924# CONFIG_USB_LCD is not set 982# CONFIG_USB_LCD is not set
@@ -934,17 +992,13 @@ CONFIG_USB_MON=y
934# CONFIG_USB_LD is not set 992# CONFIG_USB_LD is not set
935# CONFIG_USB_TRANCEVIBRATOR is not set 993# CONFIG_USB_TRANCEVIBRATOR is not set
936# CONFIG_USB_IOWARRIOR is not set 994# CONFIG_USB_IOWARRIOR is not set
937 995# CONFIG_USB_ISIGHTFW is not set
938# 996# CONFIG_USB_VST is not set
939# USB DSL modem support
940#
941
942#
943# USB Gadget Support
944#
945# CONFIG_USB_GADGET is not set 997# CONFIG_USB_GADGET is not set
946# CONFIG_MMC is not set 998# CONFIG_MMC is not set
999# CONFIG_MEMSTICK is not set
947# CONFIG_NEW_LEDS is not set 1000# CONFIG_NEW_LEDS is not set
1001# CONFIG_ACCESSIBILITY is not set
948CONFIG_RTC_LIB=y 1002CONFIG_RTC_LIB=y
949CONFIG_RTC_CLASS=y 1003CONFIG_RTC_CLASS=y
950CONFIG_RTC_HCTOSYS=y 1004CONFIG_RTC_HCTOSYS=y
@@ -973,51 +1027,59 @@ CONFIG_RTC_INTF_DEV=y
973# CONFIG_RTC_DRV_PCF8563 is not set 1027# CONFIG_RTC_DRV_PCF8563 is not set
974# CONFIG_RTC_DRV_PCF8583 is not set 1028# CONFIG_RTC_DRV_PCF8583 is not set
975# CONFIG_RTC_DRV_M41T80 is not set 1029# CONFIG_RTC_DRV_M41T80 is not set
1030# CONFIG_RTC_DRV_S35390A is not set
1031# CONFIG_RTC_DRV_FM3130 is not set
1032# CONFIG_RTC_DRV_RX8581 is not set
976 1033
977# 1034#
978# SPI RTC drivers 1035# SPI RTC drivers
979# 1036#
980# CONFIG_RTC_DRV_RS5C348 is not set 1037# CONFIG_RTC_DRV_M41T94 is not set
1038# CONFIG_RTC_DRV_DS1305 is not set
1039# CONFIG_RTC_DRV_DS1390 is not set
981# CONFIG_RTC_DRV_MAX6902 is not set 1040# CONFIG_RTC_DRV_MAX6902 is not set
1041# CONFIG_RTC_DRV_R9701 is not set
1042# CONFIG_RTC_DRV_RS5C348 is not set
1043# CONFIG_RTC_DRV_DS3234 is not set
982 1044
983# 1045#
984# Platform RTC drivers 1046# Platform RTC drivers
985# 1047#
1048# CONFIG_RTC_DRV_DS1286 is not set
1049# CONFIG_RTC_DRV_DS1511 is not set
986# CONFIG_RTC_DRV_DS1553 is not set 1050# CONFIG_RTC_DRV_DS1553 is not set
987# CONFIG_RTC_DRV_STK17TA8 is not set
988# CONFIG_RTC_DRV_DS1742 is not set 1051# CONFIG_RTC_DRV_DS1742 is not set
1052# CONFIG_RTC_DRV_STK17TA8 is not set
989# CONFIG_RTC_DRV_M48T86 is not set 1053# CONFIG_RTC_DRV_M48T86 is not set
1054# CONFIG_RTC_DRV_M48T35 is not set
990# CONFIG_RTC_DRV_M48T59 is not set 1055# CONFIG_RTC_DRV_M48T59 is not set
1056# CONFIG_RTC_DRV_BQ4802 is not set
991# CONFIG_RTC_DRV_V3020 is not set 1057# CONFIG_RTC_DRV_V3020 is not set
992 1058
993# 1059#
994# on-CPU RTC drivers 1060# on-CPU RTC drivers
995# 1061#
996CONFIG_RTC_DRV_BFIN=y 1062CONFIG_RTC_DRV_BFIN=y
997 1063# CONFIG_DMADEVICES is not set
998#
999# Userspace I/O
1000#
1001# CONFIG_UIO is not set 1064# CONFIG_UIO is not set
1065# CONFIG_STAGING is not set
1002 1066
1003# 1067#
1004# File systems 1068# File systems
1005# 1069#
1006# CONFIG_EXT2_FS is not set 1070# CONFIG_EXT2_FS is not set
1007# CONFIG_EXT3_FS is not set 1071# CONFIG_EXT3_FS is not set
1008# CONFIG_EXT4DEV_FS is not set 1072# CONFIG_EXT4_FS is not set
1009# CONFIG_REISERFS_FS is not set 1073# CONFIG_REISERFS_FS is not set
1010# CONFIG_JFS_FS is not set 1074# CONFIG_JFS_FS is not set
1011# CONFIG_FS_POSIX_ACL is not set 1075# CONFIG_FS_POSIX_ACL is not set
1076CONFIG_FILE_LOCKING=y
1012# CONFIG_XFS_FS is not set 1077# CONFIG_XFS_FS is not set
1013# CONFIG_GFS2_FS is not set
1014# CONFIG_OCFS2_FS is not set 1078# CONFIG_OCFS2_FS is not set
1015# CONFIG_MINIX_FS is not set 1079# CONFIG_DNOTIFY is not set
1016# CONFIG_ROMFS_FS is not set
1017CONFIG_INOTIFY=y 1080CONFIG_INOTIFY=y
1018CONFIG_INOTIFY_USER=y 1081CONFIG_INOTIFY_USER=y
1019# CONFIG_QUOTA is not set 1082# CONFIG_QUOTA is not set
1020# CONFIG_DNOTIFY is not set
1021# CONFIG_AUTOFS_FS is not set 1083# CONFIG_AUTOFS_FS is not set
1022# CONFIG_AUTOFS4_FS is not set 1084# CONFIG_AUTOFS4_FS is not set
1023# CONFIG_FUSE_FS is not set 1085# CONFIG_FUSE_FS is not set
@@ -1059,8 +1121,11 @@ CONFIG_SYSFS=y
1059# CONFIG_JFFS2_FS is not set 1121# CONFIG_JFFS2_FS is not set
1060# CONFIG_CRAMFS is not set 1122# CONFIG_CRAMFS is not set
1061# CONFIG_VXFS_FS is not set 1123# CONFIG_VXFS_FS is not set
1124# CONFIG_MINIX_FS is not set
1125# CONFIG_OMFS_FS is not set
1062# CONFIG_HPFS_FS is not set 1126# CONFIG_HPFS_FS is not set
1063# CONFIG_QNX4FS_FS is not set 1127# CONFIG_QNX4FS_FS is not set
1128# CONFIG_ROMFS_FS is not set
1064# CONFIG_SYSV_FS is not set 1129# CONFIG_SYSV_FS is not set
1065# CONFIG_UFS_FS is not set 1130# CONFIG_UFS_FS is not set
1066CONFIG_NETWORK_FILESYSTEMS=y 1131CONFIG_NETWORK_FILESYSTEMS=y
@@ -1068,13 +1133,12 @@ CONFIG_NFS_FS=m
1068CONFIG_NFS_V3=y 1133CONFIG_NFS_V3=y
1069# CONFIG_NFS_V3_ACL is not set 1134# CONFIG_NFS_V3_ACL is not set
1070# CONFIG_NFS_V4 is not set 1135# CONFIG_NFS_V4 is not set
1071# CONFIG_NFS_DIRECTIO is not set
1072# CONFIG_NFSD is not set 1136# CONFIG_NFSD is not set
1073CONFIG_LOCKD=m 1137CONFIG_LOCKD=m
1074CONFIG_LOCKD_V4=y 1138CONFIG_LOCKD_V4=y
1075CONFIG_NFS_COMMON=y 1139CONFIG_NFS_COMMON=y
1076CONFIG_SUNRPC=m 1140CONFIG_SUNRPC=m
1077# CONFIG_SUNRPC_BIND34 is not set 1141# CONFIG_SUNRPC_REGISTER_V4 is not set
1078# CONFIG_RPCSEC_GSS_KRB5 is not set 1142# CONFIG_RPCSEC_GSS_KRB5 is not set
1079# CONFIG_RPCSEC_GSS_SPKM3 is not set 1143# CONFIG_RPCSEC_GSS_SPKM3 is not set
1080CONFIG_SMB_FS=m 1144CONFIG_SMB_FS=m
@@ -1130,7 +1194,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1130# CONFIG_NLS_KOI8_U is not set 1194# CONFIG_NLS_KOI8_U is not set
1131# CONFIG_NLS_UTF8 is not set 1195# CONFIG_NLS_UTF8 is not set
1132# CONFIG_DLM is not set 1196# CONFIG_DLM is not set
1133# CONFIG_INSTRUMENTATION is not set
1134 1197
1135# 1198#
1136# Kernel hacking 1199# Kernel hacking
@@ -1138,14 +1201,61 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1138# CONFIG_PRINTK_TIME is not set 1201# CONFIG_PRINTK_TIME is not set
1139CONFIG_ENABLE_WARN_DEPRECATED=y 1202CONFIG_ENABLE_WARN_DEPRECATED=y
1140CONFIG_ENABLE_MUST_CHECK=y 1203CONFIG_ENABLE_MUST_CHECK=y
1204CONFIG_FRAME_WARN=1024
1141# CONFIG_MAGIC_SYSRQ is not set 1205# CONFIG_MAGIC_SYSRQ is not set
1142# CONFIG_UNUSED_SYMBOLS is not set 1206# CONFIG_UNUSED_SYMBOLS is not set
1143CONFIG_DEBUG_FS=y 1207CONFIG_DEBUG_FS=y
1144# CONFIG_HEADERS_CHECK is not set 1208# CONFIG_HEADERS_CHECK is not set
1145# CONFIG_DEBUG_KERNEL is not set 1209CONFIG_DEBUG_KERNEL=y
1210# CONFIG_DEBUG_SHIRQ is not set
1211CONFIG_DETECT_SOFTLOCKUP=y
1212# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1213CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1214# CONFIG_SCHED_DEBUG is not set
1215# CONFIG_SCHEDSTATS is not set
1216# CONFIG_TIMER_STATS is not set
1217# CONFIG_DEBUG_OBJECTS is not set
1218# CONFIG_DEBUG_SLAB is not set
1219# CONFIG_DEBUG_RT_MUTEXES is not set
1220# CONFIG_RT_MUTEX_TESTER is not set
1221# CONFIG_DEBUG_SPINLOCK is not set
1222# CONFIG_DEBUG_MUTEXES is not set
1223# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1224# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1225# CONFIG_DEBUG_KOBJECT is not set
1146# CONFIG_DEBUG_BUGVERBOSE is not set 1226# CONFIG_DEBUG_BUGVERBOSE is not set
1227# CONFIG_DEBUG_INFO is not set
1228# CONFIG_DEBUG_VM is not set
1229# CONFIG_DEBUG_WRITECOUNT is not set
1230# CONFIG_DEBUG_MEMORY_INIT is not set
1231# CONFIG_DEBUG_LIST is not set
1232# CONFIG_DEBUG_SG is not set
1233# CONFIG_FRAME_POINTER is not set
1234# CONFIG_BOOT_PRINTK_DELAY is not set
1235# CONFIG_RCU_TORTURE_TEST is not set
1236# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1237# CONFIG_BACKTRACE_SELF_TEST is not set
1238# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1239# CONFIG_FAULT_INJECTION is not set
1240# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1241
1242#
1243# Tracers
1244#
1245# CONFIG_SCHED_TRACER is not set
1246# CONFIG_CONTEXT_SWITCH_TRACER is not set
1247# CONFIG_BOOT_TRACER is not set
1248# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1147# CONFIG_SAMPLES is not set 1249# CONFIG_SAMPLES is not set
1250CONFIG_HAVE_ARCH_KGDB=y
1251# CONFIG_KGDB is not set
1252# CONFIG_DEBUG_STACKOVERFLOW is not set
1253# CONFIG_DEBUG_STACK_USAGE is not set
1254# CONFIG_KGDB_TESTCASE is not set
1255CONFIG_DEBUG_VERBOSE=y
1148CONFIG_DEBUG_MMRS=y 1256CONFIG_DEBUG_MMRS=y
1257# CONFIG_DEBUG_HWERR is not set
1258# CONFIG_DEBUG_DOUBLEFAULT is not set
1149CONFIG_DEBUG_HUNT_FOR_ZERO=y 1259CONFIG_DEBUG_HUNT_FOR_ZERO=y
1150CONFIG_DEBUG_BFIN_HWTRACE_ON=y 1260CONFIG_DEBUG_BFIN_HWTRACE_ON=y
1151CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y 1261CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y
@@ -1154,7 +1264,7 @@ CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y
1154CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0 1264CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0
1155# CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set 1265# CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set
1156# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 1266# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
1157CONFIG_EARLY_PRINTK=y 1267# CONFIG_EARLY_PRINTK is not set
1158# CONFIG_CPLB_INFO is not set 1268# CONFIG_CPLB_INFO is not set
1159CONFIG_ACCESS_CHECK=y 1269CONFIG_ACCESS_CHECK=y
1160 1270
@@ -1163,10 +1273,96 @@ CONFIG_ACCESS_CHECK=y
1163# 1273#
1164# CONFIG_KEYS is not set 1274# CONFIG_KEYS is not set
1165CONFIG_SECURITY=y 1275CONFIG_SECURITY=y
1276# CONFIG_SECURITYFS is not set
1166# CONFIG_SECURITY_NETWORK is not set 1277# CONFIG_SECURITY_NETWORK is not set
1167# CONFIG_SECURITY_CAPABILITIES is not set 1278# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1168# CONFIG_SECURITY_ROOTPLUG is not set 1279# CONFIG_SECURITY_ROOTPLUG is not set
1169# CONFIG_CRYPTO is not set 1280CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1281CONFIG_CRYPTO=y
1282
1283#
1284# Crypto core or helper
1285#
1286# CONFIG_CRYPTO_FIPS is not set
1287# CONFIG_CRYPTO_MANAGER is not set
1288# CONFIG_CRYPTO_MANAGER2 is not set
1289# CONFIG_CRYPTO_GF128MUL is not set
1290# CONFIG_CRYPTO_NULL is not set
1291# CONFIG_CRYPTO_CRYPTD is not set
1292# CONFIG_CRYPTO_AUTHENC is not set
1293# CONFIG_CRYPTO_TEST is not set
1294
1295#
1296# Authenticated Encryption with Associated Data
1297#
1298# CONFIG_CRYPTO_CCM is not set
1299# CONFIG_CRYPTO_GCM is not set
1300# CONFIG_CRYPTO_SEQIV is not set
1301
1302#
1303# Block modes
1304#
1305# CONFIG_CRYPTO_CBC is not set
1306# CONFIG_CRYPTO_CTR is not set
1307# CONFIG_CRYPTO_CTS is not set
1308# CONFIG_CRYPTO_ECB is not set
1309# CONFIG_CRYPTO_LRW is not set
1310# CONFIG_CRYPTO_PCBC is not set
1311# CONFIG_CRYPTO_XTS is not set
1312
1313#
1314# Hash modes
1315#
1316# CONFIG_CRYPTO_HMAC is not set
1317# CONFIG_CRYPTO_XCBC is not set
1318
1319#
1320# Digest
1321#
1322# CONFIG_CRYPTO_CRC32C is not set
1323# CONFIG_CRYPTO_MD4 is not set
1324# CONFIG_CRYPTO_MD5 is not set
1325# CONFIG_CRYPTO_MICHAEL_MIC is not set
1326# CONFIG_CRYPTO_RMD128 is not set
1327# CONFIG_CRYPTO_RMD160 is not set
1328# CONFIG_CRYPTO_RMD256 is not set
1329# CONFIG_CRYPTO_RMD320 is not set
1330# CONFIG_CRYPTO_SHA1 is not set
1331# CONFIG_CRYPTO_SHA256 is not set
1332# CONFIG_CRYPTO_SHA512 is not set
1333# CONFIG_CRYPTO_TGR192 is not set
1334# CONFIG_CRYPTO_WP512 is not set
1335
1336#
1337# Ciphers
1338#
1339# CONFIG_CRYPTO_AES is not set
1340# CONFIG_CRYPTO_ANUBIS is not set
1341# CONFIG_CRYPTO_ARC4 is not set
1342# CONFIG_CRYPTO_BLOWFISH is not set
1343# CONFIG_CRYPTO_CAMELLIA is not set
1344# CONFIG_CRYPTO_CAST5 is not set
1345# CONFIG_CRYPTO_CAST6 is not set
1346# CONFIG_CRYPTO_DES is not set
1347# CONFIG_CRYPTO_FCRYPT is not set
1348# CONFIG_CRYPTO_KHAZAD is not set
1349# CONFIG_CRYPTO_SALSA20 is not set
1350# CONFIG_CRYPTO_SEED is not set
1351# CONFIG_CRYPTO_SERPENT is not set
1352# CONFIG_CRYPTO_TEA is not set
1353# CONFIG_CRYPTO_TWOFISH is not set
1354
1355#
1356# Compression
1357#
1358# CONFIG_CRYPTO_DEFLATE is not set
1359# CONFIG_CRYPTO_LZO is not set
1360
1361#
1362# Random Number Generation
1363#
1364# CONFIG_CRYPTO_ANSI_CPRNG is not set
1365CONFIG_CRYPTO_HW=y
1170 1366
1171# 1367#
1172# Library routines 1368# Library routines
@@ -1174,6 +1370,7 @@ CONFIG_SECURITY=y
1174CONFIG_BITREVERSE=y 1370CONFIG_BITREVERSE=y
1175CONFIG_CRC_CCITT=m 1371CONFIG_CRC_CCITT=m
1176# CONFIG_CRC16 is not set 1372# CONFIG_CRC16 is not set
1373# CONFIG_CRC_T10DIF is not set
1177# CONFIG_CRC_ITU_T is not set 1374# CONFIG_CRC_ITU_T is not set
1178CONFIG_CRC32=y 1375CONFIG_CRC32=y
1179# CONFIG_CRC7 is not set 1376# CONFIG_CRC7 is not set
diff --git a/arch/blackfin/configs/CM-BF548_defconfig b/arch/blackfin/configs/CM-BF548_defconfig
index efd68bc78f35..efe9741b1f14 100644
--- a/arch/blackfin/configs/CM-BF548_defconfig
+++ b/arch/blackfin/configs/CM-BF548_defconfig
@@ -798,7 +798,7 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
798# CONFIG_SENSORS_DS1374 is not set 798# CONFIG_SENSORS_DS1374 is not set
799# CONFIG_DS1682 is not set 799# CONFIG_DS1682 is not set
800# CONFIG_SENSORS_AD5252 is not set 800# CONFIG_SENSORS_AD5252 is not set
801# CONFIG_SENSORS_EEPROM is not set 801# CONFIG_EEPROM_LEGACY is not set
802# CONFIG_SENSORS_PCF8574 is not set 802# CONFIG_SENSORS_PCF8574 is not set
803# CONFIG_SENSORS_PCF8575 is not set 803# CONFIG_SENSORS_PCF8575 is not set
804# CONFIG_SENSORS_PCA9543 is not set 804# CONFIG_SENSORS_PCA9543 is not set
@@ -826,7 +826,7 @@ CONFIG_SPI_BFIN=y
826# 826#
827# SPI Protocol Masters 827# SPI Protocol Masters
828# 828#
829# CONFIG_SPI_AT25 is not set 829# CONFIG_EEPROM_AT25 is not set
830# CONFIG_SPI_SPIDEV is not set 830# CONFIG_SPI_SPIDEV is not set
831# CONFIG_SPI_TLE62X0 is not set 831# CONFIG_SPI_TLE62X0 is not set
832# CONFIG_W1 is not set 832# CONFIG_W1 is not set
diff --git a/arch/blackfin/configs/H8606_defconfig b/arch/blackfin/configs/H8606_defconfig
index 5d3901d23fd1..bd553da15db8 100644
--- a/arch/blackfin/configs/H8606_defconfig
+++ b/arch/blackfin/configs/H8606_defconfig
@@ -750,7 +750,7 @@ CONFIG_SPI_BFIN=y
750# 750#
751# SPI Protocol Masters 751# SPI Protocol Masters
752# 752#
753CONFIG_SPI_AT25=y 753CONFIG_EEPROM_AT25=y
754CONFIG_SPI_SPIDEV=y 754CONFIG_SPI_SPIDEV=y
755 755
756# 756#
diff --git a/arch/blackfin/configs/IP0X_defconfig b/arch/blackfin/configs/IP0X_defconfig
index e66f5daaa828..eae83b5de92f 100644
--- a/arch/blackfin/configs/IP0X_defconfig
+++ b/arch/blackfin/configs/IP0X_defconfig
@@ -803,7 +803,7 @@ CONFIG_SPI_BFIN=y
803# 803#
804# SPI Protocol Masters 804# SPI Protocol Masters
805# 805#
806# CONFIG_SPI_AT25 is not set 806# CONFIG_EEPROM_AT25 is not set
807# CONFIG_SPI_SPIDEV is not set 807# CONFIG_SPI_SPIDEV is not set
808 808
809# 809#
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig
index ce5dde9de9db..ad096702ac16 100644
--- a/arch/blackfin/configs/PNAV-10_defconfig
+++ b/arch/blackfin/configs/PNAV-10_defconfig
@@ -755,9 +755,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
755# Miscellaneous I2C Chip support 755# Miscellaneous I2C Chip support
756# 756#
757# CONFIG_DS1682 is not set 757# CONFIG_DS1682 is not set
758# CONFIG_AT24 is not set 758# CONFIG_EEPROM_AT24 is not set
759# CONFIG_SENSORS_AD5252 is not set 759# CONFIG_SENSORS_AD5252 is not set
760# CONFIG_SENSORS_EEPROM is not set 760# CONFIG_EEPROM_LEGACY is not set
761CONFIG_SENSORS_PCF8574=m 761CONFIG_SENSORS_PCF8574=m
762# CONFIG_PCF8575 is not set 762# CONFIG_PCF8575 is not set
763# CONFIG_SENSORS_PCA9539 is not set 763# CONFIG_SENSORS_PCA9539 is not set
@@ -781,7 +781,7 @@ CONFIG_SPI_BFIN=y
781# 781#
782# SPI Protocol Masters 782# SPI Protocol Masters
783# 783#
784# CONFIG_SPI_AT25 is not set 784# CONFIG_EEPROM_AT25 is not set
785# CONFIG_SPI_SPIDEV is not set 785# CONFIG_SPI_SPIDEV is not set
786# CONFIG_SPI_TLE62X0 is not set 786# CONFIG_SPI_TLE62X0 is not set
787CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 787CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/SRV1_defconfig b/arch/blackfin/configs/SRV1_defconfig
index 7c8250d6fa66..fa580affc9d6 100644
--- a/arch/blackfin/configs/SRV1_defconfig
+++ b/arch/blackfin/configs/SRV1_defconfig
@@ -798,7 +798,7 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
798# CONFIG_SENSORS_DS1337 is not set 798# CONFIG_SENSORS_DS1337 is not set
799# CONFIG_SENSORS_DS1374 is not set 799# CONFIG_SENSORS_DS1374 is not set
800# CONFIG_SENSORS_AD5252 is not set 800# CONFIG_SENSORS_AD5252 is not set
801# CONFIG_SENSORS_EEPROM is not set 801# CONFIG_EEPROM_LEGACY is not set
802# CONFIG_SENSORS_PCF8574 is not set 802# CONFIG_SENSORS_PCF8574 is not set
803# CONFIG_SENSORS_PCF8575 is not set 803# CONFIG_SENSORS_PCF8575 is not set
804# CONFIG_SENSORS_PCA9543 is not set 804# CONFIG_SENSORS_PCA9543 is not set
@@ -826,7 +826,7 @@ CONFIG_SPI_BFIN=y
826# 826#
827# SPI Protocol Masters 827# SPI Protocol Masters
828# 828#
829CONFIG_SPI_AT25=m 829CONFIG_EEPROM_AT25=m
830# CONFIG_SPI_SPIDEV is not set 830# CONFIG_SPI_SPIDEV is not set
831 831
832# 832#
diff --git a/arch/blackfin/configs/TCM-BF537_defconfig b/arch/blackfin/configs/TCM-BF537_defconfig
index 9af522c7dadf..97a1f1d20dcf 100644
--- a/arch/blackfin/configs/TCM-BF537_defconfig
+++ b/arch/blackfin/configs/TCM-BF537_defconfig
@@ -533,7 +533,7 @@ CONFIG_SPI_BFIN=y
533# 533#
534# SPI Protocol Masters 534# SPI Protocol Masters
535# 535#
536# CONFIG_SPI_AT25 is not set 536# CONFIG_EEPROM_AT25 is not set
537# CONFIG_SPI_SPIDEV is not set 537# CONFIG_SPI_SPIDEV is not set
538# CONFIG_SPI_TLE62X0 is not set 538# CONFIG_SPI_TLE62X0 is not set
539CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 539CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/include/asm/Kbuild b/arch/blackfin/include/asm/Kbuild
index d0d1ac435544..606ecfdcc962 100644
--- a/arch/blackfin/include/asm/Kbuild
+++ b/arch/blackfin/include/asm/Kbuild
@@ -1,4 +1,3 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2
3unifdef-y += fixed_code.h 3unifdef-y += fixed_code.h
4unifdef-y += swab.h
diff --git a/arch/blackfin/include/asm/byteorder.h b/arch/blackfin/include/asm/byteorder.h
index b9e797a497b4..3e69106a4d37 100644
--- a/arch/blackfin/include/asm/byteorder.h
+++ b/arch/blackfin/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _BLACKFIN_BYTEORDER_H 1#ifndef _BLACKFIN_BYTEORDER_H
2#define _BLACKFIN_BYTEORDER_H 2#define _BLACKFIN_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/little_endian.h> 4#include <linux/byteorder/little_endian.h>
6 5
7#endif /* _BLACKFIN_BYTEORDER_H */ 6#endif /* _BLACKFIN_BYTEORDER_H */
diff --git a/arch/blackfin/include/asm/checksum.h b/arch/blackfin/include/asm/checksum.h
index f67289a0d8d2..793581fc9556 100644
--- a/arch/blackfin/include/asm/checksum.h
+++ b/arch/blackfin/include/asm/checksum.h
@@ -63,23 +63,23 @@ static inline __wsum
63csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 63csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
64 unsigned short proto, __wsum sum) 64 unsigned short proto, __wsum sum)
65{ 65{
66 66 unsigned int carry;
67 __asm__ ("%0 = %0 + %1;\n\t" 67
68 "CC = AC0;\n\t" 68 __asm__ ("%0 = %0 + %2;\n\t"
69 "if !CC jump 4;\n\t" 69 "CC = AC0;\n\t"
70 "%0 = %0 + %4;\n\t" 70 "%1 = CC;\n\t"
71 "%0 = %0 + %2;\n\t" 71 "%0 = %0 + %1;\n\t"
72 "CC = AC0;\n\t" 72 "%0 = %0 + %3;\n\t"
73 "if !CC jump 4;\n\t" 73 "CC = AC0;\n\t"
74 "%0 = %0 + %4;\n\t" 74 "%1 = CC;\n\t"
75 "%0 = %0 + %3;\n\t" 75 "%0 = %0 + %1;\n\t"
76 "CC = AC0;\n\t" 76 "%0 = %0 + %4;\n\t"
77 "if !CC jump 4;\n\t" 77 "CC = AC0;\n\t"
78 "%0 = %0 + %4;\n\t" 78 "%1 = CC;\n\t"
79 "NOP;\n\t" 79 "%0 = %0 + %1;\n\t"
80 : "=d" (sum) 80 : "=d" (sum), "=&d" (carry)
81 : "d" (daddr), "d" (saddr), "d" ((ntohs(len)<<16)+proto*256), "d" (1), "0"(sum) 81 : "d" (daddr), "d" (saddr), "d" ((len + proto) << 8), "0"(sum)
82 : "CC"); 82 : "CC");
83 83
84 return (sum); 84 return (sum);
85} 85}
diff --git a/arch/blackfin/include/asm/delay.h b/arch/blackfin/include/asm/delay.h
index 0889c3abb593..c31f91cc1d5d 100644
--- a/arch/blackfin/include/asm/delay.h
+++ b/arch/blackfin/include/asm/delay.h
@@ -13,29 +13,7 @@
13 13
14static inline void __delay(unsigned long loops) 14static inline void __delay(unsigned long loops)
15{ 15{
16 if (ANOMALY_05000312) { 16__asm__ __volatile__ (
17 /* Interrupted loads to loop registers -> bad */
18 unsigned long tmp;
19 __asm__ __volatile__(
20 "[--SP] = LC0;"
21 "[--SP] = LT0;"
22 "[--SP] = LB0;"
23 "LSETUP (1f,1f) LC0 = %1;"
24 "1: NOP;"
25 /* We take advantage of the fact that LC0 is 0 at
26 * the end of the loop. Otherwise we'd need some
27 * NOPs after the CLI here.
28 */
29 "CLI %0;"
30 "LB0 = [SP++];"
31 "LT0 = [SP++];"
32 "LC0 = [SP++];"
33 "STI %0;"
34 : "=d" (tmp)
35 : "a" (loops)
36 );
37 } else
38 __asm__ __volatile__ (
39 "LSETUP(1f, 1f) LC0 = %0;" 17 "LSETUP(1f, 1f) LC0 = %0;"
40 "1: NOP;" 18 "1: NOP;"
41 : 19 :
@@ -47,16 +25,15 @@ static inline void __delay(unsigned long loops)
47#include <linux/param.h> /* needed for HZ */ 25#include <linux/param.h> /* needed for HZ */
48 26
49/* 27/*
50 * Use only for very small delays ( < 1 msec). Should probably use a 28 * close approximation borrowed from m68knommu to avoid 64-bit math
51 * lookup table, really, as the multiplications take much too long with
52 * short delays. This is a "reasonable" implementation, though (and the
53 * first constant multiplications gets optimized away if the delay is
54 * a constant)
55 */ 29 */
30
31#define HZSCALE (268435456 / (1000000/HZ))
32
56static inline void udelay(unsigned long usecs) 33static inline void udelay(unsigned long usecs)
57{ 34{
58 extern unsigned long loops_per_jiffy; 35 extern unsigned long loops_per_jiffy;
59 __delay(usecs * loops_per_jiffy / (1000000 / HZ)); 36 __delay((((usecs * HZSCALE) >> 11) * (loops_per_jiffy >> 11)) >> 6);
60} 37}
61 38
62#endif 39#endif
diff --git a/arch/blackfin/include/asm/gpio.h b/arch/blackfin/include/asm/gpio.h
index 9477d82fcad2..d4a082ef75b4 100644
--- a/arch/blackfin/include/asm/gpio.h
+++ b/arch/blackfin/include/asm/gpio.h
@@ -27,60 +27,6 @@
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */ 28 */
29 29
30/*
31* Number BF537/6/4 BF561 BF533/2/1
32* BF527/5/2
33*
34* GPIO_0 PF0 PF0 PF0
35* GPIO_1 PF1 PF1 PF1
36* GPIO_2 PF2 PF2 PF2
37* GPIO_3 PF3 PF3 PF3
38* GPIO_4 PF4 PF4 PF4
39* GPIO_5 PF5 PF5 PF5
40* GPIO_6 PF6 PF6 PF6
41* GPIO_7 PF7 PF7 PF7
42* GPIO_8 PF8 PF8 PF8
43* GPIO_9 PF9 PF9 PF9
44* GPIO_10 PF10 PF10 PF10
45* GPIO_11 PF11 PF11 PF11
46* GPIO_12 PF12 PF12 PF12
47* GPIO_13 PF13 PF13 PF13
48* GPIO_14 PF14 PF14 PF14
49* GPIO_15 PF15 PF15 PF15
50* GPIO_16 PG0 PF16
51* GPIO_17 PG1 PF17
52* GPIO_18 PG2 PF18
53* GPIO_19 PG3 PF19
54* GPIO_20 PG4 PF20
55* GPIO_21 PG5 PF21
56* GPIO_22 PG6 PF22
57* GPIO_23 PG7 PF23
58* GPIO_24 PG8 PF24
59* GPIO_25 PG9 PF25
60* GPIO_26 PG10 PF26
61* GPIO_27 PG11 PF27
62* GPIO_28 PG12 PF28
63* GPIO_29 PG13 PF29
64* GPIO_30 PG14 PF30
65* GPIO_31 PG15 PF31
66* GPIO_32 PH0 PF32
67* GPIO_33 PH1 PF33
68* GPIO_34 PH2 PF34
69* GPIO_35 PH3 PF35
70* GPIO_36 PH4 PF36
71* GPIO_37 PH5 PF37
72* GPIO_38 PH6 PF38
73* GPIO_39 PH7 PF39
74* GPIO_40 PH8 PF40
75* GPIO_41 PH9 PF41
76* GPIO_42 PH10 PF42
77* GPIO_43 PH11 PF43
78* GPIO_44 PH12 PF44
79* GPIO_45 PH13 PF45
80* GPIO_46 PH14 PF46
81* GPIO_47 PH15 PF47
82*/
83
84#ifndef __ARCH_BLACKFIN_GPIO_H__ 30#ifndef __ARCH_BLACKFIN_GPIO_H__
85#define __ARCH_BLACKFIN_GPIO_H__ 31#define __ARCH_BLACKFIN_GPIO_H__
86 32
@@ -295,10 +241,6 @@ int bfin_gpio_direction_output(unsigned gpio, int value);
295int bfin_gpio_get_value(unsigned gpio); 241int bfin_gpio_get_value(unsigned gpio);
296void bfin_gpio_set_value(unsigned gpio, int value); 242void bfin_gpio_set_value(unsigned gpio, int value);
297 243
298#ifndef BF548_FAMILY
299#define bfin_gpio_set_value(gpio, value) set_gpio_data(gpio, value)
300#endif
301
302#ifdef CONFIG_GPIOLIB 244#ifdef CONFIG_GPIOLIB
303#include <asm-generic/gpio.h> /* cansleep wrappers */ 245#include <asm-generic/gpio.h> /* cansleep wrappers */
304 246
diff --git a/arch/blackfin/include/asm/kgdb.h b/arch/blackfin/include/asm/kgdb.h
index 26ebac6646d8..c8b256d2ea30 100644
--- a/arch/blackfin/include/asm/kgdb.h
+++ b/arch/blackfin/include/asm/kgdb.h
@@ -1,32 +1,8 @@
1/* 1/* Blackfin KGDB header
2 * File: include/asm-blackfin/kgdb.h
3 * Based on:
4 * Author: Sonic Zhang
5 *
6 * Created:
7 * Description:
8 *
9 * Rev: $Id: kgdb_bfin_linux-2.6.x.patch 4934 2007-02-13 09:32:11Z sonicz $
10 *
11 * Modified:
12 * Copyright 2005-2006 Analog Devices Inc.
13 *
14 * Bugs: Enter bugs at http://blackfin.uclinux.org/
15 * 2 *
16 * This program is free software; you can redistribute it and/or modify 3 * Copyright 2005-2009 Analog Devices Inc.
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation; either version 2 of the License, or
19 * (at your option) any later version.
20 * 4 *
21 * This program is distributed in the hope that it will be useful, 5 * Licensed under the GPL-2 or later.
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
25 *
26 * You should have received a copy of the GNU General Public License
27 * along with this program; if not, see the file COPYING, or write
28 * to the Free Software Foundation, Inc.,
29 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
30 */ 6 */
31 7
32#ifndef __ASM_BLACKFIN_KGDB_H__ 8#ifndef __ASM_BLACKFIN_KGDB_H__
@@ -37,17 +13,18 @@
37/* gdb locks */ 13/* gdb locks */
38#define KGDB_MAX_NO_CPUS 8 14#define KGDB_MAX_NO_CPUS 8
39 15
40/************************************************************************/ 16/*
41/* BUFMAX defines the maximum number of characters in inbound/outbound buffers*/ 17 * BUFMAX defines the maximum number of characters in inbound/outbound buffers.
42/* at least NUMREGBYTES*2 are needed for register packets */ 18 * At least NUMREGBYTES*2 are needed for register packets.
43/* Longer buffer is needed to list all threads */ 19 * Longer buffer is needed to list all threads.
20 */
44#define BUFMAX 2048 21#define BUFMAX 2048
45 22
46/* 23/*
47 * Note that this register image is different from 24 * Note that this register image is different from
48 * the register image that Linux produces at interrupt time. 25 * the register image that Linux produces at interrupt time.
49 * 26 *
50 * Linux's register image is defined by struct pt_regs in ptrace.h. 27 * Linux's register image is defined by struct pt_regs in ptrace.h.
51 */ 28 */
52enum regnames { 29enum regnames {
53 /* Core Registers */ 30 /* Core Registers */
@@ -104,14 +81,14 @@ enum regnames {
104 BFIN_RETX, 81 BFIN_RETX,
105 BFIN_RETN, 82 BFIN_RETN,
106 BFIN_RETE, 83 BFIN_RETE,
107 84
108 /* Pseudo Registers */ 85 /* Pseudo Registers */
109 BFIN_PC, 86 BFIN_PC,
110 BFIN_CC, 87 BFIN_CC,
111 BFIN_EXTRA1, /* Address of .text section. */ 88 BFIN_EXTRA1, /* Address of .text section. */
112 BFIN_EXTRA2, /* Address of .data section. */ 89 BFIN_EXTRA2, /* Address of .data section. */
113 BFIN_EXTRA3, /* Address of .bss section. */ 90 BFIN_EXTRA3, /* Address of .bss section. */
114 BFIN_FDPIC_EXEC, 91 BFIN_FDPIC_EXEC,
115 BFIN_FDPIC_INTERP, 92 BFIN_FDPIC_INTERP,
116 93
117 /* MMRs */ 94 /* MMRs */
@@ -126,7 +103,7 @@ enum regnames {
126 103
127static inline void arch_kgdb_breakpoint(void) 104static inline void arch_kgdb_breakpoint(void)
128{ 105{
129 asm(" EXCPT 2;"); 106 asm("EXCPT 2;");
130} 107}
131#define BREAK_INSTR_SIZE 2 108#define BREAK_INSTR_SIZE 2
132#define CACHE_FLUSH_IS_SAFE 1 109#define CACHE_FLUSH_IS_SAFE 1
diff --git a/arch/blackfin/include/asm/mem_init.h b/arch/blackfin/include/asm/mem_init.h
index 255a9316ad36..61f7487fbf12 100644
--- a/arch/blackfin/include/asm/mem_init.h
+++ b/arch/blackfin/include/asm/mem_init.h
@@ -115,7 +115,7 @@
115#define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num) 115#define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num)
116 116
117/* Enable SCLK Out */ 117/* Enable SCLK Out */
118#define mem_SDGCTL (0x80000000 | SCTLE | SDRAM_CL | SDRAM_tRAS | SDRAM_tRP | SDRAM_tRCD | SDRAM_tWR | PSS) 118#define mem_SDGCTL (SCTLE | SDRAM_CL | SDRAM_tRAS | SDRAM_tRP | SDRAM_tRCD | SDRAM_tWR | PSS)
119#else 119#else
120#define mem_SDRRC CONFIG_MEM_SDRRC 120#define mem_SDRRC CONFIG_MEM_SDRRC
121#define mem_SDGCTL CONFIG_MEM_SDGCTL 121#define mem_SDGCTL CONFIG_MEM_SDGCTL
diff --git a/arch/blackfin/include/asm/pda.h b/arch/blackfin/include/asm/pda.h
index bd8d4a7efeb2..a67142740df0 100644
--- a/arch/blackfin/include/asm/pda.h
+++ b/arch/blackfin/include/asm/pda.h
@@ -59,6 +59,7 @@ struct blackfin_pda { /* Per-processor Data Area */
59 unsigned long icplb_fault_addr; 59 unsigned long icplb_fault_addr;
60 unsigned long retx; 60 unsigned long retx;
61 unsigned long seqstat; 61 unsigned long seqstat;
62 unsigned int __nmi_count; /* number of times NMI asserted on this CPU */
62}; 63};
63 64
64extern struct blackfin_pda cpu_pda[]; 65extern struct blackfin_pda cpu_pda[];
diff --git a/arch/blackfin/include/asm/reboot.h b/arch/blackfin/include/asm/reboot.h
index 4856d62b7467..ae1e36329bec 100644
--- a/arch/blackfin/include/asm/reboot.h
+++ b/arch/blackfin/include/asm/reboot.h
@@ -15,6 +15,6 @@ extern void native_machine_halt(void);
15extern void native_machine_power_off(void); 15extern void native_machine_power_off(void);
16 16
17/* common reboot workarounds */ 17/* common reboot workarounds */
18extern void bfin_gpio_reset_spi0_ssel1(void); 18extern void bfin_reset_boot_spi_cs(unsigned short pin);
19 19
20#endif 20#endif
diff --git a/arch/blackfin/include/asm/swab.h b/arch/blackfin/include/asm/swab.h
index 69a051b612bd..6403ad2932eb 100644
--- a/arch/blackfin/include/asm/swab.h
+++ b/arch/blackfin/include/asm/swab.h
@@ -1,7 +1,7 @@
1#ifndef _BLACKFIN_SWAB_H 1#ifndef _BLACKFIN_SWAB_H
2#define _BLACKFIN_SWAB_H 2#define _BLACKFIN_SWAB_H
3 3
4#include <asm/types.h> 4#include <linux/types.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
6 6
7#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__) 7#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
diff --git a/arch/blackfin/kernel/Makefile b/arch/blackfin/kernel/Makefile
index 38a233374f07..4a92a86824b7 100644
--- a/arch/blackfin/kernel/Makefile
+++ b/arch/blackfin/kernel/Makefile
@@ -15,6 +15,8 @@ else
15 obj-y += time.o 15 obj-y += time.o
16endif 16endif
17 17
18CFLAGS_kgdb_test.o := -mlong-calls -O0
19
18obj-$(CONFIG_IPIPE) += ipipe.o 20obj-$(CONFIG_IPIPE) += ipipe.o
19obj-$(CONFIG_IPIPE_TRACE_MCOUNT) += mcount.o 21obj-$(CONFIG_IPIPE_TRACE_MCOUNT) += mcount.o
20obj-$(CONFIG_BFIN_GPTIMERS) += gptimers.o 22obj-$(CONFIG_BFIN_GPTIMERS) += gptimers.o
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index 07e02c0d1c07..8531693fb48d 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -249,6 +249,13 @@ static void __dma_memcpy(u32 daddr, s16 dmod, u32 saddr, s16 smod, size_t cnt, u
249 249
250 spin_lock_irqsave(&mdma_lock, flags); 250 spin_lock_irqsave(&mdma_lock, flags);
251 251
252 /* Force a sync in case a previous config reset on this channel
253 * occurred. This is needed so subsequent writes to DMA registers
254 * are not spuriously lost/corrupted. Do it under irq lock and
255 * without the anomaly version (because we are atomic already).
256 */
257 __builtin_bfin_ssync();
258
252 if (bfin_read_MDMA_S0_CONFIG()) 259 if (bfin_read_MDMA_S0_CONFIG())
253 while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE)) 260 while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE))
254 continue; 261 continue;
diff --git a/arch/blackfin/kernel/bfin_gpio.c b/arch/blackfin/kernel/bfin_gpio.c
index 4c14331978f6..51dac55c524a 100644
--- a/arch/blackfin/kernel/bfin_gpio.c
+++ b/arch/blackfin/kernel/bfin_gpio.c
@@ -27,59 +27,6 @@
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */ 28 */
29 29
30/*
31* Number BF537/6/4 BF561 BF533/2/1 BF549/8/4/2
32*
33* GPIO_0 PF0 PF0 PF0 PA0...PJ13
34* GPIO_1 PF1 PF1 PF1
35* GPIO_2 PF2 PF2 PF2
36* GPIO_3 PF3 PF3 PF3
37* GPIO_4 PF4 PF4 PF4
38* GPIO_5 PF5 PF5 PF5
39* GPIO_6 PF6 PF6 PF6
40* GPIO_7 PF7 PF7 PF7
41* GPIO_8 PF8 PF8 PF8
42* GPIO_9 PF9 PF9 PF9
43* GPIO_10 PF10 PF10 PF10
44* GPIO_11 PF11 PF11 PF11
45* GPIO_12 PF12 PF12 PF12
46* GPIO_13 PF13 PF13 PF13
47* GPIO_14 PF14 PF14 PF14
48* GPIO_15 PF15 PF15 PF15
49* GPIO_16 PG0 PF16
50* GPIO_17 PG1 PF17
51* GPIO_18 PG2 PF18
52* GPIO_19 PG3 PF19
53* GPIO_20 PG4 PF20
54* GPIO_21 PG5 PF21
55* GPIO_22 PG6 PF22
56* GPIO_23 PG7 PF23
57* GPIO_24 PG8 PF24
58* GPIO_25 PG9 PF25
59* GPIO_26 PG10 PF26
60* GPIO_27 PG11 PF27
61* GPIO_28 PG12 PF28
62* GPIO_29 PG13 PF29
63* GPIO_30 PG14 PF30
64* GPIO_31 PG15 PF31
65* GPIO_32 PH0 PF32
66* GPIO_33 PH1 PF33
67* GPIO_34 PH2 PF34
68* GPIO_35 PH3 PF35
69* GPIO_36 PH4 PF36
70* GPIO_37 PH5 PF37
71* GPIO_38 PH6 PF38
72* GPIO_39 PH7 PF39
73* GPIO_40 PH8 PF40
74* GPIO_41 PH9 PF41
75* GPIO_42 PH10 PF42
76* GPIO_43 PH11 PF43
77* GPIO_44 PH12 PF44
78* GPIO_45 PH13 PF45
79* GPIO_46 PH14 PF46
80* GPIO_47 PH15 PF47
81*/
82
83#include <linux/delay.h> 30#include <linux/delay.h>
84#include <linux/module.h> 31#include <linux/module.h>
85#include <linux/err.h> 32#include <linux/err.h>
@@ -119,62 +66,61 @@ enum {
119#define AWA_DUMMY_READ(...) do { } while (0) 66#define AWA_DUMMY_READ(...) do { } while (0)
120#endif 67#endif
121 68
69static struct gpio_port_t * const gpio_array[] = {
122#if defined(BF533_FAMILY) || defined(BF538_FAMILY) 70#if defined(BF533_FAMILY) || defined(BF538_FAMILY)
123static struct gpio_port_t *gpio_bankb[] = {
124 (struct gpio_port_t *) FIO_FLAG_D, 71 (struct gpio_port_t *) FIO_FLAG_D,
125}; 72#elif defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
126#endif
127
128#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
129static struct gpio_port_t *gpio_bankb[] = {
130 (struct gpio_port_t *) PORTFIO, 73 (struct gpio_port_t *) PORTFIO,
131 (struct gpio_port_t *) PORTGIO, 74 (struct gpio_port_t *) PORTGIO,
132 (struct gpio_port_t *) PORTHIO, 75 (struct gpio_port_t *) PORTHIO,
76#elif defined(BF561_FAMILY)
77 (struct gpio_port_t *) FIO0_FLAG_D,
78 (struct gpio_port_t *) FIO1_FLAG_D,
79 (struct gpio_port_t *) FIO2_FLAG_D,
80#elif defined(BF548_FAMILY)
81 (struct gpio_port_t *)PORTA_FER,
82 (struct gpio_port_t *)PORTB_FER,
83 (struct gpio_port_t *)PORTC_FER,
84 (struct gpio_port_t *)PORTD_FER,
85 (struct gpio_port_t *)PORTE_FER,
86 (struct gpio_port_t *)PORTF_FER,
87 (struct gpio_port_t *)PORTG_FER,
88 (struct gpio_port_t *)PORTH_FER,
89 (struct gpio_port_t *)PORTI_FER,
90 (struct gpio_port_t *)PORTJ_FER,
91#else
92# error no gpio arrays defined
93#endif
133}; 94};
134 95
135static unsigned short *port_fer[] = { 96#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
97static unsigned short * const port_fer[] = {
136 (unsigned short *) PORTF_FER, 98 (unsigned short *) PORTF_FER,
137 (unsigned short *) PORTG_FER, 99 (unsigned short *) PORTG_FER,
138 (unsigned short *) PORTH_FER, 100 (unsigned short *) PORTH_FER,
139}; 101};
140#endif
141 102
142#if defined(BF527_FAMILY) || defined(BF518_FAMILY) 103# if !defined(BF537_FAMILY)
143static unsigned short *port_mux[] = { 104static unsigned short * const port_mux[] = {
144 (unsigned short *) PORTF_MUX, 105 (unsigned short *) PORTF_MUX,
145 (unsigned short *) PORTG_MUX, 106 (unsigned short *) PORTG_MUX,
146 (unsigned short *) PORTH_MUX, 107 (unsigned short *) PORTH_MUX,
147}; 108};
148 109
149static const 110static const
150u8 pmux_offset[][16] = 111u8 pmux_offset[][16] = {
151 {{ 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 4, 6, 8, 8, 10, 10 }, /* PORTF */ 112# if defined(BF527_FAMILY)
152 { 0, 0, 0, 0, 0, 2, 2, 4, 4, 6, 8, 10, 10, 10, 12, 12 }, /* PORTG */ 113 { 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 4, 6, 8, 8, 10, 10 }, /* PORTF */
153 { 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 4, 4, 4, 4 }, /* PORTH */ 114 { 0, 0, 0, 0, 0, 2, 2, 4, 4, 6, 8, 10, 10, 10, 12, 12 }, /* PORTG */
154 }; 115 { 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 4, 4, 4, 4 }, /* PORTH */
155#endif 116# elif defined(BF518_FAMILY)
156 117 { 0, 2, 2, 2, 2, 2, 2, 4, 6, 6, 6, 8, 8, 8, 8, 10 }, /* PORTF */
157#ifdef BF561_FAMILY 118 { 0, 0, 0, 2, 4, 6, 6, 6, 8, 10, 10, 12, 14, 14, 14, 14 }, /* PORTG */
158static struct gpio_port_t *gpio_bankb[] = { 119 { 0, 0, 0, 0, 2, 2, 4, 6, 10, 10, 10, 10, 10, 10, 10, 10 }, /* PORTH */
159 (struct gpio_port_t *) FIO0_FLAG_D, 120# endif
160 (struct gpio_port_t *) FIO1_FLAG_D,
161 (struct gpio_port_t *) FIO2_FLAG_D,
162}; 121};
163#endif 122# endif
164 123
165#ifdef BF548_FAMILY
166static struct gpio_port_t *gpio_array[] = {
167 (struct gpio_port_t *)PORTA_FER,
168 (struct gpio_port_t *)PORTB_FER,
169 (struct gpio_port_t *)PORTC_FER,
170 (struct gpio_port_t *)PORTD_FER,
171 (struct gpio_port_t *)PORTE_FER,
172 (struct gpio_port_t *)PORTF_FER,
173 (struct gpio_port_t *)PORTG_FER,
174 (struct gpio_port_t *)PORTH_FER,
175 (struct gpio_port_t *)PORTI_FER,
176 (struct gpio_port_t *)PORTJ_FER,
177};
178#endif 124#endif
179 125
180static unsigned short reserved_gpio_map[GPIO_BANK_NUM]; 126static unsigned short reserved_gpio_map[GPIO_BANK_NUM];
@@ -188,35 +134,9 @@ static struct str_ident {
188} str_ident[MAX_RESOURCES]; 134} str_ident[MAX_RESOURCES];
189 135
190#if defined(CONFIG_PM) 136#if defined(CONFIG_PM)
191#if defined(CONFIG_BF54x)
192static struct gpio_port_s gpio_bank_saved[GPIO_BANK_NUM];
193#else
194static unsigned short wakeup_map[GPIO_BANK_NUM];
195static unsigned char wakeup_flags_map[MAX_BLACKFIN_GPIOS];
196static struct gpio_port_s gpio_bank_saved[GPIO_BANK_NUM]; 137static struct gpio_port_s gpio_bank_saved[GPIO_BANK_NUM];
197
198#ifdef BF533_FAMILY
199static unsigned int sic_iwr_irqs[] = {IRQ_PROG_INTB};
200#endif
201
202#ifdef BF537_FAMILY
203static unsigned int sic_iwr_irqs[] = {IRQ_PROG_INTB, IRQ_PORTG_INTB, IRQ_MAC_TX};
204#endif
205
206#ifdef BF538_FAMILY
207static unsigned int sic_iwr_irqs[] = {IRQ_PORTF_INTB};
208#endif 138#endif
209 139
210#if defined(BF527_FAMILY) || defined(BF518_FAMILY)
211static unsigned int sic_iwr_irqs[] = {IRQ_PORTF_INTB, IRQ_PORTG_INTB, IRQ_PORTH_INTB};
212#endif
213
214#ifdef BF561_FAMILY
215static unsigned int sic_iwr_irqs[] = {IRQ_PROG0_INTB, IRQ_PROG1_INTB, IRQ_PROG2_INTB};
216#endif
217#endif
218#endif /* CONFIG_PM */
219
220inline int check_gpio(unsigned gpio) 140inline int check_gpio(unsigned gpio)
221{ 141{
222#if defined(BF548_FAMILY) 142#if defined(BF548_FAMILY)
@@ -330,9 +250,10 @@ static struct {
330 {.res = P_SPI0_SSEL3, .offset = 0}, 250 {.res = P_SPI0_SSEL3, .offset = 0},
331}; 251};
332 252
333static void portmux_setup(unsigned short per, unsigned short function) 253static void portmux_setup(unsigned short per)
334{ 254{
335 u16 y, offset, muxreg; 255 u16 y, offset, muxreg;
256 u16 function = P_FUNCT2MUX(per);
336 257
337 for (y = 0; y < ARRAY_SIZE(port_mux_lut); y++) { 258 for (y = 0; y < ARRAY_SIZE(port_mux_lut); y++) {
338 if (port_mux_lut[y].res == per) { 259 if (port_mux_lut[y].res == per) {
@@ -353,30 +274,33 @@ static void portmux_setup(unsigned short per, unsigned short function)
353 } 274 }
354} 275}
355#elif defined(BF548_FAMILY) 276#elif defined(BF548_FAMILY)
356inline void portmux_setup(unsigned short portno, unsigned short function) 277inline void portmux_setup(unsigned short per)
357{ 278{
358 u32 pmux; 279 u32 pmux;
280 u16 ident = P_IDENT(per);
281 u16 function = P_FUNCT2MUX(per);
359 282
360 pmux = gpio_array[gpio_bank(portno)]->port_mux; 283 pmux = gpio_array[gpio_bank(ident)]->port_mux;
361 284
362 pmux &= ~(0x3 << (2 * gpio_sub_n(portno))); 285 pmux &= ~(0x3 << (2 * gpio_sub_n(ident)));
363 pmux |= (function & 0x3) << (2 * gpio_sub_n(portno)); 286 pmux |= (function & 0x3) << (2 * gpio_sub_n(ident));
364 287
365 gpio_array[gpio_bank(portno)]->port_mux = pmux; 288 gpio_array[gpio_bank(ident)]->port_mux = pmux;
366} 289}
367 290
368inline u16 get_portmux(unsigned short portno) 291inline u16 get_portmux(unsigned short per)
369{ 292{
370 u32 pmux; 293 u32 pmux;
294 u16 ident = P_IDENT(per);
371 295
372 pmux = gpio_array[gpio_bank(portno)]->port_mux; 296 pmux = gpio_array[gpio_bank(ident)]->port_mux;
373 297
374 return (pmux >> (2 * gpio_sub_n(portno)) & 0x3); 298 return (pmux >> (2 * gpio_sub_n(ident)) & 0x3);
375} 299}
376#elif defined(BF527_FAMILY) || defined(BF518_FAMILY) 300#elif defined(BF527_FAMILY) || defined(BF518_FAMILY)
377inline void portmux_setup(unsigned short portno, unsigned short function) 301inline void portmux_setup(unsigned short per)
378{ 302{
379 u16 pmux, ident = P_IDENT(portno); 303 u16 pmux, ident = P_IDENT(per), function = P_FUNCT2MUX(per);
380 u8 offset = pmux_offset[gpio_bank(ident)][gpio_sub_n(ident)]; 304 u8 offset = pmux_offset[gpio_bank(ident)][gpio_sub_n(ident)];
381 305
382 pmux = *port_mux[gpio_bank(ident)]; 306 pmux = *port_mux[gpio_bank(ident)];
@@ -424,90 +348,71 @@ void set_gpio_ ## name(unsigned gpio, unsigned short arg) \
424 unsigned long flags; \ 348 unsigned long flags; \
425 local_irq_save_hw(flags); \ 349 local_irq_save_hw(flags); \
426 if (arg) \ 350 if (arg) \
427 gpio_bankb[gpio_bank(gpio)]->name |= gpio_bit(gpio); \ 351 gpio_array[gpio_bank(gpio)]->name |= gpio_bit(gpio); \
428 else \ 352 else \
429 gpio_bankb[gpio_bank(gpio)]->name &= ~gpio_bit(gpio); \ 353 gpio_array[gpio_bank(gpio)]->name &= ~gpio_bit(gpio); \
430 AWA_DUMMY_READ(name); \ 354 AWA_DUMMY_READ(name); \
431 local_irq_restore_hw(flags); \ 355 local_irq_restore_hw(flags); \
432} \ 356} \
433EXPORT_SYMBOL(set_gpio_ ## name); 357EXPORT_SYMBOL(set_gpio_ ## name);
434 358
435SET_GPIO(dir) 359SET_GPIO(dir) /* set_gpio_dir() */
436SET_GPIO(inen) 360SET_GPIO(inen) /* set_gpio_inen() */
437SET_GPIO(polar) 361SET_GPIO(polar) /* set_gpio_polar() */
438SET_GPIO(edge) 362SET_GPIO(edge) /* set_gpio_edge() */
439SET_GPIO(both) 363SET_GPIO(both) /* set_gpio_both() */
440 364
441 365
442#if ANOMALY_05000311 || ANOMALY_05000323
443#define SET_GPIO_SC(name) \ 366#define SET_GPIO_SC(name) \
444void set_gpio_ ## name(unsigned gpio, unsigned short arg) \ 367void set_gpio_ ## name(unsigned gpio, unsigned short arg) \
445{ \ 368{ \
446 unsigned long flags; \ 369 unsigned long flags; \
447 local_irq_save_hw(flags); \ 370 if (ANOMALY_05000311 || ANOMALY_05000323) \
448 if (arg) \ 371 local_irq_save_hw(flags); \
449 gpio_bankb[gpio_bank(gpio)]->name ## _set = gpio_bit(gpio); \
450 else \
451 gpio_bankb[gpio_bank(gpio)]->name ## _clear = gpio_bit(gpio); \
452 AWA_DUMMY_READ(name); \
453 local_irq_restore_hw(flags); \
454} \
455EXPORT_SYMBOL(set_gpio_ ## name);
456#else
457#define SET_GPIO_SC(name) \
458void set_gpio_ ## name(unsigned gpio, unsigned short arg) \
459{ \
460 if (arg) \ 372 if (arg) \
461 gpio_bankb[gpio_bank(gpio)]->name ## _set = gpio_bit(gpio); \ 373 gpio_array[gpio_bank(gpio)]->name ## _set = gpio_bit(gpio); \
462 else \ 374 else \
463 gpio_bankb[gpio_bank(gpio)]->name ## _clear = gpio_bit(gpio); \ 375 gpio_array[gpio_bank(gpio)]->name ## _clear = gpio_bit(gpio); \
376 if (ANOMALY_05000311 || ANOMALY_05000323) { \
377 AWA_DUMMY_READ(name); \
378 local_irq_restore_hw(flags); \
379 } \
464} \ 380} \
465EXPORT_SYMBOL(set_gpio_ ## name); 381EXPORT_SYMBOL(set_gpio_ ## name);
466#endif
467 382
468SET_GPIO_SC(maska) 383SET_GPIO_SC(maska)
469SET_GPIO_SC(maskb) 384SET_GPIO_SC(maskb)
470SET_GPIO_SC(data) 385SET_GPIO_SC(data)
471 386
472#if ANOMALY_05000311 || ANOMALY_05000323
473void set_gpio_toggle(unsigned gpio) 387void set_gpio_toggle(unsigned gpio)
474{ 388{
475 unsigned long flags; 389 unsigned long flags;
476 local_irq_save_hw(flags); 390 if (ANOMALY_05000311 || ANOMALY_05000323)
477 gpio_bankb[gpio_bank(gpio)]->toggle = gpio_bit(gpio); 391 local_irq_save_hw(flags);
478 AWA_DUMMY_READ(toggle); 392 gpio_array[gpio_bank(gpio)]->toggle = gpio_bit(gpio);
479 local_irq_restore_hw(flags); 393 if (ANOMALY_05000311 || ANOMALY_05000323) {
480} 394 AWA_DUMMY_READ(toggle);
481#else 395 local_irq_restore_hw(flags);
482void set_gpio_toggle(unsigned gpio) 396 }
483{
484 gpio_bankb[gpio_bank(gpio)]->toggle = gpio_bit(gpio);
485} 397}
486#endif
487EXPORT_SYMBOL(set_gpio_toggle); 398EXPORT_SYMBOL(set_gpio_toggle);
488 399
489 400
490/*Set current PORT date (16-bit word)*/ 401/*Set current PORT date (16-bit word)*/
491 402
492#if ANOMALY_05000311 || ANOMALY_05000323
493#define SET_GPIO_P(name) \ 403#define SET_GPIO_P(name) \
494void set_gpiop_ ## name(unsigned gpio, unsigned short arg) \ 404void set_gpiop_ ## name(unsigned gpio, unsigned short arg) \
495{ \ 405{ \
496 unsigned long flags; \ 406 unsigned long flags; \
497 local_irq_save_hw(flags); \ 407 if (ANOMALY_05000311 || ANOMALY_05000323) \
498 gpio_bankb[gpio_bank(gpio)]->name = arg; \ 408 local_irq_save_hw(flags); \
499 AWA_DUMMY_READ(name); \ 409 gpio_array[gpio_bank(gpio)]->name = arg; \
500 local_irq_restore_hw(flags); \ 410 if (ANOMALY_05000311 || ANOMALY_05000323) { \
411 AWA_DUMMY_READ(name); \
412 local_irq_restore_hw(flags); \
413 } \
501} \ 414} \
502EXPORT_SYMBOL(set_gpiop_ ## name); 415EXPORT_SYMBOL(set_gpiop_ ## name);
503#else
504#define SET_GPIO_P(name) \
505void set_gpiop_ ## name(unsigned gpio, unsigned short arg) \
506{ \
507 gpio_bankb[gpio_bank(gpio)]->name = arg; \
508} \
509EXPORT_SYMBOL(set_gpiop_ ## name);
510#endif
511 416
512SET_GPIO_P(data) 417SET_GPIO_P(data)
513SET_GPIO_P(dir) 418SET_GPIO_P(dir)
@@ -519,27 +424,21 @@ SET_GPIO_P(maska)
519SET_GPIO_P(maskb) 424SET_GPIO_P(maskb)
520 425
521/* Get a specific bit */ 426/* Get a specific bit */
522#if ANOMALY_05000311 || ANOMALY_05000323
523#define GET_GPIO(name) \ 427#define GET_GPIO(name) \
524unsigned short get_gpio_ ## name(unsigned gpio) \ 428unsigned short get_gpio_ ## name(unsigned gpio) \
525{ \ 429{ \
526 unsigned long flags; \ 430 unsigned long flags; \
527 unsigned short ret; \ 431 unsigned short ret; \
528 local_irq_save_hw(flags); \ 432 if (ANOMALY_05000311 || ANOMALY_05000323) \
529 ret = 0x01 & (gpio_bankb[gpio_bank(gpio)]->name >> gpio_sub_n(gpio)); \ 433 local_irq_save_hw(flags); \
530 AWA_DUMMY_READ(name); \ 434 ret = 0x01 & (gpio_array[gpio_bank(gpio)]->name >> gpio_sub_n(gpio)); \
531 local_irq_restore_hw(flags); \ 435 if (ANOMALY_05000311 || ANOMALY_05000323) { \
436 AWA_DUMMY_READ(name); \
437 local_irq_restore_hw(flags); \
438 } \
532 return ret; \ 439 return ret; \
533} \ 440} \
534EXPORT_SYMBOL(get_gpio_ ## name); 441EXPORT_SYMBOL(get_gpio_ ## name);
535#else
536#define GET_GPIO(name) \
537unsigned short get_gpio_ ## name(unsigned gpio) \
538{ \
539 return (0x01 & (gpio_bankb[gpio_bank(gpio)]->name >> gpio_sub_n(gpio))); \
540} \
541EXPORT_SYMBOL(get_gpio_ ## name);
542#endif
543 442
544GET_GPIO(data) 443GET_GPIO(data)
545GET_GPIO(dir) 444GET_GPIO(dir)
@@ -552,27 +451,21 @@ GET_GPIO(maskb)
552 451
553/*Get current PORT date (16-bit word)*/ 452/*Get current PORT date (16-bit word)*/
554 453
555#if ANOMALY_05000311 || ANOMALY_05000323
556#define GET_GPIO_P(name) \ 454#define GET_GPIO_P(name) \
557unsigned short get_gpiop_ ## name(unsigned gpio) \ 455unsigned short get_gpiop_ ## name(unsigned gpio) \
558{ \ 456{ \
559 unsigned long flags; \ 457 unsigned long flags; \
560 unsigned short ret; \ 458 unsigned short ret; \
561 local_irq_save_hw(flags); \ 459 if (ANOMALY_05000311 || ANOMALY_05000323) \
562 ret = (gpio_bankb[gpio_bank(gpio)]->name); \ 460 local_irq_save_hw(flags); \
563 AWA_DUMMY_READ(name); \ 461 ret = (gpio_array[gpio_bank(gpio)]->name); \
564 local_irq_restore_hw(flags); \ 462 if (ANOMALY_05000311 || ANOMALY_05000323) { \
463 AWA_DUMMY_READ(name); \
464 local_irq_restore_hw(flags); \
465 } \
565 return ret; \ 466 return ret; \
566} \ 467} \
567EXPORT_SYMBOL(get_gpiop_ ## name); 468EXPORT_SYMBOL(get_gpiop_ ## name);
568#else
569#define GET_GPIO_P(name) \
570unsigned short get_gpiop_ ## name(unsigned gpio) \
571{ \
572 return (gpio_bankb[gpio_bank(gpio)]->name);\
573} \
574EXPORT_SYMBOL(get_gpiop_ ## name);
575#endif
576 469
577GET_GPIO_P(data) 470GET_GPIO_P(data)
578GET_GPIO_P(dir) 471GET_GPIO_P(dir)
@@ -585,6 +478,26 @@ GET_GPIO_P(maskb)
585 478
586 479
587#ifdef CONFIG_PM 480#ifdef CONFIG_PM
481
482static unsigned short wakeup_map[GPIO_BANK_NUM];
483static unsigned char wakeup_flags_map[MAX_BLACKFIN_GPIOS];
484
485static const unsigned int sic_iwr_irqs[] = {
486#if defined(BF533_FAMILY)
487 IRQ_PROG_INTB
488#elif defined(BF537_FAMILY)
489 IRQ_PROG_INTB, IRQ_PORTG_INTB, IRQ_MAC_TX
490#elif defined(BF538_FAMILY)
491 IRQ_PORTF_INTB
492#elif defined(BF527_FAMILY) || defined(BF518_FAMILY)
493 IRQ_PORTF_INTB, IRQ_PORTG_INTB, IRQ_PORTH_INTB
494#elif defined(BF561_FAMILY)
495 IRQ_PROG0_INTB, IRQ_PROG1_INTB, IRQ_PROG2_INTB
496#else
497# error no SIC_IWR defined
498#endif
499};
500
588/*********************************************************** 501/***********************************************************
589* 502*
590* FUNCTIONS: Blackfin PM Setup API 503* FUNCTIONS: Blackfin PM Setup API
@@ -669,18 +582,18 @@ u32 bfin_pm_standby_setup(void)
669 mask = wakeup_map[gpio_bank(i)]; 582 mask = wakeup_map[gpio_bank(i)];
670 bank = gpio_bank(i); 583 bank = gpio_bank(i);
671 584
672 gpio_bank_saved[bank].maskb = gpio_bankb[bank]->maskb; 585 gpio_bank_saved[bank].maskb = gpio_array[bank]->maskb;
673 gpio_bankb[bank]->maskb = 0; 586 gpio_array[bank]->maskb = 0;
674 587
675 if (mask) { 588 if (mask) {
676#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) 589#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
677 gpio_bank_saved[bank].fer = *port_fer[bank]; 590 gpio_bank_saved[bank].fer = *port_fer[bank];
678#endif 591#endif
679 gpio_bank_saved[bank].inen = gpio_bankb[bank]->inen; 592 gpio_bank_saved[bank].inen = gpio_array[bank]->inen;
680 gpio_bank_saved[bank].polar = gpio_bankb[bank]->polar; 593 gpio_bank_saved[bank].polar = gpio_array[bank]->polar;
681 gpio_bank_saved[bank].dir = gpio_bankb[bank]->dir; 594 gpio_bank_saved[bank].dir = gpio_array[bank]->dir;
682 gpio_bank_saved[bank].edge = gpio_bankb[bank]->edge; 595 gpio_bank_saved[bank].edge = gpio_array[bank]->edge;
683 gpio_bank_saved[bank].both = gpio_bankb[bank]->both; 596 gpio_bank_saved[bank].both = gpio_array[bank]->both;
684 gpio_bank_saved[bank].reserved = 597 gpio_bank_saved[bank].reserved =
685 reserved_gpio_map[bank]; 598 reserved_gpio_map[bank];
686 599
@@ -700,7 +613,7 @@ u32 bfin_pm_standby_setup(void)
700 } 613 }
701 614
702 bfin_internal_set_wake(sic_iwr_irqs[bank], 1); 615 bfin_internal_set_wake(sic_iwr_irqs[bank], 1);
703 gpio_bankb[bank]->maskb_set = wakeup_map[gpio_bank(i)]; 616 gpio_array[bank]->maskb_set = wakeup_map[gpio_bank(i)];
704 } 617 }
705 } 618 }
706 619
@@ -721,18 +634,18 @@ void bfin_pm_standby_restore(void)
721#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) 634#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
722 *port_fer[bank] = gpio_bank_saved[bank].fer; 635 *port_fer[bank] = gpio_bank_saved[bank].fer;
723#endif 636#endif
724 gpio_bankb[bank]->inen = gpio_bank_saved[bank].inen; 637 gpio_array[bank]->inen = gpio_bank_saved[bank].inen;
725 gpio_bankb[bank]->dir = gpio_bank_saved[bank].dir; 638 gpio_array[bank]->dir = gpio_bank_saved[bank].dir;
726 gpio_bankb[bank]->polar = gpio_bank_saved[bank].polar; 639 gpio_array[bank]->polar = gpio_bank_saved[bank].polar;
727 gpio_bankb[bank]->edge = gpio_bank_saved[bank].edge; 640 gpio_array[bank]->edge = gpio_bank_saved[bank].edge;
728 gpio_bankb[bank]->both = gpio_bank_saved[bank].both; 641 gpio_array[bank]->both = gpio_bank_saved[bank].both;
729 642
730 reserved_gpio_map[bank] = 643 reserved_gpio_map[bank] =
731 gpio_bank_saved[bank].reserved; 644 gpio_bank_saved[bank].reserved;
732 bfin_internal_set_wake(sic_iwr_irqs[bank], 0); 645 bfin_internal_set_wake(sic_iwr_irqs[bank], 0);
733 } 646 }
734 647
735 gpio_bankb[bank]->maskb = gpio_bank_saved[bank].maskb; 648 gpio_array[bank]->maskb = gpio_bank_saved[bank].maskb;
736 } 649 }
737 AWA_DUMMY_READ(maskb); 650 AWA_DUMMY_READ(maskb);
738} 651}
@@ -745,21 +658,21 @@ void bfin_gpio_pm_hibernate_suspend(void)
745 bank = gpio_bank(i); 658 bank = gpio_bank(i);
746 659
747#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) 660#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
748 gpio_bank_saved[bank].fer = *port_fer[bank]; 661 gpio_bank_saved[bank].fer = *port_fer[bank];
749#if defined(BF527_FAMILY) || defined(BF518_FAMILY) 662#if defined(BF527_FAMILY) || defined(BF518_FAMILY)
750 gpio_bank_saved[bank].mux = *port_mux[bank]; 663 gpio_bank_saved[bank].mux = *port_mux[bank];
751#else 664#else
752 if (bank == 0) 665 if (bank == 0)
753 gpio_bank_saved[bank].mux = bfin_read_PORT_MUX(); 666 gpio_bank_saved[bank].mux = bfin_read_PORT_MUX();
754#endif 667#endif
755#endif 668#endif
756 gpio_bank_saved[bank].data = gpio_bankb[bank]->data; 669 gpio_bank_saved[bank].data = gpio_array[bank]->data;
757 gpio_bank_saved[bank].inen = gpio_bankb[bank]->inen; 670 gpio_bank_saved[bank].inen = gpio_array[bank]->inen;
758 gpio_bank_saved[bank].polar = gpio_bankb[bank]->polar; 671 gpio_bank_saved[bank].polar = gpio_array[bank]->polar;
759 gpio_bank_saved[bank].dir = gpio_bankb[bank]->dir; 672 gpio_bank_saved[bank].dir = gpio_array[bank]->dir;
760 gpio_bank_saved[bank].edge = gpio_bankb[bank]->edge; 673 gpio_bank_saved[bank].edge = gpio_array[bank]->edge;
761 gpio_bank_saved[bank].both = gpio_bankb[bank]->both; 674 gpio_bank_saved[bank].both = gpio_array[bank]->both;
762 gpio_bank_saved[bank].maska = gpio_bankb[bank]->maska; 675 gpio_bank_saved[bank].maska = gpio_array[bank]->maska;
763 } 676 }
764 677
765 AWA_DUMMY_READ(maska); 678 AWA_DUMMY_READ(maska);
@@ -770,27 +683,27 @@ void bfin_gpio_pm_hibernate_restore(void)
770 int i, bank; 683 int i, bank;
771 684
772 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) { 685 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) {
773 bank = gpio_bank(i); 686 bank = gpio_bank(i);
774 687
775#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) 688#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
776#if defined(BF527_FAMILY) || defined(BF518_FAMILY) 689#if defined(BF527_FAMILY) || defined(BF518_FAMILY)
777 *port_mux[bank] = gpio_bank_saved[bank].mux; 690 *port_mux[bank] = gpio_bank_saved[bank].mux;
778#else 691#else
779 if (bank == 0) 692 if (bank == 0)
780 bfin_write_PORT_MUX(gpio_bank_saved[bank].mux); 693 bfin_write_PORT_MUX(gpio_bank_saved[bank].mux);
781#endif 694#endif
782 *port_fer[bank] = gpio_bank_saved[bank].fer; 695 *port_fer[bank] = gpio_bank_saved[bank].fer;
783#endif 696#endif
784 gpio_bankb[bank]->inen = gpio_bank_saved[bank].inen; 697 gpio_array[bank]->inen = gpio_bank_saved[bank].inen;
785 gpio_bankb[bank]->dir = gpio_bank_saved[bank].dir; 698 gpio_array[bank]->dir = gpio_bank_saved[bank].dir;
786 gpio_bankb[bank]->polar = gpio_bank_saved[bank].polar; 699 gpio_array[bank]->polar = gpio_bank_saved[bank].polar;
787 gpio_bankb[bank]->edge = gpio_bank_saved[bank].edge; 700 gpio_array[bank]->edge = gpio_bank_saved[bank].edge;
788 gpio_bankb[bank]->both = gpio_bank_saved[bank].both; 701 gpio_array[bank]->both = gpio_bank_saved[bank].both;
789 702
790 gpio_bankb[bank]->data_set = gpio_bank_saved[bank].data 703 gpio_array[bank]->data_set = gpio_bank_saved[bank].data
791 | gpio_bank_saved[bank].dir; 704 | gpio_bank_saved[bank].dir;
792 705
793 gpio_bankb[bank]->maska = gpio_bank_saved[bank].maska; 706 gpio_array[bank]->maska = gpio_bank_saved[bank].maska;
794 } 707 }
795 AWA_DUMMY_READ(maska); 708 AWA_DUMMY_READ(maska);
796} 709}
@@ -817,12 +730,12 @@ void bfin_gpio_pm_hibernate_suspend(void)
817 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) { 730 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) {
818 bank = gpio_bank(i); 731 bank = gpio_bank(i);
819 732
820 gpio_bank_saved[bank].fer = gpio_array[bank]->port_fer; 733 gpio_bank_saved[bank].fer = gpio_array[bank]->port_fer;
821 gpio_bank_saved[bank].mux = gpio_array[bank]->port_mux; 734 gpio_bank_saved[bank].mux = gpio_array[bank]->port_mux;
822 gpio_bank_saved[bank].data = gpio_array[bank]->port_data; 735 gpio_bank_saved[bank].data = gpio_array[bank]->data;
823 gpio_bank_saved[bank].data = gpio_array[bank]->port_data; 736 gpio_bank_saved[bank].data = gpio_array[bank]->data;
824 gpio_bank_saved[bank].inen = gpio_array[bank]->port_inen; 737 gpio_bank_saved[bank].inen = gpio_array[bank]->inen;
825 gpio_bank_saved[bank].dir = gpio_array[bank]->port_dir_set; 738 gpio_bank_saved[bank].dir = gpio_array[bank]->dir_set;
826 } 739 }
827} 740}
828 741
@@ -831,21 +744,21 @@ void bfin_gpio_pm_hibernate_restore(void)
831 int i, bank; 744 int i, bank;
832 745
833 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) { 746 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) {
834 bank = gpio_bank(i); 747 bank = gpio_bank(i);
835 748
836 gpio_array[bank]->port_mux = gpio_bank_saved[bank].mux; 749 gpio_array[bank]->port_mux = gpio_bank_saved[bank].mux;
837 gpio_array[bank]->port_fer = gpio_bank_saved[bank].fer; 750 gpio_array[bank]->port_fer = gpio_bank_saved[bank].fer;
838 gpio_array[bank]->port_inen = gpio_bank_saved[bank].inen; 751 gpio_array[bank]->inen = gpio_bank_saved[bank].inen;
839 gpio_array[bank]->port_dir_set = gpio_bank_saved[bank].dir; 752 gpio_array[bank]->dir_set = gpio_bank_saved[bank].dir;
840 gpio_array[bank]->port_set = gpio_bank_saved[bank].data 753 gpio_array[bank]->data_set = gpio_bank_saved[bank].data
841 | gpio_bank_saved[bank].dir; 754 | gpio_bank_saved[bank].dir;
842 } 755 }
843} 756}
844#endif 757#endif
845 758
846unsigned short get_gpio_dir(unsigned gpio) 759unsigned short get_gpio_dir(unsigned gpio)
847{ 760{
848 return (0x01 & (gpio_array[gpio_bank(gpio)]->port_dir_clear >> gpio_sub_n(gpio))); 761 return (0x01 & (gpio_array[gpio_bank(gpio)]->dir_clear >> gpio_sub_n(gpio)));
849} 762}
850EXPORT_SYMBOL(get_gpio_dir); 763EXPORT_SYMBOL(get_gpio_dir);
851 764
@@ -905,9 +818,7 @@ int peripheral_request(unsigned short per, const char *label)
905 */ 818 */
906 819
907#ifdef BF548_FAMILY 820#ifdef BF548_FAMILY
908 u16 funct = get_portmux(ident); 821 if (!((per & P_MAYSHARE) && get_portmux(per) == P_FUNCT2MUX(per))) {
909
910 if (!((per & P_MAYSHARE) && (funct == P_FUNCT2MUX(per)))) {
911#else 822#else
912 if (!(per & P_MAYSHARE)) { 823 if (!(per & P_MAYSHARE)) {
913#endif 824#endif
@@ -931,11 +842,7 @@ int peripheral_request(unsigned short per, const char *label)
931 anyway: 842 anyway:
932 reserved_peri_map[gpio_bank(ident)] |= gpio_bit(ident); 843 reserved_peri_map[gpio_bank(ident)] |= gpio_bit(ident);
933 844
934#ifdef BF548_FAMILY 845 portmux_setup(per);
935 portmux_setup(ident, P_FUNCT2MUX(per));
936#else
937 portmux_setup(per, P_FUNCT2MUX(per));
938#endif
939 port_setup(ident, PERIPHERAL_USAGE); 846 port_setup(ident, PERIPHERAL_USAGE);
940 847
941 local_irq_restore_hw(flags); 848 local_irq_restore_hw(flags);
@@ -977,9 +884,6 @@ void peripheral_free(unsigned short per)
977 if (!(per & P_DEFINED)) 884 if (!(per & P_DEFINED))
978 return; 885 return;
979 886
980 if (check_gpio(ident) < 0)
981 return;
982
983 local_irq_save_hw(flags); 887 local_irq_save_hw(flags);
984 888
985 if (unlikely(!(reserved_peri_map[gpio_bank(ident)] & gpio_bit(ident)))) { 889 if (unlikely(!(reserved_peri_map[gpio_bank(ident)] & gpio_bit(ident)))) {
@@ -1056,9 +960,15 @@ int bfin_gpio_request(unsigned gpio, const char *label)
1056 local_irq_restore_hw(flags); 960 local_irq_restore_hw(flags);
1057 return -EBUSY; 961 return -EBUSY;
1058 } 962 }
1059 if (unlikely(reserved_gpio_irq_map[gpio_bank(gpio)] & gpio_bit(gpio))) 963 if (unlikely(reserved_gpio_irq_map[gpio_bank(gpio)] & gpio_bit(gpio))) {
1060 printk(KERN_NOTICE "bfin-gpio: GPIO %d is already reserved as gpio-irq!" 964 printk(KERN_NOTICE "bfin-gpio: GPIO %d is already reserved as gpio-irq!"
1061 " (Documentation/blackfin/bfin-gpio-notes.txt)\n", gpio); 965 " (Documentation/blackfin/bfin-gpio-notes.txt)\n", gpio);
966 }
967#ifndef BF548_FAMILY
968 else { /* Reset POLAR setting when acquiring a gpio for the first time */
969 set_gpio_polar(gpio, 0);
970 }
971#endif
1062 972
1063 reserved_gpio_map[gpio_bank(gpio)] |= gpio_bit(gpio); 973 reserved_gpio_map[gpio_bank(gpio)] |= gpio_bit(gpio);
1064 set_label(gpio, label); 974 set_label(gpio, label);
@@ -1078,6 +988,8 @@ void bfin_gpio_free(unsigned gpio)
1078 if (check_gpio(gpio) < 0) 988 if (check_gpio(gpio) < 0)
1079 return; 989 return;
1080 990
991 might_sleep();
992
1081 local_irq_save_hw(flags); 993 local_irq_save_hw(flags);
1082 994
1083 if (unlikely(!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio)))) { 995 if (unlikely(!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio)))) {
@@ -1158,8 +1070,16 @@ void bfin_gpio_irq_free(unsigned gpio)
1158 local_irq_restore_hw(flags); 1070 local_irq_restore_hw(flags);
1159} 1071}
1160 1072
1161 1073static inline void __bfin_gpio_direction_input(unsigned gpio)
1074{
1162#ifdef BF548_FAMILY 1075#ifdef BF548_FAMILY
1076 gpio_array[gpio_bank(gpio)]->dir_clear = gpio_bit(gpio);
1077#else
1078 gpio_array[gpio_bank(gpio)]->dir &= ~gpio_bit(gpio);
1079#endif
1080 gpio_array[gpio_bank(gpio)]->inen |= gpio_bit(gpio);
1081}
1082
1163int bfin_gpio_direction_input(unsigned gpio) 1083int bfin_gpio_direction_input(unsigned gpio)
1164{ 1084{
1165 unsigned long flags; 1085 unsigned long flags;
@@ -1170,125 +1090,85 @@ int bfin_gpio_direction_input(unsigned gpio)
1170 } 1090 }
1171 1091
1172 local_irq_save_hw(flags); 1092 local_irq_save_hw(flags);
1173 gpio_array[gpio_bank(gpio)]->port_dir_clear = gpio_bit(gpio); 1093 __bfin_gpio_direction_input(gpio);
1174 gpio_array[gpio_bank(gpio)]->port_inen |= gpio_bit(gpio); 1094 AWA_DUMMY_READ(inen);
1175 local_irq_restore_hw(flags); 1095 local_irq_restore_hw(flags);
1176 1096
1177 return 0; 1097 return 0;
1178} 1098}
1179EXPORT_SYMBOL(bfin_gpio_direction_input); 1099EXPORT_SYMBOL(bfin_gpio_direction_input);
1180 1100
1181int bfin_gpio_direction_output(unsigned gpio, int value) 1101void bfin_gpio_irq_prepare(unsigned gpio)
1182{ 1102{
1103#ifdef BF548_FAMILY
1183 unsigned long flags; 1104 unsigned long flags;
1105#endif
1184 1106
1185 if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) { 1107 port_setup(gpio, GPIO_USAGE);
1186 gpio_error(gpio);
1187 return -EINVAL;
1188 }
1189 1108
1109#ifdef BF548_FAMILY
1190 local_irq_save_hw(flags); 1110 local_irq_save_hw(flags);
1191 gpio_array[gpio_bank(gpio)]->port_inen &= ~gpio_bit(gpio); 1111 __bfin_gpio_direction_input(gpio);
1192 gpio_set_value(gpio, value);
1193 gpio_array[gpio_bank(gpio)]->port_dir_set = gpio_bit(gpio);
1194 local_irq_restore_hw(flags); 1112 local_irq_restore_hw(flags);
1195 1113#endif
1196 return 0;
1197} 1114}
1198EXPORT_SYMBOL(bfin_gpio_direction_output);
1199 1115
1200void bfin_gpio_set_value(unsigned gpio, int arg) 1116void bfin_gpio_set_value(unsigned gpio, int arg)
1201{ 1117{
1202 if (arg) 1118 if (arg)
1203 gpio_array[gpio_bank(gpio)]->port_set = gpio_bit(gpio); 1119 gpio_array[gpio_bank(gpio)]->data_set = gpio_bit(gpio);
1204 else 1120 else
1205 gpio_array[gpio_bank(gpio)]->port_clear = gpio_bit(gpio); 1121 gpio_array[gpio_bank(gpio)]->data_clear = gpio_bit(gpio);
1206} 1122}
1207EXPORT_SYMBOL(bfin_gpio_set_value); 1123EXPORT_SYMBOL(bfin_gpio_set_value);
1208 1124
1209int bfin_gpio_get_value(unsigned gpio) 1125int bfin_gpio_direction_output(unsigned gpio, int value)
1210{
1211 return (1 & (gpio_array[gpio_bank(gpio)]->port_data >> gpio_sub_n(gpio)));
1212}
1213EXPORT_SYMBOL(bfin_gpio_get_value);
1214
1215void bfin_gpio_irq_prepare(unsigned gpio)
1216{ 1126{
1217 unsigned long flags; 1127 unsigned long flags;
1218 1128
1219 port_setup(gpio, GPIO_USAGE); 1129 if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) {
1130 gpio_error(gpio);
1131 return -EINVAL;
1132 }
1220 1133
1221 local_irq_save_hw(flags); 1134 local_irq_save_hw(flags);
1222 gpio_array[gpio_bank(gpio)]->port_dir_clear = gpio_bit(gpio);
1223 gpio_array[gpio_bank(gpio)]->port_inen |= gpio_bit(gpio);
1224 local_irq_restore_hw(flags);
1225}
1226 1135
1136 gpio_array[gpio_bank(gpio)]->inen &= ~gpio_bit(gpio);
1137 gpio_set_value(gpio, value);
1138#ifdef BF548_FAMILY
1139 gpio_array[gpio_bank(gpio)]->dir_set = gpio_bit(gpio);
1227#else 1140#else
1141 gpio_array[gpio_bank(gpio)]->dir |= gpio_bit(gpio);
1142#endif
1143
1144 AWA_DUMMY_READ(dir);
1145 local_irq_restore_hw(flags);
1146
1147 return 0;
1148}
1149EXPORT_SYMBOL(bfin_gpio_direction_output);
1228 1150
1229int bfin_gpio_get_value(unsigned gpio) 1151int bfin_gpio_get_value(unsigned gpio)
1230{ 1152{
1153#ifdef BF548_FAMILY
1154 return (1 & (gpio_array[gpio_bank(gpio)]->data >> gpio_sub_n(gpio)));
1155#else
1231 unsigned long flags; 1156 unsigned long flags;
1232 int ret;
1233 1157
1234 if (unlikely(get_gpio_edge(gpio))) { 1158 if (unlikely(get_gpio_edge(gpio))) {
1159 int ret;
1235 local_irq_save_hw(flags); 1160 local_irq_save_hw(flags);
1236 set_gpio_edge(gpio, 0); 1161 set_gpio_edge(gpio, 0);
1237 ret = get_gpio_data(gpio); 1162 ret = get_gpio_data(gpio);
1238 set_gpio_edge(gpio, 1); 1163 set_gpio_edge(gpio, 1);
1239 local_irq_restore_hw(flags); 1164 local_irq_restore_hw(flags);
1240
1241 return ret; 1165 return ret;
1242 } else 1166 } else
1243 return get_gpio_data(gpio); 1167 return get_gpio_data(gpio);
1168#endif
1244} 1169}
1245EXPORT_SYMBOL(bfin_gpio_get_value); 1170EXPORT_SYMBOL(bfin_gpio_get_value);
1246 1171
1247
1248int bfin_gpio_direction_input(unsigned gpio)
1249{
1250 unsigned long flags;
1251
1252 if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) {
1253 gpio_error(gpio);
1254 return -EINVAL;
1255 }
1256
1257 local_irq_save_hw(flags);
1258 gpio_bankb[gpio_bank(gpio)]->dir &= ~gpio_bit(gpio);
1259 gpio_bankb[gpio_bank(gpio)]->inen |= gpio_bit(gpio);
1260 AWA_DUMMY_READ(inen);
1261 local_irq_restore_hw(flags);
1262
1263 return 0;
1264}
1265EXPORT_SYMBOL(bfin_gpio_direction_input);
1266
1267int bfin_gpio_direction_output(unsigned gpio, int value)
1268{
1269 unsigned long flags;
1270
1271 if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) {
1272 gpio_error(gpio);
1273 return -EINVAL;
1274 }
1275
1276 local_irq_save_hw(flags);
1277 gpio_bankb[gpio_bank(gpio)]->inen &= ~gpio_bit(gpio);
1278
1279 if (value)
1280 gpio_bankb[gpio_bank(gpio)]->data_set = gpio_bit(gpio);
1281 else
1282 gpio_bankb[gpio_bank(gpio)]->data_clear = gpio_bit(gpio);
1283
1284 gpio_bankb[gpio_bank(gpio)]->dir |= gpio_bit(gpio);
1285 AWA_DUMMY_READ(dir);
1286 local_irq_restore_hw(flags);
1287
1288 return 0;
1289}
1290EXPORT_SYMBOL(bfin_gpio_direction_output);
1291
1292/* If we are booting from SPI and our board lacks a strong enough pull up, 1172/* If we are booting from SPI and our board lacks a strong enough pull up,
1293 * the core can reset and execute the bootrom faster than the resistor can 1173 * the core can reset and execute the bootrom faster than the resistor can
1294 * pull the signal logically high. To work around this (common) error in 1174 * pull the signal logically high. To work around this (common) error in
@@ -1299,23 +1179,15 @@ EXPORT_SYMBOL(bfin_gpio_direction_output);
1299 * lives here as we need to force all the GPIO states w/out going through 1179 * lives here as we need to force all the GPIO states w/out going through
1300 * BUG() checks and such. 1180 * BUG() checks and such.
1301 */ 1181 */
1302void bfin_gpio_reset_spi0_ssel1(void) 1182void bfin_reset_boot_spi_cs(unsigned short pin)
1303{ 1183{
1304 u16 gpio = P_IDENT(P_SPI0_SSEL1); 1184 unsigned short gpio = P_IDENT(pin);
1305
1306 port_setup(gpio, GPIO_USAGE); 1185 port_setup(gpio, GPIO_USAGE);
1307 gpio_bankb[gpio_bank(gpio)]->data_set = gpio_bit(gpio); 1186 gpio_array[gpio_bank(gpio)]->data_set = gpio_bit(gpio);
1308 AWA_DUMMY_READ(data_set); 1187 AWA_DUMMY_READ(data_set);
1309 udelay(1); 1188 udelay(1);
1310} 1189}
1311 1190
1312void bfin_gpio_irq_prepare(unsigned gpio)
1313{
1314 port_setup(gpio, GPIO_USAGE);
1315}
1316
1317#endif /*BF548_FAMILY */
1318
1319#if defined(CONFIG_PROC_FS) 1191#if defined(CONFIG_PROC_FS)
1320static int gpio_proc_read(char *buf, char **start, off_t offset, 1192static int gpio_proc_read(char *buf, char **start, off_t offset,
1321 int len, int *unused_i, void *unused_v) 1193 int len, int *unused_i, void *unused_v)
@@ -1369,11 +1241,7 @@ int bfin_gpiolib_get_value(struct gpio_chip *chip, unsigned gpio)
1369 1241
1370void bfin_gpiolib_set_value(struct gpio_chip *chip, unsigned gpio, int value) 1242void bfin_gpiolib_set_value(struct gpio_chip *chip, unsigned gpio, int value)
1371{ 1243{
1372#ifdef BF548_FAMILY
1373 return bfin_gpio_set_value(gpio, value); 1244 return bfin_gpio_set_value(gpio, value);
1374#else
1375 return set_gpio_data(gpio, value);
1376#endif
1377} 1245}
1378 1246
1379int bfin_gpiolib_gpio_request(struct gpio_chip *chip, unsigned gpio) 1247int bfin_gpiolib_gpio_request(struct gpio_chip *chip, unsigned gpio)
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbinit.c b/arch/blackfin/kernel/cplb-mpu/cplbinit.c
index bdb958486e76..3e329a6ce041 100644
--- a/arch/blackfin/kernel/cplb-mpu/cplbinit.c
+++ b/arch/blackfin/kernel/cplb-mpu/cplbinit.c
@@ -63,10 +63,8 @@ void __init generate_cplb_tables_cpu(unsigned int cpu)
63 dcplb_tbl[cpu][i_d].addr = 0; 63 dcplb_tbl[cpu][i_d].addr = 0;
64 dcplb_tbl[cpu][i_d++].data = SDRAM_OOPS | PAGE_SIZE_1KB; 64 dcplb_tbl[cpu][i_d++].data = SDRAM_OOPS | PAGE_SIZE_1KB;
65 65
66#if 0
67 icplb_tbl[cpu][i_i].addr = 0; 66 icplb_tbl[cpu][i_i].addr = 0;
68 icplb_tbl[cpu][i_i++].data = i_cache | CPLB_USER_RD | PAGE_SIZE_4KB; 67 icplb_tbl[cpu][i_i++].data = i_cache | CPLB_USER_RD | PAGE_SIZE_1KB;
69#endif
70 68
71 /* Cover kernel memory with 4M pages. */ 69 /* Cover kernel memory with 4M pages. */
72 addr = 0; 70 addr = 0;
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbmgr.c b/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
index 376249ab2694..8cbb47c7b663 100644
--- a/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
+++ b/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
@@ -163,12 +163,14 @@ MGR_ATTR static int icplb_miss(int cpu)
163 nr_icplb_supv_miss[cpu]++; 163 nr_icplb_supv_miss[cpu]++;
164 164
165 base = 0; 165 base = 0;
166 for (idx = 0; idx < icplb_nr_bounds; idx++) { 166 idx = 0;
167 do {
167 eaddr = icplb_bounds[idx].eaddr; 168 eaddr = icplb_bounds[idx].eaddr;
168 if (addr < eaddr) 169 if (addr < eaddr)
169 break; 170 break;
170 base = eaddr; 171 base = eaddr;
171 } 172 } while (++idx < icplb_nr_bounds);
173
172 if (unlikely(idx == icplb_nr_bounds)) 174 if (unlikely(idx == icplb_nr_bounds))
173 return CPLB_NO_ADDR_MATCH; 175 return CPLB_NO_ADDR_MATCH;
174 176
@@ -208,12 +210,14 @@ MGR_ATTR static int dcplb_miss(int cpu)
208 nr_dcplb_supv_miss[cpu]++; 210 nr_dcplb_supv_miss[cpu]++;
209 211
210 base = 0; 212 base = 0;
211 for (idx = 0; idx < dcplb_nr_bounds; idx++) { 213 idx = 0;
214 do {
212 eaddr = dcplb_bounds[idx].eaddr; 215 eaddr = dcplb_bounds[idx].eaddr;
213 if (addr < eaddr) 216 if (addr < eaddr)
214 break; 217 break;
215 base = eaddr; 218 base = eaddr;
216 } 219 } while (++idx < dcplb_nr_bounds);
220
217 if (unlikely(idx == dcplb_nr_bounds)) 221 if (unlikely(idx == dcplb_nr_bounds))
218 return CPLB_NO_ADDR_MATCH; 222 return CPLB_NO_ADDR_MATCH;
219 223
diff --git a/arch/blackfin/kernel/irqchip.c b/arch/blackfin/kernel/irqchip.c
index ab8209cbbad0..23e9aa080710 100644
--- a/arch/blackfin/kernel/irqchip.c
+++ b/arch/blackfin/kernel/irqchip.c
@@ -35,6 +35,7 @@
35#include <linux/interrupt.h> 35#include <linux/interrupt.h>
36#include <linux/irq.h> 36#include <linux/irq.h>
37#include <asm/trace.h> 37#include <asm/trace.h>
38#include <asm/pda.h>
38 39
39static atomic_t irq_err_count; 40static atomic_t irq_err_count;
40static spinlock_t irq_controller_lock; 41static spinlock_t irq_controller_lock;
@@ -69,6 +70,11 @@ static struct irq_desc bad_irq_desc = {
69#endif 70#endif
70}; 71};
71 72
73#ifdef CONFIG_CPUMASK_OFFSTACK
74/* We are not allocating a variable-sized bad_irq_desc.affinity */
75#error "Blackfin architecture does not support CONFIG_CPUMASK_OFFSTACK."
76#endif
77
72int show_interrupts(struct seq_file *p, void *v) 78int show_interrupts(struct seq_file *p, void *v)
73{ 79{
74 int i = *(loff_t *) v, j; 80 int i = *(loff_t *) v, j;
@@ -91,8 +97,13 @@ int show_interrupts(struct seq_file *p, void *v)
91 seq_putc(p, '\n'); 97 seq_putc(p, '\n');
92 skip: 98 skip:
93 spin_unlock_irqrestore(&irq_desc[i].lock, flags); 99 spin_unlock_irqrestore(&irq_desc[i].lock, flags);
94 } else if (i == NR_IRQS) 100 } else if (i == NR_IRQS) {
101 seq_printf(p, "NMI: ");
102 for_each_online_cpu(j)
103 seq_printf(p, "%10u ", cpu_pda[j].__nmi_count);
104 seq_printf(p, " CORE Non Maskable Interrupt\n");
95 seq_printf(p, "Err: %10u\n", atomic_read(&irq_err_count)); 105 seq_printf(p, "Err: %10u\n", atomic_read(&irq_err_count));
106 }
96 return 0; 107 return 0;
97} 108}
98 109
diff --git a/arch/blackfin/kernel/reboot.c b/arch/blackfin/kernel/reboot.c
index eeee8cb43360..53d08dee8531 100644
--- a/arch/blackfin/kernel/reboot.c
+++ b/arch/blackfin/kernel/reboot.c
@@ -20,8 +20,8 @@
20 * reset while the Core B bit (on dual core parts) is cleared by 20 * reset while the Core B bit (on dual core parts) is cleared by
21 * the core reset. 21 * the core reset.
22 */ 22 */
23__attribute__((l1_text)) 23__attribute__ ((__l1_text__, __noreturn__))
24static void _bfin_reset(void) 24static void bfin_reset(void)
25{ 25{
26 /* Wait for completion of "system" events such as cache line 26 /* Wait for completion of "system" events such as cache line
27 * line fills so that we avoid infinite stalls later on as 27 * line fills so that we avoid infinite stalls later on as
@@ -30,7 +30,11 @@ static void _bfin_reset(void)
30 */ 30 */
31 __builtin_bfin_ssync(); 31 __builtin_bfin_ssync();
32 32
33 while (1) { 33 /* The bootrom checks to see how it was reset and will
34 * automatically perform a software reset for us when
35 * it starts executing after the core reset.
36 */
37 if (ANOMALY_05000353 || ANOMALY_05000386) {
34 /* Initiate System software reset. */ 38 /* Initiate System software reset. */
35 bfin_write_SWRST(0x7); 39 bfin_write_SWRST(0x7);
36 40
@@ -50,6 +54,11 @@ static void _bfin_reset(void)
50 /* Clear System software reset */ 54 /* Clear System software reset */
51 bfin_write_SWRST(0); 55 bfin_write_SWRST(0);
52 56
57 /* The BF526 ROM will crash during reset */
58#if defined(__ADSPBF522__) || defined(__ADSPBF524__) || defined(__ADSPBF526__)
59 bfin_read_SWRST();
60#endif
61
53 /* Wait for the SWRST write to complete. Cannot rely on SSYNC 62 /* Wait for the SWRST write to complete. Cannot rely on SSYNC
54 * though as the System state is all reset now. 63 * though as the System state is all reset now.
55 */ 64 */
@@ -60,22 +69,11 @@ static void _bfin_reset(void)
60 : "a" (15 * 1) 69 : "a" (15 * 1)
61 : "LC1", "LB1", "LT1" 70 : "LC1", "LB1", "LT1"
62 ); 71 );
72 }
63 73
74 while (1)
64 /* Issue core reset */ 75 /* Issue core reset */
65 asm("raise 1"); 76 asm("raise 1");
66 }
67}
68
69static void bfin_reset(void)
70{
71 if (ANOMALY_05000353 || ANOMALY_05000386)
72 _bfin_reset();
73 else
74 /* the bootrom checks to see how it was reset and will
75 * automatically perform a software reset for us when
76 * it starts executing boot
77 */
78 asm("raise 1;");
79} 77}
80 78
81__attribute__((weak)) 79__attribute__((weak))
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index b2a811347b65..e5c116230800 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -60,7 +60,7 @@ void __initdata *init_retx, *init_saved_retx, *init_saved_seqstat,
60#define BFIN_MEMMAP_MAX 128 /* number of entries in bfin_memmap */ 60#define BFIN_MEMMAP_MAX 128 /* number of entries in bfin_memmap */
61#define BFIN_MEMMAP_RAM 1 61#define BFIN_MEMMAP_RAM 1
62#define BFIN_MEMMAP_RESERVED 2 62#define BFIN_MEMMAP_RESERVED 2
63struct bfin_memmap { 63static struct bfin_memmap {
64 int nr_map; 64 int nr_map;
65 struct bfin_memmap_entry { 65 struct bfin_memmap_entry {
66 unsigned long long addr; /* start of memory segment */ 66 unsigned long long addr; /* start of memory segment */
@@ -824,7 +824,15 @@ void __init setup_arch(char **cmdline_p)
824 flash_probe(); 824 flash_probe();
825#endif 825#endif
826 826
827 printk(KERN_INFO "Boot Mode: %i\n", bfin_read_SYSCR() & 0xF);
828
829 /* Newer parts mirror SWRST bits in SYSCR */
830#if defined(CONFIG_BF53x) || defined(CONFIG_BF561) || \
831 defined(CONFIG_BF538) || defined(CONFIG_BF539)
827 _bfin_swrst = bfin_read_SWRST(); 832 _bfin_swrst = bfin_read_SWRST();
833#else
834 _bfin_swrst = bfin_read_SYSCR();
835#endif
828 836
829#ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT 837#ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT
830 bfin_write_SWRST(_bfin_swrst & ~DOUBLE_FAULT); 838 bfin_write_SWRST(_bfin_swrst & ~DOUBLE_FAULT);
@@ -853,7 +861,7 @@ void __init setup_arch(char **cmdline_p)
853 else if (_bfin_swrst & RESET_SOFTWARE) 861 else if (_bfin_swrst & RESET_SOFTWARE)
854 printk(KERN_NOTICE "Reset caused by Software reset\n"); 862 printk(KERN_NOTICE "Reset caused by Software reset\n");
855 863
856 printk(KERN_INFO "Blackfin support (C) 2004-2008 Analog Devices, Inc.\n"); 864 printk(KERN_INFO "Blackfin support (C) 2004-2009 Analog Devices, Inc.\n");
857 if (bfin_compiled_revid() == 0xffff) 865 if (bfin_compiled_revid() == 0xffff)
858 printk(KERN_INFO "Compiled for ADSP-%s Rev any\n", CPU); 866 printk(KERN_INFO "Compiled for ADSP-%s Rev any\n", CPU);
859 else if (bfin_compiled_revid() == -1) 867 else if (bfin_compiled_revid() == -1)
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index 5b0667da8d05..ffe7fb53eccb 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -673,6 +673,14 @@ static void decode_instruction(unsigned short *address)
673 verbose_printk("RTI"); 673 verbose_printk("RTI");
674 else if (opcode == 0x0012) 674 else if (opcode == 0x0012)
675 verbose_printk("RTX"); 675 verbose_printk("RTX");
676 else if (opcode == 0x0013)
677 verbose_printk("RTN");
678 else if (opcode == 0x0014)
679 verbose_printk("RTE");
680 else if (opcode == 0x0025)
681 verbose_printk("EMUEXCPT");
682 else if (opcode == 0x0040 && opcode <= 0x0047)
683 verbose_printk("STI R%i", opcode & 7);
676 else if (opcode >= 0x0050 && opcode <= 0x0057) 684 else if (opcode >= 0x0050 && opcode <= 0x0057)
677 verbose_printk("JUMP (P%i)", opcode & 7); 685 verbose_printk("JUMP (P%i)", opcode & 7);
678 else if (opcode >= 0x0060 && opcode <= 0x0067) 686 else if (opcode >= 0x0060 && opcode <= 0x0067)
@@ -681,6 +689,10 @@ static void decode_instruction(unsigned short *address)
681 verbose_printk("CALL (PC+P%i)", opcode & 7); 689 verbose_printk("CALL (PC+P%i)", opcode & 7);
682 else if (opcode >= 0x0080 && opcode <= 0x0087) 690 else if (opcode >= 0x0080 && opcode <= 0x0087)
683 verbose_printk("JUMP (PC+P%i)", opcode & 7); 691 verbose_printk("JUMP (PC+P%i)", opcode & 7);
692 else if (opcode >= 0x0090 && opcode <= 0x009F)
693 verbose_printk("RAISE 0x%x", opcode & 0xF);
694 else if (opcode >= 0x00A0 && opcode <= 0x00AF)
695 verbose_printk("EXCPT 0x%x", opcode & 0xF);
684 else if ((opcode >= 0x1000 && opcode <= 0x13FF) || (opcode >= 0x1800 && opcode <= 0x1BFF)) 696 else if ((opcode >= 0x1000 && opcode <= 0x13FF) || (opcode >= 0x1800 && opcode <= 0x1BFF))
685 verbose_printk("IF !CC JUMP"); 697 verbose_printk("IF !CC JUMP");
686 else if ((opcode >= 0x1400 && opcode <= 0x17ff) || (opcode >= 0x1c00 && opcode <= 0x1fff)) 698 else if ((opcode >= 0x1400 && opcode <= 0x17ff) || (opcode >= 0x1c00 && opcode <= 0x1fff))
@@ -820,11 +832,8 @@ void show_stack(struct task_struct *task, unsigned long *stack)
820 decode_address(buf, (unsigned int)stack); 832 decode_address(buf, (unsigned int)stack);
821 printk(KERN_NOTICE " SP: [0x%p] %s\n", stack, buf); 833 printk(KERN_NOTICE " SP: [0x%p] %s\n", stack, buf);
822 834
823 addr = (unsigned int *)((unsigned int)stack & ~0x3F);
824
825 /* First thing is to look for a frame pointer */ 835 /* First thing is to look for a frame pointer */
826 for (addr = (unsigned int *)((unsigned int)stack & ~0xF), i = 0; 836 for (addr = (unsigned int *)((unsigned int)stack & ~0xF); addr < endstack; addr++) {
827 addr < endstack; addr++, i++) {
828 if (*addr & 0x1) 837 if (*addr & 0x1)
829 continue; 838 continue;
830 ins_addr = (unsigned short *)*addr; 839 ins_addr = (unsigned short *)*addr;
@@ -834,7 +843,8 @@ void show_stack(struct task_struct *task, unsigned long *stack)
834 843
835 if (fp) { 844 if (fp) {
836 /* Let's check to see if it is a frame pointer */ 845 /* Let's check to see if it is a frame pointer */
837 while (fp >= (addr - 1) && fp < endstack && fp) 846 while (fp >= (addr - 1) && fp < endstack
847 && fp && ((unsigned int) fp & 0x3) == 0)
838 fp = (unsigned int *)*fp; 848 fp = (unsigned int *)*fp;
839 if (fp == 0 || fp == endstack) { 849 if (fp == 0 || fp == endstack) {
840 fp = addr - 1; 850 fp = addr - 1;
@@ -1052,8 +1062,9 @@ void show_regs(struct pt_regs *fp)
1052 char buf [150]; 1062 char buf [150];
1053 struct irqaction *action; 1063 struct irqaction *action;
1054 unsigned int i; 1064 unsigned int i;
1055 unsigned long flags; 1065 unsigned long flags = 0;
1056 unsigned int cpu = smp_processor_id(); 1066 unsigned int cpu = smp_processor_id();
1067 unsigned char in_atomic = (bfin_read_IPEND() & 0x10) || in_atomic();
1057 1068
1058 verbose_printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\t\t%s\n", print_tainted()); 1069 verbose_printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\t\t%s\n", print_tainted());
1059 verbose_printk(KERN_NOTICE " SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n", 1070 verbose_printk(KERN_NOTICE " SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n",
@@ -1073,17 +1084,22 @@ void show_regs(struct pt_regs *fp)
1073 } 1084 }
1074 verbose_printk(KERN_NOTICE " EXCAUSE : 0x%lx\n", 1085 verbose_printk(KERN_NOTICE " EXCAUSE : 0x%lx\n",
1075 fp->seqstat & SEQSTAT_EXCAUSE); 1086 fp->seqstat & SEQSTAT_EXCAUSE);
1076 for (i = 6; i <= 15 ; i++) { 1087 for (i = 2; i <= 15 ; i++) {
1077 if (fp->ipend & (1 << i)) { 1088 if (fp->ipend & (1 << i)) {
1078 decode_address(buf, bfin_read32(EVT0 + 4*i)); 1089 if (i != 4) {
1079 verbose_printk(KERN_NOTICE " physical IVG%i asserted : %s\n", i, buf); 1090 decode_address(buf, bfin_read32(EVT0 + 4*i));
1091 verbose_printk(KERN_NOTICE " physical IVG%i asserted : %s\n", i, buf);
1092 } else
1093 verbose_printk(KERN_NOTICE " interrupts disabled\n");
1080 } 1094 }
1081 } 1095 }
1082 1096
1083 /* if no interrupts are going off, don't print this out */ 1097 /* if no interrupts are going off, don't print this out */
1084 if (fp->ipend & ~0x3F) { 1098 if (fp->ipend & ~0x3F) {
1085 for (i = 0; i < (NR_IRQS - 1); i++) { 1099 for (i = 0; i < (NR_IRQS - 1); i++) {
1086 spin_lock_irqsave(&irq_desc[i].lock, flags); 1100 if (!in_atomic)
1101 spin_lock_irqsave(&irq_desc[i].lock, flags);
1102
1087 action = irq_desc[i].action; 1103 action = irq_desc[i].action;
1088 if (!action) 1104 if (!action)
1089 goto unlock; 1105 goto unlock;
@@ -1096,7 +1112,8 @@ void show_regs(struct pt_regs *fp)
1096 } 1112 }
1097 verbose_printk("\n"); 1113 verbose_printk("\n");
1098unlock: 1114unlock:
1099 spin_unlock_irqrestore(&irq_desc[i].lock, flags); 1115 if (!in_atomic)
1116 spin_unlock_irqrestore(&irq_desc[i].lock, flags);
1100 } 1117 }
1101 } 1118 }
1102 1119
diff --git a/arch/blackfin/mach-bf518/boards/ezbrd.c b/arch/blackfin/mach-bf518/boards/ezbrd.c
index 15f1351c8645..0e175342112e 100644
--- a/arch/blackfin/mach-bf518/boards/ezbrd.c
+++ b/arch/blackfin/mach-bf518/boards/ezbrd.c
@@ -46,6 +46,7 @@
46#include <asm/dpmc.h> 46#include <asm/dpmc.h>
47#include <asm/bfin_sdh.h> 47#include <asm/bfin_sdh.h>
48#include <linux/spi/ad7877.h> 48#include <linux/spi/ad7877.h>
49#include <net/dsa.h>
49 50
50/* 51/*
51 * Name the Board for the /proc/cpuinfo 52 * Name the Board for the /proc/cpuinfo
@@ -104,8 +105,31 @@ static struct platform_device rtc_device = {
104#endif 105#endif
105 106
106#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 107#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
108static struct platform_device bfin_mii_bus = {
109 .name = "bfin_mii_bus",
110};
111
107static struct platform_device bfin_mac_device = { 112static struct platform_device bfin_mac_device = {
108 .name = "bfin_mac", 113 .name = "bfin_mac",
114 .dev.platform_data = &bfin_mii_bus,
115};
116#endif
117
118#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
119static struct dsa_platform_data ksz8893m_switch_data = {
120 .mii_bus = &bfin_mii_bus.dev,
121 .netdev = &bfin_mac_device.dev,
122 .port_names[0] = NULL,
123 .port_names[1] = "eth%d",
124 .port_names[2] = "eth%d",
125 .port_names[3] = "cpu",
126};
127
128static struct platform_device ksz8893m_switch_device = {
129 .name = "dsa",
130 .id = 0,
131 .num_resources = 0,
132 .dev.platform_data = &ksz8893m_switch_data,
109}; 133};
110#endif 134#endif
111 135
@@ -147,6 +171,15 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
147}; 171};
148#endif 172#endif
149 173
174#if defined(CONFIG_NET_DSA_KSZ8893M) \
175 || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
176/* SPI SWITCH CHIP */
177static struct bfin5xx_spi_chip spi_switch_info = {
178 .enable_dma = 0,
179 .bits_per_word = 8,
180};
181#endif
182
150#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 183#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE)
151static struct bfin5xx_spi_chip spi_mmc_chip_info = { 184static struct bfin5xx_spi_chip spi_mmc_chip_info = {
152 .enable_dma = 1, 185 .enable_dma = 1,
@@ -226,6 +259,19 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
226 }, 259 },
227#endif 260#endif
228 261
262#if defined(CONFIG_NET_DSA_KSZ8893M) \
263 || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
264 {
265 .modalias = "ksz8893m",
266 .max_speed_hz = 5000000,
267 .bus_num = 0,
268 .chip_select = 1,
269 .platform_data = NULL,
270 .controller_data = &spi_switch_info,
271 .mode = SPI_MODE_3,
272 },
273#endif
274
229#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 275#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE)
230 { 276 {
231 .modalias = "spi_mmc_dummy", 277 .modalias = "spi_mmc_dummy",
@@ -473,7 +519,6 @@ static struct platform_device i2c_bfin_twi_device = {
473}; 519};
474#endif 520#endif
475 521
476#ifdef CONFIG_I2C_BOARDINFO
477static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 522static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
478#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) 523#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
479 { 524 {
@@ -487,7 +532,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
487 }, 532 },
488#endif 533#endif
489}; 534};
490#endif
491 535
492#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 536#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
493static struct platform_device bfin_sport0_uart_device = { 537static struct platform_device bfin_sport0_uart_device = {
@@ -584,9 +628,14 @@ static struct platform_device *stamp_devices[] __initdata = {
584#endif 628#endif
585 629
586#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 630#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
631 &bfin_mii_bus,
587 &bfin_mac_device, 632 &bfin_mac_device,
588#endif 633#endif
589 634
635#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
636 &ksz8893m_switch_device,
637#endif
638
590#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 639#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
591 &bfin_spi0_device, 640 &bfin_spi0_device,
592 &bfin_spi1_device, 641 &bfin_spi1_device,
@@ -632,12 +681,8 @@ static struct platform_device *stamp_devices[] __initdata = {
632static int __init ezbrd_init(void) 681static int __init ezbrd_init(void)
633{ 682{
634 printk(KERN_INFO "%s(): registering device resources\n", __func__); 683 printk(KERN_INFO "%s(): registering device resources\n", __func__);
635
636#ifdef CONFIG_I2C_BOARDINFO
637 i2c_register_board_info(0, bfin_i2c_board_info, 684 i2c_register_board_info(0, bfin_i2c_board_info,
638 ARRAY_SIZE(bfin_i2c_board_info)); 685 ARRAY_SIZE(bfin_i2c_board_info));
639#endif
640
641 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 686 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
642 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 687 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
643 return 0; 688 return 0;
@@ -649,7 +694,7 @@ void native_machine_restart(char *cmd)
649{ 694{
650 /* workaround reboot hang when booting from SPI */ 695 /* workaround reboot hang when booting from SPI */
651 if ((bfin_read_SYSCR() & 0x7) == 0x3) 696 if ((bfin_read_SYSCR() & 0x7) == 0x3)
652 bfin_gpio_reset_spi0_ssel1(); 697 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
653} 698}
654 699
655void bfin_get_ether_addr(char *addr) 700void bfin_get_ether_addr(char *addr)
diff --git a/arch/blackfin/mach-bf518/include/mach/portmux.h b/arch/blackfin/mach-bf518/include/mach/portmux.h
index ac16d54734d4..f618b487b2b0 100644
--- a/arch/blackfin/mach-bf518/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf518/include/mach/portmux.h
@@ -103,6 +103,8 @@
103#define P_SPI1_SSEL4 (P_DEFINED | P_IDENT(GPIO_PF8) | P_FUNCT(2)) 103#define P_SPI1_SSEL4 (P_DEFINED | P_IDENT(GPIO_PF8) | P_FUNCT(2))
104#define P_SPI1_SSEL5 (P_DEFINED | P_IDENT(GPIO_PG11) | P_FUNCT(2)) 104#define P_SPI1_SSEL5 (P_DEFINED | P_IDENT(GPIO_PG11) | P_FUNCT(2))
105 105
106#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2
107
106/* SPORT Port Mux */ 108/* SPORT Port Mux */
107#define P_SPORT0_DRPRI (P_DEFINED | P_IDENT(GPIO_PG3) | P_FUNCT(0)) 109#define P_SPORT0_DRPRI (P_DEFINED | P_IDENT(GPIO_PG3) | P_FUNCT(0))
108#define P_SPORT0_RSCLK (P_DEFINED | P_IDENT(GPIO_PG4) | P_FUNCT(0)) 110#define P_SPORT0_RSCLK (P_DEFINED | P_IDENT(GPIO_PG4) | P_FUNCT(0))
diff --git a/arch/blackfin/mach-bf527/boards/cm_bf527.c b/arch/blackfin/mach-bf527/boards/cm_bf527.c
index a2c3578f4b6c..856c097b5317 100644
--- a/arch/blackfin/mach-bf527/boards/cm_bf527.c
+++ b/arch/blackfin/mach-bf527/boards/cm_bf527.c
@@ -403,8 +403,13 @@ static struct platform_device isp1362_hcd_device = {
403#endif 403#endif
404 404
405#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 405#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
406static struct platform_device bfin_mii_bus = {
407 .name = "bfin_mii_bus",
408};
409
406static struct platform_device bfin_mac_device = { 410static struct platform_device bfin_mac_device = {
407 .name = "bfin_mac", 411 .name = "bfin_mac",
412 .dev.platform_data = &bfin_mii_bus,
408}; 413};
409#endif 414#endif
410 415
@@ -793,7 +798,6 @@ static struct platform_device i2c_bfin_twi_device = {
793}; 798};
794#endif 799#endif
795 800
796#ifdef CONFIG_I2C_BOARDINFO
797static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 801static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
798#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) 802#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
799 { 803 {
@@ -809,7 +813,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
809 }, 813 },
810#endif 814#endif
811}; 815};
812#endif
813 816
814#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 817#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
815static struct platform_device bfin_sport0_uart_device = { 818static struct platform_device bfin_sport0_uart_device = {
@@ -920,6 +923,7 @@ static struct platform_device *stamp_devices[] __initdata = {
920#endif 923#endif
921 924
922#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 925#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
926 &bfin_mii_bus,
923 &bfin_mac_device, 927 &bfin_mac_device,
924#endif 928#endif
925 929
@@ -968,27 +972,23 @@ static struct platform_device *stamp_devices[] __initdata = {
968 &bfin_gpios_device, 972 &bfin_gpios_device,
969}; 973};
970 974
971static int __init stamp_init(void) 975static int __init cm_init(void)
972{ 976{
973 printk(KERN_INFO "%s(): registering device resources\n", __func__); 977 printk(KERN_INFO "%s(): registering device resources\n", __func__);
974
975#ifdef CONFIG_I2C_BOARDINFO
976 i2c_register_board_info(0, bfin_i2c_board_info, 978 i2c_register_board_info(0, bfin_i2c_board_info,
977 ARRAY_SIZE(bfin_i2c_board_info)); 979 ARRAY_SIZE(bfin_i2c_board_info));
978#endif
979
980 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 980 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
981 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 981 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
982 return 0; 982 return 0;
983} 983}
984 984
985arch_initcall(stamp_init); 985arch_initcall(cm_init);
986 986
987void native_machine_restart(char *cmd) 987void native_machine_restart(char *cmd)
988{ 988{
989 /* workaround reboot hang when booting from SPI */ 989 /* workaround reboot hang when booting from SPI */
990 if ((bfin_read_SYSCR() & 0x7) == 0x3) 990 if ((bfin_read_SYSCR() & 0x7) == 0x3)
991 bfin_gpio_reset_spi0_ssel1(); 991 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
992} 992}
993 993
994void bfin_get_ether_addr(char *addr) 994void bfin_get_ether_addr(char *addr)
diff --git a/arch/blackfin/mach-bf527/boards/ezbrd.c b/arch/blackfin/mach-bf527/boards/ezbrd.c
index 0314bd3355eb..83606fcdde27 100644
--- a/arch/blackfin/mach-bf527/boards/ezbrd.c
+++ b/arch/blackfin/mach-bf527/boards/ezbrd.c
@@ -208,8 +208,13 @@ static struct platform_device rtc_device = {
208 208
209 209
210#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 210#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
211static struct platform_device bfin_mii_bus = {
212 .name = "bfin_mii_bus",
213};
214
211static struct platform_device bfin_mac_device = { 215static struct platform_device bfin_mac_device = {
212 .name = "bfin_mac", 216 .name = "bfin_mac",
217 .dev.platform_data = &bfin_mii_bus,
213}; 218};
214#endif 219#endif
215 220
@@ -590,7 +595,6 @@ static struct platform_device i2c_bfin_twi_device = {
590}; 595};
591#endif 596#endif
592 597
593#ifdef CONFIG_I2C_BOARDINFO
594static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 598static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
595#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) 599#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
596 { 600 {
@@ -604,7 +608,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
604 }, 608 },
605#endif 609#endif
606}; 610};
607#endif
608 611
609#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 612#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
610static struct platform_device bfin_sport0_uart_device = { 613static struct platform_device bfin_sport0_uart_device = {
@@ -720,6 +723,7 @@ static struct platform_device *stamp_devices[] __initdata = {
720#endif 723#endif
721 724
722#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 725#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
726 &bfin_mii_bus,
723 &bfin_mac_device, 727 &bfin_mac_device,
724#endif 728#endif
725 729
@@ -764,27 +768,23 @@ static struct platform_device *stamp_devices[] __initdata = {
764 &bfin_gpios_device, 768 &bfin_gpios_device,
765}; 769};
766 770
767static int __init stamp_init(void) 771static int __init ezbrd_init(void)
768{ 772{
769 printk(KERN_INFO "%s(): registering device resources\n", __func__); 773 printk(KERN_INFO "%s(): registering device resources\n", __func__);
770
771#ifdef CONFIG_I2C_BOARDINFO
772 i2c_register_board_info(0, bfin_i2c_board_info, 774 i2c_register_board_info(0, bfin_i2c_board_info,
773 ARRAY_SIZE(bfin_i2c_board_info)); 775 ARRAY_SIZE(bfin_i2c_board_info));
774#endif
775
776 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 776 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
777 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 777 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
778 return 0; 778 return 0;
779} 779}
780 780
781arch_initcall(stamp_init); 781arch_initcall(ezbrd_init);
782 782
783void native_machine_restart(char *cmd) 783void native_machine_restart(char *cmd)
784{ 784{
785 /* workaround reboot hang when booting from SPI */ 785 /* workaround reboot hang when booting from SPI */
786 if ((bfin_read_SYSCR() & 0x7) == 0x3) 786 if ((bfin_read_SYSCR() & 0x7) == 0x3)
787 bfin_gpio_reset_spi0_ssel1(); 787 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
788} 788}
789 789
790void bfin_get_ether_addr(char *addr) 790void bfin_get_ether_addr(char *addr)
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c
index 9454fb7b18c3..d0864111ef59 100644
--- a/arch/blackfin/mach-bf527/boards/ezkit.c
+++ b/arch/blackfin/mach-bf527/boards/ezkit.c
@@ -425,8 +425,13 @@ static struct platform_device isp1362_hcd_device = {
425#endif 425#endif
426 426
427#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 427#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
428static struct platform_device bfin_mii_bus = {
429 .name = "bfin_mii_bus",
430};
431
428static struct platform_device bfin_mac_device = { 432static struct platform_device bfin_mac_device = {
429 .name = "bfin_mac", 433 .name = "bfin_mac",
434 .dev.platform_data = &bfin_mii_bus,
430}; 435};
431#endif 436#endif
432 437
@@ -830,7 +835,6 @@ static struct platform_device i2c_bfin_twi_device = {
830}; 835};
831#endif 836#endif
832 837
833#ifdef CONFIG_I2C_BOARDINFO
834static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 838static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
835#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) 839#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
836 { 840 {
@@ -844,7 +848,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
844 }, 848 },
845#endif 849#endif
846}; 850};
847#endif
848 851
849#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 852#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
850static struct platform_device bfin_sport0_uart_device = { 853static struct platform_device bfin_sport0_uart_device = {
@@ -988,6 +991,7 @@ static struct platform_device *stamp_devices[] __initdata = {
988#endif 991#endif
989 992
990#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 993#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
994 &bfin_mii_bus,
991 &bfin_mac_device, 995 &bfin_mac_device,
992#endif 996#endif
993 997
@@ -1048,27 +1052,23 @@ static struct platform_device *stamp_devices[] __initdata = {
1048 &bfin_gpios_device, 1052 &bfin_gpios_device,
1049}; 1053};
1050 1054
1051static int __init stamp_init(void) 1055static int __init ezkit_init(void)
1052{ 1056{
1053 printk(KERN_INFO "%s(): registering device resources\n", __func__); 1057 printk(KERN_INFO "%s(): registering device resources\n", __func__);
1054
1055#ifdef CONFIG_I2C_BOARDINFO
1056 i2c_register_board_info(0, bfin_i2c_board_info, 1058 i2c_register_board_info(0, bfin_i2c_board_info,
1057 ARRAY_SIZE(bfin_i2c_board_info)); 1059 ARRAY_SIZE(bfin_i2c_board_info));
1058#endif
1059
1060 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 1060 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
1061 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 1061 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
1062 return 0; 1062 return 0;
1063} 1063}
1064 1064
1065arch_initcall(stamp_init); 1065arch_initcall(ezkit_init);
1066 1066
1067void native_machine_restart(char *cmd) 1067void native_machine_restart(char *cmd)
1068{ 1068{
1069 /* workaround reboot hang when booting from SPI */ 1069 /* workaround reboot hang when booting from SPI */
1070 if ((bfin_read_SYSCR() & 0x7) == 0x3) 1070 if ((bfin_read_SYSCR() & 0x7) == 0x3)
1071 bfin_gpio_reset_spi0_ssel1(); 1071 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
1072} 1072}
1073 1073
1074void bfin_get_ether_addr(char *addr) 1074void bfin_get_ether_addr(char *addr)
diff --git a/arch/blackfin/mach-bf527/include/mach/portmux.h b/arch/blackfin/mach-bf527/include/mach/portmux.h
index 7f6da2c386bb..72b1652be4da 100644
--- a/arch/blackfin/mach-bf527/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf527/include/mach/portmux.h
@@ -73,6 +73,8 @@
73 73
74#define P_HWAIT (P_DONTCARE) 74#define P_HWAIT (P_DONTCARE)
75 75
76#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL1
77
76#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(0)) 78#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(0))
77#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(2)) 79#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(2))
78#define P_SPI0_SCK (P_DEFINED | P_IDENT(GPIO_PG2) | P_FUNCT(2)) 80#define P_SPI0_SCK (P_DEFINED | P_IDENT(GPIO_PG2) | P_FUNCT(2))
diff --git a/arch/blackfin/mach-bf533/boards/blackstamp.c b/arch/blackfin/mach-bf533/boards/blackstamp.c
index 6ee607c259ac..015c18f85e7f 100644
--- a/arch/blackfin/mach-bf533/boards/blackstamp.c
+++ b/arch/blackfin/mach-bf533/boards/blackstamp.c
@@ -309,10 +309,8 @@ static struct platform_device i2c_gpio_device = {
309}; 309};
310#endif 310#endif
311 311
312#ifdef CONFIG_I2C_BOARDINFO
313static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 312static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
314}; 313};
315#endif
316 314
317static const unsigned int cclk_vlev_datasheet[] = 315static const unsigned int cclk_vlev_datasheet[] =
318{ 316{
@@ -390,10 +388,8 @@ static int __init blackstamp_init(void)
390 388
391 printk(KERN_INFO "%s(): registering device resources\n", __func__); 389 printk(KERN_INFO "%s(): registering device resources\n", __func__);
392 390
393#ifdef CONFIG_I2C_BOARDINFO
394 i2c_register_board_info(0, bfin_i2c_board_info, 391 i2c_register_board_info(0, bfin_i2c_board_info,
395 ARRAY_SIZE(bfin_i2c_board_info)); 392 ARRAY_SIZE(bfin_i2c_board_info));
396#endif
397 393
398 ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 394 ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
399 if (ret < 0) 395 if (ret < 0)
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c
index 07f9ad1e189c..db96f33f72e2 100644
--- a/arch/blackfin/mach-bf533/boards/stamp.c
+++ b/arch/blackfin/mach-bf533/boards/stamp.c
@@ -441,7 +441,6 @@ static struct platform_device i2c_gpio_device = {
441}; 441};
442#endif 442#endif
443 443
444#ifdef CONFIG_I2C_BOARDINFO
445static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 444static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
446#if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE) 445#if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE)
447 { 446 {
@@ -461,7 +460,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
461 }, 460 },
462#endif 461#endif
463}; 462};
464#endif
465 463
466static const unsigned int cclk_vlev_datasheet[] = 464static const unsigned int cclk_vlev_datasheet[] =
467{ 465{
@@ -550,10 +548,8 @@ static int __init stamp_init(void)
550 548
551 printk(KERN_INFO "%s(): registering device resources\n", __func__); 549 printk(KERN_INFO "%s(): registering device resources\n", __func__);
552 550
553#ifdef CONFIG_I2C_BOARDINFO
554 i2c_register_board_info(0, bfin_i2c_board_info, 551 i2c_register_board_info(0, bfin_i2c_board_info,
555 ARRAY_SIZE(bfin_i2c_board_info)); 552 ARRAY_SIZE(bfin_i2c_board_info));
556#endif
557 553
558 ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 554 ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
559 if (ret < 0) 555 if (ret < 0)
diff --git a/arch/blackfin/mach-bf533/include/mach/portmux.h b/arch/blackfin/mach-bf533/include/mach/portmux.h
index 685a2651dcda..2f59ce0b0cb5 100644
--- a/arch/blackfin/mach-bf533/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf533/include/mach/portmux.h
@@ -54,14 +54,11 @@
54#define P_SPI0_SSEL2 (P_DEFINED | P_IDENT(GPIO_PF2)) 54#define P_SPI0_SSEL2 (P_DEFINED | P_IDENT(GPIO_PF2))
55#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PF1)) 55#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PF1))
56#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PF0)) 56#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PF0))
57#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2
57 58
58#define P_TMR2 (P_DONTCARE) 59#define P_TMR2 (P_DONTCARE)
59#define P_TMR1 (P_DONTCARE) 60#define P_TMR1 (P_DONTCARE)
60#define P_TMR0 (P_DONTCARE) 61#define P_TMR0 (P_DONTCARE)
61#define P_TMRCLK (P_DEFINED | P_IDENT(GPIO_PF1)) 62#define P_TMRCLK (P_DEFINED | P_IDENT(GPIO_PF1))
62 63
63
64
65
66
67#endif /* _MACH_PORTMUX_H_ */ 64#endif /* _MACH_PORTMUX_H_ */
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537.c b/arch/blackfin/mach-bf537/boards/cm_bf537.c
index 6ac8e4d5bd38..9cd8fb2a30d3 100644
--- a/arch/blackfin/mach-bf537/boards/cm_bf537.c
+++ b/arch/blackfin/mach-bf537/boards/cm_bf537.c
@@ -479,8 +479,13 @@ static struct platform_device bfin_sport1_uart_device = {
479#endif 479#endif
480 480
481#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 481#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
482static struct platform_device bfin_mii_bus = {
483 .name = "bfin_mii_bus",
484};
485
482static struct platform_device bfin_mac_device = { 486static struct platform_device bfin_mac_device = {
483 .name = "bfin_mac", 487 .name = "bfin_mac",
488 .dev.platform_data = &bfin_mii_bus,
484}; 489};
485#endif 490#endif
486 491
@@ -591,6 +596,7 @@ static struct platform_device *cm_bf537_devices[] __initdata = {
591#endif 596#endif
592 597
593#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 598#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
599 &bfin_mii_bus,
594 &bfin_mac_device, 600 &bfin_mac_device,
595#endif 601#endif
596 602
diff --git a/arch/blackfin/mach-bf537/boards/generic_board.c b/arch/blackfin/mach-bf537/boards/generic_board.c
index dd6e6bfb98ea..da710fdc4569 100644
--- a/arch/blackfin/mach-bf537/boards/generic_board.c
+++ b/arch/blackfin/mach-bf537/boards/generic_board.c
@@ -262,8 +262,13 @@ static struct platform_device isp1362_hcd_device = {
262#endif 262#endif
263 263
264#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 264#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
265static struct platform_device bfin_mii_bus = {
266 .name = "bfin_mii_bus",
267};
268
265static struct platform_device bfin_mac_device = { 269static struct platform_device bfin_mac_device = {
266 .name = "bfin_mac", 270 .name = "bfin_mac",
271 .dev.platform_data = &bfin_mii_bus,
267}; 272};
268#endif 273#endif
269 274
@@ -662,6 +667,7 @@ static struct platform_device *stamp_devices[] __initdata = {
662#endif 667#endif
663 668
664#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 669#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
670 &bfin_mii_bus,
665 &bfin_mac_device, 671 &bfin_mac_device,
666#endif 672#endif
667 673
@@ -708,7 +714,7 @@ static struct platform_device *stamp_devices[] __initdata = {
708#endif 714#endif
709}; 715};
710 716
711static int __init stamp_init(void) 717static int __init generic_init(void)
712{ 718{
713 printk(KERN_INFO "%s(): registering device resources\n", __func__); 719 printk(KERN_INFO "%s(): registering device resources\n", __func__);
714 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 720 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
@@ -720,13 +726,13 @@ static int __init stamp_init(void)
720 return 0; 726 return 0;
721} 727}
722 728
723arch_initcall(stamp_init); 729arch_initcall(generic_init);
724 730
725void native_machine_restart(char *cmd) 731void native_machine_restart(char *cmd)
726{ 732{
727 /* workaround reboot hang when booting from SPI */ 733 /* workaround reboot hang when booting from SPI */
728 if ((bfin_read_SYSCR() & 0x7) == 0x3) 734 if ((bfin_read_SYSCR() & 0x7) == 0x3)
729 bfin_gpio_reset_spi0_ssel1(); 735 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
730} 736}
731 737
732#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 738#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
diff --git a/arch/blackfin/mach-bf537/boards/minotaur.c b/arch/blackfin/mach-bf537/boards/minotaur.c
index bb795341cb17..db7d3a385e4b 100644
--- a/arch/blackfin/mach-bf537/boards/minotaur.c
+++ b/arch/blackfin/mach-bf537/boards/minotaur.c
@@ -61,8 +61,13 @@ static struct platform_device rtc_device = {
61#endif 61#endif
62 62
63#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 63#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
64static struct platform_device bfin_mii_bus = {
65 .name = "bfin_mii_bus",
66};
67
64static struct platform_device bfin_mac_device = { 68static struct platform_device bfin_mac_device = {
65 .name = "bfin_mac", 69 .name = "bfin_mac",
70 .dev.platform_data = &bfin_mii_bus,
66}; 71};
67#endif 72#endif
68 73
@@ -324,6 +329,7 @@ static struct platform_device *minotaur_devices[] __initdata = {
324#endif 329#endif
325 330
326#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 331#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
332 &bfin_mii_bus,
327 &bfin_mac_device, 333 &bfin_mac_device,
328#endif 334#endif
329 335
@@ -377,5 +383,5 @@ void native_machine_restart(char *cmd)
377{ 383{
378 /* workaround reboot hang when booting from SPI */ 384 /* workaround reboot hang when booting from SPI */
379 if ((bfin_read_SYSCR() & 0x7) == 0x3) 385 if ((bfin_read_SYSCR() & 0x7) == 0x3)
380 bfin_gpio_reset_spi0_ssel1(); 386 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
381} 387}
diff --git a/arch/blackfin/mach-bf537/boards/pnav10.c b/arch/blackfin/mach-bf537/boards/pnav10.c
index 89de94f4545d..590eb3a139b7 100644
--- a/arch/blackfin/mach-bf537/boards/pnav10.c
+++ b/arch/blackfin/mach-bf537/boards/pnav10.c
@@ -198,8 +198,13 @@ static struct platform_device isp1362_hcd_device = {
198#endif 198#endif
199 199
200#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 200#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
201static struct platform_device bfin_mii_bus = {
202 .name = "bfin_mii_bus",
203};
204
201static struct platform_device bfin_mac_device = { 205static struct platform_device bfin_mac_device = {
202 .name = "bfin_mac", 206 .name = "bfin_mac",
207 .dev.platform_data = &bfin_mii_bus,
203}; 208};
204#endif 209#endif
205 210
@@ -529,6 +534,7 @@ static struct platform_device *stamp_devices[] __initdata = {
529#endif 534#endif
530 535
531#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 536#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
537 &bfin_mii_bus,
532 &bfin_mac_device, 538 &bfin_mac_device,
533#endif 539#endif
534 540
@@ -558,7 +564,7 @@ static struct platform_device *stamp_devices[] __initdata = {
558#endif 564#endif
559}; 565};
560 566
561static int __init stamp_init(void) 567static int __init pnav_init(void)
562{ 568{
563 printk(KERN_INFO "%s(): registering device resources\n", __func__); 569 printk(KERN_INFO "%s(): registering device resources\n", __func__);
564 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 570 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
@@ -569,7 +575,7 @@ static int __init stamp_init(void)
569 return 0; 575 return 0;
570} 576}
571 577
572arch_initcall(stamp_init); 578arch_initcall(pnav_init);
573 579
574void bfin_get_ether_addr(char *addr) 580void bfin_get_ether_addr(char *addr)
575{ 581{
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index d812e2514a2f..cd04c5e44878 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -321,8 +321,13 @@ static struct platform_device isp1362_hcd_device = {
321#endif 321#endif
322 322
323#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 323#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
324static struct platform_device bfin_mii_bus = {
325 .name = "bfin_mii_bus",
326};
327
324static struct platform_device bfin_mac_device = { 328static struct platform_device bfin_mac_device = {
325 .name = "bfin_mac", 329 .name = "bfin_mac",
330 .dev.platform_data = &bfin_mii_bus,
326}; 331};
327#endif 332#endif
328 333
@@ -1068,7 +1073,6 @@ static struct adp5588_kpad_platform_data adp5588_kpad_data = {
1068}; 1073};
1069#endif 1074#endif
1070 1075
1071#ifdef CONFIG_I2C_BOARDINFO
1072static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 1076static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
1073#if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE) 1077#if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE)
1074 { 1078 {
@@ -1102,7 +1106,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
1102 }, 1106 },
1103#endif 1107#endif
1104}; 1108};
1105#endif
1106 1109
1107#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 1110#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
1108static struct platform_device bfin_sport0_uart_device = { 1111static struct platform_device bfin_sport0_uart_device = {
@@ -1217,6 +1220,7 @@ static struct platform_device *stamp_devices[] __initdata = {
1217#endif 1220#endif
1218 1221
1219#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 1222#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
1223 &bfin_mii_bus,
1220 &bfin_mac_device, 1224 &bfin_mac_device,
1221#endif 1225#endif
1222 1226
@@ -1284,12 +1288,8 @@ static struct platform_device *stamp_devices[] __initdata = {
1284static int __init stamp_init(void) 1288static int __init stamp_init(void)
1285{ 1289{
1286 printk(KERN_INFO "%s(): registering device resources\n", __func__); 1290 printk(KERN_INFO "%s(): registering device resources\n", __func__);
1287
1288#ifdef CONFIG_I2C_BOARDINFO
1289 i2c_register_board_info(0, bfin_i2c_board_info, 1291 i2c_register_board_info(0, bfin_i2c_board_info,
1290 ARRAY_SIZE(bfin_i2c_board_info)); 1292 ARRAY_SIZE(bfin_i2c_board_info));
1291#endif
1292
1293 bfin_plat_nand_init(); 1293 bfin_plat_nand_init();
1294 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 1294 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
1295 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 1295 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
@@ -1307,7 +1307,7 @@ void native_machine_restart(char *cmd)
1307{ 1307{
1308 /* workaround reboot hang when booting from SPI */ 1308 /* workaround reboot hang when booting from SPI */
1309 if ((bfin_read_SYSCR() & 0x7) == 0x3) 1309 if ((bfin_read_SYSCR() & 0x7) == 0x3)
1310 bfin_gpio_reset_spi0_ssel1(); 1310 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
1311} 1311}
1312 1312
1313/* 1313/*
diff --git a/arch/blackfin/mach-bf537/boards/tcm_bf537.c b/arch/blackfin/mach-bf537/boards/tcm_bf537.c
index 2f4b066153c5..3f4f203a06ec 100644
--- a/arch/blackfin/mach-bf537/boards/tcm_bf537.c
+++ b/arch/blackfin/mach-bf537/boards/tcm_bf537.c
@@ -481,8 +481,13 @@ static struct platform_device bfin_sport1_uart_device = {
481#endif 481#endif
482 482
483#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 483#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
484static struct platform_device bfin_mii_bus = {
485 .name = "bfin_mii_bus",
486};
487
484static struct platform_device bfin_mac_device = { 488static struct platform_device bfin_mac_device = {
485 .name = "bfin_mac", 489 .name = "bfin_mac",
490 .dev.platform_data = &bfin_mii_bus,
486}; 491};
487#endif 492#endif
488 493
@@ -593,6 +598,7 @@ static struct platform_device *cm_bf537_devices[] __initdata = {
593#endif 598#endif
594 599
595#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 600#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
601 &bfin_mii_bus,
596 &bfin_mac_device, 602 &bfin_mac_device,
597#endif 603#endif
598 604
@@ -615,7 +621,7 @@ static struct platform_device *cm_bf537_devices[] __initdata = {
615 &bfin_gpios_device, 621 &bfin_gpios_device,
616}; 622};
617 623
618static int __init cm_bf537_init(void) 624static int __init tcm_bf537_init(void)
619{ 625{
620 printk(KERN_INFO "%s(): registering device resources\n", __func__); 626 printk(KERN_INFO "%s(): registering device resources\n", __func__);
621 platform_add_devices(cm_bf537_devices, ARRAY_SIZE(cm_bf537_devices)); 627 platform_add_devices(cm_bf537_devices, ARRAY_SIZE(cm_bf537_devices));
@@ -629,7 +635,7 @@ static int __init cm_bf537_init(void)
629 return 0; 635 return 0;
630} 636}
631 637
632arch_initcall(cm_bf537_init); 638arch_initcall(tcm_bf537_init);
633 639
634void bfin_get_ether_addr(char *addr) 640void bfin_get_ether_addr(char *addr)
635{ 641{
diff --git a/arch/blackfin/mach-bf537/include/mach/portmux.h b/arch/blackfin/mach-bf537/include/mach/portmux.h
index 78fee6e0f237..87285e75e903 100644
--- a/arch/blackfin/mach-bf537/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf537/include/mach/portmux.h
@@ -31,6 +31,7 @@
31#define P_PPI0_FS1 (P_DEFINED | P_IDENT(GPIO_PF9) | P_FUNCT(1)) 31#define P_PPI0_FS1 (P_DEFINED | P_IDENT(GPIO_PF9) | P_FUNCT(1))
32#define P_TACLK0 (P_DEFINED | P_IDENT(GPIO_PF14) | P_FUNCT(1)) 32#define P_TACLK0 (P_DEFINED | P_IDENT(GPIO_PF14) | P_FUNCT(1))
33#define P_TMRCLK (P_DEFINED | P_IDENT(GPIO_PF15) | P_FUNCT(1)) 33#define P_TMRCLK (P_DEFINED | P_IDENT(GPIO_PF15) | P_FUNCT(1))
34#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL1
34 35
35#define P_PPI0_D0 (P_DEFINED | P_IDENT(GPIO_PG0) | P_FUNCT(0)) 36#define P_PPI0_D0 (P_DEFINED | P_IDENT(GPIO_PG0) | P_FUNCT(0))
36#define P_PPI0_D1 (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(0)) 37#define P_PPI0_D1 (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(0))
diff --git a/arch/blackfin/mach-bf538/include/mach/portmux.h b/arch/blackfin/mach-bf538/include/mach/portmux.h
index 1e031b588b47..c8db264e3e4d 100644
--- a/arch/blackfin/mach-bf538/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf538/include/mach/portmux.h
@@ -102,5 +102,6 @@
102#define P_SPI0_SSEL2 (P_DEFINED | P_IDENT(GPIO_PF2)) 102#define P_SPI0_SSEL2 (P_DEFINED | P_IDENT(GPIO_PF2))
103#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PF1)) 103#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PF1))
104#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PF0)) 104#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PF0))
105#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2
105 106
106#endif /* _MACH_PORTMUX_H_ */ 107#endif /* _MACH_PORTMUX_H_ */
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c
index 309c16014cae..096e661700a7 100644
--- a/arch/blackfin/mach-bf548/boards/ezkit.c
+++ b/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -781,7 +781,6 @@ static struct platform_device i2c_bfin_twi1_device = {
781#endif 781#endif
782#endif 782#endif
783 783
784#ifdef CONFIG_I2C_BOARDINFO
785static struct i2c_board_info __initdata bfin_i2c_board_info0[] = { 784static struct i2c_board_info __initdata bfin_i2c_board_info0[] = {
786}; 785};
787 786
@@ -800,7 +799,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info1[] = {
800#endif 799#endif
801}; 800};
802#endif 801#endif
803#endif
804 802
805#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 803#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
806#include <linux/gpio_keys.h> 804#include <linux/gpio_keys.h>
@@ -956,14 +954,12 @@ static int __init ezkit_init(void)
956{ 954{
957 printk(KERN_INFO "%s(): registering device resources\n", __func__); 955 printk(KERN_INFO "%s(): registering device resources\n", __func__);
958 956
959#ifdef CONFIG_I2C_BOARDINFO
960 i2c_register_board_info(0, bfin_i2c_board_info0, 957 i2c_register_board_info(0, bfin_i2c_board_info0,
961 ARRAY_SIZE(bfin_i2c_board_info0)); 958 ARRAY_SIZE(bfin_i2c_board_info0));
962#if !defined(CONFIG_BF542) /* The BF542 only has 1 TWI */ 959#if !defined(CONFIG_BF542) /* The BF542 only has 1 TWI */
963 i2c_register_board_info(1, bfin_i2c_board_info1, 960 i2c_register_board_info(1, bfin_i2c_board_info1,
964 ARRAY_SIZE(bfin_i2c_board_info1)); 961 ARRAY_SIZE(bfin_i2c_board_info1));
965#endif 962#endif
966#endif
967 963
968 platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices)); 964 platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices));
969 965
diff --git a/arch/blackfin/mach-bf548/include/mach/anomaly.h b/arch/blackfin/mach-bf548/include/mach/anomaly.h
index 3b5430999f4f..23d03c52f4b4 100644
--- a/arch/blackfin/mach-bf548/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf548/include/mach/anomaly.h
@@ -175,6 +175,7 @@
175#define ANOMALY_05000311 (0) 175#define ANOMALY_05000311 (0)
176#define ANOMALY_05000323 (0) 176#define ANOMALY_05000323 (0)
177#define ANOMALY_05000363 (0) 177#define ANOMALY_05000363 (0)
178#define ANOMALY_05000380 (0)
178#define ANOMALY_05000412 (0) 179#define ANOMALY_05000412 (0)
179#define ANOMALY_05000432 (0) 180#define ANOMALY_05000432 (0)
180#define ANOMALY_05000435 (0) 181#define ANOMALY_05000435 (0)
diff --git a/arch/blackfin/mach-bf548/include/mach/bf548.h b/arch/blackfin/mach-bf548/include/mach/bf548.h
index f0e569984810..cd31f72bdd82 100644
--- a/arch/blackfin/mach-bf548/include/mach/bf548.h
+++ b/arch/blackfin/mach-bf548/include/mach/bf548.h
@@ -104,6 +104,18 @@
104 104
105#define AMGCTLVAL (V_AMBEN | V_AMCKEN) 105#define AMGCTLVAL (V_AMBEN | V_AMCKEN)
106 106
107#if defined(CONFIG_BF542M)
108# define CONFIG_BF542
109#elif defined(CONFIG_BF544M)
110# define CONFIG_BF544
111#elif defined(CONFIG_BF547M)
112# define CONFIG_BF547
113#elif defined(CONFIG_BF548M)
114# define CONFIG_BF548
115#elif defined(CONFIG_BF549M)
116# define CONFIG_BF549
117#endif
118
107#if defined(CONFIG_BF542) 119#if defined(CONFIG_BF542)
108# define CPU "BF542" 120# define CPU "BF542"
109# define CPUID 0x27de 121# define CPUID 0x27de
diff --git a/arch/blackfin/mach-bf548/include/mach/gpio.h b/arch/blackfin/mach-bf548/include/mach/gpio.h
index bba82dc75f16..3a2051709787 100644
--- a/arch/blackfin/mach-bf548/include/mach/gpio.h
+++ b/arch/blackfin/mach-bf548/include/mach/gpio.h
@@ -195,17 +195,17 @@
195struct gpio_port_t { 195struct gpio_port_t {
196 unsigned short port_fer; 196 unsigned short port_fer;
197 unsigned short dummy1; 197 unsigned short dummy1;
198 unsigned short port_data; 198 unsigned short data;
199 unsigned short dummy2; 199 unsigned short dummy2;
200 unsigned short port_set; 200 unsigned short data_set;
201 unsigned short dummy3; 201 unsigned short dummy3;
202 unsigned short port_clear; 202 unsigned short data_clear;
203 unsigned short dummy4; 203 unsigned short dummy4;
204 unsigned short port_dir_set; 204 unsigned short dir_set;
205 unsigned short dummy5; 205 unsigned short dummy5;
206 unsigned short port_dir_clear; 206 unsigned short dir_clear;
207 unsigned short dummy6; 207 unsigned short dummy6;
208 unsigned short port_inen; 208 unsigned short inen;
209 unsigned short dummy7; 209 unsigned short dummy7;
210 unsigned int port_mux; 210 unsigned int port_mux;
211}; 211};
diff --git a/arch/blackfin/mach-bf548/include/mach/portmux.h b/arch/blackfin/mach-bf548/include/mach/portmux.h
index 8177a567dcdb..ffb1d0a44b4d 100644
--- a/arch/blackfin/mach-bf548/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf548/include/mach/portmux.h
@@ -125,6 +125,7 @@
125#define P_KEY_COL2 (P_DEFINED | P_IDENT(GPIO_PD14) | P_FUNCT(3)) 125#define P_KEY_COL2 (P_DEFINED | P_IDENT(GPIO_PD14) | P_FUNCT(3))
126#define P_KEY_COL3 (P_DEFINED | P_IDENT(GPIO_PD15) | P_FUNCT(3)) 126#define P_KEY_COL3 (P_DEFINED | P_IDENT(GPIO_PD15) | P_FUNCT(3))
127 127
128#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL1
128#define P_SPI0_SCK (P_DEFINED | P_IDENT(GPIO_PE0) | P_FUNCT(0)) 129#define P_SPI0_SCK (P_DEFINED | P_IDENT(GPIO_PE0) | P_FUNCT(0))
129#define P_SPI0_MISO (P_DEFINED | P_IDENT(GPIO_PE1) | P_FUNCT(0)) 130#define P_SPI0_MISO (P_DEFINED | P_IDENT(GPIO_PE1) | P_FUNCT(0))
130#define P_SPI0_MOSI (P_DEFINED | P_IDENT(GPIO_PE2) | P_FUNCT(0)) 131#define P_SPI0_MOSI (P_DEFINED | P_IDENT(GPIO_PE2) | P_FUNCT(0))
diff --git a/arch/blackfin/mach-bf561/include/mach/defBF561.h b/arch/blackfin/mach-bf561/include/mach/defBF561.h
index d7c509759659..cf922295f4ce 100644
--- a/arch/blackfin/mach-bf561/include/mach/defBF561.h
+++ b/arch/blackfin/mach-bf561/include/mach/defBF561.h
@@ -1106,6 +1106,8 @@
1106#define DLEN_8 0x0 /* PPI Data Length mask for DLEN=8 */ 1106#define DLEN_8 0x0 /* PPI Data Length mask for DLEN=8 */
1107#define DLEN(x) (((x-9) & 0x07) << 11) /* PPI Data Length (only works for x=10-->x=16) */ 1107#define DLEN(x) (((x-9) & 0x07) << 11) /* PPI Data Length (only works for x=10-->x=16) */
1108#define POL 0x0000C000 /* PPI Signal Polarities */ 1108#define POL 0x0000C000 /* PPI Signal Polarities */
1109#define POLC 0x4000 /* PPI Clock Polarity */
1110#define POLS 0x8000 /* PPI Frame Sync Polarity */
1109 1111
1110/* PPI_STATUS Masks */ 1112/* PPI_STATUS Masks */
1111#define FLD 0x00000400 /* Field Indicator */ 1113#define FLD 0x00000400 /* Field Indicator */
diff --git a/arch/blackfin/mach-bf561/include/mach/portmux.h b/arch/blackfin/mach-bf561/include/mach/portmux.h
index a6ee8206efb6..2e5ad6347dea 100644
--- a/arch/blackfin/mach-bf561/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf561/include/mach/portmux.h
@@ -85,5 +85,6 @@
85#define P_SPI0_MOSI (P_DONTCARE) 85#define P_SPI0_MOSI (P_DONTCARE)
86#define P_SPI0_MISO (P_DONTCARE) 86#define P_SPI0_MISO (P_DONTCARE)
87#define P_SPI0_SCK (P_DONTCARE) 87#define P_SPI0_SCK (P_DONTCARE)
88#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2
88 89
89#endif /* _MACH_PORTMUX_H_ */ 90#endif /* _MACH_PORTMUX_H_ */
diff --git a/arch/blackfin/mach-common/clocks-init.c b/arch/blackfin/mach-common/clocks-init.c
index 5d182abefc7b..9dddb6f8cc85 100644
--- a/arch/blackfin/mach-common/clocks-init.c
+++ b/arch/blackfin/mach-common/clocks-init.c
@@ -14,6 +14,7 @@
14#include <asm/clocks.h> 14#include <asm/clocks.h>
15#include <asm/mem_init.h> 15#include <asm/mem_init.h>
16 16
17#define SDGCTL_WIDTH (1 << 31) /* SDRAM external data path width */
17#define PLL_CTL_VAL \ 18#define PLL_CTL_VAL \
18 (((CONFIG_VCO_MULT & 63) << 9) | CLKIN_HALF | \ 19 (((CONFIG_VCO_MULT & 63) << 9) | CLKIN_HALF | \
19 (PLL_BYPASS << 8) | (ANOMALY_05000265 ? 0x8000 : 0)) 20 (PLL_BYPASS << 8) | (ANOMALY_05000265 ? 0x8000 : 0))
@@ -76,7 +77,7 @@ void init_clocks(void)
76 bfin_write_PLL_DIV(CONFIG_CCLK_ACT_DIV | CONFIG_SCLK_DIV); 77 bfin_write_PLL_DIV(CONFIG_CCLK_ACT_DIV | CONFIG_SCLK_DIV);
77#ifdef EBIU_SDGCTL 78#ifdef EBIU_SDGCTL
78 bfin_write_EBIU_SDRRC(mem_SDRRC); 79 bfin_write_EBIU_SDRRC(mem_SDRRC);
79 bfin_write_EBIU_SDGCTL(mem_SDGCTL); 80 bfin_write_EBIU_SDGCTL((bfin_read_EBIU_SDGCTL() & SDGCTL_WIDTH) | mem_SDGCTL);
80#else 81#else
81 bfin_write_EBIU_RSTCTL(bfin_read_EBIU_RSTCTL() & ~(SRREQ)); 82 bfin_write_EBIU_RSTCTL(bfin_read_EBIU_RSTCTL() & ~(SRREQ));
82 do_sync(); 83 do_sync();
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index fae774651374..88de053bbe8e 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -151,13 +151,6 @@ ENTRY(_ex_syscall)
151 jump.s _bfin_return_from_exception; 151 jump.s _bfin_return_from_exception;
152ENDPROC(_ex_syscall) 152ENDPROC(_ex_syscall)
153 153
154ENTRY(_ex_soft_bp)
155 r7 = retx;
156 r7 += -2;
157 retx = r7;
158 jump.s _ex_trap_c;
159ENDPROC(_ex_soft_bp)
160
161ENTRY(_ex_single_step) 154ENTRY(_ex_single_step)
162 /* If we just returned from an interrupt, the single step event is 155 /* If we just returned from an interrupt, the single step event is
163 for the RTI instruction. */ 156 for the RTI instruction. */
@@ -1087,7 +1080,7 @@ ENTRY(_ex_table)
1087 * EXCPT instruction can provide 4 bits of EXCAUSE, allowing 16 to be user defined 1080 * EXCPT instruction can provide 4 bits of EXCAUSE, allowing 16 to be user defined
1088 */ 1081 */
1089 .long _ex_syscall /* 0x00 - User Defined - Linux Syscall */ 1082 .long _ex_syscall /* 0x00 - User Defined - Linux Syscall */
1090 .long _ex_soft_bp /* 0x01 - User Defined - Software breakpoint */ 1083 .long _ex_trap_c /* 0x01 - User Defined - Software breakpoint */
1091#ifdef CONFIG_KGDB 1084#ifdef CONFIG_KGDB
1092 .long _ex_trap_c /* 0x02 - User Defined - KGDB initial connection 1085 .long _ex_trap_c /* 0x02 - User Defined - KGDB initial connection
1093 and break signal trap */ 1086 and break signal trap */
diff --git a/arch/blackfin/mach-common/head.S b/arch/blackfin/mach-common/head.S
index e1e42c029e15..698d4c05947e 100644
--- a/arch/blackfin/mach-common/head.S
+++ b/arch/blackfin/mach-common/head.S
@@ -17,6 +17,19 @@
17 17
18__INIT 18__INIT
19 19
20ENTRY(__init_clear_bss)
21 r2 = r2 - r1;
22 cc = r2 == 0;
23 if cc jump .L_bss_done;
24 r2 >>= 2;
25 p1 = r1;
26 p2 = r2;
27 lsetup (1f, 1f) lc0 = p2;
281: [p1++] = r0;
29.L_bss_done:
30 rts;
31ENDPROC(__init_clear_bss)
32
20#define INITIAL_STACK (L1_SCRATCH_START + L1_SCRATCH_LENGTH - 12) 33#define INITIAL_STACK (L1_SCRATCH_START + L1_SCRATCH_LENGTH - 12)
21 34
22ENTRY(__start) 35ENTRY(__start)
@@ -144,6 +157,35 @@ ENTRY(__start)
144 call _init_early_exception_vectors; 157 call _init_early_exception_vectors;
145#endif 158#endif
146 159
160 r0 = 0 (x);
161 /* Zero out all of the fun bss regions */
162#if L1_DATA_A_LENGTH > 0
163 r1.l = __sbss_l1;
164 r1.h = __sbss_l1;
165 r2.l = __ebss_l1;
166 r2.h = __ebss_l1;
167 call __init_clear_bss
168#endif
169#if L1_DATA_B_LENGTH > 0
170 r1.l = __sbss_b_l1;
171 r1.h = __sbss_b_l1;
172 r2.l = __ebss_b_l1;
173 r2.h = __ebss_b_l1;
174 call __init_clear_bss
175#endif
176#if L2_LENGTH > 0
177 r1.l = __sbss_l2;
178 r1.h = __sbss_l2;
179 r2.l = __ebss_l2;
180 r2.h = __ebss_l2;
181 call __init_clear_bss
182#endif
183 r1.l = ___bss_start;
184 r1.h = ___bss_start;
185 r2.l = ___bss_stop;
186 r2.h = ___bss_stop;
187 call __init_clear_bss
188
147 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ 189 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */
148 call _bfin_relocate_l1_mem; 190 call _bfin_relocate_l1_mem;
149#ifdef CONFIG_BFIN_KERNEL_CLOCK 191#ifdef CONFIG_BFIN_KERNEL_CLOCK
@@ -185,19 +227,6 @@ ENDPROC(__start)
185# define WDOG_CTL WDOGA_CTL 227# define WDOG_CTL WDOGA_CTL
186#endif 228#endif
187 229
188ENTRY(__init_clear_bss)
189 r2 = r2 - r1;
190 cc = r2 == 0;
191 if cc jump .L_bss_done;
192 r2 >>= 2;
193 p1 = r1;
194 p2 = r2;
195 lsetup (1f, 1f) lc0 = p2;
1961: [p1++] = r0;
197.L_bss_done:
198 rts;
199ENDPROC(__init_clear_bss)
200
201ENTRY(_real_start) 230ENTRY(_real_start)
202 /* Enable nested interrupts */ 231 /* Enable nested interrupts */
203 [--sp] = reti; 232 [--sp] = reti;
@@ -209,35 +238,6 @@ ENTRY(_real_start)
209 w[p0] = r0; 238 w[p0] = r0;
210 ssync; 239 ssync;
211 240
212 r0 = 0 (x);
213 /* Zero out all of the fun bss regions */
214#if L1_DATA_A_LENGTH > 0
215 r1.l = __sbss_l1;
216 r1.h = __sbss_l1;
217 r2.l = __ebss_l1;
218 r2.h = __ebss_l1;
219 call __init_clear_bss
220#endif
221#if L1_DATA_B_LENGTH > 0
222 r1.l = __sbss_b_l1;
223 r1.h = __sbss_b_l1;
224 r2.l = __ebss_b_l1;
225 r2.h = __ebss_b_l1;
226 call __init_clear_bss
227#endif
228#if L2_LENGTH > 0
229 r1.l = __sbss_l2;
230 r1.h = __sbss_l2;
231 r2.l = __ebss_l2;
232 r2.h = __ebss_l2;
233 call __init_clear_bss
234#endif
235 r1.l = ___bss_start;
236 r1.h = ___bss_start;
237 r2.l = ___bss_stop;
238 r2.h = ___bss_stop;
239 call __init_clear_bss
240
241 /* Pass the u-boot arguments to the global value command line */ 241 /* Pass the u-boot arguments to the global value command line */
242 R0 = R7; 242 R0 = R7;
243 call _cmdline_init; 243 call _cmdline_init;
diff --git a/arch/blackfin/mach-common/interrupt.S b/arch/blackfin/mach-common/interrupt.S
index 473df0f7fa78..43c4eb9acb65 100644
--- a/arch/blackfin/mach-common/interrupt.S
+++ b/arch/blackfin/mach-common/interrupt.S
@@ -195,7 +195,7 @@ ENDPROC(_evt_ivhw)
195/* Interrupt routine for evt2 (NMI). 195/* Interrupt routine for evt2 (NMI).
196 * We don't actually use this, so just return. 196 * We don't actually use this, so just return.
197 * For inner circle type details, please see: 197 * For inner circle type details, please see:
198 * http://docs.blackfin.uclinux.org/doku.php?id=linux:nmi 198 * http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:nmi
199 */ 199 */
200ENTRY(_evt_nmi) 200ENTRY(_evt_nmi)
201.weak _evt_nmi 201.weak _evt_nmi
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c
index 1bba6030dce9..202494568c6c 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -1101,10 +1101,9 @@ int __init init_arch_irq(void)
1101 IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 | 1101 IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 |
1102 IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW; 1102 IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW;
1103 1103
1104#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) \ 1104#ifdef SIC_IWR0
1105 || defined(BF538_FAMILY) || defined(CONFIG_BF51x)
1106 bfin_write_SIC_IWR0(IWR_DISABLE_ALL); 1105 bfin_write_SIC_IWR0(IWR_DISABLE_ALL);
1107#if defined(CONFIG_BF52x) || defined(CONFIG_BF51x) 1106# ifdef SIC_IWR1
1108 /* BF52x/BF51x system reset does not properly reset SIC_IWR1 which 1107 /* BF52x/BF51x system reset does not properly reset SIC_IWR1 which
1109 * will screw up the bootrom as it relies on MDMA0/1 waking it 1108 * will screw up the bootrom as it relies on MDMA0/1 waking it
1110 * up from IDLE instructions. See this report for more info: 1109 * up from IDLE instructions. See this report for more info:
@@ -1114,10 +1113,8 @@ int __init init_arch_irq(void)
1114 bfin_write_SIC_IWR1(IWR_ENABLE(10) | IWR_ENABLE(11)); 1113 bfin_write_SIC_IWR1(IWR_ENABLE(10) | IWR_ENABLE(11));
1115 else 1114 else
1116 bfin_write_SIC_IWR1(IWR_DISABLE_ALL); 1115 bfin_write_SIC_IWR1(IWR_DISABLE_ALL);
1117#else 1116# endif
1118 bfin_write_SIC_IWR1(IWR_DISABLE_ALL); 1117# ifdef SIC_IWR2
1119#endif
1120# ifdef CONFIG_BF54x
1121 bfin_write_SIC_IWR2(IWR_DISABLE_ALL); 1118 bfin_write_SIC_IWR2(IWR_DISABLE_ALL);
1122# endif 1119# endif
1123#else 1120#else
diff --git a/arch/blackfin/mach-common/pm.c b/arch/blackfin/mach-common/pm.c
index d3d70fd67c16..f48a6aebb49b 100644
--- a/arch/blackfin/mach-common/pm.c
+++ b/arch/blackfin/mach-common/pm.c
@@ -82,10 +82,9 @@ void bfin_pm_suspend_standby_enter(void)
82 82
83 bfin_pm_standby_restore(); 83 bfin_pm_standby_restore();
84 84
85#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) || \ 85#ifdef SIC_IWR0
86 defined(CONFIG_BF538) || defined(CONFIG_BF539) || defined(CONFIG_BF51x)
87 bfin_write_SIC_IWR0(IWR_DISABLE_ALL); 86 bfin_write_SIC_IWR0(IWR_DISABLE_ALL);
88#if defined(CONFIG_BF52x) || defined(CONFIG_BF51x) 87# ifdef SIC_IWR1
89 /* BF52x system reset does not properly reset SIC_IWR1 which 88 /* BF52x system reset does not properly reset SIC_IWR1 which
90 * will screw up the bootrom as it relies on MDMA0/1 waking it 89 * will screw up the bootrom as it relies on MDMA0/1 waking it
91 * up from IDLE instructions. See this report for more info: 90 * up from IDLE instructions. See this report for more info:
@@ -95,10 +94,8 @@ void bfin_pm_suspend_standby_enter(void)
95 bfin_write_SIC_IWR1(IWR_ENABLE(10) | IWR_ENABLE(11)); 94 bfin_write_SIC_IWR1(IWR_ENABLE(10) | IWR_ENABLE(11));
96 else 95 else
97 bfin_write_SIC_IWR1(IWR_DISABLE_ALL); 96 bfin_write_SIC_IWR1(IWR_DISABLE_ALL);
98#else 97# endif
99 bfin_write_SIC_IWR1(IWR_DISABLE_ALL); 98# ifdef SIC_IWR2
100#endif
101# ifdef CONFIG_BF54x
102 bfin_write_SIC_IWR2(IWR_DISABLE_ALL); 99 bfin_write_SIC_IWR2(IWR_DISABLE_ALL);
103# endif 100# endif
104#else 101#else
diff --git a/arch/cris/arch-v10/kernel/entry.S b/arch/cris/arch-v10/kernel/entry.S
index ed171d389e65..72f5cd319b97 100644
--- a/arch/cris/arch-v10/kernel/entry.S
+++ b/arch/cris/arch-v10/kernel/entry.S
@@ -691,7 +691,7 @@ sys_call_table:
691 .long sys_uselib 691 .long sys_uselib
692 .long sys_swapon 692 .long sys_swapon
693 .long sys_reboot 693 .long sys_reboot
694 .long old_readdir 694 .long sys_old_readdir
695 .long old_mmap /* 90 */ 695 .long old_mmap /* 90 */
696 .long sys_munmap 696 .long sys_munmap
697 .long sys_truncate 697 .long sys_truncate
diff --git a/arch/cris/arch-v32/kernel/entry.S b/arch/cris/arch-v32/kernel/entry.S
index 7f6f93e6b70e..5e674c8f7c51 100644
--- a/arch/cris/arch-v32/kernel/entry.S
+++ b/arch/cris/arch-v32/kernel/entry.S
@@ -614,7 +614,7 @@ sys_call_table:
614 .long sys_uselib 614 .long sys_uselib
615 .long sys_swapon 615 .long sys_swapon
616 .long sys_reboot 616 .long sys_reboot
617 .long old_readdir 617 .long sys_old_readdir
618 .long old_mmap /* 90 */ 618 .long old_mmap /* 90 */
619 .long sys_munmap 619 .long sys_munmap
620 .long sys_truncate 620 .long sys_truncate
diff --git a/arch/cris/include/arch-v10/arch/byteorder.h b/arch/cris/include/arch-v10/arch/swab.h
index 255b646b7fa8..e4e847d8a05e 100644
--- a/arch/cris/include/arch-v10/arch/byteorder.h
+++ b/arch/cris/include/arch-v10/arch/swab.h
@@ -1,26 +1,30 @@
1#ifndef _CRIS_ARCH_BYTEORDER_H 1#ifndef _CRIS_ARCH_SWAB_H
2#define _CRIS_ARCH_BYTEORDER_H 2#define _CRIS_ARCH_SWAB_H
3 3
4#include <asm/types.h> 4#include <asm/types.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
6 6
7#define __SWAB_64_THRU_32__
8
7/* we just define these two (as we can do the swap in a single 9/* we just define these two (as we can do the swap in a single
8 * asm instruction in CRIS) and the arch-independent files will put 10 * asm instruction in CRIS) and the arch-independent files will put
9 * them together into ntohl etc. 11 * them together into ntohl etc.
10 */ 12 */
11 13
12static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) 14static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
13{ 15{
14 __asm__ ("swapwb %0" : "=r" (x) : "0" (x)); 16 __asm__ ("swapwb %0" : "=r" (x) : "0" (x));
15 17
16 return(x); 18 return(x);
17} 19}
20#define __arch_swab32 __arch_swab32
18 21
19static inline __attribute_const__ __u16 ___arch__swab16(__u16 x) 22static inline __attribute_const__ __u16 __arch_swab16(__u16 x)
20{ 23{
21 __asm__ ("swapb %0" : "=r" (x) : "0" (x)); 24 __asm__ ("swapb %0" : "=r" (x) : "0" (x));
22 25
23 return(x); 26 return(x);
24} 27}
28#define __arch_swab16 __arch_swab16
25 29
26#endif 30#endif
diff --git a/arch/cris/include/arch-v32/arch/byteorder.h b/arch/cris/include/arch-v32/arch/byteorder.h
deleted file mode 100644
index 6ef8fb4a35f2..000000000000
--- a/arch/cris/include/arch-v32/arch/byteorder.h
+++ /dev/null
@@ -1,20 +0,0 @@
1#ifndef _ASM_CRIS_ARCH_BYTEORDER_H
2#define _ASM_CRIS_ARCH_BYTEORDER_H
3
4#include <asm/types.h>
5
6static inline __const__ __u32
7___arch__swab32(__u32 x)
8{
9 __asm__ __volatile__ ("swapwb %0" : "=r" (x) : "0" (x));
10 return (x);
11}
12
13static inline __const__ __u16
14___arch__swab16(__u16 x)
15{
16 __asm__ __volatile__ ("swapb %0" : "=r" (x) : "0" (x));
17 return (x);
18}
19
20#endif /* _ASM_CRIS_ARCH_BYTEORDER_H */
diff --git a/arch/cris/include/arch-v32/arch/swab.h b/arch/cris/include/arch-v32/arch/swab.h
new file mode 100644
index 000000000000..9a4ea5e209c2
--- /dev/null
+++ b/arch/cris/include/arch-v32/arch/swab.h
@@ -0,0 +1,24 @@
1#ifndef _ASM_CRIS_ARCH_SWAB_H
2#define _ASM_CRIS_ARCH_SWAB_H
3
4#include <asm/types.h>
5
6#define __SWAB_64_THRU_32__
7
8static inline __const__ __u32
9__arch_swab32(__u32 x)
10{
11 __asm__ __volatile__ ("swapwb %0" : "=r" (x) : "0" (x));
12 return (x);
13}
14#define __arch_swab32 __arch_swab32
15
16static inline __const__ __u16
17__arch_swab16(__u16 x)
18{
19 __asm__ __volatile__ ("swapb %0" : "=r" (x) : "0" (x));
20 return (x);
21}
22#define __arch_swab16 __arch_swab16
23
24#endif /* _ASM_CRIS_ARCH_SWAB_H */
diff --git a/arch/cris/include/asm/byteorder.h b/arch/cris/include/asm/byteorder.h
index cc8e418cfd14..bcd189798e26 100644
--- a/arch/cris/include/asm/byteorder.h
+++ b/arch/cris/include/asm/byteorder.h
@@ -1,25 +1,6 @@
1#ifndef _CRIS_BYTEORDER_H 1#ifndef _CRIS_BYTEORDER_H
2#define _CRIS_BYTEORDER_H 2#define _CRIS_BYTEORDER_H
3 3
4#ifdef __GNUC__
5
6#ifdef __KERNEL__
7#include <arch/byteorder.h>
8
9/* defines are necessary because the other files detect the presence
10 * of a defined __arch_swab32, not an inline
11 */
12#define __arch__swab32(x) ___arch__swab32(x)
13#define __arch__swab16(x) ___arch__swab16(x)
14#endif /* __KERNEL__ */
15
16#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
17# define __BYTEORDER_HAS_U64__
18# define __SWAB_64_THRU_32__
19#endif
20
21#endif /* __GNUC__ */
22
23#include <linux/byteorder/little_endian.h> 4#include <linux/byteorder/little_endian.h>
24 5
25#endif 6#endif
diff --git a/arch/cris/include/asm/swab.h b/arch/cris/include/asm/swab.h
new file mode 100644
index 000000000000..80668e88419c
--- /dev/null
+++ b/arch/cris/include/asm/swab.h
@@ -0,0 +1,8 @@
1#ifndef _CRIS_SWAB_H
2#define _CRIS_SWAB_H
3
4#ifdef __KERNEL__
5#include <arch/swab.h>
6#endif /* __KERNEL__ */
7
8#endif /* _CRIS_SWAB_H */
diff --git a/arch/frv/mm/dma-alloc.c b/arch/frv/mm/dma-alloc.c
index dc6522c464d4..44840e73e907 100644
--- a/arch/frv/mm/dma-alloc.c
+++ b/arch/frv/mm/dma-alloc.c
@@ -36,10 +36,10 @@
36#include <linux/vmalloc.h> 36#include <linux/vmalloc.h>
37#include <linux/init.h> 37#include <linux/init.h>
38#include <linux/pci.h> 38#include <linux/pci.h>
39#include <linux/hardirq.h>
39 40
40#include <asm/pgalloc.h> 41#include <asm/pgalloc.h>
41#include <asm/io.h> 42#include <asm/io.h>
42#include <asm/hardirq.h>
43#include <asm/mmu_context.h> 43#include <asm/mmu_context.h>
44#include <asm/pgtable.h> 44#include <asm/pgtable.h>
45#include <asm/mmu.h> 45#include <asm/mmu.h>
diff --git a/arch/h8300/include/asm/Kbuild b/arch/h8300/include/asm/Kbuild
index 27b108a86b39..c68e1680da01 100644
--- a/arch/h8300/include/asm/Kbuild
+++ b/arch/h8300/include/asm/Kbuild
@@ -1,2 +1 @@
1include include/asm-generic/Kbuild.asm include include/asm-generic/Kbuild.asm
2unifdef-y += swab.h
diff --git a/arch/h8300/include/asm/byteorder.h b/arch/h8300/include/asm/byteorder.h
index c36b80a3dd84..13539da99efd 100644
--- a/arch/h8300/include/asm/byteorder.h
+++ b/arch/h8300/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _H8300_BYTEORDER_H 1#ifndef _H8300_BYTEORDER_H
2#define _H8300_BYTEORDER_H 2#define _H8300_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/big_endian.h> 4#include <linux/byteorder/big_endian.h>
6 5
7#endif /* _H8300_BYTEORDER_H */ 6#endif /* _H8300_BYTEORDER_H */
diff --git a/arch/h8300/include/asm/swab.h b/arch/h8300/include/asm/swab.h
index c108f39b8bc4..39abbf52807d 100644
--- a/arch/h8300/include/asm/swab.h
+++ b/arch/h8300/include/asm/swab.h
@@ -1,7 +1,7 @@
1#ifndef _H8300_SWAB_H 1#ifndef _H8300_SWAB_H
2#define _H8300_SWAB_H 2#define _H8300_SWAB_H
3 3
4#include <asm/types.h> 4#include <linux/types.h>
5 5
6#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__) 6#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
7# define __SWAB_64_THRU_32__ 7# define __SWAB_64_THRU_32__
diff --git a/arch/h8300/kernel/syscalls.S b/arch/h8300/kernel/syscalls.S
index 54e21c3f2057..4eb67faac633 100644
--- a/arch/h8300/kernel/syscalls.S
+++ b/arch/h8300/kernel/syscalls.S
@@ -103,7 +103,7 @@ SYMBOL_NAME_LABEL(sys_call_table)
103 .long SYMBOL_NAME(sys_uselib) 103 .long SYMBOL_NAME(sys_uselib)
104 .long SYMBOL_NAME(sys_swapon) 104 .long SYMBOL_NAME(sys_swapon)
105 .long SYMBOL_NAME(sys_reboot) 105 .long SYMBOL_NAME(sys_reboot)
106 .long SYMBOL_NAME(old_readdir) 106 .long SYMBOL_NAME(sys_old_readdir)
107 .long SYMBOL_NAME(old_mmap) /* 90 */ 107 .long SYMBOL_NAME(old_mmap) /* 90 */
108 .long SYMBOL_NAME(sys_munmap) 108 .long SYMBOL_NAME(sys_munmap)
109 .long SYMBOL_NAME(sys_truncate) 109 .long SYMBOL_NAME(sys_truncate)
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 3d31636cbafb..153e727a6e8e 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -17,6 +17,7 @@ config IA64
17 select ACPI if (!IA64_HP_SIM) 17 select ACPI if (!IA64_HP_SIM)
18 select PM if (!IA64_HP_SIM) 18 select PM if (!IA64_HP_SIM)
19 select ARCH_SUPPORTS_MSI 19 select ARCH_SUPPORTS_MSI
20 select HAVE_UNSTABLE_SCHED_CLOCK
20 select HAVE_IDE 21 select HAVE_IDE
21 select HAVE_OPROFILE 22 select HAVE_OPROFILE
22 select HAVE_KPROBES 23 select HAVE_KPROBES
@@ -220,7 +221,11 @@ config IA64_HP_SIM
220 221
221config IA64_XEN_GUEST 222config IA64_XEN_GUEST
222 bool "Xen guest" 223 bool "Xen guest"
224 select SWIOTLB
223 depends on XEN 225 depends on XEN
226 help
227 Build a kernel that runs on Xen guest domain. At this moment only
228 16KB page size in supported.
224 229
225endchoice 230endchoice
226 231
@@ -478,8 +483,7 @@ config HOLES_IN_ZONE
478 default y if VIRTUAL_MEM_MAP 483 default y if VIRTUAL_MEM_MAP
479 484
480config HAVE_ARCH_EARLY_PFN_TO_NID 485config HAVE_ARCH_EARLY_PFN_TO_NID
481 def_bool y 486 def_bool NUMA && SPARSEMEM
482 depends on NEED_MULTIPLE_NODES
483 487
484config HAVE_ARCH_NODEDATA_EXTENSION 488config HAVE_ARCH_NODEDATA_EXTENSION
485 def_bool y 489 def_bool y
@@ -634,6 +638,17 @@ config DMAR
634 and include PCI device scope covered by these DMA 638 and include PCI device scope covered by these DMA
635 remapping devices. 639 remapping devices.
636 640
641config DMAR_DEFAULT_ON
642 def_bool y
643 prompt "Enable DMA Remapping Devices by default"
644 depends on DMAR
645 help
646 Selecting this option will enable a DMAR device at boot time if
647 one is found. If this option is not selected, DMAR support can
648 be enabled by passing intel_iommu=on to the kernel. It is
649 recommended you say N here while the DMAR code remains
650 experimental.
651
637endmenu 652endmenu
638 653
639endif 654endif
diff --git a/arch/ia64/configs/bigsur_defconfig b/arch/ia64/configs/bigsur_defconfig
index 6dd8655664f3..ace41096b47b 100644
--- a/arch/ia64/configs/bigsur_defconfig
+++ b/arch/ia64/configs/bigsur_defconfig
@@ -752,7 +752,7 @@ CONFIG_I2C_ALGOBIT=y
752# 752#
753# CONFIG_SENSORS_DS1337 is not set 753# CONFIG_SENSORS_DS1337 is not set
754# CONFIG_SENSORS_DS1374 is not set 754# CONFIG_SENSORS_DS1374 is not set
755# CONFIG_SENSORS_EEPROM is not set 755# CONFIG_EEPROM_LEGACY is not set
756# CONFIG_SENSORS_PCF8574 is not set 756# CONFIG_SENSORS_PCF8574 is not set
757# CONFIG_SENSORS_PCA9539 is not set 757# CONFIG_SENSORS_PCA9539 is not set
758# CONFIG_SENSORS_PCF8591 is not set 758# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/ia64/configs/generic_defconfig b/arch/ia64/configs/generic_defconfig
index 27eb67604c53..a109db30ce55 100644
--- a/arch/ia64/configs/generic_defconfig
+++ b/arch/ia64/configs/generic_defconfig
@@ -578,7 +578,7 @@ CONFIG_ATA_PIIX=y
578# CONFIG_SATA_SIS is not set 578# CONFIG_SATA_SIS is not set
579# CONFIG_SATA_ULI is not set 579# CONFIG_SATA_ULI is not set
580# CONFIG_SATA_VIA is not set 580# CONFIG_SATA_VIA is not set
581# CONFIG_SATA_VITESSE is not set 581CONFIG_SATA_VITESSE=y
582# CONFIG_SATA_INIC162X is not set 582# CONFIG_SATA_INIC162X is not set
583# CONFIG_PATA_ACPI is not set 583# CONFIG_PATA_ACPI is not set
584# CONFIG_PATA_ALI is not set 584# CONFIG_PATA_ALI is not set
diff --git a/arch/ia64/configs/xen_domu_defconfig b/arch/ia64/configs/xen_domu_defconfig
new file mode 100644
index 000000000000..0bb0714dc19d
--- /dev/null
+++ b/arch/ia64/configs/xen_domu_defconfig
@@ -0,0 +1,1601 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc1
4# Fri Jan 16 11:49:59 2009
5#
6CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
7
8#
9# General setup
10#
11CONFIG_EXPERIMENTAL=y
12CONFIG_LOCK_KERNEL=y
13CONFIG_INIT_ENV_ARG_LIMIT=32
14CONFIG_LOCALVERSION=""
15CONFIG_LOCALVERSION_AUTO=y
16CONFIG_SWAP=y
17CONFIG_SYSVIPC=y
18CONFIG_SYSVIPC_SYSCTL=y
19CONFIG_POSIX_MQUEUE=y
20# CONFIG_BSD_PROCESS_ACCT is not set
21# CONFIG_TASKSTATS is not set
22# CONFIG_AUDIT is not set
23CONFIG_IKCONFIG=y
24CONFIG_IKCONFIG_PROC=y
25CONFIG_LOG_BUF_SHIFT=20
26CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
27# CONFIG_GROUP_SCHED is not set
28
29#
30# Control Group support
31#
32# CONFIG_CGROUPS is not set
33CONFIG_SYSFS_DEPRECATED=y
34CONFIG_SYSFS_DEPRECATED_V2=y
35# CONFIG_RELAY is not set
36CONFIG_NAMESPACES=y
37# CONFIG_UTS_NS is not set
38# CONFIG_IPC_NS is not set
39# CONFIG_USER_NS is not set
40# CONFIG_PID_NS is not set
41CONFIG_BLK_DEV_INITRD=y
42CONFIG_INITRAMFS_SOURCE=""
43CONFIG_CC_OPTIMIZE_FOR_SIZE=y
44CONFIG_SYSCTL=y
45# CONFIG_EMBEDDED is not set
46CONFIG_SYSCTL_SYSCALL=y
47CONFIG_KALLSYMS=y
48CONFIG_KALLSYMS_ALL=y
49CONFIG_KALLSYMS_STRIP_GENERATED=y
50# CONFIG_KALLSYMS_EXTRA_PASS is not set
51CONFIG_HOTPLUG=y
52CONFIG_PRINTK=y
53CONFIG_BUG=y
54CONFIG_ELF_CORE=y
55CONFIG_COMPAT_BRK=y
56CONFIG_BASE_FULL=y
57CONFIG_FUTEX=y
58CONFIG_ANON_INODES=y
59CONFIG_EPOLL=y
60CONFIG_SIGNALFD=y
61CONFIG_TIMERFD=y
62CONFIG_EVENTFD=y
63CONFIG_SHMEM=y
64CONFIG_AIO=y
65CONFIG_VM_EVENT_COUNTERS=y
66CONFIG_PCI_QUIRKS=y
67CONFIG_SLUB_DEBUG=y
68# CONFIG_SLAB is not set
69CONFIG_SLUB=y
70# CONFIG_SLOB is not set
71# CONFIG_PROFILING is not set
72CONFIG_HAVE_OPROFILE=y
73# CONFIG_KPROBES is not set
74CONFIG_HAVE_KPROBES=y
75CONFIG_HAVE_KRETPROBES=y
76CONFIG_HAVE_ARCH_TRACEHOOK=y
77CONFIG_HAVE_DMA_ATTRS=y
78CONFIG_USE_GENERIC_SMP_HELPERS=y
79# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
80CONFIG_SLABINFO=y
81CONFIG_RT_MUTEXES=y
82CONFIG_BASE_SMALL=0
83CONFIG_MODULES=y
84# CONFIG_MODULE_FORCE_LOAD is not set
85CONFIG_MODULE_UNLOAD=y
86# CONFIG_MODULE_FORCE_UNLOAD is not set
87CONFIG_MODVERSIONS=y
88CONFIG_MODULE_SRCVERSION_ALL=y
89CONFIG_STOP_MACHINE=y
90CONFIG_BLOCK=y
91# CONFIG_BLK_DEV_IO_TRACE is not set
92# CONFIG_BLK_DEV_BSG is not set
93# CONFIG_BLK_DEV_INTEGRITY is not set
94
95#
96# IO Schedulers
97#
98CONFIG_IOSCHED_NOOP=y
99CONFIG_IOSCHED_AS=y
100CONFIG_IOSCHED_DEADLINE=y
101CONFIG_IOSCHED_CFQ=y
102CONFIG_DEFAULT_AS=y
103# CONFIG_DEFAULT_DEADLINE is not set
104# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_TREE_RCU is not set
109# CONFIG_PREEMPT_RCU is not set
110# CONFIG_TREE_RCU_TRACE is not set
111# CONFIG_PREEMPT_RCU_TRACE is not set
112CONFIG_FREEZER=y
113
114#
115# Processor type and features
116#
117CONFIG_IA64=y
118CONFIG_64BIT=y
119CONFIG_ZONE_DMA=y
120CONFIG_QUICKLIST=y
121CONFIG_MMU=y
122CONFIG_SWIOTLB=y
123CONFIG_IOMMU_HELPER=y
124CONFIG_RWSEM_XCHGADD_ALGORITHM=y
125CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
126CONFIG_GENERIC_FIND_NEXT_BIT=y
127CONFIG_GENERIC_CALIBRATE_DELAY=y
128CONFIG_GENERIC_TIME=y
129CONFIG_GENERIC_TIME_VSYSCALL=y
130CONFIG_HAVE_SETUP_PER_CPU_AREA=y
131CONFIG_DMI=y
132CONFIG_EFI=y
133CONFIG_GENERIC_IOMAP=y
134CONFIG_SCHED_OMIT_FRAME_POINTER=y
135CONFIG_AUDIT_ARCH=y
136CONFIG_PARAVIRT_GUEST=y
137CONFIG_PARAVIRT=y
138CONFIG_XEN=y
139CONFIG_XEN_XENCOMM=y
140CONFIG_NO_IDLE_HZ=y
141# CONFIG_IA64_GENERIC is not set
142# CONFIG_IA64_DIG is not set
143# CONFIG_IA64_DIG_VTD is not set
144# CONFIG_IA64_HP_ZX1 is not set
145# CONFIG_IA64_HP_ZX1_SWIOTLB is not set
146# CONFIG_IA64_SGI_SN2 is not set
147# CONFIG_IA64_SGI_UV is not set
148# CONFIG_IA64_HP_SIM is not set
149CONFIG_IA64_XEN_GUEST=y
150# CONFIG_ITANIUM is not set
151CONFIG_MCKINLEY=y
152# CONFIG_IA64_PAGE_SIZE_4KB is not set
153# CONFIG_IA64_PAGE_SIZE_8KB is not set
154CONFIG_IA64_PAGE_SIZE_16KB=y
155# CONFIG_IA64_PAGE_SIZE_64KB is not set
156CONFIG_PGTABLE_3=y
157# CONFIG_PGTABLE_4 is not set
158CONFIG_HZ=250
159# CONFIG_HZ_100 is not set
160CONFIG_HZ_250=y
161# CONFIG_HZ_300 is not set
162# CONFIG_HZ_1000 is not set
163# CONFIG_SCHED_HRTICK is not set
164CONFIG_IA64_L1_CACHE_SHIFT=7
165CONFIG_IA64_CYCLONE=y
166CONFIG_IOSAPIC=y
167CONFIG_FORCE_MAX_ZONEORDER=17
168# CONFIG_VIRT_CPU_ACCOUNTING is not set
169CONFIG_SMP=y
170CONFIG_NR_CPUS=16
171CONFIG_HOTPLUG_CPU=y
172CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
173CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
174# CONFIG_SCHED_SMT is not set
175CONFIG_PERMIT_BSP_REMOVE=y
176CONFIG_FORCE_CPEI_RETARGET=y
177CONFIG_PREEMPT_NONE=y
178# CONFIG_PREEMPT_VOLUNTARY is not set
179# CONFIG_PREEMPT is not set
180CONFIG_SELECT_MEMORY_MODEL=y
181CONFIG_FLATMEM_MANUAL=y
182# CONFIG_DISCONTIGMEM_MANUAL is not set
183# CONFIG_SPARSEMEM_MANUAL is not set
184CONFIG_FLATMEM=y
185CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
187CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4
189CONFIG_MIGRATION=y
190CONFIG_PHYS_ADDR_T_64BIT=y
191CONFIG_ZONE_DMA_FLAG=1
192CONFIG_BOUNCE=y
193CONFIG_NR_QUICK=1
194CONFIG_VIRT_TO_BUS=y
195CONFIG_UNEVICTABLE_LRU=y
196CONFIG_ARCH_SELECT_MEMORY_MODEL=y
197CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
198CONFIG_ARCH_FLATMEM_ENABLE=y
199CONFIG_ARCH_SPARSEMEM_ENABLE=y
200CONFIG_ARCH_POPULATES_NODE_MAP=y
201CONFIG_VIRTUAL_MEM_MAP=y
202CONFIG_HOLES_IN_ZONE=y
203# CONFIG_IA32_SUPPORT is not set
204# CONFIG_COMPAT_FOR_U64_ALIGNMENT is not set
205CONFIG_IA64_MCA_RECOVERY=y
206CONFIG_PERFMON=y
207CONFIG_IA64_PALINFO=y
208# CONFIG_IA64_MC_ERR_INJECT is not set
209# CONFIG_IA64_ESI is not set
210# CONFIG_IA64_HP_AML_NFW is not set
211CONFIG_KEXEC=y
212# CONFIG_CRASH_DUMP is not set
213
214#
215# Firmware Drivers
216#
217# CONFIG_FIRMWARE_MEMMAP is not set
218CONFIG_EFI_VARS=y
219CONFIG_EFI_PCDP=y
220CONFIG_DMIID=y
221CONFIG_BINFMT_ELF=y
222# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
223# CONFIG_HAVE_AOUT is not set
224CONFIG_BINFMT_MISC=m
225
226#
227# Power management and ACPI options
228#
229CONFIG_PM=y
230# CONFIG_PM_DEBUG is not set
231CONFIG_PM_SLEEP=y
232CONFIG_SUSPEND=y
233CONFIG_SUSPEND_FREEZER=y
234CONFIG_ACPI=y
235CONFIG_ACPI_SLEEP=y
236CONFIG_ACPI_PROCFS=y
237CONFIG_ACPI_PROCFS_POWER=y
238CONFIG_ACPI_SYSFS_POWER=y
239CONFIG_ACPI_PROC_EVENT=y
240CONFIG_ACPI_BUTTON=m
241CONFIG_ACPI_FAN=m
242# CONFIG_ACPI_DOCK is not set
243CONFIG_ACPI_PROCESSOR=m
244CONFIG_ACPI_HOTPLUG_CPU=y
245CONFIG_ACPI_THERMAL=m
246# CONFIG_ACPI_CUSTOM_DSDT is not set
247CONFIG_ACPI_BLACKLIST_YEAR=0
248# CONFIG_ACPI_DEBUG is not set
249# CONFIG_ACPI_PCI_SLOT is not set
250CONFIG_ACPI_SYSTEM=y
251CONFIG_ACPI_CONTAINER=m
252
253#
254# CPU Frequency scaling
255#
256# CONFIG_CPU_FREQ is not set
257
258#
259# Bus options (PCI, PCMCIA)
260#
261CONFIG_PCI=y
262CONFIG_PCI_DOMAINS=y
263CONFIG_PCI_SYSCALL=y
264# CONFIG_PCIEPORTBUS is not set
265CONFIG_ARCH_SUPPORTS_MSI=y
266# CONFIG_PCI_MSI is not set
267CONFIG_PCI_LEGACY=y
268# CONFIG_PCI_DEBUG is not set
269# CONFIG_PCI_STUB is not set
270CONFIG_HOTPLUG_PCI=m
271# CONFIG_HOTPLUG_PCI_FAKE is not set
272CONFIG_HOTPLUG_PCI_ACPI=m
273# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
274# CONFIG_HOTPLUG_PCI_CPCI is not set
275# CONFIG_HOTPLUG_PCI_SHPC is not set
276# CONFIG_PCCARD is not set
277CONFIG_NET=y
278
279#
280# Networking options
281#
282# CONFIG_NET_NS is not set
283CONFIG_COMPAT_NET_DEV_OPS=y
284CONFIG_PACKET=y
285# CONFIG_PACKET_MMAP is not set
286CONFIG_UNIX=y
287CONFIG_XFRM=y
288# CONFIG_XFRM_USER is not set
289# CONFIG_XFRM_SUB_POLICY is not set
290# CONFIG_XFRM_MIGRATE is not set
291# CONFIG_XFRM_STATISTICS is not set
292# CONFIG_NET_KEY is not set
293CONFIG_INET=y
294CONFIG_IP_MULTICAST=y
295# CONFIG_IP_ADVANCED_ROUTER is not set
296CONFIG_IP_FIB_HASH=y
297# CONFIG_IP_PNP is not set
298# CONFIG_NET_IPIP is not set
299# CONFIG_NET_IPGRE is not set
300# CONFIG_IP_MROUTE is not set
301CONFIG_ARPD=y
302CONFIG_SYN_COOKIES=y
303# CONFIG_INET_AH is not set
304# CONFIG_INET_ESP is not set
305# CONFIG_INET_IPCOMP is not set
306# CONFIG_INET_XFRM_TUNNEL is not set
307# CONFIG_INET_TUNNEL is not set
308CONFIG_INET_XFRM_MODE_TRANSPORT=y
309CONFIG_INET_XFRM_MODE_TUNNEL=y
310CONFIG_INET_XFRM_MODE_BEET=y
311# CONFIG_INET_LRO is not set
312CONFIG_INET_DIAG=y
313CONFIG_INET_TCP_DIAG=y
314# CONFIG_TCP_CONG_ADVANCED is not set
315CONFIG_TCP_CONG_CUBIC=y
316CONFIG_DEFAULT_TCP_CONG="cubic"
317# CONFIG_TCP_MD5SIG is not set
318# CONFIG_IPV6 is not set
319# CONFIG_NETWORK_SECMARK is not set
320# CONFIG_NETFILTER is not set
321# CONFIG_IP_DCCP is not set
322# CONFIG_IP_SCTP is not set
323# CONFIG_TIPC is not set
324# CONFIG_ATM is not set
325# CONFIG_BRIDGE is not set
326# CONFIG_NET_DSA is not set
327# CONFIG_VLAN_8021Q is not set
328# CONFIG_DECNET is not set
329# CONFIG_LLC2 is not set
330# CONFIG_IPX is not set
331# CONFIG_ATALK is not set
332# CONFIG_X25 is not set
333# CONFIG_LAPB is not set
334# CONFIG_ECONET is not set
335# CONFIG_WAN_ROUTER is not set
336# CONFIG_NET_SCHED is not set
337# CONFIG_DCB is not set
338
339#
340# Network testing
341#
342# CONFIG_NET_PKTGEN is not set
343# CONFIG_HAMRADIO is not set
344# CONFIG_CAN is not set
345# CONFIG_IRDA is not set
346# CONFIG_BT is not set
347# CONFIG_AF_RXRPC is not set
348# CONFIG_PHONET is not set
349# CONFIG_WIRELESS is not set
350# CONFIG_WIMAX is not set
351# CONFIG_RFKILL is not set
352# CONFIG_NET_9P is not set
353
354#
355# Device Drivers
356#
357
358#
359# Generic Driver Options
360#
361CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
362CONFIG_STANDALONE=y
363CONFIG_PREVENT_FIRMWARE_BUILD=y
364CONFIG_FW_LOADER=y
365CONFIG_FIRMWARE_IN_KERNEL=y
366CONFIG_EXTRA_FIRMWARE=""
367# CONFIG_DEBUG_DRIVER is not set
368# CONFIG_DEBUG_DEVRES is not set
369# CONFIG_SYS_HYPERVISOR is not set
370# CONFIG_CONNECTOR is not set
371# CONFIG_MTD is not set
372# CONFIG_PARPORT is not set
373CONFIG_PNP=y
374CONFIG_PNP_DEBUG_MESSAGES=y
375
376#
377# Protocols
378#
379CONFIG_PNPACPI=y
380CONFIG_BLK_DEV=y
381# CONFIG_BLK_CPQ_DA is not set
382# CONFIG_BLK_CPQ_CISS_DA is not set
383# CONFIG_BLK_DEV_DAC960 is not set
384# CONFIG_BLK_DEV_UMEM is not set
385# CONFIG_BLK_DEV_COW_COMMON is not set
386CONFIG_BLK_DEV_LOOP=m
387CONFIG_BLK_DEV_CRYPTOLOOP=m
388CONFIG_BLK_DEV_NBD=m
389# CONFIG_BLK_DEV_SX8 is not set
390# CONFIG_BLK_DEV_UB is not set
391CONFIG_BLK_DEV_RAM=y
392CONFIG_BLK_DEV_RAM_COUNT=16
393CONFIG_BLK_DEV_RAM_SIZE=4096
394# CONFIG_BLK_DEV_XIP is not set
395# CONFIG_CDROM_PKTCDVD is not set
396# CONFIG_ATA_OVER_ETH is not set
397CONFIG_XEN_BLKDEV_FRONTEND=y
398# CONFIG_BLK_DEV_HD is not set
399CONFIG_MISC_DEVICES=y
400# CONFIG_PHANTOM is not set
401# CONFIG_EEPROM_93CX6 is not set
402# CONFIG_SGI_IOC4 is not set
403# CONFIG_TIFM_CORE is not set
404# CONFIG_ICS932S401 is not set
405# CONFIG_ENCLOSURE_SERVICES is not set
406# CONFIG_HP_ILO is not set
407# CONFIG_C2PORT is not set
408CONFIG_HAVE_IDE=y
409CONFIG_IDE=y
410
411#
412# Please see Documentation/ide/ide.txt for help/info on IDE drives
413#
414CONFIG_IDE_TIMINGS=y
415CONFIG_IDE_ATAPI=y
416# CONFIG_BLK_DEV_IDE_SATA is not set
417CONFIG_IDE_GD=y
418CONFIG_IDE_GD_ATA=y
419# CONFIG_IDE_GD_ATAPI is not set
420CONFIG_BLK_DEV_IDECD=y
421CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
422# CONFIG_BLK_DEV_IDETAPE is not set
423# CONFIG_BLK_DEV_IDEACPI is not set
424# CONFIG_IDE_TASK_IOCTL is not set
425CONFIG_IDE_PROC_FS=y
426
427#
428# IDE chipset support/bugfixes
429#
430# CONFIG_IDE_GENERIC is not set
431# CONFIG_BLK_DEV_PLATFORM is not set
432# CONFIG_BLK_DEV_IDEPNP is not set
433CONFIG_BLK_DEV_IDEDMA_SFF=y
434
435#
436# PCI IDE chipsets support
437#
438CONFIG_BLK_DEV_IDEPCI=y
439CONFIG_IDEPCI_PCIBUS_ORDER=y
440# CONFIG_BLK_DEV_OFFBOARD is not set
441CONFIG_BLK_DEV_GENERIC=y
442# CONFIG_BLK_DEV_OPTI621 is not set
443CONFIG_BLK_DEV_IDEDMA_PCI=y
444# CONFIG_BLK_DEV_AEC62XX is not set
445# CONFIG_BLK_DEV_ALI15X3 is not set
446# CONFIG_BLK_DEV_AMD74XX is not set
447CONFIG_BLK_DEV_CMD64X=y
448# CONFIG_BLK_DEV_TRIFLEX is not set
449# CONFIG_BLK_DEV_CS5520 is not set
450# CONFIG_BLK_DEV_CS5530 is not set
451# CONFIG_BLK_DEV_HPT366 is not set
452# CONFIG_BLK_DEV_JMICRON is not set
453# CONFIG_BLK_DEV_SC1200 is not set
454CONFIG_BLK_DEV_PIIX=y
455# CONFIG_BLK_DEV_IT8172 is not set
456# CONFIG_BLK_DEV_IT8213 is not set
457# CONFIG_BLK_DEV_IT821X is not set
458# CONFIG_BLK_DEV_NS87415 is not set
459# CONFIG_BLK_DEV_PDC202XX_OLD is not set
460# CONFIG_BLK_DEV_PDC202XX_NEW is not set
461# CONFIG_BLK_DEV_SVWKS is not set
462# CONFIG_BLK_DEV_SIIMAGE is not set
463# CONFIG_BLK_DEV_SLC90E66 is not set
464# CONFIG_BLK_DEV_TRM290 is not set
465# CONFIG_BLK_DEV_VIA82CXXX is not set
466# CONFIG_BLK_DEV_TC86C001 is not set
467CONFIG_BLK_DEV_IDEDMA=y
468
469#
470# SCSI device support
471#
472# CONFIG_RAID_ATTRS is not set
473CONFIG_SCSI=y
474CONFIG_SCSI_DMA=y
475# CONFIG_SCSI_TGT is not set
476CONFIG_SCSI_NETLINK=y
477CONFIG_SCSI_PROC_FS=y
478
479#
480# SCSI support type (disk, tape, CD-ROM)
481#
482CONFIG_BLK_DEV_SD=y
483CONFIG_CHR_DEV_ST=m
484# CONFIG_CHR_DEV_OSST is not set
485CONFIG_BLK_DEV_SR=m
486# CONFIG_BLK_DEV_SR_VENDOR is not set
487CONFIG_CHR_DEV_SG=m
488# CONFIG_CHR_DEV_SCH is not set
489
490#
491# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
492#
493# CONFIG_SCSI_MULTI_LUN is not set
494# CONFIG_SCSI_CONSTANTS is not set
495# CONFIG_SCSI_LOGGING is not set
496# CONFIG_SCSI_SCAN_ASYNC is not set
497CONFIG_SCSI_WAIT_SCAN=m
498
499#
500# SCSI Transports
501#
502CONFIG_SCSI_SPI_ATTRS=y
503CONFIG_SCSI_FC_ATTRS=y
504# CONFIG_SCSI_ISCSI_ATTRS is not set
505# CONFIG_SCSI_SAS_LIBSAS is not set
506# CONFIG_SCSI_SRP_ATTRS is not set
507CONFIG_SCSI_LOWLEVEL=y
508# CONFIG_ISCSI_TCP is not set
509# CONFIG_SCSI_CXGB3_ISCSI is not set
510# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
511# CONFIG_SCSI_3W_9XXX is not set
512# CONFIG_SCSI_ACARD is not set
513# CONFIG_SCSI_AACRAID is not set
514# CONFIG_SCSI_AIC7XXX is not set
515# CONFIG_SCSI_AIC7XXX_OLD is not set
516# CONFIG_SCSI_AIC79XX is not set
517# CONFIG_SCSI_AIC94XX is not set
518# CONFIG_SCSI_DPT_I2O is not set
519# CONFIG_SCSI_ADVANSYS is not set
520# CONFIG_SCSI_ARCMSR is not set
521# CONFIG_MEGARAID_NEWGEN is not set
522# CONFIG_MEGARAID_LEGACY is not set
523# CONFIG_MEGARAID_SAS is not set
524# CONFIG_SCSI_HPTIOP is not set
525# CONFIG_LIBFC is not set
526# CONFIG_FCOE is not set
527# CONFIG_SCSI_DMX3191D is not set
528# CONFIG_SCSI_FUTURE_DOMAIN is not set
529# CONFIG_SCSI_IPS is not set
530# CONFIG_SCSI_INITIO is not set
531# CONFIG_SCSI_INIA100 is not set
532# CONFIG_SCSI_MVSAS is not set
533# CONFIG_SCSI_STEX is not set
534CONFIG_SCSI_SYM53C8XX_2=y
535CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
536CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
537CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
538CONFIG_SCSI_SYM53C8XX_MMIO=y
539CONFIG_SCSI_QLOGIC_1280=y
540# CONFIG_SCSI_QLA_FC is not set
541# CONFIG_SCSI_QLA_ISCSI is not set
542# CONFIG_SCSI_LPFC is not set
543# CONFIG_SCSI_DC395x is not set
544# CONFIG_SCSI_DC390T is not set
545# CONFIG_SCSI_DEBUG is not set
546# CONFIG_SCSI_SRP is not set
547# CONFIG_SCSI_DH is not set
548# CONFIG_ATA is not set
549CONFIG_MD=y
550CONFIG_BLK_DEV_MD=m
551CONFIG_MD_LINEAR=m
552CONFIG_MD_RAID0=m
553CONFIG_MD_RAID1=m
554# CONFIG_MD_RAID10 is not set
555# CONFIG_MD_RAID456 is not set
556CONFIG_MD_MULTIPATH=m
557# CONFIG_MD_FAULTY is not set
558CONFIG_BLK_DEV_DM=m
559# CONFIG_DM_DEBUG is not set
560CONFIG_DM_CRYPT=m
561CONFIG_DM_SNAPSHOT=m
562CONFIG_DM_MIRROR=m
563CONFIG_DM_ZERO=m
564# CONFIG_DM_MULTIPATH is not set
565# CONFIG_DM_DELAY is not set
566# CONFIG_DM_UEVENT is not set
567CONFIG_FUSION=y
568CONFIG_FUSION_SPI=y
569CONFIG_FUSION_FC=y
570# CONFIG_FUSION_SAS is not set
571CONFIG_FUSION_MAX_SGE=128
572CONFIG_FUSION_CTL=y
573# CONFIG_FUSION_LOGGING is not set
574
575#
576# IEEE 1394 (FireWire) support
577#
578
579#
580# Enable only one of the two stacks, unless you know what you are doing
581#
582# CONFIG_FIREWIRE is not set
583# CONFIG_IEEE1394 is not set
584# CONFIG_I2O is not set
585CONFIG_NETDEVICES=y
586CONFIG_DUMMY=m
587# CONFIG_BONDING is not set
588# CONFIG_MACVLAN is not set
589# CONFIG_EQUALIZER is not set
590# CONFIG_TUN is not set
591# CONFIG_VETH is not set
592# CONFIG_NET_SB1000 is not set
593# CONFIG_ARCNET is not set
594CONFIG_PHYLIB=y
595
596#
597# MII PHY device drivers
598#
599# CONFIG_MARVELL_PHY is not set
600# CONFIG_DAVICOM_PHY is not set
601# CONFIG_QSEMI_PHY is not set
602# CONFIG_LXT_PHY is not set
603# CONFIG_CICADA_PHY is not set
604# CONFIG_VITESSE_PHY is not set
605# CONFIG_SMSC_PHY is not set
606# CONFIG_BROADCOM_PHY is not set
607# CONFIG_ICPLUS_PHY is not set
608# CONFIG_REALTEK_PHY is not set
609# CONFIG_NATIONAL_PHY is not set
610# CONFIG_STE10XP is not set
611# CONFIG_LSI_ET1011C_PHY is not set
612# CONFIG_FIXED_PHY is not set
613# CONFIG_MDIO_BITBANG is not set
614CONFIG_NET_ETHERNET=y
615CONFIG_MII=m
616# CONFIG_HAPPYMEAL is not set
617# CONFIG_SUNGEM is not set
618# CONFIG_CASSINI is not set
619# CONFIG_NET_VENDOR_3COM is not set
620CONFIG_NET_TULIP=y
621# CONFIG_DE2104X is not set
622CONFIG_TULIP=m
623# CONFIG_TULIP_MWI is not set
624# CONFIG_TULIP_MMIO is not set
625# CONFIG_TULIP_NAPI is not set
626# CONFIG_DE4X5 is not set
627# CONFIG_WINBOND_840 is not set
628# CONFIG_DM9102 is not set
629# CONFIG_ULI526X is not set
630# CONFIG_HP100 is not set
631# CONFIG_IBM_NEW_EMAC_ZMII is not set
632# CONFIG_IBM_NEW_EMAC_RGMII is not set
633# CONFIG_IBM_NEW_EMAC_TAH is not set
634# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
635# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
636# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
637# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
638CONFIG_NET_PCI=y
639# CONFIG_PCNET32 is not set
640# CONFIG_AMD8111_ETH is not set
641# CONFIG_ADAPTEC_STARFIRE is not set
642# CONFIG_B44 is not set
643# CONFIG_FORCEDETH is not set
644CONFIG_E100=m
645# CONFIG_FEALNX is not set
646# CONFIG_NATSEMI is not set
647# CONFIG_NE2K_PCI is not set
648# CONFIG_8139CP is not set
649# CONFIG_8139TOO is not set
650# CONFIG_R6040 is not set
651# CONFIG_SIS900 is not set
652# CONFIG_EPIC100 is not set
653# CONFIG_SMSC9420 is not set
654# CONFIG_SUNDANCE is not set
655# CONFIG_TLAN is not set
656# CONFIG_VIA_RHINE is not set
657# CONFIG_SC92031 is not set
658# CONFIG_ATL2 is not set
659CONFIG_NETDEV_1000=y
660# CONFIG_ACENIC is not set
661# CONFIG_DL2K is not set
662CONFIG_E1000=y
663# CONFIG_E1000E is not set
664# CONFIG_IP1000 is not set
665# CONFIG_IGB is not set
666# CONFIG_NS83820 is not set
667# CONFIG_HAMACHI is not set
668# CONFIG_YELLOWFIN is not set
669# CONFIG_R8169 is not set
670# CONFIG_SIS190 is not set
671# CONFIG_SKGE is not set
672# CONFIG_SKY2 is not set
673# CONFIG_VIA_VELOCITY is not set
674CONFIG_TIGON3=y
675# CONFIG_BNX2 is not set
676# CONFIG_QLA3XXX is not set
677# CONFIG_ATL1 is not set
678# CONFIG_ATL1E is not set
679# CONFIG_JME is not set
680CONFIG_NETDEV_10000=y
681# CONFIG_CHELSIO_T1 is not set
682CONFIG_CHELSIO_T3_DEPENDS=y
683# CONFIG_CHELSIO_T3 is not set
684# CONFIG_ENIC is not set
685# CONFIG_IXGBE is not set
686# CONFIG_IXGB is not set
687# CONFIG_S2IO is not set
688# CONFIG_MYRI10GE is not set
689# CONFIG_NETXEN_NIC is not set
690# CONFIG_NIU is not set
691# CONFIG_MLX4_EN is not set
692# CONFIG_MLX4_CORE is not set
693# CONFIG_TEHUTI is not set
694# CONFIG_BNX2X is not set
695# CONFIG_QLGE is not set
696# CONFIG_SFC is not set
697# CONFIG_TR is not set
698
699#
700# Wireless LAN
701#
702# CONFIG_WLAN_PRE80211 is not set
703# CONFIG_WLAN_80211 is not set
704# CONFIG_IWLWIFI_LEDS is not set
705
706#
707# Enable WiMAX (Networking options) to see the WiMAX drivers
708#
709
710#
711# USB Network Adapters
712#
713# CONFIG_USB_CATC is not set
714# CONFIG_USB_KAWETH is not set
715# CONFIG_USB_PEGASUS is not set
716# CONFIG_USB_RTL8150 is not set
717# CONFIG_USB_USBNET is not set
718# CONFIG_WAN is not set
719CONFIG_XEN_NETDEV_FRONTEND=y
720# CONFIG_FDDI is not set
721# CONFIG_HIPPI is not set
722# CONFIG_PPP is not set
723# CONFIG_SLIP is not set
724# CONFIG_NET_FC is not set
725CONFIG_NETCONSOLE=y
726# CONFIG_NETCONSOLE_DYNAMIC is not set
727CONFIG_NETPOLL=y
728# CONFIG_NETPOLL_TRAP is not set
729CONFIG_NET_POLL_CONTROLLER=y
730# CONFIG_ISDN is not set
731# CONFIG_PHONE is not set
732
733#
734# Input device support
735#
736CONFIG_INPUT=y
737# CONFIG_INPUT_FF_MEMLESS is not set
738# CONFIG_INPUT_POLLDEV is not set
739
740#
741# Userland interfaces
742#
743CONFIG_INPUT_MOUSEDEV=y
744CONFIG_INPUT_MOUSEDEV_PSAUX=y
745CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
746CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
747# CONFIG_INPUT_JOYDEV is not set
748# CONFIG_INPUT_EVDEV is not set
749# CONFIG_INPUT_EVBUG is not set
750
751#
752# Input Device Drivers
753#
754CONFIG_INPUT_KEYBOARD=y
755CONFIG_KEYBOARD_ATKBD=y
756# CONFIG_KEYBOARD_SUNKBD is not set
757# CONFIG_KEYBOARD_LKKBD is not set
758# CONFIG_KEYBOARD_XTKBD is not set
759# CONFIG_KEYBOARD_NEWTON is not set
760# CONFIG_KEYBOARD_STOWAWAY is not set
761CONFIG_INPUT_MOUSE=y
762CONFIG_MOUSE_PS2=y
763CONFIG_MOUSE_PS2_ALPS=y
764CONFIG_MOUSE_PS2_LOGIPS2PP=y
765CONFIG_MOUSE_PS2_SYNAPTICS=y
766CONFIG_MOUSE_PS2_LIFEBOOK=y
767CONFIG_MOUSE_PS2_TRACKPOINT=y
768# CONFIG_MOUSE_PS2_ELANTECH is not set
769# CONFIG_MOUSE_PS2_TOUCHKIT is not set
770# CONFIG_MOUSE_SERIAL is not set
771# CONFIG_MOUSE_APPLETOUCH is not set
772# CONFIG_MOUSE_BCM5974 is not set
773# CONFIG_MOUSE_VSXXXAA is not set
774# CONFIG_INPUT_JOYSTICK is not set
775# CONFIG_INPUT_TABLET is not set
776# CONFIG_INPUT_TOUCHSCREEN is not set
777# CONFIG_INPUT_MISC is not set
778
779#
780# Hardware I/O ports
781#
782CONFIG_SERIO=y
783CONFIG_SERIO_I8042=y
784# CONFIG_SERIO_SERPORT is not set
785# CONFIG_SERIO_PCIPS2 is not set
786CONFIG_SERIO_LIBPS2=y
787# CONFIG_SERIO_RAW is not set
788CONFIG_GAMEPORT=m
789# CONFIG_GAMEPORT_NS558 is not set
790# CONFIG_GAMEPORT_L4 is not set
791# CONFIG_GAMEPORT_EMU10K1 is not set
792# CONFIG_GAMEPORT_FM801 is not set
793
794#
795# Character devices
796#
797CONFIG_VT=y
798CONFIG_CONSOLE_TRANSLATIONS=y
799CONFIG_VT_CONSOLE=y
800CONFIG_HW_CONSOLE=y
801# CONFIG_VT_HW_CONSOLE_BINDING is not set
802CONFIG_DEVKMEM=y
803CONFIG_SERIAL_NONSTANDARD=y
804# CONFIG_COMPUTONE is not set
805# CONFIG_ROCKETPORT is not set
806# CONFIG_CYCLADES is not set
807# CONFIG_DIGIEPCA is not set
808# CONFIG_MOXA_INTELLIO is not set
809# CONFIG_MOXA_SMARTIO is not set
810# CONFIG_ISI is not set
811# CONFIG_SYNCLINKMP is not set
812# CONFIG_SYNCLINK_GT is not set
813# CONFIG_N_HDLC is not set
814# CONFIG_RISCOM8 is not set
815# CONFIG_SPECIALIX is not set
816# CONFIG_SX is not set
817# CONFIG_RIO is not set
818# CONFIG_STALDRV is not set
819# CONFIG_NOZOMI is not set
820
821#
822# Serial drivers
823#
824CONFIG_SERIAL_8250=y
825CONFIG_SERIAL_8250_CONSOLE=y
826CONFIG_SERIAL_8250_PCI=y
827CONFIG_SERIAL_8250_PNP=y
828CONFIG_SERIAL_8250_NR_UARTS=6
829CONFIG_SERIAL_8250_RUNTIME_UARTS=4
830CONFIG_SERIAL_8250_EXTENDED=y
831CONFIG_SERIAL_8250_SHARE_IRQ=y
832# CONFIG_SERIAL_8250_DETECT_IRQ is not set
833# CONFIG_SERIAL_8250_RSA is not set
834
835#
836# Non-8250 serial port support
837#
838CONFIG_SERIAL_CORE=y
839CONFIG_SERIAL_CORE_CONSOLE=y
840# CONFIG_SERIAL_JSM is not set
841CONFIG_UNIX98_PTYS=y
842# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
843CONFIG_LEGACY_PTYS=y
844CONFIG_LEGACY_PTY_COUNT=256
845CONFIG_HVC_DRIVER=y
846CONFIG_HVC_IRQ=y
847CONFIG_HVC_XEN=y
848# CONFIG_IPMI_HANDLER is not set
849# CONFIG_HW_RANDOM is not set
850CONFIG_EFI_RTC=y
851# CONFIG_R3964 is not set
852# CONFIG_APPLICOM is not set
853CONFIG_RAW_DRIVER=m
854CONFIG_MAX_RAW_DEVS=256
855CONFIG_HPET=y
856CONFIG_HPET_MMAP=y
857# CONFIG_HANGCHECK_TIMER is not set
858# CONFIG_TCG_TPM is not set
859CONFIG_DEVPORT=y
860CONFIG_I2C=m
861CONFIG_I2C_BOARDINFO=y
862# CONFIG_I2C_CHARDEV is not set
863CONFIG_I2C_HELPER_AUTO=y
864CONFIG_I2C_ALGOBIT=m
865
866#
867# I2C Hardware Bus support
868#
869
870#
871# PC SMBus host controller drivers
872#
873# CONFIG_I2C_ALI1535 is not set
874# CONFIG_I2C_ALI1563 is not set
875# CONFIG_I2C_ALI15X3 is not set
876# CONFIG_I2C_AMD756 is not set
877# CONFIG_I2C_AMD8111 is not set
878# CONFIG_I2C_I801 is not set
879# CONFIG_I2C_ISCH is not set
880# CONFIG_I2C_PIIX4 is not set
881# CONFIG_I2C_NFORCE2 is not set
882# CONFIG_I2C_SIS5595 is not set
883# CONFIG_I2C_SIS630 is not set
884# CONFIG_I2C_SIS96X is not set
885# CONFIG_I2C_VIA is not set
886# CONFIG_I2C_VIAPRO is not set
887
888#
889# I2C system bus drivers (mostly embedded / system-on-chip)
890#
891# CONFIG_I2C_OCORES is not set
892# CONFIG_I2C_SIMTEC is not set
893
894#
895# External I2C/SMBus adapter drivers
896#
897# CONFIG_I2C_PARPORT_LIGHT is not set
898# CONFIG_I2C_TAOS_EVM is not set
899# CONFIG_I2C_TINY_USB is not set
900
901#
902# Graphics adapter I2C/DDC channel drivers
903#
904# CONFIG_I2C_VOODOO3 is not set
905
906#
907# Other I2C/SMBus bus drivers
908#
909# CONFIG_I2C_PCA_PLATFORM is not set
910# CONFIG_I2C_STUB is not set
911
912#
913# Miscellaneous I2C Chip support
914#
915# CONFIG_DS1682 is not set
916# CONFIG_AT24 is not set
917# CONFIG_SENSORS_EEPROM is not set
918# CONFIG_SENSORS_PCF8574 is not set
919# CONFIG_PCF8575 is not set
920# CONFIG_SENSORS_PCA9539 is not set
921# CONFIG_SENSORS_PCF8591 is not set
922# CONFIG_SENSORS_MAX6875 is not set
923# CONFIG_SENSORS_TSL2550 is not set
924# CONFIG_I2C_DEBUG_CORE is not set
925# CONFIG_I2C_DEBUG_ALGO is not set
926# CONFIG_I2C_DEBUG_BUS is not set
927# CONFIG_I2C_DEBUG_CHIP is not set
928# CONFIG_SPI is not set
929# CONFIG_W1 is not set
930CONFIG_POWER_SUPPLY=y
931# CONFIG_POWER_SUPPLY_DEBUG is not set
932# CONFIG_PDA_POWER is not set
933# CONFIG_BATTERY_DS2760 is not set
934# CONFIG_BATTERY_BQ27x00 is not set
935CONFIG_HWMON=y
936# CONFIG_HWMON_VID is not set
937# CONFIG_SENSORS_AD7414 is not set
938# CONFIG_SENSORS_AD7418 is not set
939# CONFIG_SENSORS_ADM1021 is not set
940# CONFIG_SENSORS_ADM1025 is not set
941# CONFIG_SENSORS_ADM1026 is not set
942# CONFIG_SENSORS_ADM1029 is not set
943# CONFIG_SENSORS_ADM1031 is not set
944# CONFIG_SENSORS_ADM9240 is not set
945# CONFIG_SENSORS_ADT7462 is not set
946# CONFIG_SENSORS_ADT7470 is not set
947# CONFIG_SENSORS_ADT7473 is not set
948# CONFIG_SENSORS_ATXP1 is not set
949# CONFIG_SENSORS_DS1621 is not set
950# CONFIG_SENSORS_I5K_AMB is not set
951# CONFIG_SENSORS_F71805F is not set
952# CONFIG_SENSORS_F71882FG is not set
953# CONFIG_SENSORS_F75375S is not set
954# CONFIG_SENSORS_GL518SM is not set
955# CONFIG_SENSORS_GL520SM is not set
956# CONFIG_SENSORS_IT87 is not set
957# CONFIG_SENSORS_LM63 is not set
958# CONFIG_SENSORS_LM75 is not set
959# CONFIG_SENSORS_LM77 is not set
960# CONFIG_SENSORS_LM78 is not set
961# CONFIG_SENSORS_LM80 is not set
962# CONFIG_SENSORS_LM83 is not set
963# CONFIG_SENSORS_LM85 is not set
964# CONFIG_SENSORS_LM87 is not set
965# CONFIG_SENSORS_LM90 is not set
966# CONFIG_SENSORS_LM92 is not set
967# CONFIG_SENSORS_LM93 is not set
968# CONFIG_SENSORS_LTC4245 is not set
969# CONFIG_SENSORS_MAX1619 is not set
970# CONFIG_SENSORS_MAX6650 is not set
971# CONFIG_SENSORS_PC87360 is not set
972# CONFIG_SENSORS_PC87427 is not set
973# CONFIG_SENSORS_SIS5595 is not set
974# CONFIG_SENSORS_DME1737 is not set
975# CONFIG_SENSORS_SMSC47M1 is not set
976# CONFIG_SENSORS_SMSC47M192 is not set
977# CONFIG_SENSORS_SMSC47B397 is not set
978# CONFIG_SENSORS_ADS7828 is not set
979# CONFIG_SENSORS_THMC50 is not set
980# CONFIG_SENSORS_VIA686A is not set
981# CONFIG_SENSORS_VT1211 is not set
982# CONFIG_SENSORS_VT8231 is not set
983# CONFIG_SENSORS_W83781D is not set
984# CONFIG_SENSORS_W83791D is not set
985# CONFIG_SENSORS_W83792D is not set
986# CONFIG_SENSORS_W83793 is not set
987# CONFIG_SENSORS_W83L785TS is not set
988# CONFIG_SENSORS_W83L786NG is not set
989# CONFIG_SENSORS_W83627HF is not set
990# CONFIG_SENSORS_W83627EHF is not set
991# CONFIG_SENSORS_LIS3LV02D is not set
992# CONFIG_HWMON_DEBUG_CHIP is not set
993CONFIG_THERMAL=m
994# CONFIG_THERMAL_HWMON is not set
995# CONFIG_WATCHDOG is not set
996CONFIG_SSB_POSSIBLE=y
997
998#
999# Sonics Silicon Backplane
1000#
1001# CONFIG_SSB is not set
1002
1003#
1004# Multifunction device drivers
1005#
1006# CONFIG_MFD_CORE is not set
1007# CONFIG_MFD_SM501 is not set
1008# CONFIG_HTC_PASIC3 is not set
1009# CONFIG_MFD_TMIO is not set
1010# CONFIG_MFD_WM8400 is not set
1011# CONFIG_MFD_WM8350_I2C is not set
1012# CONFIG_MFD_PCF50633 is not set
1013# CONFIG_REGULATOR is not set
1014
1015#
1016# Multimedia devices
1017#
1018
1019#
1020# Multimedia core support
1021#
1022# CONFIG_VIDEO_DEV is not set
1023# CONFIG_DVB_CORE is not set
1024# CONFIG_VIDEO_MEDIA is not set
1025
1026#
1027# Multimedia drivers
1028#
1029CONFIG_DAB=y
1030# CONFIG_USB_DABUSB is not set
1031
1032#
1033# Graphics support
1034#
1035CONFIG_AGP=m
1036CONFIG_DRM=m
1037CONFIG_DRM_TDFX=m
1038CONFIG_DRM_R128=m
1039CONFIG_DRM_RADEON=m
1040CONFIG_DRM_MGA=m
1041CONFIG_DRM_SIS=m
1042# CONFIG_DRM_VIA is not set
1043# CONFIG_DRM_SAVAGE is not set
1044# CONFIG_VGASTATE is not set
1045# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1046# CONFIG_FB is not set
1047# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1048
1049#
1050# Display device support
1051#
1052# CONFIG_DISPLAY_SUPPORT is not set
1053
1054#
1055# Console display driver support
1056#
1057CONFIG_VGA_CONSOLE=y
1058# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1059CONFIG_DUMMY_CONSOLE=y
1060# CONFIG_SOUND is not set
1061CONFIG_HID_SUPPORT=y
1062CONFIG_HID=y
1063# CONFIG_HID_DEBUG is not set
1064# CONFIG_HIDRAW is not set
1065
1066#
1067# USB Input Devices
1068#
1069CONFIG_USB_HID=y
1070# CONFIG_HID_PID is not set
1071# CONFIG_USB_HIDDEV is not set
1072
1073#
1074# Special HID drivers
1075#
1076CONFIG_HID_COMPAT=y
1077CONFIG_HID_A4TECH=y
1078CONFIG_HID_APPLE=y
1079CONFIG_HID_BELKIN=y
1080CONFIG_HID_CHERRY=y
1081CONFIG_HID_CHICONY=y
1082CONFIG_HID_CYPRESS=y
1083CONFIG_HID_EZKEY=y
1084CONFIG_HID_GYRATION=y
1085CONFIG_HID_LOGITECH=y
1086# CONFIG_LOGITECH_FF is not set
1087# CONFIG_LOGIRUMBLEPAD2_FF is not set
1088CONFIG_HID_MICROSOFT=y
1089CONFIG_HID_MONTEREY=y
1090CONFIG_HID_NTRIG=y
1091CONFIG_HID_PANTHERLORD=y
1092# CONFIG_PANTHERLORD_FF is not set
1093CONFIG_HID_PETALYNX=y
1094CONFIG_HID_SAMSUNG=y
1095CONFIG_HID_SONY=y
1096CONFIG_HID_SUNPLUS=y
1097# CONFIG_GREENASIA_FF is not set
1098CONFIG_HID_TOPSEED=y
1099# CONFIG_THRUSTMASTER_FF is not set
1100# CONFIG_ZEROPLUS_FF is not set
1101CONFIG_USB_SUPPORT=y
1102CONFIG_USB_ARCH_HAS_HCD=y
1103CONFIG_USB_ARCH_HAS_OHCI=y
1104CONFIG_USB_ARCH_HAS_EHCI=y
1105CONFIG_USB=y
1106# CONFIG_USB_DEBUG is not set
1107# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1108
1109#
1110# Miscellaneous USB options
1111#
1112CONFIG_USB_DEVICEFS=y
1113CONFIG_USB_DEVICE_CLASS=y
1114# CONFIG_USB_DYNAMIC_MINORS is not set
1115# CONFIG_USB_SUSPEND is not set
1116# CONFIG_USB_OTG is not set
1117# CONFIG_USB_MON is not set
1118# CONFIG_USB_WUSB is not set
1119# CONFIG_USB_WUSB_CBAF is not set
1120
1121#
1122# USB Host Controller Drivers
1123#
1124# CONFIG_USB_C67X00_HCD is not set
1125CONFIG_USB_EHCI_HCD=m
1126# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1127# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1128# CONFIG_USB_OXU210HP_HCD is not set
1129# CONFIG_USB_ISP116X_HCD is not set
1130# CONFIG_USB_ISP1760_HCD is not set
1131CONFIG_USB_OHCI_HCD=m
1132# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1133# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1134CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1135CONFIG_USB_UHCI_HCD=y
1136# CONFIG_USB_SL811_HCD is not set
1137# CONFIG_USB_R8A66597_HCD is not set
1138# CONFIG_USB_WHCI_HCD is not set
1139# CONFIG_USB_HWA_HCD is not set
1140
1141#
1142# USB Device Class drivers
1143#
1144# CONFIG_USB_ACM is not set
1145# CONFIG_USB_PRINTER is not set
1146# CONFIG_USB_WDM is not set
1147# CONFIG_USB_TMC is not set
1148
1149#
1150# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1151#
1152
1153#
1154# see USB_STORAGE Help for more information
1155#
1156CONFIG_USB_STORAGE=m
1157# CONFIG_USB_STORAGE_DEBUG is not set
1158# CONFIG_USB_STORAGE_DATAFAB is not set
1159# CONFIG_USB_STORAGE_FREECOM is not set
1160# CONFIG_USB_STORAGE_ISD200 is not set
1161# CONFIG_USB_STORAGE_USBAT is not set
1162# CONFIG_USB_STORAGE_SDDR09 is not set
1163# CONFIG_USB_STORAGE_SDDR55 is not set
1164# CONFIG_USB_STORAGE_JUMPSHOT is not set
1165# CONFIG_USB_STORAGE_ALAUDA is not set
1166# CONFIG_USB_STORAGE_ONETOUCH is not set
1167# CONFIG_USB_STORAGE_KARMA is not set
1168# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1169# CONFIG_USB_LIBUSUAL is not set
1170
1171#
1172# USB Imaging devices
1173#
1174# CONFIG_USB_MDC800 is not set
1175# CONFIG_USB_MICROTEK is not set
1176
1177#
1178# USB port drivers
1179#
1180# CONFIG_USB_SERIAL is not set
1181
1182#
1183# USB Miscellaneous drivers
1184#
1185# CONFIG_USB_EMI62 is not set
1186# CONFIG_USB_EMI26 is not set
1187# CONFIG_USB_ADUTUX is not set
1188# CONFIG_USB_SEVSEG is not set
1189# CONFIG_USB_RIO500 is not set
1190# CONFIG_USB_LEGOTOWER is not set
1191# CONFIG_USB_LCD is not set
1192# CONFIG_USB_BERRY_CHARGE is not set
1193# CONFIG_USB_LED is not set
1194# CONFIG_USB_CYPRESS_CY7C63 is not set
1195# CONFIG_USB_CYTHERM is not set
1196# CONFIG_USB_PHIDGET is not set
1197# CONFIG_USB_IDMOUSE is not set
1198# CONFIG_USB_FTDI_ELAN is not set
1199# CONFIG_USB_APPLEDISPLAY is not set
1200# CONFIG_USB_SISUSBVGA is not set
1201# CONFIG_USB_LD is not set
1202# CONFIG_USB_TRANCEVIBRATOR is not set
1203# CONFIG_USB_IOWARRIOR is not set
1204# CONFIG_USB_TEST is not set
1205# CONFIG_USB_ISIGHTFW is not set
1206# CONFIG_USB_VST is not set
1207# CONFIG_USB_GADGET is not set
1208
1209#
1210# OTG and related infrastructure
1211#
1212# CONFIG_UWB is not set
1213# CONFIG_MMC is not set
1214# CONFIG_MEMSTICK is not set
1215# CONFIG_NEW_LEDS is not set
1216# CONFIG_ACCESSIBILITY is not set
1217# CONFIG_INFINIBAND is not set
1218# CONFIG_RTC_CLASS is not set
1219# CONFIG_DMADEVICES is not set
1220# CONFIG_UIO is not set
1221CONFIG_XEN_BALLOON=y
1222CONFIG_XEN_SCRUB_PAGES=y
1223CONFIG_XENFS=y
1224CONFIG_XEN_COMPAT_XENFS=y
1225# CONFIG_STAGING is not set
1226# CONFIG_MSPEC is not set
1227
1228#
1229# File systems
1230#
1231CONFIG_EXT2_FS=y
1232CONFIG_EXT2_FS_XATTR=y
1233CONFIG_EXT2_FS_POSIX_ACL=y
1234CONFIG_EXT2_FS_SECURITY=y
1235# CONFIG_EXT2_FS_XIP is not set
1236CONFIG_EXT3_FS=y
1237CONFIG_EXT3_FS_XATTR=y
1238CONFIG_EXT3_FS_POSIX_ACL=y
1239CONFIG_EXT3_FS_SECURITY=y
1240# CONFIG_EXT4_FS is not set
1241CONFIG_JBD=y
1242CONFIG_FS_MBCACHE=y
1243CONFIG_REISERFS_FS=y
1244# CONFIG_REISERFS_CHECK is not set
1245# CONFIG_REISERFS_PROC_INFO is not set
1246CONFIG_REISERFS_FS_XATTR=y
1247CONFIG_REISERFS_FS_POSIX_ACL=y
1248CONFIG_REISERFS_FS_SECURITY=y
1249# CONFIG_JFS_FS is not set
1250CONFIG_FS_POSIX_ACL=y
1251CONFIG_FILE_LOCKING=y
1252CONFIG_XFS_FS=y
1253# CONFIG_XFS_QUOTA is not set
1254# CONFIG_XFS_POSIX_ACL is not set
1255# CONFIG_XFS_RT is not set
1256# CONFIG_XFS_DEBUG is not set
1257# CONFIG_GFS2_FS is not set
1258# CONFIG_OCFS2_FS is not set
1259# CONFIG_BTRFS_FS is not set
1260CONFIG_DNOTIFY=y
1261CONFIG_INOTIFY=y
1262CONFIG_INOTIFY_USER=y
1263# CONFIG_QUOTA is not set
1264CONFIG_AUTOFS_FS=y
1265CONFIG_AUTOFS4_FS=y
1266# CONFIG_FUSE_FS is not set
1267
1268#
1269# CD-ROM/DVD Filesystems
1270#
1271CONFIG_ISO9660_FS=m
1272CONFIG_JOLIET=y
1273# CONFIG_ZISOFS is not set
1274CONFIG_UDF_FS=m
1275CONFIG_UDF_NLS=y
1276
1277#
1278# DOS/FAT/NT Filesystems
1279#
1280CONFIG_FAT_FS=y
1281# CONFIG_MSDOS_FS is not set
1282CONFIG_VFAT_FS=y
1283CONFIG_FAT_DEFAULT_CODEPAGE=437
1284CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1285CONFIG_NTFS_FS=m
1286# CONFIG_NTFS_DEBUG is not set
1287# CONFIG_NTFS_RW is not set
1288
1289#
1290# Pseudo filesystems
1291#
1292CONFIG_PROC_FS=y
1293CONFIG_PROC_KCORE=y
1294CONFIG_PROC_SYSCTL=y
1295CONFIG_PROC_PAGE_MONITOR=y
1296CONFIG_SYSFS=y
1297CONFIG_TMPFS=y
1298# CONFIG_TMPFS_POSIX_ACL is not set
1299CONFIG_HUGETLBFS=y
1300CONFIG_HUGETLB_PAGE=y
1301# CONFIG_CONFIGFS_FS is not set
1302CONFIG_MISC_FILESYSTEMS=y
1303# CONFIG_ADFS_FS is not set
1304# CONFIG_AFFS_FS is not set
1305# CONFIG_HFS_FS is not set
1306# CONFIG_HFSPLUS_FS is not set
1307# CONFIG_BEFS_FS is not set
1308# CONFIG_BFS_FS is not set
1309# CONFIG_EFS_FS is not set
1310# CONFIG_CRAMFS is not set
1311# CONFIG_SQUASHFS is not set
1312# CONFIG_VXFS_FS is not set
1313# CONFIG_MINIX_FS is not set
1314# CONFIG_OMFS_FS is not set
1315# CONFIG_HPFS_FS is not set
1316# CONFIG_QNX4FS_FS is not set
1317# CONFIG_ROMFS_FS is not set
1318# CONFIG_SYSV_FS is not set
1319# CONFIG_UFS_FS is not set
1320CONFIG_NETWORK_FILESYSTEMS=y
1321CONFIG_NFS_FS=m
1322CONFIG_NFS_V3=y
1323# CONFIG_NFS_V3_ACL is not set
1324CONFIG_NFS_V4=y
1325CONFIG_NFSD=m
1326CONFIG_NFSD_V3=y
1327# CONFIG_NFSD_V3_ACL is not set
1328CONFIG_NFSD_V4=y
1329CONFIG_LOCKD=m
1330CONFIG_LOCKD_V4=y
1331CONFIG_EXPORTFS=m
1332CONFIG_NFS_COMMON=y
1333CONFIG_SUNRPC=m
1334CONFIG_SUNRPC_GSS=m
1335# CONFIG_SUNRPC_REGISTER_V4 is not set
1336CONFIG_RPCSEC_GSS_KRB5=m
1337# CONFIG_RPCSEC_GSS_SPKM3 is not set
1338CONFIG_SMB_FS=m
1339CONFIG_SMB_NLS_DEFAULT=y
1340CONFIG_SMB_NLS_REMOTE="cp437"
1341CONFIG_CIFS=m
1342# CONFIG_CIFS_STATS is not set
1343# CONFIG_CIFS_WEAK_PW_HASH is not set
1344# CONFIG_CIFS_XATTR is not set
1345# CONFIG_CIFS_DEBUG2 is not set
1346# CONFIG_CIFS_EXPERIMENTAL is not set
1347# CONFIG_NCP_FS is not set
1348# CONFIG_CODA_FS is not set
1349# CONFIG_AFS_FS is not set
1350
1351#
1352# Partition Types
1353#
1354CONFIG_PARTITION_ADVANCED=y
1355# CONFIG_ACORN_PARTITION is not set
1356# CONFIG_OSF_PARTITION is not set
1357# CONFIG_AMIGA_PARTITION is not set
1358# CONFIG_ATARI_PARTITION is not set
1359# CONFIG_MAC_PARTITION is not set
1360CONFIG_MSDOS_PARTITION=y
1361# CONFIG_BSD_DISKLABEL is not set
1362# CONFIG_MINIX_SUBPARTITION is not set
1363# CONFIG_SOLARIS_X86_PARTITION is not set
1364# CONFIG_UNIXWARE_DISKLABEL is not set
1365# CONFIG_LDM_PARTITION is not set
1366CONFIG_SGI_PARTITION=y
1367# CONFIG_ULTRIX_PARTITION is not set
1368# CONFIG_SUN_PARTITION is not set
1369# CONFIG_KARMA_PARTITION is not set
1370CONFIG_EFI_PARTITION=y
1371# CONFIG_SYSV68_PARTITION is not set
1372CONFIG_NLS=y
1373CONFIG_NLS_DEFAULT="iso8859-1"
1374CONFIG_NLS_CODEPAGE_437=y
1375CONFIG_NLS_CODEPAGE_737=m
1376CONFIG_NLS_CODEPAGE_775=m
1377CONFIG_NLS_CODEPAGE_850=m
1378CONFIG_NLS_CODEPAGE_852=m
1379CONFIG_NLS_CODEPAGE_855=m
1380CONFIG_NLS_CODEPAGE_857=m
1381CONFIG_NLS_CODEPAGE_860=m
1382CONFIG_NLS_CODEPAGE_861=m
1383CONFIG_NLS_CODEPAGE_862=m
1384CONFIG_NLS_CODEPAGE_863=m
1385CONFIG_NLS_CODEPAGE_864=m
1386CONFIG_NLS_CODEPAGE_865=m
1387CONFIG_NLS_CODEPAGE_866=m
1388CONFIG_NLS_CODEPAGE_869=m
1389CONFIG_NLS_CODEPAGE_936=m
1390CONFIG_NLS_CODEPAGE_950=m
1391CONFIG_NLS_CODEPAGE_932=m
1392CONFIG_NLS_CODEPAGE_949=m
1393CONFIG_NLS_CODEPAGE_874=m
1394CONFIG_NLS_ISO8859_8=m
1395CONFIG_NLS_CODEPAGE_1250=m
1396CONFIG_NLS_CODEPAGE_1251=m
1397# CONFIG_NLS_ASCII is not set
1398CONFIG_NLS_ISO8859_1=y
1399CONFIG_NLS_ISO8859_2=m
1400CONFIG_NLS_ISO8859_3=m
1401CONFIG_NLS_ISO8859_4=m
1402CONFIG_NLS_ISO8859_5=m
1403CONFIG_NLS_ISO8859_6=m
1404CONFIG_NLS_ISO8859_7=m
1405CONFIG_NLS_ISO8859_9=m
1406CONFIG_NLS_ISO8859_13=m
1407CONFIG_NLS_ISO8859_14=m
1408CONFIG_NLS_ISO8859_15=m
1409CONFIG_NLS_KOI8_R=m
1410CONFIG_NLS_KOI8_U=m
1411CONFIG_NLS_UTF8=m
1412# CONFIG_DLM is not set
1413
1414#
1415# Kernel hacking
1416#
1417# CONFIG_PRINTK_TIME is not set
1418CONFIG_ENABLE_WARN_DEPRECATED=y
1419CONFIG_ENABLE_MUST_CHECK=y
1420CONFIG_FRAME_WARN=2048
1421CONFIG_MAGIC_SYSRQ=y
1422# CONFIG_UNUSED_SYMBOLS is not set
1423# CONFIG_DEBUG_FS is not set
1424# CONFIG_HEADERS_CHECK is not set
1425CONFIG_DEBUG_KERNEL=y
1426# CONFIG_DEBUG_SHIRQ is not set
1427CONFIG_DETECT_SOFTLOCKUP=y
1428# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1429CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1430CONFIG_SCHED_DEBUG=y
1431# CONFIG_SCHEDSTATS is not set
1432# CONFIG_TIMER_STATS is not set
1433# CONFIG_DEBUG_OBJECTS is not set
1434# CONFIG_SLUB_DEBUG_ON is not set
1435# CONFIG_SLUB_STATS is not set
1436# CONFIG_DEBUG_RT_MUTEXES is not set
1437# CONFIG_RT_MUTEX_TESTER is not set
1438# CONFIG_DEBUG_SPINLOCK is not set
1439CONFIG_DEBUG_MUTEXES=y
1440# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1441# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1442# CONFIG_DEBUG_KOBJECT is not set
1443# CONFIG_DEBUG_INFO is not set
1444# CONFIG_DEBUG_VM is not set
1445# CONFIG_DEBUG_WRITECOUNT is not set
1446CONFIG_DEBUG_MEMORY_INIT=y
1447# CONFIG_DEBUG_LIST is not set
1448# CONFIG_DEBUG_SG is not set
1449# CONFIG_DEBUG_NOTIFIERS is not set
1450# CONFIG_BOOT_PRINTK_DELAY is not set
1451# CONFIG_RCU_TORTURE_TEST is not set
1452# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1453# CONFIG_BACKTRACE_SELF_TEST is not set
1454# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1455# CONFIG_FAULT_INJECTION is not set
1456# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1457
1458#
1459# Tracers
1460#
1461# CONFIG_SCHED_TRACER is not set
1462# CONFIG_CONTEXT_SWITCH_TRACER is not set
1463# CONFIG_BOOT_TRACER is not set
1464# CONFIG_TRACE_BRANCH_PROFILING is not set
1465# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1466# CONFIG_SAMPLES is not set
1467CONFIG_IA64_GRANULE_16MB=y
1468# CONFIG_IA64_GRANULE_64MB is not set
1469# CONFIG_IA64_PRINT_HAZARDS is not set
1470# CONFIG_DISABLE_VHPT is not set
1471# CONFIG_IA64_DEBUG_CMPXCHG is not set
1472# CONFIG_IA64_DEBUG_IRQ is not set
1473
1474#
1475# Security options
1476#
1477# CONFIG_KEYS is not set
1478# CONFIG_SECURITY is not set
1479# CONFIG_SECURITYFS is not set
1480# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1481CONFIG_CRYPTO=y
1482
1483#
1484# Crypto core or helper
1485#
1486# CONFIG_CRYPTO_FIPS is not set
1487CONFIG_CRYPTO_ALGAPI=y
1488CONFIG_CRYPTO_ALGAPI2=y
1489CONFIG_CRYPTO_AEAD2=y
1490CONFIG_CRYPTO_BLKCIPHER=m
1491CONFIG_CRYPTO_BLKCIPHER2=y
1492CONFIG_CRYPTO_HASH=y
1493CONFIG_CRYPTO_HASH2=y
1494CONFIG_CRYPTO_RNG2=y
1495CONFIG_CRYPTO_MANAGER=m
1496CONFIG_CRYPTO_MANAGER2=y
1497# CONFIG_CRYPTO_GF128MUL is not set
1498# CONFIG_CRYPTO_NULL is not set
1499# CONFIG_CRYPTO_CRYPTD is not set
1500# CONFIG_CRYPTO_AUTHENC is not set
1501# CONFIG_CRYPTO_TEST is not set
1502
1503#
1504# Authenticated Encryption with Associated Data
1505#
1506# CONFIG_CRYPTO_CCM is not set
1507# CONFIG_CRYPTO_GCM is not set
1508# CONFIG_CRYPTO_SEQIV is not set
1509
1510#
1511# Block modes
1512#
1513CONFIG_CRYPTO_CBC=m
1514# CONFIG_CRYPTO_CTR is not set
1515# CONFIG_CRYPTO_CTS is not set
1516CONFIG_CRYPTO_ECB=m
1517# CONFIG_CRYPTO_LRW is not set
1518CONFIG_CRYPTO_PCBC=m
1519# CONFIG_CRYPTO_XTS is not set
1520
1521#
1522# Hash modes
1523#
1524# CONFIG_CRYPTO_HMAC is not set
1525# CONFIG_CRYPTO_XCBC is not set
1526
1527#
1528# Digest
1529#
1530# CONFIG_CRYPTO_CRC32C is not set
1531# CONFIG_CRYPTO_MD4 is not set
1532CONFIG_CRYPTO_MD5=y
1533# CONFIG_CRYPTO_MICHAEL_MIC is not set
1534# CONFIG_CRYPTO_RMD128 is not set
1535# CONFIG_CRYPTO_RMD160 is not set
1536# CONFIG_CRYPTO_RMD256 is not set
1537# CONFIG_CRYPTO_RMD320 is not set
1538# CONFIG_CRYPTO_SHA1 is not set
1539# CONFIG_CRYPTO_SHA256 is not set
1540# CONFIG_CRYPTO_SHA512 is not set
1541# CONFIG_CRYPTO_TGR192 is not set
1542# CONFIG_CRYPTO_WP512 is not set
1543
1544#
1545# Ciphers
1546#
1547# CONFIG_CRYPTO_AES is not set
1548# CONFIG_CRYPTO_ANUBIS is not set
1549# CONFIG_CRYPTO_ARC4 is not set
1550# CONFIG_CRYPTO_BLOWFISH is not set
1551# CONFIG_CRYPTO_CAMELLIA is not set
1552# CONFIG_CRYPTO_CAST5 is not set
1553# CONFIG_CRYPTO_CAST6 is not set
1554CONFIG_CRYPTO_DES=m
1555# CONFIG_CRYPTO_FCRYPT is not set
1556# CONFIG_CRYPTO_KHAZAD is not set
1557# CONFIG_CRYPTO_SALSA20 is not set
1558# CONFIG_CRYPTO_SEED is not set
1559# CONFIG_CRYPTO_SERPENT is not set
1560# CONFIG_CRYPTO_TEA is not set
1561# CONFIG_CRYPTO_TWOFISH is not set
1562
1563#
1564# Compression
1565#
1566# CONFIG_CRYPTO_DEFLATE is not set
1567# CONFIG_CRYPTO_LZO is not set
1568
1569#
1570# Random Number Generation
1571#
1572# CONFIG_CRYPTO_ANSI_CPRNG is not set
1573CONFIG_CRYPTO_HW=y
1574# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1575CONFIG_HAVE_KVM=y
1576CONFIG_VIRTUALIZATION=y
1577# CONFIG_KVM is not set
1578# CONFIG_VIRTIO_PCI is not set
1579# CONFIG_VIRTIO_BALLOON is not set
1580
1581#
1582# Library routines
1583#
1584CONFIG_BITREVERSE=y
1585CONFIG_GENERIC_FIND_LAST_BIT=y
1586# CONFIG_CRC_CCITT is not set
1587# CONFIG_CRC16 is not set
1588# CONFIG_CRC_T10DIF is not set
1589CONFIG_CRC_ITU_T=m
1590CONFIG_CRC32=y
1591# CONFIG_CRC7 is not set
1592# CONFIG_LIBCRC32C is not set
1593CONFIG_PLIST=y
1594CONFIG_HAS_IOMEM=y
1595CONFIG_HAS_IOPORT=y
1596CONFIG_HAS_DMA=y
1597CONFIG_GENERIC_HARDIRQS=y
1598CONFIG_GENERIC_IRQ_PROBE=y
1599CONFIG_GENERIC_PENDING_IRQ=y
1600CONFIG_IRQ_PER_CPU=y
1601# CONFIG_IOMMU_API is not set
diff --git a/arch/ia64/configs/zx1_defconfig b/arch/ia64/configs/zx1_defconfig
index 0a06b1333c95..514f0635dafe 100644
--- a/arch/ia64/configs/zx1_defconfig
+++ b/arch/ia64/configs/zx1_defconfig
@@ -841,7 +841,7 @@ CONFIG_I2C_ALGOPCF=y
841# 841#
842# CONFIG_SENSORS_DS1337 is not set 842# CONFIG_SENSORS_DS1337 is not set
843# CONFIG_SENSORS_DS1374 is not set 843# CONFIG_SENSORS_DS1374 is not set
844# CONFIG_SENSORS_EEPROM is not set 844# CONFIG_EEPROM_LEGACY is not set
845# CONFIG_SENSORS_PCF8574 is not set 845# CONFIG_SENSORS_PCF8574 is not set
846# CONFIG_SENSORS_PCA9539 is not set 846# CONFIG_SENSORS_PCA9539 is not set
847# CONFIG_SENSORS_PCF8591 is not set 847# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c
index d98f0f4ff83f..6d5e6c5630e3 100644
--- a/arch/ia64/hp/common/sba_iommu.c
+++ b/arch/ia64/hp/common/sba_iommu.c
@@ -906,7 +906,7 @@ sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt)
906 * @dir: R/W or both. 906 * @dir: R/W or both.
907 * @attrs: optional dma attributes 907 * @attrs: optional dma attributes
908 * 908 *
909 * See Documentation/DMA-mapping.txt 909 * See Documentation/PCI/PCI-DMA-mapping.txt
910 */ 910 */
911dma_addr_t 911dma_addr_t
912sba_map_single_attrs(struct device *dev, void *addr, size_t size, int dir, 912sba_map_single_attrs(struct device *dev, void *addr, size_t size, int dir,
@@ -1024,7 +1024,7 @@ sba_mark_clean(struct ioc *ioc, dma_addr_t iova, size_t size)
1024 * @dir: R/W or both. 1024 * @dir: R/W or both.
1025 * @attrs: optional dma attributes 1025 * @attrs: optional dma attributes
1026 * 1026 *
1027 * See Documentation/DMA-mapping.txt 1027 * See Documentation/PCI/PCI-DMA-mapping.txt
1028 */ 1028 */
1029void sba_unmap_single_attrs(struct device *dev, dma_addr_t iova, size_t size, 1029void sba_unmap_single_attrs(struct device *dev, dma_addr_t iova, size_t size,
1030 int dir, struct dma_attrs *attrs) 1030 int dir, struct dma_attrs *attrs)
@@ -1102,7 +1102,7 @@ EXPORT_SYMBOL(sba_unmap_single_attrs);
1102 * @size: number of bytes mapped in driver buffer. 1102 * @size: number of bytes mapped in driver buffer.
1103 * @dma_handle: IOVA of new buffer. 1103 * @dma_handle: IOVA of new buffer.
1104 * 1104 *
1105 * See Documentation/DMA-mapping.txt 1105 * See Documentation/PCI/PCI-DMA-mapping.txt
1106 */ 1106 */
1107void * 1107void *
1108sba_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flags) 1108sba_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flags)
@@ -1165,7 +1165,7 @@ sba_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp
1165 * @vaddr: virtual address IOVA of "consistent" buffer. 1165 * @vaddr: virtual address IOVA of "consistent" buffer.
1166 * @dma_handler: IO virtual address of "consistent" buffer. 1166 * @dma_handler: IO virtual address of "consistent" buffer.
1167 * 1167 *
1168 * See Documentation/DMA-mapping.txt 1168 * See Documentation/PCI/PCI-DMA-mapping.txt
1169 */ 1169 */
1170void sba_free_coherent (struct device *dev, size_t size, void *vaddr, dma_addr_t dma_handle) 1170void sba_free_coherent (struct device *dev, size_t size, void *vaddr, dma_addr_t dma_handle)
1171{ 1171{
@@ -1420,7 +1420,7 @@ sba_coalesce_chunks(struct ioc *ioc, struct device *dev,
1420 * @dir: R/W or both. 1420 * @dir: R/W or both.
1421 * @attrs: optional dma attributes 1421 * @attrs: optional dma attributes
1422 * 1422 *
1423 * See Documentation/DMA-mapping.txt 1423 * See Documentation/PCI/PCI-DMA-mapping.txt
1424 */ 1424 */
1425int sba_map_sg_attrs(struct device *dev, struct scatterlist *sglist, int nents, 1425int sba_map_sg_attrs(struct device *dev, struct scatterlist *sglist, int nents,
1426 int dir, struct dma_attrs *attrs) 1426 int dir, struct dma_attrs *attrs)
@@ -1512,7 +1512,7 @@ EXPORT_SYMBOL(sba_map_sg_attrs);
1512 * @dir: R/W or both. 1512 * @dir: R/W or both.
1513 * @attrs: optional dma attributes 1513 * @attrs: optional dma attributes
1514 * 1514 *
1515 * See Documentation/DMA-mapping.txt 1515 * See Documentation/PCI/PCI-DMA-mapping.txt
1516 */ 1516 */
1517void sba_unmap_sg_attrs(struct device *dev, struct scatterlist *sglist, 1517void sba_unmap_sg_attrs(struct device *dev, struct scatterlist *sglist,
1518 int nents, int dir, struct dma_attrs *attrs) 1518 int nents, int dir, struct dma_attrs *attrs)
diff --git a/arch/ia64/ia32/ia32_entry.S b/arch/ia64/ia32/ia32_entry.S
index a8cf19958850..a46f8395e9a5 100644
--- a/arch/ia64/ia32/ia32_entry.S
+++ b/arch/ia64/ia32/ia32_entry.S
@@ -220,7 +220,7 @@ ia32_syscall_table:
220 data8 sys_mkdir 220 data8 sys_mkdir
221 data8 sys_rmdir /* 40 */ 221 data8 sys_rmdir /* 40 */
222 data8 sys_dup 222 data8 sys_dup
223 data8 sys_pipe 223 data8 sys_ia64_pipe
224 data8 compat_sys_times 224 data8 compat_sys_times
225 data8 sys_ni_syscall /* old prof syscall holder */ 225 data8 sys_ni_syscall /* old prof syscall holder */
226 data8 sys32_brk /* 45 */ 226 data8 sys32_brk /* 45 */
diff --git a/arch/ia64/include/asm/Kbuild b/arch/ia64/include/asm/Kbuild
index 3b25bd9dca91..ccbe8ae47a61 100644
--- a/arch/ia64/include/asm/Kbuild
+++ b/arch/ia64/include/asm/Kbuild
@@ -14,4 +14,3 @@ unifdef-y += gcc_intrin.h
14unifdef-y += intrinsics.h 14unifdef-y += intrinsics.h
15unifdef-y += perfmon.h 15unifdef-y += perfmon.h
16unifdef-y += ustack.h 16unifdef-y += ustack.h
17unifdef-y += swab.h
diff --git a/arch/ia64/include/asm/byteorder.h b/arch/ia64/include/asm/byteorder.h
index 0f84c5cb703d..a8dd73558150 100644
--- a/arch/ia64/include/asm/byteorder.h
+++ b/arch/ia64/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _ASM_IA64_BYTEORDER_H 1#ifndef _ASM_IA64_BYTEORDER_H
2#define _ASM_IA64_BYTEORDER_H 2#define _ASM_IA64_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/little_endian.h> 4#include <linux/byteorder/little_endian.h>
6 5
7#endif /* _ASM_IA64_BYTEORDER_H */ 6#endif /* _ASM_IA64_BYTEORDER_H */
diff --git a/arch/ia64/include/asm/dma-mapping.h b/arch/ia64/include/asm/dma-mapping.h
index bbab7e2b0fc9..1f912d927585 100644
--- a/arch/ia64/include/asm/dma-mapping.h
+++ b/arch/ia64/include/asm/dma-mapping.h
@@ -9,6 +9,8 @@
9#include <linux/scatterlist.h> 9#include <linux/scatterlist.h>
10#include <asm/swiotlb.h> 10#include <asm/swiotlb.h>
11 11
12#define ARCH_HAS_DMA_GET_REQUIRED_MASK
13
12struct dma_mapping_ops { 14struct dma_mapping_ops {
13 int (*mapping_error)(struct device *dev, 15 int (*mapping_error)(struct device *dev,
14 dma_addr_t dma_addr); 16 dma_addr_t dma_addr);
diff --git a/arch/ia64/include/asm/fpu.h b/arch/ia64/include/asm/fpu.h
index 3859558ff0a4..0c26157cffa5 100644
--- a/arch/ia64/include/asm/fpu.h
+++ b/arch/ia64/include/asm/fpu.h
@@ -6,8 +6,6 @@
6 * David Mosberger-Tang <davidm@hpl.hp.com> 6 * David Mosberger-Tang <davidm@hpl.hp.com>
7 */ 7 */
8 8
9#include <asm/types.h>
10
11/* floating point status register: */ 9/* floating point status register: */
12#define FPSR_TRAP_VD (1 << 0) /* invalid op trap disabled */ 10#define FPSR_TRAP_VD (1 << 0) /* invalid op trap disabled */
13#define FPSR_TRAP_DD (1 << 1) /* denormal trap disabled */ 11#define FPSR_TRAP_DD (1 << 1) /* denormal trap disabled */
diff --git a/arch/ia64/include/asm/gcc_intrin.h b/arch/ia64/include/asm/gcc_intrin.h
index 0f5b55921758..c2c5fd8fcac4 100644
--- a/arch/ia64/include/asm/gcc_intrin.h
+++ b/arch/ia64/include/asm/gcc_intrin.h
@@ -6,6 +6,7 @@
6 * Copyright (C) 2002,2003 Suresh Siddha <suresh.b.siddha@intel.com> 6 * Copyright (C) 2002,2003 Suresh Siddha <suresh.b.siddha@intel.com>
7 */ 7 */
8 8
9#include <linux/types.h>
9#include <linux/compiler.h> 10#include <linux/compiler.h>
10 11
11/* define this macro to get some asm stmts included in 'c' files */ 12/* define this macro to get some asm stmts included in 'c' files */
diff --git a/arch/ia64/include/asm/intrinsics.h b/arch/ia64/include/asm/intrinsics.h
index a3e44a5ed497..c47830e26cb7 100644
--- a/arch/ia64/include/asm/intrinsics.h
+++ b/arch/ia64/include/asm/intrinsics.h
@@ -10,6 +10,7 @@
10 10
11#ifndef __ASSEMBLY__ 11#ifndef __ASSEMBLY__
12 12
13#include <linux/types.h>
13/* include compiler specific intrinsics */ 14/* include compiler specific intrinsics */
14#include <asm/ia64regs.h> 15#include <asm/ia64regs.h>
15#ifdef __INTEL_COMPILER 16#ifdef __INTEL_COMPILER
diff --git a/arch/ia64/include/asm/irq.h b/arch/ia64/include/asm/irq.h
index 36429a532630..5282546cdf82 100644
--- a/arch/ia64/include/asm/irq.h
+++ b/arch/ia64/include/asm/irq.h
@@ -27,7 +27,7 @@ irq_canonicalize (int irq)
27} 27}
28 28
29extern void set_irq_affinity_info (unsigned int irq, int dest, int redir); 29extern void set_irq_affinity_info (unsigned int irq, int dest, int redir);
30bool is_affinity_mask_valid(cpumask_var_t cpumask); 30bool is_affinity_mask_valid(const struct cpumask *cpumask);
31 31
32#define is_affinity_mask_valid is_affinity_mask_valid 32#define is_affinity_mask_valid is_affinity_mask_valid
33 33
diff --git a/arch/ia64/include/asm/kvm.h b/arch/ia64/include/asm/kvm.h
index 68aa6da807c1..2b0a38e84705 100644
--- a/arch/ia64/include/asm/kvm.h
+++ b/arch/ia64/include/asm/kvm.h
@@ -21,10 +21,13 @@
21 * 21 *
22 */ 22 */
23 23
24#include <asm/types.h> 24#include <linux/types.h>
25
26#include <linux/ioctl.h> 25#include <linux/ioctl.h>
27 26
27/* Select x86 specific features in <linux/kvm.h> */
28#define __KVM_HAVE_IOAPIC
29#define __KVM_HAVE_DEVICE_ASSIGNMENT
30
28/* Architectural interrupt line count. */ 31/* Architectural interrupt line count. */
29#define KVM_NR_INTERRUPTS 256 32#define KVM_NR_INTERRUPTS 256
30 33
diff --git a/arch/ia64/include/asm/machvec.h b/arch/ia64/include/asm/machvec.h
index 59c17e446683..fe87b2121707 100644
--- a/arch/ia64/include/asm/machvec.h
+++ b/arch/ia64/include/asm/machvec.h
@@ -62,6 +62,7 @@ typedef dma_addr_t ia64_mv_dma_map_single_attrs (struct device *, void *, size_t
62typedef void ia64_mv_dma_unmap_single_attrs (struct device *, dma_addr_t, size_t, int, struct dma_attrs *); 62typedef void ia64_mv_dma_unmap_single_attrs (struct device *, dma_addr_t, size_t, int, struct dma_attrs *);
63typedef int ia64_mv_dma_map_sg_attrs (struct device *, struct scatterlist *, int, int, struct dma_attrs *); 63typedef int ia64_mv_dma_map_sg_attrs (struct device *, struct scatterlist *, int, int, struct dma_attrs *);
64typedef void ia64_mv_dma_unmap_sg_attrs (struct device *, struct scatterlist *, int, int, struct dma_attrs *); 64typedef void ia64_mv_dma_unmap_sg_attrs (struct device *, struct scatterlist *, int, int, struct dma_attrs *);
65typedef u64 ia64_mv_dma_get_required_mask (struct device *);
65 66
66/* 67/*
67 * WARNING: The legacy I/O space is _architected_. Platforms are 68 * WARNING: The legacy I/O space is _architected_. Platforms are
@@ -159,6 +160,7 @@ extern void machvec_tlb_migrate_finish (struct mm_struct *);
159# define platform_dma_sync_sg_for_device ia64_mv.dma_sync_sg_for_device 160# define platform_dma_sync_sg_for_device ia64_mv.dma_sync_sg_for_device
160# define platform_dma_mapping_error ia64_mv.dma_mapping_error 161# define platform_dma_mapping_error ia64_mv.dma_mapping_error
161# define platform_dma_supported ia64_mv.dma_supported 162# define platform_dma_supported ia64_mv.dma_supported
163# define platform_dma_get_required_mask ia64_mv.dma_get_required_mask
162# define platform_irq_to_vector ia64_mv.irq_to_vector 164# define platform_irq_to_vector ia64_mv.irq_to_vector
163# define platform_local_vector_to_irq ia64_mv.local_vector_to_irq 165# define platform_local_vector_to_irq ia64_mv.local_vector_to_irq
164# define platform_pci_get_legacy_mem ia64_mv.pci_get_legacy_mem 166# define platform_pci_get_legacy_mem ia64_mv.pci_get_legacy_mem
@@ -213,6 +215,7 @@ struct ia64_machine_vector {
213 ia64_mv_dma_sync_sg_for_device *dma_sync_sg_for_device; 215 ia64_mv_dma_sync_sg_for_device *dma_sync_sg_for_device;
214 ia64_mv_dma_mapping_error *dma_mapping_error; 216 ia64_mv_dma_mapping_error *dma_mapping_error;
215 ia64_mv_dma_supported *dma_supported; 217 ia64_mv_dma_supported *dma_supported;
218 ia64_mv_dma_get_required_mask *dma_get_required_mask;
216 ia64_mv_irq_to_vector *irq_to_vector; 219 ia64_mv_irq_to_vector *irq_to_vector;
217 ia64_mv_local_vector_to_irq *local_vector_to_irq; 220 ia64_mv_local_vector_to_irq *local_vector_to_irq;
218 ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem; 221 ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem;
@@ -263,6 +266,7 @@ struct ia64_machine_vector {
263 platform_dma_sync_sg_for_device, \ 266 platform_dma_sync_sg_for_device, \
264 platform_dma_mapping_error, \ 267 platform_dma_mapping_error, \
265 platform_dma_supported, \ 268 platform_dma_supported, \
269 platform_dma_get_required_mask, \
266 platform_irq_to_vector, \ 270 platform_irq_to_vector, \
267 platform_local_vector_to_irq, \ 271 platform_local_vector_to_irq, \
268 platform_pci_get_legacy_mem, \ 272 platform_pci_get_legacy_mem, \
@@ -366,6 +370,9 @@ extern void machvec_init_from_cmdline(const char *cmdline);
366#ifndef platform_dma_supported 370#ifndef platform_dma_supported
367# define platform_dma_supported swiotlb_dma_supported 371# define platform_dma_supported swiotlb_dma_supported
368#endif 372#endif
373#ifndef platform_dma_get_required_mask
374# define platform_dma_get_required_mask ia64_dma_get_required_mask
375#endif
369#ifndef platform_irq_to_vector 376#ifndef platform_irq_to_vector
370# define platform_irq_to_vector __ia64_irq_to_vector 377# define platform_irq_to_vector __ia64_irq_to_vector
371#endif 378#endif
diff --git a/arch/ia64/include/asm/machvec_init.h b/arch/ia64/include/asm/machvec_init.h
index ef964b286842..37a469849ab9 100644
--- a/arch/ia64/include/asm/machvec_init.h
+++ b/arch/ia64/include/asm/machvec_init.h
@@ -3,6 +3,7 @@
3 3
4extern ia64_mv_send_ipi_t ia64_send_ipi; 4extern ia64_mv_send_ipi_t ia64_send_ipi;
5extern ia64_mv_global_tlb_purge_t ia64_global_tlb_purge; 5extern ia64_mv_global_tlb_purge_t ia64_global_tlb_purge;
6extern ia64_mv_dma_get_required_mask ia64_dma_get_required_mask;
6extern ia64_mv_irq_to_vector __ia64_irq_to_vector; 7extern ia64_mv_irq_to_vector __ia64_irq_to_vector;
7extern ia64_mv_local_vector_to_irq __ia64_local_vector_to_irq; 8extern ia64_mv_local_vector_to_irq __ia64_local_vector_to_irq;
8extern ia64_mv_pci_get_legacy_mem_t ia64_pci_get_legacy_mem; 9extern ia64_mv_pci_get_legacy_mem_t ia64_pci_get_legacy_mem;
diff --git a/arch/ia64/include/asm/machvec_sn2.h b/arch/ia64/include/asm/machvec_sn2.h
index 781308ea7b88..f1a6e0d6dfa5 100644
--- a/arch/ia64/include/asm/machvec_sn2.h
+++ b/arch/ia64/include/asm/machvec_sn2.h
@@ -67,6 +67,7 @@ extern ia64_mv_dma_sync_single_for_device sn_dma_sync_single_for_device;
67extern ia64_mv_dma_sync_sg_for_device sn_dma_sync_sg_for_device; 67extern ia64_mv_dma_sync_sg_for_device sn_dma_sync_sg_for_device;
68extern ia64_mv_dma_mapping_error sn_dma_mapping_error; 68extern ia64_mv_dma_mapping_error sn_dma_mapping_error;
69extern ia64_mv_dma_supported sn_dma_supported; 69extern ia64_mv_dma_supported sn_dma_supported;
70extern ia64_mv_dma_get_required_mask sn_dma_get_required_mask;
70extern ia64_mv_migrate_t sn_migrate; 71extern ia64_mv_migrate_t sn_migrate;
71extern ia64_mv_kernel_launch_event_t sn_kernel_launch_event; 72extern ia64_mv_kernel_launch_event_t sn_kernel_launch_event;
72extern ia64_mv_setup_msi_irq_t sn_setup_msi_irq; 73extern ia64_mv_setup_msi_irq_t sn_setup_msi_irq;
@@ -123,6 +124,7 @@ extern ia64_mv_pci_fixup_bus_t sn_pci_fixup_bus;
123#define platform_dma_sync_sg_for_device sn_dma_sync_sg_for_device 124#define platform_dma_sync_sg_for_device sn_dma_sync_sg_for_device
124#define platform_dma_mapping_error sn_dma_mapping_error 125#define platform_dma_mapping_error sn_dma_mapping_error
125#define platform_dma_supported sn_dma_supported 126#define platform_dma_supported sn_dma_supported
127#define platform_dma_get_required_mask sn_dma_get_required_mask
126#define platform_migrate sn_migrate 128#define platform_migrate sn_migrate
127#define platform_kernel_launch_event sn_kernel_launch_event 129#define platform_kernel_launch_event sn_kernel_launch_event
128#ifdef CONFIG_PCI_MSI 130#ifdef CONFIG_PCI_MSI
diff --git a/arch/ia64/include/asm/mmzone.h b/arch/ia64/include/asm/mmzone.h
index 34efe88eb849..f2ca32069b3f 100644
--- a/arch/ia64/include/asm/mmzone.h
+++ b/arch/ia64/include/asm/mmzone.h
@@ -31,10 +31,6 @@ static inline int pfn_to_nid(unsigned long pfn)
31#endif 31#endif
32} 32}
33 33
34#ifdef CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
35extern int early_pfn_to_nid(unsigned long pfn);
36#endif
37
38#ifdef CONFIG_IA64_DIG /* DIG systems are small */ 34#ifdef CONFIG_IA64_DIG /* DIG systems are small */
39# define MAX_PHYSNODE_ID 8 35# define MAX_PHYSNODE_ID 8
40# define NR_NODE_MEMBLKS (MAX_NUMNODES * 8) 36# define NR_NODE_MEMBLKS (MAX_NUMNODES * 8)
diff --git a/arch/ia64/include/asm/percpu.h b/arch/ia64/include/asm/percpu.h
index 77f30b664b4e..30cf46534dd2 100644
--- a/arch/ia64/include/asm/percpu.h
+++ b/arch/ia64/include/asm/percpu.h
@@ -27,12 +27,12 @@ extern void *per_cpu_init(void);
27 27
28#else /* ! SMP */ 28#else /* ! SMP */
29 29
30#define PER_CPU_ATTRIBUTES __attribute__((__section__(".data.percpu")))
31
32#define per_cpu_init() (__phys_per_cpu_start) 30#define per_cpu_init() (__phys_per_cpu_start)
33 31
34#endif /* SMP */ 32#endif /* SMP */
35 33
34#define PER_CPU_BASE_SECTION ".data.percpu"
35
36/* 36/*
37 * Be extremely careful when taking the address of this variable! Due to virtual 37 * Be extremely careful when taking the address of this variable! Due to virtual
38 * remapping, it is different from the canonical address returned by __get_cpu_var(var)! 38 * remapping, it is different from the canonical address returned by __get_cpu_var(var)!
diff --git a/arch/ia64/include/asm/sn/bte.h b/arch/ia64/include/asm/sn/bte.h
index 5efecf06c9a4..96798d2da7c2 100644
--- a/arch/ia64/include/asm/sn/bte.h
+++ b/arch/ia64/include/asm/sn/bte.h
@@ -39,7 +39,7 @@
39/* BTE status register only supports 16 bits for length field */ 39/* BTE status register only supports 16 bits for length field */
40#define BTE_LEN_BITS (16) 40#define BTE_LEN_BITS (16)
41#define BTE_LEN_MASK ((1 << BTE_LEN_BITS) - 1) 41#define BTE_LEN_MASK ((1 << BTE_LEN_BITS) - 1)
42#define BTE_MAX_XFER ((1 << BTE_LEN_BITS) * L1_CACHE_BYTES) 42#define BTE_MAX_XFER (BTE_LEN_MASK << L1_CACHE_SHIFT)
43 43
44 44
45/* Define hardware */ 45/* Define hardware */
diff --git a/arch/ia64/include/asm/swab.h b/arch/ia64/include/asm/swab.h
index 6aa58b699eea..c89a8cb5d8a5 100644
--- a/arch/ia64/include/asm/swab.h
+++ b/arch/ia64/include/asm/swab.h
@@ -6,7 +6,7 @@
6 * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co. 6 * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co.
7 */ 7 */
8 8
9#include <asm/types.h> 9#include <linux/types.h>
10#include <asm/intrinsics.h> 10#include <asm/intrinsics.h>
11#include <linux/compiler.h> 11#include <linux/compiler.h>
12 12
diff --git a/arch/ia64/include/asm/topology.h b/arch/ia64/include/asm/topology.h
index 76a33a91ca69..3193f4417e16 100644
--- a/arch/ia64/include/asm/topology.h
+++ b/arch/ia64/include/asm/topology.h
@@ -84,7 +84,7 @@ void build_cpu_to_node_map(void);
84 .child = NULL, \ 84 .child = NULL, \
85 .groups = NULL, \ 85 .groups = NULL, \
86 .min_interval = 8, \ 86 .min_interval = 8, \
87 .max_interval = 8*(min(num_online_cpus(), 32)), \ 87 .max_interval = 8*(min(num_online_cpus(), 32U)), \
88 .busy_factor = 64, \ 88 .busy_factor = 64, \
89 .imbalance_pct = 125, \ 89 .imbalance_pct = 125, \
90 .cache_nice_tries = 2, \ 90 .cache_nice_tries = 2, \
@@ -124,7 +124,7 @@ extern void arch_fix_phys_package_id(int num, u32 slot);
124 124
125#define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \ 125#define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \
126 cpu_all_mask : \ 126 cpu_all_mask : \
127 cpumask_from_node(pcibus_to_node(bus))) 127 cpumask_of_node(pcibus_to_node(bus)))
128 128
129#include <asm-generic/topology.h> 129#include <asm-generic/topology.h>
130 130
diff --git a/arch/ia64/include/asm/unistd.h b/arch/ia64/include/asm/unistd.h
index f791576355ad..9015979ebe0f 100644
--- a/arch/ia64/include/asm/unistd.h
+++ b/arch/ia64/include/asm/unistd.h
@@ -364,7 +364,7 @@ struct pt_regs;
364struct sigaction; 364struct sigaction;
365long sys_execve(char __user *filename, char __user * __user *argv, 365long sys_execve(char __user *filename, char __user * __user *argv,
366 char __user * __user *envp, struct pt_regs *regs); 366 char __user * __user *envp, struct pt_regs *regs);
367asmlinkage long sys_pipe(void); 367asmlinkage long sys_ia64_pipe(void);
368asmlinkage long sys_rt_sigaction(int sig, 368asmlinkage long sys_rt_sigaction(int sig,
369 const struct sigaction __user *act, 369 const struct sigaction __user *act,
370 struct sigaction __user *oact, 370 struct sigaction __user *oact,
diff --git a/arch/ia64/include/asm/uv/uv.h b/arch/ia64/include/asm/uv/uv.h
new file mode 100644
index 000000000000..61b5bdfd980e
--- /dev/null
+++ b/arch/ia64/include/asm/uv/uv.h
@@ -0,0 +1,13 @@
1#ifndef _ASM_IA64_UV_UV_H
2#define _ASM_IA64_UV_UV_H
3
4#include <asm/system.h>
5#include <asm/sn/simulator.h>
6
7static inline int is_uv_system(void)
8{
9 /* temporary support for running on hardware simulator */
10 return IS_MEDUSA() || ia64_platform_is("uv");
11}
12
13#endif /* _ASM_IA64_UV_UV_H */
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index d541671caf4a..bdef2ce38c8b 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -199,6 +199,10 @@ char *__init __acpi_map_table(unsigned long phys_addr, unsigned long size)
199 return __va(phys_addr); 199 return __va(phys_addr);
200} 200}
201 201
202void __init __acpi_unmap_table(char *map, unsigned long size)
203{
204}
205
202/* -------------------------------------------------------------------------- 206/* --------------------------------------------------------------------------
203 Boot-time Table Parsing 207 Boot-time Table Parsing
204 -------------------------------------------------------------------------- */ 208 -------------------------------------------------------------------------- */
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
index d435f4a7a96c..e5341e2c1175 100644
--- a/arch/ia64/kernel/entry.S
+++ b/arch/ia64/kernel/entry.S
@@ -1442,7 +1442,7 @@ sys_call_table:
1442 data8 sys_mkdir // 1055 1442 data8 sys_mkdir // 1055
1443 data8 sys_rmdir 1443 data8 sys_rmdir
1444 data8 sys_dup 1444 data8 sys_dup
1445 data8 sys_pipe 1445 data8 sys_ia64_pipe
1446 data8 sys_times 1446 data8 sys_times
1447 data8 ia64_brk // 1060 1447 data8 ia64_brk // 1060
1448 data8 sys_setgid 1448 data8 sys_setgid
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c
index 5cfd3d91001a..166e0d839fa0 100644
--- a/arch/ia64/kernel/iosapic.c
+++ b/arch/ia64/kernel/iosapic.c
@@ -507,7 +507,7 @@ static int iosapic_find_sharable_irq(unsigned long trigger, unsigned long pol)
507 if (trigger == IOSAPIC_EDGE) 507 if (trigger == IOSAPIC_EDGE)
508 return -EINVAL; 508 return -EINVAL;
509 509
510 for (i = 0; i <= NR_IRQS; i++) { 510 for (i = 0; i < NR_IRQS; i++) {
511 info = &iosapic_intr_info[i]; 511 info = &iosapic_intr_info[i];
512 if (info->trigger == trigger && info->polarity == pol && 512 if (info->trigger == trigger && info->polarity == pol &&
513 (info->dmode == IOSAPIC_FIXED || 513 (info->dmode == IOSAPIC_FIXED ||
@@ -880,7 +880,7 @@ iosapic_unregister_intr (unsigned int gsi)
880 if (iosapic_intr_info[irq].count == 0) { 880 if (iosapic_intr_info[irq].count == 0) {
881#ifdef CONFIG_SMP 881#ifdef CONFIG_SMP
882 /* Clear affinity */ 882 /* Clear affinity */
883 cpus_setall(idesc->affinity); 883 cpumask_setall(idesc->affinity);
884#endif 884#endif
885 /* Clear the interrupt information */ 885 /* Clear the interrupt information */
886 iosapic_intr_info[irq].dest = 0; 886 iosapic_intr_info[irq].dest = 0;
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c
index 95ff16cb05d8..226233a6fa19 100644
--- a/arch/ia64/kernel/irq.c
+++ b/arch/ia64/kernel/irq.c
@@ -102,17 +102,14 @@ static char irq_redir [NR_IRQS]; // = { [0 ... NR_IRQS-1] = 1 };
102 102
103void set_irq_affinity_info (unsigned int irq, int hwid, int redir) 103void set_irq_affinity_info (unsigned int irq, int hwid, int redir)
104{ 104{
105 cpumask_t mask = CPU_MASK_NONE;
106
107 cpu_set(cpu_logical_id(hwid), mask);
108
109 if (irq < NR_IRQS) { 105 if (irq < NR_IRQS) {
110 irq_desc[irq].affinity = mask; 106 cpumask_copy(irq_desc[irq].affinity,
107 cpumask_of(cpu_logical_id(hwid)));
111 irq_redir[irq] = (char) (redir & 0xff); 108 irq_redir[irq] = (char) (redir & 0xff);
112 } 109 }
113} 110}
114 111
115bool is_affinity_mask_valid(cpumask_var_t cpumask) 112bool is_affinity_mask_valid(const struct cpumask *cpumask)
116{ 113{
117 if (ia64_platform_is("sn2")) { 114 if (ia64_platform_is("sn2")) {
118 /* Only allow one CPU to be specified in the smp_affinity mask */ 115 /* Only allow one CPU to be specified in the smp_affinity mask */
@@ -128,7 +125,7 @@ bool is_affinity_mask_valid(cpumask_var_t cpumask)
128unsigned int vectors_in_migration[NR_IRQS]; 125unsigned int vectors_in_migration[NR_IRQS];
129 126
130/* 127/*
131 * Since cpu_online_map is already updated, we just need to check for 128 * Since cpu_online_mask is already updated, we just need to check for
132 * affinity that has zeros 129 * affinity that has zeros
133 */ 130 */
134static void migrate_irqs(void) 131static void migrate_irqs(void)
@@ -151,14 +148,14 @@ static void migrate_irqs(void)
151 if (desc->status == IRQ_PER_CPU) 148 if (desc->status == IRQ_PER_CPU)
152 continue; 149 continue;
153 150
154 if (cpumask_any_and(&irq_desc[irq].affinity, cpu_online_mask) 151 if (cpumask_any_and(irq_desc[irq].affinity, cpu_online_mask)
155 >= nr_cpu_ids) { 152 >= nr_cpu_ids) {
156 /* 153 /*
157 * Save it for phase 2 processing 154 * Save it for phase 2 processing
158 */ 155 */
159 vectors_in_migration[irq] = irq; 156 vectors_in_migration[irq] = irq;
160 157
161 new_cpu = any_online_cpu(cpu_online_map); 158 new_cpu = cpumask_any(cpu_online_mask);
162 159
163 /* 160 /*
164 * Al three are essential, currently WARN_ON.. maybe panic? 161 * Al three are essential, currently WARN_ON.. maybe panic?
@@ -191,7 +188,7 @@ void fixup_irqs(void)
191 * Find a new timesync master 188 * Find a new timesync master
192 */ 189 */
193 if (smp_processor_id() == time_keeper_id) { 190 if (smp_processor_id() == time_keeper_id) {
194 time_keeper_id = first_cpu(cpu_online_map); 191 time_keeper_id = cpumask_first(cpu_online_mask);
195 printk ("CPU %d is now promoted to time-keeper master\n", time_keeper_id); 192 printk ("CPU %d is now promoted to time-keeper master\n", time_keeper_id);
196 } 193 }
197 194
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c
index 28d3d483db92..927ad027820c 100644
--- a/arch/ia64/kernel/irq_ia64.c
+++ b/arch/ia64/kernel/irq_ia64.c
@@ -493,11 +493,13 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
493 saved_tpr = ia64_getreg(_IA64_REG_CR_TPR); 493 saved_tpr = ia64_getreg(_IA64_REG_CR_TPR);
494 ia64_srlz_d(); 494 ia64_srlz_d();
495 while (vector != IA64_SPURIOUS_INT_VECTOR) { 495 while (vector != IA64_SPURIOUS_INT_VECTOR) {
496 struct irq_desc *desc = irq_to_desc(vector);
497
496 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { 498 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) {
497 smp_local_flush_tlb(); 499 smp_local_flush_tlb();
498 kstat_this_cpu.irqs[vector]++; 500 kstat_incr_irqs_this_cpu(vector, desc);
499 } else if (unlikely(IS_RESCHEDULE(vector))) 501 } else if (unlikely(IS_RESCHEDULE(vector)))
500 kstat_this_cpu.irqs[vector]++; 502 kstat_incr_irqs_this_cpu(vector, desc);
501 else { 503 else {
502 int irq = local_vector_to_irq(vector); 504 int irq = local_vector_to_irq(vector);
503 505
@@ -551,11 +553,13 @@ void ia64_process_pending_intr(void)
551 * Perform normal interrupt style processing 553 * Perform normal interrupt style processing
552 */ 554 */
553 while (vector != IA64_SPURIOUS_INT_VECTOR) { 555 while (vector != IA64_SPURIOUS_INT_VECTOR) {
556 struct irq_desc *desc = irq_to_desc(vector);
557
554 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { 558 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) {
555 smp_local_flush_tlb(); 559 smp_local_flush_tlb();
556 kstat_this_cpu.irqs[vector]++; 560 kstat_incr_irqs_this_cpu(vector, desc);
557 } else if (unlikely(IS_RESCHEDULE(vector))) 561 } else if (unlikely(IS_RESCHEDULE(vector)))
558 kstat_this_cpu.irqs[vector]++; 562 kstat_incr_irqs_this_cpu(vector, desc);
559 else { 563 else {
560 struct pt_regs *old_regs = set_irq_regs(NULL); 564 struct pt_regs *old_regs = set_irq_regs(NULL);
561 int irq = local_vector_to_irq(vector); 565 int irq = local_vector_to_irq(vector);
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c
index f90be51b1123..9adac441ac9b 100644
--- a/arch/ia64/kernel/kprobes.c
+++ b/arch/ia64/kernel/kprobes.c
@@ -870,7 +870,7 @@ static int __kprobes pre_kprobes_handler(struct die_args *args)
870 return 1; 870 return 1;
871 871
872ss_probe: 872ss_probe:
873#if !defined(CONFIG_PREEMPT) || defined(CONFIG_PM) 873#if !defined(CONFIG_PREEMPT) || defined(CONFIG_FREEZER)
874 if (p->ainsn.inst_flag == INST_FLAG_BOOSTABLE && !p->post_handler) { 874 if (p->ainsn.inst_flag == INST_FLAG_BOOSTABLE && !p->post_handler) {
875 /* Boost up -- we can execute copied instructions directly */ 875 /* Boost up -- we can execute copied instructions directly */
876 ia64_psr(regs)->ri = p->ainsn.slot; 876 ia64_psr(regs)->ri = p->ainsn.slot;
diff --git a/arch/ia64/kernel/msi_ia64.c b/arch/ia64/kernel/msi_ia64.c
index 890339339035..dcb6b7c51ea7 100644
--- a/arch/ia64/kernel/msi_ia64.c
+++ b/arch/ia64/kernel/msi_ia64.c
@@ -75,7 +75,7 @@ static void ia64_set_msi_irq_affinity(unsigned int irq,
75 msg.data = data; 75 msg.data = data;
76 76
77 write_msi_msg(irq, &msg); 77 write_msi_msg(irq, &msg);
78 irq_desc[irq].affinity = cpumask_of_cpu(cpu); 78 cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu));
79} 79}
80#endif /* CONFIG_SMP */ 80#endif /* CONFIG_SMP */
81 81
@@ -187,7 +187,7 @@ static void dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask)
187 msg.address_lo |= MSI_ADDR_DESTID_CPU(cpu_physical_id(cpu)); 187 msg.address_lo |= MSI_ADDR_DESTID_CPU(cpu_physical_id(cpu));
188 188
189 dmar_msi_write(irq, &msg); 189 dmar_msi_write(irq, &msg);
190 irq_desc[irq].affinity = *mask; 190 cpumask_copy(irq_desc[irq].affinity, mask);
191} 191}
192#endif /* CONFIG_SMP */ 192#endif /* CONFIG_SMP */
193 193
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c
index 11463994a7d5..52290547c85b 100644
--- a/arch/ia64/kernel/smpboot.c
+++ b/arch/ia64/kernel/smpboot.c
@@ -736,14 +736,15 @@ int __cpu_disable(void)
736 return -EBUSY; 736 return -EBUSY;
737 } 737 }
738 738
739 cpu_clear(cpu, cpu_online_map);
740
739 if (migrate_platform_irqs(cpu)) { 741 if (migrate_platform_irqs(cpu)) {
740 cpu_set(cpu, cpu_online_map); 742 cpu_set(cpu, cpu_online_map);
741 return (-EBUSY); 743 return -EBUSY;
742 } 744 }
743 745
744 remove_siblinginfo(cpu); 746 remove_siblinginfo(cpu);
745 fixup_irqs(); 747 fixup_irqs();
746 cpu_clear(cpu, cpu_online_map);
747 local_flush_tlb_all(); 748 local_flush_tlb_all();
748 cpu_clear(cpu, cpu_callin_map); 749 cpu_clear(cpu, cpu_callin_map);
749 return 0; 750 return 0;
diff --git a/arch/ia64/kernel/sys_ia64.c b/arch/ia64/kernel/sys_ia64.c
index bcbb6d8792d3..92ed83f34036 100644
--- a/arch/ia64/kernel/sys_ia64.c
+++ b/arch/ia64/kernel/sys_ia64.c
@@ -154,7 +154,7 @@ out:
154 * and r9) as this is faster than doing a copy_to_user(). 154 * and r9) as this is faster than doing a copy_to_user().
155 */ 155 */
156asmlinkage long 156asmlinkage long
157sys_pipe (void) 157sys_ia64_pipe (void)
158{ 158{
159 struct pt_regs *regs = task_pt_regs(current); 159 struct pt_regs *regs = task_pt_regs(current);
160 int fd[2]; 160 int fd[2];
diff --git a/arch/ia64/kernel/unaligned.c b/arch/ia64/kernel/unaligned.c
index ff0e7c10faa7..6db08599ebbc 100644
--- a/arch/ia64/kernel/unaligned.c
+++ b/arch/ia64/kernel/unaligned.c
@@ -59,6 +59,7 @@ dump (const char *str, void *vp, size_t len)
59 * (i.e. don't allow attacker to fill up logs with unaligned accesses). 59 * (i.e. don't allow attacker to fill up logs with unaligned accesses).
60 */ 60 */
61int no_unaligned_warning; 61int no_unaligned_warning;
62int unaligned_dump_stack;
62static int noprint_warning; 63static int noprint_warning;
63 64
64/* 65/*
@@ -1371,9 +1372,12 @@ ia64_handle_unaligned (unsigned long ifa, struct pt_regs *regs)
1371 } 1372 }
1372 } 1373 }
1373 } else { 1374 } else {
1374 if (within_logging_rate_limit()) 1375 if (within_logging_rate_limit()) {
1375 printk(KERN_WARNING "kernel unaligned access to 0x%016lx, ip=0x%016lx\n", 1376 printk(KERN_WARNING "kernel unaligned access to 0x%016lx, ip=0x%016lx\n",
1376 ifa, regs->cr_iip + ipsr->ri); 1377 ifa, regs->cr_iip + ipsr->ri);
1378 if (unaligned_dump_stack)
1379 dump_stack();
1380 }
1377 set_fs(KERNEL_DS); 1381 set_fs(KERNEL_DS);
1378 } 1382 }
1379 1383
diff --git a/arch/ia64/kernel/unwind.c b/arch/ia64/kernel/unwind.c
index 67810b77d998..b6c0e63a0bf6 100644
--- a/arch/ia64/kernel/unwind.c
+++ b/arch/ia64/kernel/unwind.c
@@ -2149,7 +2149,7 @@ unw_remove_unwind_table (void *handle)
2149 2149
2150 /* next, remove hash table entries for this table */ 2150 /* next, remove hash table entries for this table */
2151 2151
2152 for (index = 0; index <= UNW_HASH_SIZE; ++index) { 2152 for (index = 0; index < UNW_HASH_SIZE; ++index) {
2153 tmp = unw.cache + unw.hash[index]; 2153 tmp = unw.cache + unw.hash[index];
2154 if (unw.hash[index] >= UNW_CACHE_SIZE 2154 if (unw.hash[index] >= UNW_CACHE_SIZE
2155 || tmp->ip < table->start || tmp->ip >= table->end) 2155 || tmp->ip < table->start || tmp->ip >= table->end)
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S
index 10a7d47e8510..f45e4e508eca 100644
--- a/arch/ia64/kernel/vmlinux.lds.S
+++ b/arch/ia64/kernel/vmlinux.lds.S
@@ -219,6 +219,7 @@ SECTIONS
219 .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - LOAD_OFFSET) 219 .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - LOAD_OFFSET)
220 { 220 {
221 __per_cpu_start = .; 221 __per_cpu_start = .;
222 *(.data.percpu.page_aligned)
222 *(.data.percpu) 223 *(.data.percpu)
223 *(.data.percpu.shared_aligned) 224 *(.data.percpu.shared_aligned)
224 __per_cpu_end = .; 225 __per_cpu_end = .;
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index 4e586f6110aa..28f982045f29 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -1337,6 +1337,10 @@ static void kvm_release_vm_pages(struct kvm *kvm)
1337 } 1337 }
1338} 1338}
1339 1339
1340void kvm_arch_sync_events(struct kvm *kvm)
1341{
1342}
1343
1340void kvm_arch_destroy_vm(struct kvm *kvm) 1344void kvm_arch_destroy_vm(struct kvm *kvm)
1341{ 1345{
1342 kvm_iommu_unmap_guest(kvm); 1346 kvm_iommu_unmap_guest(kvm);
diff --git a/arch/ia64/kvm/process.c b/arch/ia64/kvm/process.c
index 552d07724207..230eae482f32 100644
--- a/arch/ia64/kvm/process.c
+++ b/arch/ia64/kvm/process.c
@@ -455,13 +455,18 @@ fpswa_ret_t vmm_fp_emulate(int fp_fault, void *bundle, unsigned long *ipsr,
455 if (!vmm_fpswa_interface) 455 if (!vmm_fpswa_interface)
456 return (fpswa_ret_t) {-1, 0, 0, 0}; 456 return (fpswa_ret_t) {-1, 0, 0, 0};
457 457
458 /*
459 * Just let fpswa driver to use hardware fp registers.
460 * No fp register is valid in memory.
461 */
462 memset(&fp_state, 0, sizeof(fp_state_t)); 458 memset(&fp_state, 0, sizeof(fp_state_t));
463 459
464 /* 460 /*
461 * compute fp_state. only FP registers f6 - f11 are used by the
462 * vmm, so set those bits in the mask and set the low volatile
463 * pointer to point to these registers.
464 */
465 fp_state.bitmask_low64 = 0xfc0; /* bit6..bit11 */
466
467 fp_state.fp_state_low_volatile = (fp_state_low_volatile_t *) &regs->f6;
468
469 /*
465 * unsigned long (*EFI_FPSWA) ( 470 * unsigned long (*EFI_FPSWA) (
466 * unsigned long trap_type, 471 * unsigned long trap_type,
467 * void *Bundle, 472 * void *Bundle,
@@ -545,10 +550,6 @@ void reflect_interruption(u64 ifa, u64 isr, u64 iim,
545 status = vmm_handle_fpu_swa(0, regs, isr); 550 status = vmm_handle_fpu_swa(0, regs, isr);
546 if (!status) 551 if (!status)
547 return ; 552 return ;
548 else if (-EAGAIN == status) {
549 vcpu_decrement_iip(vcpu);
550 return ;
551 }
552 break; 553 break;
553 } 554 }
554 555
diff --git a/arch/ia64/mm/numa.c b/arch/ia64/mm/numa.c
index b73bf1838e57..3efea7d0a351 100644
--- a/arch/ia64/mm/numa.c
+++ b/arch/ia64/mm/numa.c
@@ -58,7 +58,7 @@ paddr_to_nid(unsigned long paddr)
58 * SPARSEMEM to allocate the SPARSEMEM sectionmap on the NUMA node where 58 * SPARSEMEM to allocate the SPARSEMEM sectionmap on the NUMA node where
59 * the section resides. 59 * the section resides.
60 */ 60 */
61int early_pfn_to_nid(unsigned long pfn) 61int __meminit __early_pfn_to_nid(unsigned long pfn)
62{ 62{
63 int i, section = pfn >> PFN_SECTION_SHIFT, ssec, esec; 63 int i, section = pfn >> PFN_SECTION_SHIFT, ssec, esec;
64 64
@@ -70,7 +70,7 @@ int early_pfn_to_nid(unsigned long pfn)
70 return node_memblk[i].nid; 70 return node_memblk[i].nid;
71 } 71 }
72 72
73 return 0; 73 return -1;
74} 74}
75 75
76#ifdef CONFIG_MEMORY_HOTPLUG 76#ifdef CONFIG_MEMORY_HOTPLUG
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index 211fcfd115f9..61f1af5c23c1 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -19,6 +19,7 @@
19#include <linux/ioport.h> 19#include <linux/ioport.h>
20#include <linux/slab.h> 20#include <linux/slab.h>
21#include <linux/spinlock.h> 21#include <linux/spinlock.h>
22#include <linux/bootmem.h>
22 23
23#include <asm/machvec.h> 24#include <asm/machvec.h>
24#include <asm/page.h> 25#include <asm/page.h>
@@ -748,6 +749,32 @@ static void __init set_pci_cacheline_size(void)
748 pci_cache_line_size = (1 << cci.pcci_line_size) / 4; 749 pci_cache_line_size = (1 << cci.pcci_line_size) / 4;
749} 750}
750 751
752u64 ia64_dma_get_required_mask(struct device *dev)
753{
754 u32 low_totalram = ((max_pfn - 1) << PAGE_SHIFT);
755 u32 high_totalram = ((max_pfn - 1) >> (32 - PAGE_SHIFT));
756 u64 mask;
757
758 if (!high_totalram) {
759 /* convert to mask just covering totalram */
760 low_totalram = (1 << (fls(low_totalram) - 1));
761 low_totalram += low_totalram - 1;
762 mask = low_totalram;
763 } else {
764 high_totalram = (1 << (fls(high_totalram) - 1));
765 high_totalram += high_totalram - 1;
766 mask = (((u64)high_totalram) << 32) + 0xffffffff;
767 }
768 return mask;
769}
770EXPORT_SYMBOL_GPL(ia64_dma_get_required_mask);
771
772u64 dma_get_required_mask(struct device *dev)
773{
774 return platform_dma_get_required_mask(dev);
775}
776EXPORT_SYMBOL_GPL(dma_get_required_mask);
777
751static int __init pcibios_init(void) 778static int __init pcibios_init(void)
752{ 779{
753 set_pci_cacheline_size(); 780 set_pci_cacheline_size();
diff --git a/arch/ia64/sn/kernel/bte.c b/arch/ia64/sn/kernel/bte.c
index 9456d4034024..c6d6b62db66c 100644
--- a/arch/ia64/sn/kernel/bte.c
+++ b/arch/ia64/sn/kernel/bte.c
@@ -97,9 +97,10 @@ bte_result_t bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
97 return BTE_SUCCESS; 97 return BTE_SUCCESS;
98 } 98 }
99 99
100 BUG_ON((len & L1_CACHE_MASK) || 100 BUG_ON(len & L1_CACHE_MASK);
101 (src & L1_CACHE_MASK) || (dest & L1_CACHE_MASK)); 101 BUG_ON(src & L1_CACHE_MASK);
102 BUG_ON(!(len < ((BTE_LEN_MASK + 1) << L1_CACHE_SHIFT))); 102 BUG_ON(dest & L1_CACHE_MASK);
103 BUG_ON(len > BTE_MAX_XFER);
103 104
104 /* 105 /*
105 * Start with interface corresponding to cpu number 106 * Start with interface corresponding to cpu number
diff --git a/arch/ia64/sn/kernel/io_acpi_init.c b/arch/ia64/sn/kernel/io_acpi_init.c
index c5a214026a77..d0223abbbbd4 100644
--- a/arch/ia64/sn/kernel/io_acpi_init.c
+++ b/arch/ia64/sn/kernel/io_acpi_init.c
@@ -443,7 +443,7 @@ sn_acpi_slot_fixup(struct pci_dev *dev)
443 size = pci_resource_len(dev, PCI_ROM_RESOURCE); 443 size = pci_resource_len(dev, PCI_ROM_RESOURCE);
444 addr = ioremap(pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE], 444 addr = ioremap(pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE],
445 size); 445 size);
446 image_size = pci_get_rom_size(addr, size); 446 image_size = pci_get_rom_size(dev, addr, size);
447 dev->resource[PCI_ROM_RESOURCE].start = (unsigned long) addr; 447 dev->resource[PCI_ROM_RESOURCE].start = (unsigned long) addr;
448 dev->resource[PCI_ROM_RESOURCE].end = 448 dev->resource[PCI_ROM_RESOURCE].end =
449 (unsigned long) addr + image_size - 1; 449 (unsigned long) addr + image_size - 1;
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c
index 4e1801bad83a..e2eb2da60f96 100644
--- a/arch/ia64/sn/kernel/io_init.c
+++ b/arch/ia64/sn/kernel/io_init.c
@@ -269,7 +269,7 @@ sn_io_slot_fixup(struct pci_dev *dev)
269 269
270 rom = ioremap(pci_resource_start(dev, PCI_ROM_RESOURCE), 270 rom = ioremap(pci_resource_start(dev, PCI_ROM_RESOURCE),
271 size + 1); 271 size + 1);
272 image_size = pci_get_rom_size(rom, size + 1); 272 image_size = pci_get_rom_size(dev, rom, size + 1);
273 dev->resource[PCI_ROM_RESOURCE].end = 273 dev->resource[PCI_ROM_RESOURCE].end =
274 dev->resource[PCI_ROM_RESOURCE].start + 274 dev->resource[PCI_ROM_RESOURCE].start +
275 image_size - 1; 275 image_size - 1;
diff --git a/arch/ia64/sn/kernel/msi_sn.c b/arch/ia64/sn/kernel/msi_sn.c
index ca553b0429ce..81e428943d73 100644
--- a/arch/ia64/sn/kernel/msi_sn.c
+++ b/arch/ia64/sn/kernel/msi_sn.c
@@ -205,7 +205,7 @@ static void sn_set_msi_irq_affinity(unsigned int irq,
205 msg.address_lo = (u32)(bus_addr & 0x00000000ffffffff); 205 msg.address_lo = (u32)(bus_addr & 0x00000000ffffffff);
206 206
207 write_msi_msg(irq, &msg); 207 write_msi_msg(irq, &msg);
208 irq_desc[irq].affinity = *cpu_mask; 208 cpumask_copy(irq_desc[irq].affinity, cpu_mask);
209} 209}
210#endif /* CONFIG_SMP */ 210#endif /* CONFIG_SMP */
211 211
diff --git a/arch/ia64/sn/pci/pci_dma.c b/arch/ia64/sn/pci/pci_dma.c
index 53ebb6484495..863f5017baae 100644
--- a/arch/ia64/sn/pci/pci_dma.c
+++ b/arch/ia64/sn/pci/pci_dma.c
@@ -356,6 +356,12 @@ int sn_dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
356} 356}
357EXPORT_SYMBOL(sn_dma_mapping_error); 357EXPORT_SYMBOL(sn_dma_mapping_error);
358 358
359u64 sn_dma_get_required_mask(struct device *dev)
360{
361 return DMA_64BIT_MASK;
362}
363EXPORT_SYMBOL_GPL(sn_dma_get_required_mask);
364
359char *sn_pci_get_legacy_mem(struct pci_bus *bus) 365char *sn_pci_get_legacy_mem(struct pci_bus *bus)
360{ 366{
361 if (!SN_PCIBUS_BUSSOFT(bus)) 367 if (!SN_PCIBUS_BUSSOFT(bus))
diff --git a/arch/ia64/xen/Kconfig b/arch/ia64/xen/Kconfig
index f1683a20275b..515e0826803a 100644
--- a/arch/ia64/xen/Kconfig
+++ b/arch/ia64/xen/Kconfig
@@ -8,8 +8,7 @@ config XEN
8 depends on PARAVIRT && MCKINLEY && IA64_PAGE_SIZE_16KB && EXPERIMENTAL 8 depends on PARAVIRT && MCKINLEY && IA64_PAGE_SIZE_16KB && EXPERIMENTAL
9 select XEN_XENCOMM 9 select XEN_XENCOMM
10 select NO_IDLE_HZ 10 select NO_IDLE_HZ
11 11 # followings are required to save/restore.
12 # those are required to save/restore.
13 select ARCH_SUSPEND_POSSIBLE 12 select ARCH_SUSPEND_POSSIBLE
14 select SUSPEND 13 select SUSPEND
15 select PM_SLEEP 14 select PM_SLEEP
diff --git a/arch/ia64/xen/time.c b/arch/ia64/xen/time.c
index d15a94c330fb..68d6204c3f16 100644
--- a/arch/ia64/xen/time.c
+++ b/arch/ia64/xen/time.c
@@ -129,8 +129,8 @@ consider_steal_time(unsigned long new_itm)
129 blocked = stolentick; 129 blocked = stolentick;
130 130
131 if (stolen > 0 || blocked > 0) { 131 if (stolen > 0 || blocked > 0) {
132 account_steal_time(NULL, jiffies_to_cputime(stolen)); 132 account_steal_ticks(stolen);
133 account_steal_time(idle_task(cpu), jiffies_to_cputime(blocked)); 133 account_idle_ticks(blocked);
134 run_local_timers(); 134 run_local_timers();
135 135
136 if (rcu_pending(cpu)) 136 if (rcu_pending(cpu))
diff --git a/arch/ia64/xen/xen_pv_ops.c b/arch/ia64/xen/xen_pv_ops.c
index 04cd12350455..936cff3c96e0 100644
--- a/arch/ia64/xen/xen_pv_ops.c
+++ b/arch/ia64/xen/xen_pv_ops.c
@@ -153,7 +153,7 @@ xen_post_smp_prepare_boot_cpu(void)
153 xen_setup_vcpu_info_placement(); 153 xen_setup_vcpu_info_placement();
154} 154}
155 155
156static const struct pv_init_ops xen_init_ops __initdata = { 156static const struct pv_init_ops xen_init_ops __initconst = {
157 .banner = xen_banner, 157 .banner = xen_banner,
158 158
159 .reserve_memory = xen_reserve_memory, 159 .reserve_memory = xen_reserve_memory,
@@ -337,7 +337,7 @@ xen_iosapic_write(char __iomem *iosapic, unsigned int reg, u32 val)
337 HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op); 337 HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op);
338} 338}
339 339
340static const struct pv_iosapic_ops xen_iosapic_ops __initdata = { 340static const struct pv_iosapic_ops xen_iosapic_ops __initconst = {
341 .pcat_compat_init = xen_pcat_compat_init, 341 .pcat_compat_init = xen_pcat_compat_init,
342 .__get_irq_chip = xen_iosapic_get_irq_chip, 342 .__get_irq_chip = xen_iosapic_get_irq_chip,
343 343
diff --git a/arch/m32r/configs/m32104ut_defconfig b/arch/m32r/configs/m32104ut_defconfig
index 9b5af6cd2e0b..6f54b00b3838 100644
--- a/arch/m32r/configs/m32104ut_defconfig
+++ b/arch/m32r/configs/m32104ut_defconfig
@@ -621,7 +621,7 @@ CONFIG_I2C_ELEKTOR=m
621# CONFIG_SENSORS_DS1337 is not set 621# CONFIG_SENSORS_DS1337 is not set
622# CONFIG_SENSORS_DS1374 is not set 622# CONFIG_SENSORS_DS1374 is not set
623# CONFIG_DS1682 is not set 623# CONFIG_DS1682 is not set
624# CONFIG_SENSORS_EEPROM is not set 624# CONFIG_EEPROM_LEGACY is not set
625# CONFIG_SENSORS_PCF8574 is not set 625# CONFIG_SENSORS_PCF8574 is not set
626# CONFIG_SENSORS_PCA9539 is not set 626# CONFIG_SENSORS_PCA9539 is not set
627# CONFIG_SENSORS_PCF8591 is not set 627# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/m68k/amiga/amiints.c b/arch/m68k/amiga/amiints.c
index 907a5533c845..c5b5212cc3f9 100644
--- a/arch/m68k/amiga/amiints.c
+++ b/arch/m68k/amiga/amiints.c
@@ -72,10 +72,14 @@ static struct irq_controller amiga_irq_controller = {
72 72
73void __init amiga_init_IRQ(void) 73void __init amiga_init_IRQ(void)
74{ 74{
75 request_irq(IRQ_AUTO_1, ami_int1, 0, "int1", NULL); 75 if (request_irq(IRQ_AUTO_1, ami_int1, 0, "int1", NULL))
76 request_irq(IRQ_AUTO_3, ami_int3, 0, "int3", NULL); 76 pr_err("Couldn't register int%d\n", 1);
77 request_irq(IRQ_AUTO_4, ami_int4, 0, "int4", NULL); 77 if (request_irq(IRQ_AUTO_3, ami_int3, 0, "int3", NULL))
78 request_irq(IRQ_AUTO_5, ami_int5, 0, "int5", NULL); 78 pr_err("Couldn't register int%d\n", 3);
79 if (request_irq(IRQ_AUTO_4, ami_int4, 0, "int4", NULL))
80 pr_err("Couldn't register int%d\n", 4);
81 if (request_irq(IRQ_AUTO_5, ami_int5, 0, "int5", NULL))
82 pr_err("Couldn't register int%d\n", 5);
79 83
80 m68k_setup_irq_controller(&amiga_irq_controller, IRQ_USER, AMI_STD_IRQS); 84 m68k_setup_irq_controller(&amiga_irq_controller, IRQ_USER, AMI_STD_IRQS);
81 85
diff --git a/arch/m68k/amiga/cia.c b/arch/m68k/amiga/cia.c
index 343fab49bd9a..ecd0f7ca6f0e 100644
--- a/arch/m68k/amiga/cia.c
+++ b/arch/m68k/amiga/cia.c
@@ -176,5 +176,7 @@ void __init cia_init_IRQ(struct ciabase *base)
176 /* override auto int and install CIA handler */ 176 /* override auto int and install CIA handler */
177 m68k_setup_irq_controller(&auto_irq_controller, base->handler_irq, 1); 177 m68k_setup_irq_controller(&auto_irq_controller, base->handler_irq, 1);
178 m68k_irq_startup(base->handler_irq); 178 m68k_irq_startup(base->handler_irq);
179 request_irq(base->handler_irq, cia_handler, IRQF_SHARED, base->name, base); 179 if (request_irq(base->handler_irq, cia_handler, IRQF_SHARED,
180 base->name, base))
181 pr_err("Couldn't register %s interrupt\n", base->name);
180} 182}
diff --git a/arch/m68k/amiga/config.c b/arch/m68k/amiga/config.c
index ab9862c3a136..6e562751ad51 100644
--- a/arch/m68k/amiga/config.c
+++ b/arch/m68k/amiga/config.c
@@ -493,7 +493,8 @@ static void __init amiga_sched_init(irq_handler_t timer_routine)
493 * Please don't change this to use ciaa, as it interferes with the 493 * Please don't change this to use ciaa, as it interferes with the
494 * SCSI code. We'll have to take a look at this later 494 * SCSI code. We'll have to take a look at this later
495 */ 495 */
496 request_irq(IRQ_AMIGA_CIAB_TA, timer_routine, 0, "timer", NULL); 496 if (request_irq(IRQ_AMIGA_CIAB_TA, timer_routine, 0, "timer", NULL))
497 pr_err("Couldn't register timer interrupt\n");
497 /* start timer */ 498 /* start timer */
498 ciab.cra |= 0x11; 499 ciab.cra |= 0x11;
499} 500}
diff --git a/arch/m68k/apollo/config.c b/arch/m68k/apollo/config.c
index 78df98f2029a..8d3eafab1ffe 100644
--- a/arch/m68k/apollo/config.c
+++ b/arch/m68k/apollo/config.c
@@ -31,10 +31,6 @@ extern unsigned long dn_gettimeoffset(void);
31extern int dn_dummy_hwclk(int, struct rtc_time *); 31extern int dn_dummy_hwclk(int, struct rtc_time *);
32extern int dn_dummy_set_clock_mmss(unsigned long); 32extern int dn_dummy_set_clock_mmss(unsigned long);
33extern void dn_dummy_reset(void); 33extern void dn_dummy_reset(void);
34extern void dn_dummy_waitbut(void);
35extern struct fb_info *dn_fb_init(long *);
36extern void dn_dummy_debug_init(void);
37extern irqreturn_t dn_process_int(int irq, struct pt_regs *fp);
38#ifdef CONFIG_HEARTBEAT 34#ifdef CONFIG_HEARTBEAT
39static void dn_heartbeat(int on); 35static void dn_heartbeat(int on);
40#endif 36#endif
@@ -204,7 +200,8 @@ void dn_sched_init(irq_handler_t timer_routine)
204 printk("*(0x10803) %02x\n",*(volatile unsigned char *)(timer+0x3)); 200 printk("*(0x10803) %02x\n",*(volatile unsigned char *)(timer+0x3));
205#endif 201#endif
206 202
207 request_irq(IRQ_APOLLO, dn_timer_int, 0, "time", timer_routine); 203 if (request_irq(IRQ_APOLLO, dn_timer_int, 0, "time", timer_routine))
204 pr_err("Couldn't register timer interrupt\n");
208} 205}
209 206
210unsigned long dn_gettimeoffset(void) { 207unsigned long dn_gettimeoffset(void) {
diff --git a/arch/m68k/atari/ataints.c b/arch/m68k/atari/ataints.c
index dba4afabb444..39478dd08e67 100644
--- a/arch/m68k/atari/ataints.c
+++ b/arch/m68k/atari/ataints.c
@@ -187,8 +187,8 @@ __asm__ (__ALIGN_STR "\n" \
187" jbra ret_from_interrupt\n" \ 187" jbra ret_from_interrupt\n" \
188 : : "i" (&kstat_cpu(0).irqs[n+8]), "i" (&irq_handler[n+8]), \ 188 : : "i" (&kstat_cpu(0).irqs[n+8]), "i" (&irq_handler[n+8]), \
189 "n" (PT_OFF_SR), "n" (n), \ 189 "n" (PT_OFF_SR), "n" (n), \
190 "i" (n & 8 ? (n & 16 ? &tt_mfp.int_mk_a : &mfp.int_mk_a) \ 190 "i" (n & 8 ? (n & 16 ? &tt_mfp.int_mk_a : &st_mfp.int_mk_a) \
191 : (n & 16 ? &tt_mfp.int_mk_b : &mfp.int_mk_b)), \ 191 : (n & 16 ? &tt_mfp.int_mk_b : &st_mfp.int_mk_b)), \
192 "m" (preempt_count()), "di" (HARDIRQ_OFFSET) \ 192 "m" (preempt_count()), "di" (HARDIRQ_OFFSET) \
193); \ 193); \
194 for (;;); /* fake noreturn */ \ 194 for (;;); /* fake noreturn */ \
@@ -366,14 +366,14 @@ void __init atari_init_IRQ(void)
366 /* Initialize the MFP(s) */ 366 /* Initialize the MFP(s) */
367 367
368#ifdef ATARI_USE_SOFTWARE_EOI 368#ifdef ATARI_USE_SOFTWARE_EOI
369 mfp.vec_adr = 0x48; /* Software EOI-Mode */ 369 st_mfp.vec_adr = 0x48; /* Software EOI-Mode */
370#else 370#else
371 mfp.vec_adr = 0x40; /* Automatic EOI-Mode */ 371 st_mfp.vec_adr = 0x40; /* Automatic EOI-Mode */
372#endif 372#endif
373 mfp.int_en_a = 0x00; /* turn off MFP-Ints */ 373 st_mfp.int_en_a = 0x00; /* turn off MFP-Ints */
374 mfp.int_en_b = 0x00; 374 st_mfp.int_en_b = 0x00;
375 mfp.int_mk_a = 0xff; /* no Masking */ 375 st_mfp.int_mk_a = 0xff; /* no Masking */
376 mfp.int_mk_b = 0xff; 376 st_mfp.int_mk_b = 0xff;
377 377
378 if (ATARIHW_PRESENT(TT_MFP)) { 378 if (ATARIHW_PRESENT(TT_MFP)) {
379#ifdef ATARI_USE_SOFTWARE_EOI 379#ifdef ATARI_USE_SOFTWARE_EOI
diff --git a/arch/m68k/atari/atakeyb.c b/arch/m68k/atari/atakeyb.c
index c038b7c7eff0..4add96d13b19 100644
--- a/arch/m68k/atari/atakeyb.c
+++ b/arch/m68k/atari/atakeyb.c
@@ -33,7 +33,6 @@
33#include <asm/atari_joystick.h> 33#include <asm/atari_joystick.h>
34#include <asm/irq.h> 34#include <asm/irq.h>
35 35
36extern unsigned int keymap_count;
37 36
38/* Hook for MIDI serial driver */ 37/* Hook for MIDI serial driver */
39void (*atari_MIDI_interrupt_hook) (void); 38void (*atari_MIDI_interrupt_hook) (void);
@@ -567,14 +566,19 @@ static int atari_keyb_done = 0;
567 566
568int atari_keyb_init(void) 567int atari_keyb_init(void)
569{ 568{
569 int error;
570
570 if (atari_keyb_done) 571 if (atari_keyb_done)
571 return 0; 572 return 0;
572 573
573 kb_state.state = KEYBOARD; 574 kb_state.state = KEYBOARD;
574 kb_state.len = 0; 575 kb_state.len = 0;
575 576
576 request_irq(IRQ_MFP_ACIA, atari_keyboard_interrupt, IRQ_TYPE_SLOW, 577 error = request_irq(IRQ_MFP_ACIA, atari_keyboard_interrupt,
577 "keyboard/mouse/MIDI", atari_keyboard_interrupt); 578 IRQ_TYPE_SLOW, "keyboard/mouse/MIDI",
579 atari_keyboard_interrupt);
580 if (error)
581 return error;
578 582
579 atari_turnoff_irq(IRQ_MFP_ACIA); 583 atari_turnoff_irq(IRQ_MFP_ACIA);
580 do { 584 do {
@@ -605,10 +609,10 @@ int atari_keyb_init(void)
605 ACIA_RHTID : 0); 609 ACIA_RHTID : 0);
606 610
607 /* make sure the interrupt line is up */ 611 /* make sure the interrupt line is up */
608 } while ((mfp.par_dt_reg & 0x10) == 0); 612 } while ((st_mfp.par_dt_reg & 0x10) == 0);
609 613
610 /* enable ACIA Interrupts */ 614 /* enable ACIA Interrupts */
611 mfp.active_edge &= ~0x10; 615 st_mfp.active_edge &= ~0x10;
612 atari_turnon_irq(IRQ_MFP_ACIA); 616 atari_turnon_irq(IRQ_MFP_ACIA);
613 617
614 ikbd_self_test = 1; 618 ikbd_self_test = 1;
diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
index 49c28cdbea5c..ae2d96e5d618 100644
--- a/arch/m68k/atari/config.c
+++ b/arch/m68k/atari/config.c
@@ -258,7 +258,7 @@ void __init config_atari(void)
258 printk("STND_SHIFTER "); 258 printk("STND_SHIFTER ");
259 } 259 }
260 } 260 }
261 if (hwreg_present(&mfp.par_dt_reg)) { 261 if (hwreg_present(&st_mfp.par_dt_reg)) {
262 ATARIHW_SET(ST_MFP); 262 ATARIHW_SET(ST_MFP);
263 printk("ST_MFP "); 263 printk("ST_MFP ");
264 } 264 }
diff --git a/arch/m68k/atari/debug.c b/arch/m68k/atari/debug.c
index 702b15ccfab7..28efdc33c1ae 100644
--- a/arch/m68k/atari/debug.c
+++ b/arch/m68k/atari/debug.c
@@ -34,9 +34,9 @@ static struct console atari_console_driver = {
34 34
35static inline void ata_mfp_out(char c) 35static inline void ata_mfp_out(char c)
36{ 36{
37 while (!(mfp.trn_stat & 0x80)) /* wait for tx buf empty */ 37 while (!(st_mfp.trn_stat & 0x80)) /* wait for tx buf empty */
38 barrier(); 38 barrier();
39 mfp.usart_dta = c; 39 st_mfp.usart_dta = c;
40} 40}
41 41
42static void atari_mfp_console_write(struct console *co, const char *str, 42static void atari_mfp_console_write(struct console *co, const char *str,
@@ -91,7 +91,7 @@ static int ata_par_out(char c)
91 /* This a some-seconds timeout in case no printer is connected */ 91 /* This a some-seconds timeout in case no printer is connected */
92 unsigned long i = loops_per_jiffy > 1 ? loops_per_jiffy : 10000000/HZ; 92 unsigned long i = loops_per_jiffy > 1 ? loops_per_jiffy : 10000000/HZ;
93 93
94 while ((mfp.par_dt_reg & 1) && --i) /* wait for BUSY == L */ 94 while ((st_mfp.par_dt_reg & 1) && --i) /* wait for BUSY == L */
95 ; 95 ;
96 if (!i) 96 if (!i)
97 return 0; 97 return 0;
@@ -131,9 +131,9 @@ static void atari_par_console_write(struct console *co, const char *str,
131#if 0 131#if 0
132int atari_mfp_console_wait_key(struct console *co) 132int atari_mfp_console_wait_key(struct console *co)
133{ 133{
134 while (!(mfp.rcv_stat & 0x80)) /* wait for rx buf filled */ 134 while (!(st_mfp.rcv_stat & 0x80)) /* wait for rx buf filled */
135 barrier(); 135 barrier();
136 return mfp.usart_dta; 136 return st_mfp.usart_dta;
137} 137}
138 138
139int atari_scc_console_wait_key(struct console *co) 139int atari_scc_console_wait_key(struct console *co)
@@ -175,12 +175,12 @@ static void __init atari_init_mfp_port(int cflag)
175 baud = B9600; /* use default 9600bps for non-implemented rates */ 175 baud = B9600; /* use default 9600bps for non-implemented rates */
176 baud -= B1200; /* baud_table[] starts at 1200bps */ 176 baud -= B1200; /* baud_table[] starts at 1200bps */
177 177
178 mfp.trn_stat &= ~0x01; /* disable TX */ 178 st_mfp.trn_stat &= ~0x01; /* disable TX */
179 mfp.usart_ctr = parity | csize | 0x88; /* 1:16 clk mode, 1 stop bit */ 179 st_mfp.usart_ctr = parity | csize | 0x88; /* 1:16 clk mode, 1 stop bit */
180 mfp.tim_ct_cd &= 0x70; /* stop timer D */ 180 st_mfp.tim_ct_cd &= 0x70; /* stop timer D */
181 mfp.tim_dt_d = baud_table[baud]; 181 st_mfp.tim_dt_d = baud_table[baud];
182 mfp.tim_ct_cd |= 0x01; /* start timer D, 1:4 */ 182 st_mfp.tim_ct_cd |= 0x01; /* start timer D, 1:4 */
183 mfp.trn_stat |= 0x01; /* enable TX */ 183 st_mfp.trn_stat |= 0x01; /* enable TX */
184} 184}
185 185
186#define SCC_WRITE(reg, val) \ 186#define SCC_WRITE(reg, val) \
diff --git a/arch/m68k/atari/stdma.c b/arch/m68k/atari/stdma.c
index d1bd029a34ac..604329fafbb8 100644
--- a/arch/m68k/atari/stdma.c
+++ b/arch/m68k/atari/stdma.c
@@ -179,8 +179,9 @@ EXPORT_SYMBOL(stdma_islocked);
179void __init stdma_init(void) 179void __init stdma_init(void)
180{ 180{
181 stdma_isr = NULL; 181 stdma_isr = NULL;
182 request_irq(IRQ_MFP_FDC, stdma_int, IRQ_TYPE_SLOW | IRQF_SHARED, 182 if (request_irq(IRQ_MFP_FDC, stdma_int, IRQ_TYPE_SLOW | IRQF_SHARED,
183 "ST-DMA: floppy/ACSI/IDE/Falcon-SCSI", stdma_int); 183 "ST-DMA: floppy/ACSI/IDE/Falcon-SCSI", stdma_int))
184 pr_err("Couldn't register ST-DMA interrupt\n");
184} 185}
185 186
186 187
diff --git a/arch/m68k/atari/time.c b/arch/m68k/atari/time.c
index 1edde27fa32d..a0531f34c617 100644
--- a/arch/m68k/atari/time.c
+++ b/arch/m68k/atari/time.c
@@ -27,12 +27,13 @@ void __init
27atari_sched_init(irq_handler_t timer_routine) 27atari_sched_init(irq_handler_t timer_routine)
28{ 28{
29 /* set Timer C data Register */ 29 /* set Timer C data Register */
30 mfp.tim_dt_c = INT_TICKS; 30 st_mfp.tim_dt_c = INT_TICKS;
31 /* start timer C, div = 1:100 */ 31 /* start timer C, div = 1:100 */
32 mfp.tim_ct_cd = (mfp.tim_ct_cd & 15) | 0x60; 32 st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 15) | 0x60;
33 /* install interrupt service routine for MFP Timer C */ 33 /* install interrupt service routine for MFP Timer C */
34 request_irq(IRQ_MFP_TIMC, timer_routine, IRQ_TYPE_SLOW, 34 if (request_irq(IRQ_MFP_TIMC, timer_routine, IRQ_TYPE_SLOW,
35 "timer", timer_routine); 35 "timer", timer_routine))
36 pr_err("Couldn't register timer interrupt\n");
36} 37}
37 38
38/* ++andreas: gettimeoffset fixed to check for pending interrupt */ 39/* ++andreas: gettimeoffset fixed to check for pending interrupt */
@@ -45,11 +46,11 @@ unsigned long atari_gettimeoffset (void)
45 unsigned long ticks, offset = 0; 46 unsigned long ticks, offset = 0;
46 47
47 /* read MFP timer C current value */ 48 /* read MFP timer C current value */
48 ticks = mfp.tim_dt_c; 49 ticks = st_mfp.tim_dt_c;
49 /* The probability of underflow is less than 2% */ 50 /* The probability of underflow is less than 2% */
50 if (ticks > INT_TICKS - INT_TICKS / 50) 51 if (ticks > INT_TICKS - INT_TICKS / 50)
51 /* Check for pending timer interrupt */ 52 /* Check for pending timer interrupt */
52 if (mfp.int_pn_b & (1 << 5)) 53 if (st_mfp.int_pn_b & (1 << 5))
53 offset = TICK_SIZE; 54 offset = TICK_SIZE;
54 55
55 ticks = INT_TICKS - ticks; 56 ticks = INT_TICKS - ticks;
diff --git a/arch/m68k/bvme6000/config.c b/arch/m68k/bvme6000/config.c
index c072595928c0..9fe6fefb5e14 100644
--- a/arch/m68k/bvme6000/config.c
+++ b/arch/m68k/bvme6000/config.c
@@ -43,7 +43,6 @@ extern unsigned long bvme6000_gettimeoffset (void);
43extern int bvme6000_hwclk (int, struct rtc_time *); 43extern int bvme6000_hwclk (int, struct rtc_time *);
44extern int bvme6000_set_clock_mmss (unsigned long); 44extern int bvme6000_set_clock_mmss (unsigned long);
45extern void bvme6000_reset (void); 45extern void bvme6000_reset (void);
46extern void bvme6000_waitbut(void);
47void bvme6000_set_vectors (void); 46void bvme6000_set_vectors (void);
48 47
49/* Save tick handler routine pointer, will point to do_timer() in 48/* Save tick handler routine pointer, will point to do_timer() in
diff --git a/arch/m68k/hp300/time.c b/arch/m68k/hp300/time.c
index dd7c8a2583d3..f6312c7d8727 100644
--- a/arch/m68k/hp300/time.c
+++ b/arch/m68k/hp300/time.c
@@ -70,7 +70,8 @@ void __init hp300_sched_init(irq_handler_t vector)
70 70
71 asm volatile(" movpw %0,%1@(5)" : : "d" (INTVAL), "a" (CLOCKBASE)); 71 asm volatile(" movpw %0,%1@(5)" : : "d" (INTVAL), "a" (CLOCKBASE));
72 72
73 request_irq(IRQ_AUTO_6, hp300_tick, IRQ_FLG_STD, "timer tick", vector); 73 if (request_irq(IRQ_AUTO_6, hp300_tick, IRQ_FLG_STD, "timer tick", vector))
74 pr_err("Couldn't register timer interrupt\n");
74 75
75 out_8(CLOCKBASE + CLKCR2, 0x1); /* select CR1 */ 76 out_8(CLOCKBASE + CLKCR2, 0x1); /* select CR1 */
76 out_8(CLOCKBASE + CLKCR1, 0x40); /* enable irq */ 77 out_8(CLOCKBASE + CLKCR1, 0x40); /* enable irq */
diff --git a/arch/m68knommu/include/asm/Kbuild b/arch/m68k/include/asm/Kbuild
index 58c02a454130..1a922fad76f7 100644
--- a/arch/m68knommu/include/asm/Kbuild
+++ b/arch/m68k/include/asm/Kbuild
@@ -1,3 +1,2 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2header-y += cachectl.h
3unifdef-y += swab.h
diff --git a/arch/m68knommu/include/asm/MC68328.h b/arch/m68k/include/asm/MC68328.h
index a337e56d09bf..a337e56d09bf 100644
--- a/arch/m68knommu/include/asm/MC68328.h
+++ b/arch/m68k/include/asm/MC68328.h
diff --git a/arch/m68knommu/include/asm/MC68332.h b/arch/m68k/include/asm/MC68332.h
index 6bb8f02685a2..6bb8f02685a2 100644
--- a/arch/m68knommu/include/asm/MC68332.h
+++ b/arch/m68k/include/asm/MC68332.h
diff --git a/arch/m68knommu/include/asm/MC68EZ328.h b/arch/m68k/include/asm/MC68EZ328.h
index 69b7f9139e5e..69b7f9139e5e 100644
--- a/arch/m68knommu/include/asm/MC68EZ328.h
+++ b/arch/m68k/include/asm/MC68EZ328.h
diff --git a/arch/m68knommu/include/asm/MC68VZ328.h b/arch/m68k/include/asm/MC68VZ328.h
index 2b9bf626a0a5..2b9bf626a0a5 100644
--- a/arch/m68knommu/include/asm/MC68VZ328.h
+++ b/arch/m68k/include/asm/MC68VZ328.h
diff --git a/arch/m68k/include/asm/a.out-core.h b/arch/m68k/include/asm/a.out-core.h
new file mode 100644
index 000000000000..f6bfc1d63ff6
--- /dev/null
+++ b/arch/m68k/include/asm/a.out-core.h
@@ -0,0 +1,67 @@
1/* a.out coredump register dumper
2 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */
11
12#ifndef _ASM_A_OUT_CORE_H
13#define _ASM_A_OUT_CORE_H
14
15#ifdef __KERNEL__
16
17#include <linux/user.h>
18#include <linux/elfcore.h>
19
20/*
21 * fill in the user structure for an a.out core dump
22 */
23static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump)
24{
25 struct switch_stack *sw;
26
27/* changed the size calculations - should hopefully work better. lbt */
28 dump->magic = CMAGIC;
29 dump->start_code = 0;
30 dump->start_stack = rdusp() & ~(PAGE_SIZE - 1);
31 dump->u_tsize = ((unsigned long) current->mm->end_code) >> PAGE_SHIFT;
32 dump->u_dsize = ((unsigned long) (current->mm->brk +
33 (PAGE_SIZE-1))) >> PAGE_SHIFT;
34 dump->u_dsize -= dump->u_tsize;
35 dump->u_ssize = 0;
36
37 if (dump->start_stack < TASK_SIZE)
38 dump->u_ssize = ((unsigned long) (TASK_SIZE - dump->start_stack)) >> PAGE_SHIFT;
39
40 dump->u_ar0 = offsetof(struct user, regs);
41 sw = ((struct switch_stack *)regs) - 1;
42 dump->regs.d1 = regs->d1;
43 dump->regs.d2 = regs->d2;
44 dump->regs.d3 = regs->d3;
45 dump->regs.d4 = regs->d4;
46 dump->regs.d5 = regs->d5;
47 dump->regs.d6 = sw->d6;
48 dump->regs.d7 = sw->d7;
49 dump->regs.a0 = regs->a0;
50 dump->regs.a1 = regs->a1;
51 dump->regs.a2 = regs->a2;
52 dump->regs.a3 = sw->a3;
53 dump->regs.a4 = sw->a4;
54 dump->regs.a5 = sw->a5;
55 dump->regs.a6 = sw->a6;
56 dump->regs.d0 = regs->d0;
57 dump->regs.orig_d0 = regs->orig_d0;
58 dump->regs.stkadj = regs->stkadj;
59 dump->regs.sr = regs->sr;
60 dump->regs.pc = regs->pc;
61 dump->regs.fmtvec = (regs->format << 12) | regs->vector;
62 /* dump floating point stuff */
63 dump->u_fpvalid = dump_fpu (regs, &dump->m68kfp);
64}
65
66#endif /* __KERNEL__ */
67#endif /* _ASM_A_OUT_CORE_H */
diff --git a/arch/m68k/include/asm/a.out.h b/arch/m68k/include/asm/a.out.h
new file mode 100644
index 000000000000..3885fe43432a
--- /dev/null
+++ b/arch/m68k/include/asm/a.out.h
@@ -0,0 +1,20 @@
1#ifndef __M68K_A_OUT_H__
2#define __M68K_A_OUT_H__
3
4struct exec
5{
6 unsigned long a_info; /* Use macros N_MAGIC, etc for access */
7 unsigned a_text; /* length of text, in bytes */
8 unsigned a_data; /* length of data, in bytes */
9 unsigned a_bss; /* length of uninitialized data area for file, in bytes */
10 unsigned a_syms; /* length of symbol table data in file, in bytes */
11 unsigned a_entry; /* start address */
12 unsigned a_trsize; /* length of relocation info for text, in bytes */
13 unsigned a_drsize; /* length of relocation info for data, in bytes */
14};
15
16#define N_TRSIZE(a) ((a).a_trsize)
17#define N_DRSIZE(a) ((a).a_drsize)
18#define N_SYMSIZE(a) ((a).a_syms)
19
20#endif /* __M68K_A_OUT_H__ */
diff --git a/arch/m68k/include/asm/adb_iop.h b/arch/m68k/include/asm/adb_iop.h
new file mode 100644
index 000000000000..8a48e56f2d62
--- /dev/null
+++ b/arch/m68k/include/asm/adb_iop.h
@@ -0,0 +1,44 @@
1/*
2 * ADB through the IOP
3 * Written by Joshua M. Thompson
4 */
5
6/* IOP number and channel number for ADB */
7
8#define ADB_IOP IOP_NUM_ISM
9#define ADB_CHAN 2
10
11/* From the A/UX headers...maybe important, maybe not */
12
13#define ADB_IOP_LISTEN 0x01
14#define ADB_IOP_TALK 0x02
15#define ADB_IOP_EXISTS 0x04
16#define ADB_IOP_FLUSH 0x08
17#define ADB_IOP_RESET 0x10
18#define ADB_IOP_INT 0x20
19#define ADB_IOP_POLL 0x40
20#define ADB_IOP_UNINT 0x80
21
22#define AIF_RESET 0x00
23#define AIF_FLUSH 0x01
24#define AIF_LISTEN 0x08
25#define AIF_TALK 0x0C
26
27/* Flag bits in struct adb_iopmsg */
28
29#define ADB_IOP_EXPLICIT 0x80 /* nonzero if explicit command */
30#define ADB_IOP_AUTOPOLL 0x40 /* auto/SRQ polling enabled */
31#define ADB_IOP_SRQ 0x04 /* SRQ detected */
32#define ADB_IOP_TIMEOUT 0x02 /* nonzero if timeout */
33
34#ifndef __ASSEMBLY__
35
36struct adb_iopmsg {
37 __u8 flags; /* ADB flags */
38 __u8 count; /* no. of data bytes */
39 __u8 cmd; /* ADB command */
40 __u8 data[8]; /* ADB data */
41 __u8 spare[21]; /* spare */
42};
43
44#endif /* __ASSEMBLY__ */
diff --git a/arch/m68k/include/asm/amigahw.h b/arch/m68k/include/asm/amigahw.h
new file mode 100644
index 000000000000..5ca5dd951a4a
--- /dev/null
+++ b/arch/m68k/include/asm/amigahw.h
@@ -0,0 +1,350 @@
1/*
2** asm-m68k/amigahw.h -- This header defines some macros and pointers for
3** the various Amiga custom hardware registers.
4** The naming conventions used here conform to those
5** used in the Amiga Hardware Reference Manual, 3rd Edition
6**
7** Copyright 1992 by Greg Harp
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** Created: 9/24/92 by Greg Harp
14*/
15
16#ifndef _M68K_AMIGAHW_H
17#define _M68K_AMIGAHW_H
18
19#include <linux/ioport.h>
20
21 /*
22 * Different Amiga models
23 */
24
25#define AMI_UNKNOWN (0)
26#define AMI_500 (1)
27#define AMI_500PLUS (2)
28#define AMI_600 (3)
29#define AMI_1000 (4)
30#define AMI_1200 (5)
31#define AMI_2000 (6)
32#define AMI_2500 (7)
33#define AMI_3000 (8)
34#define AMI_3000T (9)
35#define AMI_3000PLUS (10)
36#define AMI_4000 (11)
37#define AMI_4000T (12)
38#define AMI_CDTV (13)
39#define AMI_CD32 (14)
40#define AMI_DRACO (15)
41
42
43 /*
44 * Chipsets
45 */
46
47extern unsigned long amiga_chipset;
48
49#define CS_STONEAGE (0)
50#define CS_OCS (1)
51#define CS_ECS (2)
52#define CS_AGA (3)
53
54
55 /*
56 * Miscellaneous
57 */
58
59extern unsigned long amiga_eclock; /* 700 kHz E Peripheral Clock */
60extern unsigned long amiga_colorclock; /* 3.5 MHz Color Clock */
61extern unsigned long amiga_chip_size; /* Chip RAM Size (bytes) */
62extern unsigned char amiga_vblank; /* VBLANK Frequency */
63
64
65#define AMIGAHW_DECLARE(name) unsigned name : 1
66#define AMIGAHW_SET(name) (amiga_hw_present.name = 1)
67#define AMIGAHW_PRESENT(name) (amiga_hw_present.name)
68
69struct amiga_hw_present {
70 /* video hardware */
71 AMIGAHW_DECLARE(AMI_VIDEO); /* Amiga Video */
72 AMIGAHW_DECLARE(AMI_BLITTER); /* Amiga Blitter */
73 AMIGAHW_DECLARE(AMBER_FF); /* Amber Flicker Fixer */
74 /* sound hardware */
75 AMIGAHW_DECLARE(AMI_AUDIO); /* Amiga Audio */
76 /* disk storage interfaces */
77 AMIGAHW_DECLARE(AMI_FLOPPY); /* Amiga Floppy */
78 AMIGAHW_DECLARE(A3000_SCSI); /* SCSI (wd33c93, A3000 alike) */
79 AMIGAHW_DECLARE(A4000_SCSI); /* SCSI (ncr53c710, A4000T alike) */
80 AMIGAHW_DECLARE(A1200_IDE); /* IDE (A1200 alike) */
81 AMIGAHW_DECLARE(A4000_IDE); /* IDE (A4000 alike) */
82 AMIGAHW_DECLARE(CD_ROM); /* CD ROM drive */
83 /* other I/O hardware */
84 AMIGAHW_DECLARE(AMI_KEYBOARD); /* Amiga Keyboard */
85 AMIGAHW_DECLARE(AMI_MOUSE); /* Amiga Mouse */
86 AMIGAHW_DECLARE(AMI_SERIAL); /* Amiga Serial */
87 AMIGAHW_DECLARE(AMI_PARALLEL); /* Amiga Parallel */
88 /* real time clocks */
89 AMIGAHW_DECLARE(A2000_CLK); /* Hardware Clock (A2000 alike) */
90 AMIGAHW_DECLARE(A3000_CLK); /* Hardware Clock (A3000 alike) */
91 /* supporting hardware */
92 AMIGAHW_DECLARE(CHIP_RAM); /* Chip RAM */
93 AMIGAHW_DECLARE(PAULA); /* Paula (8364) */
94 AMIGAHW_DECLARE(DENISE); /* Denise (8362) */
95 AMIGAHW_DECLARE(DENISE_HR); /* Denise (8373) */
96 AMIGAHW_DECLARE(LISA); /* Lisa (8375) */
97 AMIGAHW_DECLARE(AGNUS_PAL); /* Normal/Fat PAL Agnus (8367/8371) */
98 AMIGAHW_DECLARE(AGNUS_NTSC); /* Normal/Fat NTSC Agnus (8361/8370) */
99 AMIGAHW_DECLARE(AGNUS_HR_PAL); /* Fat Hires PAL Agnus (8372) */
100 AMIGAHW_DECLARE(AGNUS_HR_NTSC); /* Fat Hires NTSC Agnus (8372) */
101 AMIGAHW_DECLARE(ALICE_PAL); /* PAL Alice (8374) */
102 AMIGAHW_DECLARE(ALICE_NTSC); /* NTSC Alice (8374) */
103 AMIGAHW_DECLARE(MAGIC_REKICK); /* A3000 Magic Hard Rekick */
104 AMIGAHW_DECLARE(PCMCIA); /* PCMCIA Slot */
105 AMIGAHW_DECLARE(GG2_ISA); /* GG2 Zorro2ISA Bridge */
106 AMIGAHW_DECLARE(ZORRO); /* Zorro AutoConfig */
107 AMIGAHW_DECLARE(ZORRO3); /* Zorro III */
108};
109
110extern struct amiga_hw_present amiga_hw_present;
111
112struct CUSTOM {
113 unsigned short bltddat;
114 unsigned short dmaconr;
115 unsigned short vposr;
116 unsigned short vhposr;
117 unsigned short dskdatr;
118 unsigned short joy0dat;
119 unsigned short joy1dat;
120 unsigned short clxdat;
121 unsigned short adkconr;
122 unsigned short pot0dat;
123 unsigned short pot1dat;
124 unsigned short potgor;
125 unsigned short serdatr;
126 unsigned short dskbytr;
127 unsigned short intenar;
128 unsigned short intreqr;
129 unsigned char *dskptr;
130 unsigned short dsklen;
131 unsigned short dskdat;
132 unsigned short refptr;
133 unsigned short vposw;
134 unsigned short vhposw;
135 unsigned short copcon;
136 unsigned short serdat;
137 unsigned short serper;
138 unsigned short potgo;
139 unsigned short joytest;
140 unsigned short strequ;
141 unsigned short strvbl;
142 unsigned short strhor;
143 unsigned short strlong;
144 unsigned short bltcon0;
145 unsigned short bltcon1;
146 unsigned short bltafwm;
147 unsigned short bltalwm;
148 unsigned char *bltcpt;
149 unsigned char *bltbpt;
150 unsigned char *bltapt;
151 unsigned char *bltdpt;
152 unsigned short bltsize;
153 unsigned char pad2d;
154 unsigned char bltcon0l;
155 unsigned short bltsizv;
156 unsigned short bltsizh;
157 unsigned short bltcmod;
158 unsigned short bltbmod;
159 unsigned short bltamod;
160 unsigned short bltdmod;
161 unsigned short spare2[4];
162 unsigned short bltcdat;
163 unsigned short bltbdat;
164 unsigned short bltadat;
165 unsigned short spare3[3];
166 unsigned short deniseid;
167 unsigned short dsksync;
168 unsigned short *cop1lc;
169 unsigned short *cop2lc;
170 unsigned short copjmp1;
171 unsigned short copjmp2;
172 unsigned short copins;
173 unsigned short diwstrt;
174 unsigned short diwstop;
175 unsigned short ddfstrt;
176 unsigned short ddfstop;
177 unsigned short dmacon;
178 unsigned short clxcon;
179 unsigned short intena;
180 unsigned short intreq;
181 unsigned short adkcon;
182 struct {
183 unsigned short *audlc;
184 unsigned short audlen;
185 unsigned short audper;
186 unsigned short audvol;
187 unsigned short auddat;
188 unsigned short audspare[2];
189 } aud[4];
190 unsigned char *bplpt[8];
191 unsigned short bplcon0;
192 unsigned short bplcon1;
193 unsigned short bplcon2;
194 unsigned short bplcon3;
195 unsigned short bpl1mod;
196 unsigned short bpl2mod;
197 unsigned short bplcon4;
198 unsigned short clxcon2;
199 unsigned short bpldat[8];
200 unsigned char *sprpt[8];
201 struct {
202 unsigned short pos;
203 unsigned short ctl;
204 unsigned short dataa;
205 unsigned short datab;
206 } spr[8];
207 unsigned short color[32];
208 unsigned short htotal;
209 unsigned short hsstop;
210 unsigned short hbstrt;
211 unsigned short hbstop;
212 unsigned short vtotal;
213 unsigned short vsstop;
214 unsigned short vbstrt;
215 unsigned short vbstop;
216 unsigned short sprhstrt;
217 unsigned short sprhstop;
218 unsigned short bplhstrt;
219 unsigned short bplhstop;
220 unsigned short hhposw;
221 unsigned short hhposr;
222 unsigned short beamcon0;
223 unsigned short hsstrt;
224 unsigned short vsstrt;
225 unsigned short hcenter;
226 unsigned short diwhigh;
227 unsigned short spare4[11];
228 unsigned short fmode;
229};
230
231/*
232 * DMA register bits
233 */
234#define DMAF_SETCLR (0x8000)
235#define DMAF_AUD0 (0x0001)
236#define DMAF_AUD1 (0x0002)
237#define DMAF_AUD2 (0x0004)
238#define DMAF_AUD3 (0x0008)
239#define DMAF_DISK (0x0010)
240#define DMAF_SPRITE (0x0020)
241#define DMAF_BLITTER (0x0040)
242#define DMAF_COPPER (0x0080)
243#define DMAF_RASTER (0x0100)
244#define DMAF_MASTER (0x0200)
245#define DMAF_BLITHOG (0x0400)
246#define DMAF_BLTNZERO (0x2000)
247#define DMAF_BLTDONE (0x4000)
248#define DMAF_ALL (0x01FF)
249
250struct CIA {
251 unsigned char pra; char pad0[0xff];
252 unsigned char prb; char pad1[0xff];
253 unsigned char ddra; char pad2[0xff];
254 unsigned char ddrb; char pad3[0xff];
255 unsigned char talo; char pad4[0xff];
256 unsigned char tahi; char pad5[0xff];
257 unsigned char tblo; char pad6[0xff];
258 unsigned char tbhi; char pad7[0xff];
259 unsigned char todlo; char pad8[0xff];
260 unsigned char todmid; char pad9[0xff];
261 unsigned char todhi; char pada[0x1ff];
262 unsigned char sdr; char padb[0xff];
263 unsigned char icr; char padc[0xff];
264 unsigned char cra; char padd[0xff];
265 unsigned char crb; char pade[0xff];
266};
267
268#define zTwoBase (0x80000000)
269#define ZTWO_PADDR(x) (((unsigned long)(x))-zTwoBase)
270#define ZTWO_VADDR(x) (((unsigned long)(x))+zTwoBase)
271
272#define CUSTOM_PHYSADDR (0xdff000)
273#define amiga_custom ((*(volatile struct CUSTOM *)(zTwoBase+CUSTOM_PHYSADDR)))
274
275#define CIAA_PHYSADDR (0xbfe001)
276#define CIAB_PHYSADDR (0xbfd000)
277#define ciaa ((*(volatile struct CIA *)(zTwoBase + CIAA_PHYSADDR)))
278#define ciab ((*(volatile struct CIA *)(zTwoBase + CIAB_PHYSADDR)))
279
280#define CHIP_PHYSADDR (0x000000)
281
282void amiga_chip_init (void);
283void *amiga_chip_alloc(unsigned long size, const char *name);
284void *amiga_chip_alloc_res(unsigned long size, struct resource *res);
285void amiga_chip_free(void *ptr);
286unsigned long amiga_chip_avail( void ); /*MILAN*/
287extern volatile unsigned short amiga_audio_min_period;
288
289static inline void amifb_video_off(void)
290{
291 if (amiga_chipset == CS_ECS || amiga_chipset == CS_AGA) {
292 /* program Denise/Lisa for a higher maximum play rate */
293 amiga_custom.htotal = 113; /* 31 kHz */
294 amiga_custom.vtotal = 223; /* 70 Hz */
295 amiga_custom.beamcon0 = 0x4390; /* HARDDIS, VAR{BEAM,VSY,HSY,CSY}EN */
296 /* suspend the monitor */
297 amiga_custom.hsstrt = amiga_custom.hsstop = 116;
298 amiga_custom.vsstrt = amiga_custom.vsstop = 226;
299 amiga_audio_min_period = 57;
300 }
301}
302
303struct tod3000 {
304 unsigned int :28, second2:4; /* lower digit */
305 unsigned int :28, second1:4; /* upper digit */
306 unsigned int :28, minute2:4; /* lower digit */
307 unsigned int :28, minute1:4; /* upper digit */
308 unsigned int :28, hour2:4; /* lower digit */
309 unsigned int :28, hour1:4; /* upper digit */
310 unsigned int :28, weekday:4;
311 unsigned int :28, day2:4; /* lower digit */
312 unsigned int :28, day1:4; /* upper digit */
313 unsigned int :28, month2:4; /* lower digit */
314 unsigned int :28, month1:4; /* upper digit */
315 unsigned int :28, year2:4; /* lower digit */
316 unsigned int :28, year1:4; /* upper digit */
317 unsigned int :28, cntrl1:4; /* control-byte 1 */
318 unsigned int :28, cntrl2:4; /* control-byte 2 */
319 unsigned int :28, cntrl3:4; /* control-byte 3 */
320};
321#define TOD3000_CNTRL1_HOLD 0
322#define TOD3000_CNTRL1_FREE 9
323#define tod_3000 ((*(volatile struct tod3000 *)(zTwoBase+0xDC0000)))
324
325struct tod2000 {
326 unsigned int :28, second2:4; /* lower digit */
327 unsigned int :28, second1:4; /* upper digit */
328 unsigned int :28, minute2:4; /* lower digit */
329 unsigned int :28, minute1:4; /* upper digit */
330 unsigned int :28, hour2:4; /* lower digit */
331 unsigned int :28, hour1:4; /* upper digit */
332 unsigned int :28, day2:4; /* lower digit */
333 unsigned int :28, day1:4; /* upper digit */
334 unsigned int :28, month2:4; /* lower digit */
335 unsigned int :28, month1:4; /* upper digit */
336 unsigned int :28, year2:4; /* lower digit */
337 unsigned int :28, year1:4; /* upper digit */
338 unsigned int :28, weekday:4;
339 unsigned int :28, cntrl1:4; /* control-byte 1 */
340 unsigned int :28, cntrl2:4; /* control-byte 2 */
341 unsigned int :28, cntrl3:4; /* control-byte 3 */
342};
343
344#define TOD2000_CNTRL1_HOLD (1<<0)
345#define TOD2000_CNTRL1_BUSY (1<<1)
346#define TOD2000_CNTRL3_24HMODE (1<<2)
347#define TOD2000_HOUR1_PM (1<<2)
348#define tod_2000 ((*(volatile struct tod2000 *)(zTwoBase+0xDC0000)))
349
350#endif /* _M68K_AMIGAHW_H */
diff --git a/arch/m68k/include/asm/amigaints.h b/arch/m68k/include/asm/amigaints.h
new file mode 100644
index 000000000000..b1bcdb835ab9
--- /dev/null
+++ b/arch/m68k/include/asm/amigaints.h
@@ -0,0 +1,113 @@
1/*
2** amigaints.h -- Amiga Linux interrupt handling structs and prototypes
3**
4** Copyright 1992 by Greg Harp
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10** Created 10/2/92 by Greg Harp
11*/
12
13#ifndef _ASMm68k_AMIGAINTS_H_
14#define _ASMm68k_AMIGAINTS_H_
15
16#include <asm/irq.h>
17
18/*
19** Amiga Interrupt sources.
20**
21*/
22
23#define AUTO_IRQS (8)
24#define AMI_STD_IRQS (14)
25#define CIA_IRQS (5)
26#define AMI_IRQS (32) /* AUTO_IRQS+AMI_STD_IRQS+2*CIA_IRQS */
27
28/* builtin serial port interrupts */
29#define IRQ_AMIGA_TBE (IRQ_USER+0)
30#define IRQ_AMIGA_RBF (IRQ_USER+11)
31
32/* floppy disk interrupts */
33#define IRQ_AMIGA_DSKBLK (IRQ_USER+1)
34#define IRQ_AMIGA_DSKSYN (IRQ_USER+12)
35
36/* software interrupts */
37#define IRQ_AMIGA_SOFT (IRQ_USER+2)
38
39/* interrupts from external hardware */
40#define IRQ_AMIGA_PORTS IRQ_AUTO_2
41#define IRQ_AMIGA_EXTER IRQ_AUTO_6
42
43/* copper interrupt */
44#define IRQ_AMIGA_COPPER (IRQ_USER+4)
45
46/* vertical blanking interrupt */
47#define IRQ_AMIGA_VERTB (IRQ_USER+5)
48
49/* Blitter done interrupt */
50#define IRQ_AMIGA_BLIT (IRQ_USER+6)
51
52/* Audio interrupts */
53#define IRQ_AMIGA_AUD0 (IRQ_USER+7)
54#define IRQ_AMIGA_AUD1 (IRQ_USER+8)
55#define IRQ_AMIGA_AUD2 (IRQ_USER+9)
56#define IRQ_AMIGA_AUD3 (IRQ_USER+10)
57
58/* CIA interrupt sources */
59#define IRQ_AMIGA_CIAA (IRQ_USER+14)
60#define IRQ_AMIGA_CIAA_TA (IRQ_USER+14)
61#define IRQ_AMIGA_CIAA_TB (IRQ_USER+15)
62#define IRQ_AMIGA_CIAA_ALRM (IRQ_USER+16)
63#define IRQ_AMIGA_CIAA_SP (IRQ_USER+17)
64#define IRQ_AMIGA_CIAA_FLG (IRQ_USER+18)
65#define IRQ_AMIGA_CIAB (IRQ_USER+19)
66#define IRQ_AMIGA_CIAB_TA (IRQ_USER+19)
67#define IRQ_AMIGA_CIAB_TB (IRQ_USER+20)
68#define IRQ_AMIGA_CIAB_ALRM (IRQ_USER+21)
69#define IRQ_AMIGA_CIAB_SP (IRQ_USER+22)
70#define IRQ_AMIGA_CIAB_FLG (IRQ_USER+23)
71
72
73/* INTREQR masks */
74#define IF_SETCLR 0x8000 /* set/clr bit */
75#define IF_INTEN 0x4000 /* master interrupt bit in INT* registers */
76#define IF_EXTER 0x2000 /* external level 6 and CIA B interrupt */
77#define IF_DSKSYN 0x1000 /* disk sync interrupt */
78#define IF_RBF 0x0800 /* serial receive buffer full interrupt */
79#define IF_AUD3 0x0400 /* audio channel 3 done interrupt */
80#define IF_AUD2 0x0200 /* audio channel 2 done interrupt */
81#define IF_AUD1 0x0100 /* audio channel 1 done interrupt */
82#define IF_AUD0 0x0080 /* audio channel 0 done interrupt */
83#define IF_BLIT 0x0040 /* blitter done interrupt */
84#define IF_VERTB 0x0020 /* vertical blanking interrupt */
85#define IF_COPER 0x0010 /* copper interrupt */
86#define IF_PORTS 0x0008 /* external level 2 and CIA A interrupt */
87#define IF_SOFT 0x0004 /* software initiated interrupt */
88#define IF_DSKBLK 0x0002 /* diskblock DMA finished */
89#define IF_TBE 0x0001 /* serial transmit buffer empty interrupt */
90
91/* CIA interrupt control register bits */
92
93#define CIA_ICR_TA 0x01
94#define CIA_ICR_TB 0x02
95#define CIA_ICR_ALRM 0x04
96#define CIA_ICR_SP 0x08
97#define CIA_ICR_FLG 0x10
98#define CIA_ICR_ALL 0x1f
99#define CIA_ICR_SETCLR 0x80
100
101extern void amiga_init_IRQ(void);
102
103/* to access the interrupt control registers of CIA's use only
104** these functions, they behave exactly like the amiga os routines
105*/
106
107extern struct ciabase ciaa_base, ciab_base;
108
109extern void cia_init_IRQ(struct ciabase *base);
110extern unsigned char cia_set_irq(struct ciabase *base, unsigned char mask);
111extern unsigned char cia_able_irq(struct ciabase *base, unsigned char mask);
112
113#endif /* asm-m68k/amigaints.h */
diff --git a/arch/m68k/include/asm/amigayle.h b/arch/m68k/include/asm/amigayle.h
new file mode 100644
index 000000000000..bb5a6aa329f3
--- /dev/null
+++ b/arch/m68k/include/asm/amigayle.h
@@ -0,0 +1,107 @@
1/*
2** asm-m68k/amigayle.h -- This header defines the registers of the gayle chip
3** found on the Amiga 1200
4** This information was found by disassembling card.resource,
5** so the definitions may not be 100% correct
6** anyone has an official doc ?
7**
8** Copyright 1997 by Alain Malek
9**
10** This file is subject to the terms and conditions of the GNU General Public
11** License. See the file COPYING in the main directory of this archive
12** for more details.
13**
14** Created: 11/28/97 by Alain Malek
15*/
16
17#ifndef _M68K_AMIGAYLE_H_
18#define _M68K_AMIGAYLE_H_
19
20#include <linux/types.h>
21#include <asm/amigahw.h>
22
23/* memory layout */
24
25#define GAYLE_RAM (0x600000+zTwoBase)
26#define GAYLE_RAMSIZE (0x400000)
27#define GAYLE_ATTRIBUTE (0xa00000+zTwoBase)
28#define GAYLE_ATTRIBUTESIZE (0x020000)
29#define GAYLE_IO (0xa20000+zTwoBase) /* 16bit and even 8bit registers */
30#define GAYLE_IOSIZE (0x010000)
31#define GAYLE_IO_8BITODD (0xa30000+zTwoBase) /* odd 8bit registers */
32
33/* offset for accessing odd IO registers */
34#define GAYLE_ODD (GAYLE_IO_8BITODD-GAYLE_IO-1)
35
36/* GAYLE registers */
37
38struct GAYLE {
39 u_char cardstatus;
40 u_char pad0[0x1000-1];
41
42 u_char intreq;
43 u_char pad1[0x1000-1];
44
45 u_char inten;
46 u_char pad2[0x1000-1];
47
48 u_char config;
49 u_char pad3[0x1000-1];
50};
51
52#define GAYLE_ADDRESS (0xda8000) /* gayle main registers base address */
53
54#define GAYLE_RESET (0xa40000) /* write 0x00 to start reset,
55 read 1 byte to stop reset */
56
57#define gayle (*(volatile struct GAYLE *)(zTwoBase+GAYLE_ADDRESS))
58#define gayle_reset (*(volatile u_char *)(zTwoBase+GAYLE_RESET))
59
60#define gayle_attribute ((volatile u_char *)(GAYLE_ATTRIBUTE))
61
62#if 0
63#define gayle_inb(a) readb( GAYLE_IO+(a)+(((a)&1)*GAYLE_ODD) )
64#define gayle_outb(v,a) writeb( v, GAYLE_IO+(a)+(((a)&1)*GAYLE_ODD) )
65
66#define gayle_inw(a) readw( GAYLE_IO+(a) )
67#define gayle_outw(v,a) writew( v, GAYLE_IO+(a) )
68#endif
69
70/* GAYLE_CARDSTATUS bit def */
71
72#define GAYLE_CS_CCDET 0x40 /* credit card detect */
73#define GAYLE_CS_BVD1 0x20 /* battery voltage detect 1 */
74#define GAYLE_CS_SC 0x20 /* credit card status change */
75#define GAYLE_CS_BVD2 0x10 /* battery voltage detect 2 */
76#define GAYLE_CS_DA 0x10 /* digital audio */
77#define GAYLE_CS_WR 0x08 /* write enable (1 == enabled) */
78#define GAYLE_CS_BSY 0x04 /* credit card busy */
79#define GAYLE_CS_IRQ 0x04 /* interrupt request */
80
81/* GAYLE_IRQ bit def */
82
83#define GAYLE_IRQ_IDE 0x80
84#define GAYLE_IRQ_CCDET 0x40
85#define GAYLE_IRQ_BVD1 0x20
86#define GAYLE_IRQ_SC 0x20
87#define GAYLE_IRQ_BVD2 0x10
88#define GAYLE_IRQ_DA 0x10
89#define GAYLE_IRQ_WR 0x08
90#define GAYLE_IRQ_BSY 0x04
91#define GAYLE_IRQ_IRQ 0x04
92#define GAYLE_IRQ_IDEACK1 0x02
93#define GAYLE_IRQ_IDEACK0 0x01
94
95/* GAYLE_CONFIG bit def
96 (bit 0-1 for program voltage, bit 2-3 for access speed */
97
98#define GAYLE_CFG_0V 0x00
99#define GAYLE_CFG_5V 0x01
100#define GAYLE_CFG_12V 0x02
101
102#define GAYLE_CFG_100NS 0x08
103#define GAYLE_CFG_150NS 0x04
104#define GAYLE_CFG_250NS 0x00
105#define GAYLE_CFG_720NS 0x0c
106
107#endif /* asm-m68k/amigayle.h */
diff --git a/arch/m68k/include/asm/amipcmcia.h b/arch/m68k/include/asm/amipcmcia.h
new file mode 100644
index 000000000000..6f1ec1887d82
--- /dev/null
+++ b/arch/m68k/include/asm/amipcmcia.h
@@ -0,0 +1,110 @@
1/*
2** asm-m68k/pcmcia.h -- Amiga Linux PCMCIA Definitions
3**
4** Copyright 1997 by Alain Malek
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10** Created: 12/10/97 by Alain Malek
11*/
12
13#ifndef __AMIGA_PCMCIA_H__
14#define __AMIGA_PCMCIA_H__
15
16#include <asm/amigayle.h>
17
18/* prototypes */
19
20void pcmcia_reset(void);
21int pcmcia_copy_tuple(unsigned char tuple_id, void *tuple, int max_len);
22void pcmcia_program_voltage(int voltage);
23void pcmcia_access_speed(int speed);
24void pcmcia_write_enable(void);
25void pcmcia_write_disable(void);
26
27static inline u_char pcmcia_read_status(void)
28{
29 return (gayle.cardstatus & 0x7c);
30}
31
32static inline u_char pcmcia_get_intreq(void)
33{
34 return (gayle.intreq);
35}
36
37static inline void pcmcia_ack_int(u_char intreq)
38{
39 gayle.intreq = 0xf8;
40}
41
42static inline void pcmcia_enable_irq(void)
43{
44 gayle.inten |= GAYLE_IRQ_IRQ;
45}
46
47static inline void pcmcia_disable_irq(void)
48{
49 gayle.inten &= ~GAYLE_IRQ_IRQ;
50}
51
52#define PCMCIA_INSERTED (gayle.cardstatus & GAYLE_CS_CCDET)
53
54/* valid voltages for pcmcia_ProgramVoltage */
55
56#define PCMCIA_0V 0
57#define PCMCIA_5V 5
58#define PCMCIA_12V 12
59
60/* valid speeds for pcmcia_AccessSpeed */
61
62#define PCMCIA_SPEED_100NS 100
63#define PCMCIA_SPEED_150NS 150
64#define PCMCIA_SPEED_250NS 250
65#define PCMCIA_SPEED_720NS 720
66
67/* PCMCIA Tuple codes */
68
69#define CISTPL_NULL 0x00
70#define CISTPL_DEVICE 0x01
71#define CISTPL_LONGLINK_CB 0x02
72#define CISTPL_CONFIG_CB 0x04
73#define CISTPL_CFTABLE_ENTRY_CB 0x05
74#define CISTPL_LONGLINK_MFC 0x06
75#define CISTPL_BAR 0x07
76#define CISTPL_CHECKSUM 0x10
77#define CISTPL_LONGLINK_A 0x11
78#define CISTPL_LONGLINK_C 0x12
79#define CISTPL_LINKTARGET 0x13
80#define CISTPL_NO_LINK 0x14
81#define CISTPL_VERS_1 0x15
82#define CISTPL_ALTSTR 0x16
83#define CISTPL_DEVICE_A 0x17
84#define CISTPL_JEDEC_C 0x18
85#define CISTPL_JEDEC_A 0x19
86#define CISTPL_CONFIG 0x1a
87#define CISTPL_CFTABLE_ENTRY 0x1b
88#define CISTPL_DEVICE_OC 0x1c
89#define CISTPL_DEVICE_OA 0x1d
90#define CISTPL_DEVICE_GEO 0x1e
91#define CISTPL_DEVICE_GEO_A 0x1f
92#define CISTPL_MANFID 0x20
93#define CISTPL_FUNCID 0x21
94#define CISTPL_FUNCE 0x22
95#define CISTPL_SWIL 0x23
96#define CISTPL_END 0xff
97
98/* FUNCID */
99
100#define CISTPL_FUNCID_MULTI 0x00
101#define CISTPL_FUNCID_MEMORY 0x01
102#define CISTPL_FUNCID_SERIAL 0x02
103#define CISTPL_FUNCID_PARALLEL 0x03
104#define CISTPL_FUNCID_FIXED 0x04
105#define CISTPL_FUNCID_VIDEO 0x05
106#define CISTPL_FUNCID_NETWORK 0x06
107#define CISTPL_FUNCID_AIMS 0x07
108#define CISTPL_FUNCID_SCSI 0x08
109
110#endif
diff --git a/arch/m68knommu/include/asm/anchor.h b/arch/m68k/include/asm/anchor.h
index 871c0d5cfc3d..871c0d5cfc3d 100644
--- a/arch/m68knommu/include/asm/anchor.h
+++ b/arch/m68k/include/asm/anchor.h
diff --git a/arch/m68k/include/asm/apollodma.h b/arch/m68k/include/asm/apollodma.h
new file mode 100644
index 000000000000..954adc851adb
--- /dev/null
+++ b/arch/m68k/include/asm/apollodma.h
@@ -0,0 +1,248 @@
1/*
2 * linux/include/asm/dma.h: Defines for using and allocating dma channels.
3 * Written by Hennus Bergman, 1992.
4 * High DMA channel support & info by Hannu Savolainen
5 * and John Boyd, Nov. 1992.
6 */
7
8#ifndef _ASM_APOLLO_DMA_H
9#define _ASM_APOLLO_DMA_H
10
11#include <asm/apollohw.h> /* need byte IO */
12#include <linux/spinlock.h> /* And spinlocks */
13#include <linux/delay.h>
14
15
16#define dma_outb(val,addr) (*((volatile unsigned char *)(addr+IO_BASE)) = (val))
17#define dma_inb(addr) (*((volatile unsigned char *)(addr+IO_BASE)))
18
19/*
20 * NOTES about DMA transfers:
21 *
22 * controller 1: channels 0-3, byte operations, ports 00-1F
23 * controller 2: channels 4-7, word operations, ports C0-DF
24 *
25 * - ALL registers are 8 bits only, regardless of transfer size
26 * - channel 4 is not used - cascades 1 into 2.
27 * - channels 0-3 are byte - addresses/counts are for physical bytes
28 * - channels 5-7 are word - addresses/counts are for physical words
29 * - transfers must not cross physical 64K (0-3) or 128K (5-7) boundaries
30 * - transfer count loaded to registers is 1 less than actual count
31 * - controller 2 offsets are all even (2x offsets for controller 1)
32 * - page registers for 5-7 don't use data bit 0, represent 128K pages
33 * - page registers for 0-3 use bit 0, represent 64K pages
34 *
35 * DMA transfers are limited to the lower 16MB of _physical_ memory.
36 * Note that addresses loaded into registers must be _physical_ addresses,
37 * not logical addresses (which may differ if paging is active).
38 *
39 * Address mapping for channels 0-3:
40 *
41 * A23 ... A16 A15 ... A8 A7 ... A0 (Physical addresses)
42 * | ... | | ... | | ... |
43 * | ... | | ... | | ... |
44 * | ... | | ... | | ... |
45 * P7 ... P0 A7 ... A0 A7 ... A0
46 * | Page | Addr MSB | Addr LSB | (DMA registers)
47 *
48 * Address mapping for channels 5-7:
49 *
50 * A23 ... A17 A16 A15 ... A9 A8 A7 ... A1 A0 (Physical addresses)
51 * | ... | \ \ ... \ \ \ ... \ \
52 * | ... | \ \ ... \ \ \ ... \ (not used)
53 * | ... | \ \ ... \ \ \ ... \
54 * P7 ... P1 (0) A7 A6 ... A0 A7 A6 ... A0
55 * | Page | Addr MSB | Addr LSB | (DMA registers)
56 *
57 * Again, channels 5-7 transfer _physical_ words (16 bits), so addresses
58 * and counts _must_ be word-aligned (the lowest address bit is _ignored_ at
59 * the hardware level, so odd-byte transfers aren't possible).
60 *
61 * Transfer count (_not # bytes_) is limited to 64K, represented as actual
62 * count - 1 : 64K => 0xFFFF, 1 => 0x0000. Thus, count is always 1 or more,
63 * and up to 128K bytes may be transferred on channels 5-7 in one operation.
64 *
65 */
66
67#define MAX_DMA_CHANNELS 8
68
69/* The maximum address that we can perform a DMA transfer to on this platform */#define MAX_DMA_ADDRESS (PAGE_OFFSET+0x1000000)
70
71/* 8237 DMA controllers */
72#define IO_DMA1_BASE 0x10C00 /* 8 bit slave DMA, channels 0..3 */
73#define IO_DMA2_BASE 0x10D00 /* 16 bit master DMA, ch 4(=slave input)..7 */
74
75/* DMA controller registers */
76#define DMA1_CMD_REG (IO_DMA1_BASE+0x08) /* command register (w) */
77#define DMA1_STAT_REG (IO_DMA1_BASE+0x08) /* status register (r) */
78#define DMA1_REQ_REG (IO_DMA1_BASE+0x09) /* request register (w) */
79#define DMA1_MASK_REG (IO_DMA1_BASE+0x0A) /* single-channel mask (w) */
80#define DMA1_MODE_REG (IO_DMA1_BASE+0x0B) /* mode register (w) */
81#define DMA1_CLEAR_FF_REG (IO_DMA1_BASE+0x0C) /* clear pointer flip-flop (w) */
82#define DMA1_TEMP_REG (IO_DMA1_BASE+0x0D) /* Temporary Register (r) */
83#define DMA1_RESET_REG (IO_DMA1_BASE+0x0D) /* Master Clear (w) */
84#define DMA1_CLR_MASK_REG (IO_DMA1_BASE+0x0E) /* Clear Mask */
85#define DMA1_MASK_ALL_REG (IO_DMA1_BASE+0x0F) /* all-channels mask (w) */
86
87#define DMA2_CMD_REG (IO_DMA2_BASE+0x10) /* command register (w) */
88#define DMA2_STAT_REG (IO_DMA2_BASE+0x10) /* status register (r) */
89#define DMA2_REQ_REG (IO_DMA2_BASE+0x12) /* request register (w) */
90#define DMA2_MASK_REG (IO_DMA2_BASE+0x14) /* single-channel mask (w) */
91#define DMA2_MODE_REG (IO_DMA2_BASE+0x16) /* mode register (w) */
92#define DMA2_CLEAR_FF_REG (IO_DMA2_BASE+0x18) /* clear pointer flip-flop (w) */
93#define DMA2_TEMP_REG (IO_DMA2_BASE+0x1A) /* Temporary Register (r) */
94#define DMA2_RESET_REG (IO_DMA2_BASE+0x1A) /* Master Clear (w) */
95#define DMA2_CLR_MASK_REG (IO_DMA2_BASE+0x1C) /* Clear Mask */
96#define DMA2_MASK_ALL_REG (IO_DMA2_BASE+0x1E) /* all-channels mask (w) */
97
98#define DMA_ADDR_0 (IO_DMA1_BASE+0x00) /* DMA address registers */
99#define DMA_ADDR_1 (IO_DMA1_BASE+0x02)
100#define DMA_ADDR_2 (IO_DMA1_BASE+0x04)
101#define DMA_ADDR_3 (IO_DMA1_BASE+0x06)
102#define DMA_ADDR_4 (IO_DMA2_BASE+0x00)
103#define DMA_ADDR_5 (IO_DMA2_BASE+0x04)
104#define DMA_ADDR_6 (IO_DMA2_BASE+0x08)
105#define DMA_ADDR_7 (IO_DMA2_BASE+0x0C)
106
107#define DMA_CNT_0 (IO_DMA1_BASE+0x01) /* DMA count registers */
108#define DMA_CNT_1 (IO_DMA1_BASE+0x03)
109#define DMA_CNT_2 (IO_DMA1_BASE+0x05)
110#define DMA_CNT_3 (IO_DMA1_BASE+0x07)
111#define DMA_CNT_4 (IO_DMA2_BASE+0x02)
112#define DMA_CNT_5 (IO_DMA2_BASE+0x06)
113#define DMA_CNT_6 (IO_DMA2_BASE+0x0A)
114#define DMA_CNT_7 (IO_DMA2_BASE+0x0E)
115
116#define DMA_MODE_READ 0x44 /* I/O to memory, no autoinit, increment, single mode */
117#define DMA_MODE_WRITE 0x48 /* memory to I/O, no autoinit, increment, single mode */
118#define DMA_MODE_CASCADE 0xC0 /* pass thru DREQ->HRQ, DACK<-HLDA only */
119
120#define DMA_AUTOINIT 0x10
121
122#define DMA_8BIT 0
123#define DMA_16BIT 1
124#define DMA_BUSMASTER 2
125
126extern spinlock_t dma_spin_lock;
127
128static __inline__ unsigned long claim_dma_lock(void)
129{
130 unsigned long flags;
131 spin_lock_irqsave(&dma_spin_lock, flags);
132 return flags;
133}
134
135static __inline__ void release_dma_lock(unsigned long flags)
136{
137 spin_unlock_irqrestore(&dma_spin_lock, flags);
138}
139
140/* enable/disable a specific DMA channel */
141static __inline__ void enable_dma(unsigned int dmanr)
142{
143 if (dmanr<=3)
144 dma_outb(dmanr, DMA1_MASK_REG);
145 else
146 dma_outb(dmanr & 3, DMA2_MASK_REG);
147}
148
149static __inline__ void disable_dma(unsigned int dmanr)
150{
151 if (dmanr<=3)
152 dma_outb(dmanr | 4, DMA1_MASK_REG);
153 else
154 dma_outb((dmanr & 3) | 4, DMA2_MASK_REG);
155}
156
157/* Clear the 'DMA Pointer Flip Flop'.
158 * Write 0 for LSB/MSB, 1 for MSB/LSB access.
159 * Use this once to initialize the FF to a known state.
160 * After that, keep track of it. :-)
161 * --- In order to do that, the DMA routines below should ---
162 * --- only be used while holding the DMA lock ! ---
163 */
164static __inline__ void clear_dma_ff(unsigned int dmanr)
165{
166 if (dmanr<=3)
167 dma_outb(0, DMA1_CLEAR_FF_REG);
168 else
169 dma_outb(0, DMA2_CLEAR_FF_REG);
170}
171
172/* set mode (above) for a specific DMA channel */
173static __inline__ void set_dma_mode(unsigned int dmanr, char mode)
174{
175 if (dmanr<=3)
176 dma_outb(mode | dmanr, DMA1_MODE_REG);
177 else
178 dma_outb(mode | (dmanr&3), DMA2_MODE_REG);
179}
180
181/* Set transfer address & page bits for specific DMA channel.
182 * Assumes dma flipflop is clear.
183 */
184static __inline__ void set_dma_addr(unsigned int dmanr, unsigned int a)
185{
186 if (dmanr <= 3) {
187 dma_outb( a & 0xff, ((dmanr&3)<<1) + IO_DMA1_BASE );
188 dma_outb( (a>>8) & 0xff, ((dmanr&3)<<1) + IO_DMA1_BASE );
189 } else {
190 dma_outb( (a>>1) & 0xff, ((dmanr&3)<<2) + IO_DMA2_BASE );
191 dma_outb( (a>>9) & 0xff, ((dmanr&3)<<2) + IO_DMA2_BASE );
192 }
193}
194
195
196/* Set transfer size (max 64k for DMA1..3, 128k for DMA5..7) for
197 * a specific DMA channel.
198 * You must ensure the parameters are valid.
199 * NOTE: from a manual: "the number of transfers is one more
200 * than the initial word count"! This is taken into account.
201 * Assumes dma flip-flop is clear.
202 * NOTE 2: "count" represents _bytes_ and must be even for channels 5-7.
203 */
204static __inline__ void set_dma_count(unsigned int dmanr, unsigned int count)
205{
206 count--;
207 if (dmanr <= 3) {
208 dma_outb( count & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
209 dma_outb( (count>>8) & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
210 } else {
211 dma_outb( (count>>1) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
212 dma_outb( (count>>9) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
213 }
214}
215
216
217/* Get DMA residue count. After a DMA transfer, this
218 * should return zero. Reading this while a DMA transfer is
219 * still in progress will return unpredictable results.
220 * If called before the channel has been used, it may return 1.
221 * Otherwise, it returns the number of _bytes_ left to transfer.
222 *
223 * Assumes DMA flip-flop is clear.
224 */
225static __inline__ int get_dma_residue(unsigned int dmanr)
226{
227 unsigned int io_port = (dmanr<=3)? ((dmanr&3)<<1) + 1 + IO_DMA1_BASE
228 : ((dmanr&3)<<2) + 2 + IO_DMA2_BASE;
229
230 /* using short to get 16-bit wrap around */
231 unsigned short count;
232
233 count = 1 + dma_inb(io_port);
234 count += dma_inb(io_port) << 8;
235
236 return (dmanr<=3)? count : (count<<1);
237}
238
239
240/* These are in kernel/dma.c: */
241extern int request_dma(unsigned int dmanr, const char * device_id); /* reserve a DMA channel */
242extern void free_dma(unsigned int dmanr); /* release it again */
243
244/* These are in arch/m68k/apollo/dma.c: */
245extern unsigned short dma_map_page(unsigned long phys_addr,int count,int type);
246extern void dma_unmap_page(unsigned short dma_addr);
247
248#endif /* _ASM_APOLLO_DMA_H */
diff --git a/arch/m68k/include/asm/apollohw.h b/arch/m68k/include/asm/apollohw.h
new file mode 100644
index 000000000000..a1373b9aa281
--- /dev/null
+++ b/arch/m68k/include/asm/apollohw.h
@@ -0,0 +1,108 @@
1/* apollohw.h : some structures to access apollo HW */
2
3#ifndef _ASMm68k_APOLLOHW_H_
4#define _ASMm68k_APOLLOHW_H_
5
6#include <linux/types.h>
7
8/*
9 apollo models
10*/
11
12extern u_long apollo_model;
13
14#define APOLLO_UNKNOWN (0)
15#define APOLLO_DN3000 (1)
16#define APOLLO_DN3010 (2)
17#define APOLLO_DN3500 (3)
18#define APOLLO_DN4000 (4)
19#define APOLLO_DN4500 (5)
20
21/*
22 see scn2681 data sheet for more info.
23 member names are read_write.
24*/
25
26#define DECLARE_2681_FIELD(x) unsigned char x; unsigned char dummy##x
27
28struct SCN2681 {
29
30 DECLARE_2681_FIELD(mra);
31 DECLARE_2681_FIELD(sra_csra);
32 DECLARE_2681_FIELD(BRGtest_cra);
33 DECLARE_2681_FIELD(rhra_thra);
34 DECLARE_2681_FIELD(ipcr_acr);
35 DECLARE_2681_FIELD(isr_imr);
36 DECLARE_2681_FIELD(ctu_ctur);
37 DECLARE_2681_FIELD(ctl_ctlr);
38 DECLARE_2681_FIELD(mrb);
39 DECLARE_2681_FIELD(srb_csrb);
40 DECLARE_2681_FIELD(tst_crb);
41 DECLARE_2681_FIELD(rhrb_thrb);
42 DECLARE_2681_FIELD(reserved);
43 DECLARE_2681_FIELD(ip_opcr);
44 DECLARE_2681_FIELD(startCnt_setOutBit);
45 DECLARE_2681_FIELD(stopCnt_resetOutBit);
46
47};
48
49#if 0
50struct mc146818 {
51
52 unsigned int second1:4, second2:4, alarm_second1:4, alarm_second2:4,
53 minute1:4, minute2:4, alarm_minute1:4, alarm_minute2:4;
54 unsigned int hours1:4, hours2:4, alarm_hours1:4, alarm_hours2:4,
55 day_of_week1:4, day_of_week2:4, day_of_month1:4, day_of_month2:4;
56 unsigned int month1:4, month2:4, year1:4, year2:4, :16;
57
58};
59#endif
60
61struct mc146818 {
62 unsigned char second, alarm_second;
63 unsigned char minute, alarm_minute;
64 unsigned char hours, alarm_hours;
65 unsigned char day_of_week, day_of_month;
66 unsigned char month, year;
67};
68
69
70#define IO_BASE 0x80000000
71
72extern u_long sio01_physaddr;
73extern u_long sio23_physaddr;
74extern u_long rtc_physaddr;
75extern u_long pica_physaddr;
76extern u_long picb_physaddr;
77extern u_long cpuctrl_physaddr;
78extern u_long timer_physaddr;
79
80#define SAU7_SIO01_PHYSADDR 0x10400
81#define SAU7_SIO23_PHYSADDR 0x10500
82#define SAU7_RTC_PHYSADDR 0x10900
83#define SAU7_PICA 0x11000
84#define SAU7_PICB 0x11100
85#define SAU7_CPUCTRL 0x10100
86#define SAU7_TIMER 0x010800
87
88#define SAU8_SIO01_PHYSADDR 0x8400
89#define SAU8_RTC_PHYSADDR 0x8900
90#define SAU8_PICA 0x9400
91#define SAU8_PICB 0x9500
92#define SAU8_CPUCTRL 0x8100
93#define SAU8_TIMER 0x8800
94
95#define sio01 ((*(volatile struct SCN2681 *)(IO_BASE + sio01_physaddr)))
96#define sio23 ((*(volatile struct SCN2681 *)(IO_BASE + sio23_physaddr)))
97#define rtc (((volatile struct mc146818 *)(IO_BASE + rtc_physaddr)))
98#define cpuctrl (*(volatile unsigned int *)(IO_BASE + cpuctrl_physaddr))
99#define pica (IO_BASE + pica_physaddr)
100#define picb (IO_BASE + picb_physaddr)
101#define timer (IO_BASE + timer_physaddr)
102#define addr_xlat_map ((unsigned short *)(IO_BASE + 0x17000))
103
104#define isaIO2mem(x) (((((x) & 0x3f8) << 7) | (((x) & 0xfc00) >> 6) | ((x) & 0x7)) + 0x40000 + IO_BASE)
105
106#define IRQ_APOLLO IRQ_USER
107
108#endif
diff --git a/arch/m68k/include/asm/atafd.h b/arch/m68k/include/asm/atafd.h
new file mode 100644
index 000000000000..8456889ee7da
--- /dev/null
+++ b/arch/m68k/include/asm/atafd.h
@@ -0,0 +1,12 @@
1#ifndef _ASM_M68K_FD_H
2#define _ASM_M68K_FD_H
3
4/* Definitions for the Atari Floppy driver */
5
6struct atari_format_descr {
7 int track; /* to be formatted */
8 int head; /* "" "" */
9 int sect_offset; /* offset of first sector */
10};
11
12#endif
diff --git a/arch/m68k/include/asm/atafdreg.h b/arch/m68k/include/asm/atafdreg.h
new file mode 100644
index 000000000000..bbf80949fd9f
--- /dev/null
+++ b/arch/m68k/include/asm/atafdreg.h
@@ -0,0 +1,79 @@
1#ifndef _LINUX_FDREG_H
2#define _LINUX_FDREG_H
3
4/*
5** WD1772 stuff
6 */
7
8/* register codes */
9
10#define FDCSELREG_STP (0x80) /* command/status register */
11#define FDCSELREG_TRA (0x82) /* track register */
12#define FDCSELREG_SEC (0x84) /* sector register */
13#define FDCSELREG_DTA (0x86) /* data register */
14
15/* register names for FDC_READ/WRITE macros */
16
17#define FDCREG_CMD 0
18#define FDCREG_STATUS 0
19#define FDCREG_TRACK 2
20#define FDCREG_SECTOR 4
21#define FDCREG_DATA 6
22
23/* command opcodes */
24
25#define FDCCMD_RESTORE (0x00) /* - */
26#define FDCCMD_SEEK (0x10) /* | */
27#define FDCCMD_STEP (0x20) /* | TYP 1 Commands */
28#define FDCCMD_STIN (0x40) /* | */
29#define FDCCMD_STOT (0x60) /* - */
30#define FDCCMD_RDSEC (0x80) /* - TYP 2 Commands */
31#define FDCCMD_WRSEC (0xa0) /* - " */
32#define FDCCMD_RDADR (0xc0) /* - */
33#define FDCCMD_RDTRA (0xe0) /* | TYP 3 Commands */
34#define FDCCMD_WRTRA (0xf0) /* - */
35#define FDCCMD_FORCI (0xd0) /* - TYP 4 Command */
36
37/* command modifier bits */
38
39#define FDCCMDADD_SR6 (0x00) /* step rate settings */
40#define FDCCMDADD_SR12 (0x01)
41#define FDCCMDADD_SR2 (0x02)
42#define FDCCMDADD_SR3 (0x03)
43#define FDCCMDADD_V (0x04) /* verify */
44#define FDCCMDADD_H (0x08) /* wait for spin-up */
45#define FDCCMDADD_U (0x10) /* update track register */
46#define FDCCMDADD_M (0x10) /* multiple sector access */
47#define FDCCMDADD_E (0x04) /* head settling flag */
48#define FDCCMDADD_P (0x02) /* precompensation off */
49#define FDCCMDADD_A0 (0x01) /* DAM flag */
50
51/* status register bits */
52
53#define FDCSTAT_MOTORON (0x80) /* motor on */
54#define FDCSTAT_WPROT (0x40) /* write protected (FDCCMD_WR*) */
55#define FDCSTAT_SPINUP (0x20) /* motor speed stable (Type I) */
56#define FDCSTAT_DELDAM (0x20) /* sector has deleted DAM (Type II+III) */
57#define FDCSTAT_RECNF (0x10) /* record not found */
58#define FDCSTAT_CRC (0x08) /* CRC error */
59#define FDCSTAT_TR00 (0x04) /* Track 00 flag (Type I) */
60#define FDCSTAT_LOST (0x04) /* Lost Data (Type II+III) */
61#define FDCSTAT_IDX (0x02) /* Index status (Type I) */
62#define FDCSTAT_DRQ (0x02) /* DRQ status (Type II+III) */
63#define FDCSTAT_BUSY (0x01) /* FDC is busy */
64
65
66/* PSG Port A Bit Nr 0 .. Side Sel .. 0 -> Side 1 1 -> Side 2 */
67#define DSKSIDE (0x01)
68
69#define DSKDRVNONE (0x06)
70#define DSKDRV0 (0x02)
71#define DSKDRV1 (0x04)
72
73/* step rates */
74#define FDCSTEP_6 0x00
75#define FDCSTEP_12 0x01
76#define FDCSTEP_2 0x02
77#define FDCSTEP_3 0x03
78
79#endif
diff --git a/arch/m68k/include/asm/atari_joystick.h b/arch/m68k/include/asm/atari_joystick.h
new file mode 100644
index 000000000000..93be7da9f2c7
--- /dev/null
+++ b/arch/m68k/include/asm/atari_joystick.h
@@ -0,0 +1,22 @@
1#ifndef _LINUX_ATARI_JOYSTICK_H
2#define _LINUX_ATARI_JOYSTICK_H
3
4/*
5 * linux/include/linux/atari_joystick.h
6 * header file for Atari Joystick driver
7 * by Robert de Vries (robert@and.nl) on 19Jul93
8 */
9
10void atari_joystick_interrupt(char*);
11int atari_joystick_init(void);
12extern int atari_mouse_buttons;
13
14struct joystick_status {
15 char fire;
16 char dir;
17 int ready;
18 int active;
19 wait_queue_head_t wait;
20};
21
22#endif
diff --git a/arch/m68k/include/asm/atari_stdma.h b/arch/m68k/include/asm/atari_stdma.h
new file mode 100644
index 000000000000..8e389b7fa70c
--- /dev/null
+++ b/arch/m68k/include/asm/atari_stdma.h
@@ -0,0 +1,22 @@
1
2#ifndef _atari_stdma_h
3#define _atari_stdma_h
4
5
6#include <linux/interrupt.h>
7
8
9/***************************** Prototypes *****************************/
10
11void stdma_lock(irq_handler_t handler, void *data);
12void stdma_release( void );
13int stdma_others_waiting( void );
14int stdma_islocked( void );
15void *stdma_locked_by( void );
16void stdma_init( void );
17
18/************************* End of Prototypes **************************/
19
20
21
22#endif /* _atari_stdma_h */
diff --git a/arch/m68k/include/asm/atari_stram.h b/arch/m68k/include/asm/atari_stram.h
new file mode 100644
index 000000000000..7546d13963be
--- /dev/null
+++ b/arch/m68k/include/asm/atari_stram.h
@@ -0,0 +1,17 @@
1#ifndef _M68K_ATARI_STRAM_H
2#define _M68K_ATARI_STRAM_H
3
4/*
5 * Functions for Atari ST-RAM management
6 */
7
8/* public interface */
9void *atari_stram_alloc(long size, const char *owner);
10void atari_stram_free(void *);
11
12/* functions called internally by other parts of the kernel */
13void atari_stram_init(void);
14void atari_stram_reserve_pages(void *start_mem);
15void atari_stram_mem_init_hook (void);
16
17#endif /*_M68K_ATARI_STRAM_H */
diff --git a/arch/m68k/include/asm/atarihw.h b/arch/m68k/include/asm/atarihw.h
new file mode 100644
index 000000000000..a714e1aa072a
--- /dev/null
+++ b/arch/m68k/include/asm/atarihw.h
@@ -0,0 +1,807 @@
1/*
2** linux/atarihw.h -- This header defines some macros and pointers for
3** the various Atari custom hardware registers.
4**
5** Copyright 1994 by Björn Brauel
6**
7** 5/1/94 Roman Hodek:
8** Added definitions for TT specific chips.
9**
10** 1996-09-13 lars brinkhoff <f93labr@dd.chalmers.se>:
11** Finally added definitions for the matrix/codec and the DSP56001 host
12** interface.
13**
14** This file is subject to the terms and conditions of the GNU General Public
15** License. See the file COPYING in the main directory of this archive
16** for more details.
17**
18*/
19
20#ifndef _LINUX_ATARIHW_H_
21#define _LINUX_ATARIHW_H_
22
23#include <linux/types.h>
24#include <asm/bootinfo.h>
25#include <asm/raw_io.h>
26
27extern u_long atari_mch_cookie;
28extern u_long atari_mch_type;
29extern u_long atari_switches;
30extern int atari_rtc_year_offset;
31extern int atari_dont_touch_floppy_select;
32
33/* convenience macros for testing machine type */
34#define MACH_IS_ST ((atari_mch_cookie >> 16) == ATARI_MCH_ST)
35#define MACH_IS_STE ((atari_mch_cookie >> 16) == ATARI_MCH_STE && \
36 (atari_mch_cookie & 0xffff) == 0)
37#define MACH_IS_MSTE ((atari_mch_cookie >> 16) == ATARI_MCH_STE && \
38 (atari_mch_cookie & 0xffff) == 0x10)
39#define MACH_IS_TT ((atari_mch_cookie >> 16) == ATARI_MCH_TT)
40#define MACH_IS_FALCON ((atari_mch_cookie >> 16) == ATARI_MCH_FALCON)
41#define MACH_IS_MEDUSA (atari_mch_type == ATARI_MACH_MEDUSA)
42#define MACH_IS_AB40 (atari_mch_type == ATARI_MACH_AB40)
43
44/* values for atari_switches */
45#define ATARI_SWITCH_IKBD 0x01
46#define ATARI_SWITCH_MIDI 0x02
47#define ATARI_SWITCH_SND6 0x04
48#define ATARI_SWITCH_SND7 0x08
49#define ATARI_SWITCH_OVSC_SHIFT 16
50#define ATARI_SWITCH_OVSC_IKBD (ATARI_SWITCH_IKBD << ATARI_SWITCH_OVSC_SHIFT)
51#define ATARI_SWITCH_OVSC_MIDI (ATARI_SWITCH_MIDI << ATARI_SWITCH_OVSC_SHIFT)
52#define ATARI_SWITCH_OVSC_SND6 (ATARI_SWITCH_SND6 << ATARI_SWITCH_OVSC_SHIFT)
53#define ATARI_SWITCH_OVSC_SND7 (ATARI_SWITCH_SND7 << ATARI_SWITCH_OVSC_SHIFT)
54#define ATARI_SWITCH_OVSC_MASK 0xffff0000
55
56/*
57 * Define several Hardware-Chips for indication so that for the ATARI we do
58 * no longer decide whether it is a Falcon or other machine . It's just
59 * important what hardware the machine uses
60 */
61
62/* ++roman 08/08/95: rewritten from ORing constants to a C bitfield */
63
64#define ATARIHW_DECLARE(name) unsigned name : 1
65#define ATARIHW_SET(name) (atari_hw_present.name = 1)
66#define ATARIHW_PRESENT(name) (atari_hw_present.name)
67
68struct atari_hw_present {
69 /* video hardware */
70 ATARIHW_DECLARE(STND_SHIFTER); /* ST-Shifter - no base low ! */
71 ATARIHW_DECLARE(EXTD_SHIFTER); /* STe-Shifter - 24 bit address */
72 ATARIHW_DECLARE(TT_SHIFTER); /* TT-Shifter */
73 ATARIHW_DECLARE(VIDEL_SHIFTER); /* Falcon-Shifter */
74 /* sound hardware */
75 ATARIHW_DECLARE(YM_2149); /* Yamaha YM 2149 */
76 ATARIHW_DECLARE(PCM_8BIT); /* PCM-Sound in STe-ATARI */
77 ATARIHW_DECLARE(CODEC); /* CODEC Sound (Falcon) */
78 /* disk storage interfaces */
79 ATARIHW_DECLARE(TT_SCSI); /* Directly mapped NCR5380 */
80 ATARIHW_DECLARE(ST_SCSI); /* NCR5380 via ST-DMA (Falcon) */
81 ATARIHW_DECLARE(ACSI); /* Standard ACSI like in STs */
82 ATARIHW_DECLARE(IDE); /* IDE Interface */
83 ATARIHW_DECLARE(FDCSPEED); /* 8/16 MHz switch for FDC */
84 /* other I/O hardware */
85 ATARIHW_DECLARE(ST_MFP); /* The ST-MFP (there should be no Atari
86 without it... but who knows?) */
87 ATARIHW_DECLARE(TT_MFP); /* 2nd MFP */
88 ATARIHW_DECLARE(SCC); /* Serial Communications Contr. */
89 ATARIHW_DECLARE(ST_ESCC); /* SCC Z83230 in an ST */
90 ATARIHW_DECLARE(ANALOG_JOY); /* Paddle Interface for STe
91 and Falcon */
92 ATARIHW_DECLARE(MICROWIRE); /* Microwire Interface */
93 /* DMA */
94 ATARIHW_DECLARE(STND_DMA); /* 24 Bit limited ST-DMA */
95 ATARIHW_DECLARE(EXTD_DMA); /* 32 Bit ST-DMA */
96 ATARIHW_DECLARE(SCSI_DMA); /* DMA for the NCR5380 */
97 ATARIHW_DECLARE(SCC_DMA); /* DMA for the SCC */
98 /* real time clocks */
99 ATARIHW_DECLARE(TT_CLK); /* TT compatible clock chip */
100 ATARIHW_DECLARE(MSTE_CLK); /* Mega ST(E) clock chip */
101 /* supporting hardware */
102 ATARIHW_DECLARE(SCU); /* System Control Unit */
103 ATARIHW_DECLARE(BLITTER); /* Blitter */
104 ATARIHW_DECLARE(VME); /* VME Bus */
105 ATARIHW_DECLARE(DSP56K); /* DSP56k processor in Falcon */
106};
107
108extern struct atari_hw_present atari_hw_present;
109
110
111/* Reading the MFP port register gives a machine independent delay, since the
112 * MFP always has a 8 MHz clock. This avoids problems with the varying length
113 * of nops on various machines. Somebody claimed that the tstb takes 600 ns.
114 */
115#define MFPDELAY() \
116 __asm__ __volatile__ ( "tstb %0" : : "m" (st_mfp.par_dt_reg) : "cc" );
117
118/* Do cache push/invalidate for DMA read/write. This function obeys the
119 * snooping on some machines (Medusa) and processors: The Medusa itself can
120 * snoop, but only the '040 can source data from its cache to DMA writes i.e.,
121 * reads from memory). Both '040 and '060 invalidate cache entries on snooped
122 * DMA reads (i.e., writes to memory).
123 */
124
125
126#define atari_readb raw_inb
127#define atari_writeb raw_outb
128
129#define atari_inb_p raw_inb
130#define atari_outb_p raw_outb
131
132
133
134#include <linux/mm.h>
135#include <asm/cacheflush.h>
136
137static inline void dma_cache_maintenance( unsigned long paddr,
138 unsigned long len,
139 int writeflag )
140
141{
142 if (writeflag) {
143 if (!MACH_IS_MEDUSA || CPU_IS_060)
144 cache_push( paddr, len );
145 }
146 else {
147 if (!MACH_IS_MEDUSA)
148 cache_clear( paddr, len );
149 }
150}
151
152
153/*
154** Shifter
155 */
156#define ST_LOW 0
157#define ST_MID 1
158#define ST_HIGH 2
159#define TT_LOW 7
160#define TT_MID 4
161#define TT_HIGH 6
162
163#define SHF_BAS (0xffff8200)
164struct SHIFTER
165 {
166 u_char pad1;
167 u_char bas_hi;
168 u_char pad2;
169 u_char bas_md;
170 u_char pad3;
171 u_char volatile vcounthi;
172 u_char pad4;
173 u_char volatile vcountmid;
174 u_char pad5;
175 u_char volatile vcountlow;
176 u_char volatile syncmode;
177 u_char pad6;
178 u_char pad7;
179 u_char bas_lo;
180 };
181# define shifter ((*(volatile struct SHIFTER *)SHF_BAS))
182
183#define SHF_FBAS (0xffff820e)
184struct SHIFTER_F030
185 {
186 u_short off_next;
187 u_short scn_width;
188 };
189# define shifter_f030 ((*(volatile struct SHIFTER_F030 *)SHF_FBAS))
190
191
192#define SHF_TBAS (0xffff8200)
193struct SHIFTER_TT {
194 u_char char_dummy0;
195 u_char bas_hi; /* video mem base addr, high and mid byte */
196 u_char char_dummy1;
197 u_char bas_md;
198 u_char char_dummy2;
199 u_char vcount_hi; /* pointer to currently displayed byte */
200 u_char char_dummy3;
201 u_char vcount_md;
202 u_char char_dummy4;
203 u_char vcount_lo;
204 u_short st_sync; /* ST compatible sync mode register, unused */
205 u_char char_dummy5;
206 u_char bas_lo; /* video mem addr, low byte */
207 u_char char_dummy6[2+3*16];
208 /* $ffff8240: */
209 u_short color_reg[16]; /* 16 color registers */
210 u_char st_shiftmode; /* ST compatible shift mode register, unused */
211 u_char char_dummy7;
212 u_short tt_shiftmode; /* TT shift mode register */
213
214
215};
216#define shifter_tt ((*(volatile struct SHIFTER_TT *)SHF_TBAS))
217
218/* values for shifter_tt->tt_shiftmode */
219#define TT_SHIFTER_STLOW 0x0000
220#define TT_SHIFTER_STMID 0x0100
221#define TT_SHIFTER_STHIGH 0x0200
222#define TT_SHIFTER_TTLOW 0x0700
223#define TT_SHIFTER_TTMID 0x0400
224#define TT_SHIFTER_TTHIGH 0x0600
225#define TT_SHIFTER_MODEMASK 0x0700
226#define TT_SHIFTER_NUMMODE 0x0008
227#define TT_SHIFTER_PALETTE_MASK 0x000f
228#define TT_SHIFTER_GRAYMODE 0x1000
229
230/* 256 TT palette registers */
231#define TT_PALETTE_BASE (0xffff8400)
232#define tt_palette ((volatile u_short *)TT_PALETTE_BASE)
233
234#define TT_PALETTE_RED_MASK 0x0f00
235#define TT_PALETTE_GREEN_MASK 0x00f0
236#define TT_PALETTE_BLUE_MASK 0x000f
237
238/*
239** Falcon030 VIDEL Video Controller
240** for description see File 'linux\tools\atari\hardware.txt
241 */
242#define f030_col ((u_long *) 0xffff9800)
243#define f030_xreg ((u_short*) 0xffff8282)
244#define f030_yreg ((u_short*) 0xffff82a2)
245#define f030_creg ((u_short*) 0xffff82c0)
246#define f030_sreg ((u_short*) 0xffff8260)
247#define f030_mreg ((u_short*) 0xffff820a)
248#define f030_linewidth ((u_short*) 0xffff820e)
249#define f030_hscroll ((u_char*) 0xffff8265)
250
251#define VIDEL_BAS (0xffff8260)
252struct VIDEL {
253 u_short st_shift;
254 u_short pad1;
255 u_char xoffset_s;
256 u_char xoffset;
257 u_short f_shift;
258 u_char pad2[0x1a];
259 u_short hht;
260 u_short hbb;
261 u_short hbe;
262 u_short hdb;
263 u_short hde;
264 u_short hss;
265 u_char pad3[0x14];
266 u_short vft;
267 u_short vbb;
268 u_short vbe;
269 u_short vdb;
270 u_short vde;
271 u_short vss;
272 u_char pad4[0x12];
273 u_short control;
274 u_short mode;
275};
276#define videl ((*(volatile struct VIDEL *)VIDEL_BAS))
277
278/*
279** DMA/WD1772 Disk Controller
280 */
281
282#define FWD_BAS (0xffff8604)
283struct DMA_WD
284 {
285 u_short fdc_acces_seccount;
286 u_short dma_mode_status;
287 u_char dma_vhi; /* Some extended ST-DMAs can handle 32 bit addresses */
288 u_char dma_hi;
289 u_char char_dummy2;
290 u_char dma_md;
291 u_char char_dummy3;
292 u_char dma_lo;
293 u_short fdc_speed;
294 };
295# define dma_wd ((*(volatile struct DMA_WD *)FWD_BAS))
296/* alias */
297#define st_dma dma_wd
298/* The two highest bytes of an extended DMA as a short; this is a must
299 * for the Medusa.
300 */
301#define st_dma_ext_dmahi (*((volatile unsigned short *)0xffff8608))
302
303/*
304** YM2149 Sound Chip
305** access in bytes
306 */
307
308#define YM_BAS (0xffff8800)
309struct SOUND_YM
310 {
311 u_char rd_data_reg_sel;
312 u_char char_dummy1;
313 u_char wd_data;
314 };
315#define sound_ym ((*(volatile struct SOUND_YM *)YM_BAS))
316
317/* TT SCSI DMA */
318
319#define TT_SCSI_DMA_BAS (0xffff8700)
320struct TT_DMA {
321 u_char char_dummy0;
322 u_char dma_addr_hi;
323 u_char char_dummy1;
324 u_char dma_addr_hmd;
325 u_char char_dummy2;
326 u_char dma_addr_lmd;
327 u_char char_dummy3;
328 u_char dma_addr_lo;
329 u_char char_dummy4;
330 u_char dma_cnt_hi;
331 u_char char_dummy5;
332 u_char dma_cnt_hmd;
333 u_char char_dummy6;
334 u_char dma_cnt_lmd;
335 u_char char_dummy7;
336 u_char dma_cnt_lo;
337 u_long dma_restdata;
338 u_short dma_ctrl;
339};
340#define tt_scsi_dma ((*(volatile struct TT_DMA *)TT_SCSI_DMA_BAS))
341
342/* TT SCSI Controller 5380 */
343
344#define TT_5380_BAS (0xffff8781)
345struct TT_5380 {
346 u_char scsi_data;
347 u_char char_dummy1;
348 u_char scsi_icr;
349 u_char char_dummy2;
350 u_char scsi_mode;
351 u_char char_dummy3;
352 u_char scsi_tcr;
353 u_char char_dummy4;
354 u_char scsi_idstat;
355 u_char char_dummy5;
356 u_char scsi_dmastat;
357 u_char char_dummy6;
358 u_char scsi_targrcv;
359 u_char char_dummy7;
360 u_char scsi_inircv;
361};
362#define tt_scsi ((*(volatile struct TT_5380 *)TT_5380_BAS))
363#define tt_scsi_regp ((volatile char *)TT_5380_BAS)
364
365
366/*
367** Falcon DMA Sound Subsystem
368 */
369
370#define MATRIX_BASE (0xffff8930)
371struct MATRIX
372{
373 u_short source;
374 u_short destination;
375 u_char external_frequency_divider;
376 u_char internal_frequency_divider;
377};
378#define falcon_matrix (*(volatile struct MATRIX *)MATRIX_BASE)
379
380#define CODEC_BASE (0xffff8936)
381struct CODEC
382{
383 u_char tracks;
384 u_char input_source;
385#define CODEC_SOURCE_ADC 1
386#define CODEC_SOURCE_MATRIX 2
387 u_char adc_source;
388#define ADC_SOURCE_RIGHT_PSG 1
389#define ADC_SOURCE_LEFT_PSG 2
390 u_char gain;
391#define CODEC_GAIN_RIGHT 0x0f
392#define CODEC_GAIN_LEFT 0xf0
393 u_char attenuation;
394#define CODEC_ATTENUATION_RIGHT 0x0f
395#define CODEC_ATTENUATION_LEFT 0xf0
396 u_char unused1;
397 u_char status;
398#define CODEC_OVERFLOW_RIGHT 1
399#define CODEC_OVERFLOW_LEFT 2
400 u_char unused2, unused3, unused4, unused5;
401 u_char gpio_directions;
402#define GPIO_IN 0
403#define GPIO_OUT 1
404 u_char unused6;
405 u_char gpio_data;
406};
407#define falcon_codec (*(volatile struct CODEC *)CODEC_BASE)
408
409/*
410** Falcon Blitter
411*/
412
413#define BLT_BAS (0xffff8a00)
414
415struct BLITTER
416 {
417 u_short halftone[16];
418 u_short src_x_inc;
419 u_short src_y_inc;
420 u_long src_address;
421 u_short endmask1;
422 u_short endmask2;
423 u_short endmask3;
424 u_short dst_x_inc;
425 u_short dst_y_inc;
426 u_long dst_address;
427 u_short wd_per_line;
428 u_short ln_per_bb;
429 u_short hlf_op_reg;
430 u_short log_op_reg;
431 u_short lin_nm_reg;
432 u_short skew_reg;
433 };
434# define blitter ((*(volatile struct BLITTER *)BLT_BAS))
435
436
437/*
438** SCC Z8530
439 */
440
441#define SCC_BAS (0xffff8c81)
442struct SCC
443 {
444 u_char cha_a_ctrl;
445 u_char char_dummy1;
446 u_char cha_a_data;
447 u_char char_dummy2;
448 u_char cha_b_ctrl;
449 u_char char_dummy3;
450 u_char cha_b_data;
451 };
452# define scc ((*(volatile struct SCC*)SCC_BAS))
453
454/* The ESCC (Z85230) in an Atari ST. The channels are reversed! */
455# define st_escc ((*(volatile struct SCC*)0xfffffa31))
456# define st_escc_dsr ((*(volatile char *)0xfffffa39))
457
458/* TT SCC DMA Controller (same chip as SCSI DMA) */
459
460#define TT_SCC_DMA_BAS (0xffff8c00)
461#define tt_scc_dma ((*(volatile struct TT_DMA *)TT_SCC_DMA_BAS))
462
463/*
464** VIDEL Palette Register
465 */
466
467#define FPL_BAS (0xffff9800)
468struct VIDEL_PALETTE
469 {
470 u_long reg[256];
471 };
472# define videl_palette ((*(volatile struct VIDEL_PALETTE*)FPL_BAS))
473
474
475/*
476** Falcon DSP Host Interface
477 */
478
479#define DSP56K_HOST_INTERFACE_BASE (0xffffa200)
480struct DSP56K_HOST_INTERFACE {
481 u_char icr;
482#define DSP56K_ICR_RREQ 0x01
483#define DSP56K_ICR_TREQ 0x02
484#define DSP56K_ICR_HF0 0x08
485#define DSP56K_ICR_HF1 0x10
486#define DSP56K_ICR_HM0 0x20
487#define DSP56K_ICR_HM1 0x40
488#define DSP56K_ICR_INIT 0x80
489
490 u_char cvr;
491#define DSP56K_CVR_HV_MASK 0x1f
492#define DSP56K_CVR_HC 0x80
493
494 u_char isr;
495#define DSP56K_ISR_RXDF 0x01
496#define DSP56K_ISR_TXDE 0x02
497#define DSP56K_ISR_TRDY 0x04
498#define DSP56K_ISR_HF2 0x08
499#define DSP56K_ISR_HF3 0x10
500#define DSP56K_ISR_DMA 0x40
501#define DSP56K_ISR_HREQ 0x80
502
503 u_char ivr;
504
505 union {
506 u_char b[4];
507 u_short w[2];
508 u_long l;
509 } data;
510};
511#define dsp56k_host_interface ((*(volatile struct DSP56K_HOST_INTERFACE *)DSP56K_HOST_INTERFACE_BASE))
512
513/*
514** MFP 68901
515 */
516
517#define MFP_BAS (0xfffffa01)
518struct MFP
519 {
520 u_char par_dt_reg;
521 u_char char_dummy1;
522 u_char active_edge;
523 u_char char_dummy2;
524 u_char data_dir;
525 u_char char_dummy3;
526 u_char int_en_a;
527 u_char char_dummy4;
528 u_char int_en_b;
529 u_char char_dummy5;
530 u_char int_pn_a;
531 u_char char_dummy6;
532 u_char int_pn_b;
533 u_char char_dummy7;
534 u_char int_sv_a;
535 u_char char_dummy8;
536 u_char int_sv_b;
537 u_char char_dummy9;
538 u_char int_mk_a;
539 u_char char_dummy10;
540 u_char int_mk_b;
541 u_char char_dummy11;
542 u_char vec_adr;
543 u_char char_dummy12;
544 u_char tim_ct_a;
545 u_char char_dummy13;
546 u_char tim_ct_b;
547 u_char char_dummy14;
548 u_char tim_ct_cd;
549 u_char char_dummy15;
550 u_char tim_dt_a;
551 u_char char_dummy16;
552 u_char tim_dt_b;
553 u_char char_dummy17;
554 u_char tim_dt_c;
555 u_char char_dummy18;
556 u_char tim_dt_d;
557 u_char char_dummy19;
558 u_char sync_char;
559 u_char char_dummy20;
560 u_char usart_ctr;
561 u_char char_dummy21;
562 u_char rcv_stat;
563 u_char char_dummy22;
564 u_char trn_stat;
565 u_char char_dummy23;
566 u_char usart_dta;
567 };
568# define st_mfp ((*(volatile struct MFP*)MFP_BAS))
569
570/* TT's second MFP */
571
572#define TT_MFP_BAS (0xfffffa81)
573# define tt_mfp ((*(volatile struct MFP*)TT_MFP_BAS))
574
575
576/* TT System Control Unit */
577
578#define TT_SCU_BAS (0xffff8e01)
579struct TT_SCU {
580 u_char sys_mask;
581 u_char char_dummy1;
582 u_char sys_stat;
583 u_char char_dummy2;
584 u_char softint;
585 u_char char_dummy3;
586 u_char vmeint;
587 u_char char_dummy4;
588 u_char gp_reg1;
589 u_char char_dummy5;
590 u_char gp_reg2;
591 u_char char_dummy6;
592 u_char vme_mask;
593 u_char char_dummy7;
594 u_char vme_stat;
595};
596#define tt_scu ((*(volatile struct TT_SCU *)TT_SCU_BAS))
597
598/* TT real time clock */
599
600#define TT_RTC_BAS (0xffff8961)
601struct TT_RTC {
602 u_char regsel;
603 u_char dummy;
604 u_char data;
605};
606#define tt_rtc ((*(volatile struct TT_RTC *)TT_RTC_BAS))
607
608
609/*
610** ACIA 6850
611 */
612/* constants for the ACIA registers */
613
614/* baudrate selection and reset (Baudrate = clock/factor) */
615#define ACIA_DIV1 0
616#define ACIA_DIV16 1
617#define ACIA_DIV64 2
618#define ACIA_RESET 3
619
620/* character format */
621#define ACIA_D7E2S (0<<2) /* 7 data, even parity, 2 stop */
622#define ACIA_D7O2S (1<<2) /* 7 data, odd parity, 2 stop */
623#define ACIA_D7E1S (2<<2) /* 7 data, even parity, 1 stop */
624#define ACIA_D7O1S (3<<2) /* 7 data, odd parity, 1 stop */
625#define ACIA_D8N2S (4<<2) /* 8 data, no parity, 2 stop */
626#define ACIA_D8N1S (5<<2) /* 8 data, no parity, 1 stop */
627#define ACIA_D8E1S (6<<2) /* 8 data, even parity, 1 stop */
628#define ACIA_D8O1S (7<<2) /* 8 data, odd parity, 1 stop */
629
630/* transmit control */
631#define ACIA_RLTID (0<<5) /* RTS low, TxINT disabled */
632#define ACIA_RLTIE (1<<5) /* RTS low, TxINT enabled */
633#define ACIA_RHTID (2<<5) /* RTS high, TxINT disabled */
634#define ACIA_RLTIDSB (3<<5) /* RTS low, TxINT disabled, send break */
635
636/* receive control */
637#define ACIA_RID (0<<7) /* RxINT disabled */
638#define ACIA_RIE (1<<7) /* RxINT enabled */
639
640/* status fields of the ACIA */
641#define ACIA_RDRF 1 /* Receive Data Register Full */
642#define ACIA_TDRE (1<<1) /* Transmit Data Register Empty */
643#define ACIA_DCD (1<<2) /* Data Carrier Detect */
644#define ACIA_CTS (1<<3) /* Clear To Send */
645#define ACIA_FE (1<<4) /* Framing Error */
646#define ACIA_OVRN (1<<5) /* Receiver Overrun */
647#define ACIA_PE (1<<6) /* Parity Error */
648#define ACIA_IRQ (1<<7) /* Interrupt Request */
649
650#define ACIA_BAS (0xfffffc00)
651struct ACIA
652 {
653 u_char key_ctrl;
654 u_char char_dummy1;
655 u_char key_data;
656 u_char char_dummy2;
657 u_char mid_ctrl;
658 u_char char_dummy3;
659 u_char mid_data;
660 };
661# define acia ((*(volatile struct ACIA*)ACIA_BAS))
662
663#define TT_DMASND_BAS (0xffff8900)
664struct TT_DMASND {
665 u_char int_ctrl; /* Falcon: Interrupt control */
666 u_char ctrl;
667 u_char pad2;
668 u_char bas_hi;
669 u_char pad3;
670 u_char bas_mid;
671 u_char pad4;
672 u_char bas_low;
673 u_char pad5;
674 u_char addr_hi;
675 u_char pad6;
676 u_char addr_mid;
677 u_char pad7;
678 u_char addr_low;
679 u_char pad8;
680 u_char end_hi;
681 u_char pad9;
682 u_char end_mid;
683 u_char pad10;
684 u_char end_low;
685 u_char pad11[12];
686 u_char track_select; /* Falcon */
687 u_char mode;
688 u_char pad12[14];
689 /* Falcon only: */
690 u_short cbar_src;
691 u_short cbar_dst;
692 u_char ext_div;
693 u_char int_div;
694 u_char rec_track_select;
695 u_char dac_src;
696 u_char adc_src;
697 u_char input_gain;
698 u_short output_atten;
699};
700# define tt_dmasnd ((*(volatile struct TT_DMASND *)TT_DMASND_BAS))
701
702#define DMASND_MFP_INT_REPLAY 0x01
703#define DMASND_MFP_INT_RECORD 0x02
704#define DMASND_TIMERA_INT_REPLAY 0x04
705#define DMASND_TIMERA_INT_RECORD 0x08
706
707#define DMASND_CTRL_OFF 0x00
708#define DMASND_CTRL_ON 0x01
709#define DMASND_CTRL_REPEAT 0x02
710#define DMASND_CTRL_RECORD_ON 0x10
711#define DMASND_CTRL_RECORD_OFF 0x00
712#define DMASND_CTRL_RECORD_REPEAT 0x20
713#define DMASND_CTRL_SELECT_REPLAY 0x00
714#define DMASND_CTRL_SELECT_RECORD 0x80
715#define DMASND_MODE_MONO 0x80
716#define DMASND_MODE_STEREO 0x00
717#define DMASND_MODE_8BIT 0x00
718#define DMASND_MODE_16BIT 0x40 /* Falcon only */
719#define DMASND_MODE_6KHZ 0x00 /* Falcon: mute */
720#define DMASND_MODE_12KHZ 0x01
721#define DMASND_MODE_25KHZ 0x02
722#define DMASND_MODE_50KHZ 0x03
723
724
725#define DMASNDSetBase(bufstart) \
726 do { \
727 tt_dmasnd.bas_hi = (unsigned char)(((bufstart) & 0xff0000) >> 16); \
728 tt_dmasnd.bas_mid = (unsigned char)(((bufstart) & 0x00ff00) >> 8); \
729 tt_dmasnd.bas_low = (unsigned char) ((bufstart) & 0x0000ff); \
730 } while( 0 )
731
732#define DMASNDGetAdr() ((tt_dmasnd.addr_hi << 16) + \
733 (tt_dmasnd.addr_mid << 8) + \
734 (tt_dmasnd.addr_low))
735
736#define DMASNDSetEnd(bufend) \
737 do { \
738 tt_dmasnd.end_hi = (unsigned char)(((bufend) & 0xff0000) >> 16); \
739 tt_dmasnd.end_mid = (unsigned char)(((bufend) & 0x00ff00) >> 8); \
740 tt_dmasnd.end_low = (unsigned char) ((bufend) & 0x0000ff); \
741 } while( 0 )
742
743
744#define TT_MICROWIRE_BAS (0xffff8922)
745struct TT_MICROWIRE {
746 u_short data;
747 u_short mask;
748};
749# define tt_microwire ((*(volatile struct TT_MICROWIRE *)TT_MICROWIRE_BAS))
750
751#define MW_LM1992_ADDR 0x0400
752
753#define MW_LM1992_VOLUME(dB) \
754 (0x0c0 | ((dB) < -80 ? 0 : (dB) > 0 ? 40 : (((dB) + 80) / 2)))
755#define MW_LM1992_BALLEFT(dB) \
756 (0x140 | ((dB) < -40 ? 0 : (dB) > 0 ? 20 : (((dB) + 40) / 2)))
757#define MW_LM1992_BALRIGHT(dB) \
758 (0x100 | ((dB) < -40 ? 0 : (dB) > 0 ? 20 : (((dB) + 40) / 2)))
759#define MW_LM1992_TREBLE(dB) \
760 (0x080 | ((dB) < -12 ? 0 : (dB) > 12 ? 12 : (((dB) / 2) + 6)))
761#define MW_LM1992_BASS(dB) \
762 (0x040 | ((dB) < -12 ? 0 : (dB) > 12 ? 12 : (((dB) / 2) + 6)))
763
764#define MW_LM1992_PSG_LOW 0x000
765#define MW_LM1992_PSG_HIGH 0x001
766#define MW_LM1992_PSG_OFF 0x002
767
768#define MSTE_RTC_BAS (0xfffffc21)
769
770struct MSTE_RTC {
771 u_char sec_ones;
772 u_char dummy1;
773 u_char sec_tens;
774 u_char dummy2;
775 u_char min_ones;
776 u_char dummy3;
777 u_char min_tens;
778 u_char dummy4;
779 u_char hr_ones;
780 u_char dummy5;
781 u_char hr_tens;
782 u_char dummy6;
783 u_char weekday;
784 u_char dummy7;
785 u_char day_ones;
786 u_char dummy8;
787 u_char day_tens;
788 u_char dummy9;
789 u_char mon_ones;
790 u_char dummy10;
791 u_char mon_tens;
792 u_char dummy11;
793 u_char year_ones;
794 u_char dummy12;
795 u_char year_tens;
796 u_char dummy13;
797 u_char mode;
798 u_char dummy14;
799 u_char test;
800 u_char dummy15;
801 u_char reset;
802};
803
804#define mste_rtc ((*(volatile struct MSTE_RTC *)MSTE_RTC_BAS))
805
806#endif /* linux/atarihw.h */
807
diff --git a/arch/m68k/include/asm/atariints.h b/arch/m68k/include/asm/atariints.h
new file mode 100644
index 000000000000..f597892e43a0
--- /dev/null
+++ b/arch/m68k/include/asm/atariints.h
@@ -0,0 +1,204 @@
1/*
2** atariints.h -- Atari Linux interrupt handling structs and prototypes
3**
4** Copyright 1994 by Björn Brauel
5**
6** 5/2/94 Roman Hodek:
7** TT interrupt definitions added.
8**
9** 12/02/96: (Roman)
10** Adapted to new int handling scheme (see ataints.c); revised numbering
11**
12** This file is subject to the terms and conditions of the GNU General Public
13** License. See the file COPYING in the main directory of this archive
14** for more details.
15**
16*/
17
18#ifndef _LINUX_ATARIINTS_H_
19#define _LINUX_ATARIINTS_H_
20
21#include <asm/irq.h>
22#include <asm/atarihw.h>
23
24/*
25** Atari Interrupt sources.
26**
27*/
28
29#define STMFP_SOURCE_BASE 8
30#define TTMFP_SOURCE_BASE 24
31#define SCC_SOURCE_BASE 40
32#define VME_SOURCE_BASE 56
33#define VME_MAX_SOURCES 16
34
35#define NUM_ATARI_SOURCES (VME_SOURCE_BASE+VME_MAX_SOURCES-STMFP_SOURCE_BASE)
36
37/* convert vector number to int source number */
38#define IRQ_VECTOR_TO_SOURCE(v) ((v) - ((v) < 0x20 ? 0x18 : (0x40-8)))
39
40/* convert irq_handler index to vector number */
41#define IRQ_SOURCE_TO_VECTOR(i) ((i) + ((i) < 8 ? 0x18 : (0x40-8)))
42
43/* interrupt service types */
44#define IRQ_TYPE_SLOW 0
45#define IRQ_TYPE_FAST 1
46#define IRQ_TYPE_PRIO 2
47
48/* ST-MFP interrupts */
49#define IRQ_MFP_BUSY (8)
50#define IRQ_MFP_DCD (9)
51#define IRQ_MFP_CTS (10)
52#define IRQ_MFP_GPU (11)
53#define IRQ_MFP_TIMD (12)
54#define IRQ_MFP_TIMC (13)
55#define IRQ_MFP_ACIA (14)
56#define IRQ_MFP_FDC (15)
57#define IRQ_MFP_ACSI IRQ_MFP_FDC
58#define IRQ_MFP_FSCSI IRQ_MFP_FDC
59#define IRQ_MFP_IDE IRQ_MFP_FDC
60#define IRQ_MFP_TIMB (16)
61#define IRQ_MFP_SERERR (17)
62#define IRQ_MFP_SEREMPT (18)
63#define IRQ_MFP_RECERR (19)
64#define IRQ_MFP_RECFULL (20)
65#define IRQ_MFP_TIMA (21)
66#define IRQ_MFP_RI (22)
67#define IRQ_MFP_MMD (23)
68
69/* TT-MFP interrupts */
70#define IRQ_TT_MFP_IO0 (24)
71#define IRQ_TT_MFP_IO1 (25)
72#define IRQ_TT_MFP_SCC (26)
73#define IRQ_TT_MFP_RI (27)
74#define IRQ_TT_MFP_TIMD (28)
75#define IRQ_TT_MFP_TIMC (29)
76#define IRQ_TT_MFP_DRVRDY (30)
77#define IRQ_TT_MFP_SCSIDMA (31)
78#define IRQ_TT_MFP_TIMB (32)
79#define IRQ_TT_MFP_SERERR (33)
80#define IRQ_TT_MFP_SEREMPT (34)
81#define IRQ_TT_MFP_RECERR (35)
82#define IRQ_TT_MFP_RECFULL (36)
83#define IRQ_TT_MFP_TIMA (37)
84#define IRQ_TT_MFP_RTC (38)
85#define IRQ_TT_MFP_SCSI (39)
86
87/* SCC interrupts */
88#define IRQ_SCCB_TX (40)
89#define IRQ_SCCB_STAT (42)
90#define IRQ_SCCB_RX (44)
91#define IRQ_SCCB_SPCOND (46)
92#define IRQ_SCCA_TX (48)
93#define IRQ_SCCA_STAT (50)
94#define IRQ_SCCA_RX (52)
95#define IRQ_SCCA_SPCOND (54)
96
97
98#define INT_CLK 24576 /* CLK while int_clk =2.456MHz and divide = 100 */
99#define INT_TICKS 246 /* to make sched_time = 99.902... HZ */
100
101
102#define MFP_ENABLE 0
103#define MFP_PENDING 1
104#define MFP_SERVICE 2
105#define MFP_MASK 3
106
107/* Utility functions for setting/clearing bits in the interrupt registers of
108 * the MFP. 'type' should be constant, if 'irq' is constant, too, code size is
109 * reduced. set_mfp_bit() is nonsense for PENDING and SERVICE registers. */
110
111static inline int get_mfp_bit( unsigned irq, int type )
112
113{ unsigned char mask, *reg;
114
115 mask = 1 << (irq & 7);
116 reg = (unsigned char *)&st_mfp.int_en_a + type*4 +
117 ((irq & 8) >> 2) + (((irq-8) & 16) << 3);
118 return( *reg & mask );
119}
120
121static inline void set_mfp_bit( unsigned irq, int type )
122
123{ unsigned char mask, *reg;
124
125 mask = 1 << (irq & 7);
126 reg = (unsigned char *)&st_mfp.int_en_a + type*4 +
127 ((irq & 8) >> 2) + (((irq-8) & 16) << 3);
128 __asm__ __volatile__ ( "orb %0,%1"
129 : : "di" (mask), "m" (*reg) : "memory" );
130}
131
132static inline void clear_mfp_bit( unsigned irq, int type )
133
134{ unsigned char mask, *reg;
135
136 mask = ~(1 << (irq & 7));
137 reg = (unsigned char *)&st_mfp.int_en_a + type*4 +
138 ((irq & 8) >> 2) + (((irq-8) & 16) << 3);
139 if (type == MFP_PENDING || type == MFP_SERVICE)
140 __asm__ __volatile__ ( "moveb %0,%1"
141 : : "di" (mask), "m" (*reg) : "memory" );
142 else
143 __asm__ __volatile__ ( "andb %0,%1"
144 : : "di" (mask), "m" (*reg) : "memory" );
145}
146
147/*
148 * {en,dis}able_irq have the usual semantics of temporary blocking the
149 * interrupt, but not loosing requests that happen between disabling and
150 * enabling. This is done with the MFP mask registers.
151 */
152
153static inline void atari_enable_irq( unsigned irq )
154
155{
156 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return;
157 set_mfp_bit( irq, MFP_MASK );
158}
159
160static inline void atari_disable_irq( unsigned irq )
161
162{
163 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return;
164 clear_mfp_bit( irq, MFP_MASK );
165}
166
167/*
168 * In opposite to {en,dis}able_irq, requests between turn{off,on}_irq are not
169 * "stored"
170 */
171
172static inline void atari_turnon_irq( unsigned irq )
173
174{
175 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return;
176 set_mfp_bit( irq, MFP_ENABLE );
177}
178
179static inline void atari_turnoff_irq( unsigned irq )
180
181{
182 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return;
183 clear_mfp_bit( irq, MFP_ENABLE );
184 clear_mfp_bit( irq, MFP_PENDING );
185}
186
187static inline void atari_clear_pending_irq( unsigned irq )
188
189{
190 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return;
191 clear_mfp_bit( irq, MFP_PENDING );
192}
193
194static inline int atari_irq_pending( unsigned irq )
195
196{
197 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return( 0 );
198 return( get_mfp_bit( irq, MFP_PENDING ) );
199}
200
201unsigned long atari_register_vme_int( void );
202void atari_unregister_vme_int( unsigned long );
203
204#endif /* linux/atariints.h */
diff --git a/arch/m68k/include/asm/atarikb.h b/arch/m68k/include/asm/atarikb.h
new file mode 100644
index 000000000000..546e7da5804f
--- /dev/null
+++ b/arch/m68k/include/asm/atarikb.h
@@ -0,0 +1,46 @@
1/*
2** atarikb.h -- This header contains the prototypes of functions of
3** the intelligent keyboard of the Atari needed by the
4** mouse and joystick drivers.
5**
6** Copyright 1994 by Robert de Vries
7**
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
10** for more details.
11**
12** Created: 20 Feb 1994 by Robert de Vries
13*/
14
15#ifndef _LINUX_ATARIKB_H
16#define _LINUX_ATARIKB_H
17
18void ikbd_write(const char *, int);
19void ikbd_mouse_button_action(int mode);
20void ikbd_mouse_rel_pos(void);
21void ikbd_mouse_abs_pos(int xmax, int ymax);
22void ikbd_mouse_kbd_mode(int dx, int dy);
23void ikbd_mouse_thresh(int x, int y);
24void ikbd_mouse_scale(int x, int y);
25void ikbd_mouse_pos_get(int *x, int *y);
26void ikbd_mouse_pos_set(int x, int y);
27void ikbd_mouse_y0_bot(void);
28void ikbd_mouse_y0_top(void);
29void ikbd_mouse_disable(void);
30void ikbd_joystick_event_on(void);
31void ikbd_joystick_event_off(void);
32void ikbd_joystick_get_state(void);
33void ikbd_joystick_disable(void);
34
35/* Hook for MIDI serial driver */
36extern void (*atari_MIDI_interrupt_hook) (void);
37/* Hook for mouse driver */
38extern void (*atari_mouse_interrupt_hook) (char *);
39/* Hook for keyboard inputdev driver */
40extern void (*atari_input_keyboard_interrupt_hook) (unsigned char, char);
41/* Hook for mouse inputdev driver */
42extern void (*atari_input_mouse_interrupt_hook) (char *);
43
44int atari_keyb_init(void);
45
46#endif /* _LINUX_ATARIKB_H */
diff --git a/arch/m68k/include/asm/atomic.h b/arch/m68k/include/asm/atomic.h
new file mode 100644
index 000000000000..8d29145ebb27
--- /dev/null
+++ b/arch/m68k/include/asm/atomic.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "atomic_no.h"
3#else
4#include "atomic_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/atomic_mm.h b/arch/m68k/include/asm/atomic_mm.h
new file mode 100644
index 000000000000..eb0ab9d4ee77
--- /dev/null
+++ b/arch/m68k/include/asm/atomic_mm.h
@@ -0,0 +1,196 @@
1#ifndef __ARCH_M68K_ATOMIC__
2#define __ARCH_M68K_ATOMIC__
3
4#include <linux/types.h>
5#include <asm/system.h>
6
7/*
8 * Atomic operations that C can't guarantee us. Useful for
9 * resource counting etc..
10 */
11
12/*
13 * We do not have SMP m68k systems, so we don't have to deal with that.
14 */
15
16#define ATOMIC_INIT(i) { (i) }
17
18#define atomic_read(v) ((v)->counter)
19#define atomic_set(v, i) (((v)->counter) = i)
20
21static inline void atomic_add(int i, atomic_t *v)
22{
23 __asm__ __volatile__("addl %1,%0" : "+m" (*v) : "id" (i));
24}
25
26static inline void atomic_sub(int i, atomic_t *v)
27{
28 __asm__ __volatile__("subl %1,%0" : "+m" (*v) : "id" (i));
29}
30
31static inline void atomic_inc(atomic_t *v)
32{
33 __asm__ __volatile__("addql #1,%0" : "+m" (*v));
34}
35
36static inline void atomic_dec(atomic_t *v)
37{
38 __asm__ __volatile__("subql #1,%0" : "+m" (*v));
39}
40
41static inline int atomic_dec_and_test(atomic_t *v)
42{
43 char c;
44 __asm__ __volatile__("subql #1,%1; seq %0" : "=d" (c), "+m" (*v));
45 return c != 0;
46}
47
48static inline int atomic_inc_and_test(atomic_t *v)
49{
50 char c;
51 __asm__ __volatile__("addql #1,%1; seq %0" : "=d" (c), "+m" (*v));
52 return c != 0;
53}
54
55#ifdef CONFIG_RMW_INSNS
56
57static inline int atomic_add_return(int i, atomic_t *v)
58{
59 int t, tmp;
60
61 __asm__ __volatile__(
62 "1: movel %2,%1\n"
63 " addl %3,%1\n"
64 " casl %2,%1,%0\n"
65 " jne 1b"
66 : "+m" (*v), "=&d" (t), "=&d" (tmp)
67 : "g" (i), "2" (atomic_read(v)));
68 return t;
69}
70
71static inline int atomic_sub_return(int i, atomic_t *v)
72{
73 int t, tmp;
74
75 __asm__ __volatile__(
76 "1: movel %2,%1\n"
77 " subl %3,%1\n"
78 " casl %2,%1,%0\n"
79 " jne 1b"
80 : "+m" (*v), "=&d" (t), "=&d" (tmp)
81 : "g" (i), "2" (atomic_read(v)));
82 return t;
83}
84
85#define atomic_cmpxchg(v, o, n) ((int)cmpxchg(&((v)->counter), (o), (n)))
86#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
87
88#else /* !CONFIG_RMW_INSNS */
89
90static inline int atomic_add_return(int i, atomic_t * v)
91{
92 unsigned long flags;
93 int t;
94
95 local_irq_save(flags);
96 t = atomic_read(v);
97 t += i;
98 atomic_set(v, t);
99 local_irq_restore(flags);
100
101 return t;
102}
103
104static inline int atomic_sub_return(int i, atomic_t * v)
105{
106 unsigned long flags;
107 int t;
108
109 local_irq_save(flags);
110 t = atomic_read(v);
111 t -= i;
112 atomic_set(v, t);
113 local_irq_restore(flags);
114
115 return t;
116}
117
118static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
119{
120 unsigned long flags;
121 int prev;
122
123 local_irq_save(flags);
124 prev = atomic_read(v);
125 if (prev == old)
126 atomic_set(v, new);
127 local_irq_restore(flags);
128 return prev;
129}
130
131static inline int atomic_xchg(atomic_t *v, int new)
132{
133 unsigned long flags;
134 int prev;
135
136 local_irq_save(flags);
137 prev = atomic_read(v);
138 atomic_set(v, new);
139 local_irq_restore(flags);
140 return prev;
141}
142
143#endif /* !CONFIG_RMW_INSNS */
144
145#define atomic_dec_return(v) atomic_sub_return(1, (v))
146#define atomic_inc_return(v) atomic_add_return(1, (v))
147
148static inline int atomic_sub_and_test(int i, atomic_t *v)
149{
150 char c;
151 __asm__ __volatile__("subl %2,%1; seq %0" : "=d" (c), "+m" (*v): "g" (i));
152 return c != 0;
153}
154
155static inline int atomic_add_negative(int i, atomic_t *v)
156{
157 char c;
158 __asm__ __volatile__("addl %2,%1; smi %0" : "=d" (c), "+m" (*v): "g" (i));
159 return c != 0;
160}
161
162static inline void atomic_clear_mask(unsigned long mask, unsigned long *v)
163{
164 __asm__ __volatile__("andl %1,%0" : "+m" (*v) : "id" (~(mask)));
165}
166
167static inline void atomic_set_mask(unsigned long mask, unsigned long *v)
168{
169 __asm__ __volatile__("orl %1,%0" : "+m" (*v) : "id" (mask));
170}
171
172static __inline__ int atomic_add_unless(atomic_t *v, int a, int u)
173{
174 int c, old;
175 c = atomic_read(v);
176 for (;;) {
177 if (unlikely(c == (u)))
178 break;
179 old = atomic_cmpxchg((v), c, c + (a));
180 if (likely(old == c))
181 break;
182 c = old;
183 }
184 return c != (u);
185}
186
187#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
188
189/* Atomic operations are already serializing */
190#define smp_mb__before_atomic_dec() barrier()
191#define smp_mb__after_atomic_dec() barrier()
192#define smp_mb__before_atomic_inc() barrier()
193#define smp_mb__after_atomic_inc() barrier()
194
195#include <asm-generic/atomic.h>
196#endif /* __ARCH_M68K_ATOMIC __ */
diff --git a/arch/m68knommu/include/asm/atomic.h b/arch/m68k/include/asm/atomic_no.h
index 6bb674855a3f..6bb674855a3f 100644
--- a/arch/m68knommu/include/asm/atomic.h
+++ b/arch/m68k/include/asm/atomic_no.h
diff --git a/arch/m68knommu/include/asm/auxvec.h b/arch/m68k/include/asm/auxvec.h
index 844d6d52204b..844d6d52204b 100644
--- a/arch/m68knommu/include/asm/auxvec.h
+++ b/arch/m68k/include/asm/auxvec.h
diff --git a/arch/m68k/include/asm/bitops.h b/arch/m68k/include/asm/bitops.h
new file mode 100644
index 000000000000..ce163abddaba
--- /dev/null
+++ b/arch/m68k/include/asm/bitops.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bitops_no.h"
3#else
4#include "bitops_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/bitops_mm.h b/arch/m68k/include/asm/bitops_mm.h
new file mode 100644
index 000000000000..9bde784e7bad
--- /dev/null
+++ b/arch/m68k/include/asm/bitops_mm.h
@@ -0,0 +1,464 @@
1#ifndef _M68K_BITOPS_H
2#define _M68K_BITOPS_H
3/*
4 * Copyright 1992, Linus Torvalds.
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive
8 * for more details.
9 */
10
11#ifndef _LINUX_BITOPS_H
12#error only <linux/bitops.h> can be included directly
13#endif
14
15#include <linux/compiler.h>
16
17/*
18 * Require 68020 or better.
19 *
20 * They use the standard big-endian m680x0 bit ordering.
21 */
22
23#define test_and_set_bit(nr,vaddr) \
24 (__builtin_constant_p(nr) ? \
25 __constant_test_and_set_bit(nr, vaddr) : \
26 __generic_test_and_set_bit(nr, vaddr))
27
28#define __test_and_set_bit(nr,vaddr) test_and_set_bit(nr,vaddr)
29
30static inline int __constant_test_and_set_bit(int nr, unsigned long *vaddr)
31{
32 char *p = (char *)vaddr + (nr ^ 31) / 8;
33 char retval;
34
35 __asm__ __volatile__ ("bset %2,%1; sne %0"
36 : "=d" (retval), "+m" (*p)
37 : "di" (nr & 7));
38
39 return retval;
40}
41
42static inline int __generic_test_and_set_bit(int nr, unsigned long *vaddr)
43{
44 char retval;
45
46 __asm__ __volatile__ ("bfset %2{%1:#1}; sne %0"
47 : "=d" (retval) : "d" (nr^31), "o" (*vaddr) : "memory");
48
49 return retval;
50}
51
52#define set_bit(nr,vaddr) \
53 (__builtin_constant_p(nr) ? \
54 __constant_set_bit(nr, vaddr) : \
55 __generic_set_bit(nr, vaddr))
56
57#define __set_bit(nr,vaddr) set_bit(nr,vaddr)
58
59static inline void __constant_set_bit(int nr, volatile unsigned long *vaddr)
60{
61 char *p = (char *)vaddr + (nr ^ 31) / 8;
62 __asm__ __volatile__ ("bset %1,%0"
63 : "+m" (*p) : "di" (nr & 7));
64}
65
66static inline void __generic_set_bit(int nr, volatile unsigned long *vaddr)
67{
68 __asm__ __volatile__ ("bfset %1{%0:#1}"
69 : : "d" (nr^31), "o" (*vaddr) : "memory");
70}
71
72#define test_and_clear_bit(nr,vaddr) \
73 (__builtin_constant_p(nr) ? \
74 __constant_test_and_clear_bit(nr, vaddr) : \
75 __generic_test_and_clear_bit(nr, vaddr))
76
77#define __test_and_clear_bit(nr,vaddr) test_and_clear_bit(nr,vaddr)
78
79static inline int __constant_test_and_clear_bit(int nr, unsigned long *vaddr)
80{
81 char *p = (char *)vaddr + (nr ^ 31) / 8;
82 char retval;
83
84 __asm__ __volatile__ ("bclr %2,%1; sne %0"
85 : "=d" (retval), "+m" (*p)
86 : "di" (nr & 7));
87
88 return retval;
89}
90
91static inline int __generic_test_and_clear_bit(int nr, unsigned long *vaddr)
92{
93 char retval;
94
95 __asm__ __volatile__ ("bfclr %2{%1:#1}; sne %0"
96 : "=d" (retval) : "d" (nr^31), "o" (*vaddr) : "memory");
97
98 return retval;
99}
100
101/*
102 * clear_bit() doesn't provide any barrier for the compiler.
103 */
104#define smp_mb__before_clear_bit() barrier()
105#define smp_mb__after_clear_bit() barrier()
106
107#define clear_bit(nr,vaddr) \
108 (__builtin_constant_p(nr) ? \
109 __constant_clear_bit(nr, vaddr) : \
110 __generic_clear_bit(nr, vaddr))
111#define __clear_bit(nr,vaddr) clear_bit(nr,vaddr)
112
113static inline void __constant_clear_bit(int nr, volatile unsigned long *vaddr)
114{
115 char *p = (char *)vaddr + (nr ^ 31) / 8;
116 __asm__ __volatile__ ("bclr %1,%0"
117 : "+m" (*p) : "di" (nr & 7));
118}
119
120static inline void __generic_clear_bit(int nr, volatile unsigned long *vaddr)
121{
122 __asm__ __volatile__ ("bfclr %1{%0:#1}"
123 : : "d" (nr^31), "o" (*vaddr) : "memory");
124}
125
126#define test_and_change_bit(nr,vaddr) \
127 (__builtin_constant_p(nr) ? \
128 __constant_test_and_change_bit(nr, vaddr) : \
129 __generic_test_and_change_bit(nr, vaddr))
130
131#define __test_and_change_bit(nr,vaddr) test_and_change_bit(nr,vaddr)
132#define __change_bit(nr,vaddr) change_bit(nr,vaddr)
133
134static inline int __constant_test_and_change_bit(int nr, unsigned long *vaddr)
135{
136 char *p = (char *)vaddr + (nr ^ 31) / 8;
137 char retval;
138
139 __asm__ __volatile__ ("bchg %2,%1; sne %0"
140 : "=d" (retval), "+m" (*p)
141 : "di" (nr & 7));
142
143 return retval;
144}
145
146static inline int __generic_test_and_change_bit(int nr, unsigned long *vaddr)
147{
148 char retval;
149
150 __asm__ __volatile__ ("bfchg %2{%1:#1}; sne %0"
151 : "=d" (retval) : "d" (nr^31), "o" (*vaddr) : "memory");
152
153 return retval;
154}
155
156#define change_bit(nr,vaddr) \
157 (__builtin_constant_p(nr) ? \
158 __constant_change_bit(nr, vaddr) : \
159 __generic_change_bit(nr, vaddr))
160
161static inline void __constant_change_bit(int nr, unsigned long *vaddr)
162{
163 char *p = (char *)vaddr + (nr ^ 31) / 8;
164 __asm__ __volatile__ ("bchg %1,%0"
165 : "+m" (*p) : "di" (nr & 7));
166}
167
168static inline void __generic_change_bit(int nr, unsigned long *vaddr)
169{
170 __asm__ __volatile__ ("bfchg %1{%0:#1}"
171 : : "d" (nr^31), "o" (*vaddr) : "memory");
172}
173
174static inline int test_bit(int nr, const unsigned long *vaddr)
175{
176 return (vaddr[nr >> 5] & (1UL << (nr & 31))) != 0;
177}
178
179static inline int find_first_zero_bit(const unsigned long *vaddr,
180 unsigned size)
181{
182 const unsigned long *p = vaddr;
183 int res = 32;
184 unsigned long num;
185
186 if (!size)
187 return 0;
188
189 size = (size + 31) >> 5;
190 while (!(num = ~*p++)) {
191 if (!--size)
192 goto out;
193 }
194
195 __asm__ __volatile__ ("bfffo %1{#0,#0},%0"
196 : "=d" (res) : "d" (num & -num));
197 res ^= 31;
198out:
199 return ((long)p - (long)vaddr - 4) * 8 + res;
200}
201
202static inline int find_next_zero_bit(const unsigned long *vaddr, int size,
203 int offset)
204{
205 const unsigned long *p = vaddr + (offset >> 5);
206 int bit = offset & 31UL, res;
207
208 if (offset >= size)
209 return size;
210
211 if (bit) {
212 unsigned long num = ~*p++ & (~0UL << bit);
213 offset -= bit;
214
215 /* Look for zero in first longword */
216 __asm__ __volatile__ ("bfffo %1{#0,#0},%0"
217 : "=d" (res) : "d" (num & -num));
218 if (res < 32)
219 return offset + (res ^ 31);
220 offset += 32;
221 }
222 /* No zero yet, search remaining full bytes for a zero */
223 res = find_first_zero_bit(p, size - ((long)p - (long)vaddr) * 8);
224 return offset + res;
225}
226
227static inline int find_first_bit(const unsigned long *vaddr, unsigned size)
228{
229 const unsigned long *p = vaddr;
230 int res = 32;
231 unsigned long num;
232
233 if (!size)
234 return 0;
235
236 size = (size + 31) >> 5;
237 while (!(num = *p++)) {
238 if (!--size)
239 goto out;
240 }
241
242 __asm__ __volatile__ ("bfffo %1{#0,#0},%0"
243 : "=d" (res) : "d" (num & -num));
244 res ^= 31;
245out:
246 return ((long)p - (long)vaddr - 4) * 8 + res;
247}
248
249static inline int find_next_bit(const unsigned long *vaddr, int size,
250 int offset)
251{
252 const unsigned long *p = vaddr + (offset >> 5);
253 int bit = offset & 31UL, res;
254
255 if (offset >= size)
256 return size;
257
258 if (bit) {
259 unsigned long num = *p++ & (~0UL << bit);
260 offset -= bit;
261
262 /* Look for one in first longword */
263 __asm__ __volatile__ ("bfffo %1{#0,#0},%0"
264 : "=d" (res) : "d" (num & -num));
265 if (res < 32)
266 return offset + (res ^ 31);
267 offset += 32;
268 }
269 /* No one yet, search remaining full bytes for a one */
270 res = find_first_bit(p, size - ((long)p - (long)vaddr) * 8);
271 return offset + res;
272}
273
274/*
275 * ffz = Find First Zero in word. Undefined if no zero exists,
276 * so code should check against ~0UL first..
277 */
278static inline unsigned long ffz(unsigned long word)
279{
280 int res;
281
282 __asm__ __volatile__ ("bfffo %1{#0,#0},%0"
283 : "=d" (res) : "d" (~word & -~word));
284 return res ^ 31;
285}
286
287#ifdef __KERNEL__
288
289/*
290 * ffs: find first bit set. This is defined the same way as
291 * the libc and compiler builtin ffs routines, therefore
292 * differs in spirit from the above ffz (man ffs).
293 */
294
295static inline int ffs(int x)
296{
297 int cnt;
298
299 asm ("bfffo %1{#0:#0},%0" : "=d" (cnt) : "dm" (x & -x));
300
301 return 32 - cnt;
302}
303#define __ffs(x) (ffs(x) - 1)
304
305/*
306 * fls: find last bit set.
307 */
308
309static inline int fls(int x)
310{
311 int cnt;
312
313 asm ("bfffo %1{#0,#0},%0" : "=d" (cnt) : "dm" (x));
314
315 return 32 - cnt;
316}
317
318static inline int __fls(int x)
319{
320 return fls(x) - 1;
321}
322
323#include <asm-generic/bitops/fls64.h>
324#include <asm-generic/bitops/sched.h>
325#include <asm-generic/bitops/hweight.h>
326#include <asm-generic/bitops/lock.h>
327
328/* Bitmap functions for the minix filesystem */
329
330static inline int minix_find_first_zero_bit(const void *vaddr, unsigned size)
331{
332 const unsigned short *p = vaddr, *addr = vaddr;
333 int res;
334 unsigned short num;
335
336 if (!size)
337 return 0;
338
339 size = (size >> 4) + ((size & 15) > 0);
340 while (*p++ == 0xffff)
341 {
342 if (--size == 0)
343 return (p - addr) << 4;
344 }
345
346 num = ~*--p;
347 __asm__ __volatile__ ("bfffo %1{#16,#16},%0"
348 : "=d" (res) : "d" (num & -num));
349 return ((p - addr) << 4) + (res ^ 31);
350}
351
352#define minix_test_and_set_bit(nr, addr) __test_and_set_bit((nr) ^ 16, (unsigned long *)(addr))
353#define minix_set_bit(nr,addr) __set_bit((nr) ^ 16, (unsigned long *)(addr))
354#define minix_test_and_clear_bit(nr, addr) __test_and_clear_bit((nr) ^ 16, (unsigned long *)(addr))
355
356static inline int minix_test_bit(int nr, const void *vaddr)
357{
358 const unsigned short *p = vaddr;
359 return (p[nr >> 4] & (1U << (nr & 15))) != 0;
360}
361
362/* Bitmap functions for the ext2 filesystem. */
363
364#define ext2_set_bit(nr, addr) __test_and_set_bit((nr) ^ 24, (unsigned long *)(addr))
365#define ext2_set_bit_atomic(lock, nr, addr) test_and_set_bit((nr) ^ 24, (unsigned long *)(addr))
366#define ext2_clear_bit(nr, addr) __test_and_clear_bit((nr) ^ 24, (unsigned long *)(addr))
367#define ext2_clear_bit_atomic(lock, nr, addr) test_and_clear_bit((nr) ^ 24, (unsigned long *)(addr))
368
369static inline int ext2_test_bit(int nr, const void *vaddr)
370{
371 const unsigned char *p = vaddr;
372 return (p[nr >> 3] & (1U << (nr & 7))) != 0;
373}
374
375static inline int ext2_find_first_zero_bit(const void *vaddr, unsigned size)
376{
377 const unsigned long *p = vaddr, *addr = vaddr;
378 int res;
379
380 if (!size)
381 return 0;
382
383 size = (size >> 5) + ((size & 31) > 0);
384 while (*p++ == ~0UL)
385 {
386 if (--size == 0)
387 return (p - addr) << 5;
388 }
389
390 --p;
391 for (res = 0; res < 32; res++)
392 if (!ext2_test_bit (res, p))
393 break;
394 return (p - addr) * 32 + res;
395}
396
397static inline int ext2_find_next_zero_bit(const void *vaddr, unsigned size,
398 unsigned offset)
399{
400 const unsigned long *addr = vaddr;
401 const unsigned long *p = addr + (offset >> 5);
402 int bit = offset & 31UL, res;
403
404 if (offset >= size)
405 return size;
406
407 if (bit) {
408 /* Look for zero in first longword */
409 for (res = bit; res < 32; res++)
410 if (!ext2_test_bit (res, p))
411 return (p - addr) * 32 + res;
412 p++;
413 }
414 /* No zero yet, search remaining full bytes for a zero */
415 res = ext2_find_first_zero_bit (p, size - 32 * (p - addr));
416 return (p - addr) * 32 + res;
417}
418
419static inline int ext2_find_first_bit(const void *vaddr, unsigned size)
420{
421 const unsigned long *p = vaddr, *addr = vaddr;
422 int res;
423
424 if (!size)
425 return 0;
426
427 size = (size >> 5) + ((size & 31) > 0);
428 while (*p++ == 0UL) {
429 if (--size == 0)
430 return (p - addr) << 5;
431 }
432
433 --p;
434 for (res = 0; res < 32; res++)
435 if (ext2_test_bit(res, p))
436 break;
437 return (p - addr) * 32 + res;
438}
439
440static inline int ext2_find_next_bit(const void *vaddr, unsigned size,
441 unsigned offset)
442{
443 const unsigned long *addr = vaddr;
444 const unsigned long *p = addr + (offset >> 5);
445 int bit = offset & 31UL, res;
446
447 if (offset >= size)
448 return size;
449
450 if (bit) {
451 /* Look for one in first longword */
452 for (res = bit; res < 32; res++)
453 if (ext2_test_bit(res, p))
454 return (p - addr) * 32 + res;
455 p++;
456 }
457 /* No set bit yet, search remaining full bytes for a set bit */
458 res = ext2_find_first_bit(p, size - 32 * (p - addr));
459 return (p - addr) * 32 + res;
460}
461
462#endif /* __KERNEL__ */
463
464#endif /* _M68K_BITOPS_H */
diff --git a/arch/m68knommu/include/asm/bitops.h b/arch/m68k/include/asm/bitops_no.h
index 9d3cbe5fad1e..9d3cbe5fad1e 100644
--- a/arch/m68knommu/include/asm/bitops.h
+++ b/arch/m68k/include/asm/bitops_no.h
diff --git a/arch/m68k/include/asm/blinken.h b/arch/m68k/include/asm/blinken.h
new file mode 100644
index 000000000000..1a749cf7b06d
--- /dev/null
+++ b/arch/m68k/include/asm/blinken.h
@@ -0,0 +1,32 @@
1/*
2** asm/blinken.h -- m68k blinkenlights support (currently hp300 only)
3**
4** (c) 1998 Phil Blundell <philb@gnu.org>
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10*/
11
12#ifndef _M68K_BLINKEN_H
13#define _M68K_BLINKEN_H
14
15#include <asm/setup.h>
16#include <asm/io.h>
17
18#define HP300_LEDS 0xf001ffff
19
20extern unsigned char ledstate;
21
22static __inline__ void blinken_leds(int on, int off)
23{
24 if (MACH_IS_HP300)
25 {
26 ledstate |= on;
27 ledstate &= ~off;
28 out_8(HP300_LEDS, ~ledstate);
29 }
30}
31
32#endif
diff --git a/arch/m68k/include/asm/bootinfo.h b/arch/m68k/include/asm/bootinfo.h
new file mode 100644
index 000000000000..fedf3e326121
--- /dev/null
+++ b/arch/m68k/include/asm/bootinfo.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bootinfo_no.h"
3#else
4#include "bootinfo_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/bootinfo_mm.h b/arch/m68k/include/asm/bootinfo_mm.h
new file mode 100644
index 000000000000..fb8a06b9ab6a
--- /dev/null
+++ b/arch/m68k/include/asm/bootinfo_mm.h
@@ -0,0 +1,378 @@
1/*
2** asm/bootinfo.h -- Definition of the Linux/m68k boot information structure
3**
4** Copyright 1992 by Greg Harp
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10** Created 09/29/92 by Greg Harp
11**
12** 5/2/94 Roman Hodek:
13** Added bi_atari part of the machine dependent union bi_un; for now it
14** contains just a model field to distinguish between TT and Falcon.
15** 26/7/96 Roman Zippel:
16** Renamed to setup.h; added some useful macros to allow gcc some
17** optimizations if possible.
18** 5/10/96 Geert Uytterhoeven:
19** Redesign of the boot information structure; renamed to bootinfo.h again
20** 27/11/96 Geert Uytterhoeven:
21** Backwards compatibility with bootinfo interface version 1.0
22*/
23
24#ifndef _M68K_BOOTINFO_H
25#define _M68K_BOOTINFO_H
26
27
28 /*
29 * Bootinfo definitions
30 *
31 * This is an easily parsable and extendable structure containing all
32 * information to be passed from the bootstrap to the kernel.
33 *
34 * This way I hope to keep all future changes back/forewards compatible.
35 * Thus, keep your fingers crossed...
36 *
37 * This structure is copied right after the kernel bss by the bootstrap
38 * routine.
39 */
40
41#ifndef __ASSEMBLY__
42
43struct bi_record {
44 unsigned short tag; /* tag ID */
45 unsigned short size; /* size of record (in bytes) */
46 unsigned long data[0]; /* data */
47};
48
49#endif /* __ASSEMBLY__ */
50
51
52 /*
53 * Tag Definitions
54 *
55 * Machine independent tags start counting from 0x0000
56 * Machine dependent tags start counting from 0x8000
57 */
58
59#define BI_LAST 0x0000 /* last record (sentinel) */
60#define BI_MACHTYPE 0x0001 /* machine type (u_long) */
61#define BI_CPUTYPE 0x0002 /* cpu type (u_long) */
62#define BI_FPUTYPE 0x0003 /* fpu type (u_long) */
63#define BI_MMUTYPE 0x0004 /* mmu type (u_long) */
64#define BI_MEMCHUNK 0x0005 /* memory chunk address and size */
65 /* (struct mem_info) */
66#define BI_RAMDISK 0x0006 /* ramdisk address and size */
67 /* (struct mem_info) */
68#define BI_COMMAND_LINE 0x0007 /* kernel command line parameters */
69 /* (string) */
70
71 /*
72 * Amiga-specific tags
73 */
74
75#define BI_AMIGA_MODEL 0x8000 /* model (u_long) */
76#define BI_AMIGA_AUTOCON 0x8001 /* AutoConfig device */
77 /* (struct ConfigDev) */
78#define BI_AMIGA_CHIP_SIZE 0x8002 /* size of Chip RAM (u_long) */
79#define BI_AMIGA_VBLANK 0x8003 /* VBLANK frequency (u_char) */
80#define BI_AMIGA_PSFREQ 0x8004 /* power supply frequency (u_char) */
81#define BI_AMIGA_ECLOCK 0x8005 /* EClock frequency (u_long) */
82#define BI_AMIGA_CHIPSET 0x8006 /* native chipset present (u_long) */
83#define BI_AMIGA_SERPER 0x8007 /* serial port period (u_short) */
84
85 /*
86 * Atari-specific tags
87 */
88
89#define BI_ATARI_MCH_COOKIE 0x8000 /* _MCH cookie from TOS (u_long) */
90#define BI_ATARI_MCH_TYPE 0x8001 /* special machine type (u_long) */
91 /* (values are ATARI_MACH_* defines */
92
93/* mch_cookie values (upper word) */
94#define ATARI_MCH_ST 0
95#define ATARI_MCH_STE 1
96#define ATARI_MCH_TT 2
97#define ATARI_MCH_FALCON 3
98
99/* mch_type values */
100#define ATARI_MACH_NORMAL 0 /* no special machine type */
101#define ATARI_MACH_MEDUSA 1 /* Medusa 040 */
102#define ATARI_MACH_HADES 2 /* Hades 040 or 060 */
103#define ATARI_MACH_AB40 3 /* Afterburner040 on Falcon */
104
105 /*
106 * VME-specific tags
107 */
108
109#define BI_VME_TYPE 0x8000 /* VME sub-architecture (u_long) */
110#define BI_VME_BRDINFO 0x8001 /* VME board information (struct) */
111
112/* BI_VME_TYPE codes */
113#define VME_TYPE_TP34V 0x0034 /* Tadpole TP34V */
114#define VME_TYPE_MVME147 0x0147 /* Motorola MVME147 */
115#define VME_TYPE_MVME162 0x0162 /* Motorola MVME162 */
116#define VME_TYPE_MVME166 0x0166 /* Motorola MVME166 */
117#define VME_TYPE_MVME167 0x0167 /* Motorola MVME167 */
118#define VME_TYPE_MVME172 0x0172 /* Motorola MVME172 */
119#define VME_TYPE_MVME177 0x0177 /* Motorola MVME177 */
120#define VME_TYPE_BVME4000 0x4000 /* BVM Ltd. BVME4000 */
121#define VME_TYPE_BVME6000 0x6000 /* BVM Ltd. BVME6000 */
122
123/* BI_VME_BRDINFO is a 32 byte struct as returned by the Bug code on
124 * Motorola VME boards. Contains board number, Bug version, board
125 * configuration options, etc. See include/asm/mvme16xhw.h for details.
126 */
127
128
129 /*
130 * Macintosh-specific tags (all u_long)
131 */
132
133#define BI_MAC_MODEL 0x8000 /* Mac Gestalt ID (model type) */
134#define BI_MAC_VADDR 0x8001 /* Mac video base address */
135#define BI_MAC_VDEPTH 0x8002 /* Mac video depth */
136#define BI_MAC_VROW 0x8003 /* Mac video rowbytes */
137#define BI_MAC_VDIM 0x8004 /* Mac video dimensions */
138#define BI_MAC_VLOGICAL 0x8005 /* Mac video logical base */
139#define BI_MAC_SCCBASE 0x8006 /* Mac SCC base address */
140#define BI_MAC_BTIME 0x8007 /* Mac boot time */
141#define BI_MAC_GMTBIAS 0x8008 /* Mac GMT timezone offset */
142#define BI_MAC_MEMSIZE 0x8009 /* Mac RAM size (sanity check) */
143#define BI_MAC_CPUID 0x800a /* Mac CPU type (sanity check) */
144#define BI_MAC_ROMBASE 0x800b /* Mac system ROM base address */
145
146 /*
147 * Macintosh hardware profile data - unused, see macintosh.h for
148 * resonable type values
149 */
150
151#define BI_MAC_VIA1BASE 0x8010 /* Mac VIA1 base address (always present) */
152#define BI_MAC_VIA2BASE 0x8011 /* Mac VIA2 base address (type varies) */
153#define BI_MAC_VIA2TYPE 0x8012 /* Mac VIA2 type (VIA, RBV, OSS) */
154#define BI_MAC_ADBTYPE 0x8013 /* Mac ADB interface type */
155#define BI_MAC_ASCBASE 0x8014 /* Mac Apple Sound Chip base address */
156#define BI_MAC_SCSI5380 0x8015 /* Mac NCR 5380 SCSI (base address, multi) */
157#define BI_MAC_SCSIDMA 0x8016 /* Mac SCSI DMA (base address) */
158#define BI_MAC_SCSI5396 0x8017 /* Mac NCR 53C96 SCSI (base address, multi) */
159#define BI_MAC_IDETYPE 0x8018 /* Mac IDE interface type */
160#define BI_MAC_IDEBASE 0x8019 /* Mac IDE interface base address */
161#define BI_MAC_NUBUS 0x801a /* Mac Nubus type (none, regular, pseudo) */
162#define BI_MAC_SLOTMASK 0x801b /* Mac Nubus slots present */
163#define BI_MAC_SCCTYPE 0x801c /* Mac SCC serial type (normal, IOP) */
164#define BI_MAC_ETHTYPE 0x801d /* Mac builtin ethernet type (Sonic, MACE */
165#define BI_MAC_ETHBASE 0x801e /* Mac builtin ethernet base address */
166#define BI_MAC_PMU 0x801f /* Mac power management / poweroff hardware */
167#define BI_MAC_IOP_SWIM 0x8020 /* Mac SWIM floppy IOP */
168#define BI_MAC_IOP_ADB 0x8021 /* Mac ADB IOP */
169
170 /*
171 * Mac: compatibility with old booter data format (temporarily)
172 * Fields unused with the new bootinfo can be deleted now; instead of
173 * adding new fields the struct might be splitted into a hardware address
174 * part and a hardware type part
175 */
176
177#ifndef __ASSEMBLY__
178
179struct mac_booter_data
180{
181 unsigned long videoaddr;
182 unsigned long videorow;
183 unsigned long videodepth;
184 unsigned long dimensions;
185 unsigned long args;
186 unsigned long boottime;
187 unsigned long gmtbias;
188 unsigned long bootver;
189 unsigned long videological;
190 unsigned long sccbase;
191 unsigned long id;
192 unsigned long memsize;
193 unsigned long serialmf;
194 unsigned long serialhsk;
195 unsigned long serialgpi;
196 unsigned long printmf;
197 unsigned long printhsk;
198 unsigned long printgpi;
199 unsigned long cpuid;
200 unsigned long rombase;
201 unsigned long adbdelay;
202 unsigned long timedbra;
203};
204
205extern struct mac_booter_data
206 mac_bi_data;
207
208#endif
209
210 /*
211 * Apollo-specific tags
212 */
213
214#define BI_APOLLO_MODEL 0x8000 /* model (u_long) */
215
216 /*
217 * HP300-specific tags
218 */
219
220#define BI_HP300_MODEL 0x8000 /* model (u_long) */
221#define BI_HP300_UART_SCODE 0x8001 /* UART select code (u_long) */
222#define BI_HP300_UART_ADDR 0x8002 /* phys. addr of UART (u_long) */
223
224 /*
225 * Stuff for bootinfo interface versioning
226 *
227 * At the start of kernel code, a 'struct bootversion' is located.
228 * bootstrap checks for a matching version of the interface before booting
229 * a kernel, to avoid user confusion if kernel and bootstrap don't work
230 * together :-)
231 *
232 * If incompatible changes are made to the bootinfo interface, the major
233 * number below should be stepped (and the minor reset to 0) for the
234 * appropriate machine. If a change is backward-compatible, the minor
235 * should be stepped. "Backwards-compatible" means that booting will work,
236 * but certain features may not.
237 */
238
239#define BOOTINFOV_MAGIC 0x4249561A /* 'BIV^Z' */
240#define MK_BI_VERSION(major,minor) (((major)<<16)+(minor))
241#define BI_VERSION_MAJOR(v) (((v) >> 16) & 0xffff)
242#define BI_VERSION_MINOR(v) ((v) & 0xffff)
243
244#ifndef __ASSEMBLY__
245
246struct bootversion {
247 unsigned short branch;
248 unsigned long magic;
249 struct {
250 unsigned long machtype;
251 unsigned long version;
252 } machversions[0];
253};
254
255#endif /* __ASSEMBLY__ */
256
257#define AMIGA_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
258#define ATARI_BOOTI_VERSION MK_BI_VERSION( 2, 1 )
259#define MAC_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
260#define MVME147_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
261#define MVME16x_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
262#define BVME6000_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
263#define Q40_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
264#define HP300_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
265
266#ifdef BOOTINFO_COMPAT_1_0
267
268 /*
269 * Backwards compatibility with bootinfo interface version 1.0
270 */
271
272#define COMPAT_AMIGA_BOOTI_VERSION MK_BI_VERSION( 1, 0 )
273#define COMPAT_ATARI_BOOTI_VERSION MK_BI_VERSION( 1, 0 )
274#define COMPAT_MAC_BOOTI_VERSION MK_BI_VERSION( 1, 0 )
275
276#include <linux/zorro.h>
277
278#define COMPAT_NUM_AUTO 16
279
280struct compat_bi_Amiga {
281 int model;
282 int num_autocon;
283 struct ConfigDev autocon[COMPAT_NUM_AUTO];
284 unsigned long chip_size;
285 unsigned char vblank;
286 unsigned char psfreq;
287 unsigned long eclock;
288 unsigned long chipset;
289 unsigned long hw_present;
290};
291
292struct compat_bi_Atari {
293 unsigned long hw_present;
294 unsigned long mch_cookie;
295};
296
297#ifndef __ASSEMBLY__
298
299struct compat_bi_Macintosh
300{
301 unsigned long videoaddr;
302 unsigned long videorow;
303 unsigned long videodepth;
304 unsigned long dimensions;
305 unsigned long args;
306 unsigned long boottime;
307 unsigned long gmtbias;
308 unsigned long bootver;
309 unsigned long videological;
310 unsigned long sccbase;
311 unsigned long id;
312 unsigned long memsize;
313 unsigned long serialmf;
314 unsigned long serialhsk;
315 unsigned long serialgpi;
316 unsigned long printmf;
317 unsigned long printhsk;
318 unsigned long printgpi;
319 unsigned long cpuid;
320 unsigned long rombase;
321 unsigned long adbdelay;
322 unsigned long timedbra;
323};
324
325#endif
326
327struct compat_mem_info {
328 unsigned long addr;
329 unsigned long size;
330};
331
332#define COMPAT_NUM_MEMINFO 4
333
334#define COMPAT_CPUB_68020 0
335#define COMPAT_CPUB_68030 1
336#define COMPAT_CPUB_68040 2
337#define COMPAT_CPUB_68060 3
338#define COMPAT_FPUB_68881 5
339#define COMPAT_FPUB_68882 6
340#define COMPAT_FPUB_68040 7
341#define COMPAT_FPUB_68060 8
342
343#define COMPAT_CPU_68020 (1<<COMPAT_CPUB_68020)
344#define COMPAT_CPU_68030 (1<<COMPAT_CPUB_68030)
345#define COMPAT_CPU_68040 (1<<COMPAT_CPUB_68040)
346#define COMPAT_CPU_68060 (1<<COMPAT_CPUB_68060)
347#define COMPAT_CPU_MASK (31)
348#define COMPAT_FPU_68881 (1<<COMPAT_FPUB_68881)
349#define COMPAT_FPU_68882 (1<<COMPAT_FPUB_68882)
350#define COMPAT_FPU_68040 (1<<COMPAT_FPUB_68040)
351#define COMPAT_FPU_68060 (1<<COMPAT_FPUB_68060)
352#define COMPAT_FPU_MASK (0xfe0)
353
354#define COMPAT_CL_SIZE (256)
355
356struct compat_bootinfo {
357 unsigned long machtype;
358 unsigned long cputype;
359 struct compat_mem_info memory[COMPAT_NUM_MEMINFO];
360 int num_memory;
361 unsigned long ramdisk_size;
362 unsigned long ramdisk_addr;
363 char command_line[COMPAT_CL_SIZE];
364 union {
365 struct compat_bi_Amiga bi_ami;
366 struct compat_bi_Atari bi_ata;
367 struct compat_bi_Macintosh bi_mac;
368 } bi_un;
369};
370
371#define bi_amiga bi_un.bi_ami
372#define bi_atari bi_un.bi_ata
373#define bi_mac bi_un.bi_mac
374
375#endif /* BOOTINFO_COMPAT_1_0 */
376
377
378#endif /* _M68K_BOOTINFO_H */
diff --git a/arch/m68knommu/include/asm/bootinfo.h b/arch/m68k/include/asm/bootinfo_no.h
index c12e526f5189..c12e526f5189 100644
--- a/arch/m68knommu/include/asm/bootinfo.h
+++ b/arch/m68k/include/asm/bootinfo_no.h
diff --git a/arch/m68knommu/include/asm/bootstd.h b/arch/m68k/include/asm/bootstd.h
index bdc1a4ac4fe9..bdc1a4ac4fe9 100644
--- a/arch/m68knommu/include/asm/bootstd.h
+++ b/arch/m68k/include/asm/bootstd.h
diff --git a/arch/m68k/include/asm/bug.h b/arch/m68k/include/asm/bug.h
new file mode 100644
index 000000000000..997e0944ebc1
--- /dev/null
+++ b/arch/m68k/include/asm/bug.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bug_no.h"
3#else
4#include "bug_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/bug_mm.h b/arch/m68k/include/asm/bug_mm.h
new file mode 100644
index 000000000000..e5b528deb8a8
--- /dev/null
+++ b/arch/m68k/include/asm/bug_mm.h
@@ -0,0 +1,29 @@
1#ifndef _M68K_BUG_H
2#define _M68K_BUG_H
3
4
5#ifdef CONFIG_BUG
6#ifdef CONFIG_DEBUG_BUGVERBOSE
7#ifndef CONFIG_SUN3
8#define BUG() do { \
9 printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
10 __builtin_trap(); \
11} while (0)
12#else
13#define BUG() do { \
14 printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
15 panic("BUG!"); \
16} while (0)
17#endif
18#else
19#define BUG() do { \
20 __builtin_trap(); \
21} while (0)
22#endif
23
24#define HAVE_ARCH_BUG
25#endif
26
27#include <asm-generic/bug.h>
28
29#endif
diff --git a/arch/m68knommu/include/asm/bug.h b/arch/m68k/include/asm/bug_no.h
index 70e7dc0af21a..70e7dc0af21a 100644
--- a/arch/m68knommu/include/asm/bug.h
+++ b/arch/m68k/include/asm/bug_no.h
diff --git a/arch/m68k/include/asm/bugs.h b/arch/m68k/include/asm/bugs.h
new file mode 100644
index 000000000000..01f047d784ec
--- /dev/null
+++ b/arch/m68k/include/asm/bugs.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bugs_no.h"
3#else
4#include "bugs_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/bugs_mm.h b/arch/m68k/include/asm/bugs_mm.h
new file mode 100644
index 000000000000..d01935592410
--- /dev/null
+++ b/arch/m68k/include/asm/bugs_mm.h
@@ -0,0 +1,14 @@
1/*
2 * include/asm-m68k/bugs.h
3 *
4 * Copyright (C) 1994 Linus Torvalds
5 */
6
7/*
8 * This is included by init/main.c to check for architecture-dependent bugs.
9 *
10 * Needs:
11 * void check_bugs(void);
12 */
13
14extern void check_bugs(void); /* in arch/m68k/kernel/setup.c */
diff --git a/arch/m68knommu/include/asm/bugs.h b/arch/m68k/include/asm/bugs_no.h
index 5f382dac3a60..5f382dac3a60 100644
--- a/arch/m68knommu/include/asm/bugs.h
+++ b/arch/m68k/include/asm/bugs_no.h
diff --git a/arch/m68k/include/asm/bvme6000hw.h b/arch/m68k/include/asm/bvme6000hw.h
new file mode 100644
index 000000000000..f40d2f8510ee
--- /dev/null
+++ b/arch/m68k/include/asm/bvme6000hw.h
@@ -0,0 +1,150 @@
1#ifndef _M68K_BVME6000HW_H_
2#define _M68K_BVME6000HW_H_
3
4#include <asm/irq.h>
5
6/*
7 * PIT structure
8 */
9
10#define BVME_PIT_BASE 0xffa00000
11
12typedef struct {
13 unsigned char
14 pad_a[3], pgcr,
15 pad_b[3], psrr,
16 pad_c[3], paddr,
17 pad_d[3], pbddr,
18 pad_e[3], pcddr,
19 pad_f[3], pivr,
20 pad_g[3], pacr,
21 pad_h[3], pbcr,
22 pad_i[3], padr,
23 pad_j[3], pbdr,
24 pad_k[3], paar,
25 pad_l[3], pbar,
26 pad_m[3], pcdr,
27 pad_n[3], psr,
28 pad_o[3], res1,
29 pad_p[3], res2,
30 pad_q[3], tcr,
31 pad_r[3], tivr,
32 pad_s[3], res3,
33 pad_t[3], cprh,
34 pad_u[3], cprm,
35 pad_v[3], cprl,
36 pad_w[3], res4,
37 pad_x[3], crh,
38 pad_y[3], crm,
39 pad_z[3], crl,
40 pad_A[3], tsr,
41 pad_B[3], res5;
42} PitRegs_t, *PitRegsPtr;
43
44#define bvmepit ((*(volatile PitRegsPtr)(BVME_PIT_BASE)))
45
46#define BVME_RTC_BASE 0xff900000
47
48typedef struct {
49 unsigned char
50 pad_a[3], msr,
51 pad_b[3], t0cr_rtmr,
52 pad_c[3], t1cr_omr,
53 pad_d[3], pfr_icr0,
54 pad_e[3], irr_icr1,
55 pad_f[3], bcd_tenms,
56 pad_g[3], bcd_sec,
57 pad_h[3], bcd_min,
58 pad_i[3], bcd_hr,
59 pad_j[3], bcd_dom,
60 pad_k[3], bcd_mth,
61 pad_l[3], bcd_year,
62 pad_m[3], bcd_ujcc,
63 pad_n[3], bcd_hjcc,
64 pad_o[3], bcd_dow,
65 pad_p[3], t0lsb,
66 pad_q[3], t0msb,
67 pad_r[3], t1lsb,
68 pad_s[3], t1msb,
69 pad_t[3], cmp_sec,
70 pad_u[3], cmp_min,
71 pad_v[3], cmp_hr,
72 pad_w[3], cmp_dom,
73 pad_x[3], cmp_mth,
74 pad_y[3], cmp_dow,
75 pad_z[3], sav_sec,
76 pad_A[3], sav_min,
77 pad_B[3], sav_hr,
78 pad_C[3], sav_dom,
79 pad_D[3], sav_mth,
80 pad_E[3], ram,
81 pad_F[3], test;
82} RtcRegs_t, *RtcPtr_t;
83
84
85#define BVME_I596_BASE 0xff100000
86
87#define BVME_ETHIRQ_REG 0xff20000b
88
89#define BVME_LOCAL_IRQ_STAT 0xff20000f
90
91#define BVME_ETHERR 0x02
92#define BVME_ABORT_STATUS 0x08
93
94#define BVME_NCR53C710_BASE 0xff000000
95
96#define BVME_SCC_A_ADDR 0xffb0000b
97#define BVME_SCC_B_ADDR 0xffb00003
98#define BVME_SCC_RTxC 7372800
99
100#define BVME_CONFIG_REG 0xff500003
101
102#define config_reg_ptr (volatile unsigned char *)BVME_CONFIG_REG
103
104#define BVME_CONFIG_SW1 0x08
105#define BVME_CONFIG_SW2 0x04
106#define BVME_CONFIG_SW3 0x02
107#define BVME_CONFIG_SW4 0x01
108
109
110#define BVME_IRQ_TYPE_PRIO 0
111
112#define BVME_IRQ_PRN (IRQ_USER+20)
113#define BVME_IRQ_TIMER (IRQ_USER+25)
114#define BVME_IRQ_I596 IRQ_AUTO_2
115#define BVME_IRQ_SCSI IRQ_AUTO_3
116#define BVME_IRQ_RTC IRQ_AUTO_6
117#define BVME_IRQ_ABORT IRQ_AUTO_7
118
119/* SCC interrupts */
120#define BVME_IRQ_SCC_BASE IRQ_USER
121#define BVME_IRQ_SCCB_TX IRQ_USER
122#define BVME_IRQ_SCCB_STAT (IRQ_USER+2)
123#define BVME_IRQ_SCCB_RX (IRQ_USER+4)
124#define BVME_IRQ_SCCB_SPCOND (IRQ_USER+6)
125#define BVME_IRQ_SCCA_TX (IRQ_USER+8)
126#define BVME_IRQ_SCCA_STAT (IRQ_USER+10)
127#define BVME_IRQ_SCCA_RX (IRQ_USER+12)
128#define BVME_IRQ_SCCA_SPCOND (IRQ_USER+14)
129
130/* Address control registers */
131
132#define BVME_ACR_A32VBA 0xff400003
133#define BVME_ACR_A32MSK 0xff410003
134#define BVME_ACR_A24VBA 0xff420003
135#define BVME_ACR_A24MSK 0xff430003
136#define BVME_ACR_A16VBA 0xff440003
137#define BVME_ACR_A32LBA 0xff450003
138#define BVME_ACR_A24LBA 0xff460003
139#define BVME_ACR_ADDRCTL 0xff470003
140
141#define bvme_acr_a32vba *(volatile unsigned char *)BVME_ACR_A32VBA
142#define bvme_acr_a32msk *(volatile unsigned char *)BVME_ACR_A32MSK
143#define bvme_acr_a24vba *(volatile unsigned char *)BVME_ACR_A24VBA
144#define bvme_acr_a24msk *(volatile unsigned char *)BVME_ACR_A24MSK
145#define bvme_acr_a16vba *(volatile unsigned char *)BVME_ACR_A16VBA
146#define bvme_acr_a32lba *(volatile unsigned char *)BVME_ACR_A32LBA
147#define bvme_acr_a24lba *(volatile unsigned char *)BVME_ACR_A24LBA
148#define bvme_acr_addrctl *(volatile unsigned char *)BVME_ACR_ADDRCTL
149
150#endif
diff --git a/arch/m68k/include/asm/byteorder.h b/arch/m68k/include/asm/byteorder.h
new file mode 100644
index 000000000000..31b260a88803
--- /dev/null
+++ b/arch/m68k/include/asm/byteorder.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_BYTEORDER_H
2#define _M68K_BYTEORDER_H
3
4#include <linux/byteorder/big_endian.h>
5
6#endif /* _M68K_BYTEORDER_H */
diff --git a/arch/m68k/include/asm/cache.h b/arch/m68k/include/asm/cache.h
new file mode 100644
index 000000000000..599c29bc8f40
--- /dev/null
+++ b/arch/m68k/include/asm/cache.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "cache_no.h"
3#else
4#include "cache_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/cache_mm.h b/arch/m68k/include/asm/cache_mm.h
new file mode 100644
index 000000000000..fed3fd30de7e
--- /dev/null
+++ b/arch/m68k/include/asm/cache_mm.h
@@ -0,0 +1,11 @@
1/*
2 * include/asm-m68k/cache.h
3 */
4#ifndef __ARCH_M68K_CACHE_H
5#define __ARCH_M68K_CACHE_H
6
7/* bytes per L1 cache line */
8#define L1_CACHE_SHIFT 4
9#define L1_CACHE_BYTES (1<< L1_CACHE_SHIFT)
10
11#endif
diff --git a/arch/m68knommu/include/asm/cache.h b/arch/m68k/include/asm/cache_no.h
index 24e9eace5f8c..24e9eace5f8c 100644
--- a/arch/m68knommu/include/asm/cache.h
+++ b/arch/m68k/include/asm/cache_no.h
diff --git a/arch/m68k/include/asm/cachectl.h b/arch/m68k/include/asm/cachectl.h
new file mode 100644
index 000000000000..525978e959e3
--- /dev/null
+++ b/arch/m68k/include/asm/cachectl.h
@@ -0,0 +1,14 @@
1#ifndef _M68K_CACHECTL_H
2#define _M68K_CACHECTL_H
3
4/* Definitions for the cacheflush system call. */
5
6#define FLUSH_SCOPE_LINE 1 /* Flush a cache line */
7#define FLUSH_SCOPE_PAGE 2 /* Flush a page */
8#define FLUSH_SCOPE_ALL 3 /* Flush the whole cache -- superuser only */
9
10#define FLUSH_CACHE_DATA 1 /* Writeback and flush data cache */
11#define FLUSH_CACHE_INSN 2 /* Flush instruction cache */
12#define FLUSH_CACHE_BOTH 3 /* Flush both caches */
13
14#endif /* _M68K_CACHECTL_H */
diff --git a/arch/m68k/include/asm/cacheflush.h b/arch/m68k/include/asm/cacheflush.h
new file mode 100644
index 000000000000..a70d7319630a
--- /dev/null
+++ b/arch/m68k/include/asm/cacheflush.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "cacheflush_no.h"
3#else
4#include "cacheflush_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/cacheflush_mm.h b/arch/m68k/include/asm/cacheflush_mm.h
new file mode 100644
index 000000000000..16bf375fdbe1
--- /dev/null
+++ b/arch/m68k/include/asm/cacheflush_mm.h
@@ -0,0 +1,156 @@
1#ifndef _M68K_CACHEFLUSH_H
2#define _M68K_CACHEFLUSH_H
3
4#include <linux/mm.h>
5
6/* cache code */
7#define FLUSH_I_AND_D (0x00000808)
8#define FLUSH_I (0x00000008)
9
10/*
11 * Cache handling functions
12 */
13
14static inline void flush_icache(void)
15{
16 if (CPU_IS_040_OR_060)
17 asm volatile ( "nop\n"
18 " .chip 68040\n"
19 " cpusha %bc\n"
20 " .chip 68k");
21 else {
22 unsigned long tmp;
23 asm volatile ( "movec %%cacr,%0\n"
24 " or.w %1,%0\n"
25 " movec %0,%%cacr"
26 : "=&d" (tmp)
27 : "id" (FLUSH_I));
28 }
29}
30
31/*
32 * invalidate the cache for the specified memory range.
33 * It starts at the physical address specified for
34 * the given number of bytes.
35 */
36extern void cache_clear(unsigned long paddr, int len);
37/*
38 * push any dirty cache in the specified memory range.
39 * It starts at the physical address specified for
40 * the given number of bytes.
41 */
42extern void cache_push(unsigned long paddr, int len);
43
44/*
45 * push and invalidate pages in the specified user virtual
46 * memory range.
47 */
48extern void cache_push_v(unsigned long vaddr, int len);
49
50/* This is needed whenever the virtual mapping of the current
51 process changes. */
52#define __flush_cache_all() \
53({ \
54 if (CPU_IS_040_OR_060) \
55 __asm__ __volatile__("nop\n\t" \
56 ".chip 68040\n\t" \
57 "cpusha %dc\n\t" \
58 ".chip 68k"); \
59 else { \
60 unsigned long _tmp; \
61 __asm__ __volatile__("movec %%cacr,%0\n\t" \
62 "orw %1,%0\n\t" \
63 "movec %0,%%cacr" \
64 : "=&d" (_tmp) \
65 : "di" (FLUSH_I_AND_D)); \
66 } \
67})
68
69#define __flush_cache_030() \
70({ \
71 if (CPU_IS_020_OR_030) { \
72 unsigned long _tmp; \
73 __asm__ __volatile__("movec %%cacr,%0\n\t" \
74 "orw %1,%0\n\t" \
75 "movec %0,%%cacr" \
76 : "=&d" (_tmp) \
77 : "di" (FLUSH_I_AND_D)); \
78 } \
79})
80
81#define flush_cache_all() __flush_cache_all()
82
83#define flush_cache_vmap(start, end) flush_cache_all()
84#define flush_cache_vunmap(start, end) flush_cache_all()
85
86static inline void flush_cache_mm(struct mm_struct *mm)
87{
88 if (mm == current->mm)
89 __flush_cache_030();
90}
91
92#define flush_cache_dup_mm(mm) flush_cache_mm(mm)
93
94/* flush_cache_range/flush_cache_page must be macros to avoid
95 a dependency on linux/mm.h, which includes this file... */
96static inline void flush_cache_range(struct vm_area_struct *vma,
97 unsigned long start,
98 unsigned long end)
99{
100 if (vma->vm_mm == current->mm)
101 __flush_cache_030();
102}
103
104static inline void flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long pfn)
105{
106 if (vma->vm_mm == current->mm)
107 __flush_cache_030();
108}
109
110
111/* Push the page at kernel virtual address and clear the icache */
112/* RZ: use cpush %bc instead of cpush %dc, cinv %ic */
113static inline void __flush_page_to_ram(void *vaddr)
114{
115 if (CPU_IS_040_OR_060) {
116 __asm__ __volatile__("nop\n\t"
117 ".chip 68040\n\t"
118 "cpushp %%bc,(%0)\n\t"
119 ".chip 68k"
120 : : "a" (__pa(vaddr)));
121 } else {
122 unsigned long _tmp;
123 __asm__ __volatile__("movec %%cacr,%0\n\t"
124 "orw %1,%0\n\t"
125 "movec %0,%%cacr"
126 : "=&d" (_tmp)
127 : "di" (FLUSH_I));
128 }
129}
130
131#define flush_dcache_page(page) __flush_page_to_ram(page_address(page))
132#define flush_dcache_mmap_lock(mapping) do { } while (0)
133#define flush_dcache_mmap_unlock(mapping) do { } while (0)
134#define flush_icache_page(vma, page) __flush_page_to_ram(page_address(page))
135
136extern void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
137 unsigned long addr, int len);
138extern void flush_icache_range(unsigned long address, unsigned long endaddr);
139
140static inline void copy_to_user_page(struct vm_area_struct *vma,
141 struct page *page, unsigned long vaddr,
142 void *dst, void *src, int len)
143{
144 flush_cache_page(vma, vaddr, page_to_pfn(page));
145 memcpy(dst, src, len);
146 flush_icache_user_range(vma, page, vaddr, len);
147}
148static inline void copy_from_user_page(struct vm_area_struct *vma,
149 struct page *page, unsigned long vaddr,
150 void *dst, void *src, int len)
151{
152 flush_cache_page(vma, vaddr, page_to_pfn(page));
153 memcpy(dst, src, len);
154}
155
156#endif /* _M68K_CACHEFLUSH_H */
diff --git a/arch/m68knommu/include/asm/cacheflush.h b/arch/m68k/include/asm/cacheflush_no.h
index 87e5dc0413b4..c65f00a94553 100644
--- a/arch/m68knommu/include/asm/cacheflush.h
+++ b/arch/m68k/include/asm/cacheflush_no.h
@@ -51,13 +51,20 @@ static inline void __flush_cache_all(void)
51 "movec %%d0,%%CACR\n\t" 51 "movec %%d0,%%CACR\n\t"
52 : : : "d0", "a0" ); 52 : : : "d0", "a0" );
53#endif /* CONFIG_M5407 */ 53#endif /* CONFIG_M5407 */
54#if defined(CONFIG_M527x) || defined(CONFIG_M528x) 54#if defined(CONFIG_M523x) || defined(CONFIG_M527x)
55 __asm__ __volatile__ (
56 "movel #0x81400100, %%d0\n\t"
57 "movec %%d0, %%CACR\n\t"
58 "nop\n\t"
59 : : : "d0" );
60#endif /* CONFIG_M523x || CONFIG_M527x */
61#if defined(CONFIG_M528x)
55 __asm__ __volatile__ ( 62 __asm__ __volatile__ (
56 "movel #0x81000200, %%d0\n\t" 63 "movel #0x81000200, %%d0\n\t"
57 "movec %%d0, %%CACR\n\t" 64 "movec %%d0, %%CACR\n\t"
58 "nop\n\t" 65 "nop\n\t"
59 : : : "d0" ); 66 : : : "d0" );
60#endif /* CONFIG_M527x || CONFIG_M528x */ 67#endif /* CONFIG_M528x */
61#if defined(CONFIG_M5206) || defined(CONFIG_M5206e) || defined(CONFIG_M5272) 68#if defined(CONFIG_M5206) || defined(CONFIG_M5206e) || defined(CONFIG_M5272)
62 __asm__ __volatile__ ( 69 __asm__ __volatile__ (
63 "movel #0x81000100, %%d0\n\t" 70 "movel #0x81000100, %%d0\n\t"
diff --git a/arch/m68k/include/asm/checksum.h b/arch/m68k/include/asm/checksum.h
new file mode 100644
index 000000000000..1cf544767453
--- /dev/null
+++ b/arch/m68k/include/asm/checksum.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "checksum_no.h"
3#else
4#include "checksum_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/checksum_mm.h b/arch/m68k/include/asm/checksum_mm.h
new file mode 100644
index 000000000000..494f9aec37ea
--- /dev/null
+++ b/arch/m68k/include/asm/checksum_mm.h
@@ -0,0 +1,148 @@
1#ifndef _M68K_CHECKSUM_H
2#define _M68K_CHECKSUM_H
3
4#include <linux/in6.h>
5
6/*
7 * computes the checksum of a memory block at buff, length len,
8 * and adds in "sum" (32-bit)
9 *
10 * returns a 32-bit number suitable for feeding into itself
11 * or csum_tcpudp_magic
12 *
13 * this function must be called with even lengths, except
14 * for the last fragment, which may be odd
15 *
16 * it's best to have buff aligned on a 32-bit boundary
17 */
18__wsum csum_partial(const void *buff, int len, __wsum sum);
19
20/*
21 * the same as csum_partial, but copies from src while it
22 * checksums
23 *
24 * here even more important to align src and dst on a 32-bit (or even
25 * better 64-bit) boundary
26 */
27
28extern __wsum csum_partial_copy_from_user(const void __user *src,
29 void *dst,
30 int len, __wsum sum,
31 int *csum_err);
32
33extern __wsum csum_partial_copy_nocheck(const void *src,
34 void *dst, int len,
35 __wsum sum);
36
37/*
38 * This is a version of ip_compute_csum() optimized for IP headers,
39 * which always checksum on 4 octet boundaries.
40 *
41 */
42static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
43{
44 unsigned int sum = 0;
45 unsigned long tmp;
46
47 __asm__ ("subqw #1,%2\n"
48 "1:\t"
49 "movel %1@+,%3\n\t"
50 "addxl %3,%0\n\t"
51 "dbra %2,1b\n\t"
52 "movel %0,%3\n\t"
53 "swap %3\n\t"
54 "addxw %3,%0\n\t"
55 "clrw %3\n\t"
56 "addxw %3,%0\n\t"
57 : "=d" (sum), "=&a" (iph), "=&d" (ihl), "=&d" (tmp)
58 : "0" (sum), "1" (iph), "2" (ihl)
59 : "memory");
60 return (__force __sum16)~sum;
61}
62
63/*
64 * Fold a partial checksum
65 */
66
67static inline __sum16 csum_fold(__wsum sum)
68{
69 unsigned int tmp = (__force u32)sum;
70 __asm__("swap %1\n\t"
71 "addw %1, %0\n\t"
72 "clrw %1\n\t"
73 "addxw %1, %0"
74 : "=&d" (sum), "=&d" (tmp)
75 : "0" (sum), "1" (tmp));
76 return (__force __sum16)~sum;
77}
78
79
80static inline __wsum
81csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
82 unsigned short proto, __wsum sum)
83{
84 __asm__ ("addl %2,%0\n\t"
85 "addxl %3,%0\n\t"
86 "addxl %4,%0\n\t"
87 "clrl %1\n\t"
88 "addxl %1,%0"
89 : "=&d" (sum), "=d" (saddr)
90 : "g" (daddr), "1" (saddr), "d" (len + proto),
91 "0" (sum));
92 return sum;
93}
94
95
96/*
97 * computes the checksum of the TCP/UDP pseudo-header
98 * returns a 16-bit checksum, already complemented
99 */
100static inline __sum16
101csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len,
102 unsigned short proto, __wsum sum)
103{
104 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
105}
106
107/*
108 * this routine is used for miscellaneous IP-like checksums, mainly
109 * in icmp.c
110 */
111
112static inline __sum16 ip_compute_csum(const void *buff, int len)
113{
114 return csum_fold (csum_partial(buff, len, 0));
115}
116
117#define _HAVE_ARCH_IPV6_CSUM
118static __inline__ __sum16
119csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr,
120 __u32 len, unsigned short proto, __wsum sum)
121{
122 register unsigned long tmp;
123 __asm__("addl %2@,%0\n\t"
124 "movel %2@(4),%1\n\t"
125 "addxl %1,%0\n\t"
126 "movel %2@(8),%1\n\t"
127 "addxl %1,%0\n\t"
128 "movel %2@(12),%1\n\t"
129 "addxl %1,%0\n\t"
130 "movel %3@,%1\n\t"
131 "addxl %1,%0\n\t"
132 "movel %3@(4),%1\n\t"
133 "addxl %1,%0\n\t"
134 "movel %3@(8),%1\n\t"
135 "addxl %1,%0\n\t"
136 "movel %3@(12),%1\n\t"
137 "addxl %1,%0\n\t"
138 "addxl %4,%0\n\t"
139 "clrl %1\n\t"
140 "addxl %1,%0"
141 : "=&d" (sum), "=&d" (tmp)
142 : "a" (saddr), "a" (daddr), "d" (len + proto),
143 "0" (sum));
144
145 return csum_fold(sum);
146}
147
148#endif /* _M68K_CHECKSUM_H */
diff --git a/arch/m68knommu/include/asm/checksum.h b/arch/m68k/include/asm/checksum_no.h
index 81883482ffb1..81883482ffb1 100644
--- a/arch/m68knommu/include/asm/checksum.h
+++ b/arch/m68k/include/asm/checksum_no.h
diff --git a/arch/m68knommu/include/asm/coldfire.h b/arch/m68k/include/asm/coldfire.h
index 83a9fa4e618a..83a9fa4e618a 100644
--- a/arch/m68knommu/include/asm/coldfire.h
+++ b/arch/m68k/include/asm/coldfire.h
diff --git a/arch/m68knommu/include/asm/commproc.h b/arch/m68k/include/asm/commproc.h
index edf5eb6c08d2..edf5eb6c08d2 100644
--- a/arch/m68knommu/include/asm/commproc.h
+++ b/arch/m68k/include/asm/commproc.h
diff --git a/arch/m68k/include/asm/contregs.h b/arch/m68k/include/asm/contregs.h
new file mode 100644
index 000000000000..d1ea750bddfe
--- /dev/null
+++ b/arch/m68k/include/asm/contregs.h
@@ -0,0 +1,53 @@
1#ifndef _M68K_CONTREGS_H
2#define _M68K_CONTREGS_H
3
4/* contregs.h: Addresses of registers in the ASI_CONTROL alternate address
5 * space. These are for the mmu's context register, etc.
6 *
7 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
8 */
9
10/* 3=sun3
11 4=sun4 (as in sun4 sysmaint student book)
12 c=sun4c (according to davem) */
13
14#define AC_IDPROM 0x00000000 /* 34 ID PROM, R/O, byte, 32 bytes */
15#define AC_PAGEMAP 0x10000000 /* 3 Pagemap R/W, long */
16#define AC_SEGMAP 0x20000000 /* 3 Segment map, byte */
17#define AC_CONTEXT 0x30000000 /* 34c current mmu-context */
18#define AC_SENABLE 0x40000000 /* 34c system dvma/cache/reset enable reg*/
19#define AC_UDVMA_ENB 0x50000000 /* 34 Not used on Sun boards, byte */
20#define AC_BUS_ERROR 0x60000000 /* 34 Not cleared on read, byte. */
21#define AC_SYNC_ERR 0x60000000 /* c fault type */
22#define AC_SYNC_VA 0x60000004 /* c fault virtual address */
23#define AC_ASYNC_ERR 0x60000008 /* c asynchronous fault type */
24#define AC_ASYNC_VA 0x6000000c /* c async fault virtual address */
25#define AC_LEDS 0x70000000 /* 34 Zero turns on LEDs, byte */
26#define AC_CACHETAGS 0x80000000 /* 34c direct access to the VAC tags */
27#define AC_CACHEDDATA 0x90000000 /* 3 c direct access to the VAC data */
28#define AC_UDVMA_MAP 0xD0000000 /* 4 Not used on Sun boards, byte */
29#define AC_VME_VECTOR 0xE0000000 /* 4 For non-Autovector VME, byte */
30#define AC_BOOT_SCC 0xF0000000 /* 34 bypass to access Zilog 8530. byte.*/
31
32/* s=Swift, h=Ross_HyperSPARC, v=TI_Viking, t=Tsunami, r=Ross_Cypress */
33#define AC_M_PCR 0x0000 /* shv Processor Control Reg */
34#define AC_M_CTPR 0x0100 /* shv Context Table Pointer Reg */
35#define AC_M_CXR 0x0200 /* shv Context Register */
36#define AC_M_SFSR 0x0300 /* shv Synchronous Fault Status Reg */
37#define AC_M_SFAR 0x0400 /* shv Synchronous Fault Address Reg */
38#define AC_M_AFSR 0x0500 /* hv Asynchronous Fault Status Reg */
39#define AC_M_AFAR 0x0600 /* hv Asynchronous Fault Address Reg */
40#define AC_M_RESET 0x0700 /* hv Reset Reg */
41#define AC_M_RPR 0x1000 /* hv Root Pointer Reg */
42#define AC_M_TSUTRCR 0x1000 /* s TLB Replacement Ctrl Reg */
43#define AC_M_IAPTP 0x1100 /* hv Instruction Access PTP */
44#define AC_M_DAPTP 0x1200 /* hv Data Access PTP */
45#define AC_M_ITR 0x1300 /* hv Index Tag Register */
46#define AC_M_TRCR 0x1400 /* hv TLB Replacement Control Reg */
47#define AC_M_SFSRX 0x1300 /* s Synch Fault Status Reg prim */
48#define AC_M_SFARX 0x1400 /* s Synch Fault Address Reg prim */
49#define AC_M_RPR1 0x1500 /* h Root Pointer Reg (entry 2) */
50#define AC_M_IAPTP1 0x1600 /* h Instruction Access PTP (entry 2) */
51#define AC_M_DAPTP1 0x1700 /* h Data Access PTP (entry 2) */
52
53#endif /* _M68K_CONTREGS_H */
diff --git a/arch/m68k/include/asm/cputime.h b/arch/m68k/include/asm/cputime.h
new file mode 100644
index 000000000000..c79c5e892305
--- /dev/null
+++ b/arch/m68k/include/asm/cputime.h
@@ -0,0 +1,6 @@
1#ifndef __M68K_CPUTIME_H
2#define __M68K_CPUTIME_H
3
4#include <asm-generic/cputime.h>
5
6#endif /* __M68K_CPUTIME_H */
diff --git a/arch/m68k/include/asm/current.h b/arch/m68k/include/asm/current.h
new file mode 100644
index 000000000000..51b056dfaedd
--- /dev/null
+++ b/arch/m68k/include/asm/current.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "current_no.h"
3#else
4#include "current_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/current_mm.h b/arch/m68k/include/asm/current_mm.h
new file mode 100644
index 000000000000..8de8f8ceda61
--- /dev/null
+++ b/arch/m68k/include/asm/current_mm.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_CURRENT_H
2#define _M68K_CURRENT_H
3
4register struct task_struct *current __asm__("%a2");
5
6#endif /* !(_M68K_CURRENT_H) */
diff --git a/arch/m68knommu/include/asm/current.h b/arch/m68k/include/asm/current_no.h
index 53ee0f9f7cef..53ee0f9f7cef 100644
--- a/arch/m68knommu/include/asm/current.h
+++ b/arch/m68k/include/asm/current_no.h
diff --git a/arch/m68knommu/include/asm/dbg.h b/arch/m68k/include/asm/dbg.h
index 27af3270f671..27af3270f671 100644
--- a/arch/m68knommu/include/asm/dbg.h
+++ b/arch/m68k/include/asm/dbg.h
diff --git a/arch/m68k/include/asm/delay.h b/arch/m68k/include/asm/delay.h
new file mode 100644
index 000000000000..d2598e3dd7b2
--- /dev/null
+++ b/arch/m68k/include/asm/delay.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "delay_no.h"
3#else
4#include "delay_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/delay_mm.h b/arch/m68k/include/asm/delay_mm.h
new file mode 100644
index 000000000000..5ed92851bc6f
--- /dev/null
+++ b/arch/m68k/include/asm/delay_mm.h
@@ -0,0 +1,57 @@
1#ifndef _M68K_DELAY_H
2#define _M68K_DELAY_H
3
4#include <asm/param.h>
5
6/*
7 * Copyright (C) 1994 Hamish Macdonald
8 *
9 * Delay routines, using a pre-computed "loops_per_jiffy" value.
10 */
11
12static inline void __delay(unsigned long loops)
13{
14 __asm__ __volatile__ ("1: subql #1,%0; jcc 1b"
15 : "=d" (loops) : "0" (loops));
16}
17
18extern void __bad_udelay(void);
19
20/*
21 * Use only for very small delays ( < 1 msec). Should probably use a
22 * lookup table, really, as the multiplications take much too long with
23 * short delays. This is a "reasonable" implementation, though (and the
24 * first constant multiplications gets optimized away if the delay is
25 * a constant)
26 */
27static inline void __const_udelay(unsigned long xloops)
28{
29 unsigned long tmp;
30
31 __asm__ ("mulul %2,%0:%1"
32 : "=d" (xloops), "=d" (tmp)
33 : "d" (xloops), "1" (loops_per_jiffy));
34 __delay(xloops * HZ);
35}
36
37static inline void __udelay(unsigned long usecs)
38{
39 __const_udelay(usecs * 4295); /* 2**32 / 1000000 */
40}
41
42#define udelay(n) (__builtin_constant_p(n) ? \
43 ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 4295)) : \
44 __udelay(n))
45
46static inline unsigned long muldiv(unsigned long a, unsigned long b,
47 unsigned long c)
48{
49 unsigned long tmp;
50
51 __asm__ ("mulul %2,%0:%1; divul %3,%0:%1"
52 : "=d" (tmp), "=d" (a)
53 : "d" (b), "d" (c), "1" (a));
54 return a;
55}
56
57#endif /* defined(_M68K_DELAY_H) */
diff --git a/arch/m68knommu/include/asm/delay.h b/arch/m68k/include/asm/delay_no.h
index 55cbd6294ab6..55cbd6294ab6 100644
--- a/arch/m68knommu/include/asm/delay.h
+++ b/arch/m68k/include/asm/delay_no.h
diff --git a/arch/m68knommu/include/asm/device.h b/arch/m68k/include/asm/device.h
index d8f9872b0e2d..d8f9872b0e2d 100644
--- a/arch/m68knommu/include/asm/device.h
+++ b/arch/m68k/include/asm/device.h
diff --git a/arch/m68k/include/asm/div64.h b/arch/m68k/include/asm/div64.h
new file mode 100644
index 000000000000..d211d9f54276
--- /dev/null
+++ b/arch/m68k/include/asm/div64.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "div64_no.h"
3#else
4#include "div64_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/div64_mm.h b/arch/m68k/include/asm/div64_mm.h
new file mode 100644
index 000000000000..8243c931b5c0
--- /dev/null
+++ b/arch/m68k/include/asm/div64_mm.h
@@ -0,0 +1,28 @@
1#ifndef _M68K_DIV64_H
2#define _M68K_DIV64_H
3
4#include <linux/types.h>
5
6/* n = n / base; return rem; */
7
8#define do_div(n, base) ({ \
9 union { \
10 unsigned long n32[2]; \
11 unsigned long long n64; \
12 } __n; \
13 unsigned long __rem, __upper; \
14 \
15 __n.n64 = (n); \
16 if ((__upper = __n.n32[0])) { \
17 asm ("divul.l %2,%1:%0" \
18 : "=d" (__n.n32[0]), "=d" (__upper) \
19 : "d" (base), "0" (__n.n32[0])); \
20 } \
21 asm ("divu.l %2,%1:%0" \
22 : "=d" (__n.n32[1]), "=d" (__rem) \
23 : "d" (base), "1" (__upper), "0" (__n.n32[1])); \
24 (n) = __n.n64; \
25 __rem; \
26})
27
28#endif /* _M68K_DIV64_H */
diff --git a/arch/m68knommu/include/asm/div64.h b/arch/m68k/include/asm/div64_no.h
index 6cd978cefb28..6cd978cefb28 100644
--- a/arch/m68knommu/include/asm/div64.h
+++ b/arch/m68k/include/asm/div64_no.h
diff --git a/arch/m68k/include/asm/dma-mapping.h b/arch/m68k/include/asm/dma-mapping.h
new file mode 100644
index 000000000000..f4a4c7638f89
--- /dev/null
+++ b/arch/m68k/include/asm/dma-mapping.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "dma-mapping_no.h"
3#else
4#include "dma-mapping_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/dma-mapping_mm.h b/arch/m68k/include/asm/dma-mapping_mm.h
new file mode 100644
index 000000000000..26f505488c11
--- /dev/null
+++ b/arch/m68k/include/asm/dma-mapping_mm.h
@@ -0,0 +1,112 @@
1#ifndef _M68K_DMA_MAPPING_H
2#define _M68K_DMA_MAPPING_H
3
4#include <asm/cache.h>
5
6struct scatterlist;
7
8#ifndef CONFIG_MMU_SUN3
9static inline int dma_supported(struct device *dev, u64 mask)
10{
11 return 1;
12}
13
14static inline int dma_set_mask(struct device *dev, u64 mask)
15{
16 return 0;
17}
18
19static inline int dma_get_cache_alignment(void)
20{
21 return 1 << L1_CACHE_SHIFT;
22}
23
24static inline int dma_is_consistent(struct device *dev, dma_addr_t dma_addr)
25{
26 return 0;
27}
28
29extern void *dma_alloc_coherent(struct device *, size_t,
30 dma_addr_t *, gfp_t);
31extern void dma_free_coherent(struct device *, size_t,
32 void *, dma_addr_t);
33
34static inline void *dma_alloc_noncoherent(struct device *dev, size_t size,
35 dma_addr_t *handle, gfp_t flag)
36{
37 return dma_alloc_coherent(dev, size, handle, flag);
38}
39static inline void dma_free_noncoherent(struct device *dev, size_t size,
40 void *addr, dma_addr_t handle)
41{
42 dma_free_coherent(dev, size, addr, handle);
43}
44static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
45 enum dma_data_direction dir)
46{
47 /* we use coherent allocation, so not much to do here. */
48}
49
50extern dma_addr_t dma_map_single(struct device *, void *, size_t,
51 enum dma_data_direction);
52static inline void dma_unmap_single(struct device *dev, dma_addr_t addr,
53 size_t size, enum dma_data_direction dir)
54{
55}
56
57extern dma_addr_t dma_map_page(struct device *, struct page *,
58 unsigned long, size_t size,
59 enum dma_data_direction);
60static inline void dma_unmap_page(struct device *dev, dma_addr_t address,
61 size_t size, enum dma_data_direction dir)
62{
63}
64
65extern int dma_map_sg(struct device *, struct scatterlist *, int,
66 enum dma_data_direction);
67static inline void dma_unmap_sg(struct device *dev, struct scatterlist *sg,
68 int nhwentries, enum dma_data_direction dir)
69{
70}
71
72extern void dma_sync_single_for_device(struct device *, dma_addr_t, size_t,
73 enum dma_data_direction);
74extern void dma_sync_sg_for_device(struct device *, struct scatterlist *, int,
75 enum dma_data_direction);
76
77static inline void dma_sync_single_range_for_device(struct device *dev,
78 dma_addr_t dma_handle, unsigned long offset, size_t size,
79 enum dma_data_direction direction)
80{
81 /* just sync everything for now */
82 dma_sync_single_for_device(dev, dma_handle, offset + size, direction);
83}
84
85static inline void dma_sync_single_for_cpu(struct device *dev, dma_addr_t handle,
86 size_t size, enum dma_data_direction dir)
87{
88}
89
90static inline void dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg,
91 int nents, enum dma_data_direction dir)
92{
93}
94
95static inline void dma_sync_single_range_for_cpu(struct device *dev,
96 dma_addr_t dma_handle, unsigned long offset, size_t size,
97 enum dma_data_direction direction)
98{
99 /* just sync everything for now */
100 dma_sync_single_for_cpu(dev, dma_handle, offset + size, direction);
101}
102
103static inline int dma_mapping_error(struct device *dev, dma_addr_t handle)
104{
105 return 0;
106}
107
108#else
109#include <asm-generic/dma-mapping-broken.h>
110#endif
111
112#endif /* _M68K_DMA_MAPPING_H */
diff --git a/arch/m68knommu/include/asm/dma-mapping.h b/arch/m68k/include/asm/dma-mapping_no.h
index 6aeab18e58bd..1748f2bca940 100644
--- a/arch/m68knommu/include/asm/dma-mapping.h
+++ b/arch/m68k/include/asm/dma-mapping_no.h
@@ -1,10 +1,6 @@
1#ifndef _M68KNOMMU_DMA_MAPPING_H 1#ifndef _M68KNOMMU_DMA_MAPPING_H
2#define _M68KNOMMU_DMA_MAPPING_H 2#define _M68KNOMMU_DMA_MAPPING_H
3 3
4#ifdef CONFIG_PCI
5#include <asm-generic/dma-mapping.h>
6#else
7#include <asm-generic/dma-mapping-broken.h> 4#include <asm-generic/dma-mapping-broken.h>
8#endif
9 5
10#endif /* _M68KNOMMU_DMA_MAPPING_H */ 6#endif /* _M68KNOMMU_DMA_MAPPING_H */
diff --git a/arch/m68k/include/asm/dma.h b/arch/m68k/include/asm/dma.h
new file mode 100644
index 000000000000..b82e660cf1c2
--- /dev/null
+++ b/arch/m68k/include/asm/dma.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "dma_no.h"
3#else
4#include "dma_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/dma_mm.h b/arch/m68k/include/asm/dma_mm.h
new file mode 100644
index 000000000000..4240fbc946f8
--- /dev/null
+++ b/arch/m68k/include/asm/dma_mm.h
@@ -0,0 +1,16 @@
1#ifndef _M68K_DMA_H
2#define _M68K_DMA_H 1
3
4
5/* it's useless on the m68k, but unfortunately needed by the new
6 bootmem allocator (but this should do it for this) */
7#define MAX_DMA_ADDRESS PAGE_OFFSET
8
9#define MAX_DMA_CHANNELS 8
10
11extern int request_dma(unsigned int dmanr, const char * device_id); /* reserve a DMA channel */
12extern void free_dma(unsigned int dmanr); /* release it again */
13
14#define isa_dma_bridge_buggy (0)
15
16#endif /* _M68K_DMA_H */
diff --git a/arch/m68knommu/include/asm/dma.h b/arch/m68k/include/asm/dma_no.h
index 939a02056217..939a02056217 100644
--- a/arch/m68knommu/include/asm/dma.h
+++ b/arch/m68k/include/asm/dma_no.h
diff --git a/arch/m68k/include/asm/dsp56k.h b/arch/m68k/include/asm/dsp56k.h
new file mode 100644
index 000000000000..2d8c0c9f794b
--- /dev/null
+++ b/arch/m68k/include/asm/dsp56k.h
@@ -0,0 +1,35 @@
1/*
2 * linux/include/asm-m68k/dsp56k.h - defines and declarations for
3 * DSP56k device driver
4 *
5 * Copyright (C) 1996,1997 Fredrik Noring, lars brinkhoff & Tomas Berndtsson
6 *
7 * This file is subject to the terms and conditions of the GNU General Public
8 * License. See the file COPYING in the main directory of this archive
9 * for more details.
10 */
11
12
13/* Used for uploading DSP binary code */
14struct dsp56k_upload {
15 int len;
16 char __user *bin;
17};
18
19/* For the DSP host flags */
20struct dsp56k_host_flags {
21 int dir; /* Bit field. 1 = write output bit, 0 = do nothing.
22 * 0x0000 means reading only, 0x0011 means
23 * writing the bits stored in `out' on HF0 and HF1.
24 * Note that HF2 and HF3 can only be read.
25 */
26 int out; /* Bit field like above. */
27 int status; /* Host register's current state is returned */
28};
29
30/* ioctl command codes */
31#define DSP56K_UPLOAD 1 /* Upload DSP binary program */
32#define DSP56K_SET_TX_WSIZE 2 /* Host transmit word size (1-4) */
33#define DSP56K_SET_RX_WSIZE 3 /* Host receive word size (1-4) */
34#define DSP56K_HOST_FLAGS 4 /* Host flag registers */
35#define DSP56K_HOST_CMD 5 /* Trig Host Command (0-31) */
diff --git a/arch/m68k/include/asm/dvma.h b/arch/m68k/include/asm/dvma.h
new file mode 100644
index 000000000000..890bbf7e7758
--- /dev/null
+++ b/arch/m68k/include/asm/dvma.h
@@ -0,0 +1,240 @@
1/*
2 * include/asm-m68k/dma.h
3 *
4 * Copyright 1995 (C) David S. Miller (davem@caip.rutgers.edu)
5 *
6 * Hacked to fit Sun3x needs by Thomas Bogendoerfer
7 */
8
9#ifndef __M68K_DVMA_H
10#define __M68K_DVMA_H
11
12
13#define DVMA_PAGE_SHIFT 13
14#define DVMA_PAGE_SIZE (1UL << DVMA_PAGE_SHIFT)
15#define DVMA_PAGE_MASK (~(DVMA_PAGE_SIZE-1))
16#define DVMA_PAGE_ALIGN(addr) ALIGN(addr, DVMA_PAGE_SIZE)
17
18extern void dvma_init(void);
19extern int dvma_map_iommu(unsigned long kaddr, unsigned long baddr,
20 int len);
21
22#define dvma_malloc(x) dvma_malloc_align(x, 0)
23#define dvma_map(x, y) dvma_map_align(x, y, 0)
24#define dvma_map_vme(x, y) (dvma_map(x, y) & 0xfffff)
25#define dvma_map_align_vme(x, y, z) (dvma_map_align (x, y, z) & 0xfffff)
26extern unsigned long dvma_map_align(unsigned long kaddr, int len,
27 int align);
28extern void *dvma_malloc_align(unsigned long len, unsigned long align);
29
30extern void dvma_unmap(void *baddr);
31extern void dvma_free(void *vaddr);
32
33
34#ifdef CONFIG_SUN3
35/* sun3 dvma page support */
36
37/* memory and pmegs potentially reserved for dvma */
38#define DVMA_PMEG_START 10
39#define DVMA_PMEG_END 16
40#define DVMA_START 0xf00000
41#define DVMA_END 0xfe0000
42#define DVMA_SIZE (DVMA_END-DVMA_START)
43#define IOMMU_TOTAL_ENTRIES 128
44#define IOMMU_ENTRIES 120
45
46/* empirical kludge -- dvma regions only seem to work right on 0x10000
47 byte boundaries */
48#define DVMA_REGION_SIZE 0x10000
49#define DVMA_ALIGN(addr) (((addr)+DVMA_REGION_SIZE-1) & \
50 ~(DVMA_REGION_SIZE-1))
51
52/* virt <-> phys conversions */
53#define dvma_vtop(x) ((unsigned long)(x) & 0xffffff)
54#define dvma_ptov(x) ((unsigned long)(x) | 0xf000000)
55#define dvma_vtovme(x) ((unsigned long)(x) & 0x00fffff)
56#define dvma_vmetov(x) ((unsigned long)(x) | 0xff00000)
57#define dvma_vtob(x) dvma_vtop(x)
58#define dvma_btov(x) dvma_ptov(x)
59
60static inline int dvma_map_cpu(unsigned long kaddr, unsigned long vaddr,
61 int len)
62{
63 return 0;
64}
65
66#else /* Sun3x */
67
68/* sun3x dvma page support */
69
70#define DVMA_START 0x0
71#define DVMA_END 0xf00000
72#define DVMA_SIZE (DVMA_END-DVMA_START)
73#define IOMMU_TOTAL_ENTRIES 2048
74/* the prom takes the top meg */
75#define IOMMU_ENTRIES (IOMMU_TOTAL_ENTRIES - 0x80)
76
77#define dvma_vtob(x) ((unsigned long)(x) & 0x00ffffff)
78#define dvma_btov(x) ((unsigned long)(x) | 0xff000000)
79
80extern int dvma_map_cpu(unsigned long kaddr, unsigned long vaddr, int len);
81
82
83
84/* everything below this line is specific to dma used for the onboard
85 ESP scsi on sun3x */
86
87/* Structure to describe the current status of DMA registers on the Sparc */
88struct sparc_dma_registers {
89 __volatile__ unsigned long cond_reg; /* DMA condition register */
90 __volatile__ unsigned long st_addr; /* Start address of this transfer */
91 __volatile__ unsigned long cnt; /* How many bytes to transfer */
92 __volatile__ unsigned long dma_test; /* DMA test register */
93};
94
95/* DVMA chip revisions */
96enum dvma_rev {
97 dvmarev0,
98 dvmaesc1,
99 dvmarev1,
100 dvmarev2,
101 dvmarev3,
102 dvmarevplus,
103 dvmahme
104};
105
106#define DMA_HASCOUNT(rev) ((rev)==dvmaesc1)
107
108/* Linux DMA information structure, filled during probe. */
109struct Linux_SBus_DMA {
110 struct Linux_SBus_DMA *next;
111 struct linux_sbus_device *SBus_dev;
112 struct sparc_dma_registers *regs;
113
114 /* Status, misc info */
115 int node; /* Prom node for this DMA device */
116 int running; /* Are we doing DMA now? */
117 int allocated; /* Are we "owned" by anyone yet? */
118
119 /* Transfer information. */
120 unsigned long addr; /* Start address of current transfer */
121 int nbytes; /* Size of current transfer */
122 int realbytes; /* For splitting up large transfers, etc. */
123
124 /* DMA revision */
125 enum dvma_rev revision;
126};
127
128extern struct Linux_SBus_DMA *dma_chain;
129
130/* Broken hardware... */
131#define DMA_ISBROKEN(dma) ((dma)->revision == dvmarev1)
132#define DMA_ISESC1(dma) ((dma)->revision == dvmaesc1)
133
134/* Fields in the cond_reg register */
135/* First, the version identification bits */
136#define DMA_DEVICE_ID 0xf0000000 /* Device identification bits */
137#define DMA_VERS0 0x00000000 /* Sunray DMA version */
138#define DMA_ESCV1 0x40000000 /* DMA ESC Version 1 */
139#define DMA_VERS1 0x80000000 /* DMA rev 1 */
140#define DMA_VERS2 0xa0000000 /* DMA rev 2 */
141#define DMA_VERHME 0xb0000000 /* DMA hme gate array */
142#define DMA_VERSPLUS 0x90000000 /* DMA rev 1 PLUS */
143
144#define DMA_HNDL_INTR 0x00000001 /* An IRQ needs to be handled */
145#define DMA_HNDL_ERROR 0x00000002 /* We need to take an error */
146#define DMA_FIFO_ISDRAIN 0x0000000c /* The DMA FIFO is draining */
147#define DMA_INT_ENAB 0x00000010 /* Turn on interrupts */
148#define DMA_FIFO_INV 0x00000020 /* Invalidate the FIFO */
149#define DMA_ACC_SZ_ERR 0x00000040 /* The access size was bad */
150#define DMA_FIFO_STDRAIN 0x00000040 /* DMA_VERS1 Drain the FIFO */
151#define DMA_RST_SCSI 0x00000080 /* Reset the SCSI controller */
152#define DMA_RST_ENET DMA_RST_SCSI /* Reset the ENET controller */
153#define DMA_ST_WRITE 0x00000100 /* write from device to memory */
154#define DMA_ENABLE 0x00000200 /* Fire up DMA, handle requests */
155#define DMA_PEND_READ 0x00000400 /* DMA_VERS1/0/PLUS Pending Read */
156#define DMA_ESC_BURST 0x00000800 /* 1=16byte 0=32byte */
157#define DMA_READ_AHEAD 0x00001800 /* DMA read ahead partial longword */
158#define DMA_DSBL_RD_DRN 0x00001000 /* No EC drain on slave reads */
159#define DMA_BCNT_ENAB 0x00002000 /* If on, use the byte counter */
160#define DMA_TERM_CNTR 0x00004000 /* Terminal counter */
161#define DMA_CSR_DISAB 0x00010000 /* No FIFO drains during csr */
162#define DMA_SCSI_DISAB 0x00020000 /* No FIFO drains during reg */
163#define DMA_DSBL_WR_INV 0x00020000 /* No EC inval. on slave writes */
164#define DMA_ADD_ENABLE 0x00040000 /* Special ESC DVMA optimization */
165#define DMA_E_BURST8 0x00040000 /* ENET: SBUS r/w burst size */
166#define DMA_BRST_SZ 0x000c0000 /* SCSI: SBUS r/w burst size */
167#define DMA_BRST64 0x00080000 /* SCSI: 64byte bursts (HME on UltraSparc only) */
168#define DMA_BRST32 0x00040000 /* SCSI: 32byte bursts */
169#define DMA_BRST16 0x00000000 /* SCSI: 16byte bursts */
170#define DMA_BRST0 0x00080000 /* SCSI: no bursts (non-HME gate arrays) */
171#define DMA_ADDR_DISAB 0x00100000 /* No FIFO drains during addr */
172#define DMA_2CLKS 0x00200000 /* Each transfer = 2 clock ticks */
173#define DMA_3CLKS 0x00400000 /* Each transfer = 3 clock ticks */
174#define DMA_EN_ENETAUI DMA_3CLKS /* Put lance into AUI-cable mode */
175#define DMA_CNTR_DISAB 0x00800000 /* No IRQ when DMA_TERM_CNTR set */
176#define DMA_AUTO_NADDR 0x01000000 /* Use "auto nxt addr" feature */
177#define DMA_SCSI_ON 0x02000000 /* Enable SCSI dma */
178#define DMA_PARITY_OFF 0x02000000 /* HME: disable parity checking */
179#define DMA_LOADED_ADDR 0x04000000 /* Address has been loaded */
180#define DMA_LOADED_NADDR 0x08000000 /* Next address has been loaded */
181
182/* Values describing the burst-size property from the PROM */
183#define DMA_BURST1 0x01
184#define DMA_BURST2 0x02
185#define DMA_BURST4 0x04
186#define DMA_BURST8 0x08
187#define DMA_BURST16 0x10
188#define DMA_BURST32 0x20
189#define DMA_BURST64 0x40
190#define DMA_BURSTBITS 0x7f
191
192/* Determine highest possible final transfer address given a base */
193#define DMA_MAXEND(addr) (0x01000000UL-(((unsigned long)(addr))&0x00ffffffUL))
194
195/* Yes, I hack a lot of elisp in my spare time... */
196#define DMA_ERROR_P(regs) ((((regs)->cond_reg) & DMA_HNDL_ERROR))
197#define DMA_IRQ_P(regs) ((((regs)->cond_reg) & (DMA_HNDL_INTR | DMA_HNDL_ERROR)))
198#define DMA_WRITE_P(regs) ((((regs)->cond_reg) & DMA_ST_WRITE))
199#define DMA_OFF(regs) ((((regs)->cond_reg) &= (~DMA_ENABLE)))
200#define DMA_INTSOFF(regs) ((((regs)->cond_reg) &= (~DMA_INT_ENAB)))
201#define DMA_INTSON(regs) ((((regs)->cond_reg) |= (DMA_INT_ENAB)))
202#define DMA_PUNTFIFO(regs) ((((regs)->cond_reg) |= DMA_FIFO_INV))
203#define DMA_SETSTART(regs, addr) ((((regs)->st_addr) = (char *) addr))
204#define DMA_BEGINDMA_W(regs) \
205 ((((regs)->cond_reg |= (DMA_ST_WRITE|DMA_ENABLE|DMA_INT_ENAB))))
206#define DMA_BEGINDMA_R(regs) \
207 ((((regs)->cond_reg |= ((DMA_ENABLE|DMA_INT_ENAB)&(~DMA_ST_WRITE)))))
208
209/* For certain DMA chips, we need to disable ints upon irq entry
210 * and turn them back on when we are done. So in any ESP interrupt
211 * handler you *must* call DMA_IRQ_ENTRY upon entry and DMA_IRQ_EXIT
212 * when leaving the handler. You have been warned...
213 */
214#define DMA_IRQ_ENTRY(dma, dregs) do { \
215 if(DMA_ISBROKEN(dma)) DMA_INTSOFF(dregs); \
216 } while (0)
217
218#define DMA_IRQ_EXIT(dma, dregs) do { \
219 if(DMA_ISBROKEN(dma)) DMA_INTSON(dregs); \
220 } while(0)
221
222/* Reset the friggin' thing... */
223#define DMA_RESET(dma) do { \
224 struct sparc_dma_registers *regs = dma->regs; \
225 /* Let the current FIFO drain itself */ \
226 sparc_dma_pause(regs, (DMA_FIFO_ISDRAIN)); \
227 /* Reset the logic */ \
228 regs->cond_reg |= (DMA_RST_SCSI); /* assert */ \
229 __delay(400); /* let the bits set ;) */ \
230 regs->cond_reg &= ~(DMA_RST_SCSI); /* de-assert */ \
231 sparc_dma_enable_interrupts(regs); /* Re-enable interrupts */ \
232 /* Enable FAST transfers if available */ \
233 if(dma->revision>dvmarev1) regs->cond_reg |= DMA_3CLKS; \
234 dma->running = 0; \
235} while(0)
236
237
238#endif /* !CONFIG_SUN3 */
239
240#endif /* !(__M68K_DVMA_H) */
diff --git a/arch/m68k/include/asm/elf.h b/arch/m68k/include/asm/elf.h
new file mode 100644
index 000000000000..04ce488bc63f
--- /dev/null
+++ b/arch/m68k/include/asm/elf.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "elf_no.h"
3#else
4#include "elf_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/elf_mm.h b/arch/m68k/include/asm/elf_mm.h
new file mode 100644
index 000000000000..0b0f49eb876b
--- /dev/null
+++ b/arch/m68k/include/asm/elf_mm.h
@@ -0,0 +1,119 @@
1#ifndef __ASMm68k_ELF_H
2#define __ASMm68k_ELF_H
3
4/*
5 * ELF register definitions..
6 */
7
8#include <asm/ptrace.h>
9#include <asm/user.h>
10
11/*
12 * 68k ELF relocation types
13 */
14#define R_68K_NONE 0
15#define R_68K_32 1
16#define R_68K_16 2
17#define R_68K_8 3
18#define R_68K_PC32 4
19#define R_68K_PC16 5
20#define R_68K_PC8 6
21#define R_68K_GOT32 7
22#define R_68K_GOT16 8
23#define R_68K_GOT8 9
24#define R_68K_GOT32O 10
25#define R_68K_GOT16O 11
26#define R_68K_GOT8O 12
27#define R_68K_PLT32 13
28#define R_68K_PLT16 14
29#define R_68K_PLT8 15
30#define R_68K_PLT32O 16
31#define R_68K_PLT16O 17
32#define R_68K_PLT8O 18
33#define R_68K_COPY 19
34#define R_68K_GLOB_DAT 20
35#define R_68K_JMP_SLOT 21
36#define R_68K_RELATIVE 22
37
38typedef unsigned long elf_greg_t;
39
40#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t))
41typedef elf_greg_t elf_gregset_t[ELF_NGREG];
42
43typedef struct user_m68kfp_struct elf_fpregset_t;
44
45/*
46 * This is used to ensure we don't load something for the wrong architecture.
47 */
48#define elf_check_arch(x) ((x)->e_machine == EM_68K)
49
50/*
51 * These are used to set parameters in the core dumps.
52 */
53#define ELF_CLASS ELFCLASS32
54#define ELF_DATA ELFDATA2MSB
55#define ELF_ARCH EM_68K
56
57/* For SVR4/m68k the function pointer to be registered with `atexit' is
58 passed in %a1. Although my copy of the ABI has no such statement, it
59 is actually used on ASV. */
60#define ELF_PLAT_INIT(_r, load_addr) _r->a1 = 0
61
62#define USE_ELF_CORE_DUMP
63#ifndef CONFIG_SUN3
64#define ELF_EXEC_PAGESIZE 4096
65#else
66#define ELF_EXEC_PAGESIZE 8192
67#endif
68
69/* This is the location that an ET_DYN program is loaded if exec'ed. Typical
70 use of this is to invoke "./ld.so someprog" to test out a new version of
71 the loader. We need to make sure that it is out of the way of the program
72 that it will "exec", and that there is sufficient room for the brk. */
73
74#ifndef CONFIG_SUN3
75#define ELF_ET_DYN_BASE 0xD0000000UL
76#else
77#define ELF_ET_DYN_BASE 0x0D800000UL
78#endif
79
80#define ELF_CORE_COPY_REGS(pr_reg, regs) \
81 /* Bleech. */ \
82 pr_reg[0] = regs->d1; \
83 pr_reg[1] = regs->d2; \
84 pr_reg[2] = regs->d3; \
85 pr_reg[3] = regs->d4; \
86 pr_reg[4] = regs->d5; \
87 pr_reg[7] = regs->a0; \
88 pr_reg[8] = regs->a1; \
89 pr_reg[9] = regs->a2; \
90 pr_reg[14] = regs->d0; \
91 pr_reg[15] = rdusp(); \
92 pr_reg[16] = regs->orig_d0; \
93 pr_reg[17] = regs->sr; \
94 pr_reg[18] = regs->pc; \
95 pr_reg[19] = (regs->format << 12) | regs->vector; \
96 { \
97 struct switch_stack *sw = ((struct switch_stack *)regs) - 1; \
98 pr_reg[5] = sw->d6; \
99 pr_reg[6] = sw->d7; \
100 pr_reg[10] = sw->a3; \
101 pr_reg[11] = sw->a4; \
102 pr_reg[12] = sw->a5; \
103 pr_reg[13] = sw->a6; \
104 }
105
106/* This yields a mask that user programs can use to figure out what
107 instruction set this cpu supports. */
108
109#define ELF_HWCAP (0)
110
111/* This yields a string that ld.so will use to load implementation
112 specific libraries for optimization. This is more specific in
113 intent than poking at uname or /proc/cpuinfo. */
114
115#define ELF_PLATFORM (NULL)
116
117#define SET_PERSONALITY(ex) set_personality(PER_LINUX)
118
119#endif
diff --git a/arch/m68knommu/include/asm/elf.h b/arch/m68k/include/asm/elf_no.h
index b8046837f384..b8046837f384 100644
--- a/arch/m68knommu/include/asm/elf.h
+++ b/arch/m68k/include/asm/elf_no.h
diff --git a/arch/m68knommu/include/asm/elia.h b/arch/m68k/include/asm/elia.h
index e037d4e2de33..e037d4e2de33 100644
--- a/arch/m68knommu/include/asm/elia.h
+++ b/arch/m68k/include/asm/elia.h
diff --git a/arch/m68knommu/include/asm/emergency-restart.h b/arch/m68k/include/asm/emergency-restart.h
index 108d8c48e42e..108d8c48e42e 100644
--- a/arch/m68knommu/include/asm/emergency-restart.h
+++ b/arch/m68k/include/asm/emergency-restart.h
diff --git a/arch/m68k/include/asm/entry.h b/arch/m68k/include/asm/entry.h
new file mode 100644
index 000000000000..876eec6f2b52
--- /dev/null
+++ b/arch/m68k/include/asm/entry.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "entry_no.h"
3#else
4#include "entry_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/entry_mm.h b/arch/m68k/include/asm/entry_mm.h
new file mode 100644
index 000000000000..5202f5a5b420
--- /dev/null
+++ b/arch/m68k/include/asm/entry_mm.h
@@ -0,0 +1,137 @@
1#ifndef __M68K_ENTRY_H
2#define __M68K_ENTRY_H
3
4#include <asm/setup.h>
5#include <asm/page.h>
6
7/*
8 * Stack layout in 'ret_from_exception':
9 *
10 * This allows access to the syscall arguments in registers d1-d5
11 *
12 * 0(sp) - d1
13 * 4(sp) - d2
14 * 8(sp) - d3
15 * C(sp) - d4
16 * 10(sp) - d5
17 * 14(sp) - a0
18 * 18(sp) - a1
19 * 1C(sp) - a2
20 * 20(sp) - d0
21 * 24(sp) - orig_d0
22 * 28(sp) - stack adjustment
23 * 2C(sp) - sr
24 * 2E(sp) - pc
25 * 32(sp) - format & vector
26 */
27
28/*
29 * 97/05/14 Andreas: Register %a2 is now set to the current task throughout
30 * the whole kernel.
31 */
32
33/* the following macro is used when enabling interrupts */
34#if defined(MACH_ATARI_ONLY)
35 /* block out HSYNC on the atari */
36#define ALLOWINT (~0x400)
37#define MAX_NOINT_IPL 3
38#else
39 /* portable version */
40#define ALLOWINT (~0x700)
41#define MAX_NOINT_IPL 0
42#endif /* machine compilation types */
43
44#ifdef __ASSEMBLY__
45
46#define curptr a2
47
48LFLUSH_I_AND_D = 0x00000808
49LSIGTRAP = 5
50
51/* process bits for task_struct.ptrace */
52PT_TRACESYS_OFF = 3
53PT_TRACESYS_BIT = 1
54PT_PTRACED_OFF = 3
55PT_PTRACED_BIT = 0
56PT_DTRACE_OFF = 3
57PT_DTRACE_BIT = 2
58
59#define SAVE_ALL_INT save_all_int
60#define SAVE_ALL_SYS save_all_sys
61#define RESTORE_ALL restore_all
62/*
63 * This defines the normal kernel pt-regs layout.
64 *
65 * regs a3-a6 and d6-d7 are preserved by C code
66 * the kernel doesn't mess with usp unless it needs to
67 */
68
69/*
70 * a -1 in the orig_d0 field signifies
71 * that the stack frame is NOT for syscall
72 */
73.macro save_all_int
74 clrl %sp@- | stk_adj
75 pea -1:w | orig d0
76 movel %d0,%sp@- | d0
77 moveml %d1-%d5/%a0-%a1/%curptr,%sp@-
78.endm
79
80.macro save_all_sys
81 clrl %sp@- | stk_adj
82 movel %d0,%sp@- | orig d0
83 movel %d0,%sp@- | d0
84 moveml %d1-%d5/%a0-%a1/%curptr,%sp@-
85.endm
86
87.macro restore_all
88 moveml %sp@+,%a0-%a1/%curptr/%d1-%d5
89 movel %sp@+,%d0
90 addql #4,%sp | orig d0
91 addl %sp@+,%sp | stk adj
92 rte
93.endm
94
95#define SWITCH_STACK_SIZE (6*4+4) /* includes return address */
96
97#define SAVE_SWITCH_STACK save_switch_stack
98#define RESTORE_SWITCH_STACK restore_switch_stack
99#define GET_CURRENT(tmp) get_current tmp
100
101.macro save_switch_stack
102 moveml %a3-%a6/%d6-%d7,%sp@-
103.endm
104
105.macro restore_switch_stack
106 moveml %sp@+,%a3-%a6/%d6-%d7
107.endm
108
109.macro get_current reg=%d0
110 movel %sp,\reg
111 andw #-THREAD_SIZE,\reg
112 movel \reg,%curptr
113 movel %curptr@,%curptr
114.endm
115
116#else /* C source */
117
118#define STR(X) STR1(X)
119#define STR1(X) #X
120
121#define PT_OFF_ORIG_D0 0x24
122#define PT_OFF_FORMATVEC 0x32
123#define PT_OFF_SR 0x2C
124#define SAVE_ALL_INT \
125 "clrl %%sp@-;" /* stk_adj */ \
126 "pea -1:w;" /* orig d0 = -1 */ \
127 "movel %%d0,%%sp@-;" /* d0 */ \
128 "moveml %%d1-%%d5/%%a0-%%a2,%%sp@-"
129#define GET_CURRENT(tmp) \
130 "movel %%sp,"#tmp"\n\t" \
131 "andw #-"STR(THREAD_SIZE)","#tmp"\n\t" \
132 "movel "#tmp",%%a2\n\t" \
133 "movel %%a2@,%%a2"
134
135#endif
136
137#endif /* __M68K_ENTRY_H */
diff --git a/arch/m68knommu/include/asm/entry.h b/arch/m68k/include/asm/entry_no.h
index c2553d26273d..c2553d26273d 100644
--- a/arch/m68knommu/include/asm/entry.h
+++ b/arch/m68k/include/asm/entry_no.h
diff --git a/arch/m68k/include/asm/errno.h b/arch/m68k/include/asm/errno.h
new file mode 100644
index 000000000000..0d4e188d6ef6
--- /dev/null
+++ b/arch/m68k/include/asm/errno.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_ERRNO_H
2#define _M68K_ERRNO_H
3
4#include <asm-generic/errno.h>
5
6#endif /* _M68K_ERRNO_H */
diff --git a/arch/m68k/include/asm/fb.h b/arch/m68k/include/asm/fb.h
new file mode 100644
index 000000000000..97bcaefd2064
--- /dev/null
+++ b/arch/m68k/include/asm/fb.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "fb_no.h"
3#else
4#include "fb_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/fb_mm.h b/arch/m68k/include/asm/fb_mm.h
new file mode 100644
index 000000000000..380b97ae8157
--- /dev/null
+++ b/arch/m68k/include/asm/fb_mm.h
@@ -0,0 +1,34 @@
1#ifndef _ASM_FB_H_
2#define _ASM_FB_H_
3
4#include <linux/fb.h>
5#include <linux/fs.h>
6#include <asm/page.h>
7#include <asm/setup.h>
8
9#ifdef CONFIG_SUN3
10static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
11 unsigned long off)
12{
13 pgprot_val(vma->vm_page_prot) |= SUN3_PAGE_NOCACHE;
14}
15#else
16static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
17 unsigned long off)
18{
19 if (CPU_IS_020_OR_030)
20 pgprot_val(vma->vm_page_prot) |= _PAGE_NOCACHE030;
21 if (CPU_IS_040_OR_060) {
22 pgprot_val(vma->vm_page_prot) &= _CACHEMASK040;
23 /* Use no-cache mode, serialized */
24 pgprot_val(vma->vm_page_prot) |= _PAGE_NOCACHE_S;
25 }
26}
27#endif /* CONFIG_SUN3 */
28
29static inline int fb_is_primary_device(struct fb_info *info)
30{
31 return 0;
32}
33
34#endif /* _ASM_FB_H_ */
diff --git a/arch/m68knommu/include/asm/fb.h b/arch/m68k/include/asm/fb_no.h
index c7df38030992..c7df38030992 100644
--- a/arch/m68knommu/include/asm/fb.h
+++ b/arch/m68k/include/asm/fb_no.h
diff --git a/arch/m68k/include/asm/fbio.h b/arch/m68k/include/asm/fbio.h
new file mode 100644
index 000000000000..b9215a0907d3
--- /dev/null
+++ b/arch/m68k/include/asm/fbio.h
@@ -0,0 +1,330 @@
1#ifndef __LINUX_FBIO_H
2#define __LINUX_FBIO_H
3
4#include <linux/compiler.h>
5#include <linux/types.h>
6
7/* Constants used for fbio SunOS compatibility */
8/* (C) 1996 Miguel de Icaza */
9
10/* Frame buffer types */
11#define FBTYPE_NOTYPE -1
12#define FBTYPE_SUN1BW 0 /* mono */
13#define FBTYPE_SUN1COLOR 1
14#define FBTYPE_SUN2BW 2
15#define FBTYPE_SUN2COLOR 3
16#define FBTYPE_SUN2GP 4
17#define FBTYPE_SUN5COLOR 5
18#define FBTYPE_SUN3COLOR 6
19#define FBTYPE_MEMCOLOR 7
20#define FBTYPE_SUN4COLOR 8
21
22#define FBTYPE_NOTSUN1 9
23#define FBTYPE_NOTSUN2 10
24#define FBTYPE_NOTSUN3 11
25
26#define FBTYPE_SUNFAST_COLOR 12 /* cg6 */
27#define FBTYPE_SUNROP_COLOR 13
28#define FBTYPE_SUNFB_VIDEO 14
29#define FBTYPE_SUNGIFB 15
30#define FBTYPE_SUNGPLAS 16
31#define FBTYPE_SUNGP3 17
32#define FBTYPE_SUNGT 18
33#define FBTYPE_SUNLEO 19 /* zx Leo card */
34#define FBTYPE_MDICOLOR 20 /* cg14 */
35#define FBTYPE_TCXCOLOR 21 /* SUNW,tcx card */
36
37#define FBTYPE_LASTPLUSONE 21 /* This is not last + 1 in fact... */
38
39/* Does not seem to be listed in the Sun file either */
40#define FBTYPE_CREATOR 22
41#define FBTYPE_PCI_IGA1682 23
42#define FBTYPE_P9100COLOR 24
43
44#define FBTYPE_PCI_GENERIC 1000
45#define FBTYPE_PCI_MACH64 1001
46
47/* fbio ioctls */
48/* Returned by FBIOGTYPE */
49struct fbtype {
50 int fb_type; /* fb type, see above */
51 int fb_height; /* pixels */
52 int fb_width; /* pixels */
53 int fb_depth;
54 int fb_cmsize; /* color map entries */
55 int fb_size; /* fb size in bytes */
56};
57#define FBIOGTYPE _IOR('F', 0, struct fbtype)
58
59struct fbcmap {
60 int index; /* first element (0 origin) */
61 int count;
62 unsigned char __user *red;
63 unsigned char __user *green;
64 unsigned char __user *blue;
65};
66
67#ifdef __KERNEL__
68#define FBIOPUTCMAP_SPARC _IOW('F', 3, struct fbcmap)
69#define FBIOGETCMAP_SPARC _IOW('F', 4, struct fbcmap)
70#else
71#define FBIOPUTCMAP _IOW('F', 3, struct fbcmap)
72#define FBIOGETCMAP _IOW('F', 4, struct fbcmap)
73#endif
74
75/* # of device specific values */
76#define FB_ATTR_NDEVSPECIFIC 8
77/* # of possible emulations */
78#define FB_ATTR_NEMUTYPES 4
79
80struct fbsattr {
81 int flags;
82 int emu_type; /* -1 if none */
83 int dev_specific[FB_ATTR_NDEVSPECIFIC];
84};
85
86struct fbgattr {
87 int real_type; /* real frame buffer type */
88 int owner; /* unknown */
89 struct fbtype fbtype; /* real frame buffer fbtype */
90 struct fbsattr sattr;
91 int emu_types[FB_ATTR_NEMUTYPES]; /* supported emulations */
92};
93#define FBIOSATTR _IOW('F', 5, struct fbgattr) /* Unsupported: */
94#define FBIOGATTR _IOR('F', 6, struct fbgattr) /* supported */
95
96#define FBIOSVIDEO _IOW('F', 7, int)
97#define FBIOGVIDEO _IOR('F', 8, int)
98
99struct fbcursor {
100 short set; /* what to set, choose from the list above */
101 short enable; /* cursor on/off */
102 struct fbcurpos pos; /* cursor position */
103 struct fbcurpos hot; /* cursor hot spot */
104 struct fbcmap cmap; /* color map info */
105 struct fbcurpos size; /* cursor bit map size */
106 char __user *image; /* cursor image bits */
107 char __user *mask; /* cursor mask bits */
108};
109
110/* set/get cursor attributes/shape */
111#define FBIOSCURSOR _IOW('F', 24, struct fbcursor)
112#define FBIOGCURSOR _IOWR('F', 25, struct fbcursor)
113
114/* set/get cursor position */
115#define FBIOSCURPOS _IOW('F', 26, struct fbcurpos)
116#define FBIOGCURPOS _IOW('F', 27, struct fbcurpos)
117
118/* get max cursor size */
119#define FBIOGCURMAX _IOR('F', 28, struct fbcurpos)
120
121/* wid manipulation */
122struct fb_wid_alloc {
123#define FB_WID_SHARED_8 0
124#define FB_WID_SHARED_24 1
125#define FB_WID_DBL_8 2
126#define FB_WID_DBL_24 3
127 __u32 wa_type;
128 __s32 wa_index; /* Set on return */
129 __u32 wa_count;
130};
131struct fb_wid_item {
132 __u32 wi_type;
133 __s32 wi_index;
134 __u32 wi_attrs;
135 __u32 wi_values[32];
136};
137struct fb_wid_list {
138 __u32 wl_flags;
139 __u32 wl_count;
140 struct fb_wid_item *wl_list;
141};
142
143#define FBIO_WID_ALLOC _IOWR('F', 30, struct fb_wid_alloc)
144#define FBIO_WID_FREE _IOW('F', 31, struct fb_wid_alloc)
145#define FBIO_WID_PUT _IOW('F', 32, struct fb_wid_list)
146#define FBIO_WID_GET _IOWR('F', 33, struct fb_wid_list)
147
148/* Creator ioctls */
149#define FFB_IOCTL ('F'<<8)
150#define FFB_SYS_INFO (FFB_IOCTL|80)
151#define FFB_CLUTREAD (FFB_IOCTL|81)
152#define FFB_CLUTPOST (FFB_IOCTL|82)
153#define FFB_SETDIAGMODE (FFB_IOCTL|83)
154#define FFB_GETMONITORID (FFB_IOCTL|84)
155#define FFB_GETVIDEOMODE (FFB_IOCTL|85)
156#define FFB_SETVIDEOMODE (FFB_IOCTL|86)
157#define FFB_SETSERVER (FFB_IOCTL|87)
158#define FFB_SETOVCTL (FFB_IOCTL|88)
159#define FFB_GETOVCTL (FFB_IOCTL|89)
160#define FFB_GETSAXNUM (FFB_IOCTL|90)
161#define FFB_FBDEBUG (FFB_IOCTL|91)
162
163/* Cg14 ioctls */
164#define MDI_IOCTL ('M'<<8)
165#define MDI_RESET (MDI_IOCTL|1)
166#define MDI_GET_CFGINFO (MDI_IOCTL|2)
167#define MDI_SET_PIXELMODE (MDI_IOCTL|3)
168# define MDI_32_PIX 32
169# define MDI_16_PIX 16
170# define MDI_8_PIX 8
171
172struct mdi_cfginfo {
173 int mdi_ncluts; /* Number of implemented CLUTs in this MDI */
174 int mdi_type; /* FBTYPE name */
175 int mdi_height; /* height */
176 int mdi_width; /* widht */
177 int mdi_size; /* available ram */
178 int mdi_mode; /* 8bpp, 16bpp or 32bpp */
179 int mdi_pixfreq; /* pixel clock (from PROM) */
180};
181
182/* SparcLinux specific ioctl for the MDI, should be replaced for
183 * the SET_XLUT/SET_CLUTn ioctls instead
184 */
185#define MDI_CLEAR_XLUT (MDI_IOCTL|9)
186
187/* leo & ffb ioctls */
188struct fb_clut_alloc {
189 __u32 clutid; /* Set on return */
190 __u32 flag;
191 __u32 index;
192};
193
194struct fb_clut {
195#define FB_CLUT_WAIT 0x00000001 /* Not yet implemented */
196 __u32 flag;
197 __u32 clutid;
198 __u32 offset;
199 __u32 count;
200 char * red;
201 char * green;
202 char * blue;
203};
204
205struct fb_clut32 {
206 __u32 flag;
207 __u32 clutid;
208 __u32 offset;
209 __u32 count;
210 __u32 red;
211 __u32 green;
212 __u32 blue;
213};
214
215#define LEO_CLUTALLOC _IOWR('L', 53, struct fb_clut_alloc)
216#define LEO_CLUTFREE _IOW('L', 54, struct fb_clut_alloc)
217#define LEO_CLUTREAD _IOW('L', 55, struct fb_clut)
218#define LEO_CLUTPOST _IOW('L', 56, struct fb_clut)
219#define LEO_SETGAMMA _IOW('L', 68, int) /* Not yet implemented */
220#define LEO_GETGAMMA _IOR('L', 69, int) /* Not yet implemented */
221
222#ifdef __KERNEL__
223/* Addresses on the fd of a cgsix that are mappable */
224#define CG6_FBC 0x70000000
225#define CG6_TEC 0x70001000
226#define CG6_BTREGS 0x70002000
227#define CG6_FHC 0x70004000
228#define CG6_THC 0x70005000
229#define CG6_ROM 0x70006000
230#define CG6_RAM 0x70016000
231#define CG6_DHC 0x80000000
232
233#define CG3_MMAP_OFFSET 0x4000000
234
235/* Addresses on the fd of a tcx that are mappable */
236#define TCX_RAM8BIT 0x00000000
237#define TCX_RAM24BIT 0x01000000
238#define TCX_UNK3 0x10000000
239#define TCX_UNK4 0x20000000
240#define TCX_CONTROLPLANE 0x28000000
241#define TCX_UNK6 0x30000000
242#define TCX_UNK7 0x38000000
243#define TCX_TEC 0x70000000
244#define TCX_BTREGS 0x70002000
245#define TCX_THC 0x70004000
246#define TCX_DHC 0x70008000
247#define TCX_ALT 0x7000a000
248#define TCX_SYNC 0x7000e000
249#define TCX_UNK2 0x70010000
250
251/* CG14 definitions */
252
253/* Offsets into the OBIO space: */
254#define CG14_REGS 0 /* registers */
255#define CG14_CURSORREGS 0x1000 /* cursor registers */
256#define CG14_DACREGS 0x2000 /* DAC registers */
257#define CG14_XLUT 0x3000 /* X Look Up Table -- ??? */
258#define CG14_CLUT1 0x4000 /* Color Look Up Table */
259#define CG14_CLUT2 0x5000 /* Color Look Up Table */
260#define CG14_CLUT3 0x6000 /* Color Look Up Table */
261#define CG14_AUTO 0xf000
262
263#endif /* KERNEL */
264
265/* These are exported to userland for applications to use */
266/* Mappable offsets for the cg14: control registers */
267#define MDI_DIRECT_MAP 0x10000000
268#define MDI_CTLREG_MAP 0x20000000
269#define MDI_CURSOR_MAP 0x30000000
270#define MDI_SHDW_VRT_MAP 0x40000000
271
272/* Mappable offsets for the cg14: frame buffer resolutions */
273/* 32 bits */
274#define MDI_CHUNKY_XBGR_MAP 0x50000000
275#define MDI_CHUNKY_BGR_MAP 0x60000000
276
277/* 16 bits */
278#define MDI_PLANAR_X16_MAP 0x70000000
279#define MDI_PLANAR_C16_MAP 0x80000000
280
281/* 8 bit is done as CG3 MMAP offset */
282/* 32 bits, planar */
283#define MDI_PLANAR_X32_MAP 0x90000000
284#define MDI_PLANAR_B32_MAP 0xa0000000
285#define MDI_PLANAR_G32_MAP 0xb0000000
286#define MDI_PLANAR_R32_MAP 0xc0000000
287
288/* Mappable offsets on leo */
289#define LEO_SS0_MAP 0x00000000
290#define LEO_LC_SS0_USR_MAP 0x00800000
291#define LEO_LD_SS0_MAP 0x00801000
292#define LEO_LX_CURSOR_MAP 0x00802000
293#define LEO_SS1_MAP 0x00803000
294#define LEO_LC_SS1_USR_MAP 0x01003000
295#define LEO_LD_SS1_MAP 0x01004000
296#define LEO_UNK_MAP 0x01005000
297#define LEO_LX_KRN_MAP 0x01006000
298#define LEO_LC_SS0_KRN_MAP 0x01007000
299#define LEO_LC_SS1_KRN_MAP 0x01008000
300#define LEO_LD_GBL_MAP 0x01009000
301#define LEO_UNK2_MAP 0x0100a000
302
303#ifdef __KERNEL__
304struct fbcmap32 {
305 int index; /* first element (0 origin) */
306 int count;
307 u32 red;
308 u32 green;
309 u32 blue;
310};
311
312#define FBIOPUTCMAP32 _IOW('F', 3, struct fbcmap32)
313#define FBIOGETCMAP32 _IOW('F', 4, struct fbcmap32)
314
315struct fbcursor32 {
316 short set; /* what to set, choose from the list above */
317 short enable; /* cursor on/off */
318 struct fbcurpos pos; /* cursor position */
319 struct fbcurpos hot; /* cursor hot spot */
320 struct fbcmap32 cmap; /* color map info */
321 struct fbcurpos size; /* cursor bit map size */
322 u32 image; /* cursor image bits */
323 u32 mask; /* cursor mask bits */
324};
325
326#define FBIOSCURSOR32 _IOW('F', 24, struct fbcursor32)
327#define FBIOGCURSOR32 _IOW('F', 25, struct fbcursor32)
328#endif
329
330#endif /* __LINUX_FBIO_H */
diff --git a/arch/m68k/include/asm/fcntl.h b/arch/m68k/include/asm/fcntl.h
new file mode 100644
index 000000000000..1c369b20dc45
--- /dev/null
+++ b/arch/m68k/include/asm/fcntl.h
@@ -0,0 +1,11 @@
1#ifndef _M68K_FCNTL_H
2#define _M68K_FCNTL_H
3
4#define O_DIRECTORY 040000 /* must be a directory */
5#define O_NOFOLLOW 0100000 /* don't follow links */
6#define O_DIRECT 0200000 /* direct disk access hint - currently ignored */
7#define O_LARGEFILE 0400000
8
9#include <asm-generic/fcntl.h>
10
11#endif /* _M68K_FCNTL_H */
diff --git a/arch/m68knommu/include/asm/flat.h b/arch/m68k/include/asm/flat.h
index 814b5174a8e0..814b5174a8e0 100644
--- a/arch/m68knommu/include/asm/flat.h
+++ b/arch/m68k/include/asm/flat.h
diff --git a/arch/m68k/include/asm/floppy.h b/arch/m68k/include/asm/floppy.h
new file mode 100644
index 000000000000..697d50393dd0
--- /dev/null
+++ b/arch/m68k/include/asm/floppy.h
@@ -0,0 +1,254 @@
1/*
2 * Implementation independent bits of the Floppy driver.
3 *
4 * much of this file is derived from what was originally the Q40 floppy driver.
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details.
9 *
10 * Copyright (C) 1999, 2000, 2001
11 *
12 * Sun3x support added 2/4/2000 Sam Creasey (sammy@sammy.net)
13 *
14 */
15
16#include <asm/io.h>
17
18#include <linux/vmalloc.h>
19
20asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id);
21
22/* constants... */
23
24#undef MAX_DMA_ADDRESS
25#define MAX_DMA_ADDRESS 0x00 /* nothing like that */
26
27
28/*
29 * Again, the CMOS information doesn't work on m68k..
30 */
31#define FLOPPY0_TYPE (MACH_IS_Q40 ? 6 : 4)
32#define FLOPPY1_TYPE 0
33
34/* basically PC init + set use_virtual_dma */
35#define FDC1 m68k_floppy_init()
36
37#define N_FDC 1
38#define N_DRIVE 8
39
40
41/* vdma globals adapted from asm-i386/floppy.h */
42
43static int virtual_dma_count=0;
44static int virtual_dma_residue=0;
45static char *virtual_dma_addr=NULL;
46static int virtual_dma_mode=0;
47static int doing_pdma=0;
48
49#include <asm/sun3xflop.h>
50
51extern spinlock_t dma_spin_lock;
52
53static __inline__ unsigned long claim_dma_lock(void)
54{
55 unsigned long flags;
56 spin_lock_irqsave(&dma_spin_lock, flags);
57 return flags;
58}
59
60static __inline__ void release_dma_lock(unsigned long flags)
61{
62 spin_unlock_irqrestore(&dma_spin_lock, flags);
63}
64
65
66static __inline__ unsigned char fd_inb(int port)
67{
68 if(MACH_IS_Q40)
69 return inb_p(port);
70 else if(MACH_IS_SUN3X)
71 return sun3x_82072_fd_inb(port);
72 return 0;
73}
74
75static __inline__ void fd_outb(unsigned char value, int port)
76{
77 if(MACH_IS_Q40)
78 outb_p(value, port);
79 else if(MACH_IS_SUN3X)
80 sun3x_82072_fd_outb(value, port);
81}
82
83
84static int fd_request_irq(void)
85{
86 if(MACH_IS_Q40)
87 return request_irq(FLOPPY_IRQ, floppy_hardint,
88 IRQF_DISABLED, "floppy", floppy_hardint);
89 else if(MACH_IS_SUN3X)
90 return sun3xflop_request_irq();
91 return -ENXIO;
92}
93
94static void fd_free_irq(void)
95{
96 if(MACH_IS_Q40)
97 free_irq(FLOPPY_IRQ, floppy_hardint);
98}
99
100#define fd_request_dma() vdma_request_dma(FLOPPY_DMA,"floppy")
101#define fd_get_dma_residue() vdma_get_dma_residue(FLOPPY_DMA)
102#define fd_dma_mem_alloc(size) vdma_mem_alloc(size)
103#define fd_dma_setup(addr, size, mode, io) vdma_dma_setup(addr, size, mode, io)
104
105#define fd_enable_irq() /* nothing... */
106#define fd_disable_irq() /* nothing... */
107
108#define fd_free_dma() /* nothing */
109
110/* No 64k boundary crossing problems on Q40 - no DMA at all */
111#define CROSS_64KB(a,s) (0)
112
113#define DMA_MODE_READ 0x44 /* i386 look-alike */
114#define DMA_MODE_WRITE 0x48
115
116
117static int m68k_floppy_init(void)
118{
119 use_virtual_dma =1;
120 can_use_virtual_dma = 1;
121
122
123 if (MACH_IS_Q40)
124 return 0x3f0;
125 else if(MACH_IS_SUN3X)
126 return sun3xflop_init();
127 else
128 return -1;
129}
130
131
132static int vdma_request_dma(unsigned int dmanr, const char * device_id)
133{
134 return 0;
135}
136
137
138static int vdma_get_dma_residue(unsigned int dummy)
139{
140 return virtual_dma_count + virtual_dma_residue;
141}
142
143
144static unsigned long vdma_mem_alloc(unsigned long size)
145{
146 return (unsigned long) vmalloc(size);
147
148}
149
150static void _fd_dma_mem_free(unsigned long addr, unsigned long size)
151{
152 vfree((void *)addr);
153}
154#define fd_dma_mem_free(addr,size) _fd_dma_mem_free(addr, size)
155
156
157/* choose_dma_mode ???*/
158
159static int vdma_dma_setup(char *addr, unsigned long size, int mode, int io)
160{
161 doing_pdma = 1;
162 virtual_dma_port = (MACH_IS_Q40 ? io : 0);
163 virtual_dma_mode = (mode == DMA_MODE_WRITE);
164 virtual_dma_addr = addr;
165 virtual_dma_count = size;
166 virtual_dma_residue = 0;
167 return 0;
168}
169
170
171
172static void fd_disable_dma(void)
173{
174 doing_pdma = 0;
175 virtual_dma_residue += virtual_dma_count;
176 virtual_dma_count=0;
177}
178
179
180
181/* this is the only truly Q40 specific function */
182
183asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id)
184{
185 register unsigned char st;
186
187#undef TRACE_FLPY_INT
188#define NO_FLOPPY_ASSEMBLER
189
190#ifdef TRACE_FLPY_INT
191 static int calls=0;
192 static int bytes=0;
193 static int dma_wait=0;
194#endif
195 if(!doing_pdma) {
196 floppy_interrupt(irq, dev_id);
197 return IRQ_HANDLED;
198 }
199
200#ifdef TRACE_FLPY_INT
201 if(!calls)
202 bytes = virtual_dma_count;
203#endif
204
205 {
206 register int lcount;
207 register char *lptr;
208
209 /* serve 1st byte fast: */
210
211 st=1;
212 for(lcount=virtual_dma_count, lptr=virtual_dma_addr;
213 lcount; lcount--, lptr++) {
214 st=inb(virtual_dma_port+4) & 0xa0 ;
215 if(st != 0xa0)
216 break;
217 if(virtual_dma_mode)
218 outb_p(*lptr, virtual_dma_port+5);
219 else
220 *lptr = inb_p(virtual_dma_port+5);
221 }
222
223 virtual_dma_count = lcount;
224 virtual_dma_addr = lptr;
225 st = inb(virtual_dma_port+4);
226 }
227
228#ifdef TRACE_FLPY_INT
229 calls++;
230#endif
231 if(st == 0x20)
232 return IRQ_HANDLED;
233 if(!(st & 0x20)) {
234 virtual_dma_residue += virtual_dma_count;
235 virtual_dma_count=0;
236#ifdef TRACE_FLPY_INT
237 printk("count=%x, residue=%x calls=%d bytes=%d dma_wait=%d\n",
238 virtual_dma_count, virtual_dma_residue, calls, bytes,
239 dma_wait);
240 calls = 0;
241 dma_wait=0;
242#endif
243 doing_pdma = 0;
244 floppy_interrupt(irq, dev_id);
245 return IRQ_HANDLED;
246 }
247#ifdef TRACE_FLPY_INT
248 if(!virtual_dma_count)
249 dma_wait++;
250#endif
251 return IRQ_HANDLED;
252}
253
254#define EXTRA_FLOPPY_PARAMS
diff --git a/arch/m68k/include/asm/fpu.h b/arch/m68k/include/asm/fpu.h
new file mode 100644
index 000000000000..e19bc5ed9c37
--- /dev/null
+++ b/arch/m68k/include/asm/fpu.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "fpu_no.h"
3#else
4#include "fpu_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/fpu_mm.h b/arch/m68k/include/asm/fpu_mm.h
new file mode 100644
index 000000000000..ffb6b8cfc6d5
--- /dev/null
+++ b/arch/m68k/include/asm/fpu_mm.h
@@ -0,0 +1,21 @@
1#ifndef __M68K_FPU_H
2#define __M68K_FPU_H
3
4
5/*
6 * MAX floating point unit state size (FSAVE/FRESTORE)
7 */
8
9#if defined(CONFIG_M68020) || defined(CONFIG_M68030)
10#define FPSTATESIZE (216)
11#elif defined(CONFIG_M68040)
12#define FPSTATESIZE (96)
13#elif defined(CONFIG_M68KFPU_EMU)
14#define FPSTATESIZE (28)
15#elif defined(CONFIG_M68060)
16#define FPSTATESIZE (12)
17#else
18#define FPSTATESIZE (0)
19#endif
20
21#endif /* __M68K_FPU_H */
diff --git a/arch/m68knommu/include/asm/fpu.h b/arch/m68k/include/asm/fpu_no.h
index b16b2e4fca2a..b16b2e4fca2a 100644
--- a/arch/m68knommu/include/asm/fpu.h
+++ b/arch/m68k/include/asm/fpu_no.h
diff --git a/arch/m68knommu/include/asm/futex.h b/arch/m68k/include/asm/futex.h
index 6a332a9f099c..6a332a9f099c 100644
--- a/arch/m68knommu/include/asm/futex.h
+++ b/arch/m68k/include/asm/futex.h
diff --git a/arch/m68k/include/asm/hardirq.h b/arch/m68k/include/asm/hardirq.h
new file mode 100644
index 000000000000..56d0d5db231c
--- /dev/null
+++ b/arch/m68k/include/asm/hardirq.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "hardirq_no.h"
3#else
4#include "hardirq_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/hardirq_mm.h b/arch/m68k/include/asm/hardirq_mm.h
new file mode 100644
index 000000000000..394ee946015c
--- /dev/null
+++ b/arch/m68k/include/asm/hardirq_mm.h
@@ -0,0 +1,16 @@
1#ifndef __M68K_HARDIRQ_H
2#define __M68K_HARDIRQ_H
3
4#include <linux/threads.h>
5#include <linux/cache.h>
6
7/* entry.S is sensitive to the offsets of these fields */
8typedef struct {
9 unsigned int __softirq_pending;
10} ____cacheline_aligned irq_cpustat_t;
11
12#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
13
14#define HARDIRQ_BITS 8
15
16#endif
diff --git a/arch/m68knommu/include/asm/hardirq.h b/arch/m68k/include/asm/hardirq_no.h
index bfad28149a49..bfad28149a49 100644
--- a/arch/m68knommu/include/asm/hardirq.h
+++ b/arch/m68k/include/asm/hardirq_no.h
diff --git a/arch/m68k/include/asm/hp300hw.h b/arch/m68k/include/asm/hp300hw.h
new file mode 100644
index 000000000000..d998ea67c19c
--- /dev/null
+++ b/arch/m68k/include/asm/hp300hw.h
@@ -0,0 +1,25 @@
1#ifndef _M68K_HP300HW_H
2#define _M68K_HP300HW_H
3
4extern unsigned long hp300_model;
5
6/* This information was taken from NetBSD */
7#define HP_320 (0) /* 16MHz 68020+HP MMU+16K external cache */
8#define HP_330 (1) /* 16MHz 68020+68851 MMU */
9#define HP_340 (2) /* 16MHz 68030 */
10#define HP_345 (3) /* 50MHz 68030+32K external cache */
11#define HP_350 (4) /* 25MHz 68020+HP MMU+32K external cache */
12#define HP_360 (5) /* 25MHz 68030 */
13#define HP_370 (6) /* 33MHz 68030+64K external cache */
14#define HP_375 (7) /* 50MHz 68030+32K external cache */
15#define HP_380 (8) /* 25MHz 68040 */
16#define HP_385 (9) /* 33MHz 68040 */
17
18#define HP_400 (10) /* 50MHz 68030+32K external cache */
19#define HP_425T (11) /* 25MHz 68040 - model 425t */
20#define HP_425S (12) /* 25MHz 68040 - model 425s */
21#define HP_425E (13) /* 25MHz 68040 - model 425e */
22#define HP_433T (14) /* 33MHz 68040 - model 433t */
23#define HP_433S (15) /* 33MHz 68040 - model 433s */
24
25#endif /* _M68K_HP300HW_H */
diff --git a/arch/m68k/include/asm/hw_irq.h b/arch/m68k/include/asm/hw_irq.h
new file mode 100644
index 000000000000..e19526015890
--- /dev/null
+++ b/arch/m68k/include/asm/hw_irq.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "hw_irq_no.h"
3#else
4#include "hw_irq_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/hw_irq_mm.h b/arch/m68k/include/asm/hw_irq_mm.h
new file mode 100644
index 000000000000..eacef0951fbf
--- /dev/null
+++ b/arch/m68k/include/asm/hw_irq_mm.h
@@ -0,0 +1,6 @@
1#ifndef __ASM_M68K_HW_IRQ_H
2#define __ASM_M68K_HW_IRQ_H
3
4/* Dummy include. */
5
6#endif
diff --git a/arch/m68knommu/include/asm/hw_irq.h b/arch/m68k/include/asm/hw_irq_no.h
index f3ec9e5ae049..f3ec9e5ae049 100644
--- a/arch/m68knommu/include/asm/hw_irq.h
+++ b/arch/m68k/include/asm/hw_irq_no.h
diff --git a/arch/m68k/include/asm/hwtest.h b/arch/m68k/include/asm/hwtest.h
new file mode 100644
index 000000000000..402c8a4401fe
--- /dev/null
+++ b/arch/m68k/include/asm/hwtest.h
@@ -0,0 +1,15 @@
1/* Routines to test for presence/absence of hardware registers:
2 * see arch/m68k/mm/hwtest.c.
3 * -- PMM <pmaydell@chiark.greenend.org.uk> 05/1998
4 *
5 * Removed __init from decls. We might want them in modules, and
6 * the code is tiny anyway. 16/5/98 pb
7 */
8
9#ifndef __ASM_HWTEST_H
10#define __ASM_HWTEST_H
11
12extern int hwreg_present(volatile void *regp);
13extern int hwreg_write(volatile void *regp, unsigned short val);
14
15#endif
diff --git a/arch/m68k/include/asm/ide.h b/arch/m68k/include/asm/ide.h
new file mode 100644
index 000000000000..b996a3c8cff5
--- /dev/null
+++ b/arch/m68k/include/asm/ide.h
@@ -0,0 +1,130 @@
1/*
2 * linux/include/asm-m68k/ide.h
3 *
4 * Copyright (C) 1994-1996 Linus Torvalds & authors
5 */
6
7/* Copyright(c) 1996 Kars de Jong */
8/* Based on the ide driver from 1.2.13pl8 */
9
10/*
11 * Credits (alphabetical):
12 *
13 * - Bjoern Brauel
14 * - Kars de Jong
15 * - Torsten Ebeling
16 * - Dwight Engen
17 * - Thorsten Floeck
18 * - Roman Hodek
19 * - Guenther Kelleter
20 * - Chris Lawrence
21 * - Michael Rausch
22 * - Christian Sauer
23 * - Michael Schmitz
24 * - Jes Soerensen
25 * - Michael Thurm
26 * - Geert Uytterhoeven
27 */
28
29#ifndef _M68K_IDE_H
30#define _M68K_IDE_H
31
32#ifdef __KERNEL__
33
34
35#include <asm/setup.h>
36#include <asm/io.h>
37#include <asm/irq.h>
38
39#ifdef CONFIG_ATARI
40#include <linux/interrupt.h>
41#include <asm/atari_stdma.h>
42#endif
43
44#ifdef CONFIG_MAC
45#include <asm/macints.h>
46#endif
47
48/*
49 * Get rid of defs from io.h - ide has its private and conflicting versions
50 * Since so far no single m68k platform uses ISA/PCI I/O space for IDE, we
51 * always use the `raw' MMIO versions
52 */
53#undef inb
54#undef inw
55#undef insw
56#undef inl
57#undef insl
58#undef outb
59#undef outw
60#undef outsw
61#undef outl
62#undef outsl
63#undef readb
64#undef readw
65#undef readl
66#undef writeb
67#undef writew
68#undef writel
69
70#define inb in_8
71#define inw in_be16
72#define insw(port, addr, n) raw_insw((u16 *)port, addr, n)
73#define inl in_be32
74#define insl(port, addr, n) raw_insl((u32 *)port, addr, n)
75#define outb(val, port) out_8(port, val)
76#define outw(val, port) out_be16(port, val)
77#define outsw(port, addr, n) raw_outsw((u16 *)port, addr, n)
78#define outl(val, port) out_be32(port, val)
79#define outsl(port, addr, n) raw_outsl((u32 *)port, addr, n)
80#define readb in_8
81#define readw in_be16
82#define __ide_mm_insw(port, addr, n) raw_insw((u16 *)port, addr, n)
83#define readl in_be32
84#define __ide_mm_insl(port, addr, n) raw_insl((u32 *)port, addr, n)
85#define writeb(val, port) out_8(port, val)
86#define writew(val, port) out_be16(port, val)
87#define __ide_mm_outsw(port, addr, n) raw_outsw((u16 *)port, addr, n)
88#define writel(val, port) out_be32(port, val)
89#define __ide_mm_outsl(port, addr, n) raw_outsl((u32 *)port, addr, n)
90#if defined(CONFIG_ATARI) || defined(CONFIG_Q40)
91#define insw_swapw(port, addr, n) raw_insw_swapw((u16 *)port, addr, n)
92#define outsw_swapw(port, addr, n) raw_outsw_swapw((u16 *)port, addr, n)
93#endif
94
95#ifdef CONFIG_BLK_DEV_FALCON_IDE
96#define IDE_ARCH_LOCK
97
98extern int falconide_intr_lock;
99
100static __inline__ void ide_release_lock (void)
101{
102 if (MACH_IS_ATARI) {
103 if (falconide_intr_lock == 0) {
104 printk("ide_release_lock: bug\n");
105 return;
106 }
107 falconide_intr_lock = 0;
108 stdma_release();
109 }
110}
111
112static __inline__ void
113ide_get_lock(irq_handler_t handler, void *data)
114{
115 if (MACH_IS_ATARI) {
116 if (falconide_intr_lock == 0) {
117 if (in_interrupt() > 0)
118 panic( "Falcon IDE hasn't ST-DMA lock in interrupt" );
119 stdma_lock(handler, data);
120 falconide_intr_lock = 1;
121 }
122 }
123}
124#endif /* CONFIG_BLK_DEV_FALCON_IDE */
125
126#define IDE_ARCH_ACK_INTR
127#define ide_ack_intr(hwif) ((hwif)->ack_intr ? (hwif)->ack_intr(hwif) : 1)
128
129#endif /* __KERNEL__ */
130#endif /* _M68K_IDE_H */
diff --git a/arch/m68k/include/asm/idprom.h b/arch/m68k/include/asm/idprom.h
new file mode 100644
index 000000000000..160616a89e05
--- /dev/null
+++ b/arch/m68k/include/asm/idprom.h
@@ -0,0 +1,27 @@
1#ifndef _M68K_IDPROM_H
2#define _M68K_IDPROM_H
3/*
4 * idprom.h: Macros and defines for idprom routines
5 *
6 * Copyright (C) 1995,1996 David S. Miller (davem@caip.rutgers.edu)
7 */
8
9#include <linux/types.h>
10
11struct idprom {
12 u8 id_format; /* Format identifier (always 0x01) */
13 u8 id_machtype; /* Machine type */
14 u8 id_ethaddr[6]; /* Hardware ethernet address */
15 s32 id_date; /* Date of manufacture */
16 u32 id_sernum:24; /* Unique serial number */
17 u8 id_cksum; /* Checksum - xor of the data bytes */
18 u8 reserved[16];
19};
20
21extern struct idprom *idprom;
22extern void idprom_init(void);
23
24/* Sun3: in control space */
25#define SUN3_IDPROM_BASE 0x00000000
26
27#endif /* !(_M68K_IDPROM_H) */
diff --git a/arch/m68k/include/asm/intersil.h b/arch/m68k/include/asm/intersil.h
new file mode 100644
index 000000000000..f482902cac8a
--- /dev/null
+++ b/arch/m68k/include/asm/intersil.h
@@ -0,0 +1,48 @@
1#ifndef _SUN3_INTERSIL_H
2#define _SUN3_INTERSIL_H
3/* bits 0 and 1 */
4#define INTERSIL_FREQ_32K 0x00
5#define INTERSIL_FREQ_1M 0x01
6#define INTERSIL_FREQ_2M 0x02
7#define INTERSIL_FREQ_4M 0x03
8
9/* bit 2 */
10#define INTERSIL_12H_MODE 0x00
11#define INTERSIL_24H_MODE 0x04
12
13/* bit 3 */
14#define INTERSIL_STOP 0x00
15#define INTERSIL_RUN 0x08
16
17/* bit 4 */
18#define INTERSIL_INT_ENABLE 0x10
19#define INTERSIL_INT_DISABLE 0x00
20
21/* bit 5 */
22#define INTERSIL_MODE_NORMAL 0x00
23#define INTERSIL_MODE_TEST 0x20
24
25#define INTERSIL_HZ_100_MASK 0x02
26
27struct intersil_dt {
28 unsigned char csec;
29 unsigned char hour;
30 unsigned char minute;
31 unsigned char second;
32 unsigned char month;
33 unsigned char day;
34 unsigned char year;
35 unsigned char weekday;
36};
37
38struct intersil_7170 {
39 struct intersil_dt counter;
40 struct intersil_dt alarm;
41 unsigned char int_reg;
42 unsigned char cmd_reg;
43};
44
45extern volatile char* clock_va;
46#define intersil_clock ((volatile struct intersil_7170 *) clock_va)
47#define intersil_clear() (void)intersil_clock->int_reg
48#endif
diff --git a/arch/m68k/include/asm/io.h b/arch/m68k/include/asm/io.h
new file mode 100644
index 000000000000..c7210ba184ea
--- /dev/null
+++ b/arch/m68k/include/asm/io.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "io_no.h"
3#else
4#include "io_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/io_mm.h b/arch/m68k/include/asm/io_mm.h
new file mode 100644
index 000000000000..9e673e3bd434
--- /dev/null
+++ b/arch/m68k/include/asm/io_mm.h
@@ -0,0 +1,369 @@
1/*
2 * linux/include/asm-m68k/io.h
3 *
4 * 4/1/00 RZ: - rewritten to avoid clashes between ISA/PCI and other
5 * IO access
6 * - added Q40 support
7 * - added skeleton for GG-II and Amiga PCMCIA
8 * 2/3/01 RZ: - moved a few more defs into raw_io.h
9 *
10 * inX/outX should not be used by any driver unless it does
11 * ISA access. Other drivers should use function defined in raw_io.h
12 * or define its own macros on top of these.
13 *
14 * inX(),outX() are for ISA I/O
15 * isa_readX(),isa_writeX() are for ISA memory
16 */
17
18#ifndef _IO_H
19#define _IO_H
20
21#ifdef __KERNEL__
22
23#include <linux/compiler.h>
24#include <asm/raw_io.h>
25#include <asm/virtconvert.h>
26
27#include <asm-generic/iomap.h>
28
29#ifdef CONFIG_ATARI
30#include <asm/atarihw.h>
31#endif
32
33
34/*
35 * IO/MEM definitions for various ISA bridges
36 */
37
38
39#ifdef CONFIG_Q40
40
41#define q40_isa_io_base 0xff400000
42#define q40_isa_mem_base 0xff800000
43
44#define Q40_ISA_IO_B(ioaddr) (q40_isa_io_base+1+4*((unsigned long)(ioaddr)))
45#define Q40_ISA_IO_W(ioaddr) (q40_isa_io_base+ 4*((unsigned long)(ioaddr)))
46#define Q40_ISA_MEM_B(madr) (q40_isa_mem_base+1+4*((unsigned long)(madr)))
47#define Q40_ISA_MEM_W(madr) (q40_isa_mem_base+ 4*((unsigned long)(madr)))
48
49#define MULTI_ISA 0
50#endif /* Q40 */
51
52/* GG-II Zorro to ISA bridge */
53#ifdef CONFIG_GG2
54
55extern unsigned long gg2_isa_base;
56#define GG2_ISA_IO_B(ioaddr) (gg2_isa_base+1+((unsigned long)(ioaddr)*4))
57#define GG2_ISA_IO_W(ioaddr) (gg2_isa_base+ ((unsigned long)(ioaddr)*4))
58#define GG2_ISA_MEM_B(madr) (gg2_isa_base+1+(((unsigned long)(madr)*4) & 0xfffff))
59#define GG2_ISA_MEM_W(madr) (gg2_isa_base+ (((unsigned long)(madr)*4) & 0xfffff))
60
61#ifndef MULTI_ISA
62#define MULTI_ISA 0
63#else
64#undef MULTI_ISA
65#define MULTI_ISA 1
66#endif
67#endif /* GG2 */
68
69#ifdef CONFIG_AMIGA_PCMCIA
70#include <asm/amigayle.h>
71
72#define AG_ISA_IO_B(ioaddr) ( GAYLE_IO+(ioaddr)+(((ioaddr)&1)*GAYLE_ODD) )
73#define AG_ISA_IO_W(ioaddr) ( GAYLE_IO+(ioaddr) )
74
75#ifndef MULTI_ISA
76#define MULTI_ISA 0
77#else
78#undef MULTI_ISA
79#define MULTI_ISA 1
80#endif
81#endif /* AMIGA_PCMCIA */
82
83
84
85#ifdef CONFIG_ISA
86
87#if MULTI_ISA == 0
88#undef MULTI_ISA
89#endif
90
91#define ISA_TYPE_Q40 (1)
92#define ISA_TYPE_GG2 (2)
93#define ISA_TYPE_AG (3)
94
95#if defined(CONFIG_Q40) && !defined(MULTI_ISA)
96#define ISA_TYPE ISA_TYPE_Q40
97#define ISA_SEX 0
98#endif
99#if defined(CONFIG_AMIGA_PCMCIA) && !defined(MULTI_ISA)
100#define ISA_TYPE ISA_TYPE_AG
101#define ISA_SEX 1
102#endif
103#if defined(CONFIG_GG2) && !defined(MULTI_ISA)
104#define ISA_TYPE ISA_TYPE_GG2
105#define ISA_SEX 0
106#endif
107
108#ifdef MULTI_ISA
109extern int isa_type;
110extern int isa_sex;
111
112#define ISA_TYPE isa_type
113#define ISA_SEX isa_sex
114#endif
115
116/*
117 * define inline addr translation functions. Normally only one variant will
118 * be compiled in so the case statement will be optimised away
119 */
120
121static inline u8 __iomem *isa_itb(unsigned long addr)
122{
123 switch(ISA_TYPE)
124 {
125#ifdef CONFIG_Q40
126 case ISA_TYPE_Q40: return (u8 __iomem *)Q40_ISA_IO_B(addr);
127#endif
128#ifdef CONFIG_GG2
129 case ISA_TYPE_GG2: return (u8 __iomem *)GG2_ISA_IO_B(addr);
130#endif
131#ifdef CONFIG_AMIGA_PCMCIA
132 case ISA_TYPE_AG: return (u8 __iomem *)AG_ISA_IO_B(addr);
133#endif
134 default: return NULL; /* avoid warnings, just in case */
135 }
136}
137static inline u16 __iomem *isa_itw(unsigned long addr)
138{
139 switch(ISA_TYPE)
140 {
141#ifdef CONFIG_Q40
142 case ISA_TYPE_Q40: return (u16 __iomem *)Q40_ISA_IO_W(addr);
143#endif
144#ifdef CONFIG_GG2
145 case ISA_TYPE_GG2: return (u16 __iomem *)GG2_ISA_IO_W(addr);
146#endif
147#ifdef CONFIG_AMIGA_PCMCIA
148 case ISA_TYPE_AG: return (u16 __iomem *)AG_ISA_IO_W(addr);
149#endif
150 default: return NULL; /* avoid warnings, just in case */
151 }
152}
153static inline u32 __iomem *isa_itl(unsigned long addr)
154{
155 switch(ISA_TYPE)
156 {
157#ifdef CONFIG_AMIGA_PCMCIA
158 case ISA_TYPE_AG: return (u32 __iomem *)AG_ISA_IO_W(addr);
159#endif
160 default: return 0; /* avoid warnings, just in case */
161 }
162}
163static inline u8 __iomem *isa_mtb(unsigned long addr)
164{
165 switch(ISA_TYPE)
166 {
167#ifdef CONFIG_Q40
168 case ISA_TYPE_Q40: return (u8 __iomem *)Q40_ISA_MEM_B(addr);
169#endif
170#ifdef CONFIG_GG2
171 case ISA_TYPE_GG2: return (u8 __iomem *)GG2_ISA_MEM_B(addr);
172#endif
173#ifdef CONFIG_AMIGA_PCMCIA
174 case ISA_TYPE_AG: return (u8 __iomem *)addr;
175#endif
176 default: return NULL; /* avoid warnings, just in case */
177 }
178}
179static inline u16 __iomem *isa_mtw(unsigned long addr)
180{
181 switch(ISA_TYPE)
182 {
183#ifdef CONFIG_Q40
184 case ISA_TYPE_Q40: return (u16 __iomem *)Q40_ISA_MEM_W(addr);
185#endif
186#ifdef CONFIG_GG2
187 case ISA_TYPE_GG2: return (u16 __iomem *)GG2_ISA_MEM_W(addr);
188#endif
189#ifdef CONFIG_AMIGA_PCMCIA
190 case ISA_TYPE_AG: return (u16 __iomem *)addr;
191#endif
192 default: return NULL; /* avoid warnings, just in case */
193 }
194}
195
196
197#define isa_inb(port) in_8(isa_itb(port))
198#define isa_inw(port) (ISA_SEX ? in_be16(isa_itw(port)) : in_le16(isa_itw(port)))
199#define isa_inl(port) (ISA_SEX ? in_be32(isa_itl(port)) : in_le32(isa_itl(port)))
200#define isa_outb(val,port) out_8(isa_itb(port),(val))
201#define isa_outw(val,port) (ISA_SEX ? out_be16(isa_itw(port),(val)) : out_le16(isa_itw(port),(val)))
202#define isa_outl(val,port) (ISA_SEX ? out_be32(isa_itl(port),(val)) : out_le32(isa_itl(port),(val)))
203
204#define isa_readb(p) in_8(isa_mtb((unsigned long)(p)))
205#define isa_readw(p) \
206 (ISA_SEX ? in_be16(isa_mtw((unsigned long)(p))) \
207 : in_le16(isa_mtw((unsigned long)(p))))
208#define isa_writeb(val,p) out_8(isa_mtb((unsigned long)(p)),(val))
209#define isa_writew(val,p) \
210 (ISA_SEX ? out_be16(isa_mtw((unsigned long)(p)),(val)) \
211 : out_le16(isa_mtw((unsigned long)(p)),(val)))
212
213static inline void isa_delay(void)
214{
215 switch(ISA_TYPE)
216 {
217#ifdef CONFIG_Q40
218 case ISA_TYPE_Q40: isa_outb(0,0x80); break;
219#endif
220#ifdef CONFIG_GG2
221 case ISA_TYPE_GG2: break;
222#endif
223#ifdef CONFIG_AMIGA_PCMCIA
224 case ISA_TYPE_AG: break;
225#endif
226 default: break; /* avoid warnings */
227 }
228}
229
230#define isa_inb_p(p) ({u8 v=isa_inb(p);isa_delay();v;})
231#define isa_outb_p(v,p) ({isa_outb((v),(p));isa_delay();})
232#define isa_inw_p(p) ({u16 v=isa_inw(p);isa_delay();v;})
233#define isa_outw_p(v,p) ({isa_outw((v),(p));isa_delay();})
234#define isa_inl_p(p) ({u32 v=isa_inl(p);isa_delay();v;})
235#define isa_outl_p(v,p) ({isa_outl((v),(p));isa_delay();})
236
237#define isa_insb(port, buf, nr) raw_insb(isa_itb(port), (u8 *)(buf), (nr))
238#define isa_outsb(port, buf, nr) raw_outsb(isa_itb(port), (u8 *)(buf), (nr))
239
240#define isa_insw(port, buf, nr) \
241 (ISA_SEX ? raw_insw(isa_itw(port), (u16 *)(buf), (nr)) : \
242 raw_insw_swapw(isa_itw(port), (u16 *)(buf), (nr)))
243
244#define isa_outsw(port, buf, nr) \
245 (ISA_SEX ? raw_outsw(isa_itw(port), (u16 *)(buf), (nr)) : \
246 raw_outsw_swapw(isa_itw(port), (u16 *)(buf), (nr)))
247
248#define isa_insl(port, buf, nr) \
249 (ISA_SEX ? raw_insl(isa_itl(port), (u32 *)(buf), (nr)) : \
250 raw_insw_swapw(isa_itw(port), (u16 *)(buf), (nr)<<1))
251
252#define isa_outsl(port, buf, nr) \
253 (ISA_SEX ? raw_outsl(isa_itl(port), (u32 *)(buf), (nr)) : \
254 raw_outsw_swapw(isa_itw(port), (u16 *)(buf), (nr)<<1))
255
256
257#define inb isa_inb
258#define inb_p isa_inb_p
259#define outb isa_outb
260#define outb_p isa_outb_p
261#define inw isa_inw
262#define inw_p isa_inw_p
263#define outw isa_outw
264#define outw_p isa_outw_p
265#define inl isa_inl
266#define inl_p isa_inl_p
267#define outl isa_outl
268#define outl_p isa_outl_p
269#define insb isa_insb
270#define insw isa_insw
271#define insl isa_insl
272#define outsb isa_outsb
273#define outsw isa_outsw
274#define outsl isa_outsl
275#define readb isa_readb
276#define readw isa_readw
277#define writeb isa_writeb
278#define writew isa_writew
279
280#else /* CONFIG_ISA */
281
282/*
283 * We need to define dummy functions for GENERIC_IOMAP support.
284 */
285#define inb(port) 0xff
286#define inb_p(port) 0xff
287#define outb(val,port) ((void)0)
288#define outb_p(val,port) ((void)0)
289#define inw(port) 0xffff
290#define outw(val,port) ((void)0)
291#define inl(port) 0xffffffffUL
292#define outl(val,port) ((void)0)
293
294#define insb(port,buf,nr) ((void)0)
295#define outsb(port,buf,nr) ((void)0)
296#define insw(port,buf,nr) ((void)0)
297#define outsw(port,buf,nr) ((void)0)
298#define insl(port,buf,nr) ((void)0)
299#define outsl(port,buf,nr) ((void)0)
300
301/*
302 * These should be valid on any ioremap()ed region
303 */
304#define readb(addr) in_8(addr)
305#define writeb(val,addr) out_8((addr),(val))
306#define readw(addr) in_le16(addr)
307#define writew(val,addr) out_le16((addr),(val))
308
309#endif /* CONFIG_ISA */
310
311#define readl(addr) in_le32(addr)
312#define writel(val,addr) out_le32((addr),(val))
313
314#define mmiowb()
315
316static inline void __iomem *ioremap(unsigned long physaddr, unsigned long size)
317{
318 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
319}
320static inline void __iomem *ioremap_nocache(unsigned long physaddr, unsigned long size)
321{
322 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
323}
324static inline void __iomem *ioremap_writethrough(unsigned long physaddr,
325 unsigned long size)
326{
327 return __ioremap(physaddr, size, IOMAP_WRITETHROUGH);
328}
329static inline void __iomem *ioremap_fullcache(unsigned long physaddr,
330 unsigned long size)
331{
332 return __ioremap(physaddr, size, IOMAP_FULL_CACHING);
333}
334
335static inline void memset_io(volatile void __iomem *addr, unsigned char val, int count)
336{
337 __builtin_memset((void __force *) addr, val, count);
338}
339static inline void memcpy_fromio(void *dst, const volatile void __iomem *src, int count)
340{
341 __builtin_memcpy(dst, (void __force *) src, count);
342}
343static inline void memcpy_toio(volatile void __iomem *dst, const void *src, int count)
344{
345 __builtin_memcpy((void __force *) dst, src, count);
346}
347
348#ifndef CONFIG_SUN3
349#define IO_SPACE_LIMIT 0xffff
350#else
351#define IO_SPACE_LIMIT 0x0fffffff
352#endif
353
354#endif /* __KERNEL__ */
355
356#define __ARCH_HAS_NO_PAGE_ZERO_MAPPED 1
357
358/*
359 * Convert a physical pointer to a virtual kernel pointer for /dev/mem
360 * access
361 */
362#define xlate_dev_mem_ptr(p) __va(p)
363
364/*
365 * Convert a virtual cached pointer to an uncached pointer
366 */
367#define xlate_dev_kmem_ptr(p) p
368
369#endif /* _IO_H */
diff --git a/arch/m68knommu/include/asm/io.h b/arch/m68k/include/asm/io_no.h
index 6adef1ee2082..6adef1ee2082 100644
--- a/arch/m68knommu/include/asm/io.h
+++ b/arch/m68k/include/asm/io_no.h
diff --git a/arch/m68knommu/include/asm/ioctl.h b/arch/m68k/include/asm/ioctl.h
index b279fe06dfe5..b279fe06dfe5 100644
--- a/arch/m68knommu/include/asm/ioctl.h
+++ b/arch/m68k/include/asm/ioctl.h
diff --git a/arch/m68k/include/asm/ioctls.h b/arch/m68k/include/asm/ioctls.h
new file mode 100644
index 000000000000..b8d2f4be7fd7
--- /dev/null
+++ b/arch/m68k/include/asm/ioctls.h
@@ -0,0 +1,84 @@
1#ifndef __ARCH_M68K_IOCTLS_H__
2#define __ARCH_M68K_IOCTLS_H__
3
4#include <asm/ioctl.h>
5
6/* 0x54 is just a magic number to make these relatively unique ('T') */
7
8#define TCGETS 0x5401
9#define TCSETS 0x5402
10#define TCSETSW 0x5403
11#define TCSETSF 0x5404
12#define TCGETA 0x5405
13#define TCSETA 0x5406
14#define TCSETAW 0x5407
15#define TCSETAF 0x5408
16#define TCSBRK 0x5409
17#define TCXONC 0x540A
18#define TCFLSH 0x540B
19#define TIOCEXCL 0x540C
20#define TIOCNXCL 0x540D
21#define TIOCSCTTY 0x540E
22#define TIOCGPGRP 0x540F
23#define TIOCSPGRP 0x5410
24#define TIOCOUTQ 0x5411
25#define TIOCSTI 0x5412
26#define TIOCGWINSZ 0x5413
27#define TIOCSWINSZ 0x5414
28#define TIOCMGET 0x5415
29#define TIOCMBIS 0x5416
30#define TIOCMBIC 0x5417
31#define TIOCMSET 0x5418
32#define TIOCGSOFTCAR 0x5419
33#define TIOCSSOFTCAR 0x541A
34#define FIONREAD 0x541B
35#define TIOCINQ FIONREAD
36#define TIOCLINUX 0x541C
37#define TIOCCONS 0x541D
38#define TIOCGSERIAL 0x541E
39#define TIOCSSERIAL 0x541F
40#define TIOCPKT 0x5420
41#define FIONBIO 0x5421
42#define TIOCNOTTY 0x5422
43#define TIOCSETD 0x5423
44#define TIOCGETD 0x5424
45#define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
46#define TIOCSBRK 0x5427 /* BSD compatibility */
47#define TIOCCBRK 0x5428 /* BSD compatibility */
48#define TIOCGSID 0x5429 /* Return the session ID of FD */
49#define TCGETS2 _IOR('T',0x2A, struct termios2)
50#define TCSETS2 _IOW('T',0x2B, struct termios2)
51#define TCSETSW2 _IOW('T',0x2C, struct termios2)
52#define TCSETSF2 _IOW('T',0x2D, struct termios2)
53#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
54#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
55
56#define FIONCLEX 0x5450 /* these numbers need to be adjusted. */
57#define FIOCLEX 0x5451
58#define FIOASYNC 0x5452
59#define TIOCSERCONFIG 0x5453
60#define TIOCSERGWILD 0x5454
61#define TIOCSERSWILD 0x5455
62#define TIOCGLCKTRMIOS 0x5456
63#define TIOCSLCKTRMIOS 0x5457
64#define TIOCSERGSTRUCT 0x5458 /* For debugging only */
65#define TIOCSERGETLSR 0x5459 /* Get line status register */
66#define TIOCSERGETMULTI 0x545A /* Get multiport config */
67#define TIOCSERSETMULTI 0x545B /* Set multiport config */
68
69#define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */
70#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */
71#define FIOQSIZE 0x545E
72
73/* Used for packet mode */
74#define TIOCPKT_DATA 0
75#define TIOCPKT_FLUSHREAD 1
76#define TIOCPKT_FLUSHWRITE 2
77#define TIOCPKT_STOP 4
78#define TIOCPKT_START 8
79#define TIOCPKT_NOSTOP 16
80#define TIOCPKT_DOSTOP 32
81
82#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
83
84#endif /* __ARCH_M68K_IOCTLS_H__ */
diff --git a/arch/m68k/include/asm/ipcbuf.h b/arch/m68k/include/asm/ipcbuf.h
new file mode 100644
index 000000000000..a623ea3f0955
--- /dev/null
+++ b/arch/m68k/include/asm/ipcbuf.h
@@ -0,0 +1,29 @@
1#ifndef __m68k_IPCBUF_H__
2#define __m68k_IPCBUF_H__
3
4/*
5 * The user_ipc_perm structure for m68k architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 32-bit mode_t and seq
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct ipc64_perm
15{
16 __kernel_key_t key;
17 __kernel_uid32_t uid;
18 __kernel_gid32_t gid;
19 __kernel_uid32_t cuid;
20 __kernel_gid32_t cgid;
21 __kernel_mode_t mode;
22 unsigned short __pad1;
23 unsigned short seq;
24 unsigned short __pad2;
25 unsigned long __unused1;
26 unsigned long __unused2;
27};
28
29#endif /* __m68k_IPCBUF_H__ */
diff --git a/arch/m68k/include/asm/irq.h b/arch/m68k/include/asm/irq.h
new file mode 100644
index 000000000000..d031416595b2
--- /dev/null
+++ b/arch/m68k/include/asm/irq.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "irq_no.h"
3#else
4#include "irq_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/irq_mm.h b/arch/m68k/include/asm/irq_mm.h
new file mode 100644
index 000000000000..226bfc0f21b1
--- /dev/null
+++ b/arch/m68k/include/asm/irq_mm.h
@@ -0,0 +1,125 @@
1#ifndef _M68K_IRQ_H_
2#define _M68K_IRQ_H_
3
4#include <linux/linkage.h>
5#include <linux/hardirq.h>
6#include <linux/spinlock_types.h>
7
8/*
9 * This should be the same as the max(NUM_X_SOURCES) for all the
10 * different m68k hosts compiled into the kernel.
11 * Currently the Atari has 72 and the Amiga 24, but if both are
12 * supported in the kernel it is better to make room for 72.
13 */
14#if defined(CONFIG_VME) || defined(CONFIG_SUN3) || defined(CONFIG_SUN3X)
15#define NR_IRQS 200
16#elif defined(CONFIG_ATARI) || defined(CONFIG_MAC)
17#define NR_IRQS 72
18#elif defined(CONFIG_Q40)
19#define NR_IRQS 43
20#elif defined(CONFIG_AMIGA)
21#define NR_IRQS 32
22#elif defined(CONFIG_APOLLO)
23#define NR_IRQS 24
24#elif defined(CONFIG_HP300)
25#define NR_IRQS 8
26#else
27#define NR_IRQS 0
28#endif
29
30/*
31 * The hardirq mask has to be large enough to have
32 * space for potentially all IRQ sources in the system
33 * nesting on a single CPU:
34 */
35#if (1 << HARDIRQ_BITS) < NR_IRQS
36# error HARDIRQ_BITS is too low!
37#endif
38
39/*
40 * Interrupt source definitions
41 * General interrupt sources are the level 1-7.
42 * Adding an interrupt service routine for one of these sources
43 * results in the addition of that routine to a chain of routines.
44 * Each one is called in succession. Each individual interrupt
45 * service routine should determine if the device associated with
46 * that routine requires service.
47 */
48
49#define IRQ_SPURIOUS 0
50
51#define IRQ_AUTO_1 1 /* level 1 interrupt */
52#define IRQ_AUTO_2 2 /* level 2 interrupt */
53#define IRQ_AUTO_3 3 /* level 3 interrupt */
54#define IRQ_AUTO_4 4 /* level 4 interrupt */
55#define IRQ_AUTO_5 5 /* level 5 interrupt */
56#define IRQ_AUTO_6 6 /* level 6 interrupt */
57#define IRQ_AUTO_7 7 /* level 7 interrupt (non-maskable) */
58
59#define IRQ_USER 8
60
61extern unsigned int irq_canonicalize(unsigned int irq);
62
63struct pt_regs;
64
65/*
66 * various flags for request_irq() - the Amiga now uses the standard
67 * mechanism like all other architectures - IRQF_DISABLED and
68 * IRQF_SHARED are your friends.
69 */
70#ifndef MACH_AMIGA_ONLY
71#define IRQ_FLG_LOCK (0x0001) /* handler is not replaceable */
72#define IRQ_FLG_REPLACE (0x0002) /* replace existing handler */
73#define IRQ_FLG_FAST (0x0004)
74#define IRQ_FLG_SLOW (0x0008)
75#define IRQ_FLG_STD (0x8000) /* internally used */
76#endif
77
78/*
79 * This structure is used to chain together the ISRs for a particular
80 * interrupt source (if it supports chaining).
81 */
82typedef struct irq_node {
83 int (*handler)(int, void *);
84 void *dev_id;
85 struct irq_node *next;
86 unsigned long flags;
87 const char *devname;
88} irq_node_t;
89
90/*
91 * This structure has only 4 elements for speed reasons
92 */
93struct irq_handler {
94 int (*handler)(int, void *);
95 unsigned long flags;
96 void *dev_id;
97 const char *devname;
98};
99
100struct irq_controller {
101 const char *name;
102 spinlock_t lock;
103 int (*startup)(unsigned int irq);
104 void (*shutdown)(unsigned int irq);
105 void (*enable)(unsigned int irq);
106 void (*disable)(unsigned int irq);
107};
108
109extern int m68k_irq_startup(unsigned int);
110extern void m68k_irq_shutdown(unsigned int);
111
112/*
113 * This function returns a new irq_node_t
114 */
115extern irq_node_t *new_irq_node(void);
116
117extern void m68k_setup_auto_interrupt(void (*handler)(unsigned int, struct pt_regs *));
118extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt,
119 void (*handler)(unsigned int, struct pt_regs *));
120extern void m68k_setup_irq_controller(struct irq_controller *, unsigned int, unsigned int);
121
122asmlinkage void m68k_handle_int(unsigned int);
123asmlinkage void __m68k_handle_int(unsigned int, struct pt_regs *);
124
125#endif /* _M68K_IRQ_H_ */
diff --git a/arch/m68knommu/include/asm/irq.h b/arch/m68k/include/asm/irq_no.h
index 9373c31ac87d..9373c31ac87d 100644
--- a/arch/m68knommu/include/asm/irq.h
+++ b/arch/m68k/include/asm/irq_no.h
diff --git a/arch/m68knommu/include/asm/irq_regs.h b/arch/m68k/include/asm/irq_regs.h
index 3dd9c0b70270..3dd9c0b70270 100644
--- a/arch/m68knommu/include/asm/irq_regs.h
+++ b/arch/m68k/include/asm/irq_regs.h
diff --git a/arch/m68knommu/include/asm/kdebug.h b/arch/m68k/include/asm/kdebug.h
index 6ece1b037665..6ece1b037665 100644
--- a/arch/m68knommu/include/asm/kdebug.h
+++ b/arch/m68k/include/asm/kdebug.h
diff --git a/arch/m68k/include/asm/kmap_types.h b/arch/m68k/include/asm/kmap_types.h
new file mode 100644
index 000000000000..045d9fd122a2
--- /dev/null
+++ b/arch/m68k/include/asm/kmap_types.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "kmap_types_no.h"
3#else
4#include "kmap_types_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/kmap_types_mm.h b/arch/m68k/include/asm/kmap_types_mm.h
new file mode 100644
index 000000000000..c843c63d3801
--- /dev/null
+++ b/arch/m68k/include/asm/kmap_types_mm.h
@@ -0,0 +1,21 @@
1#ifndef __ASM_M68K_KMAP_TYPES_H
2#define __ASM_M68K_KMAP_TYPES_H
3
4enum km_type {
5 KM_BOUNCE_READ,
6 KM_SKB_SUNRPC_DATA,
7 KM_SKB_DATA_SOFTIRQ,
8 KM_USER0,
9 KM_USER1,
10 KM_BIO_SRC_IRQ,
11 KM_BIO_DST_IRQ,
12 KM_PTE0,
13 KM_PTE1,
14 KM_IRQ0,
15 KM_IRQ1,
16 KM_SOFTIRQ0,
17 KM_SOFTIRQ1,
18 KM_TYPE_NR
19};
20
21#endif /* __ASM_M68K_KMAP_TYPES_H */
diff --git a/arch/m68knommu/include/asm/kmap_types.h b/arch/m68k/include/asm/kmap_types_no.h
index bfb6707575d1..bfb6707575d1 100644
--- a/arch/m68knommu/include/asm/kmap_types.h
+++ b/arch/m68k/include/asm/kmap_types_no.h
diff --git a/arch/m68k/include/asm/linkage.h b/arch/m68k/include/asm/linkage.h
new file mode 100644
index 000000000000..5a822bb790f7
--- /dev/null
+++ b/arch/m68k/include/asm/linkage.h
@@ -0,0 +1,7 @@
1#ifndef __ASM_LINKAGE_H
2#define __ASM_LINKAGE_H
3
4#define __ALIGN .align 4
5#define __ALIGN_STR ".align 4"
6
7#endif
diff --git a/arch/m68k/include/asm/local.h b/arch/m68k/include/asm/local.h
new file mode 100644
index 000000000000..6c259263e1f0
--- /dev/null
+++ b/arch/m68k/include/asm/local.h
@@ -0,0 +1,6 @@
1#ifndef _ASM_M68K_LOCAL_H
2#define _ASM_M68K_LOCAL_H
3
4#include <asm-generic/local.h>
5
6#endif /* _ASM_M68K_LOCAL_H */
diff --git a/arch/m68knommu/include/asm/m5206sim.h b/arch/m68k/include/asm/m5206sim.h
index 7e3594dea88b..7e3594dea88b 100644
--- a/arch/m68knommu/include/asm/m5206sim.h
+++ b/arch/m68k/include/asm/m5206sim.h
diff --git a/arch/m68knommu/include/asm/m520xsim.h b/arch/m68k/include/asm/m520xsim.h
index 49d016e6391a..49d016e6391a 100644
--- a/arch/m68knommu/include/asm/m520xsim.h
+++ b/arch/m68k/include/asm/m520xsim.h
diff --git a/arch/m68knommu/include/asm/m523xsim.h b/arch/m68k/include/asm/m523xsim.h
index bf397313e93f..bf397313e93f 100644
--- a/arch/m68knommu/include/asm/m523xsim.h
+++ b/arch/m68k/include/asm/m523xsim.h
diff --git a/arch/m68knommu/include/asm/m5249sim.h b/arch/m68k/include/asm/m5249sim.h
index 366eb8602d2f..366eb8602d2f 100644
--- a/arch/m68knommu/include/asm/m5249sim.h
+++ b/arch/m68k/include/asm/m5249sim.h
diff --git a/arch/m68knommu/include/asm/m5272sim.h b/arch/m68k/include/asm/m5272sim.h
index 6217edc21139..6217edc21139 100644
--- a/arch/m68knommu/include/asm/m5272sim.h
+++ b/arch/m68k/include/asm/m5272sim.h
diff --git a/arch/m68knommu/include/asm/m527xsim.h b/arch/m68k/include/asm/m527xsim.h
index 1f63ab3fb3e6..1f63ab3fb3e6 100644
--- a/arch/m68knommu/include/asm/m527xsim.h
+++ b/arch/m68k/include/asm/m527xsim.h
diff --git a/arch/m68knommu/include/asm/m528xsim.h b/arch/m68k/include/asm/m528xsim.h
index 28bf783a5d6d..28bf783a5d6d 100644
--- a/arch/m68knommu/include/asm/m528xsim.h
+++ b/arch/m68k/include/asm/m528xsim.h
diff --git a/arch/m68knommu/include/asm/m5307sim.h b/arch/m68k/include/asm/m5307sim.h
index 5886728409c0..5886728409c0 100644
--- a/arch/m68knommu/include/asm/m5307sim.h
+++ b/arch/m68k/include/asm/m5307sim.h
diff --git a/arch/m68knommu/include/asm/m532xsim.h b/arch/m68k/include/asm/m532xsim.h
index 1835fd20a82c..1835fd20a82c 100644
--- a/arch/m68knommu/include/asm/m532xsim.h
+++ b/arch/m68k/include/asm/m532xsim.h
diff --git a/arch/m68knommu/include/asm/m5407sim.h b/arch/m68k/include/asm/m5407sim.h
index cc22c4a53005..cc22c4a53005 100644
--- a/arch/m68knommu/include/asm/m5407sim.h
+++ b/arch/m68k/include/asm/m5407sim.h
diff --git a/arch/m68knommu/include/asm/m68360.h b/arch/m68k/include/asm/m68360.h
index eb7d39ef2855..eb7d39ef2855 100644
--- a/arch/m68knommu/include/asm/m68360.h
+++ b/arch/m68k/include/asm/m68360.h
diff --git a/arch/m68knommu/include/asm/m68360_enet.h b/arch/m68k/include/asm/m68360_enet.h
index c36f4d059203..c36f4d059203 100644
--- a/arch/m68knommu/include/asm/m68360_enet.h
+++ b/arch/m68k/include/asm/m68360_enet.h
diff --git a/arch/m68knommu/include/asm/m68360_pram.h b/arch/m68k/include/asm/m68360_pram.h
index e6088bbce93d..e6088bbce93d 100644
--- a/arch/m68knommu/include/asm/m68360_pram.h
+++ b/arch/m68k/include/asm/m68360_pram.h
diff --git a/arch/m68knommu/include/asm/m68360_quicc.h b/arch/m68k/include/asm/m68360_quicc.h
index 6d40f4d18e10..6d40f4d18e10 100644
--- a/arch/m68knommu/include/asm/m68360_quicc.h
+++ b/arch/m68k/include/asm/m68360_quicc.h
diff --git a/arch/m68knommu/include/asm/m68360_regs.h b/arch/m68k/include/asm/m68360_regs.h
index d57217ca4f27..d57217ca4f27 100644
--- a/arch/m68knommu/include/asm/m68360_regs.h
+++ b/arch/m68k/include/asm/m68360_regs.h
diff --git a/arch/m68k/include/asm/mac_asc.h b/arch/m68k/include/asm/mac_asc.h
new file mode 100644
index 000000000000..fc2e5467b41e
--- /dev/null
+++ b/arch/m68k/include/asm/mac_asc.h
@@ -0,0 +1,27 @@
1/*
2 * Apple Sound Chip
3 */
4
5#ifndef __ASM_MAC_ASC_H
6#define __ASM_MAC_ASC_H
7
8/*
9 * ASC offsets and controls
10 */
11
12#define ASC_BUF_BASE 0x00 /* RAM buffer offset */
13#define ASC_BUF_SIZE 0x800
14
15#define ASC_CONTROL 0x800
16#define ASC_CONTROL_OFF 0x00
17#define ASC_FREQ(chan,byte) ((0x810)+((chan)<<3)+(byte))
18#define ASC_ENABLE 0x801
19#define ASC_ENABLE_SAMPLE 0x02
20#define ASC_MODE 0x802
21#define ASC_MODE_SAMPLE 0x02
22
23#define ASC_VOLUME 0x806
24#define ASC_CHAN 0x807 /* ??? */
25
26
27#endif
diff --git a/arch/m68k/include/asm/mac_baboon.h b/arch/m68k/include/asm/mac_baboon.h
new file mode 100644
index 000000000000..c2a042b8c349
--- /dev/null
+++ b/arch/m68k/include/asm/mac_baboon.h
@@ -0,0 +1,32 @@
1/*
2 * Definitions for the "Baboon" custom IC on the PowerBook 190.
3 */
4
5#define BABOON_BASE (0x50F1A000) /* same as IDE controller base */
6
7#ifndef __ASSEMBLY__
8
9struct baboon {
10 char pad1[208]; /* generic IDE registers, not used here */
11 short mb_control; /* Control register:
12 * bit 5 : slot 2 power control
13 * bit 6 : slot 1 power control
14 */
15 char pad2[2];
16 short mb_status; /* (0xD4) media bay status register:
17 *
18 * bit 0: ????
19 * bit 1: IDE interrupt active?
20 * bit 2: bay status, 0 = full, 1 = empty
21 * bit 3: ????
22 */
23 char pad3[2]; /* (0xD6) not used */
24 short mb_ifr; /* (0xD8) media bay interrupt flags register:
25 *
26 * bit 0: ????
27 * bit 1: IDE controller interrupt
28 * bit 2: media bay status change interrupt
29 */
30};
31
32#endif /* __ASSEMBLY **/
diff --git a/arch/m68k/include/asm/mac_iop.h b/arch/m68k/include/asm/mac_iop.h
new file mode 100644
index 000000000000..a2c7e6fcca38
--- /dev/null
+++ b/arch/m68k/include/asm/mac_iop.h
@@ -0,0 +1,162 @@
1/*
2 * I/O Processor (IOP) defines and structures, mostly snagged from A/UX
3 * header files.
4 *
5 * The original header from which this was taken is copyrighted. I've done some
6 * rewriting (in fact my changes make this a bit more readable, IMHO) but some
7 * more should be done.
8 */
9
10/*
11 * This is the base address of the IOPs. Use this as the address of
12 * a "struct iop" (see below) to see where the actual registers fall.
13 */
14
15#define SCC_IOP_BASE_IIFX (0x50F04000)
16#define ISM_IOP_BASE_IIFX (0x50F12000)
17
18#define SCC_IOP_BASE_QUADRA (0x50F0C000)
19#define ISM_IOP_BASE_QUADRA (0x50F1E000)
20
21/* IOP status/control register bits: */
22
23#define IOP_BYPASS 0x01 /* bypass-mode hardware access */
24#define IOP_AUTOINC 0x02 /* allow autoincrement of ramhi/lo */
25#define IOP_RUN 0x04 /* set to 0 to reset IOP chip */
26#define IOP_IRQ 0x08 /* generate IRQ to IOP if 1 */
27#define IOP_INT0 0x10 /* intr priority from IOP to host */
28#define IOP_INT1 0x20 /* intr priority from IOP to host */
29#define IOP_HWINT 0x40 /* IRQ from hardware; bypass mode only */
30#define IOP_DMAINACTIVE 0x80 /* no DMA request active; bypass mode only */
31
32#define NUM_IOPS 2
33#define NUM_IOP_CHAN 7
34#define NUM_IOP_MSGS NUM_IOP_CHAN*8
35#define IOP_MSG_LEN 32
36
37/* IOP reference numbers, used by the globally-visible iop_xxx functions */
38
39#define IOP_NUM_SCC 0
40#define IOP_NUM_ISM 1
41
42/* IOP channel states */
43
44#define IOP_MSG_IDLE 0 /* idle */
45#define IOP_MSG_NEW 1 /* new message sent */
46#define IOP_MSG_RCVD 2 /* message received; processing */
47#define IOP_MSG_COMPLETE 3 /* message processing complete */
48
49/* IOP message status codes */
50
51#define IOP_MSGSTATUS_UNUSED 0 /* Unusued message structure */
52#define IOP_MSGSTATUS_WAITING 1 /* waiting for channel */
53#define IOP_MSGSTATUS_SENT 2 /* message sent, awaiting reply */
54#define IOP_MSGSTATUS_COMPLETE 3 /* message complete and reply rcvd */
55#define IOP_MSGSTATUS_UNSOL 6 /* message is unsolicited */
56
57/* IOP memory addresses of the members of the mac_iop_kernel structure. */
58
59#define IOP_ADDR_MAX_SEND_CHAN 0x0200
60#define IOP_ADDR_SEND_STATE 0x0201
61#define IOP_ADDR_PATCH_CTRL 0x021F
62#define IOP_ADDR_SEND_MSG 0x0220
63#define IOP_ADDR_MAX_RECV_CHAN 0x0300
64#define IOP_ADDR_RECV_STATE 0x0301
65#define IOP_ADDR_ALIVE 0x031F
66#define IOP_ADDR_RECV_MSG 0x0320
67
68#ifndef __ASSEMBLY__
69
70/*
71 * IOP Control registers, staggered because in usual Apple style they were
72 * too lazy to decode the A0 bit. This structure is assumed to begin at
73 * one of the xxx_IOP_BASE addresses given above.
74 */
75
76struct mac_iop {
77 __u8 ram_addr_hi; /* shared RAM address hi byte */
78 __u8 pad0;
79 __u8 ram_addr_lo; /* shared RAM address lo byte */
80 __u8 pad1;
81 __u8 status_ctrl; /* status/control register */
82 __u8 pad2[3];
83 __u8 ram_data; /* RAM data byte at ramhi/lo */
84
85 __u8 pad3[23];
86
87 /* Bypass-mode hardware access registers */
88
89 union {
90 struct { /* SCC registers */
91 __u8 sccb_cmd; /* SCC B command reg */
92 __u8 pad4;
93 __u8 scca_cmd; /* SCC A command reg */
94 __u8 pad5;
95 __u8 sccb_data; /* SCC B data */
96 __u8 pad6;
97 __u8 scca_data; /* SCC A data */
98 } scc_regs;
99
100 struct { /* ISM registers */
101 __u8 wdata; /* write a data byte */
102 __u8 pad7;
103 __u8 wmark; /* write a mark byte */
104 __u8 pad8;
105 __u8 wcrc; /* write 2-byte crc to disk */
106 __u8 pad9;
107 __u8 wparams; /* write the param regs */
108 __u8 pad10;
109 __u8 wphase; /* write the phase states & dirs */
110 __u8 pad11;
111 __u8 wsetup; /* write the setup register */
112 __u8 pad12;
113 __u8 wzeroes; /* mode reg: 1's clr bits, 0's are x */
114 __u8 pad13;
115 __u8 wones; /* mode reg: 1's set bits, 0's are x */
116 __u8 pad14;
117 __u8 rdata; /* read a data byte */
118 __u8 pad15;
119 __u8 rmark; /* read a mark byte */
120 __u8 pad16;
121 __u8 rerror; /* read the error register */
122 __u8 pad17;
123 __u8 rparams; /* read the param regs */
124 __u8 pad18;
125 __u8 rphase; /* read the phase states & dirs */
126 __u8 pad19;
127 __u8 rsetup; /* read the setup register */
128 __u8 pad20;
129 __u8 rmode; /* read the mode register */
130 __u8 pad21;
131 __u8 rhandshake; /* read the handshake register */
132 } ism_regs;
133 } b;
134};
135
136/* This structure is used to track IOP messages in the Linux kernel */
137
138struct iop_msg {
139 struct iop_msg *next; /* next message in queue or NULL */
140 uint iop_num; /* IOP number */
141 uint channel; /* channel number */
142 void *caller_priv; /* caller private data */
143 int status; /* status of this message */
144 __u8 message[IOP_MSG_LEN]; /* the message being sent/received */
145 __u8 reply[IOP_MSG_LEN]; /* the reply to the message */
146 void (*handler)(struct iop_msg *);
147 /* function to call when reply recvd */
148};
149
150extern int iop_scc_present,iop_ism_present;
151
152extern int iop_listen(uint, uint,
153 void (*handler)(struct iop_msg *),
154 const char *);
155extern int iop_send_message(uint, uint, void *, uint, __u8 *,
156 void (*)(struct iop_msg *));
157extern void iop_complete_message(struct iop_msg *);
158extern void iop_upload_code(uint, __u8 *, uint, __u16);
159extern void iop_download_code(uint, __u8 *, uint, __u16);
160extern __u8 *iop_compare_code(uint, __u8 *, uint, __u16);
161
162#endif /* __ASSEMBLY__ */
diff --git a/arch/m68k/include/asm/mac_mouse.h b/arch/m68k/include/asm/mac_mouse.h
new file mode 100644
index 000000000000..39a5c292eaee
--- /dev/null
+++ b/arch/m68k/include/asm/mac_mouse.h
@@ -0,0 +1,23 @@
1#ifndef _ASM_MAC_MOUSE_H
2#define _ASM_MAC_MOUSE_H
3
4/*
5 * linux/include/asm-m68k/mac_mouse.h
6 * header file for Macintosh ADB mouse driver
7 * 27-10-97 Michael Schmitz
8 * copied from:
9 * header file for Atari Mouse driver
10 * by Robert de Vries (robert@and.nl) on 19Jul93
11 */
12
13struct mouse_status {
14 char buttons;
15 short dx;
16 short dy;
17 int ready;
18 int active;
19 wait_queue_head_t wait;
20 struct fasync_struct *fasyncptr;
21};
22
23#endif
diff --git a/arch/m68k/include/asm/mac_oss.h b/arch/m68k/include/asm/mac_oss.h
new file mode 100644
index 000000000000..7221f7251934
--- /dev/null
+++ b/arch/m68k/include/asm/mac_oss.h
@@ -0,0 +1,94 @@
1/*
2 * OSS
3 *
4 * This is used in place of VIA2 on the IIfx.
5 */
6
7#define OSS_BASE (0x50f1a000)
8
9/*
10 * Interrupt level offsets for mac_oss->irq_level
11 */
12
13#define OSS_NUBUS0 0
14#define OSS_NUBUS1 1
15#define OSS_NUBUS2 2
16#define OSS_NUBUS3 3
17#define OSS_NUBUS4 4
18#define OSS_NUBUS5 5
19#define OSS_IOPISM 6
20#define OSS_IOPSCC 7
21#define OSS_SOUND 8
22#define OSS_SCSI 9
23#define OSS_60HZ 10
24#define OSS_VIA1 11
25#define OSS_UNUSED1 12
26#define OSS_UNUSED2 13
27#define OSS_PARITY 14
28#define OSS_UNUSED3 15
29
30#define OSS_NUM_SOURCES 16
31
32/*
33 * Pending interrupt bits in mac_oss->irq_pending
34 */
35
36#define OSS_IP_NUBUS0 0x0001
37#define OSS_IP_NUBUS1 0x0002
38#define OSS_IP_NUBUS2 0x0004
39#define OSS_IP_NUBUS3 0x0008
40#define OSS_IP_NUBUS4 0x0010
41#define OSS_IP_NUBUS5 0x0020
42#define OSS_IP_IOPISM 0x0040
43#define OSS_IP_IOPSCC 0x0080
44#define OSS_IP_SOUND 0x0100
45#define OSS_IP_SCSI 0x0200
46#define OSS_IP_60HZ 0x0400
47#define OSS_IP_VIA1 0x0800
48#define OSS_IP_UNUSED1 0x1000
49#define OSS_IP_UNUSED2 0x2000
50#define OSS_IP_PARITY 0x4000
51#define OSS_IP_UNUSED3 0x8000
52
53#define OSS_IP_NUBUS (OSS_IP_NUBUS0|OSS_IP_NUBUS1|OSS_IP_NUBUS2|OSS_IP_NUBUS3|OSS_IP_NUBUS4|OSS_IP_NUBUS5)
54
55/*
56 * Rom Control Register
57 */
58
59#define OSS_POWEROFF 0x80
60
61/*
62 * OSS Interrupt levels for various sub-systems
63 *
64 * This mapping is layed out with two things in mind: first, we try to keep
65 * things on their own levels to avoid having to do double-dispatches. Second,
66 * the levels match as closely as possible the alternate IRQ mapping mode (aka
67 * "A/UX mode") available on some VIA machines.
68 */
69
70#define OSS_IRQLEV_DISABLED 0
71#define OSS_IRQLEV_IOPISM 1 /* ADB? */
72#define OSS_IRQLEV_SCSI IRQ_AUTO_2
73#define OSS_IRQLEV_NUBUS IRQ_AUTO_3 /* keep this on its own level */
74#define OSS_IRQLEV_IOPSCC IRQ_AUTO_4 /* matches VIA alternate mapping */
75#define OSS_IRQLEV_SOUND IRQ_AUTO_5 /* matches VIA alternate mapping */
76#define OSS_IRQLEV_60HZ 6 /* matches VIA alternate mapping */
77#define OSS_IRQLEV_VIA1 IRQ_AUTO_6 /* matches VIA alternate mapping */
78#define OSS_IRQLEV_PARITY 7 /* matches VIA alternate mapping */
79
80#ifndef __ASSEMBLY__
81
82struct mac_oss {
83 __u8 irq_level[0x10]; /* [0x000-0x00f] Interrupt levels */
84 __u8 padding0[0x1F2]; /* [0x010-0x201] IO space filler */
85 __u16 irq_pending; /* [0x202-0x203] pending interrupts bits */
86 __u8 rom_ctrl; /* [0x204-0x204] ROM cntl reg (for poweroff) */
87 __u8 padding1[0x2]; /* [0x205-0x206] currently unused by A/UX */
88 __u8 ack_60hz; /* [0x207-0x207] 60 Hz ack. */
89};
90
91extern volatile struct mac_oss *oss;
92extern int oss_present;
93
94#endif /* __ASSEMBLY__ */
diff --git a/arch/m68k/include/asm/mac_psc.h b/arch/m68k/include/asm/mac_psc.h
new file mode 100644
index 000000000000..7808bb0b2323
--- /dev/null
+++ b/arch/m68k/include/asm/mac_psc.h
@@ -0,0 +1,248 @@
1/*
2 * Apple Peripheral System Controller (PSC)
3 *
4 * The PSC is used on the AV Macs to control IO functions not handled
5 * by the VIAs (Ethernet, DSP, SCC, Sound). This includes nine DMA
6 * channels.
7 *
8 * The first seven DMA channels appear to be "one-shot" and are actually
9 * sets of two channels; one member is active while the other is being
10 * configured, and then you flip the active member and start all over again.
11 * The one-shot channels are grouped together and are:
12 *
13 * 1. SCSI
14 * 2. Ethernet Read
15 * 3. Ethernet Write
16 * 4. Floppy Disk Controller
17 * 5. SCC Channel A Receive
18 * 6. SCC Channel B Receive
19 * 7. SCC Channel A Transmit
20 *
21 * The remaining two channels are handled somewhat differently. They appear
22 * to be closely tied and share one set of registers. They also seem to run
23 * continuously, although how you keep the buffer filled in this scenario is
24 * not understood as there seems to be only one input and one output buffer
25 * pointer.
26 *
27 * Much of this was extrapolated from what was known about the Ethernet
28 * registers and subsequently confirmed using MacsBug (ie by pinging the
29 * machine with easy-to-find patterns and looking for them in the DMA
30 * buffers, or by sending a file over the serial ports and finding the
31 * file in the buffers.)
32 *
33 * 1999-05-25 (jmt)
34 */
35
36#define PSC_BASE (0x50F31000)
37
38/*
39 * The IER/IFR registers work like the VIA, except that it has 4
40 * of them each on different interrupt levels, and each register
41 * set only seems to handle four interrupts instead of seven.
42 *
43 * To access a particular set of registers, add 0xn0 to the base
44 * where n = 3,4,5 or 6.
45 */
46
47#define pIFRbase 0x100
48#define pIERbase 0x104
49
50/*
51 * One-shot DMA control registers
52 */
53
54#define PSC_MYSTERY 0x804
55
56#define PSC_CTL_BASE 0xC00
57
58#define PSC_SCSI_CTL 0xC00
59#define PSC_ENETRD_CTL 0xC10
60#define PSC_ENETWR_CTL 0xC20
61#define PSC_FDC_CTL 0xC30
62#define PSC_SCCA_CTL 0xC40
63#define PSC_SCCB_CTL 0xC50
64#define PSC_SCCATX_CTL 0xC60
65
66/*
67 * DMA channels. Add +0x10 for the second channel in the set.
68 * You're supposed to use one channel while the other runs and
69 * then flip channels and do the whole thing again.
70 */
71
72#define PSC_ADDR_BASE 0x1000
73#define PSC_LEN_BASE 0x1004
74#define PSC_CMD_BASE 0x1008
75
76#define PSC_SET0 0x00
77#define PSC_SET1 0x10
78
79#define PSC_SCSI_ADDR 0x1000 /* confirmed */
80#define PSC_SCSI_LEN 0x1004 /* confirmed */
81#define PSC_SCSI_CMD 0x1008 /* confirmed */
82#define PSC_ENETRD_ADDR 0x1020 /* confirmed */
83#define PSC_ENETRD_LEN 0x1024 /* confirmed */
84#define PSC_ENETRD_CMD 0x1028 /* confirmed */
85#define PSC_ENETWR_ADDR 0x1040 /* confirmed */
86#define PSC_ENETWR_LEN 0x1044 /* confirmed */
87#define PSC_ENETWR_CMD 0x1048 /* confirmed */
88#define PSC_FDC_ADDR 0x1060 /* strongly suspected */
89#define PSC_FDC_LEN 0x1064 /* strongly suspected */
90#define PSC_FDC_CMD 0x1068 /* strongly suspected */
91#define PSC_SCCA_ADDR 0x1080 /* confirmed */
92#define PSC_SCCA_LEN 0x1084 /* confirmed */
93#define PSC_SCCA_CMD 0x1088 /* confirmed */
94#define PSC_SCCB_ADDR 0x10A0 /* confirmed */
95#define PSC_SCCB_LEN 0x10A4 /* confirmed */
96#define PSC_SCCB_CMD 0x10A8 /* confirmed */
97#define PSC_SCCATX_ADDR 0x10C0 /* confirmed */
98#define PSC_SCCATX_LEN 0x10C4 /* confirmed */
99#define PSC_SCCATX_CMD 0x10C8 /* confirmed */
100
101/*
102 * Free-running DMA registers. The only part known for sure are the bits in
103 * the control register, the buffer addresses and the buffer length. Everything
104 * else is anybody's guess.
105 *
106 * These registers seem to be mirrored every thirty-two bytes up until offset
107 * 0x300. It's safe to assume then that a new set of registers starts there.
108 */
109
110#define PSC_SND_CTL 0x200 /*
111 * [ 16-bit ]
112 * Sound (Singer?) control register.
113 *
114 * bit 0 : ????
115 * bit 1 : ????
116 * bit 2 : Set to one to enable sound
117 * output. Possibly a mute flag.
118 * bit 3 : ????
119 * bit 4 : ????
120 * bit 5 : ????
121 * bit 6 : Set to one to enable pass-thru
122 * audio. In this mode the audio data
123 * seems to appear in both the input
124 * buffer and the output buffer.
125 * bit 7 : Set to one to activate the
126 * sound input DMA or zero to
127 * disable it.
128 * bit 8 : Set to one to activate the
129 * sound output DMA or zero to
130 * disable it.
131 * bit 9 : \
132 * bit 11 : |
133 * These two bits control the sample
134 * rate. Usually set to binary 10 and
135 * MacOS 8.0 says I'm at 48 KHz. Using
136 * a binary value of 01 makes things
137 * sound about 1/2 speed (24 KHz?) and
138 * binary 00 is slower still (22 KHz?)
139 *
140 * Setting this to 0x0000 is a good way to
141 * kill all DMA at boot time so that the
142 * PSC won't overwrite the kernel image
143 * with sound data.
144 */
145
146/*
147 * 0x0202 - 0x0203 is unused. Writing there
148 * seems to clobber the control register.
149 */
150
151#define PSC_SND_SOURCE 0x204 /*
152 * [ 32-bit ]
153 * Controls input source and volume:
154 *
155 * bits 12-15 : input source volume, 0 - F
156 * bits 16-19 : unknown, always 0x5
157 * bits 20-23 : input source selection:
158 * 0x3 = CD Audio
159 * 0x4 = External Audio
160 *
161 * The volume is definitely not the general
162 * output volume as it doesn't affect the
163 * alert sound volume.
164 */
165#define PSC_SND_STATUS1 0x208 /*
166 * [ 32-bit ]
167 * Appears to be a read-only status register.
168 * The usual value is 0x00400002.
169 */
170#define PSC_SND_HUH3 0x20C /*
171 * [ 16-bit ]
172 * Unknown 16-bit value, always 0x0000.
173 */
174#define PSC_SND_BITS2GO 0x20E /*
175 * [ 16-bit ]
176 * Counts down to zero from some constant
177 * value. The value appears to be the
178 * number of _bits_ remaining before the
179 * buffer is full, which would make sense
180 * since Apple's docs say the sound DMA
181 * channels are 1 bit wide.
182 */
183#define PSC_SND_INADDR 0x210 /*
184 * [ 32-bit ]
185 * Address of the sound input DMA buffer
186 */
187#define PSC_SND_OUTADDR 0x214 /*
188 * [ 32-bit ]
189 * Address of the sound output DMA buffer
190 */
191#define PSC_SND_LEN 0x218 /*
192 * [ 16-bit ]
193 * Length of both buffers in eight-byte units.
194 */
195#define PSC_SND_HUH4 0x21A /*
196 * [ 16-bit ]
197 * Unknown, always 0x0000.
198 */
199#define PSC_SND_STATUS2 0x21C /*
200 * [ 16-bit ]
201 * Appears to e a read-only status register.
202 * The usual value is 0x0200.
203 */
204#define PSC_SND_HUH5 0x21E /*
205 * [ 16-bit ]
206 * Unknown, always 0x0000.
207 */
208
209#ifndef __ASSEMBLY__
210
211extern volatile __u8 *psc;
212extern int psc_present;
213
214/*
215 * Access functions
216 */
217
218static inline void psc_write_byte(int offset, __u8 data)
219{
220 *((volatile __u8 *)(psc + offset)) = data;
221}
222
223static inline void psc_write_word(int offset, __u16 data)
224{
225 *((volatile __u16 *)(psc + offset)) = data;
226}
227
228static inline void psc_write_long(int offset, __u32 data)
229{
230 *((volatile __u32 *)(psc + offset)) = data;
231}
232
233static inline u8 psc_read_byte(int offset)
234{
235 return *((volatile __u8 *)(psc + offset));
236}
237
238static inline u16 psc_read_word(int offset)
239{
240 return *((volatile __u16 *)(psc + offset));
241}
242
243static inline u32 psc_read_long(int offset)
244{
245 return *((volatile __u32 *)(psc + offset));
246}
247
248#endif /* __ASSEMBLY__ */
diff --git a/arch/m68k/include/asm/mac_via.h b/arch/m68k/include/asm/mac_via.h
new file mode 100644
index 000000000000..39afb438b656
--- /dev/null
+++ b/arch/m68k/include/asm/mac_via.h
@@ -0,0 +1,267 @@
1/*
2 * 6522 Versatile Interface Adapter (VIA)
3 *
4 * There are two of these on the Mac II. Some IRQ's are vectored
5 * via them as are assorted bits and bobs - eg rtc, adb. The picture
6 * is a bit incomplete as the Mac documentation doesn't cover this well
7 */
8
9#ifndef _ASM_MAC_VIA_H_
10#define _ASM_MAC_VIA_H_
11
12/*
13 * Base addresses for the VIAs. There are two in every machine,
14 * although on some machines the second is an RBV or an OSS.
15 * The OSS is different enough that it's handled separately.
16 *
17 * Do not use these values directly; use the via1 and via2 variables
18 * instead (and don't forget to check rbv_present when using via2!)
19 */
20
21#define VIA1_BASE (0x50F00000)
22#define VIA2_BASE (0x50F02000)
23#define RBV_BASE (0x50F26000)
24
25/*
26 * Not all of these are true post MacII I think.
27 * CSA: probably the ones CHRP marks as 'unused' change purposes
28 * when the IWM becomes the SWIM.
29 * http://www.rs6000.ibm.com/resource/technology/chrpio/via5.mak.html
30 * ftp://ftp.austin.ibm.com/pub/technology/spec/chrp/inwork/CHRP_IORef_1.0.pdf
31 *
32 * also, http://developer.apple.com/technotes/hw/hw_09.html claims the
33 * following changes for IIfx:
34 * VIA1A_vSccWrReq not available and that VIA1A_vSync has moved to an IOP.
35 * Also, "All of the functionality of VIA2 has been moved to other chips".
36 */
37
38#define VIA1A_vSccWrReq 0x80 /* SCC write. (input)
39 * [CHRP] SCC WREQ: Reflects the state of the
40 * Wait/Request pins from the SCC.
41 * [Macintosh Family Hardware]
42 * as CHRP on SE/30,II,IIx,IIcx,IIci.
43 * on IIfx, "0 means an active request"
44 */
45#define VIA1A_vRev8 0x40 /* Revision 8 board ???
46 * [CHRP] En WaitReqB: Lets the WaitReq_L
47 * signal from port B of the SCC appear on
48 * the PA7 input pin. Output.
49 * [Macintosh Family] On the SE/30, this
50 * is the bit to flip screen buffers.
51 * 0=alternate, 1=main.
52 * on II,IIx,IIcx,IIci,IIfx this is a bit
53 * for Rev ID. 0=II,IIx, 1=IIcx,IIci,IIfx
54 */
55#define VIA1A_vHeadSel 0x20 /* Head select for IWM.
56 * [CHRP] unused.
57 * [Macintosh Family] "Floppy disk
58 * state-control line SEL" on all but IIfx
59 */
60#define VIA1A_vOverlay 0x10 /* [Macintosh Family] On SE/30,II,IIx,IIcx
61 * this bit enables the "Overlay" address
62 * map in the address decoders as it is on
63 * reset for mapping the ROM over the reset
64 * vector. 1=use overlay map.
65 * On the IIci,IIfx it is another bit of the
66 * CPU ID: 0=normal IIci, 1=IIci with parity
67 * feature or IIfx.
68 * [CHRP] En WaitReqA: Lets the WaitReq_L
69 * signal from port A of the SCC appear
70 * on the PA7 input pin (CHRP). Output.
71 * [MkLinux] "Drive Select"
72 * (with 0x20 being 'disk head select')
73 */
74#define VIA1A_vSync 0x08 /* [CHRP] Sync Modem: modem clock select:
75 * 1: select the external serial clock to
76 * drive the SCC's /RTxCA pin.
77 * 0: Select the 3.6864MHz clock to drive
78 * the SCC cell.
79 * [Macintosh Family] Correct on all but IIfx
80 */
81
82/* Macintosh Family Hardware sez: bits 0-2 of VIA1A are volume control
83 * on Macs which had the PWM sound hardware. Reserved on newer models.
84 * On IIci,IIfx, bits 1-2 are the rest of the CPU ID:
85 * bit 2: 1=IIci, 0=IIfx
86 * bit 1: 1 on both IIci and IIfx.
87 * MkLinux sez bit 0 is 'burnin flag' in this case.
88 * CHRP sez: VIA1A bits 0-2 and 5 are 'unused': if programmed as
89 * inputs, these bits will read 0.
90 */
91#define VIA1A_vVolume 0x07 /* Audio volume mask for PWM */
92#define VIA1A_CPUID0 0x02 /* CPU id bit 0 on RBV, others */
93#define VIA1A_CPUID1 0x04 /* CPU id bit 0 on RBV, others */
94#define VIA1A_CPUID2 0x10 /* CPU id bit 0 on RBV, others */
95#define VIA1A_CPUID3 0x40 /* CPU id bit 0 on RBV, others */
96
97/* Info on VIA1B is from Macintosh Family Hardware & MkLinux.
98 * CHRP offers no info. */
99#define VIA1B_vSound 0x80 /* Sound enable (for compatibility with
100 * PWM hardware) 0=enabled.
101 * Also, on IIci w/parity, shows parity error
102 * 0=error, 1=OK. */
103#define VIA1B_vMystery 0x40 /* On IIci, parity enable. 0=enabled,1=disabled
104 * On SE/30, vertical sync interrupt enable.
105 * 0=enabled. This vSync interrupt shows up
106 * as a slot $E interrupt. */
107#define VIA1B_vADBS2 0x20 /* ADB state input bit 1 (unused on IIfx) */
108#define VIA1B_vADBS1 0x10 /* ADB state input bit 0 (unused on IIfx) */
109#define VIA1B_vADBInt 0x08 /* ADB interrupt 0=interrupt (unused on IIfx)*/
110#define VIA1B_vRTCEnb 0x04 /* Enable Real time clock. 0=enabled. */
111#define VIA1B_vRTCClk 0x02 /* Real time clock serial-clock line. */
112#define VIA1B_vRTCData 0x01 /* Real time clock serial-data line. */
113
114/* MkLinux defines the following "VIA1 Register B contents where they
115 * differ from standard VIA1". From the naming scheme, we assume they
116 * correspond to a VIA work-alike named 'EVR'. */
117#define EVRB_XCVR 0x08 /* XCVR_SESSION* */
118#define EVRB_FULL 0x10 /* VIA_FULL */
119#define EVRB_SYSES 0x20 /* SYS_SESSION */
120#define EVRB_AUXIE 0x00 /* Enable A/UX Interrupt Scheme */
121#define EVRB_AUXID 0x40 /* Disable A/UX Interrupt Scheme */
122#define EVRB_SFTWRIE 0x00 /* Software Interrupt ReQuest */
123#define EVRB_SFTWRID 0x80 /* Software Interrupt ReQuest */
124
125/*
126 * VIA2 A register is the interrupt lines raised off the nubus
127 * slots.
128 * The below info is from 'Macintosh Family Hardware.'
129 * MkLinux calls the 'IIci internal video IRQ' below the 'RBV slot 0 irq.'
130 * It also notes that the slot $9 IRQ is the 'Ethernet IRQ' and
131 * defines the 'Video IRQ' as 0x40 for the 'EVR' VIA work-alike.
132 * Perhaps OSS uses vRAM1 and vRAM2 for ADB.
133 */
134
135#define VIA2A_vRAM1 0x80 /* RAM size bit 1 (IIci: reserved) */
136#define VIA2A_vRAM0 0x40 /* RAM size bit 0 (IIci: internal video IRQ) */
137#define VIA2A_vIRQE 0x20 /* IRQ from slot $E */
138#define VIA2A_vIRQD 0x10 /* IRQ from slot $D */
139#define VIA2A_vIRQC 0x08 /* IRQ from slot $C */
140#define VIA2A_vIRQB 0x04 /* IRQ from slot $B */
141#define VIA2A_vIRQA 0x02 /* IRQ from slot $A */
142#define VIA2A_vIRQ9 0x01 /* IRQ from slot $9 */
143
144/* RAM size bits decoded as follows:
145 * bit1 bit0 size of ICs in bank A
146 * 0 0 256 kbit
147 * 0 1 1 Mbit
148 * 1 0 4 Mbit
149 * 1 1 16 Mbit
150 */
151
152/*
153 * Register B has the fun stuff in it
154 */
155
156#define VIA2B_vVBL 0x80 /* VBL output to VIA1 (60.15Hz) driven by
157 * timer T1.
158 * on IIci, parity test: 0=test mode.
159 * [MkLinux] RBV_PARODD: 1=odd,0=even. */
160#define VIA2B_vSndJck 0x40 /* External sound jack status.
161 * 0=plug is inserted. On SE/30, always 0 */
162#define VIA2B_vTfr0 0x20 /* Transfer mode bit 0 ack from NuBus */
163#define VIA2B_vTfr1 0x10 /* Transfer mode bit 1 ack from NuBus */
164#define VIA2B_vMode32 0x08 /* 24/32bit switch - doubles as cache flush
165 * on II, AMU/PMMU control.
166 * if AMU, 0=24bit to 32bit translation
167 * if PMMU, 1=PMMU is accessing page table.
168 * on SE/30 tied low.
169 * on IIx,IIcx,IIfx, unused.
170 * on IIci/RBV, cache control. 0=flush cache.
171 */
172#define VIA2B_vPower 0x04 /* Power off, 0=shut off power.
173 * on SE/30 this signal sent to PDS card. */
174#define VIA2B_vBusLk 0x02 /* Lock NuBus transactions, 0=locked.
175 * on SE/30 sent to PDS card. */
176#define VIA2B_vCDis 0x01 /* Cache control. On IIci, 1=disable cache card
177 * on others, 0=disable processor's instruction
178 * and data caches. */
179
180/* Apple sez: http://developer.apple.com/technotes/ov/ov_04.html
181 * Another example of a valid function that has no ROM support is the use
182 * of the alternate video page for page-flipping animation. Since there
183 * is no ROM call to flip pages, it is necessary to go play with the
184 * right bit in the VIA chip (6522 Versatile Interface Adapter).
185 * [CSA: don't know which one this is, but it's one of 'em!]
186 */
187
188/*
189 * 6522 registers - see databook.
190 * CSA: Assignments for VIA1 confirmed from CHRP spec.
191 */
192
193/* partial address decode. 0xYYXX : XX part for RBV, YY part for VIA */
194/* Note: 15 VIA regs, 8 RBV regs */
195
196#define vBufB 0x0000 /* [VIA/RBV] Register B */
197#define vBufAH 0x0200 /* [VIA only] Buffer A, with handshake. DON'T USE! */
198#define vDirB 0x0400 /* [VIA only] Data Direction Register B. */
199#define vDirA 0x0600 /* [VIA only] Data Direction Register A. */
200#define vT1CL 0x0800 /* [VIA only] Timer one counter low. */
201#define vT1CH 0x0a00 /* [VIA only] Timer one counter high. */
202#define vT1LL 0x0c00 /* [VIA only] Timer one latches low. */
203#define vT1LH 0x0e00 /* [VIA only] Timer one latches high. */
204#define vT2CL 0x1000 /* [VIA only] Timer two counter low. */
205#define vT2CH 0x1200 /* [VIA only] Timer two counter high. */
206#define vSR 0x1400 /* [VIA only] Shift register. */
207#define vACR 0x1600 /* [VIA only] Auxilary control register. */
208#define vPCR 0x1800 /* [VIA only] Peripheral control register. */
209 /* CHRP sez never ever to *write* this.
210 * Mac family says never to *change* this.
211 * In fact we need to initialize it once at start. */
212#define vIFR 0x1a00 /* [VIA/RBV] Interrupt flag register. */
213#define vIER 0x1c00 /* [VIA/RBV] Interrupt enable register. */
214#define vBufA 0x1e00 /* [VIA/RBV] register A (no handshake) */
215
216/* The RBV only decodes the bottom eight address lines; the VIA doesn't
217 * decode the bottom eight -- so vBufB | rBufB will always get you BufB */
218/* CSA: in fact, only bits 0,1, and 4 seem to be decoded.
219 * BUT note the values for rIER and rIFR, where the top 8 bits *do* seem
220 * to matter. In fact *all* of the top 8 bits seem to matter;
221 * setting rIER=0x1813 and rIFR=0x1803 doesn't work, either.
222 * Perhaps some sort of 'compatibility mode' is built-in? [21-May-1999]
223 */
224
225#define rBufB 0x0000 /* [VIA/RBV] Register B */
226#define rExp 0x0001 /* [RBV only] RBV future expansion (always 0) */
227#define rSIFR 0x0002 /* [RBV only] RBV slot interrupts register. */
228#define rIFR 0x1a03 /* [VIA/RBV] RBV interrupt flag register. */
229#define rMonP 0x0010 /* [RBV only] RBV video monitor type. */
230#define rChpT 0x0011 /* [RBV only] RBV test mode register (reads as 0). */
231#define rSIER 0x0012 /* [RBV only] RBV slot interrupt enables. */
232#define rIER 0x1c13 /* [VIA/RBV] RBV interrupt flag enable register. */
233#define rBufA rSIFR /* the 'slot interrupts register' is BufA on a VIA */
234
235/*
236 * Video monitor parameters, for rMonP:
237 */
238#define RBV_DEPTH 0x07 /* bits per pixel: 000=1,001=2,010=4,011=8 */
239#define RBV_MONID 0x38 /* monitor type, as below. */
240#define RBV_VIDOFF 0x40 /* 1 turns off onboard video */
241/* Supported monitor types: */
242#define MON_15BW (1<<3) /* 15" BW portrait. */
243#define MON_IIGS (2<<3) /* 12" color (modified IIGS monitor). */
244#define MON_15RGB (5<<3) /* 15" RGB portrait. */
245#define MON_12OR13 (6<<3) /* 12" BW or 13" RGB. */
246#define MON_NONE (7<<3) /* No monitor attached. */
247
248/* To clarify IER manipulations */
249#define IER_SET_BIT(b) (0x80 | (1<<(b)) )
250#define IER_CLR_BIT(b) (0x7F & (1<<(b)) )
251
252#ifndef __ASSEMBLY__
253
254extern volatile __u8 *via1,*via2;
255extern int rbv_present,via_alt_mapping;
256
257static inline int rbv_set_video_bpp(int bpp)
258{
259 char val = (bpp==1)?0:(bpp==2)?1:(bpp==4)?2:(bpp==8)?3:-1;
260 if (!rbv_present || val<0) return -1;
261 via2[rMonP] = (via2[rMonP] & ~RBV_DEPTH) | val;
262 return 0;
263}
264
265#endif /* __ASSEMBLY__ */
266
267#endif /* _ASM_MAC_VIA_H_ */
diff --git a/arch/m68k/include/asm/machdep.h b/arch/m68k/include/asm/machdep.h
new file mode 100644
index 000000000000..fc24b6fc5508
--- /dev/null
+++ b/arch/m68k/include/asm/machdep.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "machdep_no.h"
3#else
4#include "machdep_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/machdep_mm.h b/arch/m68k/include/asm/machdep_mm.h
new file mode 100644
index 000000000000..5637dcef314e
--- /dev/null
+++ b/arch/m68k/include/asm/machdep_mm.h
@@ -0,0 +1,35 @@
1#ifndef _M68K_MACHDEP_H
2#define _M68K_MACHDEP_H
3
4#include <linux/seq_file.h>
5#include <linux/interrupt.h>
6
7struct pt_regs;
8struct mktime;
9struct rtc_time;
10struct rtc_pll_info;
11struct buffer_head;
12
13extern void (*mach_sched_init) (irq_handler_t handler);
14/* machine dependent irq functions */
15extern void (*mach_init_IRQ) (void);
16extern void (*mach_get_model) (char *model);
17extern void (*mach_get_hardware_list) (struct seq_file *m);
18/* machine dependent timer functions */
19extern unsigned long (*mach_gettimeoffset)(void);
20extern int (*mach_hwclk)(int, struct rtc_time*);
21extern unsigned int (*mach_get_ss)(void);
22extern int (*mach_get_rtc_pll)(struct rtc_pll_info *);
23extern int (*mach_set_rtc_pll)(struct rtc_pll_info *);
24extern int (*mach_set_clock_mmss)(unsigned long);
25extern void (*mach_reset)( void );
26extern void (*mach_halt)( void );
27extern void (*mach_power_off)( void );
28extern unsigned long (*mach_hd_init) (unsigned long, unsigned long);
29extern void (*mach_hd_setup)(char *, int *);
30extern long mach_max_dma_address;
31extern void (*mach_heartbeat) (int);
32extern void (*mach_l2_flush) (int);
33extern void (*mach_beep) (unsigned int, unsigned int);
34
35#endif /* _M68K_MACHDEP_H */
diff --git a/arch/m68knommu/include/asm/machdep.h b/arch/m68k/include/asm/machdep_no.h
index de9f47a51cc2..de9f47a51cc2 100644
--- a/arch/m68knommu/include/asm/machdep.h
+++ b/arch/m68k/include/asm/machdep_no.h
diff --git a/arch/m68k/include/asm/machines.h b/arch/m68k/include/asm/machines.h
new file mode 100644
index 000000000000..be667e84f01b
--- /dev/null
+++ b/arch/m68k/include/asm/machines.h
@@ -0,0 +1,85 @@
1/*
2 * machines.h: Defines for taking apart the machine type value in the
3 * idprom and determining the kind of machine we are on.
4 *
5 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
6 * Sun3/3x models added by David Monro (davidm@psrg.cs.usyd.edu.au)
7 */
8#ifndef _SPARC_MACHINES_H
9#define _SPARC_MACHINES_H
10
11struct Sun_Machine_Models {
12 char *name;
13 unsigned char id_machtype;
14};
15
16/* Current number of machines we know about that has an IDPROM
17 * machtype entry including one entry for the 0x80 OBP machines.
18 */
19// reduced along with table in arch/m68k/sun3/idprom.c
20// sun3 port doesn't need to know about sparc machines.
21//#define NUM_SUN_MACHINES 23
22#define NUM_SUN_MACHINES 8
23
24/* The machine type in the idprom area looks like this:
25 *
26 * ---------------
27 * | ARCH | MACH |
28 * ---------------
29 * 7 4 3 0
30 *
31 * The ARCH field determines the architecture line (sun4, sun4c, etc).
32 * The MACH field determines the machine make within that architecture.
33 */
34
35#define SM_ARCH_MASK 0xf0
36#define SM_SUN3 0x10
37#define SM_SUN4 0x20
38#define SM_SUN3X 0x40
39#define SM_SUN4C 0x50
40#define SM_SUN4M 0x70
41#define SM_SUN4M_OBP 0x80
42
43#define SM_TYP_MASK 0x0f
44/* Sun3 machines */
45#define SM_3_160 0x01 /* Sun 3/160 series */
46#define SM_3_50 0x02 /* Sun 3/50 series */
47#define SM_3_260 0x03 /* Sun 3/260 series */
48#define SM_3_110 0x04 /* Sun 3/110 series */
49#define SM_3_60 0x07 /* Sun 3/60 series */
50#define SM_3_E 0x08 /* Sun 3/E series */
51
52/* Sun3x machines */
53#define SM_3_460 0x01 /* Sun 3/460 (460,470,480) series */
54#define SM_3_80 0x02 /* Sun 3/80 series */
55
56/* Sun4 machines */
57#define SM_4_260 0x01 /* Sun 4/200 series */
58#define SM_4_110 0x02 /* Sun 4/100 series */
59#define SM_4_330 0x03 /* Sun 4/300 series */
60#define SM_4_470 0x04 /* Sun 4/400 series */
61
62/* Sun4c machines Full Name - PROM NAME */
63#define SM_4C_SS1 0x01 /* Sun4c SparcStation 1 - Sun 4/60 */
64#define SM_4C_IPC 0x02 /* Sun4c SparcStation IPC - Sun 4/40 */
65#define SM_4C_SS1PLUS 0x03 /* Sun4c SparcStation 1+ - Sun 4/65 */
66#define SM_4C_SLC 0x04 /* Sun4c SparcStation SLC - Sun 4/20 */
67#define SM_4C_SS2 0x05 /* Sun4c SparcStation 2 - Sun 4/75 */
68#define SM_4C_ELC 0x06 /* Sun4c SparcStation ELC - Sun 4/25 */
69#define SM_4C_IPX 0x07 /* Sun4c SparcStation IPX - Sun 4/50 */
70
71/* Sun4m machines, these predate the OpenBoot. These values only mean
72 * something if the value in the ARCH field is SM_SUN4M, if it is
73 * SM_SUN4M_OBP then you have the following situation:
74 * 1) You either have a sun4d, a sun4e, or a recently made sun4m.
75 * 2) You have to consult OpenBoot to determine which machine this is.
76 */
77#define SM_4M_SS60 0x01 /* Sun4m SparcSystem 600 */
78#define SM_4M_SS50 0x02 /* Sun4m SparcStation 10 */
79#define SM_4M_SS40 0x03 /* Sun4m SparcStation 5 */
80
81/* Sun4d machines -- N/A */
82/* Sun4e machines -- N/A */
83/* Sun4u machines -- N/A */
84
85#endif /* !(_SPARC_MACHINES_H) */
diff --git a/arch/m68k/include/asm/machw.h b/arch/m68k/include/asm/machw.h
new file mode 100644
index 000000000000..2b4de0c2ce4a
--- /dev/null
+++ b/arch/m68k/include/asm/machw.h
@@ -0,0 +1,49 @@
1/*
2** linux/machw.h -- This header defines some macros and pointers for
3** the various Macintosh custom hardware registers.
4**
5** Copyright 1997 by Michael Schmitz
6**
7** This file is subject to the terms and conditions of the GNU General Public
8** License. See the file COPYING in the main directory of this archive
9** for more details.
10**
11*/
12
13#ifndef _ASM_MACHW_H_
14#define _ASM_MACHW_H_
15
16/*
17 * head.S maps the videomem to VIDEOMEMBASE
18 */
19
20#define VIDEOMEMBASE 0xf0000000
21#define VIDEOMEMSIZE (4096*1024)
22#define VIDEOMEMMASK (-4096*1024)
23
24#ifndef __ASSEMBLY__
25
26#include <linux/types.h>
27
28#if 0
29/*
30** SCC Z8530
31*/
32
33#define MAC_SCC_BAS (0x50F04000)
34struct MAC_SCC
35 {
36 u_char cha_a_ctrl;
37 u_char char_dummy1;
38 u_char cha_a_data;
39 u_char char_dummy2;
40 u_char cha_b_ctrl;
41 u_char char_dummy3;
42 u_char cha_b_data;
43 };
44# define mac_scc ((*(volatile struct SCC*)MAC_SCC_BAS))
45#endif
46
47#endif /* __ASSEMBLY__ */
48
49#endif /* linux/machw.h */
diff --git a/arch/m68k/include/asm/macintosh.h b/arch/m68k/include/asm/macintosh.h
new file mode 100644
index 000000000000..05309f7e3d06
--- /dev/null
+++ b/arch/m68k/include/asm/macintosh.h
@@ -0,0 +1,135 @@
1#ifndef __ASM_MACINTOSH_H
2#define __ASM_MACINTOSH_H
3
4#include <linux/seq_file.h>
5#include <linux/interrupt.h>
6
7/*
8 * Apple Macintoshisms
9 */
10
11extern void mac_reset(void);
12extern void mac_poweroff(void);
13extern void mac_init_IRQ(void);
14extern int mac_irq_pending(unsigned int);
15
16/*
17 * Floppy driver magic hook - probably shouldnt be here
18 */
19
20extern void via1_set_head(int);
21
22/*
23 * Macintosh Table
24 */
25
26struct mac_model
27{
28 short ident;
29 char *name;
30 char adb_type;
31 char via_type;
32 char scsi_type;
33 char ide_type;
34 char scc_type;
35 char ether_type;
36 char nubus_type;
37};
38
39#define MAC_ADB_NONE 0
40#define MAC_ADB_II 1
41#define MAC_ADB_IISI 2
42#define MAC_ADB_CUDA 3
43#define MAC_ADB_PB1 4
44#define MAC_ADB_PB2 5
45#define MAC_ADB_IOP 6
46
47#define MAC_VIA_II 1
48#define MAC_VIA_IIci 2
49#define MAC_VIA_QUADRA 3
50
51#define MAC_SCSI_NONE 0
52#define MAC_SCSI_OLD 1
53#define MAC_SCSI_QUADRA 2
54#define MAC_SCSI_QUADRA2 3
55#define MAC_SCSI_QUADRA3 4
56
57#define MAC_IDE_NONE 0
58#define MAC_IDE_QUADRA 1
59#define MAC_IDE_PB 2
60#define MAC_IDE_BABOON 3
61
62#define MAC_SCC_II 1
63#define MAC_SCC_IOP 2
64#define MAC_SCC_QUADRA 3
65#define MAC_SCC_PSC 4
66
67#define MAC_ETHER_NONE 0
68#define MAC_ETHER_SONIC 1
69#define MAC_ETHER_MACE 2
70
71#define MAC_NO_NUBUS 0
72#define MAC_NUBUS 1
73
74/*
75 * Gestalt numbers
76 */
77
78#define MAC_MODEL_II 6
79#define MAC_MODEL_IIX 7
80#define MAC_MODEL_IICX 8
81#define MAC_MODEL_SE30 9
82#define MAC_MODEL_IICI 11
83#define MAC_MODEL_IIFX 13 /* And well numbered it is too */
84#define MAC_MODEL_IISI 18
85#define MAC_MODEL_LC 19
86#define MAC_MODEL_Q900 20
87#define MAC_MODEL_PB170 21
88#define MAC_MODEL_Q700 22
89#define MAC_MODEL_CLII 23 /* aka: P200 */
90#define MAC_MODEL_PB140 25
91#define MAC_MODEL_Q950 26 /* aka: WGS95 */
92#define MAC_MODEL_LCIII 27 /* aka: P450 */
93#define MAC_MODEL_PB210 29
94#define MAC_MODEL_C650 30
95#define MAC_MODEL_PB230 32
96#define MAC_MODEL_PB180 33
97#define MAC_MODEL_PB160 34
98#define MAC_MODEL_Q800 35 /* aka: WGS80 */
99#define MAC_MODEL_Q650 36
100#define MAC_MODEL_LCII 37 /* aka: P400/405/410/430 */
101#define MAC_MODEL_PB250 38
102#define MAC_MODEL_IIVI 44
103#define MAC_MODEL_P600 45 /* aka: P600CD */
104#define MAC_MODEL_IIVX 48
105#define MAC_MODEL_CCL 49 /* aka: P250 */
106#define MAC_MODEL_PB165C 50
107#define MAC_MODEL_C610 52 /* aka: WGS60 */
108#define MAC_MODEL_Q610 53
109#define MAC_MODEL_PB145 54 /* aka: PB145B */
110#define MAC_MODEL_P520 56 /* aka: LC520 */
111#define MAC_MODEL_C660 60
112#define MAC_MODEL_P460 62 /* aka: LCIII+, P466/P467 */
113#define MAC_MODEL_PB180C 71
114#define MAC_MODEL_PB520 72 /* aka: PB520C, PB540, PB540C, PB550C */
115#define MAC_MODEL_PB270C 77
116#define MAC_MODEL_Q840 78
117#define MAC_MODEL_P550 80 /* aka: LC550, P560 */
118#define MAC_MODEL_CCLII 83 /* aka: P275 */
119#define MAC_MODEL_PB165 84
120#define MAC_MODEL_PB190 85 /* aka: PB190CS */
121#define MAC_MODEL_TV 88
122#define MAC_MODEL_P475 89 /* aka: LC475, P476 */
123#define MAC_MODEL_P475F 90 /* aka: P475 w/ FPU (no LC040) */
124#define MAC_MODEL_P575 92 /* aka: LC575, P577/P578 */
125#define MAC_MODEL_Q605 94
126#define MAC_MODEL_Q605_ACC 95 /* Q605 accelerated to 33 MHz */
127#define MAC_MODEL_Q630 98 /* aka: LC630, P630/631/635/636/637/638/640 */
128#define MAC_MODEL_P588 99 /* aka: LC580, P580 */
129#define MAC_MODEL_PB280 102
130#define MAC_MODEL_PB280C 103
131#define MAC_MODEL_PB150 115
132
133extern struct mac_model *macintosh_config;
134
135#endif
diff --git a/arch/m68k/include/asm/macints.h b/arch/m68k/include/asm/macints.h
new file mode 100644
index 000000000000..679c48ab4407
--- /dev/null
+++ b/arch/m68k/include/asm/macints.h
@@ -0,0 +1,155 @@
1/*
2** macints.h -- Macintosh Linux interrupt handling structs and prototypes
3**
4** Copyright 1997 by Michael Schmitz
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10*/
11
12#ifndef _ASM_MACINTS_H_
13#define _ASM_MACINTS_H_
14
15#include <asm/irq.h>
16
17/* Setting this prints debugging info for unclaimed interrupts */
18
19#define DEBUG_SPURIOUS
20
21/* Setting this prints debugging info on each autovector interrupt */
22
23/* #define DEBUG_IRQS */
24
25/* Setting this prints debugging info on each Nubus interrupt */
26
27/* #define DEBUG_NUBUS_INT */
28
29/* Setting this prints debugging info on irqs as they enabled and disabled. */
30
31/* #define DEBUG_IRQUSE */
32
33/*
34 * Base IRQ number for all Mac68K interrupt sources. Each source
35 * has eight indexes (base -> base+7).
36 */
37
38#define VIA1_SOURCE_BASE 8
39#define VIA2_SOURCE_BASE 16
40#define MAC_SCC_SOURCE_BASE 24
41#define PSC3_SOURCE_BASE 24
42#define PSC4_SOURCE_BASE 32
43#define PSC5_SOURCE_BASE 40
44#define PSC6_SOURCE_BASE 48
45#define NUBUS_SOURCE_BASE 56
46#define BABOON_SOURCE_BASE 64
47
48/*
49 * Maximum IRQ number is BABOON_SOURCE_BASE + 7,
50 * giving us IRQs up through 71
51 */
52
53#define NUM_MAC_SOURCES 72
54
55/*
56 * clean way to separate IRQ into its source and index
57 */
58
59#define IRQ_SRC(irq) (irq >> 3)
60#define IRQ_IDX(irq) (irq & 7)
61
62/* VIA1 interrupts */
63#define IRQ_VIA1_0 (8) /* one second int. */
64#define IRQ_VIA1_1 (9) /* VBlank int. */
65#define IRQ_MAC_VBL IRQ_VIA1_1
66#define IRQ_VIA1_2 (10) /* ADB SR shifts complete */
67#define IRQ_MAC_ADB IRQ_VIA1_2
68#define IRQ_MAC_ADB_SR IRQ_VIA1_2
69#define IRQ_VIA1_3 (11) /* ADB SR CB2 ?? */
70#define IRQ_MAC_ADB_SD IRQ_VIA1_3
71#define IRQ_VIA1_4 (12) /* ADB SR ext. clock pulse */
72#define IRQ_MAC_ADB_CL IRQ_VIA1_4
73#define IRQ_VIA1_5 (13)
74#define IRQ_MAC_TIMER_2 IRQ_VIA1_5
75#define IRQ_VIA1_6 (14)
76#define IRQ_MAC_TIMER_1 IRQ_VIA1_6
77#define IRQ_VIA1_7 (15)
78
79/* VIA2/RBV interrupts */
80#define IRQ_VIA2_0 (16)
81#define IRQ_MAC_SCSIDRQ IRQ_VIA2_0
82#define IRQ_VIA2_1 (17)
83#define IRQ_MAC_NUBUS IRQ_VIA2_1
84#define IRQ_VIA2_2 (18)
85#define IRQ_VIA2_3 (19)
86#define IRQ_MAC_SCSI IRQ_VIA2_3
87#define IRQ_VIA2_4 (20)
88#define IRQ_VIA2_5 (21)
89#define IRQ_VIA2_6 (22)
90#define IRQ_VIA2_7 (23)
91
92/* Level 3 (PSC, AV Macs only) interrupts */
93#define IRQ_PSC3_0 (24)
94#define IRQ_MAC_MACE IRQ_PSC3_0
95#define IRQ_PSC3_1 (25)
96#define IRQ_PSC3_2 (26)
97#define IRQ_PSC3_3 (27)
98
99/* Level 4 (SCC) interrupts */
100#define IRQ_SCC (32)
101#define IRQ_SCCA (33)
102#define IRQ_SCCB (34)
103#if 0 /* FIXME: are there multiple interrupt conditions on the SCC ?? */
104/* SCC interrupts */
105#define IRQ_SCCB_TX (32)
106#define IRQ_SCCB_STAT (33)
107#define IRQ_SCCB_RX (34)
108#define IRQ_SCCB_SPCOND (35)
109#define IRQ_SCCA_TX (36)
110#define IRQ_SCCA_STAT (37)
111#define IRQ_SCCA_RX (38)
112#define IRQ_SCCA_SPCOND (39)
113#endif
114
115/* Level 4 (PSC, AV Macs only) interrupts */
116#define IRQ_PSC4_0 (32)
117#define IRQ_PSC4_1 (33)
118#define IRQ_PSC4_2 (34)
119#define IRQ_PSC4_3 (35)
120#define IRQ_MAC_MACE_DMA IRQ_PSC4_3
121
122/* Level 5 (PSC, AV Macs only) interrupts */
123#define IRQ_PSC5_0 (40)
124#define IRQ_PSC5_1 (41)
125#define IRQ_PSC5_2 (42)
126#define IRQ_PSC5_3 (43)
127
128/* Level 6 (PSC, AV Macs only) interrupts */
129#define IRQ_PSC6_0 (48)
130#define IRQ_PSC6_1 (49)
131#define IRQ_PSC6_2 (50)
132#define IRQ_PSC6_3 (51)
133
134/* Nubus interrupts (cascaded to VIA2) */
135#define IRQ_NUBUS_9 (56)
136#define IRQ_NUBUS_A (57)
137#define IRQ_NUBUS_B (58)
138#define IRQ_NUBUS_C (59)
139#define IRQ_NUBUS_D (60)
140#define IRQ_NUBUS_E (61)
141#define IRQ_NUBUS_F (62)
142
143/* Baboon interrupts (cascaded to nubus slot $C) */
144#define IRQ_BABOON_0 (64)
145#define IRQ_BABOON_1 (65)
146#define IRQ_BABOON_2 (66)
147#define IRQ_BABOON_3 (67)
148
149#define SLOT2IRQ(x) (x + 47)
150#define IRQ2SLOT(x) (x - 47)
151
152#define INT_CLK 24576 /* CLK while int_clk =2.456MHz and divide = 100 */
153#define INT_TICKS 246 /* to make sched_time = 99.902... HZ */
154
155#endif /* asm/macints.h */
diff --git a/arch/m68k/include/asm/math-emu.h b/arch/m68k/include/asm/math-emu.h
new file mode 100644
index 000000000000..ddfab96403cb
--- /dev/null
+++ b/arch/m68k/include/asm/math-emu.h
@@ -0,0 +1,315 @@
1#ifndef _ASM_M68K_SETUP_H
2#define _ASM_M68K_SETUP_H
3
4#include <asm/setup.h>
5#include <linux/linkage.h>
6
7/* Status Register bits */
8
9/* accrued exception bits */
10#define FPSR_AEXC_INEX 3
11#define FPSR_AEXC_DZ 4
12#define FPSR_AEXC_UNFL 5
13#define FPSR_AEXC_OVFL 6
14#define FPSR_AEXC_IOP 7
15
16/* exception status bits */
17#define FPSR_EXC_INEX1 8
18#define FPSR_EXC_INEX2 9
19#define FPSR_EXC_DZ 10
20#define FPSR_EXC_UNFL 11
21#define FPSR_EXC_OVFL 12
22#define FPSR_EXC_OPERR 13
23#define FPSR_EXC_SNAN 14
24#define FPSR_EXC_BSUN 15
25
26/* quotient byte, assumes big-endian, of course */
27#define FPSR_QUOTIENT(fpsr) (*((signed char *) &(fpsr) + 1))
28
29/* condition code bits */
30#define FPSR_CC_NAN 24
31#define FPSR_CC_INF 25
32#define FPSR_CC_Z 26
33#define FPSR_CC_NEG 27
34
35
36/* Control register bits */
37
38/* rounding mode */
39#define FPCR_ROUND_RN 0 /* round to nearest/even */
40#define FPCR_ROUND_RZ 1 /* round to zero */
41#define FPCR_ROUND_RM 2 /* minus infinity */
42#define FPCR_ROUND_RP 3 /* plus infinity */
43
44/* rounding precision */
45#define FPCR_PRECISION_X 0 /* long double */
46#define FPCR_PRECISION_S 1 /* double */
47#define FPCR_PRECISION_D 2 /* float */
48
49
50/* Flags to select the debugging output */
51#define PDECODE 0
52#define PEXECUTE 1
53#define PCONV 2
54#define PNORM 3
55#define PREGISTER 4
56#define PINSTR 5
57#define PUNIMPL 6
58#define PMOVEM 7
59
60#define PMDECODE (1<<PDECODE)
61#define PMEXECUTE (1<<PEXECUTE)
62#define PMCONV (1<<PCONV)
63#define PMNORM (1<<PNORM)
64#define PMREGISTER (1<<PREGISTER)
65#define PMINSTR (1<<PINSTR)
66#define PMUNIMPL (1<<PUNIMPL)
67#define PMMOVEM (1<<PMOVEM)
68
69#ifndef __ASSEMBLY__
70
71#include <linux/kernel.h>
72#include <linux/sched.h>
73
74union fp_mant64 {
75 unsigned long long m64;
76 unsigned long m32[2];
77};
78
79union fp_mant128 {
80 unsigned long long m64[2];
81 unsigned long m32[4];
82};
83
84/* internal representation of extended fp numbers */
85struct fp_ext {
86 unsigned char lowmant;
87 unsigned char sign;
88 unsigned short exp;
89 union fp_mant64 mant;
90};
91
92/* C representation of FPU registers */
93/* NOTE: if you change this, you have to change the assembler offsets
94 below and the size in <asm/fpu.h>, too */
95struct fp_data {
96 struct fp_ext fpreg[8];
97 unsigned int fpcr;
98 unsigned int fpsr;
99 unsigned int fpiar;
100 unsigned short prec;
101 unsigned short rnd;
102 struct fp_ext temp[2];
103};
104
105#ifdef FPU_EMU_DEBUG
106extern unsigned int fp_debugprint;
107
108#define dprint(bit, fmt, args...) ({ \
109 if (fp_debugprint & (1 << (bit))) \
110 printk(fmt, ## args); \
111})
112#else
113#define dprint(bit, fmt, args...)
114#endif
115
116#define uprint(str) ({ \
117 static int __count = 3; \
118 \
119 if (__count > 0) { \
120 printk("You just hit an unimplemented " \
121 "fpu instruction (%s)\n", str); \
122 printk("Please report this to ....\n"); \
123 __count--; \
124 } \
125})
126
127#define FPDATA ((struct fp_data *)current->thread.fp)
128
129#else /* __ASSEMBLY__ */
130
131#define FPDATA %a2
132
133/* offsets from the base register to the floating point data in the task struct */
134#define FPD_FPREG (TASK_THREAD+THREAD_FPREG+0)
135#define FPD_FPCR (TASK_THREAD+THREAD_FPREG+96)
136#define FPD_FPSR (TASK_THREAD+THREAD_FPREG+100)
137#define FPD_FPIAR (TASK_THREAD+THREAD_FPREG+104)
138#define FPD_PREC (TASK_THREAD+THREAD_FPREG+108)
139#define FPD_RND (TASK_THREAD+THREAD_FPREG+110)
140#define FPD_TEMPFP1 (TASK_THREAD+THREAD_FPREG+112)
141#define FPD_TEMPFP2 (TASK_THREAD+THREAD_FPREG+124)
142#define FPD_SIZEOF (TASK_THREAD+THREAD_FPREG+136)
143
144/* offsets on the stack to access saved registers,
145 * these are only used during instruction decoding
146 * where we always know how deep we're on the stack.
147 */
148#define FPS_DO (PT_D0)
149#define FPS_D1 (PT_D1)
150#define FPS_D2 (PT_D2)
151#define FPS_A0 (PT_A0)
152#define FPS_A1 (PT_A1)
153#define FPS_A2 (PT_A2)
154#define FPS_SR (PT_SR)
155#define FPS_PC (PT_PC)
156#define FPS_EA (PT_PC+6)
157#define FPS_PC2 (PT_PC+10)
158
159.macro fp_get_fp_reg
160 lea (FPD_FPREG,FPDATA,%d0.w*4),%a0
161 lea (%a0,%d0.w*8),%a0
162.endm
163
164/* Macros used to get/put the current program counter.
165 * 020/030 use a different stack frame then 040/060, for the
166 * 040/060 the return pc points already to the next location,
167 * so this only needs to be modified for jump instructions.
168 */
169.macro fp_get_pc dest
170 move.l (FPS_PC+4,%sp),\dest
171.endm
172
173.macro fp_put_pc src,jump=0
174 move.l \src,(FPS_PC+4,%sp)
175.endm
176
177.macro fp_get_instr_data f,s,dest,label
178 getuser \f,%sp@(FPS_PC+4)@(0),\dest,\label,%sp@(FPS_PC+4)
179 addq.l #\s,%sp@(FPS_PC+4)
180.endm
181
182.macro fp_get_instr_word dest,label,addr
183 fp_get_instr_data w,2,\dest,\label,\addr
184.endm
185
186.macro fp_get_instr_long dest,label,addr
187 fp_get_instr_data l,4,\dest,\label,\addr
188.endm
189
190/* These macros are used to read from/write to user space
191 * on error we jump to the fixup section, load the fault
192 * address into %a0 and jump to the exit.
193 * (derived from <asm/uaccess.h>)
194 */
195.macro getuser size,src,dest,label,addr
196| printf ,"[\size<%08x]",1,\addr
197.Lu1\@: moves\size \src,\dest
198
199 .section .fixup,"ax"
200 .even
201.Lu2\@: move.l \addr,%a0
202 jra \label
203 .previous
204
205 .section __ex_table,"a"
206 .align 4
207 .long .Lu1\@,.Lu2\@
208 .previous
209.endm
210
211.macro putuser size,src,dest,label,addr
212| printf ,"[\size>%08x]",1,\addr
213.Lu1\@: moves\size \src,\dest
214.Lu2\@:
215
216 .section .fixup,"ax"
217 .even
218.Lu3\@: move.l \addr,%a0
219 jra \label
220 .previous
221
222 .section __ex_table,"a"
223 .align 4
224 .long .Lu1\@,.Lu3\@
225 .long .Lu2\@,.Lu3\@
226 .previous
227.endm
228
229/* work around binutils idiocy */
230old_gas=-1
231.irp gas_ident.x .x
232old_gas=old_gas+1
233.endr
234.if !old_gas
235.irp m b,w,l
236.macro getuser.\m src,dest,label,addr
237 getuser .\m,\src,\dest,\label,\addr
238.endm
239.macro putuser.\m src,dest,label,addr
240 putuser .\m,\src,\dest,\label,\addr
241.endm
242.endr
243.endif
244
245.macro movestack nr,arg1,arg2,arg3,arg4,arg5
246 .if \nr
247 movestack (\nr-1),\arg2,\arg3,\arg4,\arg5
248 move.l \arg1,-(%sp)
249 .endif
250.endm
251
252.macro printf bit=-1,string,nr=0,arg1,arg2,arg3,arg4,arg5
253#ifdef FPU_EMU_DEBUG
254 .data
255.Lpdata\@:
256 .string "\string"
257 .previous
258
259 movem.l %d0/%d1/%a0/%a1,-(%sp)
260 .if \bit+1
261#if 0
262 moveq #\bit,%d0
263 andw #7,%d0
264 btst %d0,fp_debugprint+((31-\bit)/8)
265#else
266 btst #\bit,fp_debugprint+((31-\bit)/8)
267#endif
268 jeq .Lpskip\@
269 .endif
270 movestack \nr,\arg1,\arg2,\arg3,\arg4,\arg5
271 pea .Lpdata\@
272 jsr printk
273 lea ((\nr+1)*4,%sp),%sp
274.Lpskip\@:
275 movem.l (%sp)+,%d0/%d1/%a0/%a1
276#endif
277.endm
278
279.macro printx bit,fp
280#ifdef FPU_EMU_DEBUG
281 movem.l %d0/%a0,-(%sp)
282 lea \fp,%a0
283#if 0
284 moveq #'+',%d0
285 tst.w (%a0)
286 jeq .Lx1\@
287 moveq #'-',%d0
288.Lx1\@: printf \bit," %c",1,%d0
289 move.l (4,%a0),%d0
290 bclr #31,%d0
291 jne .Lx2\@
292 printf \bit,"0."
293 jra .Lx3\@
294.Lx2\@: printf \bit,"1."
295.Lx3\@: printf \bit,"%08x%08x",2,%d0,%a0@(8)
296 move.w (2,%a0),%d0
297 ext.l %d0
298 printf \bit,"E%04x",1,%d0
299#else
300 printf \bit," %08x%08x%08x",3,%a0@,%a0@(4),%a0@(8)
301#endif
302 movem.l (%sp)+,%d0/%a0
303#endif
304.endm
305
306.macro debug instr,args
307#ifdef FPU_EMU_DEBUG
308 \instr \args
309#endif
310.endm
311
312
313#endif /* __ASSEMBLY__ */
314
315#endif /* _ASM_M68K_SETUP_H */
diff --git a/arch/m68k/include/asm/mc146818rtc.h b/arch/m68k/include/asm/mc146818rtc.h
new file mode 100644
index 000000000000..fb90dcf78426
--- /dev/null
+++ b/arch/m68k/include/asm/mc146818rtc.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "mc146818rtc_no.h"
3#else
4#include "mc146818rtc_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/mc146818rtc_mm.h b/arch/m68k/include/asm/mc146818rtc_mm.h
new file mode 100644
index 000000000000..9f70a01f73dc
--- /dev/null
+++ b/arch/m68k/include/asm/mc146818rtc_mm.h
@@ -0,0 +1,26 @@
1/*
2 * Machine dependent access functions for RTC registers.
3 */
4#ifndef _ASM_MC146818RTC_H
5#define _ASM_MC146818RTC_H
6
7
8#ifdef CONFIG_ATARI
9/* RTC in Atari machines */
10
11#include <asm/atarihw.h>
12
13#define RTC_PORT(x) (TT_RTC_BAS + 2*(x))
14#define RTC_ALWAYS_BCD 0
15
16#define CMOS_READ(addr) ({ \
17atari_outb_p((addr),RTC_PORT(0)); \
18atari_inb_p(RTC_PORT(1)); \
19})
20#define CMOS_WRITE(val, addr) ({ \
21atari_outb_p((addr),RTC_PORT(0)); \
22atari_outb_p((val),RTC_PORT(1)); \
23})
24#endif /* CONFIG_ATARI */
25
26#endif /* _ASM_MC146818RTC_H */
diff --git a/arch/m68knommu/include/asm/mc146818rtc.h b/arch/m68k/include/asm/mc146818rtc_no.h
index 907a0481a140..907a0481a140 100644
--- a/arch/m68knommu/include/asm/mc146818rtc.h
+++ b/arch/m68k/include/asm/mc146818rtc_no.h
diff --git a/arch/m68knommu/include/asm/mcfcache.h b/arch/m68k/include/asm/mcfcache.h
index c042634fadaa..c042634fadaa 100644
--- a/arch/m68knommu/include/asm/mcfcache.h
+++ b/arch/m68k/include/asm/mcfcache.h
diff --git a/arch/m68knommu/include/asm/mcfdma.h b/arch/m68k/include/asm/mcfdma.h
index 705c52c79cd8..705c52c79cd8 100644
--- a/arch/m68knommu/include/asm/mcfdma.h
+++ b/arch/m68k/include/asm/mcfdma.h
diff --git a/arch/m68knommu/include/asm/mcfmbus.h b/arch/m68k/include/asm/mcfmbus.h
index 319899c47a2c..319899c47a2c 100644
--- a/arch/m68knommu/include/asm/mcfmbus.h
+++ b/arch/m68k/include/asm/mcfmbus.h
diff --git a/arch/m68knommu/include/asm/mcfne.h b/arch/m68k/include/asm/mcfne.h
index 431f63aadd0e..431f63aadd0e 100644
--- a/arch/m68knommu/include/asm/mcfne.h
+++ b/arch/m68k/include/asm/mcfne.h
diff --git a/arch/m68knommu/include/asm/mcfpci.h b/arch/m68k/include/asm/mcfpci.h
index f1507dd06ec6..f1507dd06ec6 100644
--- a/arch/m68knommu/include/asm/mcfpci.h
+++ b/arch/m68k/include/asm/mcfpci.h
diff --git a/arch/m68knommu/include/asm/mcfpit.h b/arch/m68k/include/asm/mcfpit.h
index f570cf64fd29..f570cf64fd29 100644
--- a/arch/m68knommu/include/asm/mcfpit.h
+++ b/arch/m68k/include/asm/mcfpit.h
diff --git a/arch/m68knommu/include/asm/mcfsim.h b/arch/m68k/include/asm/mcfsim.h
index da3f2ceff3a4..da3f2ceff3a4 100644
--- a/arch/m68knommu/include/asm/mcfsim.h
+++ b/arch/m68k/include/asm/mcfsim.h
diff --git a/arch/m68knommu/include/asm/mcfsmc.h b/arch/m68k/include/asm/mcfsmc.h
index 2d7a4dbd9683..2d7a4dbd9683 100644
--- a/arch/m68knommu/include/asm/mcfsmc.h
+++ b/arch/m68k/include/asm/mcfsmc.h
diff --git a/arch/m68knommu/include/asm/mcftimer.h b/arch/m68k/include/asm/mcftimer.h
index 0f90f6d2227a..0f90f6d2227a 100644
--- a/arch/m68knommu/include/asm/mcftimer.h
+++ b/arch/m68k/include/asm/mcftimer.h
diff --git a/arch/m68knommu/include/asm/mcfuart.h b/arch/m68k/include/asm/mcfuart.h
index ef2293873612..ef2293873612 100644
--- a/arch/m68knommu/include/asm/mcfuart.h
+++ b/arch/m68k/include/asm/mcfuart.h
diff --git a/arch/m68knommu/include/asm/mcfwdebug.h b/arch/m68k/include/asm/mcfwdebug.h
index 27f70e45d700..27f70e45d700 100644
--- a/arch/m68knommu/include/asm/mcfwdebug.h
+++ b/arch/m68k/include/asm/mcfwdebug.h
diff --git a/arch/m68k/include/asm/md.h b/arch/m68k/include/asm/md.h
new file mode 100644
index 000000000000..d2f78f226f3d
--- /dev/null
+++ b/arch/m68k/include/asm/md.h
@@ -0,0 +1,13 @@
1/*
2 * md.h: High speed xor_block operation for RAID4/5
3 *
4 */
5
6#ifndef __ASM_MD_H
7#define __ASM_MD_H
8
9/* #define HAVE_ARCH_XORBLOCK */
10
11#define MD_XORBLOCK_ALIGNMENT sizeof(long)
12
13#endif /* __ASM_MD_H */
diff --git a/arch/m68k/include/asm/mman.h b/arch/m68k/include/asm/mman.h
new file mode 100644
index 000000000000..1626d37f4898
--- /dev/null
+++ b/arch/m68k/include/asm/mman.h
@@ -0,0 +1,17 @@
1#ifndef __M68K_MMAN_H__
2#define __M68K_MMAN_H__
3
4#include <asm-generic/mman.h>
5
6#define MAP_GROWSDOWN 0x0100 /* stack-like segment */
7#define MAP_DENYWRITE 0x0800 /* ETXTBSY */
8#define MAP_EXECUTABLE 0x1000 /* mark it as an executable */
9#define MAP_LOCKED 0x2000 /* pages are locked */
10#define MAP_NORESERVE 0x4000 /* don't check for reservations */
11#define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
12#define MAP_NONBLOCK 0x10000 /* do not block on IO */
13
14#define MCL_CURRENT 1 /* lock all current mappings */
15#define MCL_FUTURE 2 /* lock all future mappings */
16
17#endif /* __M68K_MMAN_H__ */
diff --git a/arch/m68k/include/asm/mmu.h b/arch/m68k/include/asm/mmu.h
new file mode 100644
index 000000000000..a81d3946675f
--- /dev/null
+++ b/arch/m68k/include/asm/mmu.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "mmu_no.h"
3#else
4#include "mmu_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/mmu_context.h b/arch/m68k/include/asm/mmu_context.h
new file mode 100644
index 000000000000..b440928fc6c7
--- /dev/null
+++ b/arch/m68k/include/asm/mmu_context.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "mmu_context_no.h"
3#else
4#include "mmu_context_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/mmu_context_mm.h b/arch/m68k/include/asm/mmu_context_mm.h
new file mode 100644
index 000000000000..894dacbcee14
--- /dev/null
+++ b/arch/m68k/include/asm/mmu_context_mm.h
@@ -0,0 +1,154 @@
1#ifndef __M68K_MMU_CONTEXT_H
2#define __M68K_MMU_CONTEXT_H
3
4#include <asm-generic/mm_hooks.h>
5
6static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
7{
8}
9
10#ifndef CONFIG_SUN3
11
12#include <asm/setup.h>
13#include <asm/page.h>
14#include <asm/pgalloc.h>
15
16static inline int init_new_context(struct task_struct *tsk,
17 struct mm_struct *mm)
18{
19 mm->context = virt_to_phys(mm->pgd);
20 return 0;
21}
22
23#define destroy_context(mm) do { } while(0)
24
25static inline void switch_mm_0230(struct mm_struct *mm)
26{
27 unsigned long crp[2] = {
28 0x80000000 | _PAGE_TABLE, mm->context
29 };
30 unsigned long tmp;
31
32 asm volatile (".chip 68030");
33
34 /* flush MC68030/MC68020 caches (they are virtually addressed) */
35 asm volatile (
36 "movec %%cacr,%0;"
37 "orw %1,%0; "
38 "movec %0,%%cacr"
39 : "=d" (tmp) : "di" (FLUSH_I_AND_D));
40
41 /* Switch the root pointer. For a 030-only kernel,
42 * avoid flushing the whole ATC, we only need to
43 * flush the user entries. The 68851 does this by
44 * itself. Avoid a runtime check here.
45 */
46 asm volatile (
47#ifdef CPU_M68030_ONLY
48 "pmovefd %0,%%crp; "
49 "pflush #0,#4"
50#else
51 "pmove %0,%%crp"
52#endif
53 : : "m" (crp[0]));
54
55 asm volatile (".chip 68k");
56}
57
58static inline void switch_mm_0460(struct mm_struct *mm)
59{
60 asm volatile (".chip 68040");
61
62 /* flush address translation cache (user entries) */
63 asm volatile ("pflushan");
64
65 /* switch the root pointer */
66 asm volatile ("movec %0,%%urp" : : "r" (mm->context));
67
68 if (CPU_IS_060) {
69 unsigned long tmp;
70
71 /* clear user entries in the branch cache */
72 asm volatile (
73 "movec %%cacr,%0; "
74 "orl %1,%0; "
75 "movec %0,%%cacr"
76 : "=d" (tmp): "di" (0x00200000));
77 }
78
79 asm volatile (".chip 68k");
80}
81
82static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, struct task_struct *tsk)
83{
84 if (prev != next) {
85 if (CPU_IS_020_OR_030)
86 switch_mm_0230(next);
87 else
88 switch_mm_0460(next);
89 }
90}
91
92#define deactivate_mm(tsk,mm) do { } while (0)
93
94static inline void activate_mm(struct mm_struct *prev_mm,
95 struct mm_struct *next_mm)
96{
97 next_mm->context = virt_to_phys(next_mm->pgd);
98
99 if (CPU_IS_020_OR_030)
100 switch_mm_0230(next_mm);
101 else
102 switch_mm_0460(next_mm);
103}
104
105#else /* CONFIG_SUN3 */
106#include <asm/sun3mmu.h>
107#include <linux/sched.h>
108
109extern unsigned long get_free_context(struct mm_struct *mm);
110extern void clear_context(unsigned long context);
111
112/* set the context for a new task to unmapped */
113static inline int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
114{
115 mm->context = SUN3_INVALID_CONTEXT;
116 return 0;
117}
118
119/* find the context given to this process, and if it hasn't already
120 got one, go get one for it. */
121static inline void get_mmu_context(struct mm_struct *mm)
122{
123 if(mm->context == SUN3_INVALID_CONTEXT)
124 mm->context = get_free_context(mm);
125}
126
127/* flush context if allocated... */
128static inline void destroy_context(struct mm_struct *mm)
129{
130 if(mm->context != SUN3_INVALID_CONTEXT)
131 clear_context(mm->context);
132}
133
134static inline void activate_context(struct mm_struct *mm)
135{
136 get_mmu_context(mm);
137 sun3_put_context(mm->context);
138}
139
140static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, struct task_struct *tsk)
141{
142 activate_context(tsk->mm);
143}
144
145#define deactivate_mm(tsk,mm) do { } while (0)
146
147static inline void activate_mm(struct mm_struct *prev_mm,
148 struct mm_struct *next_mm)
149{
150 activate_context(next_mm);
151}
152
153#endif
154#endif
diff --git a/arch/m68knommu/include/asm/mmu_context.h b/arch/m68k/include/asm/mmu_context_no.h
index 9ccee4278c97..9ccee4278c97 100644
--- a/arch/m68knommu/include/asm/mmu_context.h
+++ b/arch/m68k/include/asm/mmu_context_no.h
diff --git a/arch/m68k/include/asm/mmu_mm.h b/arch/m68k/include/asm/mmu_mm.h
new file mode 100644
index 000000000000..ccd36d26615a
--- /dev/null
+++ b/arch/m68k/include/asm/mmu_mm.h
@@ -0,0 +1,7 @@
1#ifndef __MMU_H
2#define __MMU_H
3
4/* Default "unsigned long" context */
5typedef unsigned long mm_context_t;
6
7#endif
diff --git a/arch/m68knommu/include/asm/mmu.h b/arch/m68k/include/asm/mmu_no.h
index e2da1e6f09fe..e2da1e6f09fe 100644
--- a/arch/m68knommu/include/asm/mmu.h
+++ b/arch/m68k/include/asm/mmu_no.h
diff --git a/arch/m68k/include/asm/mmzone.h b/arch/m68k/include/asm/mmzone.h
new file mode 100644
index 000000000000..e1f1ec7b7006
--- /dev/null
+++ b/arch/m68k/include/asm/mmzone.h
@@ -0,0 +1,9 @@
1#ifndef _ASM_M68K_MMZONE_H_
2#define _ASM_M68K_MMZONE_H_
3
4extern pg_data_t pg_data_map[];
5
6#define NODE_DATA(nid) (&pg_data_map[nid])
7#define NODE_MEM_MAP(nid) (NODE_DATA(nid)->node_mem_map)
8
9#endif /* _ASM_M68K_MMZONE_H_ */
diff --git a/arch/m68k/include/asm/module.h b/arch/m68k/include/asm/module.h
new file mode 100644
index 000000000000..79b59d137dd0
--- /dev/null
+++ b/arch/m68k/include/asm/module.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "module_no.h"
3#else
4#include "module_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/module_mm.h b/arch/m68k/include/asm/module_mm.h
new file mode 100644
index 000000000000..382d20a6fc18
--- /dev/null
+++ b/arch/m68k/include/asm/module_mm.h
@@ -0,0 +1,39 @@
1#ifndef _ASM_M68K_MODULE_H
2#define _ASM_M68K_MODULE_H
3
4struct mod_arch_specific {
5 struct m68k_fixup_info *fixup_start, *fixup_end;
6};
7
8#define MODULE_ARCH_INIT { \
9 .fixup_start = __start_fixup, \
10 .fixup_end = __stop_fixup, \
11}
12
13#define Elf_Shdr Elf32_Shdr
14#define Elf_Sym Elf32_Sym
15#define Elf_Ehdr Elf32_Ehdr
16
17
18enum m68k_fixup_type {
19 m68k_fixup_memoffset,
20 m68k_fixup_vnode_shift,
21};
22
23struct m68k_fixup_info {
24 enum m68k_fixup_type type;
25 void *addr;
26};
27
28#define m68k_fixup(type, addr) \
29 " .section \".m68k_fixup\",\"aw\"\n" \
30 " .long " #type "," #addr "\n" \
31 " .previous\n"
32
33extern struct m68k_fixup_info __start_fixup[], __stop_fixup[];
34
35struct module;
36extern void module_fixup(struct module *mod, struct m68k_fixup_info *start,
37 struct m68k_fixup_info *end);
38
39#endif /* _ASM_M68K_MODULE_H */
diff --git a/arch/m68knommu/include/asm/module.h b/arch/m68k/include/asm/module_no.h
index 2e45ab50b232..2e45ab50b232 100644
--- a/arch/m68knommu/include/asm/module.h
+++ b/arch/m68k/include/asm/module_no.h
diff --git a/arch/m68k/include/asm/motorola_pgalloc.h b/arch/m68k/include/asm/motorola_pgalloc.h
new file mode 100644
index 000000000000..d08bf6261df8
--- /dev/null
+++ b/arch/m68k/include/asm/motorola_pgalloc.h
@@ -0,0 +1,109 @@
1#ifndef _MOTOROLA_PGALLOC_H
2#define _MOTOROLA_PGALLOC_H
3
4#include <asm/tlb.h>
5#include <asm/tlbflush.h>
6
7extern pmd_t *get_pointer_table(void);
8extern int free_pointer_table(pmd_t *);
9
10static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
11{
12 pte_t *pte;
13
14 pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
15 if (pte) {
16 __flush_page_to_ram(pte);
17 flush_tlb_kernel_page(pte);
18 nocache_page(pte);
19 }
20
21 return pte;
22}
23
24static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
25{
26 cache_page(pte);
27 free_page((unsigned long) pte);
28}
29
30static inline pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
31{
32 struct page *page = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
33 pte_t *pte;
34
35 if(!page)
36 return NULL;
37
38 pte = kmap(page);
39 if (pte) {
40 __flush_page_to_ram(pte);
41 flush_tlb_kernel_page(pte);
42 nocache_page(pte);
43 }
44 kunmap(pte);
45 pgtable_page_ctor(page);
46 return page;
47}
48
49static inline void pte_free(struct mm_struct *mm, pgtable_t page)
50{
51 pgtable_page_dtor(page);
52 cache_page(kmap(page));
53 kunmap(page);
54 __free_page(page);
55}
56
57static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t page)
58{
59 pgtable_page_dtor(page);
60 cache_page(kmap(page));
61 kunmap(page);
62 __free_page(page);
63}
64
65
66static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
67{
68 return get_pointer_table();
69}
70
71static inline int pmd_free(struct mm_struct *mm, pmd_t *pmd)
72{
73 return free_pointer_table(pmd);
74}
75
76static inline int __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
77{
78 return free_pointer_table(pmd);
79}
80
81
82static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
83{
84 pmd_free(mm, (pmd_t *)pgd);
85}
86
87static inline pgd_t *pgd_alloc(struct mm_struct *mm)
88{
89 return (pgd_t *)get_pointer_table();
90}
91
92
93static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
94{
95 pmd_set(pmd, pte);
96}
97
98static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t page)
99{
100 pmd_set(pmd, page_address(page));
101}
102#define pmd_pgtable(pmd) pmd_page(pmd)
103
104static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
105{
106 pgd_set(pgd, pmd);
107}
108
109#endif /* _MOTOROLA_PGALLOC_H */
diff --git a/arch/m68k/include/asm/motorola_pgtable.h b/arch/m68k/include/asm/motorola_pgtable.h
new file mode 100644
index 000000000000..8e9a8a754dde
--- /dev/null
+++ b/arch/m68k/include/asm/motorola_pgtable.h
@@ -0,0 +1,291 @@
1#ifndef _MOTOROLA_PGTABLE_H
2#define _MOTOROLA_PGTABLE_H
3
4
5/*
6 * Definitions for MMU descriptors
7 */
8#define _PAGE_PRESENT 0x001
9#define _PAGE_SHORT 0x002
10#define _PAGE_RONLY 0x004
11#define _PAGE_ACCESSED 0x008
12#define _PAGE_DIRTY 0x010
13#define _PAGE_SUPER 0x080 /* 68040 supervisor only */
14#define _PAGE_GLOBAL040 0x400 /* 68040 global bit, used for kva descs */
15#define _PAGE_NOCACHE030 0x040 /* 68030 no-cache mode */
16#define _PAGE_NOCACHE 0x060 /* 68040 cache mode, non-serialized */
17#define _PAGE_NOCACHE_S 0x040 /* 68040 no-cache mode, serialized */
18#define _PAGE_CACHE040 0x020 /* 68040 cache mode, cachable, copyback */
19#define _PAGE_CACHE040W 0x000 /* 68040 cache mode, cachable, write-through */
20
21#define _DESCTYPE_MASK 0x003
22
23#define _CACHEMASK040 (~0x060)
24#define _TABLE_MASK (0xfffffe00)
25
26#define _PAGE_TABLE (_PAGE_SHORT)
27#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_NOCACHE)
28
29#define _PAGE_PROTNONE 0x004
30#define _PAGE_FILE 0x008 /* pagecache or swap? */
31
32#ifndef __ASSEMBLY__
33
34/* This is the cache mode to be used for pages containing page descriptors for
35 * processors >= '040. It is in pte_mknocache(), and the variable is defined
36 * and initialized in head.S */
37extern int m68k_pgtable_cachemode;
38
39/* This is the cache mode for normal pages, for supervisor access on
40 * processors >= '040. It is used in pte_mkcache(), and the variable is
41 * defined and initialized in head.S */
42
43#if defined(CPU_M68060_ONLY) && defined(CONFIG_060_WRITETHROUGH)
44#define m68k_supervisor_cachemode _PAGE_CACHE040W
45#elif defined(CPU_M68040_OR_M68060_ONLY)
46#define m68k_supervisor_cachemode _PAGE_CACHE040
47#elif defined(CPU_M68020_OR_M68030_ONLY)
48#define m68k_supervisor_cachemode 0
49#else
50extern int m68k_supervisor_cachemode;
51#endif
52
53#if defined(CPU_M68040_OR_M68060_ONLY)
54#define mm_cachebits _PAGE_CACHE040
55#elif defined(CPU_M68020_OR_M68030_ONLY)
56#define mm_cachebits 0
57#else
58extern unsigned long mm_cachebits;
59#endif
60
61#define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED | mm_cachebits)
62#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_ACCESSED | mm_cachebits)
63#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_RONLY | _PAGE_ACCESSED | mm_cachebits)
64#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_RONLY | _PAGE_ACCESSED | mm_cachebits)
65#define PAGE_KERNEL __pgprot(_PAGE_PRESENT | _PAGE_DIRTY | _PAGE_ACCESSED | mm_cachebits)
66
67/* Alternate definitions that are compile time constants, for
68 initializing protection_map. The cachebits are fixed later. */
69#define PAGE_NONE_C __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED)
70#define PAGE_SHARED_C __pgprot(_PAGE_PRESENT | _PAGE_ACCESSED)
71#define PAGE_COPY_C __pgprot(_PAGE_PRESENT | _PAGE_RONLY | _PAGE_ACCESSED)
72#define PAGE_READONLY_C __pgprot(_PAGE_PRESENT | _PAGE_RONLY | _PAGE_ACCESSED)
73
74/*
75 * The m68k can't do page protection for execute, and considers that the same are read.
76 * Also, write permissions imply read permissions. This is the closest we can get..
77 */
78#define __P000 PAGE_NONE_C
79#define __P001 PAGE_READONLY_C
80#define __P010 PAGE_COPY_C
81#define __P011 PAGE_COPY_C
82#define __P100 PAGE_READONLY_C
83#define __P101 PAGE_READONLY_C
84#define __P110 PAGE_COPY_C
85#define __P111 PAGE_COPY_C
86
87#define __S000 PAGE_NONE_C
88#define __S001 PAGE_READONLY_C
89#define __S010 PAGE_SHARED_C
90#define __S011 PAGE_SHARED_C
91#define __S100 PAGE_READONLY_C
92#define __S101 PAGE_READONLY_C
93#define __S110 PAGE_SHARED_C
94#define __S111 PAGE_SHARED_C
95
96/*
97 * Conversion functions: convert a page and protection to a page entry,
98 * and a page entry and page directory to the page they refer to.
99 */
100#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
101
102static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
103{
104 pte_val(pte) = (pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot);
105 return pte;
106}
107
108static inline void pmd_set(pmd_t *pmdp, pte_t *ptep)
109{
110 unsigned long ptbl = virt_to_phys(ptep) | _PAGE_TABLE | _PAGE_ACCESSED;
111 unsigned long *ptr = pmdp->pmd;
112 short i = 16;
113 while (--i >= 0) {
114 *ptr++ = ptbl;
115 ptbl += (sizeof(pte_t)*PTRS_PER_PTE/16);
116 }
117}
118
119static inline void pgd_set(pgd_t *pgdp, pmd_t *pmdp)
120{
121 pgd_val(*pgdp) = _PAGE_TABLE | _PAGE_ACCESSED | __pa(pmdp);
122}
123
124#define __pte_page(pte) ((unsigned long)__va(pte_val(pte) & PAGE_MASK))
125#define __pmd_page(pmd) ((unsigned long)__va(pmd_val(pmd) & _TABLE_MASK))
126#define __pgd_page(pgd) ((unsigned long)__va(pgd_val(pgd) & _TABLE_MASK))
127
128
129#define pte_none(pte) (!pte_val(pte))
130#define pte_present(pte) (pte_val(pte) & (_PAGE_PRESENT | _PAGE_PROTNONE))
131#define pte_clear(mm,addr,ptep) ({ pte_val(*(ptep)) = 0; })
132
133#define pte_page(pte) virt_to_page(__va(pte_val(pte)))
134#define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT)
135#define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
136
137#define pmd_none(pmd) (!pmd_val(pmd))
138#define pmd_bad(pmd) ((pmd_val(pmd) & _DESCTYPE_MASK) != _PAGE_TABLE)
139#define pmd_present(pmd) (pmd_val(pmd) & _PAGE_TABLE)
140#define pmd_clear(pmdp) ({ \
141 unsigned long *__ptr = pmdp->pmd; \
142 short __i = 16; \
143 while (--__i >= 0) \
144 *__ptr++ = 0; \
145})
146#define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd)))
147
148
149#define pgd_none(pgd) (!pgd_val(pgd))
150#define pgd_bad(pgd) ((pgd_val(pgd) & _DESCTYPE_MASK) != _PAGE_TABLE)
151#define pgd_present(pgd) (pgd_val(pgd) & _PAGE_TABLE)
152#define pgd_clear(pgdp) ({ pgd_val(*pgdp) = 0; })
153#define pgd_page(pgd) (mem_map + ((unsigned long)(__va(pgd_val(pgd)) - PAGE_OFFSET) >> PAGE_SHIFT))
154
155#define pte_ERROR(e) \
156 printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
157#define pmd_ERROR(e) \
158 printk("%s:%d: bad pmd %08lx.\n", __FILE__, __LINE__, pmd_val(e))
159#define pgd_ERROR(e) \
160 printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
161
162
163/*
164 * The following only work if pte_present() is true.
165 * Undefined behaviour if not..
166 */
167static inline int pte_write(pte_t pte) { return !(pte_val(pte) & _PAGE_RONLY); }
168static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; }
169static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; }
170static inline int pte_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; }
171static inline int pte_special(pte_t pte) { return 0; }
172
173static inline pte_t pte_wrprotect(pte_t pte) { pte_val(pte) |= _PAGE_RONLY; return pte; }
174static inline pte_t pte_mkclean(pte_t pte) { pte_val(pte) &= ~_PAGE_DIRTY; return pte; }
175static inline pte_t pte_mkold(pte_t pte) { pte_val(pte) &= ~_PAGE_ACCESSED; return pte; }
176static inline pte_t pte_mkwrite(pte_t pte) { pte_val(pte) &= ~_PAGE_RONLY; return pte; }
177static inline pte_t pte_mkdirty(pte_t pte) { pte_val(pte) |= _PAGE_DIRTY; return pte; }
178static inline pte_t pte_mkyoung(pte_t pte) { pte_val(pte) |= _PAGE_ACCESSED; return pte; }
179static inline pte_t pte_mknocache(pte_t pte)
180{
181 pte_val(pte) = (pte_val(pte) & _CACHEMASK040) | m68k_pgtable_cachemode;
182 return pte;
183}
184static inline pte_t pte_mkcache(pte_t pte)
185{
186 pte_val(pte) = (pte_val(pte) & _CACHEMASK040) | m68k_supervisor_cachemode;
187 return pte;
188}
189static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
190
191#define PAGE_DIR_OFFSET(tsk,address) pgd_offset((tsk),(address))
192
193#define pgd_index(address) ((address) >> PGDIR_SHIFT)
194
195/* to find an entry in a page-table-directory */
196static inline pgd_t *pgd_offset(const struct mm_struct *mm,
197 unsigned long address)
198{
199 return mm->pgd + pgd_index(address);
200}
201
202#define swapper_pg_dir kernel_pg_dir
203extern pgd_t kernel_pg_dir[128];
204
205static inline pgd_t *pgd_offset_k(unsigned long address)
206{
207 return kernel_pg_dir + (address >> PGDIR_SHIFT);
208}
209
210
211/* Find an entry in the second-level page table.. */
212static inline pmd_t *pmd_offset(pgd_t *dir, unsigned long address)
213{
214 return (pmd_t *)__pgd_page(*dir) + ((address >> PMD_SHIFT) & (PTRS_PER_PMD-1));
215}
216
217/* Find an entry in the third-level page table.. */
218static inline pte_t *pte_offset_kernel(pmd_t *pmdp, unsigned long address)
219{
220 return (pte_t *)__pmd_page(*pmdp) + ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1));
221}
222
223#define pte_offset_map(pmdp,address) ((pte_t *)__pmd_page(*pmdp) + (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)))
224#define pte_offset_map_nested(pmdp, address) pte_offset_map(pmdp, address)
225#define pte_unmap(pte) ((void)0)
226#define pte_unmap_nested(pte) ((void)0)
227
228/*
229 * Allocate and free page tables. The xxx_kernel() versions are
230 * used to allocate a kernel page table - this turns on ASN bits
231 * if any.
232 */
233
234/* Prior to calling these routines, the page should have been flushed
235 * from both the cache and ATC, or the CPU might not notice that the
236 * cache setting for the page has been changed. -jskov
237 */
238static inline void nocache_page(void *vaddr)
239{
240 unsigned long addr = (unsigned long)vaddr;
241
242 if (CPU_IS_040_OR_060) {
243 pgd_t *dir;
244 pmd_t *pmdp;
245 pte_t *ptep;
246
247 dir = pgd_offset_k(addr);
248 pmdp = pmd_offset(dir, addr);
249 ptep = pte_offset_kernel(pmdp, addr);
250 *ptep = pte_mknocache(*ptep);
251 }
252}
253
254static inline void cache_page(void *vaddr)
255{
256 unsigned long addr = (unsigned long)vaddr;
257
258 if (CPU_IS_040_OR_060) {
259 pgd_t *dir;
260 pmd_t *pmdp;
261 pte_t *ptep;
262
263 dir = pgd_offset_k(addr);
264 pmdp = pmd_offset(dir, addr);
265 ptep = pte_offset_kernel(pmdp, addr);
266 *ptep = pte_mkcache(*ptep);
267 }
268}
269
270#define PTE_FILE_MAX_BITS 28
271
272static inline unsigned long pte_to_pgoff(pte_t pte)
273{
274 return pte.pte >> 4;
275}
276
277static inline pte_t pgoff_to_pte(unsigned off)
278{
279 pte_t pte = { (off << 4) + _PAGE_FILE };
280 return pte;
281}
282
283/* Encode and de-code a swap entry (must be !pte_none(e) && !pte_present(e)) */
284#define __swp_type(x) (((x).val >> 4) & 0xff)
285#define __swp_offset(x) ((x).val >> 12)
286#define __swp_entry(type, offset) ((swp_entry_t) { ((type) << 4) | ((offset) << 12) })
287#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
288#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
289
290#endif /* !__ASSEMBLY__ */
291#endif /* _MOTOROLA_PGTABLE_H */
diff --git a/arch/m68k/include/asm/movs.h b/arch/m68k/include/asm/movs.h
new file mode 100644
index 000000000000..67dbea36960f
--- /dev/null
+++ b/arch/m68k/include/asm/movs.h
@@ -0,0 +1,55 @@
1#ifndef __MOVS_H__
2#define __MOVS_H__
3
4/*
5** movs.h
6**
7** Inline assembly macros to generate movs & related instructions
8*/
9
10/* Set DFC register value */
11
12#define SET_DFC(x) \
13 __asm__ __volatile__ (" movec %0,%/dfc" : : "d" (x));
14
15/* Get DFC register value */
16
17#define GET_DFC(x) \
18 __asm__ __volatile__ (" movec %/dfc, %0" : "=d" (x) : );
19
20/* Set SFC register value */
21
22#define SET_SFC(x) \
23 __asm__ __volatile__ (" movec %0,%/sfc" : : "d" (x));
24
25/* Get SFC register value */
26
27#define GET_SFC(x) \
28 __asm__ __volatile__ (" movec %/sfc, %0" : "=d" (x) : );
29
30#define SET_VBR(x) \
31 __asm__ __volatile__ (" movec %0,%/vbr" : : "r" (x));
32
33#define GET_VBR(x) \
34 __asm__ __volatile__ (" movec %/vbr, %0" : "=g" (x) : );
35
36/* Set a byte using the "movs" instruction */
37
38#define SET_CONTROL_BYTE(addr,value) \
39 __asm__ __volatile__ (" movsb %0, %1@" : : "d" (value), "a" (addr));
40
41/* Get a byte using the "movs" instruction */
42
43#define GET_CONTROL_BYTE(addr,value) \
44 __asm__ __volatile__ (" movsb %1@, %0" : "=d" (value) : "a" (addr));
45
46/* Set a (long)word using the "movs" instruction */
47
48#define SET_CONTROL_WORD(addr,value) \
49 __asm__ __volatile__ (" movsl %0, %1@" : : "d" (value), "a" (addr));
50
51/* Get a (long)word using the "movs" instruction */
52
53#define GET_CONTROL_WORD(addr,value) \
54 __asm__ __volatile__ (" movsl %1@, %0" : "=d" (value) : "a" (addr));
55#endif
diff --git a/arch/m68k/include/asm/msgbuf.h b/arch/m68k/include/asm/msgbuf.h
new file mode 100644
index 000000000000..243cb798de8f
--- /dev/null
+++ b/arch/m68k/include/asm/msgbuf.h
@@ -0,0 +1,31 @@
1#ifndef _M68K_MSGBUF_H
2#define _M68K_MSGBUF_H
3
4/*
5 * The msqid64_ds structure for m68k architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct msqid64_ds {
15 struct ipc64_perm msg_perm;
16 __kernel_time_t msg_stime; /* last msgsnd time */
17 unsigned long __unused1;
18 __kernel_time_t msg_rtime; /* last msgrcv time */
19 unsigned long __unused2;
20 __kernel_time_t msg_ctime; /* last change time */
21 unsigned long __unused3;
22 unsigned long msg_cbytes; /* current number of bytes on queue */
23 unsigned long msg_qnum; /* number of messages in queue */
24 unsigned long msg_qbytes; /* max number of bytes on queue */
25 __kernel_pid_t msg_lspid; /* pid of last msgsnd */
26 __kernel_pid_t msg_lrpid; /* last receive pid */
27 unsigned long __unused4;
28 unsigned long __unused5;
29};
30
31#endif /* _M68K_MSGBUF_H */
diff --git a/arch/m68knommu/include/asm/mutex.h b/arch/m68k/include/asm/mutex.h
index 458c1f7fbc18..458c1f7fbc18 100644
--- a/arch/m68knommu/include/asm/mutex.h
+++ b/arch/m68k/include/asm/mutex.h
diff --git a/arch/m68k/include/asm/mvme147hw.h b/arch/m68k/include/asm/mvme147hw.h
new file mode 100644
index 000000000000..b81043108472
--- /dev/null
+++ b/arch/m68k/include/asm/mvme147hw.h
@@ -0,0 +1,113 @@
1#ifndef _MVME147HW_H_
2#define _MVME147HW_H_
3
4#include <asm/irq.h>
5
6typedef struct {
7 unsigned char
8 ctrl,
9 bcd_sec,
10 bcd_min,
11 bcd_hr,
12 bcd_dow,
13 bcd_dom,
14 bcd_mth,
15 bcd_year;
16} MK48T02;
17
18#define RTC_WRITE 0x80
19#define RTC_READ 0x40
20#define RTC_STOP 0x20
21
22#define m147_rtc ((MK48T02 * volatile)0xfffe07f8)
23
24
25struct pcc_regs {
26 volatile u_long dma_tadr;
27 volatile u_long dma_dadr;
28 volatile u_long dma_bcr;
29 volatile u_long dma_hr;
30 volatile u_short t1_preload;
31 volatile u_short t1_count;
32 volatile u_short t2_preload;
33 volatile u_short t2_count;
34 volatile u_char t1_int_cntrl;
35 volatile u_char t1_cntrl;
36 volatile u_char t2_int_cntrl;
37 volatile u_char t2_cntrl;
38 volatile u_char ac_fail;
39 volatile u_char watchdog;
40 volatile u_char lpt_intr;
41 volatile u_char lpt_cntrl;
42 volatile u_char dma_intr;
43 volatile u_char dma_cntrl;
44 volatile u_char bus_error;
45 volatile u_char dma_status;
46 volatile u_char abort;
47 volatile u_char ta_fnctl;
48 volatile u_char serial_cntrl;
49 volatile u_char general_cntrl;
50 volatile u_char lan_cntrl;
51 volatile u_char general_status;
52 volatile u_char scsi_interrupt;
53 volatile u_char slave;
54 volatile u_char soft1_cntrl;
55 volatile u_char int_base;
56 volatile u_char soft2_cntrl;
57 volatile u_char revision_level;
58 volatile u_char lpt_data;
59 volatile u_char lpt_status;
60 };
61
62#define m147_pcc ((struct pcc_regs * volatile)0xfffe1000)
63
64
65#define PCC_INT_ENAB 0x08
66
67#define PCC_TIMER_INT_CLR 0x80
68#define PCC_TIMER_PRELOAD 63936l
69
70#define PCC_LEVEL_ABORT 0x07
71#define PCC_LEVEL_SERIAL 0x04
72#define PCC_LEVEL_ETH 0x04
73#define PCC_LEVEL_TIMER1 0x04
74#define PCC_LEVEL_SCSI_PORT 0x04
75#define PCC_LEVEL_SCSI_DMA 0x04
76
77#define PCC_IRQ_AC_FAIL (IRQ_USER+0)
78#define PCC_IRQ_BERR (IRQ_USER+1)
79#define PCC_IRQ_ABORT (IRQ_USER+2)
80/* #define PCC_IRQ_SERIAL (IRQ_USER+3) */
81#define PCC_IRQ_PRINTER (IRQ_USER+7)
82#define PCC_IRQ_TIMER1 (IRQ_USER+8)
83#define PCC_IRQ_TIMER2 (IRQ_USER+9)
84#define PCC_IRQ_SOFTWARE1 (IRQ_USER+10)
85#define PCC_IRQ_SOFTWARE2 (IRQ_USER+11)
86
87
88#define M147_SCC_A_ADDR 0xfffe3002
89#define M147_SCC_B_ADDR 0xfffe3000
90#define M147_SCC_PCLK 5000000
91
92#define MVME147_IRQ_SCSI_PORT (IRQ_USER+0x45)
93#define MVME147_IRQ_SCSI_DMA (IRQ_USER+0x46)
94
95/* SCC interrupts, for MVME147 */
96
97#define MVME147_IRQ_TYPE_PRIO 0
98#define MVME147_IRQ_SCC_BASE (IRQ_USER+32)
99#define MVME147_IRQ_SCCB_TX (IRQ_USER+32)
100#define MVME147_IRQ_SCCB_STAT (IRQ_USER+34)
101#define MVME147_IRQ_SCCB_RX (IRQ_USER+36)
102#define MVME147_IRQ_SCCB_SPCOND (IRQ_USER+38)
103#define MVME147_IRQ_SCCA_TX (IRQ_USER+40)
104#define MVME147_IRQ_SCCA_STAT (IRQ_USER+42)
105#define MVME147_IRQ_SCCA_RX (IRQ_USER+44)
106#define MVME147_IRQ_SCCA_SPCOND (IRQ_USER+46)
107
108#define MVME147_LANCE_BASE 0xfffe1800
109#define MVME147_LANCE_IRQ (IRQ_USER+4)
110
111#define ETHERNET_ADDRESS 0xfffe0778
112
113#endif
diff --git a/arch/m68k/include/asm/mvme16xhw.h b/arch/m68k/include/asm/mvme16xhw.h
new file mode 100644
index 000000000000..6117f56653d2
--- /dev/null
+++ b/arch/m68k/include/asm/mvme16xhw.h
@@ -0,0 +1,111 @@
1#ifndef _M68K_MVME16xHW_H_
2#define _M68K_MVME16xHW_H_
3
4#include <asm/irq.h>
5
6/* Board ID data structure - pointer to this retrieved from Bug by head.S */
7
8/* Note, bytes 12 and 13 are board no in BCD (0162,0166,0167,0177,etc) */
9
10extern long mvme_bdid_ptr;
11
12typedef struct {
13 char bdid[4];
14 u_char rev, mth, day, yr;
15 u_short size, reserved;
16 u_short brdno;
17 char brdsuffix[2];
18 u_long options;
19 u_short clun, dlun, ctype, dnum;
20 u_long option2;
21} t_bdid, *p_bdid;
22
23
24typedef struct {
25 u_char ack_icr,
26 flt_icr,
27 sel_icr,
28 pe_icr,
29 bsy_icr,
30 spare1,
31 isr,
32 cr,
33 spare2,
34 spare3,
35 spare4,
36 data;
37} MVMElp, *MVMElpPtr;
38
39#define MVME_LPR_BASE 0xfff42030
40
41#define mvmelp ((*(volatile MVMElpPtr)(MVME_LPR_BASE)))
42
43typedef struct {
44 unsigned char
45 ctrl,
46 bcd_sec,
47 bcd_min,
48 bcd_hr,
49 bcd_dow,
50 bcd_dom,
51 bcd_mth,
52 bcd_year;
53} MK48T08_t, *MK48T08ptr_t;
54
55#define RTC_WRITE 0x80
56#define RTC_READ 0x40
57#define RTC_STOP 0x20
58
59#define MVME_RTC_BASE 0xfffc1ff8
60
61#define MVME_I596_BASE 0xfff46000
62
63#define MVME_SCC_A_ADDR 0xfff45005
64#define MVME_SCC_B_ADDR 0xfff45001
65#define MVME_SCC_PCLK 10000000
66
67#define MVME162_IRQ_TYPE_PRIO 0
68
69#define MVME167_IRQ_PRN (IRQ_USER+20)
70#define MVME16x_IRQ_I596 (IRQ_USER+23)
71#define MVME16x_IRQ_SCSI (IRQ_USER+21)
72#define MVME16x_IRQ_FLY (IRQ_USER+63)
73#define MVME167_IRQ_SER_ERR (IRQ_USER+28)
74#define MVME167_IRQ_SER_MODEM (IRQ_USER+29)
75#define MVME167_IRQ_SER_TX (IRQ_USER+30)
76#define MVME167_IRQ_SER_RX (IRQ_USER+31)
77#define MVME16x_IRQ_TIMER (IRQ_USER+25)
78#define MVME167_IRQ_ABORT (IRQ_USER+46)
79#define MVME162_IRQ_ABORT (IRQ_USER+30)
80
81/* SCC interrupts, for MVME162 */
82#define MVME162_IRQ_SCC_BASE (IRQ_USER+0)
83#define MVME162_IRQ_SCCB_TX (IRQ_USER+0)
84#define MVME162_IRQ_SCCB_STAT (IRQ_USER+2)
85#define MVME162_IRQ_SCCB_RX (IRQ_USER+4)
86#define MVME162_IRQ_SCCB_SPCOND (IRQ_USER+6)
87#define MVME162_IRQ_SCCA_TX (IRQ_USER+8)
88#define MVME162_IRQ_SCCA_STAT (IRQ_USER+10)
89#define MVME162_IRQ_SCCA_RX (IRQ_USER+12)
90#define MVME162_IRQ_SCCA_SPCOND (IRQ_USER+14)
91
92/* MVME162 version register */
93
94#define MVME162_VERSION_REG 0xfff4202e
95
96extern unsigned short mvme16x_config;
97
98/* Lower 8 bits must match the revision register in the MC2 chip */
99
100#define MVME16x_CONFIG_SPEED_32 0x0001
101#define MVME16x_CONFIG_NO_VMECHIP2 0x0002
102#define MVME16x_CONFIG_NO_SCSICHIP 0x0004
103#define MVME16x_CONFIG_NO_ETHERNET 0x0008
104#define MVME16x_CONFIG_GOT_FPU 0x0010
105
106#define MVME16x_CONFIG_GOT_LP 0x0100
107#define MVME16x_CONFIG_GOT_CD2401 0x0200
108#define MVME16x_CONFIG_GOT_SCCA 0x0400
109#define MVME16x_CONFIG_GOT_SCCB 0x0800
110
111#endif
diff --git a/arch/m68knommu/include/asm/nettel.h b/arch/m68k/include/asm/nettel.h
index 0299f6a2deeb..0299f6a2deeb 100644
--- a/arch/m68knommu/include/asm/nettel.h
+++ b/arch/m68k/include/asm/nettel.h
diff --git a/arch/m68k/include/asm/nubus.h b/arch/m68k/include/asm/nubus.h
new file mode 100644
index 000000000000..d6be9976f1ae
--- /dev/null
+++ b/arch/m68k/include/asm/nubus.h
@@ -0,0 +1,46 @@
1#ifndef _ASM_M68K_NUBUS_H
2#define _ASM_M68K_NUBUS_H
3
4#include <asm/raw_io.h>
5
6#define nubus_readb raw_inb
7#define nubus_readw raw_inw
8#define nubus_readl raw_inl
9
10#define nubus_writeb raw_outb
11#define nubus_writew raw_outw
12#define nubus_writel raw_outl
13
14#define nubus_memset_io(a,b,c) memset((void *)(a),(b),(c))
15#define nubus_memcpy_fromio(a,b,c) memcpy((a),(void *)(b),(c))
16#define nubus_memcpy_toio(a,b,c) memcpy((void *)(a),(b),(c))
17
18static inline void *nubus_remap_nocache_ser(unsigned long physaddr,
19 unsigned long size)
20{
21 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
22}
23
24static inline void *nubus_remap_nocache_nonser(unsigned long physaddr,
25 unsigned long size)
26{
27 return __ioremap(physaddr, size, IOMAP_NOCACHE_NONSER);
28}
29
30static inline void *nbus_remap_writethrough(unsigned long physaddr,
31 unsigned long size)
32{
33 return __ioremap(physaddr, size, IOMAP_WRITETHROUGH);
34}
35
36static inline void *nubus_remap_fullcache(unsigned long physaddr,
37 unsigned long size)
38{
39 return __ioremap(physaddr, size, IOMAP_FULL_CACHING);
40}
41
42#define nubus_unmap iounmap
43#define nubus_iounmap iounmap
44#define nubus_ioremap nubus_remap_nocache_ser
45
46#endif /* _ASM_NUBUS_H */
diff --git a/arch/m68k/include/asm/openprom.h b/arch/m68k/include/asm/openprom.h
new file mode 100644
index 000000000000..d33cdadf78e1
--- /dev/null
+++ b/arch/m68k/include/asm/openprom.h
@@ -0,0 +1,312 @@
1#ifndef __SPARC_OPENPROM_H
2#define __SPARC_OPENPROM_H
3
4/* openprom.h: Prom structures and defines for access to the OPENBOOT
5 * prom routines and data areas.
6 *
7 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
8 */
9
10
11/* Empirical constants... */
12#ifdef CONFIG_SUN3
13#define KADB_DEBUGGER_BEGVM 0x0fee0000 /* There is no kadb yet but...*/
14#define LINUX_OPPROM_BEGVM 0x0fef0000
15#define LINUX_OPPROM_ENDVM 0x0ff10000 /* I think this is right - tm */
16#else
17#define KADB_DEBUGGER_BEGVM 0xffc00000 /* Where kern debugger is in virt-mem */
18#define LINUX_OPPROM_BEGVM 0xffd00000
19#define LINUX_OPPROM_ENDVM 0xfff00000
20#define LINUX_OPPROM_MAGIC 0x10010407
21#endif
22
23#ifndef __ASSEMBLY__
24/* V0 prom device operations. */
25struct linux_dev_v0_funcs {
26 int (*v0_devopen)(char *device_str);
27 int (*v0_devclose)(int dev_desc);
28 int (*v0_rdblkdev)(int dev_desc, int num_blks, int blk_st, char *buf);
29 int (*v0_wrblkdev)(int dev_desc, int num_blks, int blk_st, char *buf);
30 int (*v0_wrnetdev)(int dev_desc, int num_bytes, char *buf);
31 int (*v0_rdnetdev)(int dev_desc, int num_bytes, char *buf);
32 int (*v0_rdchardev)(int dev_desc, int num_bytes, int dummy, char *buf);
33 int (*v0_wrchardev)(int dev_desc, int num_bytes, int dummy, char *buf);
34 int (*v0_seekdev)(int dev_desc, long logical_offst, int from);
35};
36
37/* V2 and later prom device operations. */
38struct linux_dev_v2_funcs {
39 int (*v2_inst2pkg)(int d); /* Convert ihandle to phandle */
40 char * (*v2_dumb_mem_alloc)(char *va, unsigned sz);
41 void (*v2_dumb_mem_free)(char *va, unsigned sz);
42
43 /* To map devices into virtual I/O space. */
44 char * (*v2_dumb_mmap)(char *virta, int which_io, unsigned paddr, unsigned sz);
45 void (*v2_dumb_munmap)(char *virta, unsigned size);
46
47 int (*v2_dev_open)(char *devpath);
48 void (*v2_dev_close)(int d);
49 int (*v2_dev_read)(int d, char *buf, int nbytes);
50 int (*v2_dev_write)(int d, char *buf, int nbytes);
51 int (*v2_dev_seek)(int d, int hi, int lo);
52
53 /* Never issued (multistage load support) */
54 void (*v2_wheee2)(void);
55 void (*v2_wheee3)(void);
56};
57
58struct linux_mlist_v0 {
59 struct linux_mlist_v0 *theres_more;
60 char *start_adr;
61 unsigned num_bytes;
62};
63
64struct linux_mem_v0 {
65 struct linux_mlist_v0 **v0_totphys;
66 struct linux_mlist_v0 **v0_prommap;
67 struct linux_mlist_v0 **v0_available; /* What we can use */
68};
69
70/* Arguments sent to the kernel from the boot prompt. */
71struct linux_arguments_v0 {
72 char *argv[8];
73 char args[100];
74 char boot_dev[2];
75 int boot_dev_ctrl;
76 int boot_dev_unit;
77 int dev_partition;
78 char *kernel_file_name;
79 void *aieee1; /* XXX */
80};
81
82/* V2 and up boot things. */
83struct linux_bootargs_v2 {
84 char **bootpath;
85 char **bootargs;
86 int *fd_stdin;
87 int *fd_stdout;
88};
89
90#if defined(CONFIG_SUN3) || defined(CONFIG_SUN3X)
91struct linux_romvec {
92 char *pv_initsp;
93 int (*pv_startmon)(void);
94
95 int *diagberr;
96
97 struct linux_arguments_v0 **pv_v0bootargs;
98 unsigned *pv_sun3mem;
99
100 unsigned char (*pv_getchar)(void);
101 int (*pv_putchar)(int ch);
102 int (*pv_nbgetchar)(void);
103 int (*pv_nbputchar)(int ch);
104 unsigned char *pv_echo;
105 unsigned char *pv_insource;
106 unsigned char *pv_outsink;
107
108 int (*pv_getkey)(void);
109 int (*pv_initgetkey)(void);
110 unsigned int *pv_translation;
111 unsigned char *pv_keybid;
112 int *pv_screen_x;
113 int *pv_screen_y;
114 struct keybuf *pv_keybuf;
115
116 char *pv_monid;
117
118 /*
119 * Frame buffer output and terminal emulation
120 */
121
122 int (*pv_fbwritechar)(char);
123 int *pv_fbaddr;
124 char **pv_font;
125 int (*pv_fbwritestr)(char);
126
127 void (*pv_reboot)(char *bootstr);
128
129 /*
130 * Line input and parsing
131 */
132
133 unsigned char *pv_linebuf;
134 unsigned char **pv_lineptr;
135 int *pv_linesize;
136 int (*pv_getline)(void);
137 unsigned char (*pv_getnextchar)(void);
138 unsigned char (*pv_peeknextchar)(void);
139 int *pv_fbthere;
140 int (*pv_getnum)(void);
141
142 void (*pv_printf)(const char *fmt, ...);
143 int (*pv_printhex)(void);
144
145 unsigned char *pv_leds;
146 int (*pv_setleds)(void);
147
148 /*
149 * Non-maskable interrupt (nmi) information
150 */
151
152 int (*pv_nmiaddr)(void);
153 int (*pv_abortentry)(void);
154 int *pv_nmiclock;
155
156 int *pv_fbtype;
157
158 /*
159 * Assorted other things
160 */
161
162 unsigned pv_romvers;
163 struct globram *pv_globram;
164 char *pv_kbdzscc;
165
166 int *pv_keyrinit;
167 unsigned char *pv_keyrtick;
168 unsigned *pv_memoryavail;
169 long *pv_resetaddr;
170 long *pv_resetmap;
171
172 void (*pv_halt)(void);
173 unsigned char *pv_memorybitmap;
174
175#ifdef CONFIG_SUN3
176 void (*pv_setctxt)(int ctxt, char *va, int pmeg);
177 void (*pv_vector_cmd)(void);
178 int dummy1z;
179 int dummy2z;
180 int dummy3z;
181 int dummy4z;
182#endif
183};
184#else
185/* The top level PROM vector. */
186struct linux_romvec {
187 /* Version numbers. */
188 unsigned int pv_magic_cookie;
189 unsigned int pv_romvers;
190 unsigned int pv_plugin_revision;
191 unsigned int pv_printrev;
192
193 /* Version 0 memory descriptors. */
194 struct linux_mem_v0 pv_v0mem;
195
196 /* Node operations. */
197 struct linux_nodeops *pv_nodeops;
198
199 char **pv_bootstr;
200 struct linux_dev_v0_funcs pv_v0devops;
201
202 char *pv_stdin;
203 char *pv_stdout;
204#define PROMDEV_KBD 0 /* input from keyboard */
205#define PROMDEV_SCREEN 0 /* output to screen */
206#define PROMDEV_TTYA 1 /* in/out to ttya */
207#define PROMDEV_TTYB 2 /* in/out to ttyb */
208
209 /* Blocking getchar/putchar. NOT REENTRANT! (grr) */
210 int (*pv_getchar)(void);
211 void (*pv_putchar)(int ch);
212
213 /* Non-blocking variants. */
214 int (*pv_nbgetchar)(void);
215 int (*pv_nbputchar)(int ch);
216
217 void (*pv_putstr)(char *str, int len);
218
219 /* Miscellany. */
220 void (*pv_reboot)(char *bootstr);
221 void (*pv_printf)(__const__ char *fmt, ...);
222 void (*pv_abort)(void);
223 __volatile__ int *pv_ticks;
224 void (*pv_halt)(void);
225 void (**pv_synchook)(void);
226
227 /* Evaluate a forth string, not different proto for V0 and V2->up. */
228 union {
229 void (*v0_eval)(int len, char *str);
230 void (*v2_eval)(char *str);
231 } pv_fortheval;
232
233 struct linux_arguments_v0 **pv_v0bootargs;
234
235 /* Get ether address. */
236 unsigned int (*pv_enaddr)(int d, char *enaddr);
237
238 struct linux_bootargs_v2 pv_v2bootargs;
239 struct linux_dev_v2_funcs pv_v2devops;
240
241 int filler[15];
242
243 /* This one is sun4c/sun4 only. */
244 void (*pv_setctxt)(int ctxt, char *va, int pmeg);
245
246 /* Prom version 3 Multiprocessor routines. This stuff is crazy.
247 * No joke. Calling these when there is only one cpu probably
248 * crashes the machine, have to test this. :-)
249 */
250
251 /* v3_cpustart() will start the cpu 'whichcpu' in mmu-context
252 * 'thiscontext' executing at address 'prog_counter'
253 */
254 int (*v3_cpustart)(unsigned int whichcpu, int ctxtbl_ptr,
255 int thiscontext, char *prog_counter);
256
257 /* v3_cpustop() will cause cpu 'whichcpu' to stop executing
258 * until a resume cpu call is made.
259 */
260 int (*v3_cpustop)(unsigned int whichcpu);
261
262 /* v3_cpuidle() will idle cpu 'whichcpu' until a stop or
263 * resume cpu call is made.
264 */
265 int (*v3_cpuidle)(unsigned int whichcpu);
266
267 /* v3_cpuresume() will resume processor 'whichcpu' executing
268 * starting with whatever 'pc' and 'npc' were left at the
269 * last 'idle' or 'stop' call.
270 */
271 int (*v3_cpuresume)(unsigned int whichcpu);
272};
273#endif
274
275/* Routines for traversing the prom device tree. */
276struct linux_nodeops {
277 int (*no_nextnode)(int node);
278 int (*no_child)(int node);
279 int (*no_proplen)(int node, char *name);
280 int (*no_getprop)(int node, char *name, char *val);
281 int (*no_setprop)(int node, char *name, char *val, int len);
282 char * (*no_nextprop)(int node, char *name);
283};
284
285/* More fun PROM structures for device probing. */
286#define PROMREG_MAX 16
287#define PROMVADDR_MAX 16
288#define PROMINTR_MAX 15
289
290struct linux_prom_registers {
291 int which_io; /* is this in OBIO space? */
292 char *phys_addr; /* The physical address of this register */
293 int reg_size; /* How many bytes does this register take up? */
294};
295
296struct linux_prom_irqs {
297 int pri; /* IRQ priority */
298 int vector; /* This is foobar, what does it do? */
299};
300
301/* Element of the "ranges" vector */
302struct linux_prom_ranges {
303 unsigned int ot_child_space;
304 unsigned int ot_child_base; /* Bus feels this */
305 unsigned int ot_parent_space;
306 unsigned int ot_parent_base; /* CPU looks from here */
307 unsigned int or_size;
308};
309
310#endif /* !(__ASSEMBLY__) */
311
312#endif /* !(__SPARC_OPENPROM_H) */
diff --git a/arch/m68k/include/asm/oplib.h b/arch/m68k/include/asm/oplib.h
new file mode 100644
index 000000000000..f082d03336bd
--- /dev/null
+++ b/arch/m68k/include/asm/oplib.h
@@ -0,0 +1,291 @@
1/*
2 * oplib.h: Describes the interface and available routines in the
3 * Linux Prom library.
4 *
5 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
6 */
7
8#ifndef __SPARC_OPLIB_H
9#define __SPARC_OPLIB_H
10
11#include <asm/openprom.h>
12
13/* The master romvec pointer... */
14extern struct linux_romvec *romvec;
15
16/* Enumeration to describe the prom major version we have detected. */
17enum prom_major_version {
18 PROM_V0, /* Original sun4c V0 prom */
19 PROM_V2, /* sun4c and early sun4m V2 prom */
20 PROM_V3, /* sun4m and later, up to sun4d/sun4e machines V3 */
21 PROM_P1275, /* IEEE compliant ISA based Sun PROM, only sun4u */
22};
23
24extern enum prom_major_version prom_vers;
25/* Revision, and firmware revision. */
26extern unsigned int prom_rev, prom_prev;
27
28/* Root node of the prom device tree, this stays constant after
29 * initialization is complete.
30 */
31extern int prom_root_node;
32
33/* Pointer to prom structure containing the device tree traversal
34 * and usage utility functions. Only prom-lib should use these,
35 * users use the interface defined by the library only!
36 */
37extern struct linux_nodeops *prom_nodeops;
38
39/* The functions... */
40
41/* You must call prom_init() before using any of the library services,
42 * preferably as early as possible. Pass it the romvec pointer.
43 */
44extern void prom_init(struct linux_romvec *rom_ptr);
45
46/* Boot argument acquisition, returns the boot command line string. */
47extern char *prom_getbootargs(void);
48
49/* Device utilities. */
50
51/* Map and unmap devices in IO space at virtual addresses. Note that the
52 * virtual address you pass is a request and the prom may put your mappings
53 * somewhere else, so check your return value as that is where your new
54 * mappings really are!
55 *
56 * Another note, these are only available on V2 or higher proms!
57 */
58extern char *prom_mapio(char *virt_hint, int io_space, unsigned int phys_addr, unsigned int num_bytes);
59extern void prom_unmapio(char *virt_addr, unsigned int num_bytes);
60
61/* Device operations. */
62
63/* Open the device described by the passed string. Note, that the format
64 * of the string is different on V0 vs. V2->higher proms. The caller must
65 * know what he/she is doing! Returns the device descriptor, an int.
66 */
67extern int prom_devopen(char *device_string);
68
69/* Close a previously opened device described by the passed integer
70 * descriptor.
71 */
72extern int prom_devclose(int device_handle);
73
74/* Do a seek operation on the device described by the passed integer
75 * descriptor.
76 */
77extern void prom_seek(int device_handle, unsigned int seek_hival,
78 unsigned int seek_lowval);
79
80/* Machine memory configuration routine. */
81
82/* This function returns a V0 format memory descriptor table, it has three
83 * entries. One for the total amount of physical ram on the machine, one
84 * for the amount of physical ram available, and one describing the virtual
85 * areas which are allocated by the prom. So, in a sense the physical
86 * available is a calculation of the total physical minus the physical mapped
87 * by the prom with virtual mappings.
88 *
89 * These lists are returned pre-sorted, this should make your life easier
90 * since the prom itself is way too lazy to do such nice things.
91 */
92extern struct linux_mem_v0 *prom_meminfo(void);
93
94/* Miscellaneous routines, don't really fit in any category per se. */
95
96/* Reboot the machine with the command line passed. */
97extern void prom_reboot(char *boot_command);
98
99/* Evaluate the forth string passed. */
100extern void prom_feval(char *forth_string);
101
102/* Enter the prom, with possibility of continuation with the 'go'
103 * command in newer proms.
104 */
105extern void prom_cmdline(void);
106
107/* Enter the prom, with no chance of continuation for the stand-alone
108 * which calls this.
109 */
110extern void prom_halt(void);
111
112/* Set the PROM 'sync' callback function to the passed function pointer.
113 * When the user gives the 'sync' command at the prom prompt while the
114 * kernel is still active, the prom will call this routine.
115 *
116 * XXX The arguments are different on V0 vs. V2->higher proms, grrr! XXX
117 */
118typedef void (*sync_func_t)(void);
119extern void prom_setsync(sync_func_t func_ptr);
120
121/* Acquire the IDPROM of the root node in the prom device tree. This
122 * gets passed a buffer where you would like it stuffed. The return value
123 * is the format type of this idprom or 0xff on error.
124 */
125extern unsigned char prom_get_idprom(char *idp_buffer, int idpbuf_size);
126
127/* Get the prom major version. */
128extern int prom_version(void);
129
130/* Get the prom plugin revision. */
131extern int prom_getrev(void);
132
133/* Get the prom firmware revision. */
134extern int prom_getprev(void);
135
136/* Character operations to/from the console.... */
137
138/* Non-blocking get character from console. */
139extern int prom_nbgetchar(void);
140
141/* Non-blocking put character to console. */
142extern int prom_nbputchar(char character);
143
144/* Blocking get character from console. */
145extern char prom_getchar(void);
146
147/* Blocking put character to console. */
148extern void prom_putchar(char character);
149
150/* Prom's internal printf routine, don't use in kernel/boot code. */
151void prom_printf(char *fmt, ...);
152
153/* Query for input device type */
154
155enum prom_input_device {
156 PROMDEV_IKBD, /* input from keyboard */
157 PROMDEV_ITTYA, /* input from ttya */
158 PROMDEV_ITTYB, /* input from ttyb */
159 PROMDEV_I_UNK,
160};
161
162extern enum prom_input_device prom_query_input_device(void);
163
164/* Query for output device type */
165
166enum prom_output_device {
167 PROMDEV_OSCREEN, /* to screen */
168 PROMDEV_OTTYA, /* to ttya */
169 PROMDEV_OTTYB, /* to ttyb */
170 PROMDEV_O_UNK,
171};
172
173extern enum prom_output_device prom_query_output_device(void);
174
175/* Multiprocessor operations... */
176
177/* Start the CPU with the given device tree node, context table, and context
178 * at the passed program counter.
179 */
180extern int prom_startcpu(int cpunode, struct linux_prom_registers *context_table,
181 int context, char *program_counter);
182
183/* Stop the CPU with the passed device tree node. */
184extern int prom_stopcpu(int cpunode);
185
186/* Idle the CPU with the passed device tree node. */
187extern int prom_idlecpu(int cpunode);
188
189/* Re-Start the CPU with the passed device tree node. */
190extern int prom_restartcpu(int cpunode);
191
192/* PROM memory allocation facilities... */
193
194/* Allocated at possibly the given virtual address a chunk of the
195 * indicated size.
196 */
197extern char *prom_alloc(char *virt_hint, unsigned int size);
198
199/* Free a previously allocated chunk. */
200extern void prom_free(char *virt_addr, unsigned int size);
201
202/* Sun4/sun4c specific memory-management startup hook. */
203
204/* Map the passed segment in the given context at the passed
205 * virtual address.
206 */
207extern void prom_putsegment(int context, unsigned long virt_addr,
208 int physical_segment);
209
210/* PROM device tree traversal functions... */
211
212/* Get the child node of the given node, or zero if no child exists. */
213extern int prom_getchild(int parent_node);
214
215/* Get the next sibling node of the given node, or zero if no further
216 * siblings exist.
217 */
218extern int prom_getsibling(int node);
219
220/* Get the length, at the passed node, of the given property type.
221 * Returns -1 on error (ie. no such property at this node).
222 */
223extern int prom_getproplen(int thisnode, char *property);
224
225/* Fetch the requested property using the given buffer. Returns
226 * the number of bytes the prom put into your buffer or -1 on error.
227 */
228extern int prom_getproperty(int thisnode, char *property,
229 char *prop_buffer, int propbuf_size);
230
231/* Acquire an integer property. */
232extern int prom_getint(int node, char *property);
233
234/* Acquire an integer property, with a default value. */
235extern int prom_getintdefault(int node, char *property, int defval);
236
237/* Acquire a boolean property, 0=FALSE 1=TRUE. */
238extern int prom_getbool(int node, char *prop);
239
240/* Acquire a string property, null string on error. */
241extern void prom_getstring(int node, char *prop, char *buf, int bufsize);
242
243/* Does the passed node have the given "name"? YES=1 NO=0 */
244extern int prom_nodematch(int thisnode, char *name);
245
246/* Search all siblings starting at the passed node for "name" matching
247 * the given string. Returns the node on success, zero on failure.
248 */
249extern int prom_searchsiblings(int node_start, char *name);
250
251/* Return the first property type, as a string, for the given node.
252 * Returns a null string on error.
253 */
254extern char *prom_firstprop(int node);
255
256/* Returns the next property after the passed property for the given
257 * node. Returns null string on failure.
258 */
259extern char *prom_nextprop(int node, char *prev_property);
260
261/* Returns 1 if the specified node has given property. */
262extern int prom_node_has_property(int node, char *property);
263
264/* Set the indicated property at the given node with the passed value.
265 * Returns the number of bytes of your value that the prom took.
266 */
267extern int prom_setprop(int node, char *prop_name, char *prop_value,
268 int value_size);
269
270extern int prom_pathtoinode(char *path);
271extern int prom_inst2pkg(int);
272
273/* Dorking with Bus ranges... */
274
275/* Adjust reg values with the passed ranges. */
276extern void prom_adjust_regs(struct linux_prom_registers *regp, int nregs,
277 struct linux_prom_ranges *rangep, int nranges);
278
279/* Adjust child ranges with the passed parent ranges. */
280extern void prom_adjust_ranges(struct linux_prom_ranges *cranges, int ncranges,
281 struct linux_prom_ranges *pranges, int npranges);
282
283/* Apply promlib probed OBIO ranges to registers. */
284extern void prom_apply_obio_ranges(struct linux_prom_registers *obioregs, int nregs);
285
286/* Apply ranges of any prom node (and optionally parent node as well) to registers. */
287extern void prom_apply_generic_ranges(int node, int parent,
288 struct linux_prom_registers *sbusregs, int nregs);
289
290
291#endif /* !(__SPARC_OPLIB_H) */
diff --git a/arch/m68k/include/asm/page.h b/arch/m68k/include/asm/page.h
new file mode 100644
index 000000000000..f2b4480cc98a
--- /dev/null
+++ b/arch/m68k/include/asm/page.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "page_no.h"
3#else
4#include "page_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/page_mm.h b/arch/m68k/include/asm/page_mm.h
new file mode 100644
index 000000000000..a34b8bad7847
--- /dev/null
+++ b/arch/m68k/include/asm/page_mm.h
@@ -0,0 +1,228 @@
1#ifndef _M68K_PAGE_H
2#define _M68K_PAGE_H
3
4#include <linux/const.h>
5
6/* PAGE_SHIFT determines the page size */
7#ifndef CONFIG_SUN3
8#define PAGE_SHIFT (12)
9#else
10#define PAGE_SHIFT (13)
11#endif
12#define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
13#define PAGE_MASK (~(PAGE_SIZE-1))
14
15#include <asm/setup.h>
16
17#if PAGE_SHIFT < 13
18#define THREAD_SIZE (8192)
19#else
20#define THREAD_SIZE PAGE_SIZE
21#endif
22
23#ifndef __ASSEMBLY__
24
25#include <linux/compiler.h>
26
27#include <asm/module.h>
28
29#define get_user_page(vaddr) __get_free_page(GFP_KERNEL)
30#define free_user_page(page, addr) free_page(addr)
31
32/*
33 * We don't need to check for alignment etc.
34 */
35#ifdef CPU_M68040_OR_M68060_ONLY
36static inline void copy_page(void *to, void *from)
37{
38 unsigned long tmp;
39
40 __asm__ __volatile__("1:\t"
41 ".chip 68040\n\t"
42 "move16 %1@+,%0@+\n\t"
43 "move16 %1@+,%0@+\n\t"
44 ".chip 68k\n\t"
45 "dbra %2,1b\n\t"
46 : "=a" (to), "=a" (from), "=d" (tmp)
47 : "0" (to), "1" (from) , "2" (PAGE_SIZE / 32 - 1)
48 );
49}
50
51static inline void clear_page(void *page)
52{
53 unsigned long tmp;
54 unsigned long *sp = page;
55
56 *sp++ = 0;
57 *sp++ = 0;
58 *sp++ = 0;
59 *sp++ = 0;
60
61 __asm__ __volatile__("1:\t"
62 ".chip 68040\n\t"
63 "move16 %2@+,%0@+\n\t"
64 ".chip 68k\n\t"
65 "subqw #8,%2\n\t"
66 "subqw #8,%2\n\t"
67 "dbra %1,1b\n\t"
68 : "=a" (sp), "=d" (tmp)
69 : "a" (page), "0" (sp),
70 "1" ((PAGE_SIZE - 16) / 16 - 1));
71}
72
73#else
74#define clear_page(page) memset((page), 0, PAGE_SIZE)
75#define copy_page(to,from) memcpy((to), (from), PAGE_SIZE)
76#endif
77
78#define clear_user_page(addr, vaddr, page) \
79 do { clear_page(addr); \
80 flush_dcache_page(page); \
81 } while (0)
82#define copy_user_page(to, from, vaddr, page) \
83 do { copy_page(to, from); \
84 flush_dcache_page(page); \
85 } while (0)
86
87/*
88 * These are used to make use of C type-checking..
89 */
90typedef struct { unsigned long pte; } pte_t;
91typedef struct { unsigned long pmd[16]; } pmd_t;
92typedef struct { unsigned long pgd; } pgd_t;
93typedef struct { unsigned long pgprot; } pgprot_t;
94typedef struct page *pgtable_t;
95
96#define pte_val(x) ((x).pte)
97#define pmd_val(x) ((&x)->pmd[0])
98#define pgd_val(x) ((x).pgd)
99#define pgprot_val(x) ((x).pgprot)
100
101#define __pte(x) ((pte_t) { (x) } )
102#define __pmd(x) ((pmd_t) { (x) } )
103#define __pgd(x) ((pgd_t) { (x) } )
104#define __pgprot(x) ((pgprot_t) { (x) } )
105
106#endif /* !__ASSEMBLY__ */
107
108#include <asm/page_offset.h>
109
110#define PAGE_OFFSET (PAGE_OFFSET_RAW)
111
112#ifndef __ASSEMBLY__
113
114extern unsigned long m68k_memoffset;
115
116#ifndef CONFIG_SUN3
117
118#define WANT_PAGE_VIRTUAL
119
120static inline unsigned long ___pa(void *vaddr)
121{
122 unsigned long paddr;
123 asm (
124 "1: addl #0,%0\n"
125 m68k_fixup(%c2, 1b+2)
126 : "=r" (paddr)
127 : "0" (vaddr), "i" (m68k_fixup_memoffset));
128 return paddr;
129}
130#define __pa(vaddr) ___pa((void *)(vaddr))
131static inline void *__va(unsigned long paddr)
132{
133 void *vaddr;
134 asm (
135 "1: subl #0,%0\n"
136 m68k_fixup(%c2, 1b+2)
137 : "=r" (vaddr)
138 : "0" (paddr), "i" (m68k_fixup_memoffset));
139 return vaddr;
140}
141
142#else /* !CONFIG_SUN3 */
143/* This #define is a horrible hack to suppress lots of warnings. --m */
144#define __pa(x) ___pa((unsigned long)(x))
145static inline unsigned long ___pa(unsigned long x)
146{
147 if(x == 0)
148 return 0;
149 if(x >= PAGE_OFFSET)
150 return (x-PAGE_OFFSET);
151 else
152 return (x+0x2000000);
153}
154
155static inline void *__va(unsigned long x)
156{
157 if(x == 0)
158 return (void *)0;
159
160 if(x < 0x2000000)
161 return (void *)(x+PAGE_OFFSET);
162 else
163 return (void *)(x-0x2000000);
164}
165#endif /* CONFIG_SUN3 */
166
167/*
168 * NOTE: virtual isn't really correct, actually it should be the offset into the
169 * memory node, but we have no highmem, so that works for now.
170 * TODO: implement (fast) pfn<->pgdat_idx conversion functions, this makes lots
171 * of the shifts unnecessary.
172 */
173#define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT)
174#define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT)
175
176extern int m68k_virt_to_node_shift;
177
178#ifdef CONFIG_SINGLE_MEMORY_CHUNK
179#define __virt_to_node(addr) (&pg_data_map[0])
180#else
181extern struct pglist_data *pg_data_table[];
182
183static inline __attribute_const__ int __virt_to_node_shift(void)
184{
185 int shift;
186
187 asm (
188 "1: moveq #0,%0\n"
189 m68k_fixup(%c1, 1b)
190 : "=d" (shift)
191 : "i" (m68k_fixup_vnode_shift));
192 return shift;
193}
194
195#define __virt_to_node(addr) (pg_data_table[(unsigned long)(addr) >> __virt_to_node_shift()])
196#endif
197
198#define virt_to_page(addr) ({ \
199 pfn_to_page(virt_to_pfn(addr)); \
200})
201#define page_to_virt(page) ({ \
202 pfn_to_virt(page_to_pfn(page)); \
203})
204
205#define pfn_to_page(pfn) ({ \
206 unsigned long __pfn = (pfn); \
207 struct pglist_data *pgdat; \
208 pgdat = __virt_to_node((unsigned long)pfn_to_virt(__pfn)); \
209 pgdat->node_mem_map + (__pfn - pgdat->node_start_pfn); \
210})
211#define page_to_pfn(_page) ({ \
212 struct page *__p = (_page); \
213 struct pglist_data *pgdat; \
214 pgdat = &pg_data_map[page_to_nid(__p)]; \
215 ((__p) - pgdat->node_mem_map) + pgdat->node_start_pfn; \
216})
217
218#define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
219#define pfn_valid(pfn) virt_addr_valid(pfn_to_virt(pfn))
220
221#endif /* __ASSEMBLY__ */
222
223#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
224 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
225
226#include <asm-generic/page.h>
227
228#endif /* _M68K_PAGE_H */
diff --git a/arch/m68knommu/include/asm/page.h b/arch/m68k/include/asm/page_no.h
index 3a1ede4544cb..3a1ede4544cb 100644
--- a/arch/m68knommu/include/asm/page.h
+++ b/arch/m68k/include/asm/page_no.h
diff --git a/arch/m68k/include/asm/page_offset.h b/arch/m68k/include/asm/page_offset.h
new file mode 100644
index 000000000000..66455c849fbb
--- /dev/null
+++ b/arch/m68k/include/asm/page_offset.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "page_offset_no.h"
3#else
4#include "page_offset_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/page_offset_mm.h b/arch/m68k/include/asm/page_offset_mm.h
new file mode 100644
index 000000000000..1cbdb7f30ac2
--- /dev/null
+++ b/arch/m68k/include/asm/page_offset_mm.h
@@ -0,0 +1,8 @@
1
2/* This handles the memory map.. */
3#ifndef CONFIG_SUN3
4#define PAGE_OFFSET_RAW 0x00000000
5#else
6#define PAGE_OFFSET_RAW 0x0E000000
7#endif
8
diff --git a/arch/m68knommu/include/asm/page_offset.h b/arch/m68k/include/asm/page_offset_no.h
index d4e73e0ba646..d4e73e0ba646 100644
--- a/arch/m68knommu/include/asm/page_offset.h
+++ b/arch/m68k/include/asm/page_offset_no.h
diff --git a/arch/m68k/include/asm/param.h b/arch/m68k/include/asm/param.h
new file mode 100644
index 000000000000..40d1112a4588
--- /dev/null
+++ b/arch/m68k/include/asm/param.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "param_no.h"
3#else
4#include "param_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/param_mm.h b/arch/m68k/include/asm/param_mm.h
new file mode 100644
index 000000000000..536a27888358
--- /dev/null
+++ b/arch/m68k/include/asm/param_mm.h
@@ -0,0 +1,22 @@
1#ifndef _M68K_PARAM_H
2#define _M68K_PARAM_H
3
4#ifdef __KERNEL__
5# define HZ CONFIG_HZ /* Internal kernel timer frequency */
6# define USER_HZ 100 /* .. some user interfaces are in "ticks" */
7# define CLOCKS_PER_SEC (USER_HZ) /* like times() */
8#endif
9
10#ifndef HZ
11#define HZ 100
12#endif
13
14#define EXEC_PAGESIZE 8192
15
16#ifndef NOGROUP
17#define NOGROUP (-1)
18#endif
19
20#define MAXHOSTNAMELEN 64 /* max length of hostname */
21
22#endif /* _M68K_PARAM_H */
diff --git a/arch/m68knommu/include/asm/param.h b/arch/m68k/include/asm/param_no.h
index 6044397adb64..6044397adb64 100644
--- a/arch/m68knommu/include/asm/param.h
+++ b/arch/m68k/include/asm/param_no.h
diff --git a/arch/m68k/include/asm/parport.h b/arch/m68k/include/asm/parport.h
new file mode 100644
index 000000000000..646b1872f73b
--- /dev/null
+++ b/arch/m68k/include/asm/parport.h
@@ -0,0 +1,26 @@
1/*
2 * parport.h: platform-specific PC-style parport initialisation
3 *
4 * Copyright (C) 1999, 2000 Tim Waugh <tim@cyberelk.demon.co.uk>
5 *
6 * This file should only be included by drivers/parport/parport_pc.c.
7 *
8 * RZ: for use with Q40 and other ISA machines
9 */
10
11#ifndef _ASM_M68K_PARPORT_H
12#define _ASM_M68K_PARPORT_H 1
13
14#define insl(port,buf,len) isa_insb(port,buf,(len)<<2)
15#define outsl(port,buf,len) isa_outsb(port,buf,(len)<<2)
16
17/* no dma, or IRQ autoprobing */
18static int __devinit parport_pc_find_isa_ports (int autoirq, int autodma);
19static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma)
20{
21 if (! (MACH_IS_Q40))
22 return 0; /* count=0 */
23 return parport_pc_find_isa_ports (PARPORT_IRQ_NONE, PARPORT_DMA_NONE);
24}
25
26#endif /* !(_ASM_M68K_PARPORT_H) */
diff --git a/arch/m68k/include/asm/pci.h b/arch/m68k/include/asm/pci.h
new file mode 100644
index 000000000000..dbea95373080
--- /dev/null
+++ b/arch/m68k/include/asm/pci.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "pci_no.h"
3#else
4#include "pci_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/pci_mm.h b/arch/m68k/include/asm/pci_mm.h
new file mode 100644
index 000000000000..4ad0aea48ab4
--- /dev/null
+++ b/arch/m68k/include/asm/pci_mm.h
@@ -0,0 +1,12 @@
1#ifndef _ASM_M68K_PCI_H
2#define _ASM_M68K_PCI_H
3
4#include <asm-generic/pci-dma-compat.h>
5
6/* The PCI address space does equal the physical memory
7 * address space. The networking and block device layers use
8 * this boolean for bounce buffer decisions.
9 */
10#define PCI_DMA_BUS_IS_PHYS (1)
11
12#endif /* _ASM_M68K_PCI_H */
diff --git a/arch/m68knommu/include/asm/pci.h b/arch/m68k/include/asm/pci_no.h
index a13f3cc87451..9abbc03c73ee 100644
--- a/arch/m68knommu/include/asm/pci.h
+++ b/arch/m68k/include/asm/pci_no.h
@@ -1,7 +1,7 @@
1#ifndef M68KNOMMU_PCI_H 1#ifndef M68KNOMMU_PCI_H
2#define M68KNOMMU_PCI_H 2#define M68KNOMMU_PCI_H
3 3
4#include <asm-m68k/pci.h> 4#include <asm/pci_mm.h>
5 5
6#ifdef CONFIG_COMEMPCI 6#ifdef CONFIG_COMEMPCI
7/* 7/*
diff --git a/arch/m68k/include/asm/percpu.h b/arch/m68k/include/asm/percpu.h
new file mode 100644
index 000000000000..0859d048faf5
--- /dev/null
+++ b/arch/m68k/include/asm/percpu.h
@@ -0,0 +1,6 @@
1#ifndef __ASM_M68K_PERCPU_H
2#define __ASM_M68K_PERCPU_H
3
4#include <asm-generic/percpu.h>
5
6#endif /* __ASM_M68K_PERCPU_H */
diff --git a/arch/m68k/include/asm/pgalloc.h b/arch/m68k/include/asm/pgalloc.h
new file mode 100644
index 000000000000..059cb73e78fc
--- /dev/null
+++ b/arch/m68k/include/asm/pgalloc.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "pgalloc_no.h"
3#else
4#include "pgalloc_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/pgalloc_mm.h b/arch/m68k/include/asm/pgalloc_mm.h
new file mode 100644
index 000000000000..4cb1a57ab763
--- /dev/null
+++ b/arch/m68k/include/asm/pgalloc_mm.h
@@ -0,0 +1,19 @@
1
2#ifndef M68K_PGALLOC_H
3#define M68K_PGALLOC_H
4
5#include <linux/mm.h>
6#include <linux/highmem.h>
7#include <asm/setup.h>
8#include <asm/virtconvert.h>
9
10
11#ifdef CONFIG_SUN3
12#include <asm/sun3_pgalloc.h>
13#else
14#include <asm/motorola_pgalloc.h>
15#endif
16
17extern void m68k_setup_node(int node);
18
19#endif /* M68K_PGALLOC_H */
diff --git a/arch/m68knommu/include/asm/pgalloc.h b/arch/m68k/include/asm/pgalloc_no.h
index d6352f671ec0..d6352f671ec0 100644
--- a/arch/m68knommu/include/asm/pgalloc.h
+++ b/arch/m68k/include/asm/pgalloc_no.h
diff --git a/arch/m68k/include/asm/pgtable.h b/arch/m68k/include/asm/pgtable.h
new file mode 100644
index 000000000000..ee6759eb445a
--- /dev/null
+++ b/arch/m68k/include/asm/pgtable.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "pgtable_no.h"
3#else
4#include "pgtable_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/pgtable_mm.h b/arch/m68k/include/asm/pgtable_mm.h
new file mode 100644
index 000000000000..0b604f0f192d
--- /dev/null
+++ b/arch/m68k/include/asm/pgtable_mm.h
@@ -0,0 +1,166 @@
1#ifndef _M68K_PGTABLE_H
2#define _M68K_PGTABLE_H
3
4#include <asm-generic/4level-fixup.h>
5
6#include <asm/setup.h>
7
8#ifndef __ASSEMBLY__
9#include <asm/processor.h>
10#include <linux/sched.h>
11#include <linux/threads.h>
12
13/*
14 * This file contains the functions and defines necessary to modify and use
15 * the m68k page table tree.
16 */
17
18#include <asm/virtconvert.h>
19
20/* Certain architectures need to do special things when pte's
21 * within a page table are directly modified. Thus, the following
22 * hook is made available.
23 */
24#define set_pte(pteptr, pteval) \
25 do{ \
26 *(pteptr) = (pteval); \
27 } while(0)
28#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
29
30
31/* PMD_SHIFT determines the size of the area a second-level page table can map */
32#ifdef CONFIG_SUN3
33#define PMD_SHIFT 17
34#else
35#define PMD_SHIFT 22
36#endif
37#define PMD_SIZE (1UL << PMD_SHIFT)
38#define PMD_MASK (~(PMD_SIZE-1))
39
40/* PGDIR_SHIFT determines what a third-level page table entry can map */
41#ifdef CONFIG_SUN3
42#define PGDIR_SHIFT 17
43#else
44#define PGDIR_SHIFT 25
45#endif
46#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
47#define PGDIR_MASK (~(PGDIR_SIZE-1))
48
49/*
50 * entries per page directory level: the m68k is configured as three-level,
51 * so we do have PMD level physically.
52 */
53#ifdef CONFIG_SUN3
54#define PTRS_PER_PTE 16
55#define PTRS_PER_PMD 1
56#define PTRS_PER_PGD 2048
57#else
58#define PTRS_PER_PTE 1024
59#define PTRS_PER_PMD 8
60#define PTRS_PER_PGD 128
61#endif
62#define USER_PTRS_PER_PGD (TASK_SIZE/PGDIR_SIZE)
63#define FIRST_USER_ADDRESS 0
64
65/* Virtual address region for use by kernel_map() */
66#ifdef CONFIG_SUN3
67#define KMAP_START 0x0DC00000
68#define KMAP_END 0x0E000000
69#else
70#define KMAP_START 0xd0000000
71#define KMAP_END 0xf0000000
72#endif
73
74#ifndef CONFIG_SUN3
75/* Just any arbitrary offset to the start of the vmalloc VM area: the
76 * current 8MB value just means that there will be a 8MB "hole" after the
77 * physical memory until the kernel virtual memory starts. That means that
78 * any out-of-bounds memory accesses will hopefully be caught.
79 * The vmalloc() routines leaves a hole of 4kB between each vmalloced
80 * area for the same reason. ;)
81 */
82#define VMALLOC_OFFSET (8*1024*1024)
83#define VMALLOC_START (((unsigned long) high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))
84#define VMALLOC_END KMAP_START
85#else
86extern unsigned long vmalloc_end;
87#define VMALLOC_START 0x0f800000
88#define VMALLOC_END vmalloc_end
89#endif /* CONFIG_SUN3 */
90
91/* zero page used for uninitialized stuff */
92extern void *empty_zero_page;
93
94/*
95 * ZERO_PAGE is a global shared page that is always zero: used
96 * for zero-mapped memory areas etc..
97 */
98#define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
99
100/* number of bits that fit into a memory pointer */
101#define BITS_PER_PTR (8*sizeof(unsigned long))
102
103/* to align the pointer to a pointer address */
104#define PTR_MASK (~(sizeof(void*)-1))
105
106/* sizeof(void*)==1<<SIZEOF_PTR_LOG2 */
107/* 64-bit machines, beware! SRB. */
108#define SIZEOF_PTR_LOG2 2
109
110extern void kernel_set_cachemode(void *addr, unsigned long size, int cmode);
111
112/*
113 * The m68k doesn't have any external MMU info: the kernel page
114 * tables contain all the necessary information. The Sun3 does, but
115 * they are updated on demand.
116 */
117static inline void update_mmu_cache(struct vm_area_struct *vma,
118 unsigned long address, pte_t pte)
119{
120}
121
122#endif /* !__ASSEMBLY__ */
123
124#define kern_addr_valid(addr) (1)
125
126#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
127 remap_pfn_range(vma, vaddr, pfn, size, prot)
128
129/* MMU-specific headers */
130
131#ifdef CONFIG_SUN3
132#include <asm/sun3_pgtable.h>
133#else
134#include <asm/motorola_pgtable.h>
135#endif
136
137#ifndef __ASSEMBLY__
138#include <asm-generic/pgtable.h>
139
140/*
141 * Macro to mark a page protection value as "uncacheable".
142 */
143#ifdef SUN3_PAGE_NOCACHE
144# define __SUN3_PAGE_NOCACHE SUN3_PAGE_NOCACHE
145#else
146# define __SUN3_PAGE_NOCACHE 0
147#endif
148#define pgprot_noncached(prot) \
149 (MMU_IS_SUN3 \
150 ? (__pgprot(pgprot_val(prot) | __SUN3_PAGE_NOCACHE)) \
151 : ((MMU_IS_851 || MMU_IS_030) \
152 ? (__pgprot(pgprot_val(prot) | _PAGE_NOCACHE030)) \
153 : (MMU_IS_040 || MMU_IS_060) \
154 ? (__pgprot((pgprot_val(prot) & _CACHEMASK040) | _PAGE_NOCACHE_S)) \
155 : (prot)))
156
157#endif /* !__ASSEMBLY__ */
158
159/*
160 * No page table caches to initialise
161 */
162#define pgtable_cache_init() do { } while (0)
163
164#define check_pgt_cache() do { } while (0)
165
166#endif /* _M68K_PGTABLE_H */
diff --git a/arch/m68knommu/include/asm/pgtable.h b/arch/m68k/include/asm/pgtable_no.h
index 46251016e821..46251016e821 100644
--- a/arch/m68knommu/include/asm/pgtable.h
+++ b/arch/m68k/include/asm/pgtable_no.h
diff --git a/arch/m68k/include/asm/poll.h b/arch/m68k/include/asm/poll.h
new file mode 100644
index 000000000000..f080fcdb61bf
--- /dev/null
+++ b/arch/m68k/include/asm/poll.h
@@ -0,0 +1,9 @@
1#ifndef __m68k_POLL_H
2#define __m68k_POLL_H
3
4#define POLLWRNORM POLLOUT
5#define POLLWRBAND 256
6
7#include <asm-generic/poll.h>
8
9#endif
diff --git a/arch/m68k/include/asm/posix_types.h b/arch/m68k/include/asm/posix_types.h
new file mode 100644
index 000000000000..63cdcc142d93
--- /dev/null
+++ b/arch/m68k/include/asm/posix_types.h
@@ -0,0 +1,61 @@
1#ifndef __ARCH_M68K_POSIX_TYPES_H
2#define __ARCH_M68K_POSIX_TYPES_H
3
4/*
5 * This file is generally used by user-level software, so you need to
6 * be a little careful about namespace pollution etc. Also, we cannot
7 * assume GCC is being used.
8 */
9
10typedef unsigned long __kernel_ino_t;
11typedef unsigned short __kernel_mode_t;
12typedef unsigned short __kernel_nlink_t;
13typedef long __kernel_off_t;
14typedef int __kernel_pid_t;
15typedef unsigned short __kernel_ipc_pid_t;
16typedef unsigned short __kernel_uid_t;
17typedef unsigned short __kernel_gid_t;
18typedef unsigned int __kernel_size_t;
19typedef int __kernel_ssize_t;
20typedef int __kernel_ptrdiff_t;
21typedef long __kernel_time_t;
22typedef long __kernel_suseconds_t;
23typedef long __kernel_clock_t;
24typedef int __kernel_timer_t;
25typedef int __kernel_clockid_t;
26typedef int __kernel_daddr_t;
27typedef char * __kernel_caddr_t;
28typedef unsigned short __kernel_uid16_t;
29typedef unsigned short __kernel_gid16_t;
30typedef unsigned int __kernel_uid32_t;
31typedef unsigned int __kernel_gid32_t;
32
33typedef unsigned short __kernel_old_uid_t;
34typedef unsigned short __kernel_old_gid_t;
35typedef unsigned short __kernel_old_dev_t;
36
37#ifdef __GNUC__
38typedef long long __kernel_loff_t;
39#endif
40
41typedef struct {
42 int val[2];
43} __kernel_fsid_t;
44
45#if defined(__KERNEL__)
46
47#undef __FD_SET
48#define __FD_SET(d, set) ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
49
50#undef __FD_CLR
51#define __FD_CLR(d, set) ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
52
53#undef __FD_ISSET
54#define __FD_ISSET(d, set) ((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
55
56#undef __FD_ZERO
57#define __FD_ZERO(fdsetp) (memset (fdsetp, 0, sizeof(*(fd_set *)fdsetp)))
58
59#endif /* defined(__KERNEL__) */
60
61#endif
diff --git a/arch/m68k/include/asm/processor.h b/arch/m68k/include/asm/processor.h
new file mode 100644
index 000000000000..fc3f2c22f2b8
--- /dev/null
+++ b/arch/m68k/include/asm/processor.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "processor_no.h"
3#else
4#include "processor_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/processor_mm.h b/arch/m68k/include/asm/processor_mm.h
new file mode 100644
index 000000000000..1f61ef53f0e0
--- /dev/null
+++ b/arch/m68k/include/asm/processor_mm.h
@@ -0,0 +1,130 @@
1/*
2 * include/asm-m68k/processor.h
3 *
4 * Copyright (C) 1995 Hamish Macdonald
5 */
6
7#ifndef __ASM_M68K_PROCESSOR_H
8#define __ASM_M68K_PROCESSOR_H
9
10/*
11 * Default implementation of macro that returns current
12 * instruction pointer ("program counter").
13 */
14#define current_text_addr() ({ __label__ _l; _l: &&_l;})
15
16#include <linux/thread_info.h>
17#include <asm/segment.h>
18#include <asm/fpu.h>
19#include <asm/ptrace.h>
20
21static inline unsigned long rdusp(void)
22{
23 unsigned long usp;
24
25 __asm__ __volatile__("move %/usp,%0" : "=a" (usp));
26 return usp;
27}
28
29static inline void wrusp(unsigned long usp)
30{
31 __asm__ __volatile__("move %0,%/usp" : : "a" (usp));
32}
33
34/*
35 * User space process size: 3.75GB. This is hardcoded into a few places,
36 * so don't change it unless you know what you are doing.
37 */
38#ifndef CONFIG_SUN3
39#define TASK_SIZE (0xF0000000UL)
40#else
41#define TASK_SIZE (0x0E000000UL)
42#endif
43
44#ifdef __KERNEL__
45#define STACK_TOP TASK_SIZE
46#define STACK_TOP_MAX STACK_TOP
47#endif
48
49/* This decides where the kernel will search for a free chunk of vm
50 * space during mmap's.
51 */
52#ifndef CONFIG_SUN3
53#define TASK_UNMAPPED_BASE 0xC0000000UL
54#else
55#define TASK_UNMAPPED_BASE 0x0A000000UL
56#endif
57#define TASK_UNMAPPED_ALIGN(addr, off) PAGE_ALIGN(addr)
58
59struct thread_struct {
60 unsigned long ksp; /* kernel stack pointer */
61 unsigned long usp; /* user stack pointer */
62 unsigned short sr; /* saved status register */
63 unsigned short fs; /* saved fs (sfc, dfc) */
64 unsigned long crp[2]; /* cpu root pointer */
65 unsigned long esp0; /* points to SR of stack frame */
66 unsigned long faddr; /* info about last fault */
67 int signo, code;
68 unsigned long fp[8*3];
69 unsigned long fpcntl[3]; /* fp control regs */
70 unsigned char fpstate[FPSTATESIZE]; /* floating point state */
71 struct thread_info info;
72};
73
74#define INIT_THREAD { \
75 .ksp = sizeof(init_stack) + (unsigned long) init_stack, \
76 .sr = PS_S, \
77 .fs = __KERNEL_DS, \
78 .info = INIT_THREAD_INFO(init_task), \
79}
80
81/*
82 * Do necessary setup to start up a newly executed thread.
83 */
84static inline void start_thread(struct pt_regs * regs, unsigned long pc,
85 unsigned long usp)
86{
87 /* reads from user space */
88 set_fs(USER_DS);
89
90 regs->pc = pc;
91 regs->sr &= ~0x2000;
92 wrusp(usp);
93}
94
95/* Forward declaration, a strange C thing */
96struct task_struct;
97
98/* Free all resources held by a thread. */
99static inline void release_thread(struct task_struct *dead_task)
100{
101}
102
103/* Prepare to copy thread state - unlazy all lazy status */
104#define prepare_to_copy(tsk) do { } while (0)
105
106extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
107
108/*
109 * Free current thread data structures etc..
110 */
111static inline void exit_thread(void)
112{
113}
114
115extern unsigned long thread_saved_pc(struct task_struct *tsk);
116
117unsigned long get_wchan(struct task_struct *p);
118
119#define KSTK_EIP(tsk) \
120 ({ \
121 unsigned long eip = 0; \
122 if ((tsk)->thread.esp0 > PAGE_SIZE && \
123 (virt_addr_valid((tsk)->thread.esp0))) \
124 eip = ((struct pt_regs *) (tsk)->thread.esp0)->pc; \
125 eip; })
126#define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->thread.usp)
127
128#define cpu_relax() barrier()
129
130#endif
diff --git a/arch/m68knommu/include/asm/processor.h b/arch/m68k/include/asm/processor_no.h
index 91cba18acdd3..91cba18acdd3 100644
--- a/arch/m68knommu/include/asm/processor.h
+++ b/arch/m68k/include/asm/processor_no.h
diff --git a/arch/m68k/include/asm/ptrace.h b/arch/m68k/include/asm/ptrace.h
new file mode 100644
index 000000000000..e83cd2f66101
--- /dev/null
+++ b/arch/m68k/include/asm/ptrace.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "ptrace_no.h"
3#else
4#include "ptrace_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/ptrace_mm.h b/arch/m68k/include/asm/ptrace_mm.h
new file mode 100644
index 000000000000..57e763d79bf4
--- /dev/null
+++ b/arch/m68k/include/asm/ptrace_mm.h
@@ -0,0 +1,80 @@
1#ifndef _M68K_PTRACE_H
2#define _M68K_PTRACE_H
3
4#define PT_D1 0
5#define PT_D2 1
6#define PT_D3 2
7#define PT_D4 3
8#define PT_D5 4
9#define PT_D6 5
10#define PT_D7 6
11#define PT_A0 7
12#define PT_A1 8
13#define PT_A2 9
14#define PT_A3 10
15#define PT_A4 11
16#define PT_A5 12
17#define PT_A6 13
18#define PT_D0 14
19#define PT_USP 15
20#define PT_ORIG_D0 16
21#define PT_SR 17
22#define PT_PC 18
23
24#ifndef __ASSEMBLY__
25
26/* this struct defines the way the registers are stored on the
27 stack during a system call. */
28
29struct pt_regs {
30 long d1;
31 long d2;
32 long d3;
33 long d4;
34 long d5;
35 long a0;
36 long a1;
37 long a2;
38 long d0;
39 long orig_d0;
40 long stkadj;
41 unsigned short sr;
42 unsigned long pc;
43 unsigned format : 4; /* frame format specifier */
44 unsigned vector : 12; /* vector offset */
45};
46
47/*
48 * This is the extended stack used by signal handlers and the context
49 * switcher: it's pushed after the normal "struct pt_regs".
50 */
51struct switch_stack {
52 unsigned long d6;
53 unsigned long d7;
54 unsigned long a3;
55 unsigned long a4;
56 unsigned long a5;
57 unsigned long a6;
58 unsigned long retpc;
59};
60
61/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
62#define PTRACE_GETREGS 12
63#define PTRACE_SETREGS 13
64#define PTRACE_GETFPREGS 14
65#define PTRACE_SETFPREGS 15
66
67#ifdef __KERNEL__
68
69#ifndef PS_S
70#define PS_S (0x2000)
71#define PS_M (0x1000)
72#endif
73
74#define user_mode(regs) (!((regs)->sr & PS_S))
75#define instruction_pointer(regs) ((regs)->pc)
76#define profile_pc(regs) instruction_pointer(regs)
77extern void show_regs(struct pt_regs *);
78#endif /* __KERNEL__ */
79#endif /* __ASSEMBLY__ */
80#endif /* _M68K_PTRACE_H */
diff --git a/arch/m68knommu/include/asm/ptrace.h b/arch/m68k/include/asm/ptrace_no.h
index 8c9194b98548..8c9194b98548 100644
--- a/arch/m68knommu/include/asm/ptrace.h
+++ b/arch/m68k/include/asm/ptrace_no.h
diff --git a/arch/m68k/include/asm/q40_master.h b/arch/m68k/include/asm/q40_master.h
new file mode 100644
index 000000000000..3907a09d4fca
--- /dev/null
+++ b/arch/m68k/include/asm/q40_master.h
@@ -0,0 +1,69 @@
1/*
2 * Q40 master Chip Control
3 * RTC stuff merged for compactnes..
4*/
5
6#ifndef _Q40_MASTER_H
7#define _Q40_MASTER_H
8
9#include <asm/raw_io.h>
10
11
12#define q40_master_addr 0xff000000
13
14#define IIRQ_REG 0x0 /* internal IRQ reg */
15#define EIRQ_REG 0x4 /* external ... */
16#define KEYCODE_REG 0x1c /* value of received scancode */
17#define DISPLAY_CONTROL_REG 0x18
18#define FRAME_CLEAR_REG 0x24
19#define LED_REG 0x30
20
21#define Q40_LED_ON() master_outb(1,LED_REG)
22#define Q40_LED_OFF() master_outb(0,LED_REG)
23
24#define INTERRUPT_REG IIRQ_REG /* "native" ints */
25#define KEY_IRQ_ENABLE_REG 0x08 /**/
26#define KEYBOARD_UNLOCK_REG 0x20 /* clear kb int */
27
28#define SAMPLE_ENABLE_REG 0x14 /* generate SAMPLE ints */
29#define SAMPLE_RATE_REG 0x2c
30#define SAMPLE_CLEAR_REG 0x28
31#define SAMPLE_LOW 0x00
32#define SAMPLE_HIGH 0x01
33
34#define FRAME_RATE_REG 0x38 /* generate FRAME ints at 200 HZ rate */
35
36#if 0
37#define SER_ENABLE_REG 0x0c /* allow serial ints to be generated */
38#endif
39#define EXT_ENABLE_REG 0x10 /* ... rest of the ISA ints ... */
40
41
42#define master_inb(_reg_) in_8((unsigned char *)q40_master_addr+_reg_)
43#define master_outb(_b_,_reg_) out_8((unsigned char *)q40_master_addr+_reg_,_b_)
44
45/* RTC defines */
46
47#define Q40_RTC_BASE (0xff021ffc)
48
49#define Q40_RTC_YEAR (*(volatile unsigned char *)(Q40_RTC_BASE+0))
50#define Q40_RTC_MNTH (*(volatile unsigned char *)(Q40_RTC_BASE-4))
51#define Q40_RTC_DATE (*(volatile unsigned char *)(Q40_RTC_BASE-8))
52#define Q40_RTC_DOW (*(volatile unsigned char *)(Q40_RTC_BASE-12))
53#define Q40_RTC_HOUR (*(volatile unsigned char *)(Q40_RTC_BASE-16))
54#define Q40_RTC_MINS (*(volatile unsigned char *)(Q40_RTC_BASE-20))
55#define Q40_RTC_SECS (*(volatile unsigned char *)(Q40_RTC_BASE-24))
56#define Q40_RTC_CTRL (*(volatile unsigned char *)(Q40_RTC_BASE-28))
57
58/* some control bits */
59#define Q40_RTC_READ 64 /* prepare for reading */
60#define Q40_RTC_WRITE 128
61
62/* define some Q40 specific ints */
63#include "q40ints.h"
64
65/* misc defs */
66#define DAC_LEFT ((unsigned char *)0xff008000)
67#define DAC_RIGHT ((unsigned char *)0xff008004)
68
69#endif /* _Q40_MASTER_H */
diff --git a/arch/m68k/include/asm/q40ints.h b/arch/m68k/include/asm/q40ints.h
new file mode 100644
index 000000000000..3d970afb708f
--- /dev/null
+++ b/arch/m68k/include/asm/q40ints.h
@@ -0,0 +1,29 @@
1/*
2 * contains some Q40 related interrupt definitions
3 */
4
5#define Q40_IRQ_MAX (34)
6
7#define Q40_IRQ_SAMPLE (34)
8#define Q40_IRQ_KEYBOARD (32)
9#define Q40_IRQ_FRAME (33)
10
11
12/* masks for interrupt regiosters*/
13/* internal, IIRQ_REG */
14#define Q40_IRQ_KEYB_MASK (2)
15#define Q40_IRQ_SER_MASK (1<<2)
16#define Q40_IRQ_FRAME_MASK (1<<3)
17#define Q40_IRQ_EXT_MASK (1<<4) /* is a EIRQ */
18/* eirq, EIRQ_REG */
19#define Q40_IRQ3_MASK (1)
20#define Q40_IRQ4_MASK (1<<1)
21#define Q40_IRQ5_MASK (1<<2)
22#define Q40_IRQ6_MASK (1<<3)
23#define Q40_IRQ7_MASK (1<<4)
24#define Q40_IRQ10_MASK (1<<5)
25#define Q40_IRQ14_MASK (1<<6)
26#define Q40_IRQ15_MASK (1<<7)
27
28extern unsigned long q40_probe_irq_on (void);
29extern int q40_probe_irq_off (unsigned long irqs);
diff --git a/arch/m68knommu/include/asm/quicc_simple.h b/arch/m68k/include/asm/quicc_simple.h
index c3636932d4bc..c3636932d4bc 100644
--- a/arch/m68knommu/include/asm/quicc_simple.h
+++ b/arch/m68k/include/asm/quicc_simple.h
diff --git a/arch/m68k/include/asm/raw_io.h b/arch/m68k/include/asm/raw_io.h
new file mode 100644
index 000000000000..d9eb9834ccc8
--- /dev/null
+++ b/arch/m68k/include/asm/raw_io.h
@@ -0,0 +1,347 @@
1/*
2 * linux/include/asm-m68k/raw_io.h
3 *
4 * 10/20/00 RZ: - created from bits of io.h and ide.h to cleanup namespace
5 *
6 */
7
8#ifndef _RAW_IO_H
9#define _RAW_IO_H
10
11#ifdef __KERNEL__
12
13#include <asm/types.h>
14
15
16/* Values for nocacheflag and cmode */
17#define IOMAP_FULL_CACHING 0
18#define IOMAP_NOCACHE_SER 1
19#define IOMAP_NOCACHE_NONSER 2
20#define IOMAP_WRITETHROUGH 3
21
22extern void iounmap(void __iomem *addr);
23
24extern void __iomem *__ioremap(unsigned long physaddr, unsigned long size,
25 int cacheflag);
26extern void __iounmap(void *addr, unsigned long size);
27
28
29/* ++roman: The assignments to temp. vars avoid that gcc sometimes generates
30 * two accesses to memory, which may be undesirable for some devices.
31 */
32#define in_8(addr) \
33 ({ u8 __v = (*(__force volatile u8 *) (addr)); __v; })
34#define in_be16(addr) \
35 ({ u16 __v = (*(__force volatile u16 *) (addr)); __v; })
36#define in_be32(addr) \
37 ({ u32 __v = (*(__force volatile u32 *) (addr)); __v; })
38#define in_le16(addr) \
39 ({ u16 __v = le16_to_cpu(*(__force volatile __le16 *) (addr)); __v; })
40#define in_le32(addr) \
41 ({ u32 __v = le32_to_cpu(*(__force volatile __le32 *) (addr)); __v; })
42
43#define out_8(addr,b) (void)((*(__force volatile u8 *) (addr)) = (b))
44#define out_be16(addr,w) (void)((*(__force volatile u16 *) (addr)) = (w))
45#define out_be32(addr,l) (void)((*(__force volatile u32 *) (addr)) = (l))
46#define out_le16(addr,w) (void)((*(__force volatile __le16 *) (addr)) = cpu_to_le16(w))
47#define out_le32(addr,l) (void)((*(__force volatile __le32 *) (addr)) = cpu_to_le32(l))
48
49#define raw_inb in_8
50#define raw_inw in_be16
51#define raw_inl in_be32
52#define __raw_readb in_8
53#define __raw_readw in_be16
54#define __raw_readl in_be32
55
56#define raw_outb(val,port) out_8((port),(val))
57#define raw_outw(val,port) out_be16((port),(val))
58#define raw_outl(val,port) out_be32((port),(val))
59#define __raw_writeb(val,addr) out_8((addr),(val))
60#define __raw_writew(val,addr) out_be16((addr),(val))
61#define __raw_writel(val,addr) out_be32((addr),(val))
62
63static inline void raw_insb(volatile u8 __iomem *port, u8 *buf, unsigned int len)
64{
65 unsigned int i;
66
67 for (i = 0; i < len; i++)
68 *buf++ = in_8(port);
69}
70
71static inline void raw_outsb(volatile u8 __iomem *port, const u8 *buf,
72 unsigned int len)
73{
74 unsigned int i;
75
76 for (i = 0; i < len; i++)
77 out_8(port, *buf++);
78}
79
80static inline void raw_insw(volatile u16 __iomem *port, u16 *buf, unsigned int nr)
81{
82 unsigned int tmp;
83
84 if (nr & 15) {
85 tmp = (nr & 15) - 1;
86 asm volatile (
87 "1: movew %2@,%0@+; dbra %1,1b"
88 : "=a" (buf), "=d" (tmp)
89 : "a" (port), "0" (buf),
90 "1" (tmp));
91 }
92 if (nr >> 4) {
93 tmp = (nr >> 4) - 1;
94 asm volatile (
95 "1: "
96 "movew %2@,%0@+; "
97 "movew %2@,%0@+; "
98 "movew %2@,%0@+; "
99 "movew %2@,%0@+; "
100 "movew %2@,%0@+; "
101 "movew %2@,%0@+; "
102 "movew %2@,%0@+; "
103 "movew %2@,%0@+; "
104 "movew %2@,%0@+; "
105 "movew %2@,%0@+; "
106 "movew %2@,%0@+; "
107 "movew %2@,%0@+; "
108 "movew %2@,%0@+; "
109 "movew %2@,%0@+; "
110 "movew %2@,%0@+; "
111 "movew %2@,%0@+; "
112 "dbra %1,1b"
113 : "=a" (buf), "=d" (tmp)
114 : "a" (port), "0" (buf),
115 "1" (tmp));
116 }
117}
118
119static inline void raw_outsw(volatile u16 __iomem *port, const u16 *buf,
120 unsigned int nr)
121{
122 unsigned int tmp;
123
124 if (nr & 15) {
125 tmp = (nr & 15) - 1;
126 asm volatile (
127 "1: movew %0@+,%2@; dbra %1,1b"
128 : "=a" (buf), "=d" (tmp)
129 : "a" (port), "0" (buf),
130 "1" (tmp));
131 }
132 if (nr >> 4) {
133 tmp = (nr >> 4) - 1;
134 asm volatile (
135 "1: "
136 "movew %0@+,%2@; "
137 "movew %0@+,%2@; "
138 "movew %0@+,%2@; "
139 "movew %0@+,%2@; "
140 "movew %0@+,%2@; "
141 "movew %0@+,%2@; "
142 "movew %0@+,%2@; "
143 "movew %0@+,%2@; "
144 "movew %0@+,%2@; "
145 "movew %0@+,%2@; "
146 "movew %0@+,%2@; "
147 "movew %0@+,%2@; "
148 "movew %0@+,%2@; "
149 "movew %0@+,%2@; "
150 "movew %0@+,%2@; "
151 "movew %0@+,%2@; "
152 "dbra %1,1b"
153 : "=a" (buf), "=d" (tmp)
154 : "a" (port), "0" (buf),
155 "1" (tmp));
156 }
157}
158
159static inline void raw_insl(volatile u32 __iomem *port, u32 *buf, unsigned int nr)
160{
161 unsigned int tmp;
162
163 if (nr & 15) {
164 tmp = (nr & 15) - 1;
165 asm volatile (
166 "1: movel %2@,%0@+; dbra %1,1b"
167 : "=a" (buf), "=d" (tmp)
168 : "a" (port), "0" (buf),
169 "1" (tmp));
170 }
171 if (nr >> 4) {
172 tmp = (nr >> 4) - 1;
173 asm volatile (
174 "1: "
175 "movel %2@,%0@+; "
176 "movel %2@,%0@+; "
177 "movel %2@,%0@+; "
178 "movel %2@,%0@+; "
179 "movel %2@,%0@+; "
180 "movel %2@,%0@+; "
181 "movel %2@,%0@+; "
182 "movel %2@,%0@+; "
183 "movel %2@,%0@+; "
184 "movel %2@,%0@+; "
185 "movel %2@,%0@+; "
186 "movel %2@,%0@+; "
187 "movel %2@,%0@+; "
188 "movel %2@,%0@+; "
189 "movel %2@,%0@+; "
190 "movel %2@,%0@+; "
191 "dbra %1,1b"
192 : "=a" (buf), "=d" (tmp)
193 : "a" (port), "0" (buf),
194 "1" (tmp));
195 }
196}
197
198static inline void raw_outsl(volatile u32 __iomem *port, const u32 *buf,
199 unsigned int nr)
200{
201 unsigned int tmp;
202
203 if (nr & 15) {
204 tmp = (nr & 15) - 1;
205 asm volatile (
206 "1: movel %0@+,%2@; dbra %1,1b"
207 : "=a" (buf), "=d" (tmp)
208 : "a" (port), "0" (buf),
209 "1" (tmp));
210 }
211 if (nr >> 4) {
212 tmp = (nr >> 4) - 1;
213 asm volatile (
214 "1: "
215 "movel %0@+,%2@; "
216 "movel %0@+,%2@; "
217 "movel %0@+,%2@; "
218 "movel %0@+,%2@; "
219 "movel %0@+,%2@; "
220 "movel %0@+,%2@; "
221 "movel %0@+,%2@; "
222 "movel %0@+,%2@; "
223 "movel %0@+,%2@; "
224 "movel %0@+,%2@; "
225 "movel %0@+,%2@; "
226 "movel %0@+,%2@; "
227 "movel %0@+,%2@; "
228 "movel %0@+,%2@; "
229 "movel %0@+,%2@; "
230 "movel %0@+,%2@; "
231 "dbra %1,1b"
232 : "=a" (buf), "=d" (tmp)
233 : "a" (port), "0" (buf),
234 "1" (tmp));
235 }
236}
237
238
239static inline void raw_insw_swapw(volatile u16 __iomem *port, u16 *buf,
240 unsigned int nr)
241{
242 if ((nr) % 8)
243 __asm__ __volatile__
244 ("\tmovel %0,%/a0\n\t"
245 "movel %1,%/a1\n\t"
246 "movel %2,%/d6\n\t"
247 "subql #1,%/d6\n"
248 "1:\tmovew %/a0@,%/d0\n\t"
249 "rolw #8,%/d0\n\t"
250 "movew %/d0,%/a1@+\n\t"
251 "dbra %/d6,1b"
252 :
253 : "g" (port), "g" (buf), "g" (nr)
254 : "d0", "a0", "a1", "d6");
255 else
256 __asm__ __volatile__
257 ("movel %0,%/a0\n\t"
258 "movel %1,%/a1\n\t"
259 "movel %2,%/d6\n\t"
260 "lsrl #3,%/d6\n\t"
261 "subql #1,%/d6\n"
262 "1:\tmovew %/a0@,%/d0\n\t"
263 "rolw #8,%/d0\n\t"
264 "movew %/d0,%/a1@+\n\t"
265 "movew %/a0@,%/d0\n\t"
266 "rolw #8,%/d0\n\t"
267 "movew %/d0,%/a1@+\n\t"
268 "movew %/a0@,%/d0\n\t"
269 "rolw #8,%/d0\n\t"
270 "movew %/d0,%/a1@+\n\t"
271 "movew %/a0@,%/d0\n\t"
272 "rolw #8,%/d0\n\t"
273 "movew %/d0,%/a1@+\n\t"
274 "movew %/a0@,%/d0\n\t"
275 "rolw #8,%/d0\n\t"
276 "movew %/d0,%/a1@+\n\t"
277 "movew %/a0@,%/d0\n\t"
278 "rolw #8,%/d0\n\t"
279 "movew %/d0,%/a1@+\n\t"
280 "movew %/a0@,%/d0\n\t"
281 "rolw #8,%/d0\n\t"
282 "movew %/d0,%/a1@+\n\t"
283 "movew %/a0@,%/d0\n\t"
284 "rolw #8,%/d0\n\t"
285 "movew %/d0,%/a1@+\n\t"
286 "dbra %/d6,1b"
287 :
288 : "g" (port), "g" (buf), "g" (nr)
289 : "d0", "a0", "a1", "d6");
290}
291
292static inline void raw_outsw_swapw(volatile u16 __iomem *port, const u16 *buf,
293 unsigned int nr)
294{
295 if ((nr) % 8)
296 __asm__ __volatile__
297 ("movel %0,%/a0\n\t"
298 "movel %1,%/a1\n\t"
299 "movel %2,%/d6\n\t"
300 "subql #1,%/d6\n"
301 "1:\tmovew %/a1@+,%/d0\n\t"
302 "rolw #8,%/d0\n\t"
303 "movew %/d0,%/a0@\n\t"
304 "dbra %/d6,1b"
305 :
306 : "g" (port), "g" (buf), "g" (nr)
307 : "d0", "a0", "a1", "d6");
308 else
309 __asm__ __volatile__
310 ("movel %0,%/a0\n\t"
311 "movel %1,%/a1\n\t"
312 "movel %2,%/d6\n\t"
313 "lsrl #3,%/d6\n\t"
314 "subql #1,%/d6\n"
315 "1:\tmovew %/a1@+,%/d0\n\t"
316 "rolw #8,%/d0\n\t"
317 "movew %/d0,%/a0@\n\t"
318 "movew %/a1@+,%/d0\n\t"
319 "rolw #8,%/d0\n\t"
320 "movew %/d0,%/a0@\n\t"
321 "movew %/a1@+,%/d0\n\t"
322 "rolw #8,%/d0\n\t"
323 "movew %/d0,%/a0@\n\t"
324 "movew %/a1@+,%/d0\n\t"
325 "rolw #8,%/d0\n\t"
326 "movew %/d0,%/a0@\n\t"
327 "movew %/a1@+,%/d0\n\t"
328 "rolw #8,%/d0\n\t"
329 "movew %/d0,%/a0@\n\t"
330 "movew %/a1@+,%/d0\n\t"
331 "rolw #8,%/d0\n\t"
332 "movew %/d0,%/a0@\n\t"
333 "movew %/a1@+,%/d0\n\t"
334 "rolw #8,%/d0\n\t"
335 "movew %/d0,%/a0@\n\t"
336 "movew %/a1@+,%/d0\n\t"
337 "rolw #8,%/d0\n\t"
338 "movew %/d0,%/a0@\n\t"
339 "dbra %/d6,1b"
340 :
341 : "g" (port), "g" (buf), "g" (nr)
342 : "d0", "a0", "a1", "d6");
343}
344
345#endif /* __KERNEL__ */
346
347#endif /* _RAW_IO_H */
diff --git a/arch/m68k/include/asm/resource.h b/arch/m68k/include/asm/resource.h
new file mode 100644
index 000000000000..e7d35019f337
--- /dev/null
+++ b/arch/m68k/include/asm/resource.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_RESOURCE_H
2#define _M68K_RESOURCE_H
3
4#include <asm-generic/resource.h>
5
6#endif /* _M68K_RESOURCE_H */
diff --git a/arch/m68k/include/asm/rtc.h b/arch/m68k/include/asm/rtc.h
new file mode 100644
index 000000000000..5d3e03859844
--- /dev/null
+++ b/arch/m68k/include/asm/rtc.h
@@ -0,0 +1,76 @@
1/* include/asm-m68k/rtc.h
2 *
3 * Copyright Richard Zidlicky
4 * implementation details for genrtc/q40rtc driver
5 */
6/* permission is hereby granted to copy, modify and redistribute this code
7 * in terms of the GNU Library General Public License, Version 2 or later,
8 * at your option.
9 */
10
11#ifndef _ASM_RTC_H
12#define _ASM_RTC_H
13
14#ifdef __KERNEL__
15
16#include <linux/rtc.h>
17#include <asm/errno.h>
18#include <asm/machdep.h>
19
20#define RTC_PIE 0x40 /* periodic interrupt enable */
21#define RTC_AIE 0x20 /* alarm interrupt enable */
22#define RTC_UIE 0x10 /* update-finished interrupt enable */
23
24/* some dummy definitions */
25#define RTC_BATT_BAD 0x100 /* battery bad */
26#define RTC_SQWE 0x08 /* enable square-wave output */
27#define RTC_DM_BINARY 0x04 /* all time/date values are BCD if clear */
28#define RTC_24H 0x02 /* 24 hour mode - else hours bit 7 means pm */
29#define RTC_DST_EN 0x01 /* auto switch DST - works f. USA only */
30
31static inline unsigned int get_rtc_time(struct rtc_time *time)
32{
33 /*
34 * Only the values that we read from the RTC are set. We leave
35 * tm_wday, tm_yday and tm_isdst untouched. Even though the
36 * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated
37 * by the RTC when initially set to a non-zero value.
38 */
39 mach_hwclk(0, time);
40 return RTC_24H;
41}
42
43static inline int set_rtc_time(struct rtc_time *time)
44{
45 return mach_hwclk(1, time);
46}
47
48static inline unsigned int get_rtc_ss(void)
49{
50 if (mach_get_ss)
51 return mach_get_ss();
52 else{
53 struct rtc_time h;
54
55 get_rtc_time(&h);
56 return h.tm_sec;
57 }
58}
59
60static inline int get_rtc_pll(struct rtc_pll_info *pll)
61{
62 if (mach_get_rtc_pll)
63 return mach_get_rtc_pll(pll);
64 else
65 return -EINVAL;
66}
67static inline int set_rtc_pll(struct rtc_pll_info *pll)
68{
69 if (mach_set_rtc_pll)
70 return mach_set_rtc_pll(pll);
71 else
72 return -EINVAL;
73}
74#endif /* __KERNEL__ */
75
76#endif /* _ASM__RTC_H */
diff --git a/arch/m68k/include/asm/sbus.h b/arch/m68k/include/asm/sbus.h
new file mode 100644
index 000000000000..bfe3ba147f2e
--- /dev/null
+++ b/arch/m68k/include/asm/sbus.h
@@ -0,0 +1,45 @@
1/*
2 * some sbus structures and macros to make usage of sbus drivers possible
3 */
4
5#ifndef __M68K_SBUS_H
6#define __M68K_SBUS_H
7
8struct sbus_dev {
9 struct {
10 unsigned int which_io;
11 unsigned int phys_addr;
12 } reg_addrs[1];
13};
14
15/* sbus IO functions stolen from include/asm-sparc/io.h for the serial driver */
16/* No SBUS on the Sun3, kludge -- sam */
17
18static inline void _sbus_writeb(unsigned char val, unsigned long addr)
19{
20 *(volatile unsigned char *)addr = val;
21}
22
23static inline unsigned char _sbus_readb(unsigned long addr)
24{
25 return *(volatile unsigned char *)addr;
26}
27
28static inline void _sbus_writel(unsigned long val, unsigned long addr)
29{
30 *(volatile unsigned long *)addr = val;
31
32}
33
34extern inline unsigned long _sbus_readl(unsigned long addr)
35{
36 return *(volatile unsigned long *)addr;
37}
38
39
40#define sbus_readb(a) _sbus_readb((unsigned long)a)
41#define sbus_writeb(v, a) _sbus_writeb(v, (unsigned long)a)
42#define sbus_readl(a) _sbus_readl((unsigned long)a)
43#define sbus_writel(v, a) _sbus_writel(v, (unsigned long)a)
44
45#endif
diff --git a/arch/m68k/include/asm/scatterlist.h b/arch/m68k/include/asm/scatterlist.h
new file mode 100644
index 000000000000..b7e528636252
--- /dev/null
+++ b/arch/m68k/include/asm/scatterlist.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "scatterlist_no.h"
3#else
4#include "scatterlist_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/scatterlist_mm.h b/arch/m68k/include/asm/scatterlist_mm.h
new file mode 100644
index 000000000000..d3a7a0edfeca
--- /dev/null
+++ b/arch/m68k/include/asm/scatterlist_mm.h
@@ -0,0 +1,23 @@
1#ifndef _M68K_SCATTERLIST_H
2#define _M68K_SCATTERLIST_H
3
4#include <linux/types.h>
5
6struct scatterlist {
7#ifdef CONFIG_DEBUG_SG
8 unsigned long sg_magic;
9#endif
10 unsigned long page_link;
11 unsigned int offset;
12 unsigned int length;
13
14 __u32 dma_address; /* A place to hang host-specific addresses at. */
15};
16
17/* This is bogus and should go away. */
18#define ISA_DMA_THRESHOLD (0x00ffffff)
19
20#define sg_dma_address(sg) ((sg)->dma_address)
21#define sg_dma_len(sg) ((sg)->length)
22
23#endif /* !(_M68K_SCATTERLIST_H) */
diff --git a/arch/m68knommu/include/asm/scatterlist.h b/arch/m68k/include/asm/scatterlist_no.h
index afc4788b0d2c..afc4788b0d2c 100644
--- a/arch/m68knommu/include/asm/scatterlist.h
+++ b/arch/m68k/include/asm/scatterlist_no.h
diff --git a/arch/m68k/include/asm/sections.h b/arch/m68k/include/asm/sections.h
new file mode 100644
index 000000000000..d64967ecfec6
--- /dev/null
+++ b/arch/m68k/include/asm/sections.h
@@ -0,0 +1,6 @@
1#ifndef _ASM_M68K_SECTIONS_H
2#define _ASM_M68K_SECTIONS_H
3
4#include <asm-generic/sections.h>
5
6#endif /* _ASM_M68K_SECTIONS_H */
diff --git a/arch/m68k/include/asm/segment.h b/arch/m68k/include/asm/segment.h
new file mode 100644
index 000000000000..82583bc004bd
--- /dev/null
+++ b/arch/m68k/include/asm/segment.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "segment_no.h"
3#else
4#include "segment_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/segment_mm.h b/arch/m68k/include/asm/segment_mm.h
new file mode 100644
index 000000000000..7b0b2d3127f9
--- /dev/null
+++ b/arch/m68k/include/asm/segment_mm.h
@@ -0,0 +1,57 @@
1#ifndef _M68K_SEGMENT_H
2#define _M68K_SEGMENT_H
3
4/* define constants */
5/* Address spaces (FC0-FC2) */
6#define USER_DATA (1)
7#ifndef __USER_DS
8#define __USER_DS (USER_DATA)
9#endif
10#define USER_PROGRAM (2)
11#define SUPER_DATA (5)
12#ifndef __KERNEL_DS
13#define __KERNEL_DS (SUPER_DATA)
14#endif
15#define SUPER_PROGRAM (6)
16#define CPU_SPACE (7)
17
18#ifndef __ASSEMBLY__
19
20typedef struct {
21 unsigned long seg;
22} mm_segment_t;
23
24#define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
25#define USER_DS MAKE_MM_SEG(__USER_DS)
26#define KERNEL_DS MAKE_MM_SEG(__KERNEL_DS)
27
28/*
29 * Get/set the SFC/DFC registers for MOVES instructions
30 */
31
32static inline mm_segment_t get_fs(void)
33{
34 mm_segment_t _v;
35 __asm__ ("movec %/dfc,%0":"=r" (_v.seg):);
36
37 return _v;
38}
39
40static inline mm_segment_t get_ds(void)
41{
42 /* return the supervisor data space code */
43 return KERNEL_DS;
44}
45
46static inline void set_fs(mm_segment_t val)
47{
48 __asm__ __volatile__ ("movec %0,%/sfc\n\t"
49 "movec %0,%/dfc\n\t"
50 : /* no outputs */ : "r" (val.seg) : "memory");
51}
52
53#define segment_eq(a,b) ((a).seg == (b).seg)
54
55#endif /* __ASSEMBLY__ */
56
57#endif /* _M68K_SEGMENT_H */
diff --git a/arch/m68knommu/include/asm/segment.h b/arch/m68k/include/asm/segment_no.h
index 42318ebec7ec..42318ebec7ec 100644
--- a/arch/m68knommu/include/asm/segment.h
+++ b/arch/m68k/include/asm/segment_no.h
diff --git a/arch/m68k/include/asm/sembuf.h b/arch/m68k/include/asm/sembuf.h
new file mode 100644
index 000000000000..2308052a8c24
--- /dev/null
+++ b/arch/m68k/include/asm/sembuf.h
@@ -0,0 +1,25 @@
1#ifndef _M68K_SEMBUF_H
2#define _M68K_SEMBUF_H
3
4/*
5 * The semid64_ds structure for m68k architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct semid64_ds {
15 struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
16 __kernel_time_t sem_otime; /* last semop time */
17 unsigned long __unused1;
18 __kernel_time_t sem_ctime; /* last change time */
19 unsigned long __unused2;
20 unsigned long sem_nsems; /* no. of semaphores in array */
21 unsigned long __unused3;
22 unsigned long __unused4;
23};
24
25#endif /* _M68K_SEMBUF_H */
diff --git a/arch/m68k/include/asm/serial.h b/arch/m68k/include/asm/serial.h
new file mode 100644
index 000000000000..2b90d6e69070
--- /dev/null
+++ b/arch/m68k/include/asm/serial.h
@@ -0,0 +1,33 @@
1/*
2 * include/asm-m68k/serial.h
3 *
4 * currently this seems useful only for a Q40,
5 * it's an almost exact copy of ../asm-alpha/serial.h
6 *
7 */
8
9
10/*
11 * This assumes you have a 1.8432 MHz clock for your UART.
12 *
13 * It'd be nice if someone built a serial card with a 24.576 MHz
14 * clock, since the 16550A is capable of handling a top speed of 1.5
15 * megabits/second; but this requires the faster clock.
16 */
17#define BASE_BAUD ( 1843200 / 16 )
18
19/* Standard COM flags (except for COM4, because of the 8514 problem) */
20#ifdef CONFIG_SERIAL_DETECT_IRQ
21#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ)
22#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_AUTO_IRQ)
23#else
24#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
25#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
26#endif
27
28#define SERIAL_PORT_DFNS \
29 /* UART CLK PORT IRQ FLAGS */ \
30 { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \
31 { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \
32 { 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \
33 { 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */
diff --git a/arch/m68k/include/asm/setup.h b/arch/m68k/include/asm/setup.h
new file mode 100644
index 000000000000..842f86f75ccd
--- /dev/null
+++ b/arch/m68k/include/asm/setup.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "setup_no.h"
3#else
4#include "setup_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/setup_mm.h b/arch/m68k/include/asm/setup_mm.h
new file mode 100644
index 000000000000..4dfb3952b375
--- /dev/null
+++ b/arch/m68k/include/asm/setup_mm.h
@@ -0,0 +1,376 @@
1/*
2** asm/setup.h -- Definition of the Linux/m68k setup information
3**
4** Copyright 1992 by Greg Harp
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10** Created 09/29/92 by Greg Harp
11**
12** 5/2/94 Roman Hodek:
13** Added bi_atari part of the machine dependent union bi_un; for now it
14** contains just a model field to distinguish between TT and Falcon.
15** 26/7/96 Roman Zippel:
16** Renamed to setup.h; added some useful macros to allow gcc some
17** optimizations if possible.
18** 5/10/96 Geert Uytterhoeven:
19** Redesign of the boot information structure; moved boot information
20** structure to bootinfo.h
21*/
22
23#ifndef _M68K_SETUP_H
24#define _M68K_SETUP_H
25
26
27
28 /*
29 * Linux/m68k Architectures
30 */
31
32#define MACH_AMIGA 1
33#define MACH_ATARI 2
34#define MACH_MAC 3
35#define MACH_APOLLO 4
36#define MACH_SUN3 5
37#define MACH_MVME147 6
38#define MACH_MVME16x 7
39#define MACH_BVME6000 8
40#define MACH_HP300 9
41#define MACH_Q40 10
42#define MACH_SUN3X 11
43
44#define COMMAND_LINE_SIZE 256
45
46#ifdef __KERNEL__
47
48#define CL_SIZE COMMAND_LINE_SIZE
49
50#ifndef __ASSEMBLY__
51extern unsigned long m68k_machtype;
52#endif /* !__ASSEMBLY__ */
53
54#if !defined(CONFIG_AMIGA)
55# define MACH_IS_AMIGA (0)
56#elif defined(CONFIG_ATARI) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \
57 || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \
58 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
59 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
60# define MACH_IS_AMIGA (m68k_machtype == MACH_AMIGA)
61#else
62# define MACH_AMIGA_ONLY
63# define MACH_IS_AMIGA (1)
64# define MACH_TYPE (MACH_AMIGA)
65#endif
66
67#if !defined(CONFIG_ATARI)
68# define MACH_IS_ATARI (0)
69#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \
70 || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \
71 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
72 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
73# define MACH_IS_ATARI (m68k_machtype == MACH_ATARI)
74#else
75# define MACH_ATARI_ONLY
76# define MACH_IS_ATARI (1)
77# define MACH_TYPE (MACH_ATARI)
78#endif
79
80#if !defined(CONFIG_MAC)
81# define MACH_IS_MAC (0)
82#elif defined(CONFIG_AMIGA) || defined(CONFIG_ATARI) || defined(CONFIG_APOLLO) \
83 || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \
84 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
85 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
86# define MACH_IS_MAC (m68k_machtype == MACH_MAC)
87#else
88# define MACH_MAC_ONLY
89# define MACH_IS_MAC (1)
90# define MACH_TYPE (MACH_MAC)
91#endif
92
93#if defined(CONFIG_SUN3)
94#define MACH_IS_SUN3 (1)
95#define MACH_SUN3_ONLY (1)
96#define MACH_TYPE (MACH_SUN3)
97#else
98#define MACH_IS_SUN3 (0)
99#endif
100
101#if !defined (CONFIG_APOLLO)
102# define MACH_IS_APOLLO (0)
103#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
104 || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \
105 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
106 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
107# define MACH_IS_APOLLO (m68k_machtype == MACH_APOLLO)
108#else
109# define MACH_APOLLO_ONLY
110# define MACH_IS_APOLLO (1)
111# define MACH_TYPE (MACH_APOLLO)
112#endif
113
114#if !defined (CONFIG_MVME147)
115# define MACH_IS_MVME147 (0)
116#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
117 || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \
118 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
119 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME16x)
120# define MACH_IS_MVME147 (m68k_machtype == MACH_MVME147)
121#else
122# define MACH_MVME147_ONLY
123# define MACH_IS_MVME147 (1)
124# define MACH_TYPE (MACH_MVME147)
125#endif
126
127#if !defined (CONFIG_MVME16x)
128# define MACH_IS_MVME16x (0)
129#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
130 || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \
131 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
132 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
133# define MACH_IS_MVME16x (m68k_machtype == MACH_MVME16x)
134#else
135# define MACH_MVME16x_ONLY
136# define MACH_IS_MVME16x (1)
137# define MACH_TYPE (MACH_MVME16x)
138#endif
139
140#if !defined (CONFIG_BVME6000)
141# define MACH_IS_BVME6000 (0)
142#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
143 || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \
144 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
145 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
146# define MACH_IS_BVME6000 (m68k_machtype == MACH_BVME6000)
147#else
148# define MACH_BVME6000_ONLY
149# define MACH_IS_BVME6000 (1)
150# define MACH_TYPE (MACH_BVME6000)
151#endif
152
153#if !defined (CONFIG_HP300)
154# define MACH_IS_HP300 (0)
155#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
156 || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \
157 || defined(CONFIG_BVME6000) || defined(CONFIG_Q40) \
158 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
159# define MACH_IS_HP300 (m68k_machtype == MACH_HP300)
160#else
161# define MACH_HP300_ONLY
162# define MACH_IS_HP300 (1)
163# define MACH_TYPE (MACH_HP300)
164#endif
165
166#if !defined (CONFIG_Q40)
167# define MACH_IS_Q40 (0)
168#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
169 || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \
170 || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \
171 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
172# define MACH_IS_Q40 (m68k_machtype == MACH_Q40)
173#else
174# define MACH_Q40_ONLY
175# define MACH_IS_Q40 (1)
176# define MACH_TYPE (MACH_Q40)
177#endif
178
179#if !defined (CONFIG_SUN3X)
180# define MACH_IS_SUN3X (0)
181#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
182 || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \
183 || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \
184 || defined(CONFIG_Q40) || defined(CONFIG_MVME147)
185# define MACH_IS_SUN3X (m68k_machtype == MACH_SUN3X)
186#else
187# define CONFIG_SUN3X_ONLY
188# define MACH_IS_SUN3X (1)
189# define MACH_TYPE (MACH_SUN3X)
190#endif
191
192#ifndef MACH_TYPE
193# define MACH_TYPE (m68k_machtype)
194#endif
195
196#endif /* __KERNEL__ */
197
198
199 /*
200 * CPU, FPU and MMU types
201 *
202 * Note: we may rely on the following equalities:
203 *
204 * CPU_68020 == MMU_68851
205 * CPU_68030 == MMU_68030
206 * CPU_68040 == FPU_68040 == MMU_68040
207 * CPU_68060 == FPU_68060 == MMU_68060
208 */
209
210#define CPUB_68020 0
211#define CPUB_68030 1
212#define CPUB_68040 2
213#define CPUB_68060 3
214
215#define CPU_68020 (1<<CPUB_68020)
216#define CPU_68030 (1<<CPUB_68030)
217#define CPU_68040 (1<<CPUB_68040)
218#define CPU_68060 (1<<CPUB_68060)
219
220#define FPUB_68881 0
221#define FPUB_68882 1
222#define FPUB_68040 2 /* Internal FPU */
223#define FPUB_68060 3 /* Internal FPU */
224#define FPUB_SUNFPA 4 /* Sun-3 FPA */
225
226#define FPU_68881 (1<<FPUB_68881)
227#define FPU_68882 (1<<FPUB_68882)
228#define FPU_68040 (1<<FPUB_68040)
229#define FPU_68060 (1<<FPUB_68060)
230#define FPU_SUNFPA (1<<FPUB_SUNFPA)
231
232#define MMUB_68851 0
233#define MMUB_68030 1 /* Internal MMU */
234#define MMUB_68040 2 /* Internal MMU */
235#define MMUB_68060 3 /* Internal MMU */
236#define MMUB_APOLLO 4 /* Custom Apollo */
237#define MMUB_SUN3 5 /* Custom Sun-3 */
238
239#define MMU_68851 (1<<MMUB_68851)
240#define MMU_68030 (1<<MMUB_68030)
241#define MMU_68040 (1<<MMUB_68040)
242#define MMU_68060 (1<<MMUB_68060)
243#define MMU_SUN3 (1<<MMUB_SUN3)
244#define MMU_APOLLO (1<<MMUB_APOLLO)
245
246#ifdef __KERNEL__
247
248#ifndef __ASSEMBLY__
249extern unsigned long m68k_cputype;
250extern unsigned long m68k_fputype;
251extern unsigned long m68k_mmutype;
252#ifdef CONFIG_VME
253extern unsigned long vme_brdtype;
254#endif
255
256 /*
257 * m68k_is040or060 is != 0 for a '040 or higher;
258 * used numbers are 4 for 68040 and 6 for 68060.
259 */
260
261extern int m68k_is040or060;
262#endif /* !__ASSEMBLY__ */
263
264#if !defined(CONFIG_M68020)
265# define CPU_IS_020 (0)
266# define MMU_IS_851 (0)
267# define MMU_IS_SUN3 (0)
268#elif defined(CONFIG_M68030) || defined(CONFIG_M68040) || defined(CONFIG_M68060)
269# define CPU_IS_020 (m68k_cputype & CPU_68020)
270# define MMU_IS_851 (m68k_mmutype & MMU_68851)
271# define MMU_IS_SUN3 (0) /* Sun3 not supported with other CPU enabled */
272#else
273# define CPU_M68020_ONLY
274# define CPU_IS_020 (1)
275#ifdef MACH_SUN3_ONLY
276# define MMU_IS_SUN3 (1)
277# define MMU_IS_851 (0)
278#else
279# define MMU_IS_SUN3 (0)
280# define MMU_IS_851 (1)
281#endif
282#endif
283
284#if !defined(CONFIG_M68030)
285# define CPU_IS_030 (0)
286# define MMU_IS_030 (0)
287#elif defined(CONFIG_M68020) || defined(CONFIG_M68040) || defined(CONFIG_M68060)
288# define CPU_IS_030 (m68k_cputype & CPU_68030)
289# define MMU_IS_030 (m68k_mmutype & MMU_68030)
290#else
291# define CPU_M68030_ONLY
292# define CPU_IS_030 (1)
293# define MMU_IS_030 (1)
294#endif
295
296#if !defined(CONFIG_M68040)
297# define CPU_IS_040 (0)
298# define MMU_IS_040 (0)
299#elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68060)
300# define CPU_IS_040 (m68k_cputype & CPU_68040)
301# define MMU_IS_040 (m68k_mmutype & MMU_68040)
302#else
303# define CPU_M68040_ONLY
304# define CPU_IS_040 (1)
305# define MMU_IS_040 (1)
306#endif
307
308#if !defined(CONFIG_M68060)
309# define CPU_IS_060 (0)
310# define MMU_IS_060 (0)
311#elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68040)
312# define CPU_IS_060 (m68k_cputype & CPU_68060)
313# define MMU_IS_060 (m68k_mmutype & MMU_68060)
314#else
315# define CPU_M68060_ONLY
316# define CPU_IS_060 (1)
317# define MMU_IS_060 (1)
318#endif
319
320#if !defined(CONFIG_M68020) && !defined(CONFIG_M68030)
321# define CPU_IS_020_OR_030 (0)
322#else
323# define CPU_M68020_OR_M68030
324# if defined(CONFIG_M68040) || defined(CONFIG_M68060)
325# define CPU_IS_020_OR_030 (!m68k_is040or060)
326# else
327# define CPU_M68020_OR_M68030_ONLY
328# define CPU_IS_020_OR_030 (1)
329# endif
330#endif
331
332#if !defined(CONFIG_M68040) && !defined(CONFIG_M68060)
333# define CPU_IS_040_OR_060 (0)
334#else
335# define CPU_M68040_OR_M68060
336# if defined(CONFIG_M68020) || defined(CONFIG_M68030)
337# define CPU_IS_040_OR_060 (m68k_is040or060)
338# else
339# define CPU_M68040_OR_M68060_ONLY
340# define CPU_IS_040_OR_060 (1)
341# endif
342#endif
343
344#define CPU_TYPE (m68k_cputype)
345
346#ifdef CONFIG_M68KFPU_EMU
347# ifdef CONFIG_M68KFPU_EMU_ONLY
348# define FPU_IS_EMU (1)
349# else
350# define FPU_IS_EMU (!m68k_fputype)
351# endif
352#else
353# define FPU_IS_EMU (0)
354#endif
355
356
357 /*
358 * Miscellaneous
359 */
360
361#define NUM_MEMINFO 4
362
363#ifndef __ASSEMBLY__
364struct mem_info {
365 unsigned long addr; /* physical address of memory chunk */
366 unsigned long size; /* length of memory chunk (in bytes) */
367};
368
369extern int m68k_num_memory; /* # of memory blocks found (and used) */
370extern int m68k_realnum_memory; /* real # of memory blocks found */
371extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
372#endif
373
374#endif /* __KERNEL__ */
375
376#endif /* _M68K_SETUP_H */
diff --git a/arch/m68knommu/include/asm/setup.h b/arch/m68k/include/asm/setup_no.h
index fb86bb2a6078..45d286ce9398 100644
--- a/arch/m68knommu/include/asm/setup.h
+++ b/arch/m68k/include/asm/setup_no.h
@@ -1,6 +1,6 @@
1#ifdef __KERNEL__ 1#ifdef __KERNEL__
2 2
3#include <asm-m68k/setup.h> 3#include <asm/setup_mm.h>
4 4
5/* We have a bigger command line buffer. */ 5/* We have a bigger command line buffer. */
6#undef COMMAND_LINE_SIZE 6#undef COMMAND_LINE_SIZE
diff --git a/arch/m68k/include/asm/shm.h b/arch/m68k/include/asm/shm.h
new file mode 100644
index 000000000000..fa56ec84a126
--- /dev/null
+++ b/arch/m68k/include/asm/shm.h
@@ -0,0 +1,31 @@
1#ifndef _M68K_SHM_H
2#define _M68K_SHM_H
3
4
5/* format of page table entries that correspond to shared memory pages
6 currently out in swap space (see also mm/swap.c):
7 bits 0-1 (PAGE_PRESENT) is = 0
8 bits 8..2 (SWP_TYPE) are = SHM_SWP_TYPE
9 bits 31..9 are used like this:
10 bits 15..9 (SHM_ID) the id of the shared memory segment
11 bits 30..16 (SHM_IDX) the index of the page within the shared memory segment
12 (actually only bits 25..16 get used since SHMMAX is so low)
13 bit 31 (SHM_READ_ONLY) flag whether the page belongs to a read-only attach
14*/
15/* on the m68k both bits 0 and 1 must be zero */
16/* format on the sun3 is similar, but bits 30, 31 are set to zero and all
17 others are reduced by 2. --m */
18
19#ifndef CONFIG_SUN3
20#define SHM_ID_SHIFT 9
21#else
22#define SHM_ID_SHIFT 7
23#endif
24#define _SHM_ID_BITS 7
25#define SHM_ID_MASK ((1<<_SHM_ID_BITS)-1)
26
27#define SHM_IDX_SHIFT (SHM_ID_SHIFT+_SHM_ID_BITS)
28#define _SHM_IDX_BITS 15
29#define SHM_IDX_MASK ((1<<_SHM_IDX_BITS)-1)
30
31#endif /* _M68K_SHM_H */
diff --git a/arch/m68k/include/asm/shmbuf.h b/arch/m68k/include/asm/shmbuf.h
new file mode 100644
index 000000000000..f8928d62f1b7
--- /dev/null
+++ b/arch/m68k/include/asm/shmbuf.h
@@ -0,0 +1,42 @@
1#ifndef _M68K_SHMBUF_H
2#define _M68K_SHMBUF_H
3
4/*
5 * The shmid64_ds structure for m68k architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct shmid64_ds {
15 struct ipc64_perm shm_perm; /* operation perms */
16 size_t shm_segsz; /* size of segment (bytes) */
17 __kernel_time_t shm_atime; /* last attach time */
18 unsigned long __unused1;
19 __kernel_time_t shm_dtime; /* last detach time */
20 unsigned long __unused2;
21 __kernel_time_t shm_ctime; /* last change time */
22 unsigned long __unused3;
23 __kernel_pid_t shm_cpid; /* pid of creator */
24 __kernel_pid_t shm_lpid; /* pid of last operator */
25 unsigned long shm_nattch; /* no. of current attaches */
26 unsigned long __unused4;
27 unsigned long __unused5;
28};
29
30struct shminfo64 {
31 unsigned long shmmax;
32 unsigned long shmmin;
33 unsigned long shmmni;
34 unsigned long shmseg;
35 unsigned long shmall;
36 unsigned long __unused1;
37 unsigned long __unused2;
38 unsigned long __unused3;
39 unsigned long __unused4;
40};
41
42#endif /* _M68K_SHMBUF_H */
diff --git a/arch/m68k/include/asm/shmparam.h b/arch/m68k/include/asm/shmparam.h
new file mode 100644
index 000000000000..558892a2efb3
--- /dev/null
+++ b/arch/m68k/include/asm/shmparam.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_SHMPARAM_H
2#define _M68K_SHMPARAM_H
3
4#define SHMLBA PAGE_SIZE /* attach addr a multiple of this */
5
6#endif /* _M68K_SHMPARAM_H */
diff --git a/arch/m68k/include/asm/sigcontext.h b/arch/m68k/include/asm/sigcontext.h
new file mode 100644
index 000000000000..bff6d40345a9
--- /dev/null
+++ b/arch/m68k/include/asm/sigcontext.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "sigcontext_no.h"
3#else
4#include "sigcontext_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/sigcontext_mm.h b/arch/m68k/include/asm/sigcontext_mm.h
new file mode 100644
index 000000000000..64fbe34cf26f
--- /dev/null
+++ b/arch/m68k/include/asm/sigcontext_mm.h
@@ -0,0 +1,19 @@
1#ifndef _ASM_M68k_SIGCONTEXT_H
2#define _ASM_M68k_SIGCONTEXT_H
3
4struct sigcontext {
5 unsigned long sc_mask; /* old sigmask */
6 unsigned long sc_usp; /* old user stack pointer */
7 unsigned long sc_d0;
8 unsigned long sc_d1;
9 unsigned long sc_a0;
10 unsigned long sc_a1;
11 unsigned short sc_sr;
12 unsigned long sc_pc;
13 unsigned short sc_formatvec;
14 unsigned long sc_fpregs[2*3]; /* room for two fp registers */
15 unsigned long sc_fpcntl[3];
16 unsigned char sc_fpstate[216];
17};
18
19#endif
diff --git a/arch/m68knommu/include/asm/sigcontext.h b/arch/m68k/include/asm/sigcontext_no.h
index 36c293fc133d..36c293fc133d 100644
--- a/arch/m68knommu/include/asm/sigcontext.h
+++ b/arch/m68k/include/asm/sigcontext_no.h
diff --git a/arch/m68k/include/asm/siginfo.h b/arch/m68k/include/asm/siginfo.h
new file mode 100644
index 000000000000..61219d7affc8
--- /dev/null
+++ b/arch/m68k/include/asm/siginfo.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "siginfo_no.h"
3#else
4#include "siginfo_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/siginfo_mm.h b/arch/m68k/include/asm/siginfo_mm.h
new file mode 100644
index 000000000000..05a8d6d90b58
--- /dev/null
+++ b/arch/m68k/include/asm/siginfo_mm.h
@@ -0,0 +1,92 @@
1#ifndef _M68K_SIGINFO_H
2#define _M68K_SIGINFO_H
3
4#define HAVE_ARCH_SIGINFO_T
5#define HAVE_ARCH_COPY_SIGINFO
6
7#include <asm-generic/siginfo.h>
8
9typedef struct siginfo {
10 int si_signo;
11 int si_errno;
12 int si_code;
13
14 union {
15 int _pad[SI_PAD_SIZE];
16
17 /* kill() */
18 struct {
19 __kernel_pid_t _pid; /* sender's pid */
20 __kernel_uid_t _uid; /* backwards compatibility */
21 __kernel_uid32_t _uid32; /* sender's uid */
22 } _kill;
23
24 /* POSIX.1b timers */
25 struct {
26 timer_t _tid; /* timer id */
27 int _overrun; /* overrun count */
28 char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)];
29 sigval_t _sigval; /* same as below */
30 int _sys_private; /* not to be passed to user */
31 } _timer;
32
33 /* POSIX.1b signals */
34 struct {
35 __kernel_pid_t _pid; /* sender's pid */
36 __kernel_uid_t _uid; /* backwards compatibility */
37 sigval_t _sigval;
38 __kernel_uid32_t _uid32; /* sender's uid */
39 } _rt;
40
41 /* SIGCHLD */
42 struct {
43 __kernel_pid_t _pid; /* which child */
44 __kernel_uid_t _uid; /* backwards compatibility */
45 int _status; /* exit code */
46 clock_t _utime;
47 clock_t _stime;
48 __kernel_uid32_t _uid32; /* sender's uid */
49 } _sigchld;
50
51 /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
52 struct {
53 void *_addr; /* faulting insn/memory ref. */
54 } _sigfault;
55
56 /* SIGPOLL */
57 struct {
58 int _band; /* POLL_IN, POLL_OUT, POLL_MSG */
59 int _fd;
60 } _sigpoll;
61 } _sifields;
62} siginfo_t;
63
64#define UID16_SIGINFO_COMPAT_NEEDED
65
66/*
67 * How these fields are to be accessed.
68 */
69#undef si_uid
70#ifdef __KERNEL__
71#define si_uid _sifields._kill._uid32
72#define si_uid16 _sifields._kill._uid
73#else
74#define si_uid _sifields._kill._uid
75#endif
76
77#ifdef __KERNEL__
78
79#include <linux/string.h>
80
81static inline void copy_siginfo(struct siginfo *to, struct siginfo *from)
82{
83 if (from->si_code < 0)
84 memcpy(to, from, sizeof(*to));
85 else
86 /* _sigchld is currently the largest know union member */
87 memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld));
88}
89
90#endif /* __KERNEL__ */
91
92#endif
diff --git a/arch/m68knommu/include/asm/siginfo.h b/arch/m68k/include/asm/siginfo_no.h
index b18e5f4064ae..b18e5f4064ae 100644
--- a/arch/m68knommu/include/asm/siginfo.h
+++ b/arch/m68k/include/asm/siginfo_no.h
diff --git a/arch/m68k/include/asm/signal.h b/arch/m68k/include/asm/signal.h
new file mode 100644
index 000000000000..3c19988bd93c
--- /dev/null
+++ b/arch/m68k/include/asm/signal.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "signal_no.h"
3#else
4#include "signal_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/signal_mm.h b/arch/m68k/include/asm/signal_mm.h
new file mode 100644
index 000000000000..3db8a81942f1
--- /dev/null
+++ b/arch/m68k/include/asm/signal_mm.h
@@ -0,0 +1,206 @@
1#ifndef _M68K_SIGNAL_H
2#define _M68K_SIGNAL_H
3
4#include <linux/types.h>
5
6/* Avoid too many header ordering problems. */
7struct siginfo;
8
9#ifdef __KERNEL__
10/* Most things should be clean enough to redefine this at will, if care
11 is taken to make libc match. */
12
13#define _NSIG 64
14#define _NSIG_BPW 32
15#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
16
17typedef unsigned long old_sigset_t; /* at least 32 bits */
18
19typedef struct {
20 unsigned long sig[_NSIG_WORDS];
21} sigset_t;
22
23#else
24/* Here we must cater to libcs that poke about in kernel headers. */
25
26#define NSIG 32
27typedef unsigned long sigset_t;
28
29#endif /* __KERNEL__ */
30
31#define SIGHUP 1
32#define SIGINT 2
33#define SIGQUIT 3
34#define SIGILL 4
35#define SIGTRAP 5
36#define SIGABRT 6
37#define SIGIOT 6
38#define SIGBUS 7
39#define SIGFPE 8
40#define SIGKILL 9
41#define SIGUSR1 10
42#define SIGSEGV 11
43#define SIGUSR2 12
44#define SIGPIPE 13
45#define SIGALRM 14
46#define SIGTERM 15
47#define SIGSTKFLT 16
48#define SIGCHLD 17
49#define SIGCONT 18
50#define SIGSTOP 19
51#define SIGTSTP 20
52#define SIGTTIN 21
53#define SIGTTOU 22
54#define SIGURG 23
55#define SIGXCPU 24
56#define SIGXFSZ 25
57#define SIGVTALRM 26
58#define SIGPROF 27
59#define SIGWINCH 28
60#define SIGIO 29
61#define SIGPOLL SIGIO
62/*
63#define SIGLOST 29
64*/
65#define SIGPWR 30
66#define SIGSYS 31
67#define SIGUNUSED 31
68
69/* These should not be considered constants from userland. */
70#define SIGRTMIN 32
71#define SIGRTMAX _NSIG
72
73/*
74 * SA_FLAGS values:
75 *
76 * SA_ONSTACK indicates that a registered stack_t will be used.
77 * SA_RESTART flag to get restarting signals (which were the default long ago)
78 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
79 * SA_RESETHAND clears the handler when the signal is delivered.
80 * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
81 * SA_NODEFER prevents the current signal from being masked in the handler.
82 *
83 * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
84 * Unix names RESETHAND and NODEFER respectively.
85 */
86#define SA_NOCLDSTOP 0x00000001
87#define SA_NOCLDWAIT 0x00000002
88#define SA_SIGINFO 0x00000004
89#define SA_ONSTACK 0x08000000
90#define SA_RESTART 0x10000000
91#define SA_NODEFER 0x40000000
92#define SA_RESETHAND 0x80000000
93
94#define SA_NOMASK SA_NODEFER
95#define SA_ONESHOT SA_RESETHAND
96
97/*
98 * sigaltstack controls
99 */
100#define SS_ONSTACK 1
101#define SS_DISABLE 2
102
103#define MINSIGSTKSZ 2048
104#define SIGSTKSZ 8192
105
106#include <asm-generic/signal.h>
107
108#ifdef __KERNEL__
109struct old_sigaction {
110 __sighandler_t sa_handler;
111 old_sigset_t sa_mask;
112 unsigned long sa_flags;
113 __sigrestore_t sa_restorer;
114};
115
116struct sigaction {
117 __sighandler_t sa_handler;
118 unsigned long sa_flags;
119 __sigrestore_t sa_restorer;
120 sigset_t sa_mask; /* mask last for extensibility */
121};
122
123struct k_sigaction {
124 struct sigaction sa;
125};
126#else
127/* Here we must cater to libcs that poke about in kernel headers. */
128
129struct sigaction {
130 union {
131 __sighandler_t _sa_handler;
132 void (*_sa_sigaction)(int, struct siginfo *, void *);
133 } _u;
134 sigset_t sa_mask;
135 unsigned long sa_flags;
136 void (*sa_restorer)(void);
137};
138
139#define sa_handler _u._sa_handler
140#define sa_sigaction _u._sa_sigaction
141
142#endif /* __KERNEL__ */
143
144typedef struct sigaltstack {
145 void __user *ss_sp;
146 int ss_flags;
147 size_t ss_size;
148} stack_t;
149
150#ifdef __KERNEL__
151#include <asm/sigcontext.h>
152
153#define __HAVE_ARCH_SIG_BITOPS
154
155static inline void sigaddset(sigset_t *set, int _sig)
156{
157 asm ("bfset %0{%1,#1}"
158 : "+od" (*set)
159 : "id" ((_sig - 1) ^ 31)
160 : "cc");
161}
162
163static inline void sigdelset(sigset_t *set, int _sig)
164{
165 asm ("bfclr %0{%1,#1}"
166 : "+od" (*set)
167 : "id" ((_sig - 1) ^ 31)
168 : "cc");
169}
170
171static inline int __const_sigismember(sigset_t *set, int _sig)
172{
173 unsigned long sig = _sig - 1;
174 return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW));
175}
176
177static inline int __gen_sigismember(sigset_t *set, int _sig)
178{
179 int ret;
180 asm ("bfextu %1{%2,#1},%0"
181 : "=d" (ret)
182 : "od" (*set), "id" ((_sig-1) ^ 31)
183 : "cc");
184 return ret;
185}
186
187#define sigismember(set,sig) \
188 (__builtin_constant_p(sig) ? \
189 __const_sigismember(set,sig) : \
190 __gen_sigismember(set,sig))
191
192static inline int sigfindinword(unsigned long word)
193{
194 asm ("bfffo %1{#0,#0},%0"
195 : "=d" (word)
196 : "d" (word & -word)
197 : "cc");
198 return word ^ 31;
199}
200
201struct pt_regs;
202extern void ptrace_signal_deliver(struct pt_regs *regs, void *cookie);
203
204#endif /* __KERNEL__ */
205
206#endif /* _M68K_SIGNAL_H */
diff --git a/arch/m68knommu/include/asm/signal.h b/arch/m68k/include/asm/signal_no.h
index 216c08be54a0..216c08be54a0 100644
--- a/arch/m68knommu/include/asm/signal.h
+++ b/arch/m68k/include/asm/signal_no.h
diff --git a/arch/m68knommu/include/asm/smp.h b/arch/m68k/include/asm/smp.h
index 9e9bd7e58922..9e9bd7e58922 100644
--- a/arch/m68knommu/include/asm/smp.h
+++ b/arch/m68k/include/asm/smp.h
diff --git a/arch/m68k/include/asm/socket.h b/arch/m68k/include/asm/socket.h
new file mode 100644
index 000000000000..dbc64e92c41a
--- /dev/null
+++ b/arch/m68k/include/asm/socket.h
@@ -0,0 +1,57 @@
1#ifndef _ASM_SOCKET_H
2#define _ASM_SOCKET_H
3
4#include <asm/sockios.h>
5
6/* For setsockopt(2) */
7#define SOL_SOCKET 1
8
9#define SO_DEBUG 1
10#define SO_REUSEADDR 2
11#define SO_TYPE 3
12#define SO_ERROR 4
13#define SO_DONTROUTE 5
14#define SO_BROADCAST 6
15#define SO_SNDBUF 7
16#define SO_RCVBUF 8
17#define SO_SNDBUFFORCE 32
18#define SO_RCVBUFFORCE 33
19#define SO_KEEPALIVE 9
20#define SO_OOBINLINE 10
21#define SO_NO_CHECK 11
22#define SO_PRIORITY 12
23#define SO_LINGER 13
24#define SO_BSDCOMPAT 14
25/* To add :#define SO_REUSEPORT 15 */
26#define SO_PASSCRED 16
27#define SO_PEERCRED 17
28#define SO_RCVLOWAT 18
29#define SO_SNDLOWAT 19
30#define SO_RCVTIMEO 20
31#define SO_SNDTIMEO 21
32
33/* Security levels - as per NRL IPv6 - don't actually do anything */
34#define SO_SECURITY_AUTHENTICATION 22
35#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
36#define SO_SECURITY_ENCRYPTION_NETWORK 24
37
38#define SO_BINDTODEVICE 25
39
40/* Socket filtering */
41#define SO_ATTACH_FILTER 26
42#define SO_DETACH_FILTER 27
43
44#define SO_PEERNAME 28
45#define SO_TIMESTAMP 29
46#define SCM_TIMESTAMP SO_TIMESTAMP
47
48#define SO_ACCEPTCONN 30
49
50#define SO_PEERSEC 31
51#define SO_PASSSEC 34
52#define SO_TIMESTAMPNS 35
53#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
54
55#define SO_MARK 36
56
57#endif /* _ASM_SOCKET_H */
diff --git a/arch/m68k/include/asm/sockios.h b/arch/m68k/include/asm/sockios.h
new file mode 100644
index 000000000000..c04a23943cb7
--- /dev/null
+++ b/arch/m68k/include/asm/sockios.h
@@ -0,0 +1,13 @@
1#ifndef __ARCH_M68K_SOCKIOS__
2#define __ARCH_M68K_SOCKIOS__
3
4/* Socket-level I/O control calls. */
5#define FIOSETOWN 0x8901
6#define SIOCSPGRP 0x8902
7#define FIOGETOWN 0x8903
8#define SIOCGPGRP 0x8904
9#define SIOCATMARK 0x8905
10#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
11#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
12
13#endif /* __ARCH_M68K_SOCKIOS__ */
diff --git a/arch/m68k/include/asm/spinlock.h b/arch/m68k/include/asm/spinlock.h
new file mode 100644
index 000000000000..20f46e27b534
--- /dev/null
+++ b/arch/m68k/include/asm/spinlock.h
@@ -0,0 +1,6 @@
1#ifndef __M68K_SPINLOCK_H
2#define __M68K_SPINLOCK_H
3
4#error "m68k doesn't do SMP yet"
5
6#endif
diff --git a/arch/m68k/include/asm/stat.h b/arch/m68k/include/asm/stat.h
new file mode 100644
index 000000000000..dd38bc2e9f98
--- /dev/null
+++ b/arch/m68k/include/asm/stat.h
@@ -0,0 +1,77 @@
1#ifndef _M68K_STAT_H
2#define _M68K_STAT_H
3
4struct __old_kernel_stat {
5 unsigned short st_dev;
6 unsigned short st_ino;
7 unsigned short st_mode;
8 unsigned short st_nlink;
9 unsigned short st_uid;
10 unsigned short st_gid;
11 unsigned short st_rdev;
12 unsigned long st_size;
13 unsigned long st_atime;
14 unsigned long st_mtime;
15 unsigned long st_ctime;
16};
17
18struct stat {
19 unsigned short st_dev;
20 unsigned short __pad1;
21 unsigned long st_ino;
22 unsigned short st_mode;
23 unsigned short st_nlink;
24 unsigned short st_uid;
25 unsigned short st_gid;
26 unsigned short st_rdev;
27 unsigned short __pad2;
28 unsigned long st_size;
29 unsigned long st_blksize;
30 unsigned long st_blocks;
31 unsigned long st_atime;
32 unsigned long __unused1;
33 unsigned long st_mtime;
34 unsigned long __unused2;
35 unsigned long st_ctime;
36 unsigned long __unused3;
37 unsigned long __unused4;
38 unsigned long __unused5;
39};
40
41/* This matches struct stat64 in glibc2.1, hence the absolutely
42 * insane amounts of padding around dev_t's.
43 */
44struct stat64 {
45 unsigned long long st_dev;
46 unsigned char __pad1[2];
47
48#define STAT64_HAS_BROKEN_ST_INO 1
49 unsigned long __st_ino;
50
51 unsigned int st_mode;
52 unsigned int st_nlink;
53
54 unsigned long st_uid;
55 unsigned long st_gid;
56
57 unsigned long long st_rdev;
58 unsigned char __pad3[2];
59
60 long long st_size;
61 unsigned long st_blksize;
62
63 unsigned long long st_blocks; /* Number 512-byte blocks allocated. */
64
65 unsigned long st_atime;
66 unsigned long st_atime_nsec;
67
68 unsigned long st_mtime;
69 unsigned long st_mtime_nsec;
70
71 unsigned long st_ctime;
72 unsigned long st_ctime_nsec;
73
74 unsigned long long st_ino;
75};
76
77#endif /* _M68K_STAT_H */
diff --git a/arch/m68k/include/asm/statfs.h b/arch/m68k/include/asm/statfs.h
new file mode 100644
index 000000000000..08d93f14e061
--- /dev/null
+++ b/arch/m68k/include/asm/statfs.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_STATFS_H
2#define _M68K_STATFS_H
3
4#include <asm-generic/statfs.h>
5
6#endif /* _M68K_STATFS_H */
diff --git a/arch/m68k/include/asm/string.h b/arch/m68k/include/asm/string.h
new file mode 100644
index 000000000000..2c356f90f171
--- /dev/null
+++ b/arch/m68k/include/asm/string.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "string_no.h"
3#else
4#include "string_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/string_mm.h b/arch/m68k/include/asm/string_mm.h
new file mode 100644
index 000000000000..2eb7df1e0f5d
--- /dev/null
+++ b/arch/m68k/include/asm/string_mm.h
@@ -0,0 +1,131 @@
1#ifndef _M68K_STRING_H_
2#define _M68K_STRING_H_
3
4#include <linux/types.h>
5#include <linux/compiler.h>
6
7static inline size_t __kernel_strlen(const char *s)
8{
9 const char *sc;
10
11 for (sc = s; *sc++; )
12 ;
13 return sc - s - 1;
14}
15
16static inline char *__kernel_strcpy(char *dest, const char *src)
17{
18 char *xdest = dest;
19
20 asm volatile ("\n"
21 "1: move.b (%1)+,(%0)+\n"
22 " jne 1b"
23 : "+a" (dest), "+a" (src)
24 : : "memory");
25 return xdest;
26}
27
28#ifndef __IN_STRING_C
29
30#define __HAVE_ARCH_STRLEN
31#define strlen(s) (__builtin_constant_p(s) ? \
32 __builtin_strlen(s) : \
33 __kernel_strlen(s))
34
35#define __HAVE_ARCH_STRNLEN
36static inline size_t strnlen(const char *s, size_t count)
37{
38 const char *sc = s;
39
40 asm volatile ("\n"
41 "1: subq.l #1,%1\n"
42 " jcs 2f\n"
43 " tst.b (%0)+\n"
44 " jne 1b\n"
45 " subq.l #1,%0\n"
46 "2:"
47 : "+a" (sc), "+d" (count));
48 return sc - s;
49}
50
51#define __HAVE_ARCH_STRCPY
52#if __GNUC__ >= 4
53#define strcpy(d, s) (__builtin_constant_p(s) && \
54 __builtin_strlen(s) <= 32 ? \
55 __builtin_strcpy(d, s) : \
56 __kernel_strcpy(d, s))
57#else
58#define strcpy(d, s) __kernel_strcpy(d, s)
59#endif
60
61#define __HAVE_ARCH_STRNCPY
62static inline char *strncpy(char *dest, const char *src, size_t n)
63{
64 char *xdest = dest;
65
66 asm volatile ("\n"
67 " jra 2f\n"
68 "1: move.b (%1),(%0)+\n"
69 " jeq 2f\n"
70 " addq.l #1,%1\n"
71 "2: subq.l #1,%2\n"
72 " jcc 1b\n"
73 : "+a" (dest), "+a" (src), "+d" (n)
74 : : "memory");
75 return xdest;
76}
77
78#define __HAVE_ARCH_STRCAT
79#define strcat(d, s) ({ \
80 char *__d = (d); \
81 strcpy(__d + strlen(__d), (s)); \
82})
83
84#define __HAVE_ARCH_STRCHR
85static inline char *strchr(const char *s, int c)
86{
87 char sc, ch = c;
88
89 for (; (sc = *s++) != ch; ) {
90 if (!sc)
91 return NULL;
92 }
93 return (char *)s - 1;
94}
95
96#define __HAVE_ARCH_STRCMP
97static inline int strcmp(const char *cs, const char *ct)
98{
99 char res;
100
101 asm ("\n"
102 "1: move.b (%0)+,%2\n" /* get *cs */
103 " cmp.b (%1)+,%2\n" /* compare a byte */
104 " jne 2f\n" /* not equal, break out */
105 " tst.b %2\n" /* at end of cs? */
106 " jne 1b\n" /* no, keep going */
107 " jra 3f\n" /* strings are equal */
108 "2: sub.b -(%1),%2\n" /* *cs - *ct */
109 "3:"
110 : "+a" (cs), "+a" (ct), "=d" (res));
111 return res;
112}
113
114#define __HAVE_ARCH_MEMSET
115extern void *memset(void *, int, __kernel_size_t);
116#define memset(d, c, n) __builtin_memset(d, c, n)
117
118#define __HAVE_ARCH_MEMCPY
119extern void *memcpy(void *, const void *, __kernel_size_t);
120#define memcpy(d, s, n) __builtin_memcpy(d, s, n)
121
122#define __HAVE_ARCH_MEMMOVE
123extern void *memmove(void *, const void *, __kernel_size_t);
124
125#define __HAVE_ARCH_MEMCMP
126extern int memcmp(const void *, const void *, __kernel_size_t);
127#define memcmp(d, s, n) __builtin_memcmp(d, s, n)
128
129#endif
130
131#endif /* _M68K_STRING_H_ */
diff --git a/arch/m68knommu/include/asm/string.h b/arch/m68k/include/asm/string_no.h
index af09e17000fc..af09e17000fc 100644
--- a/arch/m68knommu/include/asm/string.h
+++ b/arch/m68k/include/asm/string_no.h
diff --git a/arch/m68k/include/asm/sun3-head.h b/arch/m68k/include/asm/sun3-head.h
new file mode 100644
index 000000000000..05af2f18b3bd
--- /dev/null
+++ b/arch/m68k/include/asm/sun3-head.h
@@ -0,0 +1,10 @@
1#ifndef __SUN3_HEAD_H
2#define __SUN3_HEAD_H
3
4#define KERNBASE 0xE000000 /* First address the kernel will eventually be */
5#define LOAD_ADDR 0x4000 /* prom jumps to us here unless this is elf /boot */
6#define FC_CONTROL 3
7#define FC_SUPERD 5
8#define FC_CPU 7
9
10#endif /* __SUN3_HEAD_H */
diff --git a/arch/m68k/include/asm/sun3_pgalloc.h b/arch/m68k/include/asm/sun3_pgalloc.h
new file mode 100644
index 000000000000..d4c83f143816
--- /dev/null
+++ b/arch/m68k/include/asm/sun3_pgalloc.h
@@ -0,0 +1,102 @@
1/* sun3_pgalloc.h --
2 * reorganization around 2.3.39, routines moved from sun3_pgtable.h
3 *
4 *
5 * 02/27/2002 -- Modified to support "highpte" implementation in 2.5.5 (Sam)
6 *
7 * moved 1/26/2000 Sam Creasey
8 */
9
10#ifndef _SUN3_PGALLOC_H
11#define _SUN3_PGALLOC_H
12
13#include <asm/tlb.h>
14
15/* FIXME - when we get this compiling */
16/* erm, now that it's compiling, what do we do with it? */
17#define _KERNPG_TABLE 0
18
19extern const char bad_pmd_string[];
20
21#define pmd_alloc_one(mm,address) ({ BUG(); ((pmd_t *)2); })
22
23
24static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
25{
26 free_page((unsigned long) pte);
27}
28
29static inline void pte_free(struct mm_struct *mm, pgtable_t page)
30{
31 pgtable_page_dtor(page);
32 __free_page(page);
33}
34
35#define __pte_free_tlb(tlb,pte) \
36do { \
37 pgtable_page_dtor(pte); \
38 tlb_remove_page((tlb), pte); \
39} while (0)
40
41static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
42 unsigned long address)
43{
44 unsigned long page = __get_free_page(GFP_KERNEL|__GFP_REPEAT);
45
46 if (!page)
47 return NULL;
48
49 memset((void *)page, 0, PAGE_SIZE);
50 return (pte_t *) (page);
51}
52
53static inline pgtable_t pte_alloc_one(struct mm_struct *mm,
54 unsigned long address)
55{
56 struct page *page = alloc_pages(GFP_KERNEL|__GFP_REPEAT, 0);
57
58 if (page == NULL)
59 return NULL;
60
61 clear_highpage(page);
62 pgtable_page_ctor(page);
63 return page;
64
65}
66
67static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
68{
69 pmd_val(*pmd) = __pa((unsigned long)pte);
70}
71
72static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t page)
73{
74 pmd_val(*pmd) = __pa((unsigned long)page_address(page));
75}
76#define pmd_pgtable(pmd) pmd_page(pmd)
77
78/*
79 * allocating and freeing a pmd is trivial: the 1-entry pmd is
80 * inside the pgd, so has no extra memory associated with it.
81 */
82#define pmd_free(mm, x) do { } while (0)
83#define __pmd_free_tlb(tlb, x) do { } while (0)
84
85static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
86{
87 free_page((unsigned long) pgd);
88}
89
90static inline pgd_t * pgd_alloc(struct mm_struct *mm)
91{
92 pgd_t *new_pgd;
93
94 new_pgd = (pgd_t *)get_zeroed_page(GFP_KERNEL);
95 memcpy(new_pgd, swapper_pg_dir, PAGE_SIZE);
96 memset(new_pgd, 0, (PAGE_OFFSET >> PGDIR_SHIFT));
97 return new_pgd;
98}
99
100#define pgd_populate(mm, pmd, pte) BUG()
101
102#endif /* SUN3_PGALLOC_H */
diff --git a/arch/m68k/include/asm/sun3_pgtable.h b/arch/m68k/include/asm/sun3_pgtable.h
new file mode 100644
index 000000000000..f847ec732d62
--- /dev/null
+++ b/arch/m68k/include/asm/sun3_pgtable.h
@@ -0,0 +1,234 @@
1#ifndef _SUN3_PGTABLE_H
2#define _SUN3_PGTABLE_H
3
4#include <asm/sun3mmu.h>
5
6#ifndef __ASSEMBLY__
7#include <asm/virtconvert.h>
8#include <linux/linkage.h>
9
10/*
11 * This file contains all the things which change drastically for the sun3
12 * pagetable stuff, to avoid making too much of a mess of the generic m68k
13 * `pgtable.h'; this should only be included from the generic file. --m
14 */
15
16/* For virtual address to physical address conversion */
17#define VTOP(addr) __pa(addr)
18#define PTOV(addr) __va(addr)
19
20
21#endif /* !__ASSEMBLY__ */
22
23/* These need to be defined for compatibility although the sun3 doesn't use them */
24#define _PAGE_NOCACHE030 0x040
25#define _CACHEMASK040 (~0x060)
26#define _PAGE_NOCACHE_S 0x040
27
28/* Page protection values within PTE. */
29#define SUN3_PAGE_VALID (0x80000000)
30#define SUN3_PAGE_WRITEABLE (0x40000000)
31#define SUN3_PAGE_SYSTEM (0x20000000)
32#define SUN3_PAGE_NOCACHE (0x10000000)
33#define SUN3_PAGE_ACCESSED (0x02000000)
34#define SUN3_PAGE_MODIFIED (0x01000000)
35
36
37/* Externally used page protection values. */
38#define _PAGE_PRESENT (SUN3_PAGE_VALID)
39#define _PAGE_ACCESSED (SUN3_PAGE_ACCESSED)
40
41#define PTE_FILE_MAX_BITS 28
42
43/* Compound page protection values. */
44//todo: work out which ones *should* have SUN3_PAGE_NOCACHE and fix...
45// is it just PAGE_KERNEL and PAGE_SHARED?
46#define PAGE_NONE __pgprot(SUN3_PAGE_VALID \
47 | SUN3_PAGE_ACCESSED \
48 | SUN3_PAGE_NOCACHE)
49#define PAGE_SHARED __pgprot(SUN3_PAGE_VALID \
50 | SUN3_PAGE_WRITEABLE \
51 | SUN3_PAGE_ACCESSED \
52 | SUN3_PAGE_NOCACHE)
53#define PAGE_COPY __pgprot(SUN3_PAGE_VALID \
54 | SUN3_PAGE_ACCESSED \
55 | SUN3_PAGE_NOCACHE)
56#define PAGE_READONLY __pgprot(SUN3_PAGE_VALID \
57 | SUN3_PAGE_ACCESSED \
58 | SUN3_PAGE_NOCACHE)
59#define PAGE_KERNEL __pgprot(SUN3_PAGE_VALID \
60 | SUN3_PAGE_WRITEABLE \
61 | SUN3_PAGE_SYSTEM \
62 | SUN3_PAGE_NOCACHE \
63 | SUN3_PAGE_ACCESSED \
64 | SUN3_PAGE_MODIFIED)
65#define PAGE_INIT __pgprot(SUN3_PAGE_VALID \
66 | SUN3_PAGE_WRITEABLE \
67 | SUN3_PAGE_SYSTEM \
68 | SUN3_PAGE_NOCACHE)
69
70/*
71 * Page protections for initialising protection_map. The sun3 has only two
72 * protection settings, valid (implying read and execute) and writeable. These
73 * are as close as we can get...
74 */
75#define __P000 PAGE_NONE
76#define __P001 PAGE_READONLY
77#define __P010 PAGE_COPY
78#define __P011 PAGE_COPY
79#define __P100 PAGE_READONLY
80#define __P101 PAGE_READONLY
81#define __P110 PAGE_COPY
82#define __P111 PAGE_COPY
83
84#define __S000 PAGE_NONE
85#define __S001 PAGE_READONLY
86#define __S010 PAGE_SHARED
87#define __S011 PAGE_SHARED
88#define __S100 PAGE_READONLY
89#define __S101 PAGE_READONLY
90#define __S110 PAGE_SHARED
91#define __S111 PAGE_SHARED
92
93/* Use these fake page-protections on PMDs. */
94#define SUN3_PMD_VALID (0x00000001)
95#define SUN3_PMD_MASK (0x0000003F)
96#define SUN3_PMD_MAGIC (0x0000002B)
97
98#ifndef __ASSEMBLY__
99
100/*
101 * Conversion functions: convert a page and protection to a page entry,
102 * and a page entry and page directory to the page they refer to.
103 */
104#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
105
106static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
107{
108 pte_val(pte) = (pte_val(pte) & SUN3_PAGE_CHG_MASK) | pgprot_val(newprot);
109 return pte;
110}
111
112#define pmd_set(pmdp,ptep) do {} while (0)
113
114static inline void pgd_set(pgd_t *pgdp, pmd_t *pmdp)
115{
116 pgd_val(*pgdp) = virt_to_phys(pmdp);
117}
118
119#define __pte_page(pte) \
120((unsigned long) __va ((pte_val (pte) & SUN3_PAGE_PGNUM_MASK) << PAGE_SHIFT))
121#define __pmd_page(pmd) \
122((unsigned long) __va (pmd_val (pmd) & PAGE_MASK))
123
124static inline int pte_none (pte_t pte) { return !pte_val (pte); }
125static inline int pte_present (pte_t pte) { return pte_val (pte) & SUN3_PAGE_VALID; }
126static inline void pte_clear (struct mm_struct *mm, unsigned long addr, pte_t *ptep)
127{
128 pte_val (*ptep) = 0;
129}
130
131#define pte_pfn(pte) (pte_val(pte) & SUN3_PAGE_PGNUM_MASK)
132#define pfn_pte(pfn, pgprot) \
133({ pte_t __pte; pte_val(__pte) = pfn | pgprot_val(pgprot); __pte; })
134
135#define pte_page(pte) virt_to_page(__pte_page(pte))
136#define pmd_page(pmd) virt_to_page(__pmd_page(pmd))
137
138
139static inline int pmd_none2 (pmd_t *pmd) { return !pmd_val (*pmd); }
140#define pmd_none(pmd) pmd_none2(&(pmd))
141//static inline int pmd_bad (pmd_t pmd) { return (pmd_val (pmd) & SUN3_PMD_MASK) != SUN3_PMD_MAGIC; }
142static inline int pmd_bad2 (pmd_t *pmd) { return 0; }
143#define pmd_bad(pmd) pmd_bad2(&(pmd))
144static inline int pmd_present2 (pmd_t *pmd) { return pmd_val (*pmd) & SUN3_PMD_VALID; }
145/* #define pmd_present(pmd) pmd_present2(&(pmd)) */
146#define pmd_present(pmd) (!pmd_none2(&(pmd)))
147static inline void pmd_clear (pmd_t *pmdp) { pmd_val (*pmdp) = 0; }
148
149static inline int pgd_none (pgd_t pgd) { return 0; }
150static inline int pgd_bad (pgd_t pgd) { return 0; }
151static inline int pgd_present (pgd_t pgd) { return 1; }
152static inline void pgd_clear (pgd_t *pgdp) {}
153
154
155#define pte_ERROR(e) \
156 printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
157#define pmd_ERROR(e) \
158 printk("%s:%d: bad pmd %08lx.\n", __FILE__, __LINE__, pmd_val(e))
159#define pgd_ERROR(e) \
160 printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
161
162
163/*
164 * The following only work if pte_present() is true.
165 * Undefined behaviour if not...
166 * [we have the full set here even if they don't change from m68k]
167 */
168static inline int pte_write(pte_t pte) { return pte_val(pte) & SUN3_PAGE_WRITEABLE; }
169static inline int pte_dirty(pte_t pte) { return pte_val(pte) & SUN3_PAGE_MODIFIED; }
170static inline int pte_young(pte_t pte) { return pte_val(pte) & SUN3_PAGE_ACCESSED; }
171static inline int pte_file(pte_t pte) { return pte_val(pte) & SUN3_PAGE_ACCESSED; }
172static inline int pte_special(pte_t pte) { return 0; }
173
174static inline pte_t pte_wrprotect(pte_t pte) { pte_val(pte) &= ~SUN3_PAGE_WRITEABLE; return pte; }
175static inline pte_t pte_mkclean(pte_t pte) { pte_val(pte) &= ~SUN3_PAGE_MODIFIED; return pte; }
176static inline pte_t pte_mkold(pte_t pte) { pte_val(pte) &= ~SUN3_PAGE_ACCESSED; return pte; }
177static inline pte_t pte_mkwrite(pte_t pte) { pte_val(pte) |= SUN3_PAGE_WRITEABLE; return pte; }
178static inline pte_t pte_mkdirty(pte_t pte) { pte_val(pte) |= SUN3_PAGE_MODIFIED; return pte; }
179static inline pte_t pte_mkyoung(pte_t pte) { pte_val(pte) |= SUN3_PAGE_ACCESSED; return pte; }
180static inline pte_t pte_mknocache(pte_t pte) { pte_val(pte) |= SUN3_PAGE_NOCACHE; return pte; }
181// use this version when caches work...
182//static inline pte_t pte_mkcache(pte_t pte) { pte_val(pte) &= SUN3_PAGE_NOCACHE; return pte; }
183// until then, use:
184static inline pte_t pte_mkcache(pte_t pte) { return pte; }
185static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
186
187extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
188extern pgd_t kernel_pg_dir[PTRS_PER_PGD];
189
190/* Find an entry in a pagetable directory. */
191#define pgd_index(address) ((address) >> PGDIR_SHIFT)
192
193#define pgd_offset(mm, address) \
194((mm)->pgd + pgd_index(address))
195
196/* Find an entry in a kernel pagetable directory. */
197#define pgd_offset_k(address) pgd_offset(&init_mm, address)
198
199/* Find an entry in the second-level pagetable. */
200static inline pmd_t *pmd_offset (pgd_t *pgd, unsigned long address)
201{
202 return (pmd_t *) pgd;
203}
204
205static inline unsigned long pte_to_pgoff(pte_t pte)
206{
207 return pte.pte & SUN3_PAGE_PGNUM_MASK;
208}
209
210static inline pte_t pgoff_to_pte(unsigned off)
211{
212 pte_t pte = { off + SUN3_PAGE_ACCESSED };
213 return pte;
214}
215
216
217/* Find an entry in the third-level pagetable. */
218#define pte_index(address) ((address >> PAGE_SHIFT) & (PTRS_PER_PTE-1))
219#define pte_offset_kernel(pmd, address) ((pte_t *) __pmd_page(*pmd) + pte_index(address))
220/* FIXME: should we bother with kmap() here? */
221#define pte_offset_map(pmd, address) ((pte_t *)kmap(pmd_page(*pmd)) + pte_index(address))
222#define pte_offset_map_nested(pmd, address) pte_offset_map(pmd, address)
223#define pte_unmap(pte) kunmap(pte)
224#define pte_unmap_nested(pte) kunmap(pte)
225
226/* Macros to (de)construct the fake PTEs representing swap pages. */
227#define __swp_type(x) ((x).val & 0x7F)
228#define __swp_offset(x) (((x).val) >> 7)
229#define __swp_entry(type,offset) ((swp_entry_t) { ((type) | ((offset) << 7)) })
230#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
231#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
232
233#endif /* !__ASSEMBLY__ */
234#endif /* !_SUN3_PGTABLE_H */
diff --git a/arch/m68k/include/asm/sun3ints.h b/arch/m68k/include/asm/sun3ints.h
new file mode 100644
index 000000000000..309d6e6a1374
--- /dev/null
+++ b/arch/m68k/include/asm/sun3ints.h
@@ -0,0 +1,37 @@
1/*
2 * sun3ints.h -- Linux/Sun3 interrupt handling code definitions
3 *
4 * Erik Verbruggen (erik@bigmama.xtdnet.nl)
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive for
8 * more details.
9 */
10
11#ifndef SUN3INTS_H
12#define SUN3INTS_H
13
14#include <linux/types.h>
15#include <linux/interrupt.h>
16#include <asm/intersil.h>
17#include <asm/oplib.h>
18#include <asm/traps.h>
19#include <asm/irq.h>
20
21#define SUN3_INT_VECS 192
22
23void sun3_enable_irq(unsigned int irq);
24void sun3_disable_irq(unsigned int irq);
25extern void sun3_init_IRQ (void);
26extern void sun3_enable_interrupts (void);
27extern void sun3_disable_interrupts (void);
28extern volatile unsigned char* sun3_intreg;
29
30/* master list of VME vectors -- don't fuck with this */
31#define SUN3_VEC_FLOPPY (IRQ_USER+0)
32#define SUN3_VEC_VMESCSI0 (IRQ_USER+0)
33#define SUN3_VEC_VMESCSI1 (IRQ_USER+1)
34#define SUN3_VEC_CG (IRQ_USER+104)
35
36
37#endif /* SUN3INTS_H */
diff --git a/arch/m68k/include/asm/sun3mmu.h b/arch/m68k/include/asm/sun3mmu.h
new file mode 100644
index 000000000000..d8f17a0d8c9f
--- /dev/null
+++ b/arch/m68k/include/asm/sun3mmu.h
@@ -0,0 +1,171 @@
1/*
2 * Definitions for Sun3 custom MMU.
3 */
4#ifndef __SUN3_MMU_H__
5#define __SUN3_MMU_H__
6
7#include <linux/types.h>
8#include <asm/movs.h>
9#include <asm/sun3-head.h>
10
11/* MMU characteristics. */
12#define SUN3_SEGMAPS_PER_CONTEXT 2048
13#define SUN3_PMEGS_NUM 256
14#define SUN3_CONTEXTS_NUM 8
15
16#define SUN3_PMEG_SIZE_BITS 17
17#define SUN3_PMEG_SIZE (1 << SUN3_PMEG_SIZE_BITS)
18#define SUN3_PMEG_MASK (SUN3_PMEG_SIZE - 1)
19
20#define SUN3_PTE_SIZE_BITS 13
21#define SUN3_PTE_SIZE (1 << SUN3_PTE_SIZE_BITS)
22#define SUN3_PTE_MASK (SUN3_PTE_SIZE - 1)
23
24#define SUN3_CONTROL_MASK (0x0FFFFFFC)
25#define SUN3_INVALID_PMEG 255
26#define SUN3_INVALID_CONTEXT 255
27
28#define AC_IDPROM 0x00000000 /* 34 ID PROM, R/O, byte, 32 bytes */
29#define AC_PAGEMAP 0x10000000 /* 3 Pagemap R/W, long */
30#define AC_SEGMAP 0x20000000 /* 3 Segment map, byte */
31#define AC_CONTEXT 0x30000000 /* 34c current mmu-context */
32#define AC_SENABLE 0x40000000 /* 34c system dvma/cache/reset enable reg*/
33#define AC_UDVMA_ENB 0x50000000 /* 34 Not used on Sun boards, byte */
34#define AC_BUS_ERROR 0x60000000 /* 34 Cleared on read, byte. */
35#define AC_SYNC_ERR 0x60000000 /* c fault type */
36#define AC_SYNC_VA 0x60000004 /* c fault virtual address */
37#define AC_ASYNC_ERR 0x60000008 /* c asynchronous fault type */
38#define AC_ASYNC_VA 0x6000000c /* c async fault virtual address */
39#define AC_LEDS 0x70000000 /* 34 Zero turns on LEDs, byte */
40#define AC_CACHETAGS 0x80000000 /* 34c direct access to the VAC tags */
41#define AC_CACHEDDATA 0x90000000 /* 3 c direct access to the VAC data */
42#define AC_UDVMA_MAP 0xD0000000 /* 4 Not used on Sun boards, byte */
43#define AC_VME_VECTOR 0xE0000000 /* 4 For non-Autovector VME, byte */
44#define AC_BOOT_SCC 0xF0000000 /* 34 bypass to access Zilog 8530. byte.*/
45
46#define SUN3_PAGE_CHG_MASK (SUN3_PAGE_PGNUM_MASK \
47 | SUN3_PAGE_ACCESSED | SUN3_PAGE_MODIFIED)
48
49/* Bus access type within PTE. */
50#define SUN3_PAGE_TYPE_MASK (0x0c000000)
51#define SUN3_PAGE_TYPE_MEMORY (0x00000000)
52#define SUN3_PAGE_TYPE_IO (0x04000000)
53#define SUN3_PAGE_TYPE_VME16 (0x08000000)
54#define SUN3_PAGE_TYPE_VME32 (0x0c000000)
55
56/* Mask for page number within PTE. */
57#define SUN3_PAGE_PGNUM_MASK (0x0007FFFF)
58
59/* Bits within bus-error register. */
60#define SUN3_BUSERR_WATCHDOG (0x01)
61#define SUN3_BUSERR_unused (0x02)
62#define SUN3_BUSERR_FPAENERR (0x04)
63#define SUN3_BUSERR_FPABERR (0x08)
64#define SUN3_BUSERR_VMEBERR (0x10)
65#define SUN3_BUSERR_TIMEOUT (0x20)
66#define SUN3_BUSERR_PROTERR (0x40)
67#define SUN3_BUSERR_INVALID (0x80)
68
69#ifndef __ASSEMBLY__
70
71/* Read bus error status register (implicitly clearing it). */
72static inline unsigned char sun3_get_buserr(void)
73{
74 unsigned char sfc, c;
75
76 GET_SFC (sfc);
77 SET_SFC (FC_CONTROL);
78 GET_CONTROL_BYTE (AC_BUS_ERROR, c);
79 SET_SFC (sfc);
80
81 return c;
82}
83
84/* Read segmap from hardware MMU. */
85static inline unsigned long sun3_get_segmap(unsigned long addr)
86{
87 register unsigned long entry;
88 unsigned char c, sfc;
89
90 GET_SFC (sfc);
91 SET_SFC (FC_CONTROL);
92 GET_CONTROL_BYTE (AC_SEGMAP | (addr & SUN3_CONTROL_MASK), c);
93 SET_SFC (sfc);
94 entry = c;
95
96 return entry;
97}
98
99/* Write segmap to hardware MMU. */
100static inline void sun3_put_segmap(unsigned long addr, unsigned long entry)
101{
102 unsigned char sfc;
103
104 GET_DFC (sfc);
105 SET_DFC (FC_CONTROL);
106 SET_CONTROL_BYTE (AC_SEGMAP | (addr & SUN3_CONTROL_MASK), entry);
107 SET_DFC (sfc);
108
109 return;
110}
111
112/* Read PTE from hardware MMU. */
113static inline unsigned long sun3_get_pte(unsigned long addr)
114{
115 register unsigned long entry;
116 unsigned char sfc;
117
118 GET_SFC (sfc);
119 SET_SFC (FC_CONTROL);
120 GET_CONTROL_WORD (AC_PAGEMAP | (addr & SUN3_CONTROL_MASK), entry);
121 SET_SFC (sfc);
122
123 return entry;
124}
125
126/* Write PTE to hardware MMU. */
127static inline void sun3_put_pte(unsigned long addr, unsigned long entry)
128{
129 unsigned char sfc;
130
131 GET_DFC (sfc);
132 SET_DFC (FC_CONTROL);
133 SET_CONTROL_WORD (AC_PAGEMAP | (addr & SUN3_CONTROL_MASK), entry);
134 SET_DFC (sfc);
135
136 return;
137}
138
139/* get current context */
140static inline unsigned char sun3_get_context(void)
141{
142 unsigned char sfc, c;
143
144 GET_SFC(sfc);
145 SET_SFC(FC_CONTROL);
146 GET_CONTROL_BYTE(AC_CONTEXT, c);
147 SET_SFC(sfc);
148
149 return c;
150}
151
152/* set alternate context */
153static inline void sun3_put_context(unsigned char c)
154{
155 unsigned char dfc;
156 GET_DFC(dfc);
157 SET_DFC(FC_CONTROL);
158 SET_CONTROL_BYTE(AC_CONTEXT, c);
159 SET_DFC(dfc);
160
161 return;
162}
163
164extern void __iomem *sun3_ioremap(unsigned long phys, unsigned long size,
165 unsigned long type);
166
167extern int sun3_map_test(unsigned long addr, char *val);
168
169#endif /* !__ASSEMBLY__ */
170
171#endif /* !__SUN3_MMU_H__ */
diff --git a/arch/m68k/include/asm/sun3x.h b/arch/m68k/include/asm/sun3x.h
new file mode 100644
index 000000000000..f5691a1ed7cc
--- /dev/null
+++ b/arch/m68k/include/asm/sun3x.h
@@ -0,0 +1,27 @@
1#ifndef SUN3X_H
2#define SUN3X_H
3
4/* hardware addresses */
5#define SUN3X_IOMMU 0x60000000
6#define SUN3X_ENAREG 0x61000000
7#define SUN3X_INTREG 0x61001400
8#define SUN3X_DIAGREG 0x61001800
9#define SUN3X_ZS1 0x62000000
10#define SUN3X_ZS2 0x62002000
11#define SUN3X_LANCE 0x65002000
12#define SUN3X_EEPROM 0x64000000
13#define SUN3X_IDPROM 0x640007d8
14#define SUN3X_VIDEO_BASE 0x50000000
15#define SUN3X_VIDEO_P4ID 0x50300000
16#define SUN3X_ESP_BASE 0x66000000
17#define SUN3X_ESP_DMA 0x66001000
18#define SUN3X_FDC 0x6e000000
19#define SUN3X_FDC_FCR 0x6e000400
20#define SUN3X_FDC_FVR 0x6e000800
21
22/* some NVRAM addresses */
23#define SUN3X_EEPROM_CONS (SUN3X_EEPROM + 0x1f)
24#define SUN3X_EEPROM_PORTA (SUN3X_EEPROM + 0x58)
25#define SUN3X_EEPROM_PORTB (SUN3X_EEPROM + 0x60)
26
27#endif
diff --git a/arch/m68k/include/asm/sun3xflop.h b/arch/m68k/include/asm/sun3xflop.h
new file mode 100644
index 000000000000..32c45f84ac60
--- /dev/null
+++ b/arch/m68k/include/asm/sun3xflop.h
@@ -0,0 +1,263 @@
1/* sun3xflop.h: Sun3/80 specific parts of the floppy driver.
2 *
3 * Derived partially from asm-sparc/floppy.h, which is:
4 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
5 *
6 * Sun3x version 2/4/2000 Sam Creasey (sammy@sammy.net)
7 */
8
9#ifndef __ASM_SUN3X_FLOPPY_H
10#define __ASM_SUN3X_FLOPPY_H
11
12#include <asm/page.h>
13#include <asm/pgtable.h>
14#include <asm/system.h>
15#include <asm/irq.h>
16#include <asm/sun3x.h>
17
18/* default interrupt vector */
19#define SUN3X_FDC_IRQ 0x40
20
21/* some constants */
22#define FCR_TC 0x1
23#define FCR_EJECT 0x2
24#define FCR_MTRON 0x4
25#define FCR_DSEL1 0x8
26#define FCR_DSEL0 0x10
27
28/* We don't need no stinkin' I/O port allocation crap. */
29#undef release_region
30#undef request_region
31#define release_region(X, Y) do { } while(0)
32#define request_region(X, Y, Z) (1)
33
34struct sun3xflop_private {
35 volatile unsigned char *status_r;
36 volatile unsigned char *data_r;
37 volatile unsigned char *fcr_r;
38 volatile unsigned char *fvr_r;
39 unsigned char fcr;
40} sun3x_fdc;
41
42/* Super paranoid... */
43#undef HAVE_DISABLE_HLT
44
45/* Routines unique to each controller type on a Sun. */
46static unsigned char sun3x_82072_fd_inb(int port)
47{
48 static int once = 0;
49// udelay(5);
50 switch(port & 7) {
51 default:
52 printk("floppy: Asked to read unknown port %d\n", port);
53 panic("floppy: Port bolixed.");
54 case 4: /* FD_STATUS */
55 return (*sun3x_fdc.status_r) & ~STATUS_DMA;
56 case 5: /* FD_DATA */
57 return (*sun3x_fdc.data_r);
58 case 7: /* FD_DIR */
59 /* ugly hack, I can't find a way to actually detect the disk */
60 if(!once) {
61 once = 1;
62 return 0x80;
63 }
64 return 0;
65 };
66 panic("sun_82072_fd_inb: How did I get here?");
67}
68
69static void sun3x_82072_fd_outb(unsigned char value, int port)
70{
71// udelay(5);
72 switch(port & 7) {
73 default:
74 printk("floppy: Asked to write to unknown port %d\n", port);
75 panic("floppy: Port bolixed.");
76 case 2: /* FD_DOR */
77 /* Oh geese, 82072 on the Sun has no DOR register,
78 * so we make do with taunting the FCR.
79 *
80 * ASSUMPTIONS: There will only ever be one floppy
81 * drive attached to a Sun controller
82 * and it will be at drive zero.
83 */
84
85 {
86 unsigned char fcr = sun3x_fdc.fcr;
87
88 if(value & 0x10) {
89 fcr |= (FCR_DSEL0 | FCR_MTRON);
90 } else
91 fcr &= ~(FCR_DSEL0 | FCR_MTRON);
92
93
94 if(fcr != sun3x_fdc.fcr) {
95 *(sun3x_fdc.fcr_r) = fcr;
96 sun3x_fdc.fcr = fcr;
97 }
98 }
99 break;
100 case 5: /* FD_DATA */
101 *(sun3x_fdc.data_r) = value;
102 break;
103 case 7: /* FD_DCR */
104 *(sun3x_fdc.status_r) = value;
105 break;
106 case 4: /* FD_STATUS */
107 *(sun3x_fdc.status_r) = value;
108 break;
109 };
110 return;
111}
112
113
114asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id)
115{
116 register unsigned char st;
117
118#undef TRACE_FLPY_INT
119#define NO_FLOPPY_ASSEMBLER
120
121#ifdef TRACE_FLPY_INT
122 static int calls=0;
123 static int bytes=0;
124 static int dma_wait=0;
125#endif
126 if(!doing_pdma) {
127 floppy_interrupt(irq, dev_id);
128 return IRQ_HANDLED;
129 }
130
131// printk("doing pdma\n");// st %x\n", sun_fdc->status_82072);
132
133#ifdef TRACE_FLPY_INT
134 if(!calls)
135 bytes = virtual_dma_count;
136#endif
137
138 {
139 register int lcount;
140 register char *lptr;
141
142 for(lcount=virtual_dma_count, lptr=virtual_dma_addr;
143 lcount; lcount--, lptr++) {
144/* st=fd_inb(virtual_dma_port+4) & 0x80 ; */
145 st = *(sun3x_fdc.status_r);
146/* if(st != 0xa0) */
147/* break; */
148
149 if((st & 0x80) == 0) {
150 virtual_dma_count = lcount;
151 virtual_dma_addr = lptr;
152 return IRQ_HANDLED;
153 }
154
155 if((st & 0x20) == 0)
156 break;
157
158 if(virtual_dma_mode)
159/* fd_outb(*lptr, virtual_dma_port+5); */
160 *(sun3x_fdc.data_r) = *lptr;
161 else
162/* *lptr = fd_inb(virtual_dma_port+5); */
163 *lptr = *(sun3x_fdc.data_r);
164 }
165
166 virtual_dma_count = lcount;
167 virtual_dma_addr = lptr;
168/* st = fd_inb(virtual_dma_port+4); */
169 st = *(sun3x_fdc.status_r);
170 }
171
172#ifdef TRACE_FLPY_INT
173 calls++;
174#endif
175// printk("st=%02x\n", st);
176 if(st == 0x20)
177 return IRQ_HANDLED;
178 if(!(st & 0x20)) {
179 virtual_dma_residue += virtual_dma_count;
180 virtual_dma_count=0;
181 doing_pdma = 0;
182
183#ifdef TRACE_FLPY_INT
184 printk("count=%x, residue=%x calls=%d bytes=%x dma_wait=%d\n",
185 virtual_dma_count, virtual_dma_residue, calls, bytes,
186 dma_wait);
187 calls = 0;
188 dma_wait=0;
189#endif
190
191 floppy_interrupt(irq, dev_id);
192 return IRQ_HANDLED;
193 }
194
195
196#ifdef TRACE_FLPY_INT
197 if(!virtual_dma_count)
198 dma_wait++;
199#endif
200 return IRQ_HANDLED;
201}
202
203static int sun3xflop_request_irq(void)
204{
205 static int once = 0;
206 int error;
207
208 if(!once) {
209 once = 1;
210 error = request_irq(FLOPPY_IRQ, sun3xflop_hardint,
211 IRQF_DISABLED, "floppy", NULL);
212 return ((error == 0) ? 0 : -1);
213 } else return 0;
214}
215
216static void __init floppy_set_flags(int *ints,int param, int param2);
217
218static int sun3xflop_init(void)
219{
220 if(FLOPPY_IRQ < 0x40)
221 FLOPPY_IRQ = SUN3X_FDC_IRQ;
222
223 sun3x_fdc.status_r = (volatile unsigned char *)SUN3X_FDC;
224 sun3x_fdc.data_r = (volatile unsigned char *)(SUN3X_FDC+1);
225 sun3x_fdc.fcr_r = (volatile unsigned char *)SUN3X_FDC_FCR;
226 sun3x_fdc.fvr_r = (volatile unsigned char *)SUN3X_FDC_FVR;
227 sun3x_fdc.fcr = 0;
228
229 /* Last minute sanity check... */
230 if(*sun3x_fdc.status_r == 0xff) {
231 return -1;
232 }
233
234 *sun3x_fdc.fvr_r = FLOPPY_IRQ;
235
236 *sun3x_fdc.fcr_r = FCR_TC;
237 udelay(10);
238 *sun3x_fdc.fcr_r = 0;
239
240 /* Success... */
241 floppy_set_flags(NULL, 1, FD_BROKEN_DCL); // I don't know how to detect this.
242 allowed_drive_mask = 0x01;
243 return (int) SUN3X_FDC;
244}
245
246/* I'm not precisely sure this eject routine works */
247static int sun3x_eject(void)
248{
249 if(MACH_IS_SUN3X) {
250
251 sun3x_fdc.fcr |= (FCR_DSEL0 | FCR_EJECT);
252 *(sun3x_fdc.fcr_r) = sun3x_fdc.fcr;
253 udelay(10);
254 sun3x_fdc.fcr &= ~(FCR_DSEL0 | FCR_EJECT);
255 *(sun3x_fdc.fcr_r) = sun3x_fdc.fcr;
256 }
257
258 return 0;
259}
260
261#define fd_eject(drive) sun3x_eject()
262
263#endif /* !(__ASM_SUN3X_FLOPPY_H) */
diff --git a/arch/m68k/include/asm/sun3xprom.h b/arch/m68k/include/asm/sun3xprom.h
new file mode 100644
index 000000000000..6735efcf5f6d
--- /dev/null
+++ b/arch/m68k/include/asm/sun3xprom.h
@@ -0,0 +1,43 @@
1/* Useful PROM locations */
2
3#ifndef SUN3X_PROM_H
4#define SUN3X_PROM_H
5
6extern void (*sun3x_putchar)(int);
7extern int (*sun3x_getchar)(void);
8extern int (*sun3x_mayget)(void);
9extern int (*sun3x_mayput)(int);
10
11void sun3x_reboot(void);
12void sun3x_abort(void);
13void sun3x_prom_init(void);
14unsigned long sun3x_prom_ptov(unsigned long pa, unsigned long size);
15
16/* interesting hardware locations */
17#define SUN3X_IOMMU 0x60000000
18#define SUN3X_ENAREG 0x61000000
19#define SUN3X_INTREG 0x61001400
20#define SUN3X_DIAGREG 0x61001800
21#define SUN3X_ZS1 0x62000000
22#define SUN3X_ZS2 0x62002000
23#define SUN3X_LANCE 0x65002000
24#define SUN3X_EEPROM 0x64000000
25#define SUN3X_IDPROM 0x640007d8
26#define SUN3X_VIDEO_BASE 0x50400000
27#define SUN3X_VIDEO_REGS 0x50300000
28
29/* vector table */
30#define SUN3X_PROM_BASE 0xfefe0000
31#define SUN3X_P_GETCHAR (SUN3X_PROM_BASE + 20)
32#define SUN3X_P_PUTCHAR (SUN3X_PROM_BASE + 24)
33#define SUN3X_P_MAYGET (SUN3X_PROM_BASE + 28)
34#define SUN3X_P_MAYPUT (SUN3X_PROM_BASE + 32)
35#define SUN3X_P_REBOOT (SUN3X_PROM_BASE + 96)
36#define SUN3X_P_SETLEDS (SUN3X_PROM_BASE + 144)
37#define SUN3X_P_ABORT (SUN3X_PROM_BASE + 152)
38
39/* mapped area */
40#define SUN3X_MAP_START 0xfee00000
41#define SUN3X_MAP_END 0xff000000
42
43#endif
diff --git a/arch/m68k/include/asm/suspend.h b/arch/m68k/include/asm/suspend.h
new file mode 100644
index 000000000000..57b3ddb4d269
--- /dev/null
+++ b/arch/m68k/include/asm/suspend.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_SUSPEND_H
2#define _M68K_SUSPEND_H
3
4/* Dummy include. */
5
6#endif /* _M68K_SUSPEND_H */
diff --git a/arch/m68k/include/asm/swab.h b/arch/m68k/include/asm/swab.h
new file mode 100644
index 000000000000..7d7dde1c73ec
--- /dev/null
+++ b/arch/m68k/include/asm/swab.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "swab_no.h"
3#else
4#include "swab_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/swab_mm.h b/arch/m68k/include/asm/swab_mm.h
new file mode 100644
index 000000000000..7221e3066825
--- /dev/null
+++ b/arch/m68k/include/asm/swab_mm.h
@@ -0,0 +1,16 @@
1#ifndef _M68K_SWAB_H
2#define _M68K_SWAB_H
3
4#include <asm/types.h>
5#include <linux/compiler.h>
6
7#define __SWAB_64_THRU_32__
8
9static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
10{
11 __asm__("rolw #8,%0; swap %0; rolw #8,%0" : "=d" (val) : "0" (val));
12 return val;
13}
14#define __arch_swab32 __arch_swab32
15
16#endif /* _M68K_SWAB_H */
diff --git a/arch/m68knommu/include/asm/swab.h b/arch/m68k/include/asm/swab_no.h
index e582257db300..e582257db300 100644
--- a/arch/m68knommu/include/asm/swab.h
+++ b/arch/m68k/include/asm/swab_no.h
diff --git a/arch/m68k/include/asm/system.h b/arch/m68k/include/asm/system.h
new file mode 100644
index 000000000000..ccea925ff4f5
--- /dev/null
+++ b/arch/m68k/include/asm/system.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "system_no.h"
3#else
4#include "system_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/system_mm.h b/arch/m68k/include/asm/system_mm.h
new file mode 100644
index 000000000000..dbb6515ffd5b
--- /dev/null
+++ b/arch/m68k/include/asm/system_mm.h
@@ -0,0 +1,218 @@
1#ifndef _M68K_SYSTEM_H
2#define _M68K_SYSTEM_H
3
4#include <linux/linkage.h>
5#include <linux/kernel.h>
6#include <asm/segment.h>
7#include <asm/entry.h>
8
9#ifdef __KERNEL__
10
11/*
12 * switch_to(n) should switch tasks to task ptr, first checking that
13 * ptr isn't the current task, in which case it does nothing. This
14 * also clears the TS-flag if the task we switched to has used the
15 * math co-processor latest.
16 */
17/*
18 * switch_to() saves the extra registers, that are not saved
19 * automatically by SAVE_SWITCH_STACK in resume(), ie. d0-d5 and
20 * a0-a1. Some of these are used by schedule() and its predecessors
21 * and so we might get see unexpected behaviors when a task returns
22 * with unexpected register values.
23 *
24 * syscall stores these registers itself and none of them are used
25 * by syscall after the function in the syscall has been called.
26 *
27 * Beware that resume now expects *next to be in d1 and the offset of
28 * tss to be in a1. This saves a few instructions as we no longer have
29 * to push them onto the stack and read them back right after.
30 *
31 * 02/17/96 - Jes Sorensen (jds@kom.auc.dk)
32 *
33 * Changed 96/09/19 by Andreas Schwab
34 * pass prev in a0, next in a1
35 */
36asmlinkage void resume(void);
37#define switch_to(prev,next,last) do { \
38 register void *_prev __asm__ ("a0") = (prev); \
39 register void *_next __asm__ ("a1") = (next); \
40 register void *_last __asm__ ("d1"); \
41 __asm__ __volatile__("jbsr resume" \
42 : "=a" (_prev), "=a" (_next), "=d" (_last) \
43 : "0" (_prev), "1" (_next) \
44 : "d0", "d2", "d3", "d4", "d5"); \
45 (last) = _last; \
46} while (0)
47
48
49/*
50 * Force strict CPU ordering.
51 * Not really required on m68k...
52 */
53#define nop() do { asm volatile ("nop"); barrier(); } while (0)
54#define mb() barrier()
55#define rmb() barrier()
56#define wmb() barrier()
57#define read_barrier_depends() ((void)0)
58#define set_mb(var, value) ({ (var) = (value); wmb(); })
59
60#define smp_mb() barrier()
61#define smp_rmb() barrier()
62#define smp_wmb() barrier()
63#define smp_read_barrier_depends() ((void)0)
64
65/* interrupt control.. */
66#if 0
67#define local_irq_enable() asm volatile ("andiw %0,%%sr": : "i" (ALLOWINT) : "memory")
68#else
69#include <linux/hardirq.h>
70#define local_irq_enable() ({ \
71 if (MACH_IS_Q40 || !hardirq_count()) \
72 asm volatile ("andiw %0,%%sr": : "i" (ALLOWINT) : "memory"); \
73})
74#endif
75#define local_irq_disable() asm volatile ("oriw #0x0700,%%sr": : : "memory")
76#define local_save_flags(x) asm volatile ("movew %%sr,%0":"=d" (x) : : "memory")
77#define local_irq_restore(x) asm volatile ("movew %0,%%sr": :"d" (x) : "memory")
78
79static inline int irqs_disabled(void)
80{
81 unsigned long flags;
82 local_save_flags(flags);
83 return flags & ~ALLOWINT;
84}
85
86/* For spinlocks etc */
87#define local_irq_save(x) ({ local_save_flags(x); local_irq_disable(); })
88
89#define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
90
91struct __xchg_dummy { unsigned long a[100]; };
92#define __xg(x) ((volatile struct __xchg_dummy *)(x))
93
94#ifndef CONFIG_RMW_INSNS
95static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size)
96{
97 unsigned long flags, tmp;
98
99 local_irq_save(flags);
100
101 switch (size) {
102 case 1:
103 tmp = *(u8 *)ptr;
104 *(u8 *)ptr = x;
105 x = tmp;
106 break;
107 case 2:
108 tmp = *(u16 *)ptr;
109 *(u16 *)ptr = x;
110 x = tmp;
111 break;
112 case 4:
113 tmp = *(u32 *)ptr;
114 *(u32 *)ptr = x;
115 x = tmp;
116 break;
117 default:
118 BUG();
119 }
120
121 local_irq_restore(flags);
122 return x;
123}
124#else
125static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size)
126{
127 switch (size) {
128 case 1:
129 __asm__ __volatile__
130 ("moveb %2,%0\n\t"
131 "1:\n\t"
132 "casb %0,%1,%2\n\t"
133 "jne 1b"
134 : "=&d" (x) : "d" (x), "m" (*__xg(ptr)) : "memory");
135 break;
136 case 2:
137 __asm__ __volatile__
138 ("movew %2,%0\n\t"
139 "1:\n\t"
140 "casw %0,%1,%2\n\t"
141 "jne 1b"
142 : "=&d" (x) : "d" (x), "m" (*__xg(ptr)) : "memory");
143 break;
144 case 4:
145 __asm__ __volatile__
146 ("movel %2,%0\n\t"
147 "1:\n\t"
148 "casl %0,%1,%2\n\t"
149 "jne 1b"
150 : "=&d" (x) : "d" (x), "m" (*__xg(ptr)) : "memory");
151 break;
152 }
153 return x;
154}
155#endif
156
157#include <asm-generic/cmpxchg-local.h>
158
159#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
160
161/*
162 * Atomic compare and exchange. Compare OLD with MEM, if identical,
163 * store NEW in MEM. Return the initial value in MEM. Success is
164 * indicated by comparing RETURN with OLD.
165 */
166#ifdef CONFIG_RMW_INSNS
167#define __HAVE_ARCH_CMPXCHG 1
168
169static inline unsigned long __cmpxchg(volatile void *p, unsigned long old,
170 unsigned long new, int size)
171{
172 switch (size) {
173 case 1:
174 __asm__ __volatile__ ("casb %0,%2,%1"
175 : "=d" (old), "=m" (*(char *)p)
176 : "d" (new), "0" (old), "m" (*(char *)p));
177 break;
178 case 2:
179 __asm__ __volatile__ ("casw %0,%2,%1"
180 : "=d" (old), "=m" (*(short *)p)
181 : "d" (new), "0" (old), "m" (*(short *)p));
182 break;
183 case 4:
184 __asm__ __volatile__ ("casl %0,%2,%1"
185 : "=d" (old), "=m" (*(int *)p)
186 : "d" (new), "0" (old), "m" (*(int *)p));
187 break;
188 }
189 return old;
190}
191
192#define cmpxchg(ptr, o, n) \
193 ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o), \
194 (unsigned long)(n), sizeof(*(ptr))))
195#define cmpxchg_local(ptr, o, n) \
196 ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o), \
197 (unsigned long)(n), sizeof(*(ptr))))
198#else
199
200/*
201 * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make
202 * them available.
203 */
204#define cmpxchg_local(ptr, o, n) \
205 ((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\
206 (unsigned long)(n), sizeof(*(ptr))))
207
208#ifndef CONFIG_SMP
209#include <asm-generic/cmpxchg.h>
210#endif
211
212#endif
213
214#define arch_align_stack(x) (x)
215
216#endif /* __KERNEL__ */
217
218#endif /* _M68K_SYSTEM_H */
diff --git a/arch/m68knommu/include/asm/system.h b/arch/m68k/include/asm/system_no.h
index 40f49de69821..4496c0aa8379 100644
--- a/arch/m68knommu/include/asm/system.h
+++ b/arch/m68k/include/asm/system_no.h
@@ -230,7 +230,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz
230 jmp 0xf0000400; \ 230 jmp 0xf0000400; \
231 "); \ 231 "); \
232}) 232})
233#elif defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ 233#elif defined(CONFIG_NETtel) || \
234 defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA) 234 defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA)
235#define HARD_RESET_NOW() ({ \ 235#define HARD_RESET_NOW() ({ \
236 asm(" \ 236 asm(" \
diff --git a/arch/m68k/include/asm/termbits.h b/arch/m68k/include/asm/termbits.h
new file mode 100644
index 000000000000..8c14170996bb
--- /dev/null
+++ b/arch/m68k/include/asm/termbits.h
@@ -0,0 +1,200 @@
1#ifndef __ARCH_M68K_TERMBITS_H__
2#define __ARCH_M68K_TERMBITS_H__
3
4#include <linux/posix_types.h>
5
6typedef unsigned char cc_t;
7typedef unsigned int speed_t;
8typedef unsigned int tcflag_t;
9
10#define NCCS 19
11struct termios {
12 tcflag_t c_iflag; /* input mode flags */
13 tcflag_t c_oflag; /* output mode flags */
14 tcflag_t c_cflag; /* control mode flags */
15 tcflag_t c_lflag; /* local mode flags */
16 cc_t c_line; /* line discipline */
17 cc_t c_cc[NCCS]; /* control characters */
18};
19
20struct termios2 {
21 tcflag_t c_iflag; /* input mode flags */
22 tcflag_t c_oflag; /* output mode flags */
23 tcflag_t c_cflag; /* control mode flags */
24 tcflag_t c_lflag; /* local mode flags */
25 cc_t c_line; /* line discipline */
26 cc_t c_cc[NCCS]; /* control characters */
27 speed_t c_ispeed; /* input speed */
28 speed_t c_ospeed; /* output speed */
29};
30
31struct ktermios {
32 tcflag_t c_iflag; /* input mode flags */
33 tcflag_t c_oflag; /* output mode flags */
34 tcflag_t c_cflag; /* control mode flags */
35 tcflag_t c_lflag; /* local mode flags */
36 cc_t c_line; /* line discipline */
37 cc_t c_cc[NCCS]; /* control characters */
38 speed_t c_ispeed; /* input speed */
39 speed_t c_ospeed; /* output speed */
40};
41
42/* c_cc characters */
43#define VINTR 0
44#define VQUIT 1
45#define VERASE 2
46#define VKILL 3
47#define VEOF 4
48#define VTIME 5
49#define VMIN 6
50#define VSWTC 7
51#define VSTART 8
52#define VSTOP 9
53#define VSUSP 10
54#define VEOL 11
55#define VREPRINT 12
56#define VDISCARD 13
57#define VWERASE 14
58#define VLNEXT 15
59#define VEOL2 16
60
61
62/* c_iflag bits */
63#define IGNBRK 0000001
64#define BRKINT 0000002
65#define IGNPAR 0000004
66#define PARMRK 0000010
67#define INPCK 0000020
68#define ISTRIP 0000040
69#define INLCR 0000100
70#define IGNCR 0000200
71#define ICRNL 0000400
72#define IUCLC 0001000
73#define IXON 0002000
74#define IXANY 0004000
75#define IXOFF 0010000
76#define IMAXBEL 0020000
77#define IUTF8 0040000
78
79/* c_oflag bits */
80#define OPOST 0000001
81#define OLCUC 0000002
82#define ONLCR 0000004
83#define OCRNL 0000010
84#define ONOCR 0000020
85#define ONLRET 0000040
86#define OFILL 0000100
87#define OFDEL 0000200
88#define NLDLY 0000400
89#define NL0 0000000
90#define NL1 0000400
91#define CRDLY 0003000
92#define CR0 0000000
93#define CR1 0001000
94#define CR2 0002000
95#define CR3 0003000
96#define TABDLY 0014000
97#define TAB0 0000000
98#define TAB1 0004000
99#define TAB2 0010000
100#define TAB3 0014000
101#define XTABS 0014000
102#define BSDLY 0020000
103#define BS0 0000000
104#define BS1 0020000
105#define VTDLY 0040000
106#define VT0 0000000
107#define VT1 0040000
108#define FFDLY 0100000
109#define FF0 0000000
110#define FF1 0100000
111
112/* c_cflag bit meaning */
113#define CBAUD 0010017
114#define B0 0000000 /* hang up */
115#define B50 0000001
116#define B75 0000002
117#define B110 0000003
118#define B134 0000004
119#define B150 0000005
120#define B200 0000006
121#define B300 0000007
122#define B600 0000010
123#define B1200 0000011
124#define B1800 0000012
125#define B2400 0000013
126#define B4800 0000014
127#define B9600 0000015
128#define B19200 0000016
129#define B38400 0000017
130#define EXTA B19200
131#define EXTB B38400
132#define CSIZE 0000060
133#define CS5 0000000
134#define CS6 0000020
135#define CS7 0000040
136#define CS8 0000060
137#define CSTOPB 0000100
138#define CREAD 0000200
139#define PARENB 0000400
140#define PARODD 0001000
141#define HUPCL 0002000
142#define CLOCAL 0004000
143#define CBAUDEX 0010000
144#define BOTHER 0010000
145#define B57600 0010001
146#define B115200 0010002
147#define B230400 0010003
148#define B460800 0010004
149#define B500000 0010005
150#define B576000 0010006
151#define B921600 0010007
152#define B1000000 0010010
153#define B1152000 0010011
154#define B1500000 0010012
155#define B2000000 0010013
156#define B2500000 0010014
157#define B3000000 0010015
158#define B3500000 0010016
159#define B4000000 0010017
160#define CIBAUD 002003600000 /* input baud rate */
161#define CMSPAR 010000000000 /* mark or space (stick) parity */
162#define CRTSCTS 020000000000 /* flow control */
163
164#define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */
165
166/* c_lflag bits */
167#define ISIG 0000001
168#define ICANON 0000002
169#define XCASE 0000004
170#define ECHO 0000010
171#define ECHOE 0000020
172#define ECHOK 0000040
173#define ECHONL 0000100
174#define NOFLSH 0000200
175#define TOSTOP 0000400
176#define ECHOCTL 0001000
177#define ECHOPRT 0002000
178#define ECHOKE 0004000
179#define FLUSHO 0010000
180#define PENDIN 0040000
181#define IEXTEN 0100000
182
183
184/* tcflow() and TCXONC use these */
185#define TCOOFF 0
186#define TCOON 1
187#define TCIOFF 2
188#define TCION 3
189
190/* tcflush() and TCFLSH use these */
191#define TCIFLUSH 0
192#define TCOFLUSH 1
193#define TCIOFLUSH 2
194
195/* tcsetattr uses these */
196#define TCSANOW 0
197#define TCSADRAIN 1
198#define TCSAFLUSH 2
199
200#endif /* __ARCH_M68K_TERMBITS_H__ */
diff --git a/arch/m68k/include/asm/termios.h b/arch/m68k/include/asm/termios.h
new file mode 100644
index 000000000000..0823032e4045
--- /dev/null
+++ b/arch/m68k/include/asm/termios.h
@@ -0,0 +1,92 @@
1#ifndef _M68K_TERMIOS_H
2#define _M68K_TERMIOS_H
3
4#include <asm/termbits.h>
5#include <asm/ioctls.h>
6
7struct winsize {
8 unsigned short ws_row;
9 unsigned short ws_col;
10 unsigned short ws_xpixel;
11 unsigned short ws_ypixel;
12};
13
14#define NCC 8
15struct termio {
16 unsigned short c_iflag; /* input mode flags */
17 unsigned short c_oflag; /* output mode flags */
18 unsigned short c_cflag; /* control mode flags */
19 unsigned short c_lflag; /* local mode flags */
20 unsigned char c_line; /* line discipline */
21 unsigned char c_cc[NCC]; /* control characters */
22};
23
24#ifdef __KERNEL__
25/* intr=^C quit=^| erase=del kill=^U
26 eof=^D vtime=\0 vmin=\1 sxtc=\0
27 start=^Q stop=^S susp=^Z eol=\0
28 reprint=^R discard=^U werase=^W lnext=^V
29 eol2=\0
30*/
31#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
32#endif
33
34/* modem lines */
35#define TIOCM_LE 0x001
36#define TIOCM_DTR 0x002
37#define TIOCM_RTS 0x004
38#define TIOCM_ST 0x008
39#define TIOCM_SR 0x010
40#define TIOCM_CTS 0x020
41#define TIOCM_CAR 0x040
42#define TIOCM_RNG 0x080
43#define TIOCM_DSR 0x100
44#define TIOCM_CD TIOCM_CAR
45#define TIOCM_RI TIOCM_RNG
46#define TIOCM_OUT1 0x2000
47#define TIOCM_OUT2 0x4000
48#define TIOCM_LOOP 0x8000
49
50/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
51
52#ifdef __KERNEL__
53
54/*
55 * Translate a "termio" structure into a "termios". Ugh.
56 */
57#define user_termio_to_kernel_termios(termios, termio) \
58({ \
59 unsigned short tmp; \
60 get_user(tmp, &(termio)->c_iflag); \
61 (termios)->c_iflag = (0xffff0000 & ((termios)->c_iflag)) | tmp; \
62 get_user(tmp, &(termio)->c_oflag); \
63 (termios)->c_oflag = (0xffff0000 & ((termios)->c_oflag)) | tmp; \
64 get_user(tmp, &(termio)->c_cflag); \
65 (termios)->c_cflag = (0xffff0000 & ((termios)->c_cflag)) | tmp; \
66 get_user(tmp, &(termio)->c_lflag); \
67 (termios)->c_lflag = (0xffff0000 & ((termios)->c_lflag)) | tmp; \
68 get_user((termios)->c_line, &(termio)->c_line); \
69 copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \
70})
71
72/*
73 * Translate a "termios" structure into a "termio". Ugh.
74 */
75#define kernel_termios_to_user_termio(termio, termios) \
76({ \
77 put_user((termios)->c_iflag, &(termio)->c_iflag); \
78 put_user((termios)->c_oflag, &(termio)->c_oflag); \
79 put_user((termios)->c_cflag, &(termio)->c_cflag); \
80 put_user((termios)->c_lflag, &(termio)->c_lflag); \
81 put_user((termios)->c_line, &(termio)->c_line); \
82 copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \
83})
84
85#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2))
86#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2))
87#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios))
88#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios))
89
90#endif /* __KERNEL__ */
91
92#endif /* _M68K_TERMIOS_H */
diff --git a/arch/m68k/include/asm/thread_info.h b/arch/m68k/include/asm/thread_info.h
new file mode 100644
index 000000000000..f31a3f42b7b3
--- /dev/null
+++ b/arch/m68k/include/asm/thread_info.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "thread_info_no.h"
3#else
4#include "thread_info_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/thread_info_mm.h b/arch/m68k/include/asm/thread_info_mm.h
new file mode 100644
index 000000000000..af0fda46e94b
--- /dev/null
+++ b/arch/m68k/include/asm/thread_info_mm.h
@@ -0,0 +1,57 @@
1#ifndef _ASM_M68K_THREAD_INFO_H
2#define _ASM_M68K_THREAD_INFO_H
3
4#include <asm/types.h>
5#include <asm/page.h>
6
7struct thread_info {
8 struct task_struct *task; /* main task structure */
9 unsigned long flags;
10 struct exec_domain *exec_domain; /* execution domain */
11 int preempt_count; /* 0 => preemptable, <0 => BUG */
12 __u32 cpu; /* should always be 0 on m68k */
13 struct restart_block restart_block;
14};
15
16#define PREEMPT_ACTIVE 0x4000000
17
18#define INIT_THREAD_INFO(tsk) \
19{ \
20 .task = &tsk, \
21 .exec_domain = &default_exec_domain, \
22 .restart_block = { \
23 .fn = do_no_restart_syscall, \
24 }, \
25}
26
27/* THREAD_SIZE should be 8k, so handle differently for 4k and 8k machines */
28#define THREAD_SIZE_ORDER (13 - PAGE_SHIFT)
29
30#define init_thread_info (init_task.thread.info)
31#define init_stack (init_thread_union.stack)
32
33#define task_thread_info(tsk) (&(tsk)->thread.info)
34#define task_stack_page(tsk) ((tsk)->stack)
35#define current_thread_info() task_thread_info(current)
36
37#define __HAVE_THREAD_FUNCTIONS
38
39#define setup_thread_stack(p, org) ({ \
40 *(struct task_struct **)(p)->stack = (p); \
41 task_thread_info(p)->task = (p); \
42})
43
44#define end_of_stack(p) ((unsigned long *)(p)->stack + 1)
45
46/* entry.S relies on these definitions!
47 * bits 0-7 are tested at every exception exit
48 * bits 8-15 are also tested at syscall exit
49 */
50#define TIF_SIGPENDING 6 /* signal pending */
51#define TIF_NEED_RESCHED 7 /* rescheduling necessary */
52#define TIF_DELAYED_TRACE 14 /* single step a syscall */
53#define TIF_SYSCALL_TRACE 15 /* syscall trace active */
54#define TIF_MEMDIE 16
55#define TIF_FREEZE 17 /* thread is freezing for suspend */
56
57#endif /* _ASM_M68K_THREAD_INFO_H */
diff --git a/arch/m68knommu/include/asm/thread_info.h b/arch/m68k/include/asm/thread_info_no.h
index 82529f424ea3..82529f424ea3 100644
--- a/arch/m68knommu/include/asm/thread_info.h
+++ b/arch/m68k/include/asm/thread_info_no.h
diff --git a/arch/m68k/include/asm/timex.h b/arch/m68k/include/asm/timex.h
new file mode 100644
index 000000000000..719762980578
--- /dev/null
+++ b/arch/m68k/include/asm/timex.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "timex_no.h"
3#else
4#include "timex_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/timex_mm.h b/arch/m68k/include/asm/timex_mm.h
new file mode 100644
index 000000000000..b87f2f278f67
--- /dev/null
+++ b/arch/m68k/include/asm/timex_mm.h
@@ -0,0 +1,18 @@
1/*
2 * linux/include/asm-m68k/timex.h
3 *
4 * m68k architecture timex specifications
5 */
6#ifndef _ASMm68k_TIMEX_H
7#define _ASMm68k_TIMEX_H
8
9#define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
10
11typedef unsigned long cycles_t;
12
13static inline cycles_t get_cycles(void)
14{
15 return 0;
16}
17
18#endif
diff --git a/arch/m68knommu/include/asm/timex.h b/arch/m68k/include/asm/timex_no.h
index 109050f3fe91..109050f3fe91 100644
--- a/arch/m68knommu/include/asm/timex.h
+++ b/arch/m68k/include/asm/timex_no.h
diff --git a/arch/m68k/include/asm/tlb.h b/arch/m68k/include/asm/tlb.h
new file mode 100644
index 000000000000..1785cff73449
--- /dev/null
+++ b/arch/m68k/include/asm/tlb.h
@@ -0,0 +1,20 @@
1#ifndef _M68K_TLB_H
2#define _M68K_TLB_H
3
4/*
5 * m68k doesn't need any special per-pte or
6 * per-vma handling..
7 */
8#define tlb_start_vma(tlb, vma) do { } while (0)
9#define tlb_end_vma(tlb, vma) do { } while (0)
10#define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0)
11
12/*
13 * .. because we flush the whole mm when it
14 * fills up.
15 */
16#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
17
18#include <asm-generic/tlb.h>
19
20#endif /* _M68K_TLB_H */
diff --git a/arch/m68k/include/asm/tlbflush.h b/arch/m68k/include/asm/tlbflush.h
new file mode 100644
index 000000000000..b6f93b30951e
--- /dev/null
+++ b/arch/m68k/include/asm/tlbflush.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "tlbflush_no.h"
3#else
4#include "tlbflush_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/tlbflush_mm.h b/arch/m68k/include/asm/tlbflush_mm.h
new file mode 100644
index 000000000000..acb6bf21a321
--- /dev/null
+++ b/arch/m68k/include/asm/tlbflush_mm.h
@@ -0,0 +1,219 @@
1#ifndef _M68K_TLBFLUSH_H
2#define _M68K_TLBFLUSH_H
3
4
5#ifndef CONFIG_SUN3
6
7#include <asm/current.h>
8
9static inline void flush_tlb_kernel_page(void *addr)
10{
11 if (CPU_IS_040_OR_060) {
12 mm_segment_t old_fs = get_fs();
13 set_fs(KERNEL_DS);
14 __asm__ __volatile__(".chip 68040\n\t"
15 "pflush (%0)\n\t"
16 ".chip 68k"
17 : : "a" (addr));
18 set_fs(old_fs);
19 } else if (CPU_IS_020_OR_030)
20 __asm__ __volatile__("pflush #4,#4,(%0)" : : "a" (addr));
21}
22
23/*
24 * flush all user-space atc entries.
25 */
26static inline void __flush_tlb(void)
27{
28 if (CPU_IS_040_OR_060)
29 __asm__ __volatile__(".chip 68040\n\t"
30 "pflushan\n\t"
31 ".chip 68k");
32 else if (CPU_IS_020_OR_030)
33 __asm__ __volatile__("pflush #0,#4");
34}
35
36static inline void __flush_tlb040_one(unsigned long addr)
37{
38 __asm__ __volatile__(".chip 68040\n\t"
39 "pflush (%0)\n\t"
40 ".chip 68k"
41 : : "a" (addr));
42}
43
44static inline void __flush_tlb_one(unsigned long addr)
45{
46 if (CPU_IS_040_OR_060)
47 __flush_tlb040_one(addr);
48 else if (CPU_IS_020_OR_030)
49 __asm__ __volatile__("pflush #0,#4,(%0)" : : "a" (addr));
50}
51
52#define flush_tlb() __flush_tlb()
53
54/*
55 * flush all atc entries (both kernel and user-space entries).
56 */
57static inline void flush_tlb_all(void)
58{
59 if (CPU_IS_040_OR_060)
60 __asm__ __volatile__(".chip 68040\n\t"
61 "pflusha\n\t"
62 ".chip 68k");
63 else if (CPU_IS_020_OR_030)
64 __asm__ __volatile__("pflusha");
65}
66
67static inline void flush_tlb_mm(struct mm_struct *mm)
68{
69 if (mm == current->active_mm)
70 __flush_tlb();
71}
72
73static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr)
74{
75 if (vma->vm_mm == current->active_mm) {
76 mm_segment_t old_fs = get_fs();
77 set_fs(USER_DS);
78 __flush_tlb_one(addr);
79 set_fs(old_fs);
80 }
81}
82
83static inline void flush_tlb_range(struct vm_area_struct *vma,
84 unsigned long start, unsigned long end)
85{
86 if (vma->vm_mm == current->active_mm)
87 __flush_tlb();
88}
89
90static inline void flush_tlb_kernel_range(unsigned long start, unsigned long end)
91{
92 flush_tlb_all();
93}
94
95#else
96
97
98/* Reserved PMEGs. */
99extern char sun3_reserved_pmeg[SUN3_PMEGS_NUM];
100extern unsigned long pmeg_vaddr[SUN3_PMEGS_NUM];
101extern unsigned char pmeg_alloc[SUN3_PMEGS_NUM];
102extern unsigned char pmeg_ctx[SUN3_PMEGS_NUM];
103
104/* Flush all userspace mappings one by one... (why no flush command,
105 sun?) */
106static inline void flush_tlb_all(void)
107{
108 unsigned long addr;
109 unsigned char ctx, oldctx;
110
111 oldctx = sun3_get_context();
112 for(addr = 0x00000000; addr < TASK_SIZE; addr += SUN3_PMEG_SIZE) {
113 for(ctx = 0; ctx < 8; ctx++) {
114 sun3_put_context(ctx);
115 sun3_put_segmap(addr, SUN3_INVALID_PMEG);
116 }
117 }
118
119 sun3_put_context(oldctx);
120 /* erase all of the userspace pmeg maps, we've clobbered them
121 all anyway */
122 for(addr = 0; addr < SUN3_INVALID_PMEG; addr++) {
123 if(pmeg_alloc[addr] == 1) {
124 pmeg_alloc[addr] = 0;
125 pmeg_ctx[addr] = 0;
126 pmeg_vaddr[addr] = 0;
127 }
128 }
129
130}
131
132/* Clear user TLB entries within the context named in mm */
133static inline void flush_tlb_mm (struct mm_struct *mm)
134{
135 unsigned char oldctx;
136 unsigned char seg;
137 unsigned long i;
138
139 oldctx = sun3_get_context();
140 sun3_put_context(mm->context);
141
142 for(i = 0; i < TASK_SIZE; i += SUN3_PMEG_SIZE) {
143 seg = sun3_get_segmap(i);
144 if(seg == SUN3_INVALID_PMEG)
145 continue;
146
147 sun3_put_segmap(i, SUN3_INVALID_PMEG);
148 pmeg_alloc[seg] = 0;
149 pmeg_ctx[seg] = 0;
150 pmeg_vaddr[seg] = 0;
151 }
152
153 sun3_put_context(oldctx);
154
155}
156
157/* Flush a single TLB page. In this case, we're limited to flushing a
158 single PMEG */
159static inline void flush_tlb_page (struct vm_area_struct *vma,
160 unsigned long addr)
161{
162 unsigned char oldctx;
163 unsigned char i;
164
165 oldctx = sun3_get_context();
166 sun3_put_context(vma->vm_mm->context);
167 addr &= ~SUN3_PMEG_MASK;
168 if((i = sun3_get_segmap(addr)) != SUN3_INVALID_PMEG)
169 {
170 pmeg_alloc[i] = 0;
171 pmeg_ctx[i] = 0;
172 pmeg_vaddr[i] = 0;
173 sun3_put_segmap (addr, SUN3_INVALID_PMEG);
174 }
175 sun3_put_context(oldctx);
176
177}
178/* Flush a range of pages from TLB. */
179
180static inline void flush_tlb_range (struct vm_area_struct *vma,
181 unsigned long start, unsigned long end)
182{
183 struct mm_struct *mm = vma->vm_mm;
184 unsigned char seg, oldctx;
185
186 start &= ~SUN3_PMEG_MASK;
187
188 oldctx = sun3_get_context();
189 sun3_put_context(mm->context);
190
191 while(start < end)
192 {
193 if((seg = sun3_get_segmap(start)) == SUN3_INVALID_PMEG)
194 goto next;
195 if(pmeg_ctx[seg] == mm->context) {
196 pmeg_alloc[seg] = 0;
197 pmeg_ctx[seg] = 0;
198 pmeg_vaddr[seg] = 0;
199 }
200 sun3_put_segmap(start, SUN3_INVALID_PMEG);
201 next:
202 start += SUN3_PMEG_SIZE;
203 }
204}
205
206static inline void flush_tlb_kernel_range(unsigned long start, unsigned long end)
207{
208 flush_tlb_all();
209}
210
211/* Flush kernel page from TLB. */
212static inline void flush_tlb_kernel_page (unsigned long addr)
213{
214 sun3_put_segmap (addr & ~(SUN3_PMEG_SIZE - 1), SUN3_INVALID_PMEG);
215}
216
217#endif
218
219#endif /* _M68K_TLBFLUSH_H */
diff --git a/arch/m68knommu/include/asm/tlbflush.h b/arch/m68k/include/asm/tlbflush_no.h
index a470cfb803eb..a470cfb803eb 100644
--- a/arch/m68knommu/include/asm/tlbflush.h
+++ b/arch/m68k/include/asm/tlbflush_no.h
diff --git a/arch/m68knommu/include/asm/topology.h b/arch/m68k/include/asm/topology.h
index ca173e9f26ff..ca173e9f26ff 100644
--- a/arch/m68knommu/include/asm/topology.h
+++ b/arch/m68k/include/asm/topology.h
diff --git a/arch/m68k/include/asm/traps.h b/arch/m68k/include/asm/traps.h
new file mode 100644
index 000000000000..3011ec0f5365
--- /dev/null
+++ b/arch/m68k/include/asm/traps.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "traps_no.h"
3#else
4#include "traps_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/traps_mm.h b/arch/m68k/include/asm/traps_mm.h
new file mode 100644
index 000000000000..8caef25624c7
--- /dev/null
+++ b/arch/m68k/include/asm/traps_mm.h
@@ -0,0 +1,272 @@
1/*
2 * linux/include/asm/traps.h
3 *
4 * Copyright (C) 1993 Hamish Macdonald
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive
8 * for more details.
9 */
10
11#ifndef _M68K_TRAPS_H
12#define _M68K_TRAPS_H
13
14#ifndef __ASSEMBLY__
15
16#include <linux/linkage.h>
17#include <asm/ptrace.h>
18
19typedef void (*e_vector)(void);
20
21asmlinkage void auto_inthandler(void);
22asmlinkage void user_inthandler(void);
23asmlinkage void bad_inthandler(void);
24
25extern e_vector vectors[];
26
27#endif
28
29#define VEC_RESETSP (0)
30#define VEC_RESETPC (1)
31#define VEC_BUSERR (2)
32#define VEC_ADDRERR (3)
33#define VEC_ILLEGAL (4)
34#define VEC_ZERODIV (5)
35#define VEC_CHK (6)
36#define VEC_TRAP (7)
37#define VEC_PRIV (8)
38#define VEC_TRACE (9)
39#define VEC_LINE10 (10)
40#define VEC_LINE11 (11)
41#define VEC_RESV12 (12)
42#define VEC_COPROC (13)
43#define VEC_FORMAT (14)
44#define VEC_UNINT (15)
45#define VEC_RESV16 (16)
46#define VEC_RESV17 (17)
47#define VEC_RESV18 (18)
48#define VEC_RESV19 (19)
49#define VEC_RESV20 (20)
50#define VEC_RESV21 (21)
51#define VEC_RESV22 (22)
52#define VEC_RESV23 (23)
53#define VEC_SPUR (24)
54#define VEC_INT1 (25)
55#define VEC_INT2 (26)
56#define VEC_INT3 (27)
57#define VEC_INT4 (28)
58#define VEC_INT5 (29)
59#define VEC_INT6 (30)
60#define VEC_INT7 (31)
61#define VEC_SYS (32)
62#define VEC_TRAP1 (33)
63#define VEC_TRAP2 (34)
64#define VEC_TRAP3 (35)
65#define VEC_TRAP4 (36)
66#define VEC_TRAP5 (37)
67#define VEC_TRAP6 (38)
68#define VEC_TRAP7 (39)
69#define VEC_TRAP8 (40)
70#define VEC_TRAP9 (41)
71#define VEC_TRAP10 (42)
72#define VEC_TRAP11 (43)
73#define VEC_TRAP12 (44)
74#define VEC_TRAP13 (45)
75#define VEC_TRAP14 (46)
76#define VEC_TRAP15 (47)
77#define VEC_FPBRUC (48)
78#define VEC_FPIR (49)
79#define VEC_FPDIVZ (50)
80#define VEC_FPUNDER (51)
81#define VEC_FPOE (52)
82#define VEC_FPOVER (53)
83#define VEC_FPNAN (54)
84#define VEC_FPUNSUP (55)
85#define VEC_MMUCFG (56)
86#define VEC_MMUILL (57)
87#define VEC_MMUACC (58)
88#define VEC_RESV59 (59)
89#define VEC_UNIMPEA (60)
90#define VEC_UNIMPII (61)
91#define VEC_RESV62 (62)
92#define VEC_RESV63 (63)
93#define VEC_USER (64)
94
95#define VECOFF(vec) ((vec)<<2)
96
97#ifndef __ASSEMBLY__
98
99/* Status register bits */
100#define PS_T (0x8000)
101#define PS_S (0x2000)
102#define PS_M (0x1000)
103#define PS_C (0x0001)
104
105/* bits for 68020/68030 special status word */
106
107#define FC (0x8000)
108#define FB (0x4000)
109#define RC (0x2000)
110#define RB (0x1000)
111#define DF (0x0100)
112#define RM (0x0080)
113#define RW (0x0040)
114#define SZ (0x0030)
115#define DFC (0x0007)
116
117/* bits for 68030 MMU status register (mmusr,psr) */
118
119#define MMU_B (0x8000) /* bus error */
120#define MMU_L (0x4000) /* limit violation */
121#define MMU_S (0x2000) /* supervisor violation */
122#define MMU_WP (0x0800) /* write-protected */
123#define MMU_I (0x0400) /* invalid descriptor */
124#define MMU_M (0x0200) /* ATC entry modified */
125#define MMU_T (0x0040) /* transparent translation */
126#define MMU_NUM (0x0007) /* number of levels traversed */
127
128
129/* bits for 68040 special status word */
130#define CP_040 (0x8000)
131#define CU_040 (0x4000)
132#define CT_040 (0x2000)
133#define CM_040 (0x1000)
134#define MA_040 (0x0800)
135#define ATC_040 (0x0400)
136#define LK_040 (0x0200)
137#define RW_040 (0x0100)
138#define SIZ_040 (0x0060)
139#define TT_040 (0x0018)
140#define TM_040 (0x0007)
141
142/* bits for 68040 write back status word */
143#define WBV_040 (0x80)
144#define WBSIZ_040 (0x60)
145#define WBBYT_040 (0x20)
146#define WBWRD_040 (0x40)
147#define WBLNG_040 (0x00)
148#define WBTT_040 (0x18)
149#define WBTM_040 (0x07)
150
151/* bus access size codes */
152#define BA_SIZE_BYTE (0x20)
153#define BA_SIZE_WORD (0x40)
154#define BA_SIZE_LONG (0x00)
155#define BA_SIZE_LINE (0x60)
156
157/* bus access transfer type codes */
158#define BA_TT_MOVE16 (0x08)
159
160/* bits for 68040 MMU status register (mmusr) */
161#define MMU_B_040 (0x0800)
162#define MMU_G_040 (0x0400)
163#define MMU_S_040 (0x0080)
164#define MMU_CM_040 (0x0060)
165#define MMU_M_040 (0x0010)
166#define MMU_WP_040 (0x0004)
167#define MMU_T_040 (0x0002)
168#define MMU_R_040 (0x0001)
169
170/* bits in the 68060 fault status long word (FSLW) */
171#define MMU060_MA (0x08000000) /* misaligned */
172#define MMU060_LK (0x02000000) /* locked transfer */
173#define MMU060_RW (0x01800000) /* read/write */
174# define MMU060_RW_W (0x00800000) /* write */
175# define MMU060_RW_R (0x01000000) /* read */
176# define MMU060_RW_RMW (0x01800000) /* read/modify/write */
177# define MMU060_W (0x00800000) /* general write, includes rmw */
178#define MMU060_SIZ (0x00600000) /* transfer size */
179#define MMU060_TT (0x00180000) /* transfer type (TT) bits */
180#define MMU060_TM (0x00070000) /* transfer modifier (TM) bits */
181#define MMU060_IO (0x00008000) /* instruction or operand */
182#define MMU060_PBE (0x00004000) /* push buffer bus error */
183#define MMU060_SBE (0x00002000) /* store buffer bus error */
184#define MMU060_PTA (0x00001000) /* pointer A fault */
185#define MMU060_PTB (0x00000800) /* pointer B fault */
186#define MMU060_IL (0x00000400) /* double indirect descr fault */
187#define MMU060_PF (0x00000200) /* page fault (invalid descr) */
188#define MMU060_SP (0x00000100) /* supervisor protection */
189#define MMU060_WP (0x00000080) /* write protection */
190#define MMU060_TWE (0x00000040) /* bus error on table search */
191#define MMU060_RE (0x00000020) /* bus error on read */
192#define MMU060_WE (0x00000010) /* bus error on write */
193#define MMU060_TTR (0x00000008) /* error caused by TTR translation */
194#define MMU060_BPE (0x00000004) /* branch prediction error */
195#define MMU060_SEE (0x00000001) /* software emulated error */
196
197/* cases of missing or invalid descriptors */
198#define MMU060_DESC_ERR (MMU060_PTA | MMU060_PTB | \
199 MMU060_IL | MMU060_PF)
200/* bits that indicate real errors */
201#define MMU060_ERR_BITS (MMU060_PBE | MMU060_SBE | MMU060_DESC_ERR | MMU060_SP | \
202 MMU060_WP | MMU060_TWE | MMU060_RE | MMU060_WE)
203
204/* structure for stack frames */
205
206struct frame {
207 struct pt_regs ptregs;
208 union {
209 struct {
210 unsigned long iaddr; /* instruction address */
211 } fmt2;
212 struct {
213 unsigned long effaddr; /* effective address */
214 } fmt3;
215 struct {
216 unsigned long effaddr; /* effective address */
217 unsigned long pc; /* pc of faulted instr */
218 } fmt4;
219 struct {
220 unsigned long effaddr; /* effective address */
221 unsigned short ssw; /* special status word */
222 unsigned short wb3s; /* write back 3 status */
223 unsigned short wb2s; /* write back 2 status */
224 unsigned short wb1s; /* write back 1 status */
225 unsigned long faddr; /* fault address */
226 unsigned long wb3a; /* write back 3 address */
227 unsigned long wb3d; /* write back 3 data */
228 unsigned long wb2a; /* write back 2 address */
229 unsigned long wb2d; /* write back 2 data */
230 unsigned long wb1a; /* write back 1 address */
231 unsigned long wb1dpd0; /* write back 1 data/push data 0*/
232 unsigned long pd1; /* push data 1*/
233 unsigned long pd2; /* push data 2*/
234 unsigned long pd3; /* push data 3*/
235 } fmt7;
236 struct {
237 unsigned long iaddr; /* instruction address */
238 unsigned short int1[4]; /* internal registers */
239 } fmt9;
240 struct {
241 unsigned short int1;
242 unsigned short ssw; /* special status word */
243 unsigned short isc; /* instruction stage c */
244 unsigned short isb; /* instruction stage b */
245 unsigned long daddr; /* data cycle fault address */
246 unsigned short int2[2];
247 unsigned long dobuf; /* data cycle output buffer */
248 unsigned short int3[2];
249 } fmta;
250 struct {
251 unsigned short int1;
252 unsigned short ssw; /* special status word */
253 unsigned short isc; /* instruction stage c */
254 unsigned short isb; /* instruction stage b */
255 unsigned long daddr; /* data cycle fault address */
256 unsigned short int2[2];
257 unsigned long dobuf; /* data cycle output buffer */
258 unsigned short int3[4];
259 unsigned long baddr; /* stage B address */
260 unsigned short int4[2];
261 unsigned long dibuf; /* data cycle input buffer */
262 unsigned short int5[3];
263 unsigned ver : 4; /* stack frame version # */
264 unsigned int6:12;
265 unsigned short int7[18];
266 } fmtb;
267 } un;
268};
269
270#endif /* __ASSEMBLY__ */
271
272#endif /* _M68K_TRAPS_H */
diff --git a/arch/m68knommu/include/asm/traps.h b/arch/m68k/include/asm/traps_no.h
index d0671e5f8e29..d0671e5f8e29 100644
--- a/arch/m68knommu/include/asm/traps.h
+++ b/arch/m68k/include/asm/traps_no.h
diff --git a/arch/m68k/include/asm/types.h b/arch/m68k/include/asm/types.h
new file mode 100644
index 000000000000..6441cb5f8e7c
--- /dev/null
+++ b/arch/m68k/include/asm/types.h
@@ -0,0 +1,37 @@
1#ifndef _M68K_TYPES_H
2#define _M68K_TYPES_H
3
4/*
5 * This file is never included by application software unless
6 * explicitly requested (e.g., via linux/types.h) in which case the
7 * application is Linux specific so (user-) name space pollution is
8 * not a major issue. However, for interoperability, libraries still
9 * need to be careful to avoid a name clashes.
10 */
11#include <asm-generic/int-ll64.h>
12
13#ifndef __ASSEMBLY__
14
15typedef unsigned short umode_t;
16
17#endif /* __ASSEMBLY__ */
18
19/*
20 * These aren't exported outside the kernel to avoid name space clashes
21 */
22#ifdef __KERNEL__
23
24#define BITS_PER_LONG 32
25
26#ifndef __ASSEMBLY__
27
28/* DMA addresses are always 32-bits wide */
29
30typedef u32 dma_addr_t;
31typedef u32 dma64_addr_t;
32
33#endif /* __ASSEMBLY__ */
34
35#endif /* __KERNEL__ */
36
37#endif /* _M68K_TYPES_H */
diff --git a/arch/m68k/include/asm/uaccess.h b/arch/m68k/include/asm/uaccess.h
new file mode 100644
index 000000000000..38f92dbb9a45
--- /dev/null
+++ b/arch/m68k/include/asm/uaccess.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "uaccess_no.h"
3#else
4#include "uaccess_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/uaccess_mm.h b/arch/m68k/include/asm/uaccess_mm.h
new file mode 100644
index 000000000000..7107f3fbdbb6
--- /dev/null
+++ b/arch/m68k/include/asm/uaccess_mm.h
@@ -0,0 +1,374 @@
1#ifndef __M68K_UACCESS_H
2#define __M68K_UACCESS_H
3
4/*
5 * User space memory access functions
6 */
7#include <linux/compiler.h>
8#include <linux/errno.h>
9#include <linux/types.h>
10#include <linux/sched.h>
11#include <asm/segment.h>
12
13#define VERIFY_READ 0
14#define VERIFY_WRITE 1
15
16/* We let the MMU do all checking */
17static inline int access_ok(int type, const void __user *addr,
18 unsigned long size)
19{
20 return 1;
21}
22
23/*
24 * The exception table consists of pairs of addresses: the first is the
25 * address of an instruction that is allowed to fault, and the second is
26 * the address at which the program should continue. No registers are
27 * modified, so it is entirely up to the continuation code to figure out
28 * what to do.
29 *
30 * All the routines below use bits of fixup code that are out of line
31 * with the main instruction path. This means when everything is well,
32 * we don't even have to jump over them. Further, they do not intrude
33 * on our cache or tlb entries.
34 */
35
36struct exception_table_entry
37{
38 unsigned long insn, fixup;
39};
40
41extern int __put_user_bad(void);
42extern int __get_user_bad(void);
43
44#define __put_user_asm(res, x, ptr, bwl, reg, err) \
45asm volatile ("\n" \
46 "1: moves."#bwl" %2,%1\n" \
47 "2:\n" \
48 " .section .fixup,\"ax\"\n" \
49 " .even\n" \
50 "10: moveq.l %3,%0\n" \
51 " jra 2b\n" \
52 " .previous\n" \
53 "\n" \
54 " .section __ex_table,\"a\"\n" \
55 " .align 4\n" \
56 " .long 1b,10b\n" \
57 " .long 2b,10b\n" \
58 " .previous" \
59 : "+d" (res), "=m" (*(ptr)) \
60 : #reg (x), "i" (err))
61
62/*
63 * These are the main single-value transfer routines. They automatically
64 * use the right size if we just have the right pointer type.
65 */
66
67#define __put_user(x, ptr) \
68({ \
69 typeof(*(ptr)) __pu_val = (x); \
70 int __pu_err = 0; \
71 __chk_user_ptr(ptr); \
72 switch (sizeof (*(ptr))) { \
73 case 1: \
74 __put_user_asm(__pu_err, __pu_val, ptr, b, d, -EFAULT); \
75 break; \
76 case 2: \
77 __put_user_asm(__pu_err, __pu_val, ptr, w, d, -EFAULT); \
78 break; \
79 case 4: \
80 __put_user_asm(__pu_err, __pu_val, ptr, l, r, -EFAULT); \
81 break; \
82 case 8: \
83 { \
84 const void __user *__pu_ptr = (ptr); \
85 asm volatile ("\n" \
86 "1: moves.l %2,(%1)+\n" \
87 "2: moves.l %R2,(%1)\n" \
88 "3:\n" \
89 " .section .fixup,\"ax\"\n" \
90 " .even\n" \
91 "10: movel %3,%0\n" \
92 " jra 3b\n" \
93 " .previous\n" \
94 "\n" \
95 " .section __ex_table,\"a\"\n" \
96 " .align 4\n" \
97 " .long 1b,10b\n" \
98 " .long 2b,10b\n" \
99 " .long 3b,10b\n" \
100 " .previous" \
101 : "+d" (__pu_err), "+a" (__pu_ptr) \
102 : "r" (__pu_val), "i" (-EFAULT) \
103 : "memory"); \
104 break; \
105 } \
106 default: \
107 __pu_err = __put_user_bad(); \
108 break; \
109 } \
110 __pu_err; \
111})
112#define put_user(x, ptr) __put_user(x, ptr)
113
114
115#define __get_user_asm(res, x, ptr, type, bwl, reg, err) ({ \
116 type __gu_val; \
117 asm volatile ("\n" \
118 "1: moves."#bwl" %2,%1\n" \
119 "2:\n" \
120 " .section .fixup,\"ax\"\n" \
121 " .even\n" \
122 "10: move.l %3,%0\n" \
123 " sub."#bwl" %1,%1\n" \
124 " jra 2b\n" \
125 " .previous\n" \
126 "\n" \
127 " .section __ex_table,\"a\"\n" \
128 " .align 4\n" \
129 " .long 1b,10b\n" \
130 " .previous" \
131 : "+d" (res), "=&" #reg (__gu_val) \
132 : "m" (*(ptr)), "i" (err)); \
133 (x) = (typeof(*(ptr)))(unsigned long)__gu_val; \
134})
135
136#define __get_user(x, ptr) \
137({ \
138 int __gu_err = 0; \
139 __chk_user_ptr(ptr); \
140 switch (sizeof(*(ptr))) { \
141 case 1: \
142 __get_user_asm(__gu_err, x, ptr, u8, b, d, -EFAULT); \
143 break; \
144 case 2: \
145 __get_user_asm(__gu_err, x, ptr, u16, w, d, -EFAULT); \
146 break; \
147 case 4: \
148 __get_user_asm(__gu_err, x, ptr, u32, l, r, -EFAULT); \
149 break; \
150/* case 8: disabled because gcc-4.1 has a broken typeof \
151 { \
152 const void *__gu_ptr = (ptr); \
153 u64 __gu_val; \
154 asm volatile ("\n" \
155 "1: moves.l (%2)+,%1\n" \
156 "2: moves.l (%2),%R1\n" \
157 "3:\n" \
158 " .section .fixup,\"ax\"\n" \
159 " .even\n" \
160 "10: move.l %3,%0\n" \
161 " sub.l %1,%1\n" \
162 " sub.l %R1,%R1\n" \
163 " jra 3b\n" \
164 " .previous\n" \
165 "\n" \
166 " .section __ex_table,\"a\"\n" \
167 " .align 4\n" \
168 " .long 1b,10b\n" \
169 " .long 2b,10b\n" \
170 " .previous" \
171 : "+d" (__gu_err), "=&r" (__gu_val), \
172 "+a" (__gu_ptr) \
173 : "i" (-EFAULT) \
174 : "memory"); \
175 (x) = (typeof(*(ptr)))__gu_val; \
176 break; \
177 } */ \
178 default: \
179 __gu_err = __get_user_bad(); \
180 break; \
181 } \
182 __gu_err; \
183})
184#define get_user(x, ptr) __get_user(x, ptr)
185
186unsigned long __generic_copy_from_user(void *to, const void __user *from, unsigned long n);
187unsigned long __generic_copy_to_user(void __user *to, const void *from, unsigned long n);
188
189#define __constant_copy_from_user_asm(res, to, from, tmp, n, s1, s2, s3)\
190 asm volatile ("\n" \
191 "1: moves."#s1" (%2)+,%3\n" \
192 " move."#s1" %3,(%1)+\n" \
193 "2: moves."#s2" (%2)+,%3\n" \
194 " move."#s2" %3,(%1)+\n" \
195 " .ifnc \""#s3"\",\"\"\n" \
196 "3: moves."#s3" (%2)+,%3\n" \
197 " move."#s3" %3,(%1)+\n" \
198 " .endif\n" \
199 "4:\n" \
200 " .section __ex_table,\"a\"\n" \
201 " .align 4\n" \
202 " .long 1b,10f\n" \
203 " .long 2b,20f\n" \
204 " .ifnc \""#s3"\",\"\"\n" \
205 " .long 3b,30f\n" \
206 " .endif\n" \
207 " .previous\n" \
208 "\n" \
209 " .section .fixup,\"ax\"\n" \
210 " .even\n" \
211 "10: clr."#s1" (%1)+\n" \
212 "20: clr."#s2" (%1)+\n" \
213 " .ifnc \""#s3"\",\"\"\n" \
214 "30: clr."#s3" (%1)+\n" \
215 " .endif\n" \
216 " moveq.l #"#n",%0\n" \
217 " jra 4b\n" \
218 " .previous\n" \
219 : "+d" (res), "+&a" (to), "+a" (from), "=&d" (tmp) \
220 : : "memory")
221
222static __always_inline unsigned long
223__constant_copy_from_user(void *to, const void __user *from, unsigned long n)
224{
225 unsigned long res = 0, tmp;
226
227 switch (n) {
228 case 1:
229 __get_user_asm(res, *(u8 *)to, (u8 __user *)from, u8, b, d, 1);
230 break;
231 case 2:
232 __get_user_asm(res, *(u16 *)to, (u16 __user *)from, u16, w, d, 2);
233 break;
234 case 3:
235 __constant_copy_from_user_asm(res, to, from, tmp, 3, w, b,);
236 break;
237 case 4:
238 __get_user_asm(res, *(u32 *)to, (u32 __user *)from, u32, l, r, 4);
239 break;
240 case 5:
241 __constant_copy_from_user_asm(res, to, from, tmp, 5, l, b,);
242 break;
243 case 6:
244 __constant_copy_from_user_asm(res, to, from, tmp, 6, l, w,);
245 break;
246 case 7:
247 __constant_copy_from_user_asm(res, to, from, tmp, 7, l, w, b);
248 break;
249 case 8:
250 __constant_copy_from_user_asm(res, to, from, tmp, 8, l, l,);
251 break;
252 case 9:
253 __constant_copy_from_user_asm(res, to, from, tmp, 9, l, l, b);
254 break;
255 case 10:
256 __constant_copy_from_user_asm(res, to, from, tmp, 10, l, l, w);
257 break;
258 case 12:
259 __constant_copy_from_user_asm(res, to, from, tmp, 12, l, l, l);
260 break;
261 default:
262 /* we limit the inlined version to 3 moves */
263 return __generic_copy_from_user(to, from, n);
264 }
265
266 return res;
267}
268
269#define __constant_copy_to_user_asm(res, to, from, tmp, n, s1, s2, s3) \
270 asm volatile ("\n" \
271 " move."#s1" (%2)+,%3\n" \
272 "11: moves."#s1" %3,(%1)+\n" \
273 "12: move."#s2" (%2)+,%3\n" \
274 "21: moves."#s2" %3,(%1)+\n" \
275 "22:\n" \
276 " .ifnc \""#s3"\",\"\"\n" \
277 " move."#s3" (%2)+,%3\n" \
278 "31: moves."#s3" %3,(%1)+\n" \
279 "32:\n" \
280 " .endif\n" \
281 "4:\n" \
282 "\n" \
283 " .section __ex_table,\"a\"\n" \
284 " .align 4\n" \
285 " .long 11b,5f\n" \
286 " .long 12b,5f\n" \
287 " .long 21b,5f\n" \
288 " .long 22b,5f\n" \
289 " .ifnc \""#s3"\",\"\"\n" \
290 " .long 31b,5f\n" \
291 " .long 32b,5f\n" \
292 " .endif\n" \
293 " .previous\n" \
294 "\n" \
295 " .section .fixup,\"ax\"\n" \
296 " .even\n" \
297 "5: moveq.l #"#n",%0\n" \
298 " jra 4b\n" \
299 " .previous\n" \
300 : "+d" (res), "+a" (to), "+a" (from), "=&d" (tmp) \
301 : : "memory")
302
303static __always_inline unsigned long
304__constant_copy_to_user(void __user *to, const void *from, unsigned long n)
305{
306 unsigned long res = 0, tmp;
307
308 switch (n) {
309 case 1:
310 __put_user_asm(res, *(u8 *)from, (u8 __user *)to, b, d, 1);
311 break;
312 case 2:
313 __put_user_asm(res, *(u16 *)from, (u16 __user *)to, w, d, 2);
314 break;
315 case 3:
316 __constant_copy_to_user_asm(res, to, from, tmp, 3, w, b,);
317 break;
318 case 4:
319 __put_user_asm(res, *(u32 *)from, (u32 __user *)to, l, r, 4);
320 break;
321 case 5:
322 __constant_copy_to_user_asm(res, to, from, tmp, 5, l, b,);
323 break;
324 case 6:
325 __constant_copy_to_user_asm(res, to, from, tmp, 6, l, w,);
326 break;
327 case 7:
328 __constant_copy_to_user_asm(res, to, from, tmp, 7, l, w, b);
329 break;
330 case 8:
331 __constant_copy_to_user_asm(res, to, from, tmp, 8, l, l,);
332 break;
333 case 9:
334 __constant_copy_to_user_asm(res, to, from, tmp, 9, l, l, b);
335 break;
336 case 10:
337 __constant_copy_to_user_asm(res, to, from, tmp, 10, l, l, w);
338 break;
339 case 12:
340 __constant_copy_to_user_asm(res, to, from, tmp, 12, l, l, l);
341 break;
342 default:
343 /* limit the inlined version to 3 moves */
344 return __generic_copy_to_user(to, from, n);
345 }
346
347 return res;
348}
349
350#define __copy_from_user(to, from, n) \
351(__builtin_constant_p(n) ? \
352 __constant_copy_from_user(to, from, n) : \
353 __generic_copy_from_user(to, from, n))
354
355#define __copy_to_user(to, from, n) \
356(__builtin_constant_p(n) ? \
357 __constant_copy_to_user(to, from, n) : \
358 __generic_copy_to_user(to, from, n))
359
360#define __copy_to_user_inatomic __copy_to_user
361#define __copy_from_user_inatomic __copy_from_user
362
363#define copy_from_user(to, from, n) __copy_from_user(to, from, n)
364#define copy_to_user(to, from, n) __copy_to_user(to, from, n)
365
366long strncpy_from_user(char *dst, const char __user *src, long count);
367long strnlen_user(const char __user *src, long n);
368unsigned long __clear_user(void __user *to, unsigned long n);
369
370#define clear_user __clear_user
371
372#define strlen_user(str) strnlen_user(str, 32767)
373
374#endif /* _M68K_UACCESS_H */
diff --git a/arch/m68knommu/include/asm/uaccess.h b/arch/m68k/include/asm/uaccess_no.h
index 68bbe9b312f1..68bbe9b312f1 100644
--- a/arch/m68knommu/include/asm/uaccess.h
+++ b/arch/m68k/include/asm/uaccess_no.h
diff --git a/arch/m68k/include/asm/ucontext.h b/arch/m68k/include/asm/ucontext.h
new file mode 100644
index 000000000000..b53cd160c0b3
--- /dev/null
+++ b/arch/m68k/include/asm/ucontext.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "ucontext_no.h"
3#else
4#include "ucontext_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/ucontext_mm.h b/arch/m68k/include/asm/ucontext_mm.h
new file mode 100644
index 000000000000..e4e22669edc0
--- /dev/null
+++ b/arch/m68k/include/asm/ucontext_mm.h
@@ -0,0 +1,30 @@
1#ifndef _M68K_UCONTEXT_H
2#define _M68K_UCONTEXT_H
3
4typedef int greg_t;
5#define NGREG 18
6typedef greg_t gregset_t[NGREG];
7
8typedef struct fpregset {
9 int f_fpcntl[3];
10 int f_fpregs[8*3];
11} fpregset_t;
12
13struct mcontext {
14 int version;
15 gregset_t gregs;
16 fpregset_t fpregs;
17};
18
19#define MCONTEXT_VERSION 2
20
21struct ucontext {
22 unsigned long uc_flags;
23 struct ucontext *uc_link;
24 stack_t uc_stack;
25 struct mcontext uc_mcontext;
26 unsigned long uc_filler[80];
27 sigset_t uc_sigmask; /* mask last for extensibility */
28};
29
30#endif
diff --git a/arch/m68knommu/include/asm/ucontext.h b/arch/m68k/include/asm/ucontext_no.h
index 713a27f901cd..713a27f901cd 100644
--- a/arch/m68knommu/include/asm/ucontext.h
+++ b/arch/m68k/include/asm/ucontext_no.h
diff --git a/arch/m68k/include/asm/unaligned.h b/arch/m68k/include/asm/unaligned.h
new file mode 100644
index 000000000000..c640bba3bdf4
--- /dev/null
+++ b/arch/m68k/include/asm/unaligned.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "unaligned_no.h"
3#else
4#include "unaligned_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/unaligned_mm.h b/arch/m68k/include/asm/unaligned_mm.h
new file mode 100644
index 000000000000..77698f2dc33c
--- /dev/null
+++ b/arch/m68k/include/asm/unaligned_mm.h
@@ -0,0 +1,13 @@
1#ifndef _ASM_M68K_UNALIGNED_H
2#define _ASM_M68K_UNALIGNED_H
3
4/*
5 * The m68k can do unaligned accesses itself.
6 */
7#include <linux/unaligned/access_ok.h>
8#include <linux/unaligned/generic.h>
9
10#define get_unaligned __get_unaligned_be
11#define put_unaligned __put_unaligned_be
12
13#endif /* _ASM_M68K_UNALIGNED_H */
diff --git a/arch/m68knommu/include/asm/unaligned.h b/arch/m68k/include/asm/unaligned_no.h
index eb1ea4cb9a59..eb1ea4cb9a59 100644
--- a/arch/m68knommu/include/asm/unaligned.h
+++ b/arch/m68k/include/asm/unaligned_no.h
diff --git a/arch/m68k/include/asm/unistd.h b/arch/m68k/include/asm/unistd.h
new file mode 100644
index 000000000000..df1d9d4cb1fd
--- /dev/null
+++ b/arch/m68k/include/asm/unistd.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "unistd_no.h"
3#else
4#include "unistd_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/unistd_mm.h b/arch/m68k/include/asm/unistd_mm.h
new file mode 100644
index 000000000000..3c19027331fa
--- /dev/null
+++ b/arch/m68k/include/asm/unistd_mm.h
@@ -0,0 +1,372 @@
1#ifndef _ASM_M68K_UNISTD_H_
2#define _ASM_M68K_UNISTD_H_
3
4/*
5 * This file contains the system call numbers.
6 */
7
8#define __NR_restart_syscall 0
9#define __NR_exit 1
10#define __NR_fork 2
11#define __NR_read 3
12#define __NR_write 4
13#define __NR_open 5
14#define __NR_close 6
15#define __NR_waitpid 7
16#define __NR_creat 8
17#define __NR_link 9
18#define __NR_unlink 10
19#define __NR_execve 11
20#define __NR_chdir 12
21#define __NR_time 13
22#define __NR_mknod 14
23#define __NR_chmod 15
24#define __NR_chown 16
25#define __NR_break 17
26#define __NR_oldstat 18
27#define __NR_lseek 19
28#define __NR_getpid 20
29#define __NR_mount 21
30#define __NR_umount 22
31#define __NR_setuid 23
32#define __NR_getuid 24
33#define __NR_stime 25
34#define __NR_ptrace 26
35#define __NR_alarm 27
36#define __NR_oldfstat 28
37#define __NR_pause 29
38#define __NR_utime 30
39#define __NR_stty 31
40#define __NR_gtty 32
41#define __NR_access 33
42#define __NR_nice 34
43#define __NR_ftime 35
44#define __NR_sync 36
45#define __NR_kill 37
46#define __NR_rename 38
47#define __NR_mkdir 39
48#define __NR_rmdir 40
49#define __NR_dup 41
50#define __NR_pipe 42
51#define __NR_times 43
52#define __NR_prof 44
53#define __NR_brk 45
54#define __NR_setgid 46
55#define __NR_getgid 47
56#define __NR_signal 48
57#define __NR_geteuid 49
58#define __NR_getegid 50
59#define __NR_acct 51
60#define __NR_umount2 52
61#define __NR_lock 53
62#define __NR_ioctl 54
63#define __NR_fcntl 55
64#define __NR_mpx 56
65#define __NR_setpgid 57
66#define __NR_ulimit 58
67#define __NR_oldolduname 59
68#define __NR_umask 60
69#define __NR_chroot 61
70#define __NR_ustat 62
71#define __NR_dup2 63
72#define __NR_getppid 64
73#define __NR_getpgrp 65
74#define __NR_setsid 66
75#define __NR_sigaction 67
76#define __NR_sgetmask 68
77#define __NR_ssetmask 69
78#define __NR_setreuid 70
79#define __NR_setregid 71
80#define __NR_sigsuspend 72
81#define __NR_sigpending 73
82#define __NR_sethostname 74
83#define __NR_setrlimit 75
84#define __NR_getrlimit 76
85#define __NR_getrusage 77
86#define __NR_gettimeofday 78
87#define __NR_settimeofday 79
88#define __NR_getgroups 80
89#define __NR_setgroups 81
90#define __NR_select 82
91#define __NR_symlink 83
92#define __NR_oldlstat 84
93#define __NR_readlink 85
94#define __NR_uselib 86
95#define __NR_swapon 87
96#define __NR_reboot 88
97#define __NR_readdir 89
98#define __NR_mmap 90
99#define __NR_munmap 91
100#define __NR_truncate 92
101#define __NR_ftruncate 93
102#define __NR_fchmod 94
103#define __NR_fchown 95
104#define __NR_getpriority 96
105#define __NR_setpriority 97
106#define __NR_profil 98
107#define __NR_statfs 99
108#define __NR_fstatfs 100
109#define __NR_ioperm 101
110#define __NR_socketcall 102
111#define __NR_syslog 103
112#define __NR_setitimer 104
113#define __NR_getitimer 105
114#define __NR_stat 106
115#define __NR_lstat 107
116#define __NR_fstat 108
117#define __NR_olduname 109
118#define __NR_iopl /* 110 */ not supported
119#define __NR_vhangup 111
120#define __NR_idle /* 112 */ Obsolete
121#define __NR_vm86 /* 113 */ not supported
122#define __NR_wait4 114
123#define __NR_swapoff 115
124#define __NR_sysinfo 116
125#define __NR_ipc 117
126#define __NR_fsync 118
127#define __NR_sigreturn 119
128#define __NR_clone 120
129#define __NR_setdomainname 121
130#define __NR_uname 122
131#define __NR_cacheflush 123
132#define __NR_adjtimex 124
133#define __NR_mprotect 125
134#define __NR_sigprocmask 126
135#define __NR_create_module 127
136#define __NR_init_module 128
137#define __NR_delete_module 129
138#define __NR_get_kernel_syms 130
139#define __NR_quotactl 131
140#define __NR_getpgid 132
141#define __NR_fchdir 133
142#define __NR_bdflush 134
143#define __NR_sysfs 135
144#define __NR_personality 136
145#define __NR_afs_syscall 137 /* Syscall for Andrew File System */
146#define __NR_setfsuid 138
147#define __NR_setfsgid 139
148#define __NR__llseek 140
149#define __NR_getdents 141
150#define __NR__newselect 142
151#define __NR_flock 143
152#define __NR_msync 144
153#define __NR_readv 145
154#define __NR_writev 146
155#define __NR_getsid 147
156#define __NR_fdatasync 148
157#define __NR__sysctl 149
158#define __NR_mlock 150
159#define __NR_munlock 151
160#define __NR_mlockall 152
161#define __NR_munlockall 153
162#define __NR_sched_setparam 154
163#define __NR_sched_getparam 155
164#define __NR_sched_setscheduler 156
165#define __NR_sched_getscheduler 157
166#define __NR_sched_yield 158
167#define __NR_sched_get_priority_max 159
168#define __NR_sched_get_priority_min 160
169#define __NR_sched_rr_get_interval 161
170#define __NR_nanosleep 162
171#define __NR_mremap 163
172#define __NR_setresuid 164
173#define __NR_getresuid 165
174#define __NR_getpagesize 166
175#define __NR_query_module 167
176#define __NR_poll 168
177#define __NR_nfsservctl 169
178#define __NR_setresgid 170
179#define __NR_getresgid 171
180#define __NR_prctl 172
181#define __NR_rt_sigreturn 173
182#define __NR_rt_sigaction 174
183#define __NR_rt_sigprocmask 175
184#define __NR_rt_sigpending 176
185#define __NR_rt_sigtimedwait 177
186#define __NR_rt_sigqueueinfo 178
187#define __NR_rt_sigsuspend 179
188#define __NR_pread64 180
189#define __NR_pwrite64 181
190#define __NR_lchown 182
191#define __NR_getcwd 183
192#define __NR_capget 184
193#define __NR_capset 185
194#define __NR_sigaltstack 186
195#define __NR_sendfile 187
196#define __NR_getpmsg 188 /* some people actually want streams */
197#define __NR_putpmsg 189 /* some people actually want streams */
198#define __NR_vfork 190
199#define __NR_ugetrlimit 191
200#define __NR_mmap2 192
201#define __NR_truncate64 193
202#define __NR_ftruncate64 194
203#define __NR_stat64 195
204#define __NR_lstat64 196
205#define __NR_fstat64 197
206#define __NR_chown32 198
207#define __NR_getuid32 199
208#define __NR_getgid32 200
209#define __NR_geteuid32 201
210#define __NR_getegid32 202
211#define __NR_setreuid32 203
212#define __NR_setregid32 204
213#define __NR_getgroups32 205
214#define __NR_setgroups32 206
215#define __NR_fchown32 207
216#define __NR_setresuid32 208
217#define __NR_getresuid32 209
218#define __NR_setresgid32 210
219#define __NR_getresgid32 211
220#define __NR_lchown32 212
221#define __NR_setuid32 213
222#define __NR_setgid32 214
223#define __NR_setfsuid32 215
224#define __NR_setfsgid32 216
225#define __NR_pivot_root 217
226#define __NR_getdents64 220
227#define __NR_gettid 221
228#define __NR_tkill 222
229#define __NR_setxattr 223
230#define __NR_lsetxattr 224
231#define __NR_fsetxattr 225
232#define __NR_getxattr 226
233#define __NR_lgetxattr 227
234#define __NR_fgetxattr 228
235#define __NR_listxattr 229
236#define __NR_llistxattr 230
237#define __NR_flistxattr 231
238#define __NR_removexattr 232
239#define __NR_lremovexattr 233
240#define __NR_fremovexattr 234
241#define __NR_futex 235
242#define __NR_sendfile64 236
243#define __NR_mincore 237
244#define __NR_madvise 238
245#define __NR_fcntl64 239
246#define __NR_readahead 240
247#define __NR_io_setup 241
248#define __NR_io_destroy 242
249#define __NR_io_getevents 243
250#define __NR_io_submit 244
251#define __NR_io_cancel 245
252#define __NR_fadvise64 246
253#define __NR_exit_group 247
254#define __NR_lookup_dcookie 248
255#define __NR_epoll_create 249
256#define __NR_epoll_ctl 250
257#define __NR_epoll_wait 251
258#define __NR_remap_file_pages 252
259#define __NR_set_tid_address 253
260#define __NR_timer_create 254
261#define __NR_timer_settime 255
262#define __NR_timer_gettime 256
263#define __NR_timer_getoverrun 257
264#define __NR_timer_delete 258
265#define __NR_clock_settime 259
266#define __NR_clock_gettime 260
267#define __NR_clock_getres 261
268#define __NR_clock_nanosleep 262
269#define __NR_statfs64 263
270#define __NR_fstatfs64 264
271#define __NR_tgkill 265
272#define __NR_utimes 266
273#define __NR_fadvise64_64 267
274#define __NR_mbind 268
275#define __NR_get_mempolicy 269
276#define __NR_set_mempolicy 270
277#define __NR_mq_open 271
278#define __NR_mq_unlink 272
279#define __NR_mq_timedsend 273
280#define __NR_mq_timedreceive 274
281#define __NR_mq_notify 275
282#define __NR_mq_getsetattr 276
283#define __NR_waitid 277
284#define __NR_vserver 278
285#define __NR_add_key 279
286#define __NR_request_key 280
287#define __NR_keyctl 281
288#define __NR_ioprio_set 282
289#define __NR_ioprio_get 283
290#define __NR_inotify_init 284
291#define __NR_inotify_add_watch 285
292#define __NR_inotify_rm_watch 286
293#define __NR_migrate_pages 287
294#define __NR_openat 288
295#define __NR_mkdirat 289
296#define __NR_mknodat 290
297#define __NR_fchownat 291
298#define __NR_futimesat 292
299#define __NR_fstatat64 293
300#define __NR_unlinkat 294
301#define __NR_renameat 295
302#define __NR_linkat 296
303#define __NR_symlinkat 297
304#define __NR_readlinkat 298
305#define __NR_fchmodat 299
306#define __NR_faccessat 300
307#define __NR_pselect6 301
308#define __NR_ppoll 302
309#define __NR_unshare 303
310#define __NR_set_robust_list 304
311#define __NR_get_robust_list 305
312#define __NR_splice 306
313#define __NR_sync_file_range 307
314#define __NR_tee 308
315#define __NR_vmsplice 309
316#define __NR_move_pages 310
317#define __NR_sched_setaffinity 311
318#define __NR_sched_getaffinity 312
319#define __NR_kexec_load 313
320#define __NR_getcpu 314
321#define __NR_epoll_pwait 315
322#define __NR_utimensat 316
323#define __NR_signalfd 317
324#define __NR_timerfd_create 318
325#define __NR_eventfd 319
326#define __NR_fallocate 320
327#define __NR_timerfd_settime 321
328#define __NR_timerfd_gettime 322
329#define __NR_signalfd4 323
330#define __NR_eventfd2 324
331#define __NR_epoll_create1 325
332#define __NR_dup3 326
333#define __NR_pipe2 327
334#define __NR_inotify_init1 328
335
336#ifdef __KERNEL__
337
338#define NR_syscalls 329
339
340#define __ARCH_WANT_IPC_PARSE_VERSION
341#define __ARCH_WANT_OLD_READDIR
342#define __ARCH_WANT_OLD_STAT
343#define __ARCH_WANT_STAT64
344#define __ARCH_WANT_SYS_ALARM
345#define __ARCH_WANT_SYS_GETHOSTNAME
346#define __ARCH_WANT_SYS_PAUSE
347#define __ARCH_WANT_SYS_SGETMASK
348#define __ARCH_WANT_SYS_SIGNAL
349#define __ARCH_WANT_SYS_TIME
350#define __ARCH_WANT_SYS_UTIME
351#define __ARCH_WANT_SYS_WAITPID
352#define __ARCH_WANT_SYS_SOCKETCALL
353#define __ARCH_WANT_SYS_FADVISE64
354#define __ARCH_WANT_SYS_GETPGRP
355#define __ARCH_WANT_SYS_LLSEEK
356#define __ARCH_WANT_SYS_NICE
357#define __ARCH_WANT_SYS_OLD_GETRLIMIT
358#define __ARCH_WANT_SYS_OLDUMOUNT
359#define __ARCH_WANT_SYS_SIGPENDING
360#define __ARCH_WANT_SYS_SIGPROCMASK
361#define __ARCH_WANT_SYS_RT_SIGACTION
362
363/*
364 * "Conditional" syscalls
365 *
366 * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
367 * but it doesn't work on all toolchains, so we just do it by hand
368 */
369#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
370
371#endif /* __KERNEL__ */
372#endif /* _ASM_M68K_UNISTD_H_ */
diff --git a/arch/m68knommu/include/asm/unistd.h b/arch/m68k/include/asm/unistd_no.h
index b034a2f7b444..b034a2f7b444 100644
--- a/arch/m68knommu/include/asm/unistd.h
+++ b/arch/m68k/include/asm/unistd_no.h
diff --git a/arch/m68k/include/asm/user.h b/arch/m68k/include/asm/user.h
new file mode 100644
index 000000000000..f1f478d6e050
--- /dev/null
+++ b/arch/m68k/include/asm/user.h
@@ -0,0 +1,86 @@
1#ifndef _M68K_USER_H
2#define _M68K_USER_H
3
4/* Core file format: The core file is written in such a way that gdb
5 can understand it and provide useful information to the user (under
6 linux we use the 'trad-core' bfd). There are quite a number of
7 obstacles to being able to view the contents of the floating point
8 registers, and until these are solved you will not be able to view the
9 contents of them. Actually, you can read in the core file and look at
10 the contents of the user struct to find out what the floating point
11 registers contain.
12 The actual file contents are as follows:
13 UPAGE: 1 page consisting of a user struct that tells gdb what is present
14 in the file. Directly after this is a copy of the task_struct, which
15 is currently not used by gdb, but it may come in useful at some point.
16 All of the registers are stored as part of the upage. The upage should
17 always be only one page.
18 DATA: The data area is stored. We use current->end_text to
19 current->brk to pick up all of the user variables, plus any memory
20 that may have been malloced. No attempt is made to determine if a page
21 is demand-zero or if a page is totally unused, we just cover the entire
22 range. All of the addresses are rounded in such a way that an integral
23 number of pages is written.
24 STACK: We need the stack information in order to get a meaningful
25 backtrace. We need to write the data from (esp) to
26 current->start_stack, so we round each of these off in order to be able
27 to write an integer number of pages.
28 The minimum core file size is 3 pages, or 12288 bytes.
29*/
30
31struct user_m68kfp_struct {
32 unsigned long fpregs[8*3]; /* fp0-fp7 registers */
33 unsigned long fpcntl[3]; /* fp control regs */
34};
35
36/* This is the old layout of "struct pt_regs" as of Linux 1.x, and
37 is still the layout used by user (the new pt_regs doesn't have
38 all registers). */
39struct user_regs_struct {
40 long d1,d2,d3,d4,d5,d6,d7;
41 long a0,a1,a2,a3,a4,a5,a6;
42 long d0;
43 long usp;
44 long orig_d0;
45 short stkadj;
46 short sr;
47 long pc;
48 short fmtvec;
49 short __fill;
50};
51
52
53/* When the kernel dumps core, it starts by dumping the user struct -
54 this will be used by gdb to figure out where the data and stack segments
55 are within the file, and what virtual addresses to use. */
56struct user{
57/* We start with the registers, to mimic the way that "memory" is returned
58 from the ptrace(3,...) function. */
59 struct user_regs_struct regs; /* Where the registers are actually stored */
60/* ptrace does not yet supply these. Someday.... */
61 int u_fpvalid; /* True if math co-processor being used. */
62 /* for this mess. Not yet used. */
63 struct user_m68kfp_struct m68kfp; /* Math Co-processor registers. */
64/* The rest of this junk is to help gdb figure out what goes where */
65 unsigned long int u_tsize; /* Text segment size (pages). */
66 unsigned long int u_dsize; /* Data segment size (pages). */
67 unsigned long int u_ssize; /* Stack segment size (pages). */
68 unsigned long start_code; /* Starting virtual address of text. */
69 unsigned long start_stack; /* Starting virtual address of stack area.
70 This is actually the bottom of the stack,
71 the top of the stack is always found in the
72 esp register. */
73 long int signal; /* Signal that caused the core dump. */
74 int reserved; /* No longer used */
75 unsigned long u_ar0; /* Used by gdb to help find the values for */
76 /* the registers. */
77 struct user_m68kfp_struct* u_fpstate; /* Math Co-processor pointer. */
78 unsigned long magic; /* To uniquely identify a core file */
79 char u_comm[32]; /* User command that was responsible */
80};
81#define NBPG 4096
82#define UPAGES 1
83#define HOST_TEXT_START_ADDR (u.start_code)
84#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
85
86#endif
diff --git a/arch/m68k/include/asm/virtconvert.h b/arch/m68k/include/asm/virtconvert.h
new file mode 100644
index 000000000000..22ab05c9c52b
--- /dev/null
+++ b/arch/m68k/include/asm/virtconvert.h
@@ -0,0 +1,48 @@
1#ifndef __VIRT_CONVERT__
2#define __VIRT_CONVERT__
3
4/*
5 * Macros used for converting between virtual and physical mappings.
6 */
7
8#ifdef __KERNEL__
9
10#include <linux/compiler.h>
11#include <linux/mmzone.h>
12#include <asm/setup.h>
13#include <asm/page.h>
14
15/*
16 * Change virtual addresses to physical addresses and vv.
17 */
18static inline unsigned long virt_to_phys(void *address)
19{
20 return __pa(address);
21}
22
23static inline void *phys_to_virt(unsigned long address)
24{
25 return __va(address);
26}
27
28/* Permanent address of a page. */
29#ifdef CONFIG_SINGLE_MEMORY_CHUNK
30#define page_to_phys(page) \
31 __pa(PAGE_OFFSET + (((page) - pg_data_map[0].node_mem_map) << PAGE_SHIFT))
32#else
33#define page_to_phys(_page) ({ \
34 struct page *__page = _page; \
35 struct pglist_data *pgdat; \
36 pgdat = pg_data_table[page_to_nid(__page)]; \
37 page_to_pfn(__page) << PAGE_SHIFT; \
38})
39#endif
40
41/*
42 * IO bus memory addresses are 1:1 with the physical address,
43 */
44#define virt_to_bus virt_to_phys
45#define bus_to_virt phys_to_virt
46
47#endif
48#endif
diff --git a/arch/m68k/include/asm/xor.h b/arch/m68k/include/asm/xor.h
new file mode 100644
index 000000000000..c82eb12a5b18
--- /dev/null
+++ b/arch/m68k/include/asm/xor.h
@@ -0,0 +1 @@
#include <asm-generic/xor.h>
diff --git a/arch/m68k/include/asm/zorro.h b/arch/m68k/include/asm/zorro.h
new file mode 100644
index 000000000000..5ce97c22b582
--- /dev/null
+++ b/arch/m68k/include/asm/zorro.h
@@ -0,0 +1,45 @@
1#ifndef _ASM_M68K_ZORRO_H
2#define _ASM_M68K_ZORRO_H
3
4#include <asm/raw_io.h>
5
6#define z_readb raw_inb
7#define z_readw raw_inw
8#define z_readl raw_inl
9
10#define z_writeb raw_outb
11#define z_writew raw_outw
12#define z_writel raw_outl
13
14#define z_memset_io(a,b,c) memset((void *)(a),(b),(c))
15#define z_memcpy_fromio(a,b,c) memcpy((a),(void *)(b),(c))
16#define z_memcpy_toio(a,b,c) memcpy((void *)(a),(b),(c))
17
18static inline void __iomem *z_remap_nocache_ser(unsigned long physaddr,
19 unsigned long size)
20{
21 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
22}
23
24static inline void __iomem *z_remap_nocache_nonser(unsigned long physaddr,
25 unsigned long size)
26{
27 return __ioremap(physaddr, size, IOMAP_NOCACHE_NONSER);
28}
29
30static inline void __iomem *z_remap_writethrough(unsigned long physaddr,
31 unsigned long size)
32{
33 return __ioremap(physaddr, size, IOMAP_WRITETHROUGH);
34}
35static inline void __iomem *z_remap_fullcache(unsigned long physaddr,
36 unsigned long size)
37{
38 return __ioremap(physaddr, size, IOMAP_FULL_CACHING);
39}
40
41#define z_unmap iounmap
42#define z_iounmap iounmap
43#define z_ioremap z_remap_nocache_ser
44
45#endif /* _ASM_M68K_ZORRO_H */
diff --git a/arch/m68k/kernel/.gitignore b/arch/m68k/kernel/.gitignore
new file mode 100644
index 000000000000..c5f676c3c224
--- /dev/null
+++ b/arch/m68k/kernel/.gitignore
@@ -0,0 +1 @@
vmlinux.lds
diff --git a/arch/m68k/kernel/entry.S b/arch/m68k/kernel/entry.S
index f28404d9a2bc..5c332f2b9b83 100644
--- a/arch/m68k/kernel/entry.S
+++ b/arch/m68k/kernel/entry.S
@@ -424,7 +424,7 @@ resume:
424.data 424.data
425ALIGN 425ALIGN
426sys_call_table: 426sys_call_table:
427 .long sys_ni_syscall /* 0 - old "setup()" system call*/ 427 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */
428 .long sys_exit 428 .long sys_exit
429 .long sys_fork 429 .long sys_fork
430 .long sys_read 430 .long sys_read
@@ -513,7 +513,7 @@ sys_call_table:
513 .long sys_uselib 513 .long sys_uselib
514 .long sys_swapon 514 .long sys_swapon
515 .long sys_reboot 515 .long sys_reboot
516 .long old_readdir 516 .long sys_old_readdir
517 .long old_mmap /* 90 */ 517 .long old_mmap /* 90 */
518 .long sys_munmap 518 .long sys_munmap
519 .long sys_truncate 519 .long sys_truncate
diff --git a/arch/m68k/kernel/setup.c b/arch/m68k/kernel/setup.c
index 4d97bd2bd573..303730afb1c9 100644
--- a/arch/m68k/kernel/setup.c
+++ b/arch/m68k/kernel/setup.c
@@ -26,6 +26,7 @@
26#include <linux/initrd.h> 26#include <linux/initrd.h>
27 27
28#include <asm/bootinfo.h> 28#include <asm/bootinfo.h>
29#include <asm/sections.h>
29#include <asm/setup.h> 30#include <asm/setup.h>
30#include <asm/fpu.h> 31#include <asm/fpu.h>
31#include <asm/irq.h> 32#include <asm/irq.h>
@@ -62,7 +63,6 @@ EXPORT_SYMBOL(vme_brdtype);
62int m68k_is040or060; 63int m68k_is040or060;
63EXPORT_SYMBOL(m68k_is040or060); 64EXPORT_SYMBOL(m68k_is040or060);
64 65
65extern int end;
66extern unsigned long availmem; 66extern unsigned long availmem;
67 67
68int m68k_num_memory; 68int m68k_num_memory;
@@ -215,11 +215,10 @@ static void __init m68k_parse_bootinfo(const struct bi_record *record)
215 215
216void __init setup_arch(char **cmdline_p) 216void __init setup_arch(char **cmdline_p)
217{ 217{
218 extern int _etext, _edata, _end;
219 int i; 218 int i;
220 219
221 /* The bootinfo is located right after the kernel bss */ 220 /* The bootinfo is located right after the kernel bss */
222 m68k_parse_bootinfo((const struct bi_record *)&_end); 221 m68k_parse_bootinfo((const struct bi_record *)_end);
223 222
224 if (CPU_IS_040) 223 if (CPU_IS_040)
225 m68k_is040or060 = 4; 224 m68k_is040or060 = 4;
@@ -252,9 +251,9 @@ void __init setup_arch(char **cmdline_p)
252 } 251 }
253 252
254 init_mm.start_code = PAGE_OFFSET; 253 init_mm.start_code = PAGE_OFFSET;
255 init_mm.end_code = (unsigned long) &_etext; 254 init_mm.end_code = (unsigned long)_etext;
256 init_mm.end_data = (unsigned long) &_edata; 255 init_mm.end_data = (unsigned long)_edata;
257 init_mm.brk = (unsigned long) &_end; 256 init_mm.brk = (unsigned long)_end;
258 257
259 *cmdline_p = m68k_command_line; 258 *cmdline_p = m68k_command_line;
260 memcpy(boot_command_line, *cmdline_p, CL_SIZE); 259 memcpy(boot_command_line, *cmdline_p, CL_SIZE);
diff --git a/arch/m68k/kernel/signal.c b/arch/m68k/kernel/signal.c
index f9af893cd289..de2d05ddd86d 100644
--- a/arch/m68k/kernel/signal.c
+++ b/arch/m68k/kernel/signal.c
@@ -326,6 +326,9 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *usc, void __u
326 struct sigcontext context; 326 struct sigcontext context;
327 int err; 327 int err;
328 328
329 /* Always make any pending restarted system calls return -EINTR */
330 current_thread_info()->restart_block.fn = do_no_restart_syscall;
331
329 /* get previous context */ 332 /* get previous context */
330 if (copy_from_user(&context, usc, sizeof(context))) 333 if (copy_from_user(&context, usc, sizeof(context)))
331 goto badframe; 334 goto badframe;
@@ -411,6 +414,9 @@ rt_restore_ucontext(struct pt_regs *regs, struct switch_stack *sw,
411 unsigned long usp; 414 unsigned long usp;
412 int err; 415 int err;
413 416
417 /* Always make any pending restarted system calls return -EINTR */
418 current_thread_info()->restart_block.fn = do_no_restart_syscall;
419
414 err = __get_user(temp, &uc->uc_mcontext.version); 420 err = __get_user(temp, &uc->uc_mcontext.version);
415 if (temp != MCONTEXT_VERSION) 421 if (temp != MCONTEXT_VERSION)
416 goto badframe; 422 goto badframe;
@@ -937,6 +943,15 @@ handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler)
937 regs->d0 = -EINTR; 943 regs->d0 = -EINTR;
938 break; 944 break;
939 945
946 case -ERESTART_RESTARTBLOCK:
947 if (!has_handler) {
948 regs->d0 = __NR_restart_syscall;
949 regs->pc -= 2;
950 break;
951 }
952 regs->d0 = -EINTR;
953 break;
954
940 case -ERESTARTSYS: 955 case -ERESTARTSYS:
941 if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) { 956 if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) {
942 regs->d0 = -EINTR; 957 regs->d0 = -EINTR;
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
index 8a4919e4d36a..d9368c0709ba 100644
--- a/arch/m68k/kernel/vmlinux-sun3.lds
+++ b/arch/m68k/kernel/vmlinux-sun3.lds
@@ -33,6 +33,7 @@ SECTIONS
33 } :data 33 } :data
34 /* End of data goes *here* so that freeing init code works properly. */ 34 /* End of data goes *here* so that freeing init code works properly. */
35 _edata = .; 35 _edata = .;
36 NOTES
36 37
37 /* will be freed after init */ 38 /* will be freed after init */
38 . = ALIGN(PAGE_SIZE); /* Init code and data */ 39 . = ALIGN(PAGE_SIZE); /* Init code and data */
diff --git a/arch/m68k/mac/baboon.c b/arch/m68k/mac/baboon.c
index 245d16d078ad..2a96bebd8969 100644
--- a/arch/m68k/mac/baboon.c
+++ b/arch/m68k/mac/baboon.c
@@ -92,7 +92,8 @@ static irqreturn_t baboon_irq(int irq, void *dev_id)
92void __init baboon_register_interrupts(void) 92void __init baboon_register_interrupts(void)
93{ 93{
94 baboon_disabled = 0; 94 baboon_disabled = 0;
95 request_irq(IRQ_NUBUS_C, baboon_irq, 0, "baboon", (void *)baboon); 95 if (request_irq(IRQ_NUBUS_C, baboon_irq, 0, "baboon", (void *)baboon))
96 pr_err("Couldn't register baboon interrupt\n");
96} 97}
97 98
98/* 99/*
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c
index 8819b97be324..98b6bcfb37bf 100644
--- a/arch/m68k/mac/config.c
+++ b/arch/m68k/mac/config.c
@@ -47,13 +47,6 @@
47 47
48struct mac_booter_data mac_bi_data; 48struct mac_booter_data mac_bi_data;
49 49
50/* New m68k bootinfo stuff and videobase */
51
52extern int m68k_num_memory;
53extern struct mem_info m68k_memory[NUM_MEMINFO];
54
55extern struct mem_info m68k_ramdisk;
56
57/* The phys. video addr. - might be bogus on some machines */ 50/* The phys. video addr. - might be bogus on some machines */
58static unsigned long mac_orig_videoaddr; 51static unsigned long mac_orig_videoaddr;
59 52
@@ -61,7 +54,6 @@ static unsigned long mac_orig_videoaddr;
61extern unsigned long mac_gettimeoffset(void); 54extern unsigned long mac_gettimeoffset(void);
62extern int mac_hwclk(int, struct rtc_time *); 55extern int mac_hwclk(int, struct rtc_time *);
63extern int mac_set_clock_mmss(unsigned long); 56extern int mac_set_clock_mmss(unsigned long);
64extern int show_mac_interrupts(struct seq_file *, void *);
65extern void iop_preinit(void); 57extern void iop_preinit(void);
66extern void iop_init(void); 58extern void iop_init(void);
67extern void via_init(void); 59extern void via_init(void);
@@ -805,10 +797,6 @@ static void __init mac_identify(void)
805 mac_bi_data.boottime, mac_bi_data.gmtbias); 797 mac_bi_data.boottime, mac_bi_data.gmtbias);
806 printk(KERN_DEBUG " Machine ID: %ld CPUid: 0x%lx memory size: 0x%lx \n", 798 printk(KERN_DEBUG " Machine ID: %ld CPUid: 0x%lx memory size: 0x%lx \n",
807 mac_bi_data.id, mac_bi_data.cpuid, mac_bi_data.memsize); 799 mac_bi_data.id, mac_bi_data.cpuid, mac_bi_data.memsize);
808#if 0
809 printk("Ramdisk: addr 0x%lx size 0x%lx\n",
810 m68k_ramdisk.addr, m68k_ramdisk.size);
811#endif
812 800
813 iop_init(); 801 iop_init();
814 via_init(); 802 via_init();
diff --git a/arch/m68k/mac/debug.c b/arch/m68k/mac/debug.c
index 65dd77a742a3..bce074ceb768 100644
--- a/arch/m68k/mac/debug.c
+++ b/arch/m68k/mac/debug.c
@@ -27,7 +27,6 @@
27#include <asm/macints.h> 27#include <asm/macints.h>
28 28
29extern unsigned long mac_videobase; 29extern unsigned long mac_videobase;
30extern unsigned long mac_videodepth;
31extern unsigned long mac_rowbytes; 30extern unsigned long mac_rowbytes;
32 31
33extern void mac_serial_print(const char *); 32extern void mac_serial_print(const char *);
diff --git a/arch/m68k/mac/iop.c b/arch/m68k/mac/iop.c
index 326fb9978094..1ad4e9d80eba 100644
--- a/arch/m68k/mac/iop.c
+++ b/arch/m68k/mac/iop.c
@@ -305,14 +305,16 @@ void __init iop_register_interrupts(void)
305{ 305{
306 if (iop_ism_present) { 306 if (iop_ism_present) {
307 if (oss_present) { 307 if (oss_present) {
308 request_irq(OSS_IRQLEV_IOPISM, iop_ism_irq, 308 if (request_irq(OSS_IRQLEV_IOPISM, iop_ism_irq,
309 IRQ_FLG_LOCK, "ISM IOP", 309 IRQ_FLG_LOCK, "ISM IOP",
310 (void *) IOP_NUM_ISM); 310 (void *) IOP_NUM_ISM))
311 pr_err("Couldn't register ISM IOP interrupt\n");
311 oss_irq_enable(IRQ_MAC_ADB); 312 oss_irq_enable(IRQ_MAC_ADB);
312 } else { 313 } else {
313 request_irq(IRQ_VIA2_0, iop_ism_irq, 314 if (request_irq(IRQ_VIA2_0, iop_ism_irq,
314 IRQ_FLG_LOCK|IRQ_FLG_FAST, "ISM IOP", 315 IRQ_FLG_LOCK|IRQ_FLG_FAST, "ISM IOP",
315 (void *) IOP_NUM_ISM); 316 (void *) IOP_NUM_ISM))
317 pr_err("Couldn't register ISM IOP interrupt\n");
316 } 318 }
317 if (!iop_alive(iop_base[IOP_NUM_ISM])) { 319 if (!iop_alive(iop_base[IOP_NUM_ISM])) {
318 printk("IOP: oh my god, they killed the ISM IOP!\n"); 320 printk("IOP: oh my god, they killed the ISM IOP!\n");
diff --git a/arch/m68k/mac/macints.c b/arch/m68k/mac/macints.c
index 82e560c076ce..23711074e0e2 100644
--- a/arch/m68k/mac/macints.c
+++ b/arch/m68k/mac/macints.c
@@ -134,6 +134,7 @@
134#include <asm/errno.h> 134#include <asm/errno.h>
135#include <asm/macints.h> 135#include <asm/macints.h>
136#include <asm/irq_regs.h> 136#include <asm/irq_regs.h>
137#include <asm/mac_oss.h>
137 138
138#define DEBUG_SPURIOUS 139#define DEBUG_SPURIOUS
139#define SHUTUP_SONIC 140#define SHUTUP_SONIC
@@ -146,7 +147,6 @@ static int scc_mask;
146 * VIA/RBV hooks 147 * VIA/RBV hooks
147 */ 148 */
148 149
149extern void via_init(void);
150extern void via_register_interrupts(void); 150extern void via_register_interrupts(void);
151extern void via_irq_enable(int); 151extern void via_irq_enable(int);
152extern void via_irq_disable(int); 152extern void via_irq_disable(int);
@@ -157,9 +157,6 @@ extern int via_irq_pending(int);
157 * OSS hooks 157 * OSS hooks
158 */ 158 */
159 159
160extern int oss_present;
161
162extern void oss_init(void);
163extern void oss_register_interrupts(void); 160extern void oss_register_interrupts(void);
164extern void oss_irq_enable(int); 161extern void oss_irq_enable(int);
165extern void oss_irq_disable(int); 162extern void oss_irq_disable(int);
@@ -170,9 +167,6 @@ extern int oss_irq_pending(int);
170 * PSC hooks 167 * PSC hooks
171 */ 168 */
172 169
173extern int psc_present;
174
175extern void psc_init(void);
176extern void psc_register_interrupts(void); 170extern void psc_register_interrupts(void);
177extern void psc_irq_enable(int); 171extern void psc_irq_enable(int);
178extern void psc_irq_disable(int); 172extern void psc_irq_disable(int);
@@ -191,12 +185,10 @@ extern void iop_register_interrupts(void);
191 185
192extern int baboon_present; 186extern int baboon_present;
193 187
194extern void baboon_init(void);
195extern void baboon_register_interrupts(void); 188extern void baboon_register_interrupts(void);
196extern void baboon_irq_enable(int); 189extern void baboon_irq_enable(int);
197extern void baboon_irq_disable(int); 190extern void baboon_irq_disable(int);
198extern void baboon_irq_clear(int); 191extern void baboon_irq_clear(int);
199extern int baboon_irq_pending(int);
200 192
201/* 193/*
202 * SCC interrupt routines 194 * SCC interrupt routines
@@ -258,8 +250,9 @@ void __init mac_init_IRQ(void)
258 if (baboon_present) 250 if (baboon_present)
259 baboon_register_interrupts(); 251 baboon_register_interrupts();
260 iop_register_interrupts(); 252 iop_register_interrupts();
261 request_irq(IRQ_AUTO_7, mac_nmi_handler, 0, "NMI", 253 if (request_irq(IRQ_AUTO_7, mac_nmi_handler, 0, "NMI",
262 mac_nmi_handler); 254 mac_nmi_handler))
255 pr_err("Couldn't register NMI\n");
263#ifdef DEBUG_MACINTS 256#ifdef DEBUG_MACINTS
264 printk("mac_init_IRQ(): Done!\n"); 257 printk("mac_init_IRQ(): Done!\n");
265#endif 258#endif
diff --git a/arch/m68k/mac/misc.c b/arch/m68k/mac/misc.c
index a44c7086ab39..5d818568b343 100644
--- a/arch/m68k/mac/misc.c
+++ b/arch/m68k/mac/misc.c
@@ -35,7 +35,6 @@
35 35
36#define RTC_OFFSET 2082844800 36#define RTC_OFFSET 2082844800
37 37
38extern struct mac_booter_data mac_bi_data;
39static void (*rom_reset)(void); 38static void (*rom_reset)(void);
40 39
41#ifdef CONFIG_ADB_CUDA 40#ifdef CONFIG_ADB_CUDA
diff --git a/arch/m68k/mac/oss.c b/arch/m68k/mac/oss.c
index 8426501119ca..f3d23d6ebcf8 100644
--- a/arch/m68k/mac/oss.c
+++ b/arch/m68k/mac/oss.c
@@ -66,16 +66,21 @@ void __init oss_init(void)
66 66
67void __init oss_register_interrupts(void) 67void __init oss_register_interrupts(void)
68{ 68{
69 request_irq(OSS_IRQLEV_SCSI, oss_irq, IRQ_FLG_LOCK, 69 if (request_irq(OSS_IRQLEV_SCSI, oss_irq, IRQ_FLG_LOCK,
70 "scsi", (void *) oss); 70 "scsi", (void *) oss))
71 request_irq(OSS_IRQLEV_IOPSCC, mac_scc_dispatch, IRQ_FLG_LOCK, 71 pr_err("Couldn't register %s interrupt\n", "scsi");
72 "scc", mac_scc_dispatch); 72 if (request_irq(OSS_IRQLEV_IOPSCC, mac_scc_dispatch, IRQ_FLG_LOCK,
73 request_irq(OSS_IRQLEV_NUBUS, oss_nubus_irq, IRQ_FLG_LOCK, 73 "scc", mac_scc_dispatch))
74 "nubus", (void *) oss); 74 pr_err("Couldn't register %s interrupt\n", "scc");
75 request_irq(OSS_IRQLEV_SOUND, oss_irq, IRQ_FLG_LOCK, 75 if (request_irq(OSS_IRQLEV_NUBUS, oss_nubus_irq, IRQ_FLG_LOCK,
76 "sound", (void *) oss); 76 "nubus", (void *) oss))
77 request_irq(OSS_IRQLEV_VIA1, via1_irq, IRQ_FLG_LOCK, 77 pr_err("Couldn't register %s interrupt\n", "nubus");
78 "via1", (void *) via1); 78 if (request_irq(OSS_IRQLEV_SOUND, oss_irq, IRQ_FLG_LOCK,
79 "sound", (void *) oss))
80 pr_err("Couldn't register %s interrupt\n", "sound");
81 if (request_irq(OSS_IRQLEV_VIA1, via1_irq, IRQ_FLG_LOCK,
82 "via1", (void *) via1))
83 pr_err("Couldn't register %s interrupt\n", "via1");
79} 84}
80 85
81/* 86/*
diff --git a/arch/m68k/mac/psc.c b/arch/m68k/mac/psc.c
index f84a4dd64f94..ba6ccab64018 100644
--- a/arch/m68k/mac/psc.c
+++ b/arch/m68k/mac/psc.c
@@ -117,10 +117,14 @@ void __init psc_init(void)
117 117
118void __init psc_register_interrupts(void) 118void __init psc_register_interrupts(void)
119{ 119{
120 request_irq(IRQ_AUTO_3, psc_irq, 0, "psc3", (void *) 0x30); 120 if (request_irq(IRQ_AUTO_3, psc_irq, 0, "psc3", (void *) 0x30))
121 request_irq(IRQ_AUTO_4, psc_irq, 0, "psc4", (void *) 0x40); 121 pr_err("Couldn't register psc%d interrupt\n", 3);
122 request_irq(IRQ_AUTO_5, psc_irq, 0, "psc5", (void *) 0x50); 122 if (request_irq(IRQ_AUTO_4, psc_irq, 0, "psc4", (void *) 0x40))
123 request_irq(IRQ_AUTO_6, psc_irq, 0, "psc6", (void *) 0x60); 123 pr_err("Couldn't register psc%d interrupt\n", 4);
124 if (request_irq(IRQ_AUTO_5, psc_irq, 0, "psc5", (void *) 0x50))
125 pr_err("Couldn't register psc%d interrupt\n", 5);
126 if (request_irq(IRQ_AUTO_6, psc_irq, 0, "psc6", (void *) 0x60))
127 pr_err("Couldn't register psc%d interrupt\n", 6);
124} 128}
125 129
126/* 130/*
diff --git a/arch/m68k/mac/via.c b/arch/m68k/mac/via.c
index f01d418e64fe..7d97ba54536e 100644
--- a/arch/m68k/mac/via.c
+++ b/arch/m68k/mac/via.c
@@ -34,6 +34,7 @@
34#include <asm/macints.h> 34#include <asm/macints.h>
35#include <asm/mac_via.h> 35#include <asm/mac_via.h>
36#include <asm/mac_psc.h> 36#include <asm/mac_psc.h>
37#include <asm/mac_oss.h>
37 38
38volatile __u8 *via1, *via2; 39volatile __u8 *via1, *via2;
39int rbv_present; 40int rbv_present;
@@ -84,7 +85,6 @@ void via_irq_disable(int irq);
84void via_irq_clear(int irq); 85void via_irq_clear(int irq);
85 86
86extern irqreturn_t mac_scc_dispatch(int, void *); 87extern irqreturn_t mac_scc_dispatch(int, void *);
87extern int oss_present;
88 88
89/* 89/*
90 * Initialize the VIAs 90 * Initialize the VIAs
@@ -283,7 +283,8 @@ void __init via_init_clock(irq_handler_t func)
283 via1[vT1CL] = MAC_CLOCK_LOW; 283 via1[vT1CL] = MAC_CLOCK_LOW;
284 via1[vT1CH] = MAC_CLOCK_HIGH; 284 via1[vT1CH] = MAC_CLOCK_HIGH;
285 285
286 request_irq(IRQ_MAC_TIMER_1, func, IRQ_FLG_LOCK, "timer", func); 286 if (request_irq(IRQ_MAC_TIMER_1, func, IRQ_FLG_LOCK, "timer", func))
287 pr_err("Couldn't register %s interrupt\n", "timer");
287} 288}
288 289
289/* 290/*
@@ -293,25 +294,31 @@ void __init via_init_clock(irq_handler_t func)
293void __init via_register_interrupts(void) 294void __init via_register_interrupts(void)
294{ 295{
295 if (via_alt_mapping) { 296 if (via_alt_mapping) {
296 request_irq(IRQ_AUTO_1, via1_irq, 297 if (request_irq(IRQ_AUTO_1, via1_irq,
297 IRQ_FLG_LOCK|IRQ_FLG_FAST, "software", 298 IRQ_FLG_LOCK|IRQ_FLG_FAST, "software",
298 (void *) via1); 299 (void *) via1))
299 request_irq(IRQ_AUTO_6, via1_irq, 300 pr_err("Couldn't register %s interrupt\n", "software");
301 if (request_irq(IRQ_AUTO_6, via1_irq,
300 IRQ_FLG_LOCK|IRQ_FLG_FAST, "via1", 302 IRQ_FLG_LOCK|IRQ_FLG_FAST, "via1",
301 (void *) via1); 303 (void *) via1))
304 pr_err("Couldn't register %s interrupt\n", "via1");
302 } else { 305 } else {
303 request_irq(IRQ_AUTO_1, via1_irq, 306 if (request_irq(IRQ_AUTO_1, via1_irq,
304 IRQ_FLG_LOCK|IRQ_FLG_FAST, "via1", 307 IRQ_FLG_LOCK|IRQ_FLG_FAST, "via1",
305 (void *) via1); 308 (void *) via1))
309 pr_err("Couldn't register %s interrupt\n", "via1");
306 } 310 }
307 request_irq(IRQ_AUTO_2, via2_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST, 311 if (request_irq(IRQ_AUTO_2, via2_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST,
308 "via2", (void *) via2); 312 "via2", (void *) via2))
313 pr_err("Couldn't register %s interrupt\n", "via2");
309 if (!psc_present) { 314 if (!psc_present) {
310 request_irq(IRQ_AUTO_4, mac_scc_dispatch, IRQ_FLG_LOCK, 315 if (request_irq(IRQ_AUTO_4, mac_scc_dispatch, IRQ_FLG_LOCK,
311 "scc", mac_scc_dispatch); 316 "scc", mac_scc_dispatch))
317 pr_err("Couldn't register %s interrupt\n", "scc");
312 } 318 }
313 request_irq(IRQ_MAC_NUBUS, via_nubus_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST, 319 if (request_irq(IRQ_MAC_NUBUS, via_nubus_irq,
314 "nubus", (void *) via2); 320 IRQ_FLG_LOCK|IRQ_FLG_FAST, "nubus", (void *) via2))
321 pr_err("Couldn't register %s interrupt\n", "nubus");
315} 322}
316 323
317/* 324/*
diff --git a/arch/m68k/math-emu/fp_log.c b/arch/m68k/math-emu/fp_log.c
index b1033ae0d6f0..367ecee2f981 100644
--- a/arch/m68k/math-emu/fp_log.c
+++ b/arch/m68k/math-emu/fp_log.c
@@ -24,7 +24,6 @@ static const struct fp_ext fp_one =
24 24
25extern struct fp_ext *fp_fadd(struct fp_ext *dest, const struct fp_ext *src); 25extern struct fp_ext *fp_fadd(struct fp_ext *dest, const struct fp_ext *src);
26extern struct fp_ext *fp_fdiv(struct fp_ext *dest, const struct fp_ext *src); 26extern struct fp_ext *fp_fdiv(struct fp_ext *dest, const struct fp_ext *src);
27extern struct fp_ext *fp_fmul(struct fp_ext *dest, const struct fp_ext *src);
28 27
29struct fp_ext * 28struct fp_ext *
30fp_fsqrt(struct fp_ext *dest, struct fp_ext *src) 29fp_fsqrt(struct fp_ext *dest, struct fp_ext *src)
diff --git a/arch/m68k/mm/init.c b/arch/m68k/mm/init.c
index 81bb08ceec18..0007b2adf3a3 100644
--- a/arch/m68k/mm/init.c
+++ b/arch/m68k/mm/init.c
@@ -28,6 +28,7 @@
28#ifdef CONFIG_ATARI 28#ifdef CONFIG_ATARI
29#include <asm/atari_stram.h> 29#include <asm/atari_stram.h>
30#endif 30#endif
31#include <asm/sections.h>
31#include <asm/tlb.h> 32#include <asm/tlb.h>
32 33
33DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); 34DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
@@ -73,9 +74,6 @@ extern void init_pointer_table(unsigned long ptable);
73 74
74/* References to section boundaries */ 75/* References to section boundaries */
75 76
76extern char _text[], _etext[];
77extern char __init_begin[], __init_end[];
78
79extern pmd_t *zero_pgtable; 77extern pmd_t *zero_pgtable;
80 78
81void __init mem_init(void) 79void __init mem_init(void)
diff --git a/arch/m68k/mm/motorola.c b/arch/m68k/mm/motorola.c
index c5dbb9bdb322..4665fc84b7dc 100644
--- a/arch/m68k/mm/motorola.c
+++ b/arch/m68k/mm/motorola.c
@@ -30,6 +30,7 @@
30#ifdef CONFIG_ATARI 30#ifdef CONFIG_ATARI
31#include <asm/atari_stram.h> 31#include <asm/atari_stram.h>
32#endif 32#endif
33#include <asm/sections.h>
33 34
34#undef DEBUG 35#undef DEBUG
35 36
@@ -301,14 +302,12 @@ void __init paging_init(void)
301 } 302 }
302} 303}
303 304
304extern char __init_begin, __init_end;
305
306void free_initmem(void) 305void free_initmem(void)
307{ 306{
308 unsigned long addr; 307 unsigned long addr;
309 308
310 addr = (unsigned long)&__init_begin; 309 addr = (unsigned long)__init_begin;
311 for (; addr < (unsigned long)&__init_end; addr += PAGE_SIZE) { 310 for (; addr < (unsigned long)__init_end; addr += PAGE_SIZE) {
312 virt_to_page(addr)->flags &= ~(1 << PG_reserved); 311 virt_to_page(addr)->flags &= ~(1 << PG_reserved);
313 init_page_count(virt_to_page(addr)); 312 init_page_count(virt_to_page(addr));
314 free_page(addr); 313 free_page(addr);
diff --git a/arch/m68k/mvme147/config.c b/arch/m68k/mvme147/config.c
index 43cdf476ffab..100baaa692a1 100644
--- a/arch/m68k/mvme147/config.c
+++ b/arch/m68k/mvme147/config.c
@@ -42,7 +42,6 @@ extern unsigned long mvme147_gettimeoffset (void);
42extern int mvme147_hwclk (int, struct rtc_time *); 42extern int mvme147_hwclk (int, struct rtc_time *);
43extern int mvme147_set_clock_mmss (unsigned long); 43extern int mvme147_set_clock_mmss (unsigned long);
44extern void mvme147_reset (void); 44extern void mvme147_reset (void);
45extern void mvme147_waitbut(void);
46 45
47 46
48static int bcd2int (unsigned char b); 47static int bcd2int (unsigned char b);
@@ -115,8 +114,9 @@ static irqreturn_t mvme147_timer_int (int irq, void *dev_id)
115void mvme147_sched_init (irq_handler_t timer_routine) 114void mvme147_sched_init (irq_handler_t timer_routine)
116{ 115{
117 tick_handler = timer_routine; 116 tick_handler = timer_routine;
118 request_irq (PCC_IRQ_TIMER1, mvme147_timer_int, 117 if (request_irq(PCC_IRQ_TIMER1, mvme147_timer_int, IRQ_FLG_REPLACE,
119 IRQ_FLG_REPLACE, "timer 1", NULL); 118 "timer 1", NULL))
119 pr_err("Couldn't register timer interrupt\n");
120 120
121 /* Init the clock with a value */ 121 /* Init the clock with a value */
122 /* our clock goes off every 6.25us */ 122 /* our clock goes off every 6.25us */
diff --git a/arch/m68k/mvme16x/config.c b/arch/m68k/mvme16x/config.c
index 1521826fc3c7..11edf61cc2c4 100644
--- a/arch/m68k/mvme16x/config.c
+++ b/arch/m68k/mvme16x/config.c
@@ -48,7 +48,6 @@ extern unsigned long mvme16x_gettimeoffset (void);
48extern int mvme16x_hwclk (int, struct rtc_time *); 48extern int mvme16x_hwclk (int, struct rtc_time *);
49extern int mvme16x_set_clock_mmss (unsigned long); 49extern int mvme16x_set_clock_mmss (unsigned long);
50extern void mvme16x_reset (void); 50extern void mvme16x_reset (void);
51extern void mvme16x_waitbut(void);
52 51
53int bcd2int (unsigned char b); 52int bcd2int (unsigned char b);
54 53
diff --git a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c
index 7110546e3c00..31ab3f08bbda 100644
--- a/arch/m68k/q40/config.c
+++ b/arch/m68k/q40/config.c
@@ -36,7 +36,6 @@
36#include <asm/machdep.h> 36#include <asm/machdep.h>
37#include <asm/q40_master.h> 37#include <asm/q40_master.h>
38 38
39extern irqreturn_t q40_process_int(int level, struct pt_regs *regs);
40extern void q40_init_IRQ(void); 39extern void q40_init_IRQ(void);
41static void q40_get_model(char *model); 40static void q40_get_model(char *model);
42extern void q40_sched_init(irq_handler_t handler); 41extern void q40_sched_init(irq_handler_t handler);
@@ -47,8 +46,6 @@ static unsigned int q40_get_ss(void);
47static int q40_set_clock_mmss(unsigned long); 46static int q40_set_clock_mmss(unsigned long);
48static int q40_get_rtc_pll(struct rtc_pll_info *pll); 47static int q40_get_rtc_pll(struct rtc_pll_info *pll);
49static int q40_set_rtc_pll(struct rtc_pll_info *pll); 48static int q40_set_rtc_pll(struct rtc_pll_info *pll);
50extern void q40_waitbut(void);
51void q40_set_vectors(void);
52 49
53extern void q40_mksound(unsigned int /*freq*/, unsigned int /*ticks*/); 50extern void q40_mksound(unsigned int /*freq*/, unsigned int /*ticks*/);
54 51
diff --git a/arch/m68k/sun3/config.c b/arch/m68k/sun3/config.c
index 8dfaa201342e..2ca25bd01a96 100644
--- a/arch/m68k/sun3/config.c
+++ b/arch/m68k/sun3/config.c
@@ -27,23 +27,21 @@
27#include <asm/sun3mmu.h> 27#include <asm/sun3mmu.h>
28#include <asm/rtc.h> 28#include <asm/rtc.h>
29#include <asm/machdep.h> 29#include <asm/machdep.h>
30#include <asm/idprom.h>
30#include <asm/intersil.h> 31#include <asm/intersil.h>
31#include <asm/irq.h> 32#include <asm/irq.h>
33#include <asm/sections.h>
32#include <asm/segment.h> 34#include <asm/segment.h>
33#include <asm/sun3ints.h> 35#include <asm/sun3ints.h>
34 36
35extern char _text, _end;
36
37char sun3_reserved_pmeg[SUN3_PMEGS_NUM]; 37char sun3_reserved_pmeg[SUN3_PMEGS_NUM];
38 38
39extern unsigned long sun3_gettimeoffset(void); 39extern unsigned long sun3_gettimeoffset(void);
40static void sun3_sched_init(irq_handler_t handler); 40static void sun3_sched_init(irq_handler_t handler);
41extern void sun3_get_model (char* model); 41extern void sun3_get_model (char* model);
42extern void idprom_init (void);
43extern int sun3_hwclk(int set, struct rtc_time *t); 42extern int sun3_hwclk(int set, struct rtc_time *t);
44 43
45volatile char* clock_va; 44volatile char* clock_va;
46extern volatile unsigned char* sun3_intreg;
47extern unsigned long availmem; 45extern unsigned long availmem;
48unsigned long num_pages; 46unsigned long num_pages;
49 47
@@ -149,7 +147,7 @@ void __init config_sun3(void)
149 mach_halt = sun3_halt; 147 mach_halt = sun3_halt;
150 mach_get_hardware_list = sun3_get_hardware_list; 148 mach_get_hardware_list = sun3_get_hardware_list;
151 149
152 memory_start = ((((int)&_end) + 0x2000) & ~0x1fff); 150 memory_start = ((((unsigned long)_end) + 0x2000) & ~0x1fff);
153// PROM seems to want the last couple of physical pages. --m 151// PROM seems to want the last couple of physical pages. --m
154 memory_end = *(romvec->pv_sun3mem) + PAGE_OFFSET - 2*PAGE_SIZE; 152 memory_end = *(romvec->pv_sun3mem) + PAGE_OFFSET - 2*PAGE_SIZE;
155 153
diff --git a/arch/m68k/sun3/mmu_emu.c b/arch/m68k/sun3/mmu_emu.c
index 60f9d4500d72..3cd19390aae5 100644
--- a/arch/m68k/sun3/mmu_emu.c
+++ b/arch/m68k/sun3/mmu_emu.c
@@ -27,7 +27,6 @@
27#include <asm/mmu_context.h> 27#include <asm/mmu_context.h>
28#include <asm/dvma.h> 28#include <asm/dvma.h>
29 29
30extern void prom_reboot (char *) __attribute__ ((__noreturn__));
31 30
32#undef DEBUG_MMU_EMU 31#undef DEBUG_MMU_EMU
33#define DEBUG_PROM_MAPS 32#define DEBUG_PROM_MAPS
diff --git a/arch/m68k/sun3/sun3ints.c b/arch/m68k/sun3/sun3ints.c
index 7364cd67455e..ad90393a3361 100644
--- a/arch/m68k/sun3/sun3ints.c
+++ b/arch/m68k/sun3/sun3ints.c
@@ -105,7 +105,10 @@ void __init sun3_init_IRQ(void)
105 m68k_setup_irq_controller(&sun3_irq_controller, IRQ_AUTO_1, 7); 105 m68k_setup_irq_controller(&sun3_irq_controller, IRQ_AUTO_1, 7);
106 m68k_setup_user_interrupt(VEC_USER, 128, NULL); 106 m68k_setup_user_interrupt(VEC_USER, 128, NULL);
107 107
108 request_irq(IRQ_AUTO_5, sun3_int5, 0, "int5", NULL); 108 if (request_irq(IRQ_AUTO_5, sun3_int5, 0, "int5", NULL))
109 request_irq(IRQ_AUTO_7, sun3_int7, 0, "int7", NULL); 109 pr_err("Couldn't register %s interrupt\n", "int5");
110 request_irq(IRQ_USER+127, sun3_vec255, 0, "vec255", NULL); 110 if (request_irq(IRQ_AUTO_7, sun3_int7, 0, "int7", NULL))
111 pr_err("Couldn't register %s interrupt\n", "int7");
112 if (request_irq(IRQ_USER+127, sun3_vec255, 0, "vec255", NULL))
113 pr_err("Couldn't register %s interrupt\n", "vec255");
111} 114}
diff --git a/arch/m68k/sun3x/config.c b/arch/m68k/sun3x/config.c
index 2b1ca2db070f..fc599fad4a54 100644
--- a/arch/m68k/sun3x/config.c
+++ b/arch/m68k/sun3x/config.c
@@ -23,7 +23,6 @@
23#include "time.h" 23#include "time.h"
24 24
25volatile char *clock_va; 25volatile char *clock_va;
26extern volatile unsigned char *sun3_intreg;
27 26
28extern void sun3_get_model(char *model); 27extern void sun3_get_model(char *model);
29 28
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index 76b66feb74df..4beb59dfc6ec 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -14,6 +14,10 @@ config MMU
14 bool 14 bool
15 default n 15 default n
16 16
17config NO_DMA
18 bool
19 default y
20
17config FPU 21config FPU
18 bool 22 bool
19 default n 23 default n
@@ -398,12 +402,6 @@ config M5307C3
398 help 402 help
399 Support for the Motorola M5307C3 board. 403 Support for the Motorola M5307C3 board.
400 404
401config eLIA
402 bool "Moreton Bay eLIA board support"
403 depends on M5307
404 help
405 Support for the Moreton Bay eLIA board.
406
407config SECUREEDGEMP3 405config SECUREEDGEMP3
408 bool "SnapGear SecureEdge/MP3 platform support" 406 bool "SnapGear SecureEdge/MP3 platform support"
409 depends on M5307 407 depends on M5307
@@ -697,25 +695,8 @@ config ISA_DMA_API
697 depends on !M5272 695 depends on !M5272
698 default y 696 default y
699 697
700menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
701
702config PCI
703 bool "PCI support"
704 help
705 Support for PCI bus.
706
707config COMEMPCI
708 bool "CO-MEM lite PCI controller support"
709 depends on (M5307 || M5407)
710
711source "drivers/pci/Kconfig"
712
713source "drivers/pcmcia/Kconfig" 698source "drivers/pcmcia/Kconfig"
714 699
715source "drivers/pci/hotplug/Kconfig"
716
717endmenu
718
719menu "Executable file formats" 700menu "Executable file formats"
720 701
721source "fs/Kconfig.binfmt" 702source "fs/Kconfig.binfmt"
diff --git a/arch/m68knommu/Makefile b/arch/m68knommu/Makefile
index b63bbcf874ff..fd0fb303d885 100644
--- a/arch/m68knommu/Makefile
+++ b/arch/m68knommu/Makefile
@@ -41,7 +41,6 @@ board-$(CONFIG_M5271EVB) := M5271EVB
41board-$(CONFIG_M5275EVB) := M5275EVB 41board-$(CONFIG_M5275EVB) := M5275EVB
42board-$(CONFIG_M5282EVB) := M5282EVB 42board-$(CONFIG_M5282EVB) := M5282EVB
43board-$(CONFIG_ELITE) := eLITE 43board-$(CONFIG_ELITE) := eLITE
44board-$(CONFIG_eLIA) := eLIA
45board-$(CONFIG_NETtel) := NETtel 44board-$(CONFIG_NETtel) := NETtel
46board-$(CONFIG_SECUREEDGEMP3) := MP3 45board-$(CONFIG_SECUREEDGEMP3) := MP3
47board-$(CONFIG_CLEOPATRA) := CLEOPATRA 46board-$(CONFIG_CLEOPATRA) := CLEOPATRA
diff --git a/arch/m68knommu/include/asm/byteorder.h b/arch/m68knommu/include/asm/byteorder.h
deleted file mode 100644
index a6f0b8f7f622..000000000000
--- a/arch/m68knommu/include/asm/byteorder.h
+++ /dev/null
@@ -1,7 +0,0 @@
1#ifndef _M68KNOMMU_BYTEORDER_H
2#define _M68KNOMMU_BYTEORDER_H
3
4#include <asm/swab.h>
5#include <linux/byteorder/big_endian.h>
6
7#endif /* _M68KNOMMU_BYTEORDER_H */
diff --git a/arch/m68knommu/include/asm/cachectl.h b/arch/m68knommu/include/asm/cachectl.h
deleted file mode 100644
index bcf5a6a9dd52..000000000000
--- a/arch/m68knommu/include/asm/cachectl.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/cachectl.h>
diff --git a/arch/m68knommu/include/asm/cputime.h b/arch/m68knommu/include/asm/cputime.h
deleted file mode 100644
index a0c4a660878d..000000000000
--- a/arch/m68knommu/include/asm/cputime.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef __M68KNOMMU_CPUTIME_H
2#define __M68KNOMMU_CPUTIME_H
3
4#include <asm-generic/cputime.h>
5
6#endif /* __M68KNOMMU_CPUTIME_H */
diff --git a/arch/m68knommu/include/asm/errno.h b/arch/m68knommu/include/asm/errno.h
deleted file mode 100644
index 7e8c22b9a5e6..000000000000
--- a/arch/m68knommu/include/asm/errno.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/errno.h>
diff --git a/arch/m68knommu/include/asm/fcntl.h b/arch/m68knommu/include/asm/fcntl.h
deleted file mode 100644
index f6a552cda4cd..000000000000
--- a/arch/m68knommu/include/asm/fcntl.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/fcntl.h>
diff --git a/arch/m68knommu/include/asm/hwtest.h b/arch/m68knommu/include/asm/hwtest.h
deleted file mode 100644
index 700626a1b1bf..000000000000
--- a/arch/m68knommu/include/asm/hwtest.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/hwtest.h>
diff --git a/arch/m68knommu/include/asm/ioctls.h b/arch/m68knommu/include/asm/ioctls.h
deleted file mode 100644
index 0b1eb4d85059..000000000000
--- a/arch/m68knommu/include/asm/ioctls.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/ioctls.h>
diff --git a/arch/m68knommu/include/asm/ipcbuf.h b/arch/m68knommu/include/asm/ipcbuf.h
deleted file mode 100644
index e4a7be6dd706..000000000000
--- a/arch/m68knommu/include/asm/ipcbuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/ipcbuf.h>
diff --git a/arch/m68knommu/include/asm/linkage.h b/arch/m68knommu/include/asm/linkage.h
deleted file mode 100644
index c288a19ff489..000000000000
--- a/arch/m68knommu/include/asm/linkage.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/linkage.h>
diff --git a/arch/m68knommu/include/asm/local.h b/arch/m68knommu/include/asm/local.h
deleted file mode 100644
index 84a39c1b86f8..000000000000
--- a/arch/m68knommu/include/asm/local.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef __M68KNOMMU_LOCAL_H
2#define __M68KNOMMU_LOCAL_H
3
4#include <asm-generic/local.h>
5
6#endif /* __M68KNOMMU_LOCAL_H */
diff --git a/arch/m68knommu/include/asm/math-emu.h b/arch/m68knommu/include/asm/math-emu.h
deleted file mode 100644
index 7e7090517b72..000000000000
--- a/arch/m68knommu/include/asm/math-emu.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/math-emu.h>
diff --git a/arch/m68knommu/include/asm/md.h b/arch/m68knommu/include/asm/md.h
deleted file mode 100644
index d810c78de5ff..000000000000
--- a/arch/m68knommu/include/asm/md.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/md.h>
diff --git a/arch/m68knommu/include/asm/mman.h b/arch/m68knommu/include/asm/mman.h
deleted file mode 100644
index 4846c682efed..000000000000
--- a/arch/m68knommu/include/asm/mman.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/mman.h>
diff --git a/arch/m68knommu/include/asm/movs.h b/arch/m68knommu/include/asm/movs.h
deleted file mode 100644
index 81a16779e833..000000000000
--- a/arch/m68knommu/include/asm/movs.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/movs.h>
diff --git a/arch/m68knommu/include/asm/msgbuf.h b/arch/m68knommu/include/asm/msgbuf.h
deleted file mode 100644
index bdfadec4d52d..000000000000
--- a/arch/m68knommu/include/asm/msgbuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/msgbuf.h>
diff --git a/arch/m68knommu/include/asm/openprom.h b/arch/m68knommu/include/asm/openprom.h
deleted file mode 100644
index fdba7953ff9f..000000000000
--- a/arch/m68knommu/include/asm/openprom.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/openprom.h>
diff --git a/arch/m68knommu/include/asm/oplib.h b/arch/m68knommu/include/asm/oplib.h
deleted file mode 100644
index ce079dc332d9..000000000000
--- a/arch/m68knommu/include/asm/oplib.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/oplib.h>
diff --git a/arch/m68knommu/include/asm/percpu.h b/arch/m68knommu/include/asm/percpu.h
deleted file mode 100644
index 5de72c327efd..000000000000
--- a/arch/m68knommu/include/asm/percpu.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef __ARCH_M68KNOMMU_PERCPU__
2#define __ARCH_M68KNOMMU_PERCPU__
3
4#include <asm-generic/percpu.h>
5
6#endif /* __ARCH_M68KNOMMU_PERCPU__ */
diff --git a/arch/m68knommu/include/asm/poll.h b/arch/m68knommu/include/asm/poll.h
deleted file mode 100644
index ee1b6cb549ca..000000000000
--- a/arch/m68knommu/include/asm/poll.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/poll.h>
diff --git a/arch/m68knommu/include/asm/posix_types.h b/arch/m68knommu/include/asm/posix_types.h
deleted file mode 100644
index 6205fb9392a3..000000000000
--- a/arch/m68knommu/include/asm/posix_types.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/posix_types.h>
diff --git a/arch/m68knommu/include/asm/resource.h b/arch/m68knommu/include/asm/resource.h
deleted file mode 100644
index 7fa63d5ea576..000000000000
--- a/arch/m68knommu/include/asm/resource.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/resource.h>
diff --git a/arch/m68knommu/include/asm/rtc.h b/arch/m68knommu/include/asm/rtc.h
deleted file mode 100644
index eaf18ec83c8e..000000000000
--- a/arch/m68knommu/include/asm/rtc.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/rtc.h>
diff --git a/arch/m68knommu/include/asm/sections.h b/arch/m68knommu/include/asm/sections.h
deleted file mode 100644
index dd0ecb98ec08..000000000000
--- a/arch/m68knommu/include/asm/sections.h
+++ /dev/null
@@ -1,7 +0,0 @@
1#ifndef _M68KNOMMU_SECTIONS_H
2#define _M68KNOMMU_SECTIONS_H
3
4/* nothing to see, move along */
5#include <asm-generic/sections.h>
6
7#endif
diff --git a/arch/m68knommu/include/asm/sembuf.h b/arch/m68knommu/include/asm/sembuf.h
deleted file mode 100644
index 3a634f9ecf50..000000000000
--- a/arch/m68knommu/include/asm/sembuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/sembuf.h>
diff --git a/arch/m68knommu/include/asm/shm.h b/arch/m68knommu/include/asm/shm.h
deleted file mode 100644
index cc8e522d9050..000000000000
--- a/arch/m68knommu/include/asm/shm.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/shm.h>
diff --git a/arch/m68knommu/include/asm/shmbuf.h b/arch/m68knommu/include/asm/shmbuf.h
deleted file mode 100644
index bc34cf8eefce..000000000000
--- a/arch/m68knommu/include/asm/shmbuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/shmbuf.h>
diff --git a/arch/m68knommu/include/asm/shmparam.h b/arch/m68knommu/include/asm/shmparam.h
deleted file mode 100644
index d7ee69648ebf..000000000000
--- a/arch/m68knommu/include/asm/shmparam.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/shmparam.h>
diff --git a/arch/m68knommu/include/asm/socket.h b/arch/m68knommu/include/asm/socket.h
deleted file mode 100644
index ac5478bf6371..000000000000
--- a/arch/m68knommu/include/asm/socket.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/socket.h>
diff --git a/arch/m68knommu/include/asm/sockios.h b/arch/m68knommu/include/asm/sockios.h
deleted file mode 100644
index dcc6a8900ce2..000000000000
--- a/arch/m68knommu/include/asm/sockios.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/sockios.h>
diff --git a/arch/m68knommu/include/asm/spinlock.h b/arch/m68knommu/include/asm/spinlock.h
deleted file mode 100644
index 6bb1f06c4781..000000000000
--- a/arch/m68knommu/include/asm/spinlock.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/spinlock.h>
diff --git a/arch/m68knommu/include/asm/stat.h b/arch/m68knommu/include/asm/stat.h
deleted file mode 100644
index 3d4b260e7c03..000000000000
--- a/arch/m68knommu/include/asm/stat.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/stat.h>
diff --git a/arch/m68knommu/include/asm/statfs.h b/arch/m68knommu/include/asm/statfs.h
deleted file mode 100644
index 2ce99eaf0970..000000000000
--- a/arch/m68knommu/include/asm/statfs.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/statfs.h>
diff --git a/arch/m68knommu/include/asm/termbits.h b/arch/m68knommu/include/asm/termbits.h
deleted file mode 100644
index 05dd6bc27285..000000000000
--- a/arch/m68knommu/include/asm/termbits.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/termbits.h>
diff --git a/arch/m68knommu/include/asm/termios.h b/arch/m68knommu/include/asm/termios.h
deleted file mode 100644
index e7337881a985..000000000000
--- a/arch/m68knommu/include/asm/termios.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/termios.h>
diff --git a/arch/m68knommu/include/asm/tlb.h b/arch/m68knommu/include/asm/tlb.h
deleted file mode 100644
index 77a7c51ca299..000000000000
--- a/arch/m68knommu/include/asm/tlb.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/tlb.h>
diff --git a/arch/m68knommu/include/asm/types.h b/arch/m68knommu/include/asm/types.h
deleted file mode 100644
index 031238c2d180..000000000000
--- a/arch/m68knommu/include/asm/types.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/types.h>
diff --git a/arch/m68knommu/include/asm/user.h b/arch/m68knommu/include/asm/user.h
deleted file mode 100644
index a5a555b761c4..000000000000
--- a/arch/m68knommu/include/asm/user.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/user.h>
diff --git a/arch/m68knommu/kernel/Makefile b/arch/m68knommu/kernel/Makefile
index f0eab3dedb5a..37c3fc074c0a 100644
--- a/arch/m68knommu/kernel/Makefile
+++ b/arch/m68knommu/kernel/Makefile
@@ -8,4 +8,3 @@ obj-y += dma.o entry.o init_task.o irq.o m68k_ksyms.o process.o ptrace.o \
8 setup.o signal.o syscalltable.o sys_m68k.o time.o traps.o 8 setup.o signal.o syscalltable.o sys_m68k.o time.o traps.o
9 9
10obj-$(CONFIG_MODULES) += module.o 10obj-$(CONFIG_MODULES) += module.o
11obj-$(CONFIG_COMEMPCI) += comempci.o
diff --git a/arch/m68knommu/kernel/comempci.c b/arch/m68knommu/kernel/comempci.c
deleted file mode 100644
index 0a68b5a85f86..000000000000
--- a/arch/m68knommu/kernel/comempci.c
+++ /dev/null
@@ -1,980 +0,0 @@
1/*****************************************************************************/
2
3/*
4 * comemlite.c -- PCI access code for embedded CO-MEM Lite PCI controller.
5 *
6 * (C) Copyright 1999-2003, Greg Ungerer (gerg@snapgear.com).
7 * (C) Copyright 2000, Lineo (www.lineo.com)
8 */
9
10/*****************************************************************************/
11
12#include <linux/kernel.h>
13#include <linux/types.h>
14#include <linux/pci.h>
15#include <linux/ptrace.h>
16#include <linux/spinlock.h>
17#include <linux/interrupt.h>
18#include <linux/sched.h>
19#include <asm/coldfire.h>
20#include <asm/mcfsim.h>
21#include <asm/irq.h>
22#include <asm/anchor.h>
23
24#ifdef CONFIG_eLIA
25#include <asm/elia.h>
26#endif
27
28/*****************************************************************************/
29
30/*
31 * Debug configuration defines. DEBUGRES sets debugging output for
32 * the resource allocation phase. DEBUGPCI traces on pcibios_ function
33 * calls, and DEBUGIO traces all accesses to devices on the PCI bus.
34 */
35/*#define DEBUGRES 1*/
36/*#define DEBUGPCI 1*/
37/*#define DEBUGIO 1*/
38
39/*****************************************************************************/
40
41/*
42 * PCI markers for bus present and active slots.
43 */
44int pci_bus_is_present = 0;
45unsigned long pci_slotmask = 0;
46
47/*
48 * We may or may not need to swap the bytes of PCI bus tranfers.
49 * The endianess is re-roder automatically by the CO-MEM, but it
50 * will get the wrong byte order for a pure data stream.
51 */
52#define pci_byteswap 0
53
54
55/*
56 * Resource tracking. The CO-MEM part creates a virtual address
57 * space that all the PCI devices live in - it is not in any way
58 * directly mapped into the ColdFire address space. So we can
59 * really assign any resources we like to devices, as long as
60 * they do not clash with other PCI devices.
61 */
62unsigned int pci_iobase = PCIBIOS_MIN_IO; /* Arbitrary start address */
63unsigned int pci_membase = PCIBIOS_MIN_MEM; /* Arbitrary start address */
64
65#define PCI_MINIO 0x100 /* 256 byte minimum I/O */
66#define PCI_MINMEM 0x00010000 /* 64k minimum chunk */
67
68/*
69 * The CO-MEM's shared memory segment is visible inside the PCI
70 * memory address space. We need to keep track of the address that
71 * this is mapped at, to setup the bus masters pointers.
72 */
73unsigned int pci_shmemaddr;
74
75/*****************************************************************************/
76
77void pci_interrupt(int irq, void *id, struct pt_regs *fp);
78
79/*****************************************************************************/
80
81/*
82 * Some platforms have custom ways of reseting the PCI bus.
83 */
84
85void pci_resetbus(void)
86{
87#ifdef CONFIG_eLIA
88 int i;
89
90#ifdef DEBUGPCI
91 printk(KERN_DEBUG "pci_resetbus()\n");
92#endif
93
94 *((volatile unsigned short *) (MCF_MBAR+MCFSIM_PADDR)) |= eLIA_PCIRESET;
95 for (i = 0; (i < 1000); i++) {
96 *((volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT)) =
97 (ppdata | eLIA_PCIRESET);
98 }
99
100
101 *((volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT)) = ppdata;
102#endif
103}
104
105/*****************************************************************************/
106
107int pcibios_assign_resource_slot(int slot)
108{
109 volatile unsigned long *rp;
110 volatile unsigned char *ip;
111 unsigned int idsel, addr, val, align, i;
112 int bar;
113
114#ifdef DEBUGPCI
115 printk(KERN_INFO "pcibios_assign_resource_slot(slot=%x)\n", slot);
116#endif
117
118 rp = (volatile unsigned long *) COMEM_BASE;
119 idsel = COMEM_DA_ADDR(0x1 << (slot + 16));
120
121 /* Try to assign resource to each BAR */
122 for (bar = 0; (bar < 6); bar++) {
123 addr = COMEM_PCIBUS + PCI_BASE_ADDRESS_0 + (bar * 4);
124 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
125 val = rp[LREG(addr)];
126#ifdef DEBUGRES
127 printk(KERN_DEBUG "-----------------------------------"
128 "-------------------------------------\n");
129 printk(KERN_DEBUG "BAR[%d]: read=%08x ", bar, val);
130#endif
131
132 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
133 rp[LREG(addr)] = 0xffffffff;
134
135 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
136 val = rp[LREG(addr)];
137#ifdef DEBUGRES
138 printk(KERN_DEBUG "write=%08x ", val);
139#endif
140 if (val == 0) {
141#ifdef DEBUGRES
142 printk(KERN_DEBUG "\n");
143#endif
144 continue;
145 }
146
147 /* Determine space required by BAR */
148 /* FIXME: this should go backwords from 0x80000000... */
149 for (i = 0; (i < 32); i++) {
150 if ((0x1 << i) & (val & 0xfffffffc))
151 break;
152 }
153
154#ifdef DEBUGRES
155 printk(KERN_DEBUG "size=%08x(%d)\n", (0x1 << i), i);
156#endif
157 i = 0x1 << i;
158
159 /* Assign a resource */
160 if (val & PCI_BASE_ADDRESS_SPACE_IO) {
161 if (i < PCI_MINIO)
162 i = PCI_MINIO;
163#ifdef DEBUGRES
164 printk(KERN_DEBUG "BAR[%d]: IO size=%08x iobase=%08x\n",
165 bar, i, pci_iobase);
166#endif
167 if (i > 0xffff) {
168 /* Invalid size?? */
169 val = 0 | PCI_BASE_ADDRESS_SPACE_IO;
170#ifdef DEBUGRES
171 printk(KERN_DEBUG "BAR[%d]: too big for IO??\n", bar);
172#endif
173 } else {
174 /* Check for un-alignment */
175 if ((align = pci_iobase % i))
176 pci_iobase += (i - align);
177 val = pci_iobase | PCI_BASE_ADDRESS_SPACE_IO;
178 pci_iobase += i;
179 }
180 } else {
181 if (i < PCI_MINMEM)
182 i = PCI_MINMEM;
183#ifdef DEBUGRES
184 printk(KERN_DEBUG "BAR[%d]: MEMORY size=%08x membase=%08x\n",
185 bar, i, pci_membase);
186#endif
187 /* Check for un-alignment */
188 if ((align = pci_membase % i))
189 pci_membase += (i - align);
190 val = pci_membase | PCI_BASE_ADDRESS_SPACE_MEMORY;
191 pci_membase += i;
192 }
193
194 /* Write resource back into BAR register */
195 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
196 rp[LREG(addr)] = val;
197#ifdef DEBUGRES
198 printk(KERN_DEBUG "BAR[%d]: assigned bar=%08x\n", bar, val);
199#endif
200 }
201
202#ifdef DEBUGRES
203 printk(KERN_DEBUG "-----------------------------------"
204 "-------------------------------------\n");
205#endif
206
207 /* Assign IRQ if one is wanted... */
208 ip = (volatile unsigned char *) (COMEM_BASE + COMEM_PCIBUS);
209 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
210
211 addr = (PCI_INTERRUPT_PIN & 0xfc) + (~PCI_INTERRUPT_PIN & 0x03);
212 if (ip[addr]) {
213 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
214 addr = (PCI_INTERRUPT_LINE & 0xfc)+(~PCI_INTERRUPT_LINE & 0x03);
215 ip[addr] = 25;
216#ifdef DEBUGRES
217 printk(KERN_DEBUG "IRQ LINE=25\n");
218#endif
219 }
220
221 return(0);
222}
223
224/*****************************************************************************/
225
226int pcibios_enable_slot(int slot)
227{
228 volatile unsigned long *rp;
229 volatile unsigned short *wp;
230 unsigned int idsel, addr;
231 unsigned short cmd;
232
233#ifdef DEBUGPCI
234 printk(KERN_DEBUG "pcibios_enbale_slot(slot=%x)\n", slot);
235#endif
236
237 rp = (volatile unsigned long *) COMEM_BASE;
238 wp = (volatile unsigned short *) COMEM_BASE;
239 idsel = COMEM_DA_ADDR(0x1 << (slot + 16));
240
241 /* Get current command settings */
242 addr = COMEM_PCIBUS + PCI_COMMAND;
243 addr = (addr & ~0x3) + (~addr & 0x02);
244 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
245 cmd = wp[WREG(addr)];
246 /*val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);*/
247
248 /* Enable I/O and memory accesses to this device */
249 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
250 cmd |= PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER;
251 wp[WREG(addr)] = cmd;
252
253 return(0);
254}
255
256/*****************************************************************************/
257
258void pcibios_assign_resources(void)
259{
260 volatile unsigned long *rp;
261 unsigned long sel, id;
262 int slot;
263
264 rp = (volatile unsigned long *) COMEM_BASE;
265
266 /*
267 * Do a quick scan of the PCI bus and see what is here.
268 */
269 for (slot = COMEM_MINDEV; (slot <= COMEM_MAXDEV); slot++) {
270 sel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << (slot + 16));
271 rp[LREG(COMEM_DAHBASE)] = sel;
272 rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */
273 id = rp[LREG(COMEM_PCIBUS)];
274 if ((id != 0) && ((id & 0xffff0000) != (sel & 0xffff0000))) {
275 printk(KERN_INFO "PCI: slot=%d id=%08x\n", slot, (int) id);
276 pci_slotmask |= 0x1 << slot;
277 pcibios_assign_resource_slot(slot);
278 pcibios_enable_slot(slot);
279 }
280 }
281}
282
283/*****************************************************************************/
284
285int pcibios_init(void)
286{
287 volatile unsigned long *rp;
288 unsigned long sel, id;
289 int slot;
290
291#ifdef DEBUGPCI
292 printk(KERN_DEBUG "pcibios_init()\n");
293#endif
294
295 pci_resetbus();
296
297 /*
298 * Do some sort of basic check to see if the CO-MEM part
299 * is present... This works ok, but I think we really need
300 * something better...
301 */
302 rp = (volatile unsigned long *) COMEM_BASE;
303 if ((rp[LREG(COMEM_LBUSCFG)] & 0xff) != 0x50) {
304 printk(KERN_INFO "PCI: no PCI bus present\n");
305 return(0);
306 }
307
308#ifdef COMEM_BRIDGEDEV
309 /*
310 * Setup the PCI bridge device first. It needs resources too,
311 * so that bus masters can get to its shared memory.
312 */
313 slot = COMEM_BRIDGEDEV;
314 sel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << (slot + 16));
315 rp[LREG(COMEM_DAHBASE)] = sel;
316 rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */
317 id = rp[LREG(COMEM_PCIBUS)];
318 if ((id == 0) || ((id & 0xffff0000) == (sel & 0xffff0000))) {
319 printk(KERN_INFO "PCI: no PCI bus bridge present\n");
320 return(0);
321 }
322
323 printk(KERN_INFO "PCI: bridge device at slot=%d id=%08x\n", slot, (int) id);
324 pci_slotmask |= 0x1 << slot;
325 pci_shmemaddr = pci_membase;
326 pcibios_assign_resource_slot(slot);
327 pcibios_enable_slot(slot);
328#endif
329
330 pci_bus_is_present = 1;
331
332 /* Get PCI irq for local vectoring */
333 if (request_irq(COMEM_IRQ, pci_interrupt, 0, "PCI bridge", NULL)) {
334 printk(KERN_WARNING "PCI: failed to acquire interrupt %d\n", COMEM_IRQ);
335 } else {
336 mcf_autovector(COMEM_IRQ);
337 }
338
339 pcibios_assign_resources();
340
341 return(0);
342}
343
344/*****************************************************************************/
345
346char *pcibios_setup(char *option)
347{
348 /* Nothing for us to handle. */
349 return(option);
350}
351/*****************************************************************************/
352
353void pcibios_fixup_bus(struct pci_bus *b)
354{
355}
356
357/*****************************************************************************/
358
359void pcibios_align_resource(void *data, struct resource *res,
360 resource_size_t size, resource_size_t align)
361{
362}
363
364/*****************************************************************************/
365
366int pcibios_enable_device(struct pci_dev *dev, int mask)
367{
368 int slot;
369
370 slot = PCI_SLOT(dev->devfn);
371 if ((dev->bus == 0) && (pci_slotmask & (1 << slot)))
372 pcibios_enable_slot(slot);
373 return(0);
374}
375
376/*****************************************************************************/
377
378/*
379 * Local routines to interrcept the standard I/O and vector handling
380 * code. Don't include this 'till now - initialization code above needs
381 * access to the real code too.
382 */
383#include <asm/mcfpci.h>
384
385/*****************************************************************************/
386
387void pci_outb(unsigned char val, unsigned int addr)
388{
389 volatile unsigned long *rp;
390 volatile unsigned char *bp;
391
392#ifdef DEBUGIO
393 printk(KERN_DEBUG "pci_outb(val=%02x,addr=%x)\n", val, addr);
394#endif
395
396 rp = (volatile unsigned long *) COMEM_BASE;
397 bp = (volatile unsigned char *) COMEM_BASE;
398 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
399 addr = (addr & ~0x3) + (~addr & 0x03);
400 bp[(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
401}
402
403/*****************************************************************************/
404
405void pci_outw(unsigned short val, unsigned int addr)
406{
407 volatile unsigned long *rp;
408 volatile unsigned short *sp;
409
410#ifdef DEBUGIO
411 printk(KERN_DEBUG "pci_outw(val=%04x,addr=%x)\n", val, addr);
412#endif
413
414 rp = (volatile unsigned long *) COMEM_BASE;
415 sp = (volatile unsigned short *) COMEM_BASE;
416 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
417 addr = (addr & ~0x3) + (~addr & 0x02);
418 if (pci_byteswap)
419 val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);
420 sp[WREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
421}
422
423/*****************************************************************************/
424
425void pci_outl(unsigned int val, unsigned int addr)
426{
427 volatile unsigned long *rp;
428 volatile unsigned int *lp;
429
430#ifdef DEBUGIO
431 printk(KERN_DEBUG "pci_outl(val=%08x,addr=%x)\n", val, addr);
432#endif
433
434 rp = (volatile unsigned long *) COMEM_BASE;
435 lp = (volatile unsigned int *) COMEM_BASE;
436 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
437
438 if (pci_byteswap)
439 val = (val << 24) | ((val & 0x0000ff00) << 8) |
440 ((val & 0x00ff0000) >> 8) | (val >> 24);
441
442 lp[LREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
443}
444
445/*****************************************************************************/
446
447unsigned long pci_blmask[] = {
448 0x000000e0,
449 0x000000d0,
450 0x000000b0,
451 0x00000070
452};
453
454unsigned char pci_inb(unsigned int addr)
455{
456 volatile unsigned long *rp;
457 volatile unsigned char *bp;
458 unsigned long r;
459 unsigned char val;
460
461#ifdef DEBUGIO
462 printk(KERN_DEBUG "pci_inb(addr=%x)\n", addr);
463#endif
464
465 rp = (volatile unsigned long *) COMEM_BASE;
466 bp = (volatile unsigned char *) COMEM_BASE;
467
468 r = COMEM_DA_IORD | COMEM_DA_ADDR(addr) | pci_blmask[(addr & 0x3)];
469 rp[LREG(COMEM_DAHBASE)] = r;
470
471 addr = (addr & ~0x3) + (~addr & 0x3);
472 val = bp[(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
473 return(val);
474}
475
476/*****************************************************************************/
477
478unsigned long pci_bwmask[] = {
479 0x000000c0,
480 0x000000c0,
481 0x00000030,
482 0x00000030
483};
484
485unsigned short pci_inw(unsigned int addr)
486{
487 volatile unsigned long *rp;
488 volatile unsigned short *sp;
489 unsigned long r;
490 unsigned short val;
491
492#ifdef DEBUGIO
493 printk(KERN_DEBUG "pci_inw(addr=%x)", addr);
494#endif
495
496 rp = (volatile unsigned long *) COMEM_BASE;
497 r = COMEM_DA_IORD | COMEM_DA_ADDR(addr) | pci_bwmask[(addr & 0x3)];
498 rp[LREG(COMEM_DAHBASE)] = r;
499
500 sp = (volatile unsigned short *) COMEM_BASE;
501 addr = (addr & ~0x3) + (~addr & 0x02);
502 val = sp[WREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
503 if (pci_byteswap)
504 val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);
505#ifdef DEBUGIO
506 printk(KERN_DEBUG "=%04x\n", val);
507#endif
508 return(val);
509}
510
511/*****************************************************************************/
512
513unsigned int pci_inl(unsigned int addr)
514{
515 volatile unsigned long *rp;
516 volatile unsigned int *lp;
517 unsigned int val;
518
519#ifdef DEBUGIO
520 printk(KERN_DEBUG "pci_inl(addr=%x)", addr);
521#endif
522
523 rp = (volatile unsigned long *) COMEM_BASE;
524 lp = (volatile unsigned int *) COMEM_BASE;
525 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(addr);
526 val = lp[LREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
527
528 if (pci_byteswap)
529 val = (val << 24) | ((val & 0x0000ff00) << 8) |
530 ((val & 0x00ff0000) >> 8) | (val >> 24);
531
532#ifdef DEBUGIO
533 printk(KERN_DEBUG "=%08x\n", val);
534#endif
535 return(val);
536}
537
538/*****************************************************************************/
539
540void pci_outsb(void *addr, void *buf, int len)
541{
542 volatile unsigned long *rp;
543 volatile unsigned char *bp;
544 unsigned char *dp = (unsigned char *) buf;
545 unsigned int a = (unsigned int) addr;
546
547#ifdef DEBUGIO
548 printk(KERN_DEBUG "pci_outsb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
549#endif
550
551 rp = (volatile unsigned long *) COMEM_BASE;
552 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
553
554 a = (a & ~0x3) + (~a & 0x03);
555 bp = (volatile unsigned char *)
556 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
557
558 while (len--)
559 *bp = *dp++;
560}
561
562/*****************************************************************************/
563
564void pci_outsw(void *addr, void *buf, int len)
565{
566 volatile unsigned long *rp;
567 volatile unsigned short *wp;
568 unsigned short w, *dp = (unsigned short *) buf;
569 unsigned int a = (unsigned int) addr;
570
571#ifdef DEBUGIO
572 printk(KERN_DEBUG "pci_outsw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
573#endif
574
575 rp = (volatile unsigned long *) COMEM_BASE;
576 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
577
578 a = (a & ~0x3) + (~a & 0x2);
579 wp = (volatile unsigned short *)
580 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
581
582 while (len--) {
583 w = *dp++;
584 if (pci_byteswap)
585 w = ((w & 0xff) << 8) | ((w >> 8) & 0xff);
586 *wp = w;
587 }
588}
589
590/*****************************************************************************/
591
592void pci_outsl(void *addr, void *buf, int len)
593{
594 volatile unsigned long *rp;
595 volatile unsigned long *lp;
596 unsigned long l, *dp = (unsigned long *) buf;
597 unsigned int a = (unsigned int) addr;
598
599#ifdef DEBUGIO
600 printk(KERN_DEBUG "pci_outsl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
601#endif
602
603 rp = (volatile unsigned long *) COMEM_BASE;
604 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
605
606 lp = (volatile unsigned long *)
607 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
608
609 while (len--) {
610 l = *dp++;
611 if (pci_byteswap)
612 l = (l << 24) | ((l & 0x0000ff00) << 8) |
613 ((l & 0x00ff0000) >> 8) | (l >> 24);
614 *lp = l;
615 }
616}
617
618/*****************************************************************************/
619
620void pci_insb(void *addr, void *buf, int len)
621{
622 volatile unsigned long *rp;
623 volatile unsigned char *bp;
624 unsigned char *dp = (unsigned char *) buf;
625 unsigned int a = (unsigned int) addr;
626
627#ifdef DEBUGIO
628 printk(KERN_DEBUG "pci_insb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
629#endif
630
631 rp = (volatile unsigned long *) COMEM_BASE;
632 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
633
634 a = (a & ~0x3) + (~a & 0x03);
635 bp = (volatile unsigned char *)
636 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
637
638 while (len--)
639 *dp++ = *bp;
640}
641
642/*****************************************************************************/
643
644void pci_insw(void *addr, void *buf, int len)
645{
646 volatile unsigned long *rp;
647 volatile unsigned short *wp;
648 unsigned short w, *dp = (unsigned short *) buf;
649 unsigned int a = (unsigned int) addr;
650
651#ifdef DEBUGIO
652 printk(KERN_DEBUG "pci_insw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
653#endif
654
655 rp = (volatile unsigned long *) COMEM_BASE;
656 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
657
658 a = (a & ~0x3) + (~a & 0x2);
659 wp = (volatile unsigned short *)
660 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
661
662 while (len--) {
663 w = *wp;
664 if (pci_byteswap)
665 w = ((w & 0xff) << 8) | ((w >> 8) & 0xff);
666 *dp++ = w;
667 }
668}
669
670/*****************************************************************************/
671
672void pci_insl(void *addr, void *buf, int len)
673{
674 volatile unsigned long *rp;
675 volatile unsigned long *lp;
676 unsigned long l, *dp = (unsigned long *) buf;
677 unsigned int a = (unsigned int) addr;
678
679#ifdef DEBUGIO
680 printk(KERN_DEBUG "pci_insl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
681#endif
682
683 rp = (volatile unsigned long *) COMEM_BASE;
684 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
685
686 lp = (volatile unsigned long *)
687 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
688
689 while (len--) {
690 l = *lp;
691 if (pci_byteswap)
692 l = (l << 24) | ((l & 0x0000ff00) << 8) |
693 ((l & 0x00ff0000) >> 8) | (l >> 24);
694 *dp++ = l;
695 }
696}
697
698/*****************************************************************************/
699
700struct pci_localirqlist {
701 void (*handler)(int, void *, struct pt_regs *);
702 const char *device;
703 void *dev_id;
704};
705
706struct pci_localirqlist pci_irqlist[COMEM_MAXPCI];
707
708/*****************************************************************************/
709
710int pci_request_irq(unsigned int irq,
711 void (*handler)(int, void *, struct pt_regs *),
712 unsigned long flags, const char *device, void *dev_id)
713{
714 int i;
715
716#ifdef DEBUGIO
717 printk(KERN_DEBUG "pci_request_irq(irq=%d,handler=%x,flags=%x,device=%s,"
718 "dev_id=%x)\n", irq, (int) handler, (int) flags, device,
719 (int) dev_id);
720#endif
721
722 /* Check if this interrupt handler is already lodged */
723 for (i = 0; (i < COMEM_MAXPCI); i++) {
724 if (pci_irqlist[i].handler == handler)
725 return(0);
726 }
727
728 /* Find a free spot to put this handler */
729 for (i = 0; (i < COMEM_MAXPCI); i++) {
730 if (pci_irqlist[i].handler == 0) {
731 pci_irqlist[i].handler = handler;
732 pci_irqlist[i].device = device;
733 pci_irqlist[i].dev_id = dev_id;
734 return(0);
735 }
736 }
737
738 /* Couldn't fit?? */
739 return(1);
740}
741
742/*****************************************************************************/
743
744void pci_free_irq(unsigned int irq, void *dev_id)
745{
746 int i;
747
748#ifdef DEBUGIO
749 printk(KERN_DEBUG "pci_free_irq(irq=%d,dev_id=%x)\n", irq, (int) dev_id);
750#endif
751
752 if (dev_id == (void *) NULL)
753 return;
754
755 /* Check if this interrupt handler is lodged */
756 for (i = 0; (i < COMEM_MAXPCI); i++) {
757 if (pci_irqlist[i].dev_id == dev_id) {
758 pci_irqlist[i].handler = NULL;
759 pci_irqlist[i].device = NULL;
760 pci_irqlist[i].dev_id = NULL;
761 break;
762 }
763 }
764}
765
766/*****************************************************************************/
767
768void pci_interrupt(int irq, void *id, struct pt_regs *fp)
769{
770 int i;
771
772#ifdef DEBUGIO
773 printk(KERN_DEBUG "pci_interrupt(irq=%d,id=%x,fp=%x)\n", irq, (int) id, (int) fp);
774#endif
775
776 for (i = 0; (i < COMEM_MAXPCI); i++) {
777 if (pci_irqlist[i].handler)
778 (*pci_irqlist[i].handler)(irq,pci_irqlist[i].dev_id,fp);
779 }
780}
781
782/*****************************************************************************/
783
784/*
785 * The shared memory region is broken up into contiguous 512 byte
786 * regions for easy allocation... This is not an optimal solution
787 * but it makes allocation and freeing regions really easy.
788 */
789
790#define PCI_MEMSLOTSIZE 512
791#define PCI_MEMSLOTS (COMEM_SHMEMSIZE / PCI_MEMSLOTSIZE)
792
793char pci_shmemmap[PCI_MEMSLOTS];
794
795
796void *pci_bmalloc(int size)
797{
798 int i, j, nrslots;
799
800#ifdef DEBUGIO
801 printk(KERN_DEBUG "pci_bmalloc(size=%d)\n", size);
802#endif
803
804 if (size <= 0)
805 return((void *) NULL);
806
807 nrslots = (size - 1) / PCI_MEMSLOTSIZE;
808
809 for (i = 0; (i < (PCI_MEMSLOTS-nrslots)); i++) {
810 if (pci_shmemmap[i] == 0) {
811 for (j = i+1; (j < (i+nrslots)); j++) {
812 if (pci_shmemmap[j])
813 goto restart;
814 }
815
816 for (j = i; (j <= i+nrslots); j++)
817 pci_shmemmap[j] = 1;
818 break;
819 }
820restart:
821 }
822
823 return((void *) (COMEM_BASE + COMEM_SHMEM + (i * PCI_MEMSLOTSIZE)));
824}
825
826/*****************************************************************************/
827
828void pci_bmfree(void *mp, int size)
829{
830 int i, j, nrslots;
831
832#ifdef DEBUGIO
833 printk(KERN_DEBUG "pci_bmfree(mp=%x,size=%d)\n", (int) mp, size);
834#endif
835
836 nrslots = size / PCI_MEMSLOTSIZE;
837 i = (((unsigned long) mp) - (COMEM_BASE + COMEM_SHMEM)) /
838 PCI_MEMSLOTSIZE;
839
840 for (j = i; (j < (i+nrslots)); j++)
841 pci_shmemmap[j] = 0;
842}
843
844/*****************************************************************************/
845
846unsigned long pci_virt_to_bus(volatile void *address)
847{
848 unsigned long l;
849
850#ifdef DEBUGIO
851 printk(KERN_DEBUG "pci_virt_to_bus(address=%x)", (int) address);
852#endif
853
854 l = ((unsigned long) address) - COMEM_BASE;
855#ifdef DEBUGIO
856 printk(KERN_DEBUG "=%x\n", (int) (l+pci_shmemaddr));
857#endif
858 return(l + pci_shmemaddr);
859}
860
861/*****************************************************************************/
862
863void *pci_bus_to_virt(unsigned long address)
864{
865 unsigned long l;
866
867#ifdef DEBUGIO
868 printk(KERN_DEBUG "pci_bus_to_virt(address=%x)", (int) address);
869#endif
870
871 l = address - pci_shmemaddr;
872#ifdef DEBUGIO
873 printk(KERN_DEBUG "=%x\n", (int) (address + COMEM_BASE));
874#endif
875 return((void *) (address + COMEM_BASE));
876}
877
878/*****************************************************************************/
879
880void pci_bmcpyto(void *dst, void *src, int len)
881{
882 unsigned long *dp, *sp, val;
883 unsigned char *dcp, *scp;
884 int i, j;
885
886#ifdef DEBUGIO
887 printk(KERN_DEBUG "pci_bmcpyto(dst=%x,src=%x,len=%d)\n", (int)dst, (int)src, len);
888#endif
889
890 dp = (unsigned long *) dst;
891 sp = (unsigned long *) src;
892 i = len >> 2;
893
894#if 0
895 printk(KERN_INFO "DATA:");
896 scp = (unsigned char *) sp;
897 for (i = 0; (i < len); i++) {
898 if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i);
899 printk(KERN_INFO "%02x ", *scp++);
900 }
901 printk(KERN_INFO "\n");
902#endif
903
904 for (j = 0; (i >= 0); i--, j++) {
905 val = *sp++;
906 val = (val << 24) | ((val & 0x0000ff00) << 8) |
907 ((val & 0x00ff0000) >> 8) | (val >> 24);
908 *dp++ = val;
909 }
910
911 if (len & 0x3) {
912 dcp = (unsigned char *) dp;
913 scp = ((unsigned char *) sp) + 3;
914 for (i = 0; (i < (len & 0x3)); i++)
915 *dcp++ = *scp--;
916 }
917}
918
919/*****************************************************************************/
920
921void pci_bmcpyfrom(void *dst, void *src, int len)
922{
923 unsigned long *dp, *sp, val;
924 unsigned char *dcp, *scp;
925 int i;
926
927#ifdef DEBUGIO
928 printk(KERN_DEBUG "pci_bmcpyfrom(dst=%x,src=%x,len=%d)\n",(int)dst,(int)src,len);
929#endif
930
931 dp = (unsigned long *) dst;
932 sp = (unsigned long *) src;
933 i = len >> 2;
934
935 for (; (i >= 0); i--) {
936 val = *sp++;
937 val = (val << 24) | ((val & 0x0000ff00) << 8) |
938 ((val & 0x00ff0000) >> 8) | (val >> 24);
939 *dp++ = val;
940 }
941
942 if (len & 0x3) {
943 dcp = ((unsigned char *) dp) + 3;
944 scp = (unsigned char *) sp;
945 for (i = 0; (i < (len & 0x3)); i++)
946 *dcp++ = *scp--;
947 }
948
949#if 0
950 printk(KERN_INFO "DATA:");
951 dcp = (unsigned char *) dst;
952 for (i = 0; (i < len); i++) {
953 if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i);
954 printk(KERN_INFO "%02x ", *dcp++);
955 }
956 printk(KERN_INFO "\n");
957#endif
958}
959
960/*****************************************************************************/
961
962void *pci_alloc_consistent(struct pci_dev *dev, size_t size, dma_addr_t *dma_addr)
963{
964 void *mp;
965 if ((mp = pci_bmalloc(size)) != NULL) {
966 dma_addr = mp - (COMEM_BASE + COMEM_SHMEM);
967 return(mp);
968 }
969 *dma_addr = (dma_addr_t) NULL;
970 return(NULL);
971}
972
973/*****************************************************************************/
974
975void pci_free_consistent(struct pci_dev *dev, size_t size, void *cpu_addr, dma_addr_t dma_addr)
976{
977 pci_bmfree(cpu_addr, size);
978}
979
980/*****************************************************************************/
diff --git a/arch/m68knommu/kernel/signal.c b/arch/m68knommu/kernel/signal.c
index bbfcae9e52b4..5ab6a04af14e 100644
--- a/arch/m68knommu/kernel/signal.c
+++ b/arch/m68knommu/kernel/signal.c
@@ -279,6 +279,9 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext *usc, void *fp,
279 struct sigcontext context; 279 struct sigcontext context;
280 int err = 0; 280 int err = 0;
281 281
282 /* Always make any pending restarted system calls return -EINTR */
283 current_thread_info()->restart_block.fn = do_no_restart_syscall;
284
282 /* get previous context */ 285 /* get previous context */
283 if (copy_from_user(&context, usc, sizeof(context))) 286 if (copy_from_user(&context, usc, sizeof(context)))
284 goto badframe; 287 goto badframe;
@@ -316,6 +319,9 @@ rt_restore_ucontext(struct pt_regs *regs, struct switch_stack *sw,
316 unsigned long usp; 319 unsigned long usp;
317 int err; 320 int err;
318 321
322 /* Always make any pending restarted system calls return -EINTR */
323 current_thread_info()->restart_block.fn = do_no_restart_syscall;
324
319 err = __get_user(temp, &uc->uc_mcontext.version); 325 err = __get_user(temp, &uc->uc_mcontext.version);
320 if (temp != MCONTEXT_VERSION) 326 if (temp != MCONTEXT_VERSION)
321 goto badframe; 327 goto badframe;
@@ -692,6 +698,15 @@ handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler)
692 regs->d0 = -EINTR; 698 regs->d0 = -EINTR;
693 break; 699 break;
694 700
701 case -ERESTART_RESTARTBLOCK:
702 if (!has_handler) {
703 regs->d0 = __NR_restart_syscall;
704 regs->pc -= 2;
705 break;
706 }
707 regs->d0 = -EINTR;
708 break;
709
695 case -ERESTARTSYS: 710 case -ERESTARTSYS:
696 if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) { 711 if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) {
697 regs->d0 = -EINTR; 712 regs->d0 = -EINTR;
diff --git a/arch/m68knommu/kernel/syscalltable.S b/arch/m68knommu/kernel/syscalltable.S
index 812f8d8b7a85..1017e76f3711 100644
--- a/arch/m68knommu/kernel/syscalltable.S
+++ b/arch/m68knommu/kernel/syscalltable.S
@@ -18,7 +18,7 @@
18.text 18.text
19ALIGN 19ALIGN
20ENTRY(sys_call_table) 20ENTRY(sys_call_table)
21 .long sys_ni_syscall /* 0 - old "setup()" system call*/ 21 .long sys_restart_syscall /* 0 - old "setup()" system call */
22 .long sys_exit 22 .long sys_exit
23 .long sys_fork 23 .long sys_fork
24 .long sys_read 24 .long sys_read
@@ -107,7 +107,7 @@ ENTRY(sys_call_table)
107 .long sys_uselib 107 .long sys_uselib
108 .long sys_ni_syscall /* sys_swapon */ 108 .long sys_ni_syscall /* sys_swapon */
109 .long sys_reboot 109 .long sys_reboot
110 .long old_readdir 110 .long sys_old_readdir
111 .long old_mmap /* 90 */ 111 .long old_mmap /* 90 */
112 .long sys_munmap 112 .long sys_munmap
113 .long sys_truncate 113 .long sys_truncate
diff --git a/arch/m68knommu/platform/5307/config.c b/arch/m68knommu/platform/5307/config.c
index 11cff6625dcc..724faf05852a 100644
--- a/arch/m68knommu/platform/5307/config.c
+++ b/arch/m68knommu/platform/5307/config.c
@@ -123,7 +123,7 @@ void __init config_BSP(char *commandp, int size)
123{ 123{
124 mcf_setimr(MCFSIM_IMR_MASKALL); 124 mcf_setimr(MCFSIM_IMR_MASKALL);
125 125
126#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ 126#if defined(CONFIG_NETtel) || \
127 defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA) 127 defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA)
128 /* Copy command line from FLASH to local buffer... */ 128 /* Copy command line from FLASH to local buffer... */
129 memcpy(commandp, (char *) 0xf0004000, size); 129 memcpy(commandp, (char *) 0xf0004000, size);
diff --git a/arch/m68knommu/platform/532x/config.c b/arch/m68knommu/platform/532x/config.c
index 4f44b632045b..a347623d6ee6 100644
--- a/arch/m68knommu/platform/532x/config.c
+++ b/arch/m68knommu/platform/532x/config.c
@@ -41,15 +41,15 @@ extern unsigned int mcf_timerlevel;
41 41
42static struct mcf_platform_uart m532x_uart_platform[] = { 42static struct mcf_platform_uart m532x_uart_platform[] = {
43 { 43 {
44 .mapbase = MCF_MBAR + MCFUART_BASE1, 44 .mapbase = MCFUART_BASE1,
45 .irq = MCFINT_VECBASE + MCFINT_UART0, 45 .irq = MCFINT_VECBASE + MCFINT_UART0,
46 }, 46 },
47 { 47 {
48 .mapbase = MCF_MBAR + MCFUART_BASE2, 48 .mapbase = MCFUART_BASE2,
49 .irq = MCFINT_VECBASE + MCFINT_UART1, 49 .irq = MCFINT_VECBASE + MCFINT_UART1,
50 }, 50 },
51 { 51 {
52 .mapbase = MCF_MBAR + MCFUART_BASE3, 52 .mapbase = MCFUART_BASE3,
53 .irq = MCFINT_VECBASE + MCFINT_UART2, 53 .irq = MCFINT_VECBASE + MCFINT_UART2,
54 }, 54 },
55 { }, 55 { },
@@ -108,7 +108,7 @@ void mcf_settimericr(unsigned int timer, unsigned int level)
108 default: irq = 32; icr = MCFSIM_ICR_TIMER1; break; 108 default: irq = 32; icr = MCFSIM_ICR_TIMER1; break;
109 } 109 }
110 110
111 icrp = (volatile unsigned char *) (MCF_MBAR + icr); 111 icrp = (volatile unsigned char *) (icr);
112 *icrp = level; 112 *icrp = level;
113 mcf_enable_irq0(irq); 113 mcf_enable_irq0(irq);
114 } 114 }
diff --git a/arch/m68knommu/platform/coldfire/entry.S b/arch/m68knommu/platform/coldfire/entry.S
index 1e3c0dcbd7ac..3b471c0da24a 100644
--- a/arch/m68knommu/platform/coldfire/entry.S
+++ b/arch/m68knommu/platform/coldfire/entry.S
@@ -215,19 +215,8 @@ ENTRY(fasthandler)
215 RESTORE_LOCAL 215 RESTORE_LOCAL
216 216
217ENTRY(ret_from_interrupt) 217ENTRY(ret_from_interrupt)
218 moveb %sp@(PT_SR),%d0 218 /* the fasthandler is confusing me, haven't seen any user */
219 andl #0x7,%d0 219 jmp ret_from_exception
220 jeq 1f
221
222 RESTORE_ALL
223
2241:
225 /* check if we need to do software interrupts */
226 movel irq_stat+CPUSTAT_SOFTIRQ_PENDING,%d0
227 jeq ret_from_exception
228
229 pea ret_from_exception
230 jmp do_softirq
231 220
232/* 221/*
233 * Beware - when entering resume, prev (the current task) is 222 * Beware - when entering resume, prev (the current task) is
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index a5255e7c79e0..e61465a18c7e 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -351,7 +351,7 @@ config SGI_IP27
351 select ARC64 351 select ARC64
352 select BOOT_ELF64 352 select BOOT_ELF64
353 select DEFAULT_SGI_PARTITION 353 select DEFAULT_SGI_PARTITION
354 select DMA_IP27 354 select DMA_COHERENT
355 select SYS_HAS_EARLY_PRINTK 355 select SYS_HAS_EARLY_PRINTK
356 select HW_HAS_PCI 356 select HW_HAS_PCI
357 select NR_CPUS_DEFAULT_64 357 select NR_CPUS_DEFAULT_64
@@ -595,6 +595,44 @@ config WR_PPMC
595 This enables support for the Wind River MIPS32 4KC PPMC evaluation 595 This enables support for the Wind River MIPS32 4KC PPMC evaluation
596 board, which is based on GT64120 bridge chip. 596 board, which is based on GT64120 bridge chip.
597 597
598config CAVIUM_OCTEON_SIMULATOR
599 bool "Support for the Cavium Networks Octeon Simulator"
600 select CEVT_R4K
601 select 64BIT_PHYS_ADDR
602 select DMA_COHERENT
603 select SYS_SUPPORTS_64BIT_KERNEL
604 select SYS_SUPPORTS_BIG_ENDIAN
605 select SYS_SUPPORTS_HIGHMEM
606 select SYS_HAS_CPU_CAVIUM_OCTEON
607 help
608 The Octeon simulator is software performance model of the Cavium
609 Octeon Processor. It supports simulating Octeon processors on x86
610 hardware.
611
612config CAVIUM_OCTEON_REFERENCE_BOARD
613 bool "Support for the Cavium Networks Octeon reference board"
614 select CEVT_R4K
615 select 64BIT_PHYS_ADDR
616 select DMA_COHERENT
617 select SYS_SUPPORTS_64BIT_KERNEL
618 select SYS_SUPPORTS_BIG_ENDIAN
619 select SYS_SUPPORTS_HIGHMEM
620 select SYS_HAS_EARLY_PRINTK
621 select SYS_HAS_CPU_CAVIUM_OCTEON
622 select SWAP_IO_SPACE
623 help
624 This option supports all of the Octeon reference boards from Cavium
625 Networks. It builds a kernel that dynamically determines the Octeon
626 CPU type and supports all known board reference implementations.
627 Some of the supported boards are:
628 EBT3000
629 EBH3000
630 EBH3100
631 Thunder
632 Kodama
633 Hikari
634 Say Y here for most Octeon reference boards.
635
598endchoice 636endchoice
599 637
600source "arch/mips/alchemy/Kconfig" 638source "arch/mips/alchemy/Kconfig"
@@ -607,6 +645,7 @@ source "arch/mips/sgi-ip27/Kconfig"
607source "arch/mips/sibyte/Kconfig" 645source "arch/mips/sibyte/Kconfig"
608source "arch/mips/txx9/Kconfig" 646source "arch/mips/txx9/Kconfig"
609source "arch/mips/vr41xx/Kconfig" 647source "arch/mips/vr41xx/Kconfig"
648source "arch/mips/cavium-octeon/Kconfig"
610 649
611endmenu 650endmenu
612 651
@@ -682,7 +721,11 @@ config CEVT_DS1287
682config CEVT_GT641XX 721config CEVT_GT641XX
683 bool 722 bool
684 723
724config CEVT_R4K_LIB
725 bool
726
685config CEVT_R4K 727config CEVT_R4K
728 select CEVT_R4K_LIB
686 bool 729 bool
687 730
688config CEVT_SB1250 731config CEVT_SB1250
@@ -697,7 +740,11 @@ config CSRC_BCM1480
697config CSRC_IOASIC 740config CSRC_IOASIC
698 bool 741 bool
699 742
743config CSRC_R4K_LIB
744 bool
745
700config CSRC_R4K 746config CSRC_R4K
747 select CSRC_R4K_LIB
701 bool 748 bool
702 749
703config CSRC_SB1250 750config CSRC_SB1250
@@ -714,9 +761,6 @@ config CFE
714config DMA_COHERENT 761config DMA_COHERENT
715 bool 762 bool
716 763
717config DMA_IP27
718 bool
719
720config DMA_NONCOHERENT 764config DMA_NONCOHERENT
721 bool 765 bool
722 select DMA_NEED_PCI_MAP_STATE 766 select DMA_NEED_PCI_MAP_STATE
@@ -835,6 +879,9 @@ config IRQ_GT641XX
835config IRQ_GIC 879config IRQ_GIC
836 bool 880 bool
837 881
882config IRQ_CPU_OCTEON
883 bool
884
838config MIPS_BOARDS_GEN 885config MIPS_BOARDS_GEN
839 bool 886 bool
840 887
@@ -924,7 +971,7 @@ config BOOT_ELF32
924config MIPS_L1_CACHE_SHIFT 971config MIPS_L1_CACHE_SHIFT
925 int 972 int
926 default "4" if MACH_DECSTATION || MIKROTIK_RB532 973 default "4" if MACH_DECSTATION || MIKROTIK_RB532
927 default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM 974 default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
928 default "4" if PMC_MSP4200_EVAL 975 default "4" if PMC_MSP4200_EVAL
929 default "5" 976 default "5"
930 977
@@ -1185,6 +1232,24 @@ config CPU_SB1
1185 select CPU_SUPPORTS_HIGHMEM 1232 select CPU_SUPPORTS_HIGHMEM
1186 select WEAK_ORDERING 1233 select WEAK_ORDERING
1187 1234
1235config CPU_CAVIUM_OCTEON
1236 bool "Cavium Octeon processor"
1237 depends on SYS_HAS_CPU_CAVIUM_OCTEON
1238 select IRQ_CPU
1239 select IRQ_CPU_OCTEON
1240 select CPU_HAS_PREFETCH
1241 select CPU_SUPPORTS_64BIT_KERNEL
1242 select SYS_SUPPORTS_SMP
1243 select NR_CPUS_DEFAULT_16
1244 select WEAK_ORDERING
1245 select WEAK_REORDERING_BEYOND_LLSC
1246 select CPU_SUPPORTS_HIGHMEM
1247 help
1248 The Cavium Octeon processor is a highly integrated chip containing
1249 many ethernet hardware widgets for networking tasks. The processor
1250 can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1251 Full details can be found at http://www.caviumnetworks.com.
1252
1188endchoice 1253endchoice
1189 1254
1190config SYS_HAS_CPU_LOONGSON2 1255config SYS_HAS_CPU_LOONGSON2
@@ -1250,6 +1315,9 @@ config SYS_HAS_CPU_RM9000
1250config SYS_HAS_CPU_SB1 1315config SYS_HAS_CPU_SB1
1251 bool 1316 bool
1252 1317
1318config SYS_HAS_CPU_CAVIUM_OCTEON
1319 bool
1320
1253# 1321#
1254# CPU may reorder R->R, R->W, W->R, W->W 1322# CPU may reorder R->R, R->W, W->R, W->W
1255# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC 1323# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
@@ -1285,7 +1353,7 @@ config CPU_MIPSR1
1285 1353
1286config CPU_MIPSR2 1354config CPU_MIPSR2
1287 bool 1355 bool
1288 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 1356 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1289 1357
1290config SYS_SUPPORTS_32BIT_KERNEL 1358config SYS_SUPPORTS_32BIT_KERNEL
1291 bool 1359 bool
@@ -1301,7 +1369,7 @@ config CPU_SUPPORTS_64BIT_KERNEL
1301# 1369#
1302config HARDWARE_WATCHPOINTS 1370config HARDWARE_WATCHPOINTS
1303 bool 1371 bool
1304 default y if CPU_MIPS32 || CPU_MIPS64 1372 default y if CPU_MIPSR1 || CPU_MIPSR2
1305 1373
1306menu "Kernel type" 1374menu "Kernel type"
1307 1375
@@ -1323,6 +1391,7 @@ config 32BIT
1323config 64BIT 1391config 64BIT
1324 bool "64-bit kernel" 1392 bool "64-bit kernel"
1325 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL 1393 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1394 select HAVE_SYSCALL_WRAPPERS
1326 help 1395 help
1327 Select this option if you want to build a 64-bit kernel. 1396 Select this option if you want to build a 64-bit kernel.
1328 1397
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 28c55f608913..21b00e95daef 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -144,6 +144,10 @@ cflags-$(CONFIG_CPU_SB1) += $(call cc-option,-march=sb1,-march=r5000) \
144cflags-$(CONFIG_CPU_R8000) += -march=r8000 -Wa,--trap 144cflags-$(CONFIG_CPU_R8000) += -march=r8000 -Wa,--trap
145cflags-$(CONFIG_CPU_R10000) += $(call cc-option,-march=r10000,-march=r8000) \ 145cflags-$(CONFIG_CPU_R10000) += $(call cc-option,-march=r10000,-march=r8000) \
146 -Wa,--trap 146 -Wa,--trap
147cflags-$(CONFIG_CPU_CAVIUM_OCTEON) += $(call cc-option,-march=octeon) -Wa,--trap
148ifeq (,$(findstring march=octeon, $(cflags-$(CONFIG_CPU_CAVIUM_OCTEON))))
149cflags-$(CONFIG_CPU_CAVIUM_OCTEON) += -Wa,-march=octeon
150endif
147 151
148cflags-$(CONFIG_CPU_R4000_WORKAROUNDS) += $(call cc-option,-mfix-r4000,) 152cflags-$(CONFIG_CPU_R4000_WORKAROUNDS) += $(call cc-option,-mfix-r4000,)
149cflags-$(CONFIG_CPU_R4400_WORKAROUNDS) += $(call cc-option,-mfix-r4400,) 153cflags-$(CONFIG_CPU_R4400_WORKAROUNDS) += $(call cc-option,-mfix-r4400,)
@@ -184,84 +188,84 @@ cflags-$(CONFIG_SOC_AU1X00) += -I$(srctree)/arch/mips/include/asm/mach-au1x00
184# 188#
185# AMD Alchemy Pb1000 eval board 189# AMD Alchemy Pb1000 eval board
186# 190#
187libs-$(CONFIG_MIPS_PB1000) += arch/mips/alchemy/pb1000/ 191core-$(CONFIG_MIPS_PB1000) += arch/mips/alchemy/devboards/
188cflags-$(CONFIG_MIPS_PB1000) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00 192cflags-$(CONFIG_MIPS_PB1000) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00
189load-$(CONFIG_MIPS_PB1000) += 0xffffffff80100000 193load-$(CONFIG_MIPS_PB1000) += 0xffffffff80100000
190 194
191# 195#
192# AMD Alchemy Pb1100 eval board 196# AMD Alchemy Pb1100 eval board
193# 197#
194libs-$(CONFIG_MIPS_PB1100) += arch/mips/alchemy/pb1100/ 198core-$(CONFIG_MIPS_PB1100) += arch/mips/alchemy/devboards/
195cflags-$(CONFIG_MIPS_PB1100) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00 199cflags-$(CONFIG_MIPS_PB1100) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00
196load-$(CONFIG_MIPS_PB1100) += 0xffffffff80100000 200load-$(CONFIG_MIPS_PB1100) += 0xffffffff80100000
197 201
198# 202#
199# AMD Alchemy Pb1500 eval board 203# AMD Alchemy Pb1500 eval board
200# 204#
201libs-$(CONFIG_MIPS_PB1500) += arch/mips/alchemy/pb1500/ 205core-$(CONFIG_MIPS_PB1500) += arch/mips/alchemy/devboards/
202cflags-$(CONFIG_MIPS_PB1500) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00 206cflags-$(CONFIG_MIPS_PB1500) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00
203load-$(CONFIG_MIPS_PB1500) += 0xffffffff80100000 207load-$(CONFIG_MIPS_PB1500) += 0xffffffff80100000
204 208
205# 209#
206# AMD Alchemy Pb1550 eval board 210# AMD Alchemy Pb1550 eval board
207# 211#
208libs-$(CONFIG_MIPS_PB1550) += arch/mips/alchemy/pb1550/ 212core-$(CONFIG_MIPS_PB1550) += arch/mips/alchemy/devboards/
209cflags-$(CONFIG_MIPS_PB1550) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00 213cflags-$(CONFIG_MIPS_PB1550) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00
210load-$(CONFIG_MIPS_PB1550) += 0xffffffff80100000 214load-$(CONFIG_MIPS_PB1550) += 0xffffffff80100000
211 215
212# 216#
213# AMD Alchemy Pb1200 eval board 217# AMD Alchemy Pb1200 eval board
214# 218#
215libs-$(CONFIG_MIPS_PB1200) += arch/mips/alchemy/pb1200/ 219core-$(CONFIG_MIPS_PB1200) += arch/mips/alchemy/devboards/
216cflags-$(CONFIG_MIPS_PB1200) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00 220cflags-$(CONFIG_MIPS_PB1200) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00
217load-$(CONFIG_MIPS_PB1200) += 0xffffffff80100000 221load-$(CONFIG_MIPS_PB1200) += 0xffffffff80100000
218 222
219# 223#
220# AMD Alchemy Db1000 eval board 224# AMD Alchemy Db1000 eval board
221# 225#
222libs-$(CONFIG_MIPS_DB1000) += arch/mips/alchemy/db1x00/ 226core-$(CONFIG_MIPS_DB1000) += arch/mips/alchemy/devboards/
223cflags-$(CONFIG_MIPS_DB1000) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 227cflags-$(CONFIG_MIPS_DB1000) += -I$(srctree)/arch/mips/include/asm/mach-db1x00
224load-$(CONFIG_MIPS_DB1000) += 0xffffffff80100000 228load-$(CONFIG_MIPS_DB1000) += 0xffffffff80100000
225 229
226# 230#
227# AMD Alchemy Db1100 eval board 231# AMD Alchemy Db1100 eval board
228# 232#
229libs-$(CONFIG_MIPS_DB1100) += arch/mips/alchemy/db1x00/ 233core-$(CONFIG_MIPS_DB1100) += arch/mips/alchemy/devboards/
230cflags-$(CONFIG_MIPS_DB1100) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 234cflags-$(CONFIG_MIPS_DB1100) += -I$(srctree)/arch/mips/include/asm/mach-db1x00
231load-$(CONFIG_MIPS_DB1100) += 0xffffffff80100000 235load-$(CONFIG_MIPS_DB1100) += 0xffffffff80100000
232 236
233# 237#
234# AMD Alchemy Db1500 eval board 238# AMD Alchemy Db1500 eval board
235# 239#
236libs-$(CONFIG_MIPS_DB1500) += arch/mips/alchemy/db1x00/ 240core-$(CONFIG_MIPS_DB1500) += arch/mips/alchemy/devboards/
237cflags-$(CONFIG_MIPS_DB1500) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 241cflags-$(CONFIG_MIPS_DB1500) += -I$(srctree)/arch/mips/include/asm/mach-db1x00
238load-$(CONFIG_MIPS_DB1500) += 0xffffffff80100000 242load-$(CONFIG_MIPS_DB1500) += 0xffffffff80100000
239 243
240# 244#
241# AMD Alchemy Db1550 eval board 245# AMD Alchemy Db1550 eval board
242# 246#
243libs-$(CONFIG_MIPS_DB1550) += arch/mips/alchemy/db1x00/ 247core-$(CONFIG_MIPS_DB1550) += arch/mips/alchemy/devboards/
244cflags-$(CONFIG_MIPS_DB1550) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 248cflags-$(CONFIG_MIPS_DB1550) += -I$(srctree)/arch/mips/include/asm/mach-db1x00
245load-$(CONFIG_MIPS_DB1550) += 0xffffffff80100000 249load-$(CONFIG_MIPS_DB1550) += 0xffffffff80100000
246 250
247# 251#
248# AMD Alchemy Db1200 eval board 252# AMD Alchemy Db1200 eval board
249# 253#
250libs-$(CONFIG_MIPS_DB1200) += arch/mips/alchemy/pb1200/ 254core-$(CONFIG_MIPS_DB1200) += arch/mips/alchemy/devboards/
251cflags-$(CONFIG_MIPS_DB1200) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 255cflags-$(CONFIG_MIPS_DB1200) += -I$(srctree)/arch/mips/include/asm/mach-db1x00
252load-$(CONFIG_MIPS_DB1200) += 0xffffffff80100000 256load-$(CONFIG_MIPS_DB1200) += 0xffffffff80100000
253 257
254# 258#
255# AMD Alchemy Bosporus eval board 259# AMD Alchemy Bosporus eval board
256# 260#
257libs-$(CONFIG_MIPS_BOSPORUS) += arch/mips/alchemy/db1x00/ 261core-$(CONFIG_MIPS_BOSPORUS) += arch/mips/alchemy/devboards/
258cflags-$(CONFIG_MIPS_BOSPORUS) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 262cflags-$(CONFIG_MIPS_BOSPORUS) += -I$(srctree)/arch/mips/include/asm/mach-db1x00
259load-$(CONFIG_MIPS_BOSPORUS) += 0xffffffff80100000 263load-$(CONFIG_MIPS_BOSPORUS) += 0xffffffff80100000
260 264
261# 265#
262# AMD Alchemy Mirage eval board 266# AMD Alchemy Mirage eval board
263# 267#
264libs-$(CONFIG_MIPS_MIRAGE) += arch/mips/alchemy/db1x00/ 268core-$(CONFIG_MIPS_MIRAGE) += arch/mips/alchemy/devboards/
265cflags-$(CONFIG_MIPS_MIRAGE) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 269cflags-$(CONFIG_MIPS_MIRAGE) += -I$(srctree)/arch/mips/include/asm/mach-db1x00
266load-$(CONFIG_MIPS_MIRAGE) += 0xffffffff80100000 270load-$(CONFIG_MIPS_MIRAGE) += 0xffffffff80100000
267 271
@@ -586,6 +590,18 @@ core-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/txx9/rbtx4927/
586core-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/txx9/rbtx4938/ 590core-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/txx9/rbtx4938/
587core-$(CONFIG_TOSHIBA_RBTX4939) += arch/mips/txx9/rbtx4939/ 591core-$(CONFIG_TOSHIBA_RBTX4939) += arch/mips/txx9/rbtx4939/
588 592
593#
594# Cavium Octeon
595#
596core-$(CONFIG_CPU_CAVIUM_OCTEON) += arch/mips/cavium-octeon/
597cflags-$(CONFIG_CPU_CAVIUM_OCTEON) += -I$(srctree)/arch/mips/include/asm/mach-cavium-octeon
598core-$(CONFIG_CPU_CAVIUM_OCTEON) += arch/mips/cavium-octeon/executive/
599ifdef CONFIG_CAVIUM_OCTEON_2ND_KERNEL
600load-$(CONFIG_CPU_CAVIUM_OCTEON) += 0xffffffff84100000
601else
602load-$(CONFIG_CPU_CAVIUM_OCTEON) += 0xffffffff81100000
603endif
604
589cflags-y += -I$(srctree)/arch/mips/include/asm/mach-generic 605cflags-y += -I$(srctree)/arch/mips/include/asm/mach-generic
590drivers-$(CONFIG_PCI) += arch/mips/pci/ 606drivers-$(CONFIG_PCI) += arch/mips/pci/
591 607
diff --git a/arch/mips/alchemy/Kconfig b/arch/mips/alchemy/Kconfig
index e4a057d80ab6..7f8ef13d0014 100644
--- a/arch/mips/alchemy/Kconfig
+++ b/arch/mips/alchemy/Kconfig
@@ -128,9 +128,10 @@ config SOC_AU1200
128config SOC_AU1X00 128config SOC_AU1X00
129 bool 129 bool
130 select 64BIT_PHYS_ADDR 130 select 64BIT_PHYS_ADDR
131 select CEVT_R4K 131 select CEVT_R4K_LIB
132 select CSRC_R4K 132 select CSRC_R4K_LIB
133 select IRQ_CPU 133 select IRQ_CPU
134 select SYS_HAS_CPU_MIPS32_R1 134 select SYS_HAS_CPU_MIPS32_R1
135 select SYS_SUPPORTS_32BIT_KERNEL 135 select SYS_SUPPORTS_32BIT_KERNEL
136 select SYS_SUPPORTS_APM_EMULATION 136 select SYS_SUPPORTS_APM_EMULATION
137 select GENERIC_HARDIRQS_NO__DO_IRQ
diff --git a/arch/mips/alchemy/common/Makefile b/arch/mips/alchemy/common/Makefile
index df48fd65bbf3..d50d4764eafe 100644
--- a/arch/mips/alchemy/common/Makefile
+++ b/arch/mips/alchemy/common/Makefile
@@ -6,8 +6,8 @@
6# 6#
7 7
8obj-y += prom.o irq.o puts.o time.o reset.o \ 8obj-y += prom.o irq.o puts.o time.o reset.o \
9 au1xxx_irqmap.o clocks.o platform.o power.o setup.o \ 9 clocks.o platform.o power.o setup.o \
10 sleeper.o cputable.o dma.o dbdma.o gpio.o 10 sleeper.o dma.o dbdma.o gpio.o
11 11
12obj-$(CONFIG_PCI) += pci.o 12obj-$(CONFIG_PCI) += pci.o
13 13
diff --git a/arch/mips/alchemy/common/au1xxx_irqmap.c b/arch/mips/alchemy/common/au1xxx_irqmap.c
deleted file mode 100644
index c7ca1596394c..000000000000
--- a/arch/mips/alchemy/common/au1xxx_irqmap.c
+++ /dev/null
@@ -1,205 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xxx processor specific IRQ tables
4 *
5 * Copyright 2004 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#include <linux/init.h>
29#include <linux/kernel.h>
30
31#include <au1000.h>
32
33/* The IC0 interrupt table. This is processor, rather than
34 * board dependent, so no reason to keep this info in the board
35 * dependent files.
36 *
37 * Careful if you change match 2 request!
38 * The interrupt handler is called directly from the low level dispatch code.
39 */
40struct au1xxx_irqmap __initdata au1xxx_ic0_map[] = {
41
42#if defined(CONFIG_SOC_AU1000)
43 { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0 },
44 { AU1000_UART1_INT, INTC_INT_HIGH_LEVEL, 0 },
45 { AU1000_UART2_INT, INTC_INT_HIGH_LEVEL, 0 },
46 { AU1000_UART3_INT, INTC_INT_HIGH_LEVEL, 0 },
47 { AU1000_SSI0_INT, INTC_INT_HIGH_LEVEL, 0 },
48 { AU1000_SSI1_INT, INTC_INT_HIGH_LEVEL, 0 },
49 { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0 },
50 { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0 },
51 { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0 },
52 { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0 },
53 { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0 },
54 { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0 },
55 { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0 },
56 { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0 },
57 { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
58 { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
59 { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
60 { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
61 { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
62 { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
63 { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
64 { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
65 { AU1000_IRDA_TX_INT, INTC_INT_HIGH_LEVEL, 0 },
66 { AU1000_IRDA_RX_INT, INTC_INT_HIGH_LEVEL, 0 },
67 { AU1000_USB_DEV_REQ_INT, INTC_INT_HIGH_LEVEL, 0 },
68 { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
69 { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
70 { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
71 { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0 },
72 { AU1000_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0 },
73 { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
74
75#elif defined(CONFIG_SOC_AU1500)
76
77 { AU1500_UART0_INT, INTC_INT_HIGH_LEVEL, 0 },
78 { AU1000_PCI_INTA, INTC_INT_LOW_LEVEL, 0 },
79 { AU1000_PCI_INTB, INTC_INT_LOW_LEVEL, 0 },
80 { AU1500_UART3_INT, INTC_INT_HIGH_LEVEL, 0 },
81 { AU1000_PCI_INTC, INTC_INT_LOW_LEVEL, 0 },
82 { AU1000_PCI_INTD, INTC_INT_LOW_LEVEL, 0 },
83 { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0 },
84 { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0 },
85 { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0 },
86 { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0 },
87 { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0 },
88 { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0 },
89 { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0 },
90 { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0 },
91 { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
92 { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
93 { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
94 { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
95 { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
96 { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
97 { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
98 { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
99 { AU1000_USB_DEV_REQ_INT, INTC_INT_HIGH_LEVEL, 0 },
100 { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
101 { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
102 { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
103 { AU1500_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0 },
104 { AU1500_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0 },
105 { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
106
107#elif defined(CONFIG_SOC_AU1100)
108
109 { AU1100_UART0_INT, INTC_INT_HIGH_LEVEL, 0 },
110 { AU1100_UART1_INT, INTC_INT_HIGH_LEVEL, 0 },
111 { AU1100_SD_INT, INTC_INT_HIGH_LEVEL, 0 },
112 { AU1100_UART3_INT, INTC_INT_HIGH_LEVEL, 0 },
113 { AU1000_SSI0_INT, INTC_INT_HIGH_LEVEL, 0 },
114 { AU1000_SSI1_INT, INTC_INT_HIGH_LEVEL, 0 },
115 { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0 },
116 { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0 },
117 { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0 },
118 { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0 },
119 { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0 },
120 { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0 },
121 { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0 },
122 { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0 },
123 { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
124 { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
125 { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
126 { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
127 { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
128 { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
129 { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
130 { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
131 { AU1000_IRDA_TX_INT, INTC_INT_HIGH_LEVEL, 0 },
132 { AU1000_IRDA_RX_INT, INTC_INT_HIGH_LEVEL, 0 },
133 { AU1000_USB_DEV_REQ_INT, INTC_INT_HIGH_LEVEL, 0 },
134 { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
135 { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
136 { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
137 { AU1100_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0 },
138 /* { AU1000_GPIO215_208_INT, INTC_INT_HIGH_LEVEL, 0 }, */
139 { AU1100_LCD_INT, INTC_INT_HIGH_LEVEL, 0 },
140 { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
141
142#elif defined(CONFIG_SOC_AU1550)
143
144 { AU1550_UART0_INT, INTC_INT_HIGH_LEVEL, 0 },
145 { AU1550_PCI_INTA, INTC_INT_LOW_LEVEL, 0 },
146 { AU1550_PCI_INTB, INTC_INT_LOW_LEVEL, 0 },
147 { AU1550_DDMA_INT, INTC_INT_HIGH_LEVEL, 0 },
148 { AU1550_CRYPTO_INT, INTC_INT_HIGH_LEVEL, 0 },
149 { AU1550_PCI_INTC, INTC_INT_LOW_LEVEL, 0 },
150 { AU1550_PCI_INTD, INTC_INT_LOW_LEVEL, 0 },
151 { AU1550_PCI_RST_INT, INTC_INT_LOW_LEVEL, 0 },
152 { AU1550_UART1_INT, INTC_INT_HIGH_LEVEL, 0 },
153 { AU1550_UART3_INT, INTC_INT_HIGH_LEVEL, 0 },
154 { AU1550_PSC0_INT, INTC_INT_HIGH_LEVEL, 0 },
155 { AU1550_PSC1_INT, INTC_INT_HIGH_LEVEL, 0 },
156 { AU1550_PSC2_INT, INTC_INT_HIGH_LEVEL, 0 },
157 { AU1550_PSC3_INT, INTC_INT_HIGH_LEVEL, 0 },
158 { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
159 { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
160 { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
161 { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
162 { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
163 { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
164 { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
165 { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
166 { AU1550_NAND_INT, INTC_INT_RISE_EDGE, 0 },
167 { AU1550_USB_DEV_REQ_INT, INTC_INT_HIGH_LEVEL, 0 },
168 { AU1550_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
169 { AU1550_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
170 { AU1550_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0 },
171 { AU1550_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0 },
172
173#elif defined(CONFIG_SOC_AU1200)
174
175 { AU1200_UART0_INT, INTC_INT_HIGH_LEVEL, 0 },
176 { AU1200_SWT_INT, INTC_INT_RISE_EDGE, 0 },
177 { AU1200_SD_INT, INTC_INT_HIGH_LEVEL, 0 },
178 { AU1200_DDMA_INT, INTC_INT_HIGH_LEVEL, 0 },
179 { AU1200_MAE_BE_INT, INTC_INT_HIGH_LEVEL, 0 },
180 { AU1200_UART1_INT, INTC_INT_HIGH_LEVEL, 0 },
181 { AU1200_MAE_FE_INT, INTC_INT_HIGH_LEVEL, 0 },
182 { AU1200_PSC0_INT, INTC_INT_HIGH_LEVEL, 0 },
183 { AU1200_PSC1_INT, INTC_INT_HIGH_LEVEL, 0 },
184 { AU1200_AES_INT, INTC_INT_HIGH_LEVEL, 0 },
185 { AU1200_CAMERA_INT, INTC_INT_HIGH_LEVEL, 0 },
186 { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
187 { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
188 { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
189 { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
190 { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
191 { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
192 { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
193 { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
194 { AU1200_NAND_INT, INTC_INT_RISE_EDGE, 0 },
195 { AU1200_USB_INT, INTC_INT_HIGH_LEVEL, 0 },
196 { AU1200_LCD_INT, INTC_INT_HIGH_LEVEL, 0 },
197 { AU1200_MAE_BOTH_INT, INTC_INT_HIGH_LEVEL, 0 },
198
199#else
200#error "Error: Unknown Alchemy SOC"
201#endif
202
203};
204
205int __initdata au1xxx_ic0_nr_irqs = ARRAY_SIZE(au1xxx_ic0_map);
diff --git a/arch/mips/alchemy/common/clocks.c b/arch/mips/alchemy/common/clocks.c
index 043429d17c5f..d8991854530e 100644
--- a/arch/mips/alchemy/common/clocks.c
+++ b/arch/mips/alchemy/common/clocks.c
@@ -27,12 +27,21 @@
27 */ 27 */
28 28
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/spinlock.h>
31#include <asm/time.h>
30#include <asm/mach-au1x00/au1000.h> 32#include <asm/mach-au1x00/au1000.h>
31 33
34/*
35 * I haven't found anyone that doesn't use a 12 MHz source clock,
36 * but just in case.....
37 */
38#define AU1000_SRC_CLK 12000000
39
32static unsigned int au1x00_clock; /* Hz */ 40static unsigned int au1x00_clock; /* Hz */
33static unsigned int lcd_clock; /* KHz */
34static unsigned long uart_baud_base; 41static unsigned long uart_baud_base;
35 42
43static DEFINE_SPINLOCK(time_lock);
44
36/* 45/*
37 * Set the au1000_clock 46 * Set the au1000_clock
38 */ 47 */
@@ -63,31 +72,45 @@ void set_au1x00_uart_baud_base(unsigned long new_baud_base)
63} 72}
64 73
65/* 74/*
66 * Calculate the Au1x00's LCD clock based on the current 75 * We read the real processor speed from the PLL. This is important
67 * cpu clock and the system bus clock, and try to keep it 76 * because it is more accurate than computing it from the 32 KHz
68 * below 40 MHz (the Pb1000 board can lock-up if the LCD 77 * counter, if it exists. If we don't have an accurate processor
69 * clock is over 40 MHz). 78 * speed, all of the peripherals that derive their clocks based on
79 * this advertised speed will introduce error and sometimes not work
80 * properly. This function is futher convoluted to still allow configurations
81 * to do that in case they have really, really old silicon with a
82 * write-only PLL register. -- Dan
70 */ 83 */
71void set_au1x00_lcd_clock(void) 84unsigned long au1xxx_calc_clock(void)
72{ 85{
73 unsigned int static_cfg0; 86 unsigned long cpu_speed;
74 unsigned int sys_busclk = (get_au1x00_speed() / 1000) / 87 unsigned long flags;
75 ((int)(au_readl(SYS_POWERCTRL) & 0x03) + 2);
76 88
77 static_cfg0 = au_readl(MEM_STCFG0); 89 spin_lock_irqsave(&time_lock, flags);
78 90
79 if (static_cfg0 & (1 << 11)) 91 /*
80 lcd_clock = sys_busclk / 5; /* note: BCLK switching fails with D5 */ 92 * On early Au1000, sys_cpupll was write-only. Since these
93 * silicon versions of Au1000 are not sold by AMD, we don't bend
94 * over backwards trying to determine the frequency.
95 */
96 if (au1xxx_cpu_has_pll_wo())
97#ifdef CONFIG_SOC_AU1000_FREQUENCY
98 cpu_speed = CONFIG_SOC_AU1000_FREQUENCY;
99#else
100 cpu_speed = 396000000;
101#endif
81 else 102 else
82 lcd_clock = sys_busclk / 4; 103 cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK;
83 104
84 if (lcd_clock > 50000) /* Epson MAX */ 105 /* On Alchemy CPU:counter ratio is 1:1 */
85 printk(KERN_WARNING "warning: LCD clock too high (%u KHz)\n", 106 mips_hpt_frequency = cpu_speed;
86 lcd_clock); 107 /* Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16) */
87} 108 set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)
109 & 0x03) + 2) * 16));
88 110
89unsigned int get_au1x00_lcd_clock(void) 111 spin_unlock_irqrestore(&time_lock, flags);
90{ 112
91 return lcd_clock; 113 set_au1x00_speed(cpu_speed);
114
115 return cpu_speed;
92} 116}
93EXPORT_SYMBOL(get_au1x00_lcd_clock);
diff --git a/arch/mips/alchemy/common/cputable.c b/arch/mips/alchemy/common/cputable.c
deleted file mode 100644
index ba6430bc2d03..000000000000
--- a/arch/mips/alchemy/common/cputable.c
+++ /dev/null
@@ -1,52 +0,0 @@
1/*
2 * arch/mips/au1000/common/cputable.c
3 *
4 * Copyright (C) 2004 Dan Malek (dan@embeddededge.com)
5 * Copied from PowerPC and updated for Alchemy Au1xxx processors.
6 *
7 * Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org)
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version
12 * 2 of the License, or (at your option) any later version.
13 */
14
15#include <asm/mach-au1x00/au1000.h>
16
17struct cpu_spec *cur_cpu_spec[NR_CPUS];
18
19/* With some thought, we can probably use the mask to reduce the
20 * size of the table.
21 */
22struct cpu_spec cpu_specs[] = {
23 { 0xffffffff, 0x00030100, "Au1000 DA", 1, 0, 1 },
24 { 0xffffffff, 0x00030201, "Au1000 HA", 1, 0, 1 },
25 { 0xffffffff, 0x00030202, "Au1000 HB", 1, 0, 1 },
26 { 0xffffffff, 0x00030203, "Au1000 HC", 1, 1, 0 },
27 { 0xffffffff, 0x00030204, "Au1000 HD", 1, 1, 0 },
28 { 0xffffffff, 0x01030200, "Au1500 AB", 1, 1, 0 },
29 { 0xffffffff, 0x01030201, "Au1500 AC", 0, 1, 0 },
30 { 0xffffffff, 0x01030202, "Au1500 AD", 0, 1, 0 },
31 { 0xffffffff, 0x02030200, "Au1100 AB", 1, 1, 0 },
32 { 0xffffffff, 0x02030201, "Au1100 BA", 1, 1, 0 },
33 { 0xffffffff, 0x02030202, "Au1100 BC", 1, 1, 0 },
34 { 0xffffffff, 0x02030203, "Au1100 BD", 0, 1, 0 },
35 { 0xffffffff, 0x02030204, "Au1100 BE", 0, 1, 0 },
36 { 0xffffffff, 0x03030200, "Au1550 AA", 0, 1, 0 },
37 { 0xffffffff, 0x04030200, "Au1200 AB", 0, 0, 0 },
38 { 0xffffffff, 0x04030201, "Au1200 AC", 1, 0, 0 },
39 { 0x00000000, 0x00000000, "Unknown Au1xxx", 1, 0, 0 }
40};
41
42void set_cpuspec(void)
43{
44 struct cpu_spec *sp;
45 u32 prid;
46
47 prid = read_c0_prid();
48 sp = cpu_specs;
49 while ((prid & sp->prid_mask) != sp->prid_value)
50 sp++;
51 cur_cpu_spec[0] = sp;
52}
diff --git a/arch/mips/alchemy/common/dbdma.c b/arch/mips/alchemy/common/dbdma.c
index 601ee9180ee4..3ab6d80d150d 100644
--- a/arch/mips/alchemy/common/dbdma.c
+++ b/arch/mips/alchemy/common/dbdma.c
@@ -174,6 +174,11 @@ static dbdev_tab_t dbdev_tab[] = {
174 174
175#define DBDEV_TAB_SIZE ARRAY_SIZE(dbdev_tab) 175#define DBDEV_TAB_SIZE ARRAY_SIZE(dbdev_tab)
176 176
177#ifdef CONFIG_PM
178static u32 au1xxx_dbdma_pm_regs[NUM_DBDMA_CHANS + 1][8];
179#endif
180
181
177static chan_tab_t *chan_tab_ptr[NUM_DBDMA_CHANS]; 182static chan_tab_t *chan_tab_ptr[NUM_DBDMA_CHANS];
178 183
179static dbdev_tab_t *find_dbdev_id(u32 id) 184static dbdev_tab_t *find_dbdev_id(u32 id)
@@ -975,4 +980,64 @@ u32 au1xxx_dbdma_put_dscr(u32 chanid, au1x_ddma_desc_t *dscr)
975 return nbytes; 980 return nbytes;
976} 981}
977 982
983#ifdef CONFIG_PM
984void au1xxx_dbdma_suspend(void)
985{
986 int i;
987 u32 addr;
988
989 addr = DDMA_GLOBAL_BASE;
990 au1xxx_dbdma_pm_regs[0][0] = au_readl(addr + 0x00);
991 au1xxx_dbdma_pm_regs[0][1] = au_readl(addr + 0x04);
992 au1xxx_dbdma_pm_regs[0][2] = au_readl(addr + 0x08);
993 au1xxx_dbdma_pm_regs[0][3] = au_readl(addr + 0x0c);
994
995 /* save channel configurations */
996 for (i = 1, addr = DDMA_CHANNEL_BASE; i < NUM_DBDMA_CHANS; i++) {
997 au1xxx_dbdma_pm_regs[i][0] = au_readl(addr + 0x00);
998 au1xxx_dbdma_pm_regs[i][1] = au_readl(addr + 0x04);
999 au1xxx_dbdma_pm_regs[i][2] = au_readl(addr + 0x08);
1000 au1xxx_dbdma_pm_regs[i][3] = au_readl(addr + 0x0c);
1001 au1xxx_dbdma_pm_regs[i][4] = au_readl(addr + 0x10);
1002 au1xxx_dbdma_pm_regs[i][5] = au_readl(addr + 0x14);
1003 au1xxx_dbdma_pm_regs[i][6] = au_readl(addr + 0x18);
1004
1005 /* halt channel */
1006 au_writel(au1xxx_dbdma_pm_regs[i][0] & ~1, addr + 0x00);
1007 au_sync();
1008 while (!(au_readl(addr + 0x14) & 1))
1009 au_sync();
1010
1011 addr += 0x100; /* next channel base */
1012 }
1013 /* disable channel interrupts */
1014 au_writel(0, DDMA_GLOBAL_BASE + 0x0c);
1015 au_sync();
1016}
1017
1018void au1xxx_dbdma_resume(void)
1019{
1020 int i;
1021 u32 addr;
1022
1023 addr = DDMA_GLOBAL_BASE;
1024 au_writel(au1xxx_dbdma_pm_regs[0][0], addr + 0x00);
1025 au_writel(au1xxx_dbdma_pm_regs[0][1], addr + 0x04);
1026 au_writel(au1xxx_dbdma_pm_regs[0][2], addr + 0x08);
1027 au_writel(au1xxx_dbdma_pm_regs[0][3], addr + 0x0c);
1028
1029 /* restore channel configurations */
1030 for (i = 1, addr = DDMA_CHANNEL_BASE; i < NUM_DBDMA_CHANS; i++) {
1031 au_writel(au1xxx_dbdma_pm_regs[i][0], addr + 0x00);
1032 au_writel(au1xxx_dbdma_pm_regs[i][1], addr + 0x04);
1033 au_writel(au1xxx_dbdma_pm_regs[i][2], addr + 0x08);
1034 au_writel(au1xxx_dbdma_pm_regs[i][3], addr + 0x0c);
1035 au_writel(au1xxx_dbdma_pm_regs[i][4], addr + 0x10);
1036 au_writel(au1xxx_dbdma_pm_regs[i][5], addr + 0x14);
1037 au_writel(au1xxx_dbdma_pm_regs[i][6], addr + 0x18);
1038 au_sync();
1039 addr += 0x100; /* next channel base */
1040 }
1041}
1042#endif /* CONFIG_PM */
978#endif /* defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) */ 1043#endif /* defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) */
diff --git a/arch/mips/alchemy/common/irq.c b/arch/mips/alchemy/common/irq.c
index 40c6ceceb5f9..c88c821b4c36 100644
--- a/arch/mips/alchemy/common/irq.c
+++ b/arch/mips/alchemy/common/irq.c
@@ -24,6 +24,7 @@
24 * with this program; if not, write to the Free Software Foundation, Inc., 24 * with this program; if not, write to the Free Software Foundation, Inc.,
25 * 675 Mass Ave, Cambridge, MA 02139, USA. 25 * 675 Mass Ave, Cambridge, MA 02139, USA.
26 */ 26 */
27
27#include <linux/bitops.h> 28#include <linux/bitops.h>
28#include <linux/init.h> 29#include <linux/init.h>
29#include <linux/interrupt.h> 30#include <linux/interrupt.h>
@@ -36,15 +37,172 @@
36#include <asm/mach-pb1x00/pb1000.h> 37#include <asm/mach-pb1x00/pb1000.h>
37#endif 38#endif
38 39
39#define EXT_INTC0_REQ0 2 /* IP 2 */ 40static int au1x_ic_settype(unsigned int irq, unsigned int flow_type);
40#define EXT_INTC0_REQ1 3 /* IP 3 */ 41
41#define EXT_INTC1_REQ0 4 /* IP 4 */ 42/* per-processor fixed function irqs */
42#define EXT_INTC1_REQ1 5 /* IP 5 */ 43struct au1xxx_irqmap au1xxx_ic0_map[] __initdata = {
43#define MIPS_TIMER_IP 7 /* IP 7 */ 44
44 45#if defined(CONFIG_SOC_AU1000)
45void (*board_init_irq)(void) __initdata = NULL; 46 { AU1000_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
47 { AU1000_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
48 { AU1000_UART2_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
49 { AU1000_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
50 { AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
51 { AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
52 { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
53 { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
54 { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
55 { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
56 { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
57 { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
58 { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
59 { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
60 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
61 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
62 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
63 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
64 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
65 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
66 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
67 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
68 { AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
69 { AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
70 { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
71 { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
72 { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
73 { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
74 { AU1000_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
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 },
138 { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
139 { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
140 { AU1100_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
141 { AU1100_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
142 { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
143
144#elif defined(CONFIG_SOC_AU1550)
145
146 { AU1550_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
147 { AU1550_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 },
148 { AU1550_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 },
149 { AU1550_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
150 { AU1550_CRYPTO_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
151 { AU1550_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 },
152 { AU1550_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 },
153 { AU1550_PCI_RST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
154 { AU1550_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
155 { AU1550_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
156 { AU1550_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
157 { AU1550_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
158 { AU1550_PSC2_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
159 { AU1550_PSC3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
160 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
161 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
162 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
163 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
164 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
165 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
166 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
167 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
168 { AU1550_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 },
169 { AU1550_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
170 { AU1550_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
171 { AU1550_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
172 { AU1550_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
173 { AU1550_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
174
175#elif defined(CONFIG_SOC_AU1200)
176
177 { AU1200_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
178 { AU1200_SWT_INT, IRQ_TYPE_EDGE_RISING, 0 },
179 { AU1200_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
180 { AU1200_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
181 { AU1200_MAE_BE_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
182 { AU1200_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
183 { AU1200_MAE_FE_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
184 { AU1200_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
185 { AU1200_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
186 { AU1200_AES_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
187 { AU1200_CAMERA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
188 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
189 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
190 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
191 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
192 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
193 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
194 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
195 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
196 { AU1200_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 },
197 { AU1200_USB_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
198 { AU1200_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
199 { AU1200_MAE_BOTH_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
200
201#else
202#error "Error: Unknown Alchemy SOC"
203#endif
204};
46 205
47static DEFINE_SPINLOCK(irq_lock);
48 206
49#ifdef CONFIG_PM 207#ifdef CONFIG_PM
50 208
@@ -130,67 +288,47 @@ void restore_au1xxx_intctl(void)
130#endif /* CONFIG_PM */ 288#endif /* CONFIG_PM */
131 289
132 290
133inline void local_enable_irq(unsigned int irq_nr) 291static void au1x_ic0_unmask(unsigned int irq_nr)
134{ 292{
135 unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE; 293 unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE;
136 294 au_writel(1 << bit, IC0_MASKSET);
137 if (bit >= 32) { 295 au_writel(1 << bit, IC0_WAKESET);
138 au_writel(1 << (bit - 32), IC1_MASKSET);
139 au_writel(1 << (bit - 32), IC1_WAKESET);
140 } else {
141 au_writel(1 << bit, IC0_MASKSET);
142 au_writel(1 << bit, IC0_WAKESET);
143 }
144 au_sync(); 296 au_sync();
145} 297}
146 298
147 299static void au1x_ic1_unmask(unsigned int irq_nr)
148inline void local_disable_irq(unsigned int irq_nr)
149{ 300{
150 unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE; 301 unsigned int bit = irq_nr - AU1000_INTC1_INT_BASE;
302 au_writel(1 << bit, IC1_MASKSET);
303 au_writel(1 << bit, IC1_WAKESET);
151 304
152 if (bit >= 32) { 305/* very hacky. does the pb1000 cpld auto-disable this int?
153 au_writel(1 << (bit - 32), IC1_MASKCLR); 306 * nowhere in the current kernel sources is it disabled. --mlau
154 au_writel(1 << (bit - 32), IC1_WAKECLR); 307 */
155 } else { 308#if defined(CONFIG_MIPS_PB1000)
156 au_writel(1 << bit, IC0_MASKCLR); 309 if (irq_nr == AU1000_GPIO_15)
157 au_writel(1 << bit, IC0_WAKECLR); 310 au_writel(0x4000, PB1000_MDR); /* enable int */
158 } 311#endif
159 au_sync(); 312 au_sync();
160} 313}
161 314
162 315static void au1x_ic0_mask(unsigned int irq_nr)
163static inline void mask_and_ack_rise_edge_irq(unsigned int irq_nr)
164{ 316{
165 unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE; 317 unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE;
166 318 au_writel(1 << bit, IC0_MASKCLR);
167 if (bit >= 32) { 319 au_writel(1 << bit, IC0_WAKECLR);
168 au_writel(1 << (bit - 32), IC1_RISINGCLR);
169 au_writel(1 << (bit - 32), IC1_MASKCLR);
170 } else {
171 au_writel(1 << bit, IC0_RISINGCLR);
172 au_writel(1 << bit, IC0_MASKCLR);
173 }
174 au_sync(); 320 au_sync();
175} 321}
176 322
177 323static void au1x_ic1_mask(unsigned int irq_nr)
178static inline void mask_and_ack_fall_edge_irq(unsigned int irq_nr)
179{ 324{
180 unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE; 325 unsigned int bit = irq_nr - AU1000_INTC1_INT_BASE;
181 326 au_writel(1 << bit, IC1_MASKCLR);
182 if (bit >= 32) { 327 au_writel(1 << bit, IC1_WAKECLR);
183 au_writel(1 << (bit - 32), IC1_FALLINGCLR);
184 au_writel(1 << (bit - 32), IC1_MASKCLR);
185 } else {
186 au_writel(1 << bit, IC0_FALLINGCLR);
187 au_writel(1 << bit, IC0_MASKCLR);
188 }
189 au_sync(); 328 au_sync();
190} 329}
191 330
192 331static void au1x_ic0_ack(unsigned int irq_nr)
193static inline void mask_and_ack_either_edge_irq(unsigned int irq_nr)
194{ 332{
195 unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE; 333 unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE;
196 334
@@ -198,349 +336,229 @@ static inline void mask_and_ack_either_edge_irq(unsigned int irq_nr)
198 * This may assume that we don't get interrupts from 336 * This may assume that we don't get interrupts from
199 * both edges at once, or if we do, that we don't care. 337 * both edges at once, or if we do, that we don't care.
200 */ 338 */
201 if (bit >= 32) { 339 au_writel(1 << bit, IC0_FALLINGCLR);
202 au_writel(1 << (bit - 32), IC1_FALLINGCLR); 340 au_writel(1 << bit, IC0_RISINGCLR);
203 au_writel(1 << (bit - 32), IC1_RISINGCLR);
204 au_writel(1 << (bit - 32), IC1_MASKCLR);
205 } else {
206 au_writel(1 << bit, IC0_FALLINGCLR);
207 au_writel(1 << bit, IC0_RISINGCLR);
208 au_writel(1 << bit, IC0_MASKCLR);
209 }
210 au_sync(); 341 au_sync();
211} 342}
212 343
213static inline void mask_and_ack_level_irq(unsigned int irq_nr) 344static void au1x_ic1_ack(unsigned int irq_nr)
214{ 345{
215 local_disable_irq(irq_nr); 346 unsigned int bit = irq_nr - AU1000_INTC1_INT_BASE;
216 au_sync();
217#if defined(CONFIG_MIPS_PB1000)
218 if (irq_nr == AU1000_GPIO_15) {
219 au_writel(0x8000, PB1000_MDR); /* ack int */
220 au_sync();
221 }
222#endif
223}
224
225static void end_irq(unsigned int irq_nr)
226{
227 if (!(irq_desc[irq_nr].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
228 local_enable_irq(irq_nr);
229 347
230#if defined(CONFIG_MIPS_PB1000) 348 /*
231 if (irq_nr == AU1000_GPIO_15) { 349 * This may assume that we don't get interrupts from
232 au_writel(0x4000, PB1000_MDR); /* enable int */ 350 * both edges at once, or if we do, that we don't care.
233 au_sync(); 351 */
234 } 352 au_writel(1 << bit, IC1_FALLINGCLR);
235#endif 353 au_writel(1 << bit, IC1_RISINGCLR);
354 au_sync();
236} 355}
237 356
238unsigned long save_local_and_disable(int controller) 357static int au1x_ic1_setwake(unsigned int irq, unsigned int on)
239{ 358{
240 int i; 359 unsigned int bit = irq - AU1000_INTC1_INT_BASE;
241 unsigned long flags, mask; 360 unsigned long wakemsk, flags;
242
243 spin_lock_irqsave(&irq_lock, flags);
244 if (controller) {
245 mask = au_readl(IC1_MASKSET);
246 for (i = 32; i < 64; i++)
247 local_disable_irq(i);
248 } else {
249 mask = au_readl(IC0_MASKSET);
250 for (i = 0; i < 32; i++)
251 local_disable_irq(i);
252 }
253 spin_unlock_irqrestore(&irq_lock, flags);
254
255 return mask;
256}
257 361
258void restore_local_and_enable(int controller, unsigned long mask) 362 /* only GPIO 0-7 can act as wakeup source: */
259{ 363 if ((irq < AU1000_GPIO_0) || (irq > AU1000_GPIO_7))
260 int i; 364 return -EINVAL;
261 unsigned long flags, new_mask;
262
263 spin_lock_irqsave(&irq_lock, flags);
264 for (i = 0; i < 32; i++)
265 if (mask & (1 << i)) {
266 if (controller)
267 local_enable_irq(i + 32);
268 else
269 local_enable_irq(i);
270 }
271 365
272 if (controller) 366 local_irq_save(flags);
273 new_mask = au_readl(IC1_MASKSET); 367 wakemsk = au_readl(SYS_WAKEMSK);
368 if (on)
369 wakemsk |= 1 << bit;
274 else 370 else
275 new_mask = au_readl(IC0_MASKSET); 371 wakemsk &= ~(1 << bit);
372 au_writel(wakemsk, SYS_WAKEMSK);
373 au_sync();
374 local_irq_restore(flags);
276 375
277 spin_unlock_irqrestore(&irq_lock, flags); 376 return 0;
278} 377}
279 378
280 379/*
281static struct irq_chip rise_edge_irq_type = { 380 * irq_chips for both ICs; this way the mask handlers can be
282 .name = "Au1000 Rise Edge", 381 * as short as possible.
283 .ack = mask_and_ack_rise_edge_irq, 382 *
284 .mask = local_disable_irq, 383 * NOTE: the ->ack() callback is used by the handle_edge_irq
285 .mask_ack = mask_and_ack_rise_edge_irq, 384 * flowhandler only, the ->mask_ack() one by handle_level_irq,
286 .unmask = local_enable_irq, 385 * so no need for an irq_chip for each type of irq (level/edge).
287 .end = end_irq, 386 */
288}; 387static struct irq_chip au1x_ic0_chip = {
289 388 .name = "Alchemy-IC0",
290static struct irq_chip fall_edge_irq_type = { 389 .ack = au1x_ic0_ack, /* edge */
291 .name = "Au1000 Fall Edge", 390 .mask = au1x_ic0_mask,
292 .ack = mask_and_ack_fall_edge_irq, 391 .mask_ack = au1x_ic0_mask, /* level */
293 .mask = local_disable_irq, 392 .unmask = au1x_ic0_unmask,
294 .mask_ack = mask_and_ack_fall_edge_irq, 393 .set_type = au1x_ic_settype,
295 .unmask = local_enable_irq,
296 .end = end_irq,
297};
298
299static struct irq_chip either_edge_irq_type = {
300 .name = "Au1000 Rise or Fall Edge",
301 .ack = mask_and_ack_either_edge_irq,
302 .mask = local_disable_irq,
303 .mask_ack = mask_and_ack_either_edge_irq,
304 .unmask = local_enable_irq,
305 .end = end_irq,
306}; 394};
307 395
308static struct irq_chip level_irq_type = { 396static struct irq_chip au1x_ic1_chip = {
309 .name = "Au1000 Level", 397 .name = "Alchemy-IC1",
310 .ack = mask_and_ack_level_irq, 398 .ack = au1x_ic1_ack, /* edge */
311 .mask = local_disable_irq, 399 .mask = au1x_ic1_mask,
312 .mask_ack = mask_and_ack_level_irq, 400 .mask_ack = au1x_ic1_mask, /* level */
313 .unmask = local_enable_irq, 401 .unmask = au1x_ic1_unmask,
314 .end = end_irq, 402 .set_type = au1x_ic_settype,
403 .set_wake = au1x_ic1_setwake,
315}; 404};
316 405
317static void __init setup_local_irq(unsigned int irq_nr, int type, int int_req) 406static int au1x_ic_settype(unsigned int irq, unsigned int flow_type)
318{ 407{
319 unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE; 408 struct irq_chip *chip;
320 409 unsigned long icr[6];
321 if (irq_nr > AU1000_MAX_INTR) 410 unsigned int bit, ic;
322 return; 411 int ret;
323 412
324 /* Config2[n], Config1[n], Config0[n] */ 413 if (irq >= AU1000_INTC1_INT_BASE) {
325 if (bit >= 32) { 414 bit = irq - AU1000_INTC1_INT_BASE;
326 switch (type) { 415 chip = &au1x_ic1_chip;
327 case INTC_INT_RISE_EDGE: /* 0:0:1 */ 416 ic = 1;
328 au_writel(1 << (bit - 32), IC1_CFG2CLR);
329 au_writel(1 << (bit - 32), IC1_CFG1CLR);
330 au_writel(1 << (bit - 32), IC1_CFG0SET);
331 set_irq_chip(irq_nr, &rise_edge_irq_type);
332 break;
333 case INTC_INT_FALL_EDGE: /* 0:1:0 */
334 au_writel(1 << (bit - 32), IC1_CFG2CLR);
335 au_writel(1 << (bit - 32), IC1_CFG1SET);
336 au_writel(1 << (bit - 32), IC1_CFG0CLR);
337 set_irq_chip(irq_nr, &fall_edge_irq_type);
338 break;
339 case INTC_INT_RISE_AND_FALL_EDGE: /* 0:1:1 */
340 au_writel(1 << (bit - 32), IC1_CFG2CLR);
341 au_writel(1 << (bit - 32), IC1_CFG1SET);
342 au_writel(1 << (bit - 32), IC1_CFG0SET);
343 set_irq_chip(irq_nr, &either_edge_irq_type);
344 break;
345 case INTC_INT_HIGH_LEVEL: /* 1:0:1 */
346 au_writel(1 << (bit - 32), IC1_CFG2SET);
347 au_writel(1 << (bit - 32), IC1_CFG1CLR);
348 au_writel(1 << (bit - 32), IC1_CFG0SET);
349 set_irq_chip(irq_nr, &level_irq_type);
350 break;
351 case INTC_INT_LOW_LEVEL: /* 1:1:0 */
352 au_writel(1 << (bit - 32), IC1_CFG2SET);
353 au_writel(1 << (bit - 32), IC1_CFG1SET);
354 au_writel(1 << (bit - 32), IC1_CFG0CLR);
355 set_irq_chip(irq_nr, &level_irq_type);
356 break;
357 case INTC_INT_DISABLED: /* 0:0:0 */
358 au_writel(1 << (bit - 32), IC1_CFG0CLR);
359 au_writel(1 << (bit - 32), IC1_CFG1CLR);
360 au_writel(1 << (bit - 32), IC1_CFG2CLR);
361 break;
362 default: /* disable the interrupt */
363 printk(KERN_WARNING "unexpected int type %d (irq %d)\n",
364 type, irq_nr);
365 au_writel(1 << (bit - 32), IC1_CFG0CLR);
366 au_writel(1 << (bit - 32), IC1_CFG1CLR);
367 au_writel(1 << (bit - 32), IC1_CFG2CLR);
368 return;
369 }
370 if (int_req) /* assign to interrupt request 1 */
371 au_writel(1 << (bit - 32), IC1_ASSIGNCLR);
372 else /* assign to interrupt request 0 */
373 au_writel(1 << (bit - 32), IC1_ASSIGNSET);
374 au_writel(1 << (bit - 32), IC1_SRCSET);
375 au_writel(1 << (bit - 32), IC1_MASKCLR);
376 au_writel(1 << (bit - 32), IC1_WAKECLR);
377 } else { 417 } else {
378 switch (type) { 418 bit = irq - AU1000_INTC0_INT_BASE;
379 case INTC_INT_RISE_EDGE: /* 0:0:1 */ 419 chip = &au1x_ic0_chip;
380 au_writel(1 << bit, IC0_CFG2CLR); 420 ic = 0;
381 au_writel(1 << bit, IC0_CFG1CLR); 421 }
382 au_writel(1 << bit, IC0_CFG0SET); 422
383 set_irq_chip(irq_nr, &rise_edge_irq_type); 423 if (bit > 31)
384 break; 424 return -EINVAL;
385 case INTC_INT_FALL_EDGE: /* 0:1:0 */ 425
386 au_writel(1 << bit, IC0_CFG2CLR); 426 icr[0] = ic ? IC1_CFG0SET : IC0_CFG0SET;
387 au_writel(1 << bit, IC0_CFG1SET); 427 icr[1] = ic ? IC1_CFG1SET : IC0_CFG1SET;
388 au_writel(1 << bit, IC0_CFG0CLR); 428 icr[2] = ic ? IC1_CFG2SET : IC0_CFG2SET;
389 set_irq_chip(irq_nr, &fall_edge_irq_type); 429 icr[3] = ic ? IC1_CFG0CLR : IC0_CFG0CLR;
390 break; 430 icr[4] = ic ? IC1_CFG1CLR : IC0_CFG1CLR;
391 case INTC_INT_RISE_AND_FALL_EDGE: /* 0:1:1 */ 431 icr[5] = ic ? IC1_CFG2CLR : IC0_CFG2CLR;
392 au_writel(1 << bit, IC0_CFG2CLR); 432
393 au_writel(1 << bit, IC0_CFG1SET); 433 ret = 0;
394 au_writel(1 << bit, IC0_CFG0SET); 434
395 set_irq_chip(irq_nr, &either_edge_irq_type); 435 switch (flow_type) { /* cfgregs 2:1:0 */
396 break; 436 case IRQ_TYPE_EDGE_RISING: /* 0:0:1 */
397 case INTC_INT_HIGH_LEVEL: /* 1:0:1 */ 437 au_writel(1 << bit, icr[5]);
398 au_writel(1 << bit, IC0_CFG2SET); 438 au_writel(1 << bit, icr[4]);
399 au_writel(1 << bit, IC0_CFG1CLR); 439 au_writel(1 << bit, icr[0]);
400 au_writel(1 << bit, IC0_CFG0SET); 440 set_irq_chip_and_handler_name(irq, chip,
401 set_irq_chip(irq_nr, &level_irq_type); 441 handle_edge_irq, "riseedge");
402 break; 442 break;
403 case INTC_INT_LOW_LEVEL: /* 1:1:0 */ 443 case IRQ_TYPE_EDGE_FALLING: /* 0:1:0 */
404 au_writel(1 << bit, IC0_CFG2SET); 444 au_writel(1 << bit, icr[5]);
405 au_writel(1 << bit, IC0_CFG1SET); 445 au_writel(1 << bit, icr[1]);
406 au_writel(1 << bit, IC0_CFG0CLR); 446 au_writel(1 << bit, icr[3]);
407 set_irq_chip(irq_nr, &level_irq_type); 447 set_irq_chip_and_handler_name(irq, chip,
408 break; 448 handle_edge_irq, "falledge");
409 case INTC_INT_DISABLED: /* 0:0:0 */ 449 break;
410 au_writel(1 << bit, IC0_CFG0CLR); 450 case IRQ_TYPE_EDGE_BOTH: /* 0:1:1 */
411 au_writel(1 << bit, IC0_CFG1CLR); 451 au_writel(1 << bit, icr[5]);
412 au_writel(1 << bit, IC0_CFG2CLR); 452 au_writel(1 << bit, icr[1]);
413 break; 453 au_writel(1 << bit, icr[0]);
414 default: /* disable the interrupt */ 454 set_irq_chip_and_handler_name(irq, chip,
415 printk(KERN_WARNING "unexpected int type %d (irq %d)\n", 455 handle_edge_irq, "bothedge");
416 type, irq_nr); 456 break;
417 au_writel(1 << bit, IC0_CFG0CLR); 457 case IRQ_TYPE_LEVEL_HIGH: /* 1:0:1 */
418 au_writel(1 << bit, IC0_CFG1CLR); 458 au_writel(1 << bit, icr[2]);
419 au_writel(1 << bit, IC0_CFG2CLR); 459 au_writel(1 << bit, icr[4]);
420 return; 460 au_writel(1 << bit, icr[0]);
421 } 461 set_irq_chip_and_handler_name(irq, chip,
422 if (int_req) /* assign to interrupt request 1 */ 462 handle_level_irq, "hilevel");
423 au_writel(1 << bit, IC0_ASSIGNCLR); 463 break;
424 else /* assign to interrupt request 0 */ 464 case IRQ_TYPE_LEVEL_LOW: /* 1:1:0 */
425 au_writel(1 << bit, IC0_ASSIGNSET); 465 au_writel(1 << bit, icr[2]);
426 au_writel(1 << bit, IC0_SRCSET); 466 au_writel(1 << bit, icr[1]);
427 au_writel(1 << bit, IC0_MASKCLR); 467 au_writel(1 << bit, icr[3]);
428 au_writel(1 << bit, IC0_WAKECLR); 468 set_irq_chip_and_handler_name(irq, chip,
469 handle_level_irq, "lowlevel");
470 break;
471 case IRQ_TYPE_NONE: /* 0:0:0 */
472 au_writel(1 << bit, icr[5]);
473 au_writel(1 << bit, icr[4]);
474 au_writel(1 << bit, icr[3]);
475 /* set at least chip so we can call set_irq_type() on it */
476 set_irq_chip(irq, chip);
477 break;
478 default:
479 ret = -EINVAL;
429 } 480 }
430 au_sync(); 481 au_sync();
431}
432 482
433/* 483 return ret;
434 * Interrupts are nested. Even if an interrupt handler is registered 484}
435 * as "fast", we might get another interrupt before we return from
436 * intcX_reqX_irqdispatch().
437 */
438 485
439static void intc0_req0_irqdispatch(void) 486asmlinkage void plat_irq_dispatch(void)
440{ 487{
441 static unsigned long intc0_req0; 488 unsigned int pending = read_c0_status() & read_c0_cause();
442 unsigned int bit; 489 unsigned long s, off, bit;
443
444 intc0_req0 |= au_readl(IC0_REQ0INT);
445 490
446 if (!intc0_req0) 491 if (pending & CAUSEF_IP7) {
492 do_IRQ(MIPS_CPU_IRQ_BASE + 7);
447 return; 493 return;
448 494 } else if (pending & CAUSEF_IP2) {
495 s = IC0_REQ0INT;
496 off = AU1000_INTC0_INT_BASE;
497 } else if (pending & CAUSEF_IP3) {
498 s = IC0_REQ1INT;
499 off = AU1000_INTC0_INT_BASE;
500 } else if (pending & CAUSEF_IP4) {
501 s = IC1_REQ0INT;
502 off = AU1000_INTC1_INT_BASE;
503 } else if (pending & CAUSEF_IP5) {
504 s = IC1_REQ1INT;
505 off = AU1000_INTC1_INT_BASE;
506 } else
507 goto spurious;
508
509 bit = 0;
510 s = au_readl(s);
511 if (unlikely(!s)) {
512spurious:
513 spurious_interrupt();
514 return;
515 }
449#ifdef AU1000_USB_DEV_REQ_INT 516#ifdef AU1000_USB_DEV_REQ_INT
450 /* 517 /*
451 * Because of the tight timing of SETUP token to reply 518 * Because of the tight timing of SETUP token to reply
452 * transactions, the USB devices-side packet complete 519 * transactions, the USB devices-side packet complete
453 * interrupt needs the highest priority. 520 * interrupt needs the highest priority.
454 */ 521 */
455 if ((intc0_req0 & (1 << AU1000_USB_DEV_REQ_INT))) { 522 bit = 1 << (AU1000_USB_DEV_REQ_INT - AU1000_INTC0_INT_BASE);
456 intc0_req0 &= ~(1 << AU1000_USB_DEV_REQ_INT); 523 if ((pending & CAUSEF_IP2) && (s & bit)) {
457 do_IRQ(AU1000_USB_DEV_REQ_INT); 524 do_IRQ(AU1000_USB_DEV_REQ_INT);
458 return; 525 return;
459 } 526 }
460#endif 527#endif
461 bit = __ffs(intc0_req0); 528 do_IRQ(__ffs(s) + off);
462 intc0_req0 &= ~(1 << bit);
463 do_IRQ(AU1000_INTC0_INT_BASE + bit);
464} 529}
465 530
466 531/* setup edge/level and assign request 0/1 */
467static void intc0_req1_irqdispatch(void) 532void __init au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count)
468{
469 static unsigned long intc0_req1;
470 unsigned int bit;
471
472 intc0_req1 |= au_readl(IC0_REQ1INT);
473
474 if (!intc0_req1)
475 return;
476
477 bit = __ffs(intc0_req1);
478 intc0_req1 &= ~(1 << bit);
479 do_IRQ(AU1000_INTC0_INT_BASE + bit);
480}
481
482
483/*
484 * Interrupt Controller 1:
485 * interrupts 32 - 63
486 */
487static void intc1_req0_irqdispatch(void)
488{ 533{
489 static unsigned long intc1_req0; 534 unsigned int bit, irq_nr;
490 unsigned int bit; 535
491 536 while (count--) {
492 intc1_req0 |= au_readl(IC1_REQ0INT); 537 irq_nr = map[count].im_irq;
493 538
494 if (!intc1_req0) 539 if (((irq_nr < AU1000_INTC0_INT_BASE) ||
495 return; 540 (irq_nr >= AU1000_INTC0_INT_BASE + 32)) &&
496 541 ((irq_nr < AU1000_INTC1_INT_BASE) ||
497 bit = __ffs(intc1_req0); 542 (irq_nr >= AU1000_INTC1_INT_BASE + 32)))
498 intc1_req0 &= ~(1 << bit); 543 continue;
499 do_IRQ(AU1000_INTC1_INT_BASE + bit); 544
500} 545 if (irq_nr >= AU1000_INTC1_INT_BASE) {
501 546 bit = irq_nr - AU1000_INTC1_INT_BASE;
502 547 if (map[count].im_request)
503static void intc1_req1_irqdispatch(void) 548 au_writel(1 << bit, IC1_ASSIGNCLR);
504{ 549 } else {
505 static unsigned long intc1_req1; 550 bit = irq_nr - AU1000_INTC0_INT_BASE;
506 unsigned int bit; 551 if (map[count].im_request)
507 552 au_writel(1 << bit, IC0_ASSIGNCLR);
508 intc1_req1 |= au_readl(IC1_REQ1INT); 553 }
509
510 if (!intc1_req1)
511 return;
512
513 bit = __ffs(intc1_req1);
514 intc1_req1 &= ~(1 << bit);
515 do_IRQ(AU1000_INTC1_INT_BASE + bit);
516}
517
518asmlinkage void plat_irq_dispatch(void)
519{
520 unsigned int pending = read_c0_status() & read_c0_cause();
521 554
522 if (pending & CAUSEF_IP7) 555 au1x_ic_settype(irq_nr, map[count].im_type);
523 do_IRQ(MIPS_CPU_IRQ_BASE + 7); 556 }
524 else if (pending & CAUSEF_IP2)
525 intc0_req0_irqdispatch();
526 else if (pending & CAUSEF_IP3)
527 intc0_req1_irqdispatch();
528 else if (pending & CAUSEF_IP4)
529 intc1_req0_irqdispatch();
530 else if (pending & CAUSEF_IP5)
531 intc1_req1_irqdispatch();
532 else
533 spurious_interrupt();
534} 557}
535 558
536void __init arch_init_irq(void) 559void __init arch_init_irq(void)
537{ 560{
538 int i; 561 int i;
539 struct au1xxx_irqmap *imp;
540 extern struct au1xxx_irqmap au1xxx_irq_map[];
541 extern struct au1xxx_irqmap au1xxx_ic0_map[];
542 extern int au1xxx_nr_irqs;
543 extern int au1xxx_ic0_nr_irqs;
544 562
545 /* 563 /*
546 * Initialize interrupt controllers to a safe state. 564 * Initialize interrupt controllers to a safe state.
@@ -569,28 +587,25 @@ void __init arch_init_irq(void)
569 587
570 mips_cpu_irq_init(); 588 mips_cpu_irq_init();
571 589
572 /* 590 /* register all 64 possible IC0+IC1 irq sources as type "none".
573 * Initialize IC0, which is fixed per processor. 591 * Use set_irq_type() to set edge/level behaviour at runtime.
574 */ 592 */
575 imp = au1xxx_ic0_map; 593 for (i = AU1000_INTC0_INT_BASE;
576 for (i = 0; i < au1xxx_ic0_nr_irqs; i++) { 594 (i < AU1000_INTC0_INT_BASE + 32); i++)
577 setup_local_irq(imp->im_irq, imp->im_type, imp->im_request); 595 au1x_ic_settype(i, IRQ_TYPE_NONE);
578 imp++; 596
579 } 597 for (i = AU1000_INTC1_INT_BASE;
598 (i < AU1000_INTC1_INT_BASE + 32); i++)
599 au1x_ic_settype(i, IRQ_TYPE_NONE);
580 600
581 /* 601 /*
582 * Now set up the irq mapping for the board. 602 * Initialize IC0, which is fixed per processor.
583 */ 603 */
584 imp = au1xxx_irq_map; 604 au1xxx_setup_irqmap(au1xxx_ic0_map, ARRAY_SIZE(au1xxx_ic0_map));
585 for (i = 0; i < au1xxx_nr_irqs; i++) {
586 setup_local_irq(imp->im_irq, imp->im_type, imp->im_request);
587 imp++;
588 }
589
590 set_c0_status(IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4);
591 605
592 /* Board specific IRQ initialization. 606 /* Boards can register additional (GPIO-based) IRQs.
593 */ 607 */
594 if (board_init_irq) 608 board_init_irq();
595 board_init_irq(); 609
610 set_c0_status(IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3);
596} 611}
diff --git a/arch/mips/alchemy/common/power.c b/arch/mips/alchemy/common/power.c
index bd854a6d1d89..6ab7b42aa1be 100644
--- a/arch/mips/alchemy/common/power.c
+++ b/arch/mips/alchemy/common/power.c
@@ -35,25 +35,12 @@
35#include <linux/jiffies.h> 35#include <linux/jiffies.h>
36 36
37#include <asm/uaccess.h> 37#include <asm/uaccess.h>
38#include <asm/cacheflush.h>
39#include <asm/mach-au1x00/au1000.h> 38#include <asm/mach-au1x00/au1000.h>
40 39#if defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200)
41#ifdef CONFIG_PM 40#include <asm/mach-au1x00/au1xxx_dbdma.h>
42
43#define DEBUG 1
44#ifdef DEBUG
45#define DPRINTK(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __func__, ## args)
46#else
47#define DPRINTK(fmt, args...)
48#endif 41#endif
49 42
50static void au1000_calibrate_delay(void); 43#ifdef CONFIG_PM
51
52extern unsigned long save_local_and_disable(int controller);
53extern void restore_local_and_enable(int controller, unsigned long mask);
54extern void local_enable_irq(unsigned int irq_nr);
55
56static DEFINE_SPINLOCK(pm_lock);
57 44
58/* 45/*
59 * We need to save/restore a bunch of core registers that are 46 * We need to save/restore a bunch of core registers that are
@@ -65,29 +52,16 @@ static DEFINE_SPINLOCK(pm_lock);
65 * We only have to save/restore registers that aren't otherwise 52 * We only have to save/restore registers that aren't otherwise
66 * done as part of a driver pm_* function. 53 * done as part of a driver pm_* function.
67 */ 54 */
68static unsigned int sleep_aux_pll_cntrl; 55static unsigned int sleep_uart0_inten;
69static unsigned int sleep_cpu_pll_cntrl; 56static unsigned int sleep_uart0_fifoctl;
70static unsigned int sleep_pin_function; 57static unsigned int sleep_uart0_linectl;
71static unsigned int sleep_uart0_inten; 58static unsigned int sleep_uart0_clkdiv;
72static unsigned int sleep_uart0_fifoctl; 59static unsigned int sleep_uart0_enable;
73static unsigned int sleep_uart0_linectl; 60static unsigned int sleep_usb[2];
74static unsigned int sleep_uart0_clkdiv; 61static unsigned int sleep_sys_clocks[5];
75static unsigned int sleep_uart0_enable; 62static unsigned int sleep_sys_pinfunc;
76static unsigned int sleep_usbhost_enable; 63static unsigned int sleep_static_memctlr[4][3];
77static unsigned int sleep_usbdev_enable;
78static unsigned int sleep_static_memctlr[4][3];
79 64
80/*
81 * Define this to cause the value you write to /proc/sys/pm/sleep to
82 * set the TOY timer for the amount of time you want to sleep.
83 * This is done mainly for testing, but may be useful in other cases.
84 * The value is number of 32KHz ticks to sleep.
85 */
86#define SLEEP_TEST_TIMEOUT 1
87#ifdef SLEEP_TEST_TIMEOUT
88static int sleep_ticks;
89void wakeup_counter0_set(int ticks);
90#endif
91 65
92static void save_core_regs(void) 66static void save_core_regs(void)
93{ 67{
@@ -105,31 +79,45 @@ static void save_core_regs(void)
105 sleep_uart0_linectl = au_readl(UART0_ADDR + UART_LCR); 79 sleep_uart0_linectl = au_readl(UART0_ADDR + UART_LCR);
106 sleep_uart0_clkdiv = au_readl(UART0_ADDR + UART_CLK); 80 sleep_uart0_clkdiv = au_readl(UART0_ADDR + UART_CLK);
107 sleep_uart0_enable = au_readl(UART0_ADDR + UART_MOD_CNTRL); 81 sleep_uart0_enable = au_readl(UART0_ADDR + UART_MOD_CNTRL);
82 au_sync();
108 83
84#ifndef CONFIG_SOC_AU1200
109 /* Shutdown USB host/device. */ 85 /* Shutdown USB host/device. */
110 sleep_usbhost_enable = au_readl(USB_HOST_CONFIG); 86 sleep_usb[0] = au_readl(USB_HOST_CONFIG);
111 87
112 /* There appears to be some undocumented reset register.... */ 88 /* There appears to be some undocumented reset register.... */
113 au_writel(0, 0xb0100004); au_sync(); 89 au_writel(0, 0xb0100004);
114 au_writel(0, USB_HOST_CONFIG); au_sync(); 90 au_sync();
91 au_writel(0, USB_HOST_CONFIG);
92 au_sync();
115 93
116 sleep_usbdev_enable = au_readl(USBD_ENABLE); 94 sleep_usb[1] = au_readl(USBD_ENABLE);
117 au_writel(0, USBD_ENABLE); au_sync(); 95 au_writel(0, USBD_ENABLE);
96 au_sync();
97
98#else /* AU1200 */
99
100 /* enable access to OTG mmio so we can save OTG CAP/MUX.
101 * FIXME: write an OTG driver and move this stuff there!
102 */
103 au_writel(au_readl(USB_MSR_BASE + 4) | (1 << 6), USB_MSR_BASE + 4);
104 au_sync();
105 sleep_usb[0] = au_readl(0xb4020020); /* OTG_CAP */
106 sleep_usb[1] = au_readl(0xb4020024); /* OTG_MUX */
107#endif
118 108
119 /* Save interrupt controller state. */ 109 /* Save interrupt controller state. */
120 save_au1xxx_intctl(); 110 save_au1xxx_intctl();
121 111
122 /* Clocks and PLLs. */ 112 /* Clocks and PLLs. */
123 sleep_aux_pll_cntrl = au_readl(SYS_AUXPLL); 113 sleep_sys_clocks[0] = au_readl(SYS_FREQCTRL0);
114 sleep_sys_clocks[1] = au_readl(SYS_FREQCTRL1);
115 sleep_sys_clocks[2] = au_readl(SYS_CLKSRC);
116 sleep_sys_clocks[3] = au_readl(SYS_CPUPLL);
117 sleep_sys_clocks[4] = au_readl(SYS_AUXPLL);
124 118
125 /* 119 /* pin mux config */
126 * We don't really need to do this one, but unless we 120 sleep_sys_pinfunc = au_readl(SYS_PINFUNC);
127 * write it again it won't have a valid value if we
128 * happen to read it.
129 */
130 sleep_cpu_pll_cntrl = au_readl(SYS_CPUPLL);
131
132 sleep_pin_function = au_readl(SYS_PINFUNC);
133 121
134 /* Save the static memory controller configuration. */ 122 /* Save the static memory controller configuration. */
135 sleep_static_memctlr[0][0] = au_readl(MEM_STCFG0); 123 sleep_static_memctlr[0][0] = au_readl(MEM_STCFG0);
@@ -144,16 +132,45 @@ static void save_core_regs(void)
144 sleep_static_memctlr[3][0] = au_readl(MEM_STCFG3); 132 sleep_static_memctlr[3][0] = au_readl(MEM_STCFG3);
145 sleep_static_memctlr[3][1] = au_readl(MEM_STTIME3); 133 sleep_static_memctlr[3][1] = au_readl(MEM_STTIME3);
146 sleep_static_memctlr[3][2] = au_readl(MEM_STADDR3); 134 sleep_static_memctlr[3][2] = au_readl(MEM_STADDR3);
135
136#if defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200)
137 au1xxx_dbdma_suspend();
138#endif
147} 139}
148 140
149static void restore_core_regs(void) 141static void restore_core_regs(void)
150{ 142{
151 extern void restore_au1xxx_intctl(void); 143 /* restore clock configuration. Writing CPUPLL last will
152 extern void wakeup_counter0_adjust(void); 144 * stall a bit and stabilize other clocks (unless this is
145 * one of those Au1000 with a write-only PLL, where we dont
146 * have a valid value)
147 */
148 au_writel(sleep_sys_clocks[0], SYS_FREQCTRL0);
149 au_writel(sleep_sys_clocks[1], SYS_FREQCTRL1);
150 au_writel(sleep_sys_clocks[2], SYS_CLKSRC);
151 au_writel(sleep_sys_clocks[4], SYS_AUXPLL);
152 if (!au1xxx_cpu_has_pll_wo())
153 au_writel(sleep_sys_clocks[3], SYS_CPUPLL);
154 au_sync();
153 155
154 au_writel(sleep_aux_pll_cntrl, SYS_AUXPLL); au_sync(); 156 au_writel(sleep_sys_pinfunc, SYS_PINFUNC);
155 au_writel(sleep_cpu_pll_cntrl, SYS_CPUPLL); au_sync(); 157 au_sync();
156 au_writel(sleep_pin_function, SYS_PINFUNC); au_sync(); 158
159#ifndef CONFIG_SOC_AU1200
160 au_writel(sleep_usb[0], USB_HOST_CONFIG);
161 au_writel(sleep_usb[1], USBD_ENABLE);
162 au_sync();
163#else
164 /* enable accces to OTG memory */
165 au_writel(au_readl(USB_MSR_BASE + 4) | (1 << 6), USB_MSR_BASE + 4);
166 au_sync();
167
168 /* restore OTG caps and port mux. */
169 au_writel(sleep_usb[0], 0xb4020020 + 0); /* OTG_CAP */
170 au_sync();
171 au_writel(sleep_usb[1], 0xb4020020 + 4); /* OTG_MUX */
172 au_sync();
173#endif
157 174
158 /* Restore the static memory controller configuration. */ 175 /* Restore the static memory controller configuration. */
159 au_writel(sleep_static_memctlr[0][0], MEM_STCFG0); 176 au_writel(sleep_static_memctlr[0][0], MEM_STCFG0);
@@ -184,282 +201,17 @@ static void restore_core_regs(void)
184 } 201 }
185 202
186 restore_au1xxx_intctl(); 203 restore_au1xxx_intctl();
187 wakeup_counter0_adjust();
188}
189
190unsigned long suspend_mode;
191 204
192void wakeup_from_suspend(void) 205#if defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200)
193{ 206 au1xxx_dbdma_resume();
194 suspend_mode = 0; 207#endif
195} 208}
196 209
197int au_sleep(void) 210void au_sleep(void)
198{ 211{
199 unsigned long wakeup, flags;
200 extern void save_and_sleep(void);
201
202 spin_lock_irqsave(&pm_lock, flags);
203
204 save_core_regs(); 212 save_core_regs();
205 213 au1xxx_save_and_sleep();
206 flush_cache_all();
207
208 /**
209 ** The code below is all system dependent and we should probably
210 ** have a function call out of here to set this up. You need
211 ** to configure the GPIO or timer interrupts that will bring
212 ** you out of sleep.
213 ** For testing, the TOY counter wakeup is useful.
214 **/
215#if 0
216 au_writel(au_readl(SYS_PINSTATERD) & ~(1 << 11), SYS_PINSTATERD);
217
218 /* GPIO 6 can cause a wake up event */
219 wakeup = au_readl(SYS_WAKEMSK);
220 wakeup &= ~(1 << 8); /* turn off match20 wakeup */
221 wakeup |= 1 << 6; /* turn on GPIO 6 wakeup */
222#else
223 /* For testing, allow match20 to wake us up. */
224#ifdef SLEEP_TEST_TIMEOUT
225 wakeup_counter0_set(sleep_ticks);
226#endif
227 wakeup = 1 << 8; /* turn on match20 wakeup */
228 wakeup = 0;
229#endif
230 au_writel(1, SYS_WAKESRC); /* clear cause */
231 au_sync();
232 au_writel(wakeup, SYS_WAKEMSK);
233 au_sync();
234
235 save_and_sleep();
236
237 /*
238 * After a wakeup, the cpu vectors back to 0x1fc00000, so
239 * it's up to the boot code to get us back here.
240 */
241 restore_core_regs(); 214 restore_core_regs();
242 spin_unlock_irqrestore(&pm_lock, flags);
243 return 0;
244}
245
246static int pm_do_sleep(ctl_table *ctl, int write, struct file *file,
247 void __user *buffer, size_t *len, loff_t *ppos)
248{
249#ifdef SLEEP_TEST_TIMEOUT
250#define TMPBUFLEN2 16
251 char buf[TMPBUFLEN2], *p;
252#endif
253
254 if (!write)
255 *len = 0;
256 else {
257#ifdef SLEEP_TEST_TIMEOUT
258 if (*len > TMPBUFLEN2 - 1)
259 return -EFAULT;
260 if (copy_from_user(buf, buffer, *len))
261 return -EFAULT;
262 buf[*len] = 0;
263 p = buf;
264 sleep_ticks = simple_strtoul(p, &p, 0);
265#endif
266
267 au_sleep();
268 }
269 return 0;
270}
271
272static int pm_do_freq(ctl_table *ctl, int write, struct file *file,
273 void __user *buffer, size_t *len, loff_t *ppos)
274{
275 int retval = 0, i;
276 unsigned long val, pll;
277#define TMPBUFLEN 64
278#define MAX_CPU_FREQ 396
279 char buf[TMPBUFLEN], *p;
280 unsigned long flags, intc0_mask, intc1_mask;
281 unsigned long old_baud_base, old_cpu_freq, old_clk, old_refresh;
282 unsigned long new_baud_base, new_cpu_freq, new_clk, new_refresh;
283 unsigned long baud_rate;
284
285 spin_lock_irqsave(&pm_lock, flags);
286 if (!write)
287 *len = 0;
288 else {
289 /* Parse the new frequency */
290 if (*len > TMPBUFLEN - 1) {
291 spin_unlock_irqrestore(&pm_lock, flags);
292 return -EFAULT;
293 }
294 if (copy_from_user(buf, buffer, *len)) {
295 spin_unlock_irqrestore(&pm_lock, flags);
296 return -EFAULT;
297 }
298 buf[*len] = 0;
299 p = buf;
300 val = simple_strtoul(p, &p, 0);
301 if (val > MAX_CPU_FREQ) {
302 spin_unlock_irqrestore(&pm_lock, flags);
303 return -EFAULT;
304 }
305
306 pll = val / 12;
307 if ((pll > 33) || (pll < 7)) { /* 396 MHz max, 84 MHz min */
308 /* Revisit this for higher speed CPUs */
309 spin_unlock_irqrestore(&pm_lock, flags);
310 return -EFAULT;
311 }
312
313 old_baud_base = get_au1x00_uart_baud_base();
314 old_cpu_freq = get_au1x00_speed();
315
316 new_cpu_freq = pll * 12 * 1000000;
317 new_baud_base = (new_cpu_freq / (2 * ((int)(au_readl(SYS_POWERCTRL)
318 & 0x03) + 2) * 16));
319 set_au1x00_speed(new_cpu_freq);
320 set_au1x00_uart_baud_base(new_baud_base);
321
322 old_refresh = au_readl(MEM_SDREFCFG) & 0x1ffffff;
323 new_refresh = ((old_refresh * new_cpu_freq) / old_cpu_freq) |
324 (au_readl(MEM_SDREFCFG) & ~0x1ffffff);
325
326 au_writel(pll, SYS_CPUPLL);
327 au_sync_delay(1);
328 au_writel(new_refresh, MEM_SDREFCFG);
329 au_sync_delay(1);
330
331 for (i = 0; i < 4; i++)
332 if (au_readl(UART_BASE + UART_MOD_CNTRL +
333 i * 0x00100000) == 3) {
334 old_clk = au_readl(UART_BASE + UART_CLK +
335 i * 0x00100000);
336 baud_rate = old_baud_base / old_clk;
337 /*
338 * We won't get an exact baud rate and the error
339 * could be significant enough that our new
340 * calculation will result in a clock that will
341 * give us a baud rate that's too far off from
342 * what we really want.
343 */
344 if (baud_rate > 100000)
345 baud_rate = 115200;
346 else if (baud_rate > 50000)
347 baud_rate = 57600;
348 else if (baud_rate > 30000)
349 baud_rate = 38400;
350 else if (baud_rate > 17000)
351 baud_rate = 19200;
352 else
353 baud_rate = 9600;
354 new_clk = new_baud_base / baud_rate;
355 au_writel(new_clk, UART_BASE + UART_CLK +
356 i * 0x00100000);
357 au_sync_delay(10);
358 }
359 }
360
361 /*
362 * We don't want _any_ interrupts other than match20. Otherwise our
363 * au1000_calibrate_delay() calculation will be off, potentially a lot.
364 */
365 intc0_mask = save_local_and_disable(0);
366 intc1_mask = save_local_and_disable(1);
367 local_enable_irq(AU1000_TOY_MATCH2_INT);
368 spin_unlock_irqrestore(&pm_lock, flags);
369 au1000_calibrate_delay();
370 restore_local_and_enable(0, intc0_mask);
371 restore_local_and_enable(1, intc1_mask);
372
373 return retval;
374} 215}
375 216
376
377static struct ctl_table pm_table[] = {
378 {
379 .ctl_name = CTL_UNNUMBERED,
380 .procname = "sleep",
381 .data = NULL,
382 .maxlen = 0,
383 .mode = 0600,
384 .proc_handler = &pm_do_sleep
385 },
386 {
387 .ctl_name = CTL_UNNUMBERED,
388 .procname = "freq",
389 .data = NULL,
390 .maxlen = 0,
391 .mode = 0600,
392 .proc_handler = &pm_do_freq
393 },
394 {}
395};
396
397static struct ctl_table pm_dir_table[] = {
398 {
399 .ctl_name = CTL_UNNUMBERED,
400 .procname = "pm",
401 .mode = 0555,
402 .child = pm_table
403 },
404 {}
405};
406
407/*
408 * Initialize power interface
409 */
410static int __init pm_init(void)
411{
412 register_sysctl_table(pm_dir_table);
413 return 0;
414}
415
416__initcall(pm_init);
417
418/*
419 * This is right out of init/main.c
420 */
421
422/*
423 * This is the number of bits of precision for the loops_per_jiffy.
424 * Each bit takes on average 1.5/HZ seconds. This (like the original)
425 * is a little better than 1%.
426 */
427#define LPS_PREC 8
428
429static void au1000_calibrate_delay(void)
430{
431 unsigned long ticks, loopbit;
432 int lps_precision = LPS_PREC;
433
434 loops_per_jiffy = 1 << 12;
435
436 while (loops_per_jiffy <<= 1) {
437 /* Wait for "start of" clock tick */
438 ticks = jiffies;
439 while (ticks == jiffies)
440 /* nothing */ ;
441 /* Go ... */
442 ticks = jiffies;
443 __delay(loops_per_jiffy);
444 ticks = jiffies - ticks;
445 if (ticks)
446 break;
447 }
448
449 /*
450 * Do a binary approximation to get loops_per_jiffy set to be equal
451 * one clock (up to lps_precision bits)
452 */
453 loops_per_jiffy >>= 1;
454 loopbit = loops_per_jiffy;
455 while (lps_precision-- && (loopbit >>= 1)) {
456 loops_per_jiffy |= loopbit;
457 ticks = jiffies;
458 while (ticks == jiffies);
459 ticks = jiffies;
460 __delay(loops_per_jiffy);
461 if (jiffies != ticks) /* longer than 1 tick */
462 loops_per_jiffy &= ~loopbit;
463 }
464}
465#endif /* CONFIG_PM */ 217#endif /* CONFIG_PM */
diff --git a/arch/mips/alchemy/common/reset.c b/arch/mips/alchemy/common/reset.c
index d555429c8d6f..0191c936cb5e 100644
--- a/arch/mips/alchemy/common/reset.c
+++ b/arch/mips/alchemy/common/reset.c
@@ -31,8 +31,6 @@
31 31
32#include <asm/mach-au1x00/au1000.h> 32#include <asm/mach-au1x00/au1000.h>
33 33
34extern int au_sleep(void);
35
36void au1000_restart(char *command) 34void au1000_restart(char *command)
37{ 35{
38 /* Set all integrated peripherals to disabled states */ 36 /* Set all integrated peripherals to disabled states */
diff --git a/arch/mips/alchemy/common/setup.c b/arch/mips/alchemy/common/setup.c
index 1ac6b06f42a3..3f036b3d400e 100644
--- a/arch/mips/alchemy/common/setup.c
+++ b/arch/mips/alchemy/common/setup.c
@@ -35,7 +35,6 @@
35#include <asm/time.h> 35#include <asm/time.h>
36 36
37#include <au1000.h> 37#include <au1000.h>
38#include <prom.h>
39 38
40extern void __init board_setup(void); 39extern void __init board_setup(void);
41extern void au1000_restart(char *); 40extern void au1000_restart(char *);
@@ -45,80 +44,34 @@ extern void set_cpuspec(void);
45 44
46void __init plat_mem_setup(void) 45void __init plat_mem_setup(void)
47{ 46{
48 struct cpu_spec *sp; 47 unsigned long est_freq;
49 char *argptr;
50 unsigned long prid, cpufreq, bclk;
51 48
52 set_cpuspec(); 49 /* determine core clock */
53 sp = cur_cpu_spec[0]; 50 est_freq = au1xxx_calc_clock();
51 est_freq += 5000; /* round */
52 est_freq -= est_freq % 10000;
53 printk(KERN_INFO "(PRId %08x) @ %lu.%02lu MHz\n", read_c0_prid(),
54 est_freq / 1000000, ((est_freq % 1000000) * 100) / 1000000);
54 55
55 board_setup(); /* board specific setup */ 56 _machine_restart = au1000_restart;
56 57 _machine_halt = au1000_halt;
57 prid = read_c0_prid(); 58 pm_power_off = au1000_power_off;
58 if (sp->cpu_pll_wo)
59#ifdef CONFIG_SOC_AU1000_FREQUENCY
60 cpufreq = CONFIG_SOC_AU1000_FREQUENCY / 1000000;
61#else
62 cpufreq = 396;
63#endif
64 else
65 cpufreq = (au_readl(SYS_CPUPLL) & 0x3F) * 12;
66 printk(KERN_INFO "(PRID %08lx) @ %ld MHz\n", prid, cpufreq);
67 59
68 if (sp->cpu_bclk) { 60 board_setup(); /* board specific setup */
69 /* Enable BCLK switching */
70 bclk = au_readl(SYS_POWERCTRL);
71 au_writel(bclk | 0x60, SYS_POWERCTRL);
72 printk(KERN_INFO "BCLK switching enabled!\n");
73 }
74 61
75 if (sp->cpu_od) 62 if (au1xxx_cpu_needs_config_od())
76 /* Various early Au1xx0 errata corrected by this */ 63 /* Various early Au1xx0 errata corrected by this */
77 set_c0_config(1 << 19); /* Set Config[OD] */ 64 set_c0_config(1 << 19); /* Set Config[OD] */
78 else 65 else
79 /* Clear to obtain best system bus performance */ 66 /* Clear to obtain best system bus performance */
80 clear_c0_config(1 << 19); /* Clear Config[OD] */ 67 clear_c0_config(1 << 19); /* Clear Config[OD] */
81 68
82 argptr = prom_getcmdline();
83
84#ifdef CONFIG_SERIAL_8250_CONSOLE
85 argptr = strstr(argptr, "console=");
86 if (argptr == NULL) {
87 argptr = prom_getcmdline();
88 strcat(argptr, " console=ttyS0,115200");
89 }
90#endif
91
92#ifdef CONFIG_FB_AU1100
93 argptr = strstr(argptr, "video=");
94 if (argptr == NULL) {
95 argptr = prom_getcmdline();
96 /* default panel */
97 /*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/
98 }
99#endif
100
101#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000)
102 /* au1000 does not support vra, au1500 and au1100 do */
103 strcat(argptr, " au1000_audio=vra");
104 argptr = prom_getcmdline();
105#endif
106 _machine_restart = au1000_restart;
107 _machine_halt = au1000_halt;
108 pm_power_off = au1000_power_off;
109
110 /* IO/MEM resources. */ 69 /* IO/MEM resources. */
111 set_io_port_base(0); 70 set_io_port_base(0);
112 ioport_resource.start = IOPORT_RESOURCE_START; 71 ioport_resource.start = IOPORT_RESOURCE_START;
113 ioport_resource.end = IOPORT_RESOURCE_END; 72 ioport_resource.end = IOPORT_RESOURCE_END;
114 iomem_resource.start = IOMEM_RESOURCE_START; 73 iomem_resource.start = IOMEM_RESOURCE_START;
115 iomem_resource.end = IOMEM_RESOURCE_END; 74 iomem_resource.end = IOMEM_RESOURCE_END;
116
117 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_E0S);
118 au_writel(SYS_CNTRL_E0 | SYS_CNTRL_EN0, SYS_COUNTER_CNTRL);
119 au_sync();
120 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T0S);
121 au_writel(0, SYS_TOYTRIM);
122} 75}
123 76
124#if defined(CONFIG_64BIT_PHYS_ADDR) 77#if defined(CONFIG_64BIT_PHYS_ADDR)
diff --git a/arch/mips/alchemy/common/sleeper.S b/arch/mips/alchemy/common/sleeper.S
index 3006e270c8bc..4f4b16741d12 100644
--- a/arch/mips/alchemy/common/sleeper.S
+++ b/arch/mips/alchemy/common/sleeper.S
@@ -15,16 +15,17 @@
15#include <asm/regdef.h> 15#include <asm/regdef.h>
16#include <asm/stackframe.h> 16#include <asm/stackframe.h>
17 17
18 .extern __flush_cache_all
19
18 .text 20 .text
19 .set macro 21 .set noreorder
20 .set noat 22 .set noat
21 .align 5 23 .align 5
22 24
23/* Save all of the processor general registers and go to sleep. 25/* Save all of the processor general registers and go to sleep.
24 * A wakeup condition will get us back here to restore the registers. 26 * A wakeup condition will get us back here to restore the registers.
25 */ 27 */
26LEAF(save_and_sleep) 28LEAF(au1xxx_save_and_sleep)
27
28 subu sp, PT_SIZE 29 subu sp, PT_SIZE
29 sw $1, PT_R1(sp) 30 sw $1, PT_R1(sp)
30 sw $2, PT_R2(sp) 31 sw $2, PT_R2(sp)
@@ -33,14 +34,6 @@ LEAF(save_and_sleep)
33 sw $5, PT_R5(sp) 34 sw $5, PT_R5(sp)
34 sw $6, PT_R6(sp) 35 sw $6, PT_R6(sp)
35 sw $7, PT_R7(sp) 36 sw $7, PT_R7(sp)
36 sw $8, PT_R8(sp)
37 sw $9, PT_R9(sp)
38 sw $10, PT_R10(sp)
39 sw $11, PT_R11(sp)
40 sw $12, PT_R12(sp)
41 sw $13, PT_R13(sp)
42 sw $14, PT_R14(sp)
43 sw $15, PT_R15(sp)
44 sw $16, PT_R16(sp) 37 sw $16, PT_R16(sp)
45 sw $17, PT_R17(sp) 38 sw $17, PT_R17(sp)
46 sw $18, PT_R18(sp) 39 sw $18, PT_R18(sp)
@@ -49,12 +42,9 @@ LEAF(save_and_sleep)
49 sw $21, PT_R21(sp) 42 sw $21, PT_R21(sp)
50 sw $22, PT_R22(sp) 43 sw $22, PT_R22(sp)
51 sw $23, PT_R23(sp) 44 sw $23, PT_R23(sp)
52 sw $24, PT_R24(sp)
53 sw $25, PT_R25(sp)
54 sw $26, PT_R26(sp) 45 sw $26, PT_R26(sp)
55 sw $27, PT_R27(sp) 46 sw $27, PT_R27(sp)
56 sw $28, PT_R28(sp) 47 sw $28, PT_R28(sp)
57 sw $29, PT_R29(sp)
58 sw $30, PT_R30(sp) 48 sw $30, PT_R30(sp)
59 sw $31, PT_R31(sp) 49 sw $31, PT_R31(sp)
60 mfc0 k0, CP0_STATUS 50 mfc0 k0, CP0_STATUS
@@ -66,20 +56,26 @@ LEAF(save_and_sleep)
66 mfc0 k0, CP0_CONFIG 56 mfc0 k0, CP0_CONFIG
67 sw k0, 0x14(sp) 57 sw k0, 0x14(sp)
68 58
59 /* flush caches to make sure context is in memory */
60 la t1, __flush_cache_all
61 lw t0, 0(t1)
62 jalr t0
63 nop
64
69 /* Now set up the scratch registers so the boot rom will 65 /* Now set up the scratch registers so the boot rom will
70 * return to this point upon wakeup. 66 * return to this point upon wakeup.
67 * sys_scratch0 : SP
68 * sys_scratch1 : RA
71 */ 69 */
72 la k0, 1f 70 lui t3, 0xb190 /* sys_xxx */
73 lui k1, 0xb190 71 sw sp, 0x0018(t3)
74 ori k1, 0x18 72 la k0, 3f /* resume path */
75 sw sp, 0(k1) 73 sw k0, 0x001c(t3)
76 ori k1, 0x1c
77 sw k0, 0(k1)
78 74
79/* Put SDRAM into self refresh. Preload instructions into cache, 75 /* Put SDRAM into self refresh: Preload instructions into cache,
80 * issue a precharge, then auto refresh, then sleep commands to it. 76 * issue a precharge, auto/self refresh, then sleep commands to it.
81 */ 77 */
82 la t0, sdsleep 78 la t0, 1f
83 .set mips3 79 .set mips3
84 cache 0x14, 0(t0) 80 cache 0x14, 0(t0)
85 cache 0x14, 32(t0) 81 cache 0x14, 32(t0)
@@ -87,24 +83,57 @@ LEAF(save_and_sleep)
87 cache 0x14, 96(t0) 83 cache 0x14, 96(t0)
88 .set mips0 84 .set mips0
89 85
90sdsleep: 861: lui a0, 0xb400 /* mem_xxx */
91 lui k0, 0xb400 87#if defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1100) || \
92 sw zero, 0x001c(k0) /* Precharge */ 88 defined(CONFIG_SOC_AU1500)
93 sw zero, 0x0020(k0) /* Auto refresh */ 89 sw zero, 0x001c(a0) /* Precharge */
94 sw zero, 0x0030(k0) /* SDRAM sleep */ 90 sync
91 sw zero, 0x0020(a0) /* Auto Refresh */
92 sync
93 sw zero, 0x0030(a0) /* Sleep */
94 sync
95#endif
96
97#if defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200)
98 sw zero, 0x08c0(a0) /* Precharge */
95 sync 99 sync
100 sw zero, 0x08d0(a0) /* Self Refresh */
101 sync
102
103 /* wait for sdram to enter self-refresh mode */
104 lui t0, 0x0100
1052: lw t1, 0x0850(a0) /* mem_sdstat */
106 and t2, t1, t0
107 beq t2, zero, 2b
108 nop
96 109
97 lui k1, 0xb190 110 /* disable SDRAM clocks */
98 sw zero, 0x0078(k1) /* get ready to sleep */ 111 lui t0, 0xcfff
112 ori t0, t0, 0xffff
113 lw t1, 0x0840(a0) /* mem_sdconfiga */
114 and t1, t0, t1 /* clear CE[1:0] */
115 sw t1, 0x0840(a0) /* mem_sdconfiga */
99 sync 116 sync
100 sw zero, 0x007c(k1) /* Put processor to sleep */ 117#endif
118
119 /* put power supply and processor to sleep */
120 sw zero, 0x0078(t3) /* sys_slppwr */
121 sync
122 sw zero, 0x007c(t3) /* sys_sleep */
101 sync 123 sync
124 nop
125 nop
126 nop
127 nop
128 nop
129 nop
130 nop
131 nop
102 132
103 /* This is where we return upon wakeup. 133 /* This is where we return upon wakeup.
104 * Reload all of the registers and return. 134 * Reload all of the registers and return.
105 */ 135 */
1061: nop 1363: lw k0, 0x20(sp)
107 lw k0, 0x20(sp)
108 mtc0 k0, CP0_STATUS 137 mtc0 k0, CP0_STATUS
109 lw k0, 0x1c(sp) 138 lw k0, 0x1c(sp)
110 mtc0 k0, CP0_CONTEXT 139 mtc0 k0, CP0_CONTEXT
@@ -113,10 +142,11 @@ sdsleep:
113 lw k0, 0x14(sp) 142 lw k0, 0x14(sp)
114 mtc0 k0, CP0_CONFIG 143 mtc0 k0, CP0_CONFIG
115 144
116 /* We need to catch the ealry Alchemy SOCs with 145 /* We need to catch the early Alchemy SOCs with
117 * the write-only Config[OD] bit and set it back to one... 146 * the write-only Config[OD] bit and set it back to one...
118 */ 147 */
119 jal au1x00_fixup_config_od 148 jal au1x00_fixup_config_od
149 nop
120 lw $1, PT_R1(sp) 150 lw $1, PT_R1(sp)
121 lw $2, PT_R2(sp) 151 lw $2, PT_R2(sp)
122 lw $3, PT_R3(sp) 152 lw $3, PT_R3(sp)
@@ -124,14 +154,6 @@ sdsleep:
124 lw $5, PT_R5(sp) 154 lw $5, PT_R5(sp)
125 lw $6, PT_R6(sp) 155 lw $6, PT_R6(sp)
126 lw $7, PT_R7(sp) 156 lw $7, PT_R7(sp)
127 lw $8, PT_R8(sp)
128 lw $9, PT_R9(sp)
129 lw $10, PT_R10(sp)
130 lw $11, PT_R11(sp)
131 lw $12, PT_R12(sp)
132 lw $13, PT_R13(sp)
133 lw $14, PT_R14(sp)
134 lw $15, PT_R15(sp)
135 lw $16, PT_R16(sp) 157 lw $16, PT_R16(sp)
136 lw $17, PT_R17(sp) 158 lw $17, PT_R17(sp)
137 lw $18, PT_R18(sp) 159 lw $18, PT_R18(sp)
@@ -140,15 +162,11 @@ sdsleep:
140 lw $21, PT_R21(sp) 162 lw $21, PT_R21(sp)
141 lw $22, PT_R22(sp) 163 lw $22, PT_R22(sp)
142 lw $23, PT_R23(sp) 164 lw $23, PT_R23(sp)
143 lw $24, PT_R24(sp)
144 lw $25, PT_R25(sp)
145 lw $26, PT_R26(sp) 165 lw $26, PT_R26(sp)
146 lw $27, PT_R27(sp) 166 lw $27, PT_R27(sp)
147 lw $28, PT_R28(sp) 167 lw $28, PT_R28(sp)
148 lw $29, PT_R29(sp)
149 lw $30, PT_R30(sp) 168 lw $30, PT_R30(sp)
150 lw $31, PT_R31(sp) 169 lw $31, PT_R31(sp)
151 addiu sp, PT_SIZE
152
153 jr ra 170 jr ra
154END(save_and_sleep) 171 addiu sp, PT_SIZE
172END(au1xxx_save_and_sleep)
diff --git a/arch/mips/alchemy/common/time.c b/arch/mips/alchemy/common/time.c
index 563d9390a872..f58d4ffb8945 100644
--- a/arch/mips/alchemy/common/time.c
+++ b/arch/mips/alchemy/common/time.c
@@ -1,5 +1,7 @@
1/* 1/*
2 * Copyright (C) 2008 Manuel Lauss <mano@roarinelk.homelinux.net>
2 * 3 *
4 * Previous incarnations were:
3 * Copyright (C) 2001, 2006, 2008 MontaVista Software, <source@mvista.com> 5 * Copyright (C) 2001, 2006, 2008 MontaVista Software, <source@mvista.com>
4 * Copied and modified Carsten Langgaard's time.c 6 * Copied and modified Carsten Langgaard's time.c
5 * 7 *
@@ -23,244 +25,141 @@
23 * 25 *
24 * ######################################################################## 26 * ########################################################################
25 * 27 *
26 * Setting up the clock on the MIPS boards. 28 * Clocksource/event using the 32.768kHz-clocked Counter1 ('RTC' in the
27 * 29 * databooks). Firmware/Board init code must enable the counters in the
28 * We provide the clock interrupt processing and the timer offset compute 30 * counter control register, otherwise the CP0 counter clocksource/event
29 * functions. If CONFIG_PM is selected, we also ensure the 32KHz timer is 31 * will be installed instead (and use of 'wait' instruction is prohibited).
30 * available. -- Dan
31 */ 32 */
32 33
33#include <linux/types.h> 34#include <linux/clockchips.h>
34#include <linux/init.h> 35#include <linux/clocksource.h>
36#include <linux/interrupt.h>
35#include <linux/spinlock.h> 37#include <linux/spinlock.h>
36 38
37#include <asm/mipsregs.h>
38#include <asm/time.h> 39#include <asm/time.h>
39#include <asm/mach-au1x00/au1000.h> 40#include <asm/mach-au1x00/au1000.h>
40 41
41static int no_au1xxx_32khz; 42/* 32kHz clock enabled and detected */
42extern int allow_au1k_wait; /* default off for CP0 Counter */ 43#define CNTR_OK (SYS_CNTRL_E0 | SYS_CNTRL_32S)
43
44#ifdef CONFIG_PM
45#if HZ < 100 || HZ > 1000
46#error "unsupported HZ value! Must be in [100,1000]"
47#endif
48#define MATCH20_INC (328 * 100 / HZ) /* magic number 328 is for HZ=100... */
49static unsigned long last_pc0, last_match20;
50#endif
51 44
52static DEFINE_SPINLOCK(time_lock); 45extern int allow_au1k_wait; /* default off for CP0 Counter */
53
54unsigned long wtimer;
55 46
56#ifdef CONFIG_PM 47static cycle_t au1x_counter1_read(void)
57static irqreturn_t counter0_irq(int irq, void *dev_id)
58{ 48{
59 unsigned long pc0; 49 return au_readl(SYS_RTCREAD);
60 int time_elapsed;
61 static int jiffie_drift;
62
63 if (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_M20) {
64 /* should never happen! */
65 printk(KERN_WARNING "counter 0 w status error\n");
66 return IRQ_NONE;
67 }
68
69 pc0 = au_readl(SYS_TOYREAD);
70 if (pc0 < last_match20)
71 /* counter overflowed */
72 time_elapsed = (0xffffffff - last_match20) + pc0;
73 else
74 time_elapsed = pc0 - last_match20;
75
76 while (time_elapsed > 0) {
77 do_timer(1);
78#ifndef CONFIG_SMP
79 update_process_times(user_mode(get_irq_regs()));
80#endif
81 time_elapsed -= MATCH20_INC;
82 last_match20 += MATCH20_INC;
83 jiffie_drift++;
84 }
85
86 last_pc0 = pc0;
87 au_writel(last_match20 + MATCH20_INC, SYS_TOYMATCH2);
88 au_sync();
89
90 /*
91 * Our counter ticks at 10.009765625 ms/tick, we we're running
92 * almost 10 uS too slow per tick.
93 */
94
95 if (jiffie_drift >= 999) {
96 jiffie_drift -= 999;
97 do_timer(1); /* increment jiffies by one */
98#ifndef CONFIG_SMP
99 update_process_times(user_mode(get_irq_regs()));
100#endif
101 }
102
103 return IRQ_HANDLED;
104} 50}
105 51
106struct irqaction counter0_action = { 52static struct clocksource au1x_counter1_clocksource = {
107 .handler = counter0_irq, 53 .name = "alchemy-counter1",
108 .flags = IRQF_DISABLED, 54 .read = au1x_counter1_read,
109 .name = "alchemy-toy", 55 .mask = CLOCKSOURCE_MASK(32),
110 .dev_id = NULL, 56 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
57 .rating = 100,
111}; 58};
112 59
113/* When we wakeup from sleep, we have to "catch up" on all of the 60static int au1x_rtcmatch2_set_next_event(unsigned long delta,
114 * timer ticks we have missed. 61 struct clock_event_device *cd)
115 */
116void wakeup_counter0_adjust(void)
117{ 62{
118 unsigned long pc0; 63 delta += au_readl(SYS_RTCREAD);
119 int time_elapsed; 64 /* wait for register access */
120 65 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_M21)
121 pc0 = au_readl(SYS_TOYREAD); 66 ;
122 if (pc0 < last_match20) 67 au_writel(delta, SYS_RTCMATCH2);
123 /* counter overflowed */
124 time_elapsed = (0xffffffff - last_match20) + pc0;
125 else
126 time_elapsed = pc0 - last_match20;
127
128 while (time_elapsed > 0) {
129 time_elapsed -= MATCH20_INC;
130 last_match20 += MATCH20_INC;
131 }
132
133 last_pc0 = pc0;
134 au_writel(last_match20 + MATCH20_INC, SYS_TOYMATCH2);
135 au_sync(); 68 au_sync();
136 69
70 return 0;
137} 71}
138 72
139/* This is just for debugging to set the timer for a sleep delay. */ 73static void au1x_rtcmatch2_set_mode(enum clock_event_mode mode,
140void wakeup_counter0_set(int ticks) 74 struct clock_event_device *cd)
141{ 75{
142 unsigned long pc0;
143
144 pc0 = au_readl(SYS_TOYREAD);
145 last_pc0 = pc0;
146 au_writel(last_match20 + (MATCH20_INC * ticks), SYS_TOYMATCH2);
147 au_sync();
148} 76}
149#endif
150 77
151/* 78static irqreturn_t au1x_rtcmatch2_irq(int irq, void *dev_id)
152 * I haven't found anyone that doesn't use a 12 MHz source clock,
153 * but just in case.....
154 */
155#define AU1000_SRC_CLK 12000000
156
157/*
158 * We read the real processor speed from the PLL. This is important
159 * because it is more accurate than computing it from the 32 KHz
160 * counter, if it exists. If we don't have an accurate processor
161 * speed, all of the peripherals that derive their clocks based on
162 * this advertised speed will introduce error and sometimes not work
163 * properly. This function is futher convoluted to still allow configurations
164 * to do that in case they have really, really old silicon with a
165 * write-only PLL register, that we need the 32 KHz when power management
166 * "wait" is enabled, and we need to detect if the 32 KHz isn't present
167 * but requested......got it? :-) -- Dan
168 */
169unsigned long calc_clock(void)
170{ 79{
171 unsigned long cpu_speed; 80 struct clock_event_device *cd = dev_id;
172 unsigned long flags; 81 cd->event_handler(cd);
173 unsigned long counter; 82 return IRQ_HANDLED;
174 83}
175 spin_lock_irqsave(&time_lock, flags);
176
177 /* Power management cares if we don't have a 32 KHz counter. */
178 no_au1xxx_32khz = 0;
179 counter = au_readl(SYS_COUNTER_CNTRL);
180 if (counter & SYS_CNTRL_E0) {
181 int trim_divide = 16;
182
183 au_writel(counter | SYS_CNTRL_EN1, SYS_COUNTER_CNTRL);
184
185 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S);
186 /* RTC now ticks at 32.768/16 kHz */
187 au_writel(trim_divide - 1, SYS_RTCTRIM);
188 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S);
189 84
190 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); 85static struct clock_event_device au1x_rtcmatch2_clockdev = {
191 au_writel(0, SYS_TOYWRITE); 86 .name = "rtcmatch2",
192 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); 87 .features = CLOCK_EVT_FEAT_ONESHOT,
193 } else 88 .rating = 100,
194 no_au1xxx_32khz = 1; 89 .irq = AU1000_RTC_MATCH2_INT,
90 .set_next_event = au1x_rtcmatch2_set_next_event,
91 .set_mode = au1x_rtcmatch2_set_mode,
92 .cpumask = CPU_MASK_ALL_PTR,
93};
195 94
196 /* 95static struct irqaction au1x_rtcmatch2_irqaction = {
197 * On early Au1000, sys_cpupll was write-only. Since these 96 .handler = au1x_rtcmatch2_irq,
198 * silicon versions of Au1000 are not sold by AMD, we don't bend 97 .flags = IRQF_DISABLED | IRQF_TIMER,
199 * over backwards trying to determine the frequency. 98 .name = "timer",
200 */ 99 .dev_id = &au1x_rtcmatch2_clockdev,
201 if (cur_cpu_spec[0]->cpu_pll_wo) 100};
202#ifdef CONFIG_SOC_AU1000_FREQUENCY
203 cpu_speed = CONFIG_SOC_AU1000_FREQUENCY;
204#else
205 cpu_speed = 396000000;
206#endif
207 else
208 cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK;
209 /* On Alchemy CPU:counter ratio is 1:1 */
210 mips_hpt_frequency = cpu_speed;
211 /* Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16) */
212 set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)
213 & 0x03) + 2) * 16));
214 spin_unlock_irqrestore(&time_lock, flags);
215 return cpu_speed;
216}
217 101
218void __init plat_time_init(void) 102void __init plat_time_init(void)
219{ 103{
220 unsigned int est_freq = calc_clock(); 104 struct clock_event_device *cd = &au1x_rtcmatch2_clockdev;
221 105 unsigned long t;
222 est_freq += 5000; /* round */ 106
223 est_freq -= est_freq%10000; 107 /* Check if firmware (YAMON, ...) has enabled 32kHz and clock
224 printk(KERN_INFO "CPU frequency %u.%02u MHz\n", 108 * has been detected. If so install the rtcmatch2 clocksource,
225 est_freq / 1000000, ((est_freq % 1000000) * 100) / 1000000); 109 * otherwise don't bother. Note that both bits being set is by
226 set_au1x00_speed(est_freq); 110 * no means a definite guarantee that the counters actually work
227 set_au1x00_lcd_clock(); /* program the LCD clock */ 111 * (the 32S bit seems to be stuck set to 1 once a single clock-
112 * edge is detected, hence the timeouts).
113 */
114 if (CNTR_OK != (au_readl(SYS_COUNTER_CNTRL) & CNTR_OK))
115 goto cntr_err;
228 116
229#ifdef CONFIG_PM
230 /* 117 /*
231 * setup counter 0, since it keeps ticking after a 118 * setup counter 1 (RTC) to tick at full speed
232 * 'wait' instruction has been executed. The CP0 timer and
233 * counter 1 do NOT continue running after 'wait'
234 *
235 * It's too early to call request_irq() here, so we handle
236 * counter 0 interrupt as a special irq and it doesn't show
237 * up under /proc/interrupts.
238 *
239 * Check to ensure we really have a 32 KHz oscillator before
240 * we do this.
241 */ 119 */
242 if (no_au1xxx_32khz) 120 t = 0xffffff;
243 printk(KERN_WARNING "WARNING: no 32KHz clock found.\n"); 121 while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S) && --t)
244 else { 122 asm volatile ("nop");
245 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C0S); 123 if (!t)
246 au_writel(0, SYS_TOYWRITE); 124 goto cntr_err;
247 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C0S);
248
249 au_writel(au_readl(SYS_WAKEMSK) | (1 << 8), SYS_WAKEMSK);
250 au_writel(~0, SYS_WAKESRC);
251 au_sync();
252 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_M20);
253 125
254 /* Setup match20 to interrupt once every HZ */ 126 au_writel(0, SYS_RTCTRIM); /* 32.768 kHz */
255 last_pc0 = last_match20 = au_readl(SYS_TOYREAD); 127 au_sync();
256 au_writel(last_match20 + MATCH20_INC, SYS_TOYMATCH2);
257 au_sync();
258 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_M20);
259 setup_irq(AU1000_TOY_MATCH2_INT, &counter0_action);
260 128
261 /* We can use the real 'wait' instruction. */ 129 t = 0xffffff;
262 allow_au1k_wait = 1; 130 while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && --t)
263 } 131 asm volatile ("nop");
132 if (!t)
133 goto cntr_err;
134 au_writel(0, SYS_RTCWRITE);
135 au_sync();
264 136
265#endif 137 t = 0xffffff;
138 while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && --t)
139 asm volatile ("nop");
140 if (!t)
141 goto cntr_err;
142
143 /* register counter1 clocksource and event device */
144 clocksource_set_clock(&au1x_counter1_clocksource, 32768);
145 clocksource_register(&au1x_counter1_clocksource);
146
147 cd->shift = 32;
148 cd->mult = div_sc(32768, NSEC_PER_SEC, cd->shift);
149 cd->max_delta_ns = clockevent_delta2ns(0xffffffff, cd);
150 cd->min_delta_ns = clockevent_delta2ns(8, cd); /* ~0.25ms */
151 clockevents_register_device(cd);
152 setup_irq(AU1000_RTC_MATCH2_INT, &au1x_rtcmatch2_irqaction);
153
154 printk(KERN_INFO "Alchemy clocksource installed\n");
155
156 /* can now use 'wait' */
157 allow_au1k_wait = 1;
158 return;
159
160cntr_err:
161 /* counters unusable, use C0 counter */
162 r4k_clockevent_init();
163 init_r4k_clocksource();
164 allow_au1k_wait = 0;
266} 165}
diff --git a/arch/mips/alchemy/db1x00/init.c b/arch/mips/alchemy/db1x00/init.c
deleted file mode 100644
index 847413514964..000000000000
--- a/arch/mips/alchemy/db1x00/init.c
+++ /dev/null
@@ -1,62 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * PB1000 board setup
4 *
5 * Copyright 2001, 2008 MontaVista Software Inc.
6 * Author: MontaVista Software, Inc. <source@mvista.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/kernel.h>
31
32#include <asm/bootinfo.h>
33
34#include <prom.h>
35
36const char *get_system_type(void)
37{
38#ifdef CONFIG_MIPS_BOSPORUS
39 return "Alchemy Bosporus Gateway Reference";
40#else
41 return "Alchemy Db1x00";
42#endif
43}
44
45void __init prom_init(void)
46{
47 unsigned char *memsize_str;
48 unsigned long memsize;
49
50 prom_argc = fw_arg0;
51 prom_argv = (char **)fw_arg1;
52 prom_envp = (char **)fw_arg2;
53
54 prom_init_cmdline();
55
56 memsize_str = prom_getenv("memsize");
57 if (!memsize_str)
58 memsize = 0x04000000;
59 else
60 strict_strtol(memsize_str, 0, &memsize);
61 add_memory_region(0, memsize, BOOT_MEM_RAM);
62}
diff --git a/arch/mips/alchemy/devboards/Makefile b/arch/mips/alchemy/devboards/Makefile
new file mode 100644
index 000000000000..730f9f2b30e8
--- /dev/null
+++ b/arch/mips/alchemy/devboards/Makefile
@@ -0,0 +1,18 @@
1#
2# Alchemy Develboards
3#
4
5obj-y += prom.o
6obj-$(CONFIG_PM) += pm.o
7obj-$(CONFIG_MIPS_PB1000) += pb1000/
8obj-$(CONFIG_MIPS_PB1100) += pb1100/
9obj-$(CONFIG_MIPS_PB1200) += pb1200/
10obj-$(CONFIG_MIPS_PB1500) += pb1500/
11obj-$(CONFIG_MIPS_PB1550) += pb1550/
12obj-$(CONFIG_MIPS_DB1000) += db1x00/
13obj-$(CONFIG_MIPS_DB1100) += db1x00/
14obj-$(CONFIG_MIPS_DB1200) += pb1200/
15obj-$(CONFIG_MIPS_DB1500) += db1x00/
16obj-$(CONFIG_MIPS_DB1550) += db1x00/
17obj-$(CONFIG_MIPS_BOSPORUS) += db1x00/
18obj-$(CONFIG_MIPS_MIRAGE) += db1x00/
diff --git a/arch/mips/alchemy/db1x00/Makefile b/arch/mips/alchemy/devboards/db1x00/Makefile
index 274db3b55d82..432241ab8677 100644
--- a/arch/mips/alchemy/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
8lib-y := init.o board_setup.o irqmap.o 8obj-y := board_setup.o irqmap.o
diff --git a/arch/mips/alchemy/db1x00/board_setup.c b/arch/mips/alchemy/devboards/db1x00/board_setup.c
index 9e5ccbbfcedd..a75ffbf99f25 100644
--- a/arch/mips/alchemy/db1x00/board_setup.c
+++ b/arch/mips/alchemy/devboards/db1x00/board_setup.c
@@ -32,8 +32,20 @@
32#include <asm/mach-au1x00/au1000.h> 32#include <asm/mach-au1x00/au1000.h>
33#include <asm/mach-db1x00/db1x00.h> 33#include <asm/mach-db1x00/db1x00.h>
34 34
35#include <prom.h>
36
37
35static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR; 38static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
36 39
40const char *get_system_type(void)
41{
42#ifdef CONFIG_MIPS_BOSPORUS
43 return "Alchemy Bosporus Gateway Reference";
44#else
45 return "Alchemy Db1x00";
46#endif
47}
48
37void board_reset(void) 49void board_reset(void)
38{ 50{
39 /* Hit BCSR.SW_RESET[RESET] */ 51 /* Hit BCSR.SW_RESET[RESET] */
@@ -43,6 +55,31 @@ void board_reset(void)
43void __init board_setup(void) 55void __init board_setup(void)
44{ 56{
45 u32 pin_func = 0; 57 u32 pin_func = 0;
58 char *argptr;
59
60 argptr = prom_getcmdline();
61#ifdef CONFIG_SERIAL_8250_CONSOLE
62 argptr = strstr(argptr, "console=");
63 if (argptr == NULL) {
64 argptr = prom_getcmdline();
65 strcat(argptr, " console=ttyS0,115200");
66 }
67#endif
68
69#ifdef CONFIG_FB_AU1100
70 argptr = strstr(argptr, "video=");
71 if (argptr == NULL) {
72 argptr = prom_getcmdline();
73 /* default panel */
74 /*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/
75 }
76#endif
77
78#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000)
79 /* au1000 does not support vra, au1500 and au1100 do */
80 strcat(argptr, " au1000_audio=vra");
81 argptr = prom_getcmdline();
82#endif
46 83
47 /* Not valid for Au1550 */ 84 /* Not valid for Au1550 */
48#if defined(CONFIG_IRDA) && \ 85#if defined(CONFIG_IRDA) && \
diff --git a/arch/mips/alchemy/db1x00/irqmap.c b/arch/mips/alchemy/devboards/db1x00/irqmap.c
index 94c090e8bf7a..0b09025087c6 100644
--- a/arch/mips/alchemy/db1x00/irqmap.c
+++ b/arch/mips/alchemy/devboards/db1x00/irqmap.c
@@ -27,6 +27,7 @@
27 */ 27 */
28 28
29#include <linux/init.h> 29#include <linux/init.h>
30#include <linux/interrupt.h>
30 31
31#include <asm/mach-au1x00/au1000.h> 32#include <asm/mach-au1x00/au1000.h>
32 33
@@ -66,21 +67,24 @@ struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
66 67
67#ifndef CONFIG_MIPS_MIRAGE 68#ifndef CONFIG_MIPS_MIRAGE
68#ifdef CONFIG_MIPS_DB1550 69#ifdef CONFIG_MIPS_DB1550
69 { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 IRQ# */ 70 { AU1000_GPIO_3, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 IRQ# */
70 { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 IRQ# */ 71 { AU1000_GPIO_5, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 IRQ# */
71#else 72#else
72 { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 Fully_Interted# */ 73 { AU1000_GPIO_0, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 Fully_Interted# */
73 { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 STSCHG# */ 74 { AU1000_GPIO_1, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 STSCHG# */
74 { AU1000_GPIO_2, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 IRQ# */ 75 { AU1000_GPIO_2, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 IRQ# */
75 76
76 { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 Fully_Interted# */ 77 { AU1000_GPIO_3, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 Fully_Interted# */
77 { AU1000_GPIO_4, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 STSCHG# */ 78 { AU1000_GPIO_4, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 STSCHG# */
78 { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 IRQ# */ 79 { AU1000_GPIO_5, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 IRQ# */
79#endif 80#endif
80#else 81#else
81 { AU1000_GPIO_7, INTC_INT_RISE_EDGE, 0 }, /* touchscreen pen down */ 82 { AU1000_GPIO_7, IRQF_TRIGGER_RISING, 0 }, /* touchscreen pen down */
82#endif 83#endif
83 84
84}; 85};
85 86
86int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); 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/pb1000/Makefile b/arch/mips/alchemy/devboards/pb1000/Makefile
index 99bbec0ca41b..97c6615ba2bb 100644
--- a/arch/mips/alchemy/pb1000/Makefile
+++ b/arch/mips/alchemy/devboards/pb1000/Makefile
@@ -5,4 +5,4 @@
5# Makefile for the Alchemy Semiconductor Pb1000 board. 5# Makefile for the Alchemy Semiconductor Pb1000 board.
6# 6#
7 7
8lib-y := init.o board_setup.o irqmap.o 8obj-y := board_setup.o
diff --git a/arch/mips/alchemy/pb1000/board_setup.c b/arch/mips/alchemy/devboards/pb1000/board_setup.c
index 25df167a95b3..aed2fdecc709 100644
--- a/arch/mips/alchemy/pb1000/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1000/board_setup.c
@@ -23,22 +23,48 @@
23 * 675 Mass Ave, Cambridge, MA 02139, USA. 23 * 675 Mass Ave, Cambridge, MA 02139, USA.
24 */ 24 */
25 25
26#include <linux/init.h>
27#include <linux/delay.h> 26#include <linux/delay.h>
28 27#include <linux/init.h>
28#include <linux/interrupt.h>
29#include <asm/mach-au1x00/au1000.h> 29#include <asm/mach-au1x00/au1000.h>
30#include <asm/mach-pb1x00/pb1000.h> 30#include <asm/mach-pb1x00/pb1000.h>
31#include <prom.h>
32
33
34struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
35 { AU1000_GPIO_15, IRQF_TRIGGER_LOW, 0 },
36};
37
38
39const char *get_system_type(void)
40{
41 return "Alchemy Pb1000";
42}
31 43
32void board_reset(void) 44void board_reset(void)
33{ 45{
34} 46}
35 47
48void __init board_init_irq(void)
49{
50 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
51}
52
36void __init board_setup(void) 53void __init board_setup(void)
37{ 54{
38 u32 pin_func, static_cfg0; 55 u32 pin_func, static_cfg0;
39 u32 sys_freqctrl, sys_clksrc; 56 u32 sys_freqctrl, sys_clksrc;
40 u32 prid = read_c0_prid(); 57 u32 prid = read_c0_prid();
41 58
59#ifdef CONFIG_SERIAL_8250_CONSOLE
60 char *argptr = prom_getcmdline();
61 argptr = strstr(argptr, "console=");
62 if (argptr == NULL) {
63 argptr = prom_getcmdline();
64 strcat(argptr, " console=ttyS0,115200");
65 }
66#endif
67
42 /* Set AUX clock to 12 MHz * 8 = 96 MHz */ 68 /* Set AUX clock to 12 MHz * 8 = 96 MHz */
43 au_writel(8, SYS_AUXPLL); 69 au_writel(8, SYS_AUXPLL);
44 au_writel(0, SYS_PINSTATERD); 70 au_writel(0, SYS_PINSTATERD);
diff --git a/arch/mips/alchemy/pb1100/Makefile b/arch/mips/alchemy/devboards/pb1100/Makefile
index 793e97c49e46..c586dd7e91dc 100644
--- a/arch/mips/alchemy/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
8lib-y := init.o board_setup.o irqmap.o 8obj-y := board_setup.o
diff --git a/arch/mips/alchemy/pb1100/board_setup.c b/arch/mips/alchemy/devboards/pb1100/board_setup.c
index c0bfd59a7a36..4df57fae15d4 100644
--- a/arch/mips/alchemy/pb1100/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1100/board_setup.c
@@ -25,19 +25,66 @@
25 25
26#include <linux/init.h> 26#include <linux/init.h>
27#include <linux/delay.h> 27#include <linux/delay.h>
28#include <linux/interrupt.h>
28 29
29#include <asm/mach-au1x00/au1000.h> 30#include <asm/mach-au1x00/au1000.h>
30#include <asm/mach-pb1x00/pb1100.h> 31#include <asm/mach-pb1x00/pb1100.h>
31 32
33#include <prom.h>
34
35
36struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
37 { AU1000_GPIO_9, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card Fully_Inserted# */
38 { AU1000_GPIO_10, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card STSCHG# */
39 { AU1000_GPIO_11, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card IRQ# */
40 { AU1000_GPIO_13, IRQF_TRIGGER_LOW, 0 }, /* DC_IRQ# */
41};
42
43
44const char *get_system_type(void)
45{
46 return "Alchemy Pb1100";
47}
48
32void board_reset(void) 49void board_reset(void)
33{ 50{
34 /* Hit BCSR.RST_VDDI[SOFT_RESET] */ 51 /* Hit BCSR.RST_VDDI[SOFT_RESET] */
35 au_writel(0x00000000, PB1100_RST_VDDI); 52 au_writel(0x00000000, PB1100_RST_VDDI);
36} 53}
37 54
55void __init board_init_irq(void)
56{
57 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
58}
59
38void __init board_setup(void) 60void __init board_setup(void)
39{ 61{
40 volatile void __iomem *base = (volatile void __iomem *)0xac000000UL; 62 volatile void __iomem *base = (volatile void __iomem *)0xac000000UL;
63 char *argptr;
64
65 argptr = prom_getcmdline();
66#ifdef CONFIG_SERIAL_8250_CONSOLE
67 argptr = strstr(argptr, "console=");
68 if (argptr == NULL) {
69 argptr = prom_getcmdline();
70 strcat(argptr, " console=ttyS0,115200");
71 }
72#endif
73
74#ifdef CONFIG_FB_AU1100
75 argptr = strstr(argptr, "video=");
76 if (argptr == NULL) {
77 argptr = prom_getcmdline();
78 /* default panel */
79 /*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/
80 }
81#endif
82
83#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000)
84 /* au1000 does not support vra, au1500 and au1100 do */
85 strcat(argptr, " au1000_audio=vra");
86 argptr = prom_getcmdline();
87#endif
41 88
42 /* Set AUX clock to 12 MHz * 8 = 96 MHz */ 89 /* Set AUX clock to 12 MHz * 8 = 96 MHz */
43 au_writel(8, SYS_AUXPLL); 90 au_writel(8, SYS_AUXPLL);
diff --git a/arch/mips/alchemy/pb1200/Makefile b/arch/mips/alchemy/devboards/pb1200/Makefile
index d678adf7ce85..c8c3a99fb68a 100644
--- a/arch/mips/alchemy/pb1200/Makefile
+++ b/arch/mips/alchemy/devboards/pb1200/Makefile
@@ -2,7 +2,6 @@
2# Makefile for the Alchemy Semiconductor Pb1200/DBAu1200 boards. 2# Makefile for the Alchemy Semiconductor Pb1200/DBAu1200 boards.
3# 3#
4 4
5lib-y := init.o board_setup.o irqmap.o 5obj-y := board_setup.o irqmap.o platform.o
6obj-y += platform.o
7 6
8EXTRA_CFLAGS += -Werror 7EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/alchemy/pb1200/board_setup.c b/arch/mips/alchemy/devboards/pb1200/board_setup.c
index 6cb2115059ad..94e6b7e7753d 100644
--- a/arch/mips/alchemy/pb1200/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1200/board_setup.c
@@ -30,8 +30,11 @@
30#include <prom.h> 30#include <prom.h>
31#include <au1xxx.h> 31#include <au1xxx.h>
32 32
33extern void _board_init_irq(void); 33
34extern void (*board_init_irq)(void); 34const char *get_system_type(void)
35{
36 return "Alchemy Pb1200";
37}
35 38
36void board_reset(void) 39void board_reset(void)
37{ 40{
@@ -41,7 +44,19 @@ void board_reset(void)
41 44
42void __init board_setup(void) 45void __init board_setup(void)
43{ 46{
44 char *argptr = NULL; 47 char *argptr;
48
49 argptr = prom_getcmdline();
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
45 60
46#if 0 61#if 0
47 { 62 {
@@ -99,16 +114,6 @@ void __init board_setup(void)
99 } 114 }
100#endif 115#endif
101 116
102#ifdef CONFIG_FB_AU1200
103 argptr = prom_getcmdline();
104#ifdef CONFIG_MIPS_PB1200
105 strcat(argptr, " video=au1200fb:panel:bs");
106#endif
107#ifdef CONFIG_MIPS_DB1200
108 strcat(argptr, " video=au1200fb:panel:bs");
109#endif
110#endif
111
112 /* 117 /*
113 * The Pb1200 development board uses external MUX for PSC0 to 118 * The Pb1200 development board uses external MUX for PSC0 to
114 * support SMB/SPI. bcsr->resets bit 12: 0=SMB 1=SPI 119 * support SMB/SPI. bcsr->resets bit 12: 0=SMB 1=SPI
@@ -124,9 +129,6 @@ void __init board_setup(void)
124#ifdef CONFIG_MIPS_DB1200 129#ifdef CONFIG_MIPS_DB1200
125 printk(KERN_INFO "AMD Alchemy Db1200 Board\n"); 130 printk(KERN_INFO "AMD Alchemy Db1200 Board\n");
126#endif 131#endif
127
128 /* Setup Pb1200 External Interrupt Controller */
129 board_init_irq = _board_init_irq;
130} 132}
131 133
132int board_au1200fb_panel(void) 134int board_au1200fb_panel(void)
diff --git a/arch/mips/alchemy/pb1200/irqmap.c b/arch/mips/alchemy/devboards/pb1200/irqmap.c
index 2a505ad8715b..fe47498da280 100644
--- a/arch/mips/alchemy/pb1200/irqmap.c
+++ b/arch/mips/alchemy/devboards/pb1200/irqmap.c
@@ -40,91 +40,65 @@
40 40
41struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { 41struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
42 /* This is external interrupt cascade */ 42 /* This is external interrupt cascade */
43 { AU1000_GPIO_7, INTC_INT_LOW_LEVEL, 0 }, 43 { AU1000_GPIO_7, IRQF_TRIGGER_LOW, 0 },
44}; 44};
45 45
46int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map);
47 46
48/* 47/*
49 * Support for External interrupts on the Pb1200 Development platform. 48 * Support for External interrupts on the Pb1200 Development platform.
50 */ 49 */
51static volatile int pb1200_cascade_en;
52 50
53irqreturn_t pb1200_cascade_handler(int irq, void *dev_id) 51static void pb1200_cascade_handler(unsigned int irq, struct irq_desc *d)
54{ 52{
55 unsigned short bisr = bcsr->int_status; 53 unsigned short bisr = bcsr->int_status;
56 int extirq_nr = 0;
57
58 /* Clear all the edge interrupts. This has no effect on level. */
59 bcsr->int_status = bisr;
60 for ( ; bisr; bisr &= bisr - 1) {
61 extirq_nr = PB1200_INT_BEGIN + __ffs(bisr);
62 /* Ack and dispatch IRQ */
63 do_IRQ(extirq_nr);
64 }
65
66 return IRQ_RETVAL(1);
67}
68 54
69inline void pb1200_enable_irq(unsigned int irq_nr) 55 for ( ; bisr; bisr &= bisr - 1)
70{ 56 generic_handle_irq(PB1200_INT_BEGIN + __ffs(bisr));
71 bcsr->intset_mask = 1 << (irq_nr - PB1200_INT_BEGIN);
72 bcsr->intset = 1 << (irq_nr - PB1200_INT_BEGIN);
73} 57}
74 58
75inline void pb1200_disable_irq(unsigned int irq_nr) 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)
76{ 63{
77 bcsr->intclr_mask = 1 << (irq_nr - PB1200_INT_BEGIN); 64 bcsr->intclr_mask = 1 << (irq_nr - PB1200_INT_BEGIN);
78 bcsr->intclr = 1 << (irq_nr - PB1200_INT_BEGIN); 65 bcsr->intclr = 1 << (irq_nr - PB1200_INT_BEGIN);
66 au_sync();
79} 67}
80 68
81static unsigned int pb1200_setup_cascade(void) 69static void pb1200_maskack_irq(unsigned int irq_nr)
82{
83 return request_irq(AU1000_GPIO_7, &pb1200_cascade_handler,
84 0, "Pb1200 Cascade", &pb1200_cascade_handler);
85}
86
87static unsigned int pb1200_startup_irq(unsigned int irq)
88{ 70{
89 if (++pb1200_cascade_en == 1) { 71 bcsr->intclr_mask = 1 << (irq_nr - PB1200_INT_BEGIN);
90 int res; 72 bcsr->intclr = 1 << (irq_nr - PB1200_INT_BEGIN);
91 73 bcsr->int_status = 1 << (irq_nr - PB1200_INT_BEGIN); /* ack */
92 res = pb1200_setup_cascade(); 74 au_sync();
93 if (res)
94 return res;
95 }
96
97 pb1200_enable_irq(irq);
98
99 return 0;
100} 75}
101 76
102static void pb1200_shutdown_irq(unsigned int irq) 77static void pb1200_unmask_irq(unsigned int irq_nr)
103{ 78{
104 pb1200_disable_irq(irq); 79 bcsr->intset = 1 << (irq_nr - PB1200_INT_BEGIN);
105 if (--pb1200_cascade_en == 0) 80 bcsr->intset_mask = 1 << (irq_nr - PB1200_INT_BEGIN);
106 free_irq(AU1000_GPIO_7, &pb1200_cascade_handler); 81 au_sync();
107} 82}
108 83
109static struct irq_chip external_irq_type = { 84static struct irq_chip pb1200_cpld_irq_type = {
110#ifdef CONFIG_MIPS_PB1200 85#ifdef CONFIG_MIPS_PB1200
111 .name = "Pb1200 Ext", 86 .name = "Pb1200 Ext",
112#endif 87#endif
113#ifdef CONFIG_MIPS_DB1200 88#ifdef CONFIG_MIPS_DB1200
114 .name = "Db1200 Ext", 89 .name = "Db1200 Ext",
115#endif 90#endif
116 .startup = pb1200_startup_irq, 91 .mask = pb1200_mask_irq,
117 .shutdown = pb1200_shutdown_irq, 92 .mask_ack = pb1200_maskack_irq,
118 .ack = pb1200_disable_irq, 93 .unmask = pb1200_unmask_irq,
119 .mask = pb1200_disable_irq,
120 .mask_ack = pb1200_disable_irq,
121 .unmask = pb1200_enable_irq,
122}; 94};
123 95
124void _board_init_irq(void) 96void __init board_init_irq(void)
125{ 97{
126 unsigned int irq; 98 unsigned int irq;
127 99
100 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
101
128#ifdef CONFIG_MIPS_PB1200 102#ifdef CONFIG_MIPS_PB1200
129 /* We have a problem with CPLD rev 3. */ 103 /* We have a problem with CPLD rev 3. */
130 if (((bcsr->whoami & BCSR_WHOAMI_CPLD) >> 4) <= 3) { 104 if (((bcsr->whoami & BCSR_WHOAMI_CPLD) >> 4) <= 3) {
@@ -146,15 +120,15 @@ void _board_init_irq(void)
146 panic("Game over. Your score is 0."); 120 panic("Game over. Your score is 0.");
147 } 121 }
148#endif 122#endif
123 /* mask & disable & ack all */
124 bcsr->intclr_mask = 0xffff;
125 bcsr->intclr = 0xffff;
126 bcsr->int_status = 0xffff;
127 au_sync();
149 128
150 for (irq = PB1200_INT_BEGIN; irq <= PB1200_INT_END; irq++) { 129 for (irq = PB1200_INT_BEGIN; irq <= PB1200_INT_END; irq++)
151 set_irq_chip_and_handler(irq, &external_irq_type, 130 set_irq_chip_and_handler_name(irq, &pb1200_cpld_irq_type,
152 handle_level_irq); 131 handle_level_irq, "level");
153 pb1200_disable_irq(irq);
154 }
155 132
156 /* 133 set_irq_chained_handler(AU1000_GPIO_7, pb1200_cascade_handler);
157 * GPIO_7 can not be hooked here, so it is hooked upon first
158 * request of any source attached to the cascade.
159 */
160} 134}
diff --git a/arch/mips/alchemy/pb1200/platform.c b/arch/mips/alchemy/devboards/pb1200/platform.c
index 95303297c534..95303297c534 100644
--- a/arch/mips/alchemy/pb1200/platform.c
+++ b/arch/mips/alchemy/devboards/pb1200/platform.c
diff --git a/arch/mips/alchemy/pb1500/Makefile b/arch/mips/alchemy/devboards/pb1500/Makefile
index 602f38df20bb..173b419a7479 100644
--- a/arch/mips/alchemy/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
8lib-y := init.o board_setup.o irqmap.o 8obj-y := board_setup.o
diff --git a/arch/mips/alchemy/pb1500/board_setup.c b/arch/mips/alchemy/devboards/pb1500/board_setup.c
index 035771c6e5b8..fed3b093156a 100644
--- a/arch/mips/alchemy/pb1500/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1500/board_setup.c
@@ -25,20 +25,64 @@
25 25
26#include <linux/init.h> 26#include <linux/init.h>
27#include <linux/delay.h> 27#include <linux/delay.h>
28#include <linux/interrupt.h>
28 29
29#include <asm/mach-au1x00/au1000.h> 30#include <asm/mach-au1x00/au1000.h>
30#include <asm/mach-pb1x00/pb1500.h> 31#include <asm/mach-pb1x00/pb1500.h>
31 32
33#include <prom.h>
34
35
36char irq_tab_alchemy[][5] __initdata = {
37 [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT370 */
38 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */
39};
40
41struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
42 { AU1500_GPIO_204, IRQF_TRIGGER_HIGH, 0 },
43 { AU1500_GPIO_201, IRQF_TRIGGER_LOW, 0 },
44 { AU1500_GPIO_202, IRQF_TRIGGER_LOW, 0 },
45 { AU1500_GPIO_203, IRQF_TRIGGER_LOW, 0 },
46 { AU1500_GPIO_205, IRQF_TRIGGER_LOW, 0 },
47};
48
49
50const char *get_system_type(void)
51{
52 return "Alchemy Pb1500";
53}
54
32void board_reset(void) 55void board_reset(void)
33{ 56{
34 /* Hit BCSR.RST_VDDI[SOFT_RESET] */ 57 /* Hit BCSR.RST_VDDI[SOFT_RESET] */
35 au_writel(0x00000000, PB1500_RST_VDDI); 58 au_writel(0x00000000, PB1500_RST_VDDI);
36} 59}
37 60
61void __init board_init_irq(void)
62{
63 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
64}
65
38void __init board_setup(void) 66void __init board_setup(void)
39{ 67{
40 u32 pin_func; 68 u32 pin_func;
41 u32 sys_freqctrl, sys_clksrc; 69 u32 sys_freqctrl, sys_clksrc;
70 char *argptr;
71
72 argptr = prom_getcmdline();
73#ifdef CONFIG_SERIAL_8250_CONSOLE
74 argptr = strstr(argptr, "console=");
75 if (argptr == NULL) {
76 argptr = prom_getcmdline();
77 strcat(argptr, " console=ttyS0,115200");
78 }
79#endif
80
81#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000)
82 /* au1000 does not support vra, au1500 and au1100 do */
83 strcat(argptr, " au1000_audio=vra");
84 argptr = prom_getcmdline();
85#endif
42 86
43 sys_clksrc = sys_freqctrl = pin_func = 0; 87 sys_clksrc = sys_freqctrl = pin_func = 0;
44 /* Set AUX clock to 12 MHz * 8 = 96 MHz */ 88 /* Set AUX clock to 12 MHz * 8 = 96 MHz */
diff --git a/arch/mips/alchemy/pb1550/Makefile b/arch/mips/alchemy/devboards/pb1550/Makefile
index 7d8beca87fa5..cff95bcdb2ca 100644
--- a/arch/mips/alchemy/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
8lib-y := init.o board_setup.o irqmap.o 8obj-y := board_setup.o
diff --git a/arch/mips/alchemy/pb1550/board_setup.c b/arch/mips/alchemy/devboards/pb1550/board_setup.c
index 0ed76b64b6ab..b6e9e7d247a3 100644
--- a/arch/mips/alchemy/pb1550/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1550/board_setup.c
@@ -28,20 +28,54 @@
28 */ 28 */
29 29
30#include <linux/init.h> 30#include <linux/init.h>
31#include <linux/interrupt.h>
31 32
32#include <asm/mach-au1x00/au1000.h> 33#include <asm/mach-au1x00/au1000.h>
33#include <asm/mach-pb1x00/pb1550.h> 34#include <asm/mach-pb1x00/pb1550.h>
34 35
36#include <prom.h>
37
38
39char irq_tab_alchemy[][5] __initdata = {
40 [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */
41 [13] = { -1, INTA, INTB, INTC, 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};
48
49const char *get_system_type(void)
50{
51 return "Alchemy Pb1550";
52}
53
35void board_reset(void) 54void board_reset(void)
36{ 55{
37 /* Hit BCSR.SYSTEM[RESET] */ 56 /* Hit BCSR.SYSTEM[RESET] */
38 au_writew(au_readw(0xAF00001C) & ~BCSR_SYSTEM_RESET, 0xAF00001C); 57 au_writew(au_readw(0xAF00001C) & ~BCSR_SYSTEM_RESET, 0xAF00001C);
39} 58}
40 59
60void __init board_init_irq(void)
61{
62 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
63}
64
41void __init board_setup(void) 65void __init board_setup(void)
42{ 66{
43 u32 pin_func; 67 u32 pin_func;
44 68
69#ifdef CONFIG_SERIAL_8250_CONSOLE
70 char *argptr;
71 argptr = prom_getcmdline();
72 argptr = strstr(argptr, "console=");
73 if (argptr == NULL) {
74 argptr = prom_getcmdline();
75 strcat(argptr, " console=ttyS0,115200");
76 }
77#endif
78
45 /* 79 /*
46 * Enable PSC1 SYNC for AC'97. Normaly done in audio driver, 80 * Enable PSC1 SYNC for AC'97. Normaly done in audio driver,
47 * but it is board specific code, so put it here. 81 * but it is board specific code, so put it here.
diff --git a/arch/mips/alchemy/devboards/pm.c b/arch/mips/alchemy/devboards/pm.c
new file mode 100644
index 000000000000..d5eb9c325ed0
--- /dev/null
+++ b/arch/mips/alchemy/devboards/pm.c
@@ -0,0 +1,229 @@
1/*
2 * Alchemy Development Board example suspend userspace interface.
3 *
4 * (c) 2008 Manuel Lauss <mano@roarinelk.homelinux.net>
5 */
6
7#include <linux/init.h>
8#include <linux/kobject.h>
9#include <linux/suspend.h>
10#include <linux/sysfs.h>
11#include <asm/mach-au1x00/au1000.h>
12
13/*
14 * Generic suspend userspace interface for Alchemy development boards.
15 * This code exports a few sysfs nodes under /sys/power/db1x/ which
16 * can be used by userspace to en/disable all au1x-provided wakeup
17 * sources and configure the timeout after which the the TOYMATCH2 irq
18 * is to trigger a wakeup.
19 */
20
21
22static unsigned long db1x_pm_sleep_secs;
23static unsigned long db1x_pm_wakemsk;
24static unsigned long db1x_pm_last_wakesrc;
25
26static int db1x_pm_enter(suspend_state_t state)
27{
28 /* enable GPIO based wakeup */
29 au_writel(1, SYS_PININPUTEN);
30
31 /* clear and setup wake cause and source */
32 au_writel(0, SYS_WAKEMSK);
33 au_sync();
34 au_writel(0, SYS_WAKESRC);
35 au_sync();
36
37 au_writel(db1x_pm_wakemsk, SYS_WAKEMSK);
38 au_sync();
39
40 /* setup 1Hz-timer-based wakeup: wait for reg access */
41 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_M20)
42 asm volatile ("nop");
43
44 au_writel(au_readl(SYS_TOYREAD) + db1x_pm_sleep_secs, SYS_TOYMATCH2);
45 au_sync();
46
47 /* wait for value to really hit the register */
48 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_M20)
49 asm volatile ("nop");
50
51 /* ...and now the sandman can come! */
52 au_sleep();
53
54 return 0;
55}
56
57static int db1x_pm_begin(suspend_state_t state)
58{
59 if (!db1x_pm_wakemsk) {
60 printk(KERN_ERR "db1x: no wakeup source activated!\n");
61 return -EINVAL;
62 }
63
64 return 0;
65}
66
67static void db1x_pm_end(void)
68{
69 /* read and store wakeup source, the clear the register. To
70 * be able to clear it, WAKEMSK must be cleared first.
71 */
72 db1x_pm_last_wakesrc = au_readl(SYS_WAKESRC);
73
74 au_writel(0, SYS_WAKEMSK);
75 au_writel(0, SYS_WAKESRC);
76 au_sync();
77
78}
79
80static struct platform_suspend_ops db1x_pm_ops = {
81 .valid = suspend_valid_only_mem,
82 .begin = db1x_pm_begin,
83 .enter = db1x_pm_enter,
84 .end = db1x_pm_end,
85};
86
87#define ATTRCMP(x) (0 == strcmp(attr->attr.name, #x))
88
89static ssize_t db1x_pmattr_show(struct kobject *kobj,
90 struct kobj_attribute *attr,
91 char *buf)
92{
93 int idx;
94
95 if (ATTRCMP(timer_timeout))
96 return sprintf(buf, "%lu\n", db1x_pm_sleep_secs);
97
98 else if (ATTRCMP(timer))
99 return sprintf(buf, "%u\n",
100 !!(db1x_pm_wakemsk & SYS_WAKEMSK_M2));
101
102 else if (ATTRCMP(wakesrc))
103 return sprintf(buf, "%lu\n", db1x_pm_last_wakesrc);
104
105 else if (ATTRCMP(gpio0) || ATTRCMP(gpio1) || ATTRCMP(gpio2) ||
106 ATTRCMP(gpio3) || ATTRCMP(gpio4) || ATTRCMP(gpio5) ||
107 ATTRCMP(gpio6) || ATTRCMP(gpio7)) {
108 idx = (attr->attr.name)[4] - '0';
109 return sprintf(buf, "%d\n",
110 !!(db1x_pm_wakemsk & SYS_WAKEMSK_GPIO(idx)));
111
112 } else if (ATTRCMP(wakemsk)) {
113 return sprintf(buf, "%08lx\n", db1x_pm_wakemsk);
114 }
115
116 return -ENOENT;
117}
118
119static ssize_t db1x_pmattr_store(struct kobject *kobj,
120 struct kobj_attribute *attr,
121 const char *instr,
122 size_t bytes)
123{
124 unsigned long l;
125 int tmp;
126
127 if (ATTRCMP(timer_timeout)) {
128 tmp = strict_strtoul(instr, 0, &l);
129 if (tmp)
130 return tmp;
131
132 db1x_pm_sleep_secs = l;
133
134 } else if (ATTRCMP(timer)) {
135 if (instr[0] != '0')
136 db1x_pm_wakemsk |= SYS_WAKEMSK_M2;
137 else
138 db1x_pm_wakemsk &= ~SYS_WAKEMSK_M2;
139
140 } else if (ATTRCMP(gpio0) || ATTRCMP(gpio1) || ATTRCMP(gpio2) ||
141 ATTRCMP(gpio3) || ATTRCMP(gpio4) || ATTRCMP(gpio5) ||
142 ATTRCMP(gpio6) || ATTRCMP(gpio7)) {
143 tmp = (attr->attr.name)[4] - '0';
144 if (instr[0] != '0') {
145 db1x_pm_wakemsk |= SYS_WAKEMSK_GPIO(tmp);
146 } else {
147 db1x_pm_wakemsk &= ~SYS_WAKEMSK_GPIO(tmp);
148 }
149
150 } else if (ATTRCMP(wakemsk)) {
151 tmp = strict_strtoul(instr, 0, &l);
152 if (tmp)
153 return tmp;
154
155 db1x_pm_wakemsk = l & 0x0000003f;
156
157 } else
158 bytes = -ENOENT;
159
160 return bytes;
161}
162
163#define ATTR(x) \
164 static struct kobj_attribute x##_attribute = \
165 __ATTR(x, 0664, db1x_pmattr_show, \
166 db1x_pmattr_store);
167
168ATTR(gpio0) /* GPIO-based wakeup enable */
169ATTR(gpio1)
170ATTR(gpio2)
171ATTR(gpio3)
172ATTR(gpio4)
173ATTR(gpio5)
174ATTR(gpio6)
175ATTR(gpio7)
176ATTR(timer) /* TOYMATCH2-based wakeup enable */
177ATTR(timer_timeout) /* timer-based wakeup timeout value, in seconds */
178ATTR(wakesrc) /* contents of SYS_WAKESRC after last wakeup */
179ATTR(wakemsk) /* direct access to SYS_WAKEMSK */
180
181#define ATTR_LIST(x) & x ## _attribute.attr
182static struct attribute *db1x_pmattrs[] = {
183 ATTR_LIST(gpio0),
184 ATTR_LIST(gpio1),
185 ATTR_LIST(gpio2),
186 ATTR_LIST(gpio3),
187 ATTR_LIST(gpio4),
188 ATTR_LIST(gpio5),
189 ATTR_LIST(gpio6),
190 ATTR_LIST(gpio7),
191 ATTR_LIST(timer),
192 ATTR_LIST(timer_timeout),
193 ATTR_LIST(wakesrc),
194 ATTR_LIST(wakemsk),
195 NULL, /* terminator */
196};
197
198static struct attribute_group db1x_pmattr_group = {
199 .name = "db1x",
200 .attrs = db1x_pmattrs,
201};
202
203/*
204 * Initialize suspend interface
205 */
206static int __init pm_init(void)
207{
208 /* init TOY to tick at 1Hz if not already done. No need to wait
209 * for confirmation since there's plenty of time from here to
210 * the next suspend cycle.
211 */
212 if (au_readl(SYS_TOYTRIM) != 32767) {
213 au_writel(32767, SYS_TOYTRIM);
214 au_sync();
215 }
216
217 db1x_pm_last_wakesrc = au_readl(SYS_WAKESRC);
218
219 au_writel(0, SYS_WAKESRC);
220 au_sync();
221 au_writel(0, SYS_WAKEMSK);
222 au_sync();
223
224 suspend_set_ops(&db1x_pm_ops);
225
226 return sysfs_create_group(power_kobj, &db1x_pmattr_group);
227}
228
229late_initcall(pm_init);
diff --git a/arch/mips/alchemy/pb1200/init.c b/arch/mips/alchemy/devboards/prom.c
index e9b2a0fd48ae..0042bd6b1d7d 100644
--- a/arch/mips/alchemy/pb1200/init.c
+++ b/arch/mips/alchemy/devboards/prom.c
@@ -1,9 +1,9 @@
1/* 1/*
2 * Common code used by all Alchemy develboards.
2 * 3 *
3 * BRIEF MODULE DESCRIPTION 4 * Extracted from files which had this to say:
4 * PB1200 board setup
5 * 5 *
6 * Copyright 2001, 2008 MontaVista Software Inc. 6 * Copyright 2000, 2008 MontaVista Software Inc.
7 * Author: MontaVista Software, Inc. <source@mvista.com> 7 * Author: MontaVista Software, Inc. <source@mvista.com>
8 * 8 *
9 * This program is free software; you can redistribute it and/or modify it 9 * This program is free software; you can redistribute it and/or modify it
@@ -29,15 +29,19 @@
29 29
30#include <linux/init.h> 30#include <linux/init.h>
31#include <linux/kernel.h> 31#include <linux/kernel.h>
32
33#include <asm/bootinfo.h> 32#include <asm/bootinfo.h>
34 33#include <asm/mach-au1x00/au1000.h>
35#include <prom.h> 34#include <prom.h>
36 35
37const char *get_system_type(void) 36#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_DB1000) || \
38{ 37 defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_DB1100) || \
39 return "Alchemy Pb1200"; 38 defined(CONFIG_MIPS_PB1500) || defined(CONFIG_MIPS_DB1500) || \
40} 39 defined(CONFIG_MIPS_BOSPORUS) || defined(CONFIG_MIPS_MIRAGE)
40#define ALCHEMY_BOARD_DEFAULT_MEMSIZE 0x04000000
41
42#else /* Au1550/Au1200-based develboards */
43#define ALCHEMY_BOARD_DEFAULT_MEMSIZE 0x08000000
44#endif
41 45
42void __init prom_init(void) 46void __init prom_init(void)
43{ 47{
@@ -51,8 +55,8 @@ void __init prom_init(void)
51 prom_init_cmdline(); 55 prom_init_cmdline();
52 memsize_str = prom_getenv("memsize"); 56 memsize_str = prom_getenv("memsize");
53 if (!memsize_str) 57 if (!memsize_str)
54 memsize = 0x08000000; 58 memsize = ALCHEMY_BOARD_DEFAULT_MEMSIZE;
55 else 59 else
56 strict_strtol(memsize_str, 0, &memsize); 60 strict_strtoul(memsize_str, 0, &memsize);
57 add_memory_region(0, memsize, BOOT_MEM_RAM); 61 add_memory_region(0, memsize, BOOT_MEM_RAM);
58} 62}
diff --git a/arch/mips/alchemy/mtx-1/board_setup.c b/arch/mips/alchemy/mtx-1/board_setup.c
index 3f8079186cf2..8ed1ae12bc55 100644
--- a/arch/mips/alchemy/mtx-1/board_setup.c
+++ b/arch/mips/alchemy/mtx-1/board_setup.c
@@ -32,6 +32,8 @@
32 32
33#include <asm/mach-au1x00/au1000.h> 33#include <asm/mach-au1x00/au1000.h>
34 34
35#include <prom.h>
36
35extern int (*board_pci_idsel)(unsigned int devsel, int assert); 37extern int (*board_pci_idsel)(unsigned int devsel, int assert);
36int mtx1_pci_idsel(unsigned int devsel, int assert); 38int mtx1_pci_idsel(unsigned int devsel, int assert);
37 39
@@ -43,6 +45,16 @@ void board_reset(void)
43 45
44void __init board_setup(void) 46void __init board_setup(void)
45{ 47{
48#ifdef CONFIG_SERIAL_8250_CONSOLE
49 char *argptr;
50 argptr = prom_getcmdline();
51 argptr = strstr(argptr, "console=");
52 if (argptr == NULL) {
53 argptr = prom_getcmdline();
54 strcat(argptr, " console=ttyS0,115200");
55 }
56#endif
57
46#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) 58#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
47 /* Enable USB power switch */ 59 /* Enable USB power switch */
48 au_writel(au_readl(GPIO2_DIR) | 0x10, GPIO2_DIR); 60 au_writel(au_readl(GPIO2_DIR) | 0x10, GPIO2_DIR);
diff --git a/arch/mips/alchemy/mtx-1/init.c b/arch/mips/alchemy/mtx-1/init.c
index 3bae13c28954..5e871c8d9e96 100644
--- a/arch/mips/alchemy/mtx-1/init.c
+++ b/arch/mips/alchemy/mtx-1/init.c
@@ -55,6 +55,6 @@ void __init prom_init(void)
55 if (!memsize_str) 55 if (!memsize_str)
56 memsize = 0x04000000; 56 memsize = 0x04000000;
57 else 57 else
58 strict_strtol(memsize_str, 0, &memsize); 58 strict_strtoul(memsize_str, 0, &memsize);
59 add_memory_region(0, memsize, BOOT_MEM_RAM); 59 add_memory_region(0, memsize, BOOT_MEM_RAM);
60} 60}
diff --git a/arch/mips/alchemy/mtx-1/irqmap.c b/arch/mips/alchemy/mtx-1/irqmap.c
index f2bf02951e9c..f1ab12ab3433 100644
--- a/arch/mips/alchemy/mtx-1/irqmap.c
+++ b/arch/mips/alchemy/mtx-1/irqmap.c
@@ -27,7 +27,7 @@
27 */ 27 */
28 28
29#include <linux/init.h> 29#include <linux/init.h>
30 30#include <linux/interrupt.h>
31#include <asm/mach-au1x00/au1000.h> 31#include <asm/mach-au1x00/au1000.h>
32 32
33char irq_tab_alchemy[][5] __initdata = { 33char irq_tab_alchemy[][5] __initdata = {
@@ -42,11 +42,15 @@ char irq_tab_alchemy[][5] __initdata = {
42}; 42};
43 43
44struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { 44struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
45 { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0 }, 45 { AU1500_GPIO_204, IRQF_TRIGGER_HIGH, 0 },
46 { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 }, 46 { AU1500_GPIO_201, IRQF_TRIGGER_LOW, 0 },
47 { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 }, 47 { AU1500_GPIO_202, IRQF_TRIGGER_LOW, 0 },
48 { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 }, 48 { AU1500_GPIO_203, IRQF_TRIGGER_LOW, 0 },
49 { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 }, 49 { AU1500_GPIO_205, IRQF_TRIGGER_LOW, 0 },
50}; 50};
51 51
52int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); 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/pb1000/init.c b/arch/mips/alchemy/pb1000/init.c
deleted file mode 100644
index 8a9c7d57208d..000000000000
--- a/arch/mips/alchemy/pb1000/init.c
+++ /dev/null
@@ -1,57 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Pb1000 board setup
4 *
5 * Copyright 2001, 2008 MontaVista Software Inc.
6 * Author: MontaVista Software, Inc. <source@mvista.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/kernel.h>
31
32#include <asm/bootinfo.h>
33
34#include <prom.h>
35
36const char *get_system_type(void)
37{
38 return "Alchemy Pb1000";
39}
40
41void __init prom_init(void)
42{
43 unsigned char *memsize_str;
44 unsigned long memsize;
45
46 prom_argc = (int)fw_arg0;
47 prom_argv = (char **)fw_arg1;
48 prom_envp = (char **)fw_arg2;
49
50 prom_init_cmdline();
51 memsize_str = prom_getenv("memsize");
52 if (!memsize_str)
53 memsize = 0x04000000;
54 else
55 strict_strtol(memsize_str, 0, &memsize);
56 add_memory_region(0, memsize, BOOT_MEM_RAM);
57}
diff --git a/arch/mips/alchemy/pb1000/irqmap.c b/arch/mips/alchemy/pb1000/irqmap.c
deleted file mode 100644
index b3d56b0af321..000000000000
--- a/arch/mips/alchemy/pb1000/irqmap.c
+++ /dev/null
@@ -1,38 +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
34struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
35 { AU1000_GPIO_15, INTC_INT_LOW_LEVEL, 0 },
36};
37
38int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map);
diff --git a/arch/mips/alchemy/pb1100/init.c b/arch/mips/alchemy/pb1100/init.c
deleted file mode 100644
index 7c6792308bc5..000000000000
--- a/arch/mips/alchemy/pb1100/init.c
+++ /dev/null
@@ -1,60 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * Pb1100 board setup
5 *
6 * Copyright 2002, 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/init.h>
31#include <linux/kernel.h>
32
33#include <asm/bootinfo.h>
34
35#include <prom.h>
36
37const char *get_system_type(void)
38{
39 return "Alchemy Pb1100";
40}
41
42void __init prom_init(void)
43{
44 unsigned char *memsize_str;
45 unsigned long memsize;
46
47 prom_argc = fw_arg0;
48 prom_argv = (char **)fw_arg1;
49 prom_envp = (char **)fw_arg3;
50
51 prom_init_cmdline();
52
53 memsize_str = prom_getenv("memsize");
54 if (!memsize_str)
55 memsize = 0x04000000;
56 else
57 strict_strtol(memsize_str, 0, &memsize);
58
59 add_memory_region(0, memsize, BOOT_MEM_RAM);
60}
diff --git a/arch/mips/alchemy/pb1100/irqmap.c b/arch/mips/alchemy/pb1100/irqmap.c
deleted file mode 100644
index 9b7dd8b41283..000000000000
--- a/arch/mips/alchemy/pb1100/irqmap.c
+++ /dev/null
@@ -1,40 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xx0 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
31#include <asm/mach-au1x00/au1000.h>
32
33struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
34 { AU1000_GPIO_9, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card Fully_Inserted# */
35 { AU1000_GPIO_10, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card STSCHG# */
36 { AU1000_GPIO_11, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card IRQ# */
37 { AU1000_GPIO_13, INTC_INT_LOW_LEVEL, 0 }, /* DC_IRQ# */
38};
39
40int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map);
diff --git a/arch/mips/alchemy/pb1500/init.c b/arch/mips/alchemy/pb1500/init.c
deleted file mode 100644
index 3b6e395cf952..000000000000
--- a/arch/mips/alchemy/pb1500/init.c
+++ /dev/null
@@ -1,58 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * Pb1500 board setup
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 <linux/init.h>
31#include <linux/kernel.h>
32
33#include <asm/bootinfo.h>
34
35#include <prom.h>
36
37const char *get_system_type(void)
38{
39 return "Alchemy Pb1500";
40}
41
42void __init prom_init(void)
43{
44 unsigned char *memsize_str;
45 unsigned long memsize;
46
47 prom_argc = (int)fw_arg0;
48 prom_argv = (char **)fw_arg1;
49 prom_envp = (char **)fw_arg2;
50
51 prom_init_cmdline();
52 memsize_str = prom_getenv("memsize");
53 if (!memsize_str)
54 memsize = 0x04000000;
55 else
56 strict_strtol(memsize_str, 0, &memsize);
57 add_memory_region(0, memsize, BOOT_MEM_RAM);
58}
diff --git a/arch/mips/alchemy/pb1500/irqmap.c b/arch/mips/alchemy/pb1500/irqmap.c
deleted file mode 100644
index 39c4682766a8..000000000000
--- a/arch/mips/alchemy/pb1500/irqmap.c
+++ /dev/null
@@ -1,46 +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
31#include <asm/mach-au1x00/au1000.h>
32
33char irq_tab_alchemy[][5] __initdata = {
34 [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT370 */
35 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */
36};
37
38struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
39 { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0 },
40 { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 },
41 { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 },
42 { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 },
43 { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 },
44};
45
46int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map);
diff --git a/arch/mips/alchemy/pb1550/init.c b/arch/mips/alchemy/pb1550/init.c
deleted file mode 100644
index e1055a13a1a0..000000000000
--- a/arch/mips/alchemy/pb1550/init.c
+++ /dev/null
@@ -1,58 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * Pb1550 board setup
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 <linux/init.h>
31#include <linux/kernel.h>
32
33#include <asm/bootinfo.h>
34
35#include <prom.h>
36
37const char *get_system_type(void)
38{
39 return "Alchemy Pb1550";
40}
41
42void __init prom_init(void)
43{
44 unsigned char *memsize_str;
45 unsigned long memsize;
46
47 prom_argc = (int)fw_arg0;
48 prom_argv = (char **)fw_arg1;
49 prom_envp = (char **)fw_arg2;
50
51 prom_init_cmdline();
52 memsize_str = prom_getenv("memsize");
53 if (!memsize_str)
54 memsize = 0x08000000;
55 else
56 strict_strtol(memsize_str, 0, &memsize);
57 add_memory_region(0, memsize, BOOT_MEM_RAM);
58}
diff --git a/arch/mips/alchemy/pb1550/irqmap.c b/arch/mips/alchemy/pb1550/irqmap.c
deleted file mode 100644
index a02a4d1fa899..000000000000
--- a/arch/mips/alchemy/pb1550/irqmap.c
+++ /dev/null
@@ -1,43 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xx0 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
31#include <asm/mach-au1x00/au1000.h>
32
33char irq_tab_alchemy[][5] __initdata = {
34 [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */
35 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot 1 (right) */
36};
37
38struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
39 { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 },
40 { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 },
41};
42
43int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map);
diff --git a/arch/mips/alchemy/xxs1500/board_setup.c b/arch/mips/alchemy/xxs1500/board_setup.c
index 4c587acac5c3..a2634fabc50d 100644
--- a/arch/mips/alchemy/xxs1500/board_setup.c
+++ b/arch/mips/alchemy/xxs1500/board_setup.c
@@ -28,6 +28,8 @@
28 28
29#include <asm/mach-au1x00/au1000.h> 29#include <asm/mach-au1x00/au1000.h>
30 30
31#include <prom.h>
32
31void board_reset(void) 33void board_reset(void)
32{ 34{
33 /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ 35 /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
@@ -38,6 +40,16 @@ void __init board_setup(void)
38{ 40{
39 u32 pin_func; 41 u32 pin_func;
40 42
43#ifdef CONFIG_SERIAL_8250_CONSOLE
44 char *argptr;
45 argptr = prom_getcmdline();
46 argptr = strstr(argptr, "console=");
47 if (argptr == NULL) {
48 argptr = prom_getcmdline();
49 strcat(argptr, " console=ttyS0,115200");
50 }
51#endif
52
41 /* Set multiple use pins (UART3/GPIO) to UART (it's used as UART too) */ 53 /* Set multiple use pins (UART3/GPIO) to UART (it's used as UART too) */
42 pin_func = au_readl(SYS_PINFUNC) & ~SYS_PF_UR3; 54 pin_func = au_readl(SYS_PINFUNC) & ~SYS_PF_UR3;
43 pin_func |= SYS_PF_UR3; 55 pin_func |= SYS_PF_UR3;
diff --git a/arch/mips/alchemy/xxs1500/init.c b/arch/mips/alchemy/xxs1500/init.c
index 7516434760a1..456fa142c093 100644
--- a/arch/mips/alchemy/xxs1500/init.c
+++ b/arch/mips/alchemy/xxs1500/init.c
@@ -53,6 +53,6 @@ void __init prom_init(void)
53 if (!memsize_str) 53 if (!memsize_str)
54 memsize = 0x04000000; 54 memsize = 0x04000000;
55 else 55 else
56 strict_strtol(memsize_str, 0, &memsize); 56 strict_strtoul(memsize_str, 0, &memsize);
57 add_memory_region(0, memsize, BOOT_MEM_RAM); 57 add_memory_region(0, memsize, BOOT_MEM_RAM);
58} 58}
diff --git a/arch/mips/alchemy/xxs1500/irqmap.c b/arch/mips/alchemy/xxs1500/irqmap.c
index edf06ed11870..0f0f3012e5fd 100644
--- a/arch/mips/alchemy/xxs1500/irqmap.c
+++ b/arch/mips/alchemy/xxs1500/irqmap.c
@@ -27,23 +27,26 @@
27 */ 27 */
28 28
29#include <linux/init.h> 29#include <linux/init.h>
30 30#include <linux/interrupt.h>
31#include <asm/mach-au1x00/au1000.h> 31#include <asm/mach-au1x00/au1000.h>
32 32
33struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { 33struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
34 { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0 }, 34 { AU1500_GPIO_204, IRQF_TRIGGER_HIGH, 0 },
35 { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 }, 35 { AU1500_GPIO_201, IRQF_TRIGGER_LOW, 0 },
36 { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 }, 36 { AU1500_GPIO_202, IRQF_TRIGGER_LOW, 0 },
37 { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 }, 37 { AU1500_GPIO_203, IRQF_TRIGGER_LOW, 0 },
38 { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 }, 38 { AU1500_GPIO_205, IRQF_TRIGGER_LOW, 0 },
39 { AU1500_GPIO_207, INTC_INT_LOW_LEVEL, 0 }, 39 { AU1500_GPIO_207, IRQF_TRIGGER_LOW, 0 },
40 40
41 { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 }, 41 { AU1000_GPIO_0, IRQF_TRIGGER_LOW, 0 },
42 { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 }, 42 { AU1000_GPIO_1, IRQF_TRIGGER_LOW, 0 },
43 { AU1000_GPIO_2, INTC_INT_LOW_LEVEL, 0 }, 43 { AU1000_GPIO_2, IRQF_TRIGGER_LOW, 0 },
44 { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, 44 { AU1000_GPIO_3, IRQF_TRIGGER_LOW, 0 },
45 { AU1000_GPIO_4, INTC_INT_LOW_LEVEL, 0 }, /* CF interrupt */ 45 { AU1000_GPIO_4, IRQF_TRIGGER_LOW, 0 }, /* CF interrupt */
46 { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, 46 { AU1000_GPIO_5, IRQF_TRIGGER_LOW, 0 },
47}; 47};
48 48
49int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); 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/cavium-octeon/Kconfig b/arch/mips/cavium-octeon/Kconfig
new file mode 100644
index 000000000000..094c17e38e16
--- /dev/null
+++ b/arch/mips/cavium-octeon/Kconfig
@@ -0,0 +1,85 @@
1config CAVIUM_OCTEON_SPECIFIC_OPTIONS
2 bool "Enable Octeon specific options"
3 depends on CPU_CAVIUM_OCTEON
4 default "y"
5
6config CAVIUM_OCTEON_2ND_KERNEL
7 bool "Build the kernel to be used as a 2nd kernel on the same chip"
8 depends on CAVIUM_OCTEON_SPECIFIC_OPTIONS
9 default "n"
10 help
11 This option configures this kernel to be linked at a different
12 address and use the 2nd uart for output. This allows a kernel built
13 with this option to be run at the same time as one built without this
14 option.
15
16config CAVIUM_OCTEON_HW_FIX_UNALIGNED
17 bool "Enable hardware fixups of unaligned loads and stores"
18 depends on CAVIUM_OCTEON_SPECIFIC_OPTIONS
19 default "y"
20 help
21 Configure the Octeon hardware to automatically fix unaligned loads
22 and stores. Normally unaligned accesses are fixed using a kernel
23 exception handler. This option enables the hardware automatic fixups,
24 which requires only an extra 3 cycles. Disable this option if you
25 are running code that relies on address exceptions on unaligned
26 accesses.
27
28config CAVIUM_OCTEON_CVMSEG_SIZE
29 int "Number of L1 cache lines reserved for CVMSEG memory"
30 depends on CAVIUM_OCTEON_SPECIFIC_OPTIONS
31 range 0 54
32 default 1
33 help
34 CVMSEG LM is a segment that accesses portions of the dcache as a
35 local memory; the larger CVMSEG is, the smaller the cache is.
36 This selects the size of CVMSEG LM, which is in cache blocks. The
37 legally range is from zero to 54 cache blocks (i.e. CVMSEG LM is
38 between zero and 6192 bytes).
39
40config CAVIUM_OCTEON_LOCK_L2
41 bool "Lock often used kernel code in the L2"
42 depends on CAVIUM_OCTEON_SPECIFIC_OPTIONS
43 default "y"
44 help
45 Enable locking parts of the kernel into the L2 cache.
46
47config CAVIUM_OCTEON_LOCK_L2_TLB
48 bool "Lock the TLB handler in L2"
49 depends on CAVIUM_OCTEON_LOCK_L2
50 default "y"
51 help
52 Lock the low level TLB fast path into L2.
53
54config CAVIUM_OCTEON_LOCK_L2_EXCEPTION
55 bool "Lock the exception handler in L2"
56 depends on CAVIUM_OCTEON_LOCK_L2
57 default "y"
58 help
59 Lock the low level exception handler into L2.
60
61config CAVIUM_OCTEON_LOCK_L2_LOW_LEVEL_INTERRUPT
62 bool "Lock the interrupt handler in L2"
63 depends on CAVIUM_OCTEON_LOCK_L2
64 default "y"
65 help
66 Lock the low level interrupt handler into L2.
67
68config CAVIUM_OCTEON_LOCK_L2_INTERRUPT
69 bool "Lock the 2nd level interrupt handler in L2"
70 depends on CAVIUM_OCTEON_LOCK_L2
71 default "y"
72 help
73 Lock the 2nd level interrupt handler in L2.
74
75config CAVIUM_OCTEON_LOCK_L2_MEMCPY
76 bool "Lock memcpy() in L2"
77 depends on CAVIUM_OCTEON_LOCK_L2
78 default "y"
79 help
80 Lock the kernel's implementation of memcpy() into L2.
81
82config ARCH_SPARSEMEM_ENABLE
83 def_bool y
84 select SPARSEMEM_STATIC
85 depends on CPU_CAVIUM_OCTEON
diff --git a/arch/mips/cavium-octeon/Makefile b/arch/mips/cavium-octeon/Makefile
new file mode 100644
index 000000000000..1c2a7faf5881
--- /dev/null
+++ b/arch/mips/cavium-octeon/Makefile
@@ -0,0 +1,16 @@
1#
2# Makefile for the Cavium Octeon specific kernel interface routines
3# under Linux.
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# Copyright (C) 2005-2008 Cavium Networks
10#
11
12obj-y := setup.o serial.o octeon-irq.o csrc-octeon.o
13obj-y += dma-octeon.o flash_setup.o
14obj-y += octeon-memcpy.o
15
16obj-$(CONFIG_SMP) += smp.o
diff --git a/arch/mips/cavium-octeon/csrc-octeon.c b/arch/mips/cavium-octeon/csrc-octeon.c
new file mode 100644
index 000000000000..70fd92c31657
--- /dev/null
+++ b/arch/mips/cavium-octeon/csrc-octeon.c
@@ -0,0 +1,58 @@
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 by Ralf Baechle
7 */
8#include <linux/clocksource.h>
9#include <linux/init.h>
10
11#include <asm/time.h>
12
13#include <asm/octeon/octeon.h>
14#include <asm/octeon/cvmx-ipd-defs.h>
15
16/*
17 * Set the current core's cvmcount counter to the value of the
18 * IPD_CLK_COUNT. We do this on all cores as they are brought
19 * on-line. This allows for a read from a local cpu register to
20 * access a synchronized counter.
21 *
22 */
23void octeon_init_cvmcount(void)
24{
25 unsigned long flags;
26 unsigned loops = 2;
27
28 /* Clobber loops so GCC will not unroll the following while loop. */
29 asm("" : "+r" (loops));
30
31 local_irq_save(flags);
32 /*
33 * Loop several times so we are executing from the cache,
34 * which should give more deterministic timing.
35 */
36 while (loops--)
37 write_c0_cvmcount(cvmx_read_csr(CVMX_IPD_CLK_COUNT));
38 local_irq_restore(flags);
39}
40
41static cycle_t octeon_cvmcount_read(void)
42{
43 return read_c0_cvmcount();
44}
45
46static struct clocksource clocksource_mips = {
47 .name = "OCTEON_CVMCOUNT",
48 .read = octeon_cvmcount_read,
49 .mask = CLOCKSOURCE_MASK(64),
50 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
51};
52
53void __init plat_time_init(void)
54{
55 clocksource_mips.rating = 300;
56 clocksource_set_clock(&clocksource_mips, mips_hpt_frequency);
57 clocksource_register(&clocksource_mips);
58}
diff --git a/arch/mips/cavium-octeon/dma-octeon.c b/arch/mips/cavium-octeon/dma-octeon.c
new file mode 100644
index 000000000000..01b1ef94b361
--- /dev/null
+++ b/arch/mips/cavium-octeon/dma-octeon.c
@@ -0,0 +1,32 @@
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) 2000 Ani Joshi <ajoshi@unixbox.com>
7 * Copyright (C) 2000, 2001 Ralf Baechle <ralf@gnu.org>
8 * Copyright (C) 2005 Ilya A. Volynets-Evenbakh <ilya@total-knowledge.com>
9 * swiped from i386, and cloned for MIPS by Geert, polished by Ralf.
10 * IP32 changes by Ilya.
11 * Cavium Networks: Create new dma setup for Cavium Networks Octeon based on
12 * the kernels original.
13 */
14#include <linux/types.h>
15#include <linux/mm.h>
16
17#include <dma-coherence.h>
18
19dma_addr_t octeon_map_dma_mem(struct device *dev, void *ptr, size_t size)
20{
21 /* Without PCI/PCIe this function can be called for Octeon internal
22 devices such as USB. These devices all support 64bit addressing */
23 mb();
24 return virt_to_phys(ptr);
25}
26
27void octeon_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr)
28{
29 /* Without PCI/PCIe this function can be called for Octeon internal
30 * devices such as USB. These devices all support 64bit addressing */
31 return;
32}
diff --git a/arch/mips/cavium-octeon/executive/Makefile b/arch/mips/cavium-octeon/executive/Makefile
new file mode 100644
index 000000000000..80d6cb26766b
--- /dev/null
+++ b/arch/mips/cavium-octeon/executive/Makefile
@@ -0,0 +1,13 @@
1#
2# Makefile for the Cavium Octeon specific kernel interface routines
3# under Linux.
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# Copyright (C) 2005-2008 Cavium Networks
10#
11
12obj-y += cvmx-bootmem.o cvmx-l2c.o cvmx-sysinfo.o octeon-model.o
13
diff --git a/arch/mips/cavium-octeon/executive/cvmx-bootmem.c b/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
new file mode 100644
index 000000000000..4f5a08b37ccd
--- /dev/null
+++ b/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
@@ -0,0 +1,586 @@
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/*
29 * Simple allocate only memory allocator. Used to allocate memory at
30 * application start time.
31 */
32
33#include <linux/kernel.h>
34
35#include <asm/octeon/cvmx.h>
36#include <asm/octeon/cvmx-spinlock.h>
37#include <asm/octeon/cvmx-bootmem.h>
38
39/*#define DEBUG */
40
41
42static struct cvmx_bootmem_desc *cvmx_bootmem_desc;
43
44/* See header file for descriptions of functions */
45
46/*
47 * Wrapper functions are provided for reading/writing the size and
48 * next block values as these may not be directly addressible (in 32
49 * bit applications, for instance.) Offsets of data elements in
50 * bootmem list, must match cvmx_bootmem_block_header_t.
51 */
52#define NEXT_OFFSET 0
53#define SIZE_OFFSET 8
54
55static void cvmx_bootmem_phy_set_size(uint64_t addr, uint64_t size)
56{
57 cvmx_write64_uint64((addr + SIZE_OFFSET) | (1ull << 63), size);
58}
59
60static void cvmx_bootmem_phy_set_next(uint64_t addr, uint64_t next)
61{
62 cvmx_write64_uint64((addr + NEXT_OFFSET) | (1ull << 63), next);
63}
64
65static uint64_t cvmx_bootmem_phy_get_size(uint64_t addr)
66{
67 return cvmx_read64_uint64((addr + SIZE_OFFSET) | (1ull << 63));
68}
69
70static uint64_t cvmx_bootmem_phy_get_next(uint64_t addr)
71{
72 return cvmx_read64_uint64((addr + NEXT_OFFSET) | (1ull << 63));
73}
74
75void *cvmx_bootmem_alloc_range(uint64_t size, uint64_t alignment,
76 uint64_t min_addr, uint64_t max_addr)
77{
78 int64_t address;
79 address =
80 cvmx_bootmem_phy_alloc(size, min_addr, max_addr, alignment, 0);
81
82 if (address > 0)
83 return cvmx_phys_to_ptr(address);
84 else
85 return NULL;
86}
87
88void *cvmx_bootmem_alloc_address(uint64_t size, uint64_t address,
89 uint64_t alignment)
90{
91 return cvmx_bootmem_alloc_range(size, alignment, address,
92 address + size);
93}
94
95void *cvmx_bootmem_alloc(uint64_t size, uint64_t alignment)
96{
97 return cvmx_bootmem_alloc_range(size, alignment, 0, 0);
98}
99
100int cvmx_bootmem_free_named(char *name)
101{
102 return cvmx_bootmem_phy_named_block_free(name, 0);
103}
104
105struct cvmx_bootmem_named_block_desc *cvmx_bootmem_find_named_block(char *name)
106{
107 return cvmx_bootmem_phy_named_block_find(name, 0);
108}
109
110void cvmx_bootmem_lock(void)
111{
112 cvmx_spinlock_lock((cvmx_spinlock_t *) &(cvmx_bootmem_desc->lock));
113}
114
115void cvmx_bootmem_unlock(void)
116{
117 cvmx_spinlock_unlock((cvmx_spinlock_t *) &(cvmx_bootmem_desc->lock));
118}
119
120int cvmx_bootmem_init(void *mem_desc_ptr)
121{
122 /* Here we set the global pointer to the bootmem descriptor
123 * block. This pointer will be used directly, so we will set
124 * it up to be directly usable by the application. It is set
125 * up as follows for the various runtime/ABI combinations:
126 *
127 * Linux 64 bit: Set XKPHYS bit
128 * Linux 32 bit: use mmap to create mapping, use virtual address
129 * CVMX 64 bit: use physical address directly
130 * CVMX 32 bit: use physical address directly
131 *
132 * Note that the CVMX environment assumes the use of 1-1 TLB
133 * mappings so that the physical addresses can be used
134 * directly
135 */
136 if (!cvmx_bootmem_desc) {
137#if defined(CVMX_ABI_64)
138 /* Set XKPHYS bit */
139 cvmx_bootmem_desc = cvmx_phys_to_ptr(CAST64(mem_desc_ptr));
140#else
141 cvmx_bootmem_desc = (struct cvmx_bootmem_desc *) mem_desc_ptr;
142#endif
143 }
144
145 return 0;
146}
147
148/*
149 * The cvmx_bootmem_phy* functions below return 64 bit physical
150 * addresses, and expose more features that the cvmx_bootmem_functions
151 * above. These are required for full memory space access in 32 bit
152 * applications, as well as for using some advance features. Most
153 * applications should not need to use these.
154 */
155
156int64_t cvmx_bootmem_phy_alloc(uint64_t req_size, uint64_t address_min,
157 uint64_t address_max, uint64_t alignment,
158 uint32_t flags)
159{
160
161 uint64_t head_addr;
162 uint64_t ent_addr;
163 /* points to previous list entry, NULL current entry is head of list */
164 uint64_t prev_addr = 0;
165 uint64_t new_ent_addr = 0;
166 uint64_t desired_min_addr;
167
168#ifdef DEBUG
169 cvmx_dprintf("cvmx_bootmem_phy_alloc: req_size: 0x%llx, "
170 "min_addr: 0x%llx, max_addr: 0x%llx, align: 0x%llx\n",
171 (unsigned long long)req_size,
172 (unsigned long long)address_min,
173 (unsigned long long)address_max,
174 (unsigned long long)alignment);
175#endif
176
177 if (cvmx_bootmem_desc->major_version > 3) {
178 cvmx_dprintf("ERROR: Incompatible bootmem descriptor "
179 "version: %d.%d at addr: %p\n",
180 (int)cvmx_bootmem_desc->major_version,
181 (int)cvmx_bootmem_desc->minor_version,
182 cvmx_bootmem_desc);
183 goto error_out;
184 }
185
186 /*
187 * Do a variety of checks to validate the arguments. The
188 * allocator code will later assume that these checks have
189 * been made. We validate that the requested constraints are
190 * not self-contradictory before we look through the list of
191 * available memory.
192 */
193
194 /* 0 is not a valid req_size for this allocator */
195 if (!req_size)
196 goto error_out;
197
198 /* Round req_size up to mult of minimum alignment bytes */
199 req_size = (req_size + (CVMX_BOOTMEM_ALIGNMENT_SIZE - 1)) &
200 ~(CVMX_BOOTMEM_ALIGNMENT_SIZE - 1);
201
202 /*
203 * Convert !0 address_min and 0 address_max to special case of
204 * range that specifies an exact memory block to allocate. Do
205 * this before other checks and adjustments so that this
206 * tranformation will be validated.
207 */
208 if (address_min && !address_max)
209 address_max = address_min + req_size;
210 else if (!address_min && !address_max)
211 address_max = ~0ull; /* If no limits given, use max limits */
212
213
214 /*
215 * Enforce minimum alignment (this also keeps the minimum free block
216 * req_size the same as the alignment req_size.
217 */
218 if (alignment < CVMX_BOOTMEM_ALIGNMENT_SIZE)
219 alignment = CVMX_BOOTMEM_ALIGNMENT_SIZE;
220
221 /*
222 * Adjust address minimum based on requested alignment (round
223 * up to meet alignment). Do this here so we can reject
224 * impossible requests up front. (NOP for address_min == 0)
225 */
226 if (alignment)
227 address_min = __ALIGN_MASK(address_min, (alignment - 1));
228
229 /*
230 * Reject inconsistent args. We have adjusted these, so this
231 * may fail due to our internal changes even if this check
232 * would pass for the values the user supplied.
233 */
234 if (req_size > address_max - address_min)
235 goto error_out;
236
237 /* Walk through the list entries - first fit found is returned */
238
239 if (!(flags & CVMX_BOOTMEM_FLAG_NO_LOCKING))
240 cvmx_bootmem_lock();
241 head_addr = cvmx_bootmem_desc->head_addr;
242 ent_addr = head_addr;
243 for (; ent_addr;
244 prev_addr = ent_addr,
245 ent_addr = cvmx_bootmem_phy_get_next(ent_addr)) {
246 uint64_t usable_base, usable_max;
247 uint64_t ent_size = cvmx_bootmem_phy_get_size(ent_addr);
248
249 if (cvmx_bootmem_phy_get_next(ent_addr)
250 && ent_addr > cvmx_bootmem_phy_get_next(ent_addr)) {
251 cvmx_dprintf("Internal bootmem_alloc() error: ent: "
252 "0x%llx, next: 0x%llx\n",
253 (unsigned long long)ent_addr,
254 (unsigned long long)
255 cvmx_bootmem_phy_get_next(ent_addr));
256 goto error_out;
257 }
258
259 /*
260 * Determine if this is an entry that can satisify the
261 * request Check to make sure entry is large enough to
262 * satisfy request.
263 */
264 usable_base =
265 __ALIGN_MASK(max(address_min, ent_addr), alignment - 1);
266 usable_max = min(address_max, ent_addr + ent_size);
267 /*
268 * We should be able to allocate block at address
269 * usable_base.
270 */
271
272 desired_min_addr = usable_base;
273 /*
274 * Determine if request can be satisfied from the
275 * current entry.
276 */
277 if (!((ent_addr + ent_size) > usable_base
278 && ent_addr < address_max
279 && req_size <= usable_max - usable_base))
280 continue;
281 /*
282 * We have found an entry that has room to satisfy the
283 * request, so allocate it from this entry. If end
284 * CVMX_BOOTMEM_FLAG_END_ALLOC set, then allocate from
285 * the end of this block rather than the beginning.
286 */
287 if (flags & CVMX_BOOTMEM_FLAG_END_ALLOC) {
288 desired_min_addr = usable_max - req_size;
289 /*
290 * Align desired address down to required
291 * alignment.
292 */
293 desired_min_addr &= ~(alignment - 1);
294 }
295
296 /* Match at start of entry */
297 if (desired_min_addr == ent_addr) {
298 if (req_size < ent_size) {
299 /*
300 * big enough to create a new block
301 * from top portion of block.
302 */
303 new_ent_addr = ent_addr + req_size;
304 cvmx_bootmem_phy_set_next(new_ent_addr,
305 cvmx_bootmem_phy_get_next(ent_addr));
306 cvmx_bootmem_phy_set_size(new_ent_addr,
307 ent_size -
308 req_size);
309
310 /*
311 * Adjust next pointer as following
312 * code uses this.
313 */
314 cvmx_bootmem_phy_set_next(ent_addr,
315 new_ent_addr);
316 }
317
318 /*
319 * adjust prev ptr or head to remove this
320 * entry from list.
321 */
322 if (prev_addr)
323 cvmx_bootmem_phy_set_next(prev_addr,
324 cvmx_bootmem_phy_get_next(ent_addr));
325 else
326 /*
327 * head of list being returned, so
328 * update head ptr.
329 */
330 cvmx_bootmem_desc->head_addr =
331 cvmx_bootmem_phy_get_next(ent_addr);
332
333 if (!(flags & CVMX_BOOTMEM_FLAG_NO_LOCKING))
334 cvmx_bootmem_unlock();
335 return desired_min_addr;
336 }
337 /*
338 * block returned doesn't start at beginning of entry,
339 * so we know that we will be splitting a block off
340 * the front of this one. Create a new block from the
341 * beginning, add to list, and go to top of loop
342 * again.
343 *
344 * create new block from high portion of
345 * block, so that top block starts at desired
346 * addr.
347 */
348 new_ent_addr = desired_min_addr;
349 cvmx_bootmem_phy_set_next(new_ent_addr,
350 cvmx_bootmem_phy_get_next
351 (ent_addr));
352 cvmx_bootmem_phy_set_size(new_ent_addr,
353 cvmx_bootmem_phy_get_size
354 (ent_addr) -
355 (desired_min_addr -
356 ent_addr));
357 cvmx_bootmem_phy_set_size(ent_addr,
358 desired_min_addr - ent_addr);
359 cvmx_bootmem_phy_set_next(ent_addr, new_ent_addr);
360 /* Loop again to handle actual alloc from new block */
361 }
362error_out:
363 /* We didn't find anything, so return error */
364 if (!(flags & CVMX_BOOTMEM_FLAG_NO_LOCKING))
365 cvmx_bootmem_unlock();
366 return -1;
367}
368
369int __cvmx_bootmem_phy_free(uint64_t phy_addr, uint64_t size, uint32_t flags)
370{
371 uint64_t cur_addr;
372 uint64_t prev_addr = 0; /* zero is invalid */
373 int retval = 0;
374
375#ifdef DEBUG
376 cvmx_dprintf("__cvmx_bootmem_phy_free addr: 0x%llx, size: 0x%llx\n",
377 (unsigned long long)phy_addr, (unsigned long long)size);
378#endif
379 if (cvmx_bootmem_desc->major_version > 3) {
380 cvmx_dprintf("ERROR: Incompatible bootmem descriptor "
381 "version: %d.%d at addr: %p\n",
382 (int)cvmx_bootmem_desc->major_version,
383 (int)cvmx_bootmem_desc->minor_version,
384 cvmx_bootmem_desc);
385 return 0;
386 }
387
388 /* 0 is not a valid size for this allocator */
389 if (!size)
390 return 0;
391
392 if (!(flags & CVMX_BOOTMEM_FLAG_NO_LOCKING))
393 cvmx_bootmem_lock();
394 cur_addr = cvmx_bootmem_desc->head_addr;
395 if (cur_addr == 0 || phy_addr < cur_addr) {
396 /* add at front of list - special case with changing head ptr */
397 if (cur_addr && phy_addr + size > cur_addr)
398 goto bootmem_free_done; /* error, overlapping section */
399 else if (phy_addr + size == cur_addr) {
400 /* Add to front of existing first block */
401 cvmx_bootmem_phy_set_next(phy_addr,
402 cvmx_bootmem_phy_get_next
403 (cur_addr));
404 cvmx_bootmem_phy_set_size(phy_addr,
405 cvmx_bootmem_phy_get_size
406 (cur_addr) + size);
407 cvmx_bootmem_desc->head_addr = phy_addr;
408
409 } else {
410 /* New block before first block. OK if cur_addr is 0 */
411 cvmx_bootmem_phy_set_next(phy_addr, cur_addr);
412 cvmx_bootmem_phy_set_size(phy_addr, size);
413 cvmx_bootmem_desc->head_addr = phy_addr;
414 }
415 retval = 1;
416 goto bootmem_free_done;
417 }
418
419 /* Find place in list to add block */
420 while (cur_addr && phy_addr > cur_addr) {
421 prev_addr = cur_addr;
422 cur_addr = cvmx_bootmem_phy_get_next(cur_addr);
423 }
424
425 if (!cur_addr) {
426 /*
427 * We have reached the end of the list, add on to end,
428 * checking to see if we need to combine with last
429 * block
430 */
431 if (prev_addr + cvmx_bootmem_phy_get_size(prev_addr) ==
432 phy_addr) {
433 cvmx_bootmem_phy_set_size(prev_addr,
434 cvmx_bootmem_phy_get_size
435 (prev_addr) + size);
436 } else {
437 cvmx_bootmem_phy_set_next(prev_addr, phy_addr);
438 cvmx_bootmem_phy_set_size(phy_addr, size);
439 cvmx_bootmem_phy_set_next(phy_addr, 0);
440 }
441 retval = 1;
442 goto bootmem_free_done;
443 } else {
444 /*
445 * insert between prev and cur nodes, checking for
446 * merge with either/both.
447 */
448 if (prev_addr + cvmx_bootmem_phy_get_size(prev_addr) ==
449 phy_addr) {
450 /* Merge with previous */
451 cvmx_bootmem_phy_set_size(prev_addr,
452 cvmx_bootmem_phy_get_size
453 (prev_addr) + size);
454 if (phy_addr + size == cur_addr) {
455 /* Also merge with current */
456 cvmx_bootmem_phy_set_size(prev_addr,
457 cvmx_bootmem_phy_get_size(cur_addr) +
458 cvmx_bootmem_phy_get_size(prev_addr));
459 cvmx_bootmem_phy_set_next(prev_addr,
460 cvmx_bootmem_phy_get_next(cur_addr));
461 }
462 retval = 1;
463 goto bootmem_free_done;
464 } else if (phy_addr + size == cur_addr) {
465 /* Merge with current */
466 cvmx_bootmem_phy_set_size(phy_addr,
467 cvmx_bootmem_phy_get_size
468 (cur_addr) + size);
469 cvmx_bootmem_phy_set_next(phy_addr,
470 cvmx_bootmem_phy_get_next
471 (cur_addr));
472 cvmx_bootmem_phy_set_next(prev_addr, phy_addr);
473 retval = 1;
474 goto bootmem_free_done;
475 }
476
477 /* It is a standalone block, add in between prev and cur */
478 cvmx_bootmem_phy_set_size(phy_addr, size);
479 cvmx_bootmem_phy_set_next(phy_addr, cur_addr);
480 cvmx_bootmem_phy_set_next(prev_addr, phy_addr);
481
482 }
483 retval = 1;
484
485bootmem_free_done:
486 if (!(flags & CVMX_BOOTMEM_FLAG_NO_LOCKING))
487 cvmx_bootmem_unlock();
488 return retval;
489
490}
491
492struct cvmx_bootmem_named_block_desc *
493 cvmx_bootmem_phy_named_block_find(char *name, uint32_t flags)
494{
495 unsigned int i;
496 struct cvmx_bootmem_named_block_desc *named_block_array_ptr;
497
498#ifdef DEBUG
499 cvmx_dprintf("cvmx_bootmem_phy_named_block_find: %s\n", name);
500#endif
501 /*
502 * Lock the structure to make sure that it is not being
503 * changed while we are examining it.
504 */
505 if (!(flags & CVMX_BOOTMEM_FLAG_NO_LOCKING))
506 cvmx_bootmem_lock();
507
508 /* Use XKPHYS for 64 bit linux */
509 named_block_array_ptr = (struct cvmx_bootmem_named_block_desc *)
510 cvmx_phys_to_ptr(cvmx_bootmem_desc->named_block_array_addr);
511
512#ifdef DEBUG
513 cvmx_dprintf
514 ("cvmx_bootmem_phy_named_block_find: named_block_array_ptr: %p\n",
515 named_block_array_ptr);
516#endif
517 if (cvmx_bootmem_desc->major_version == 3) {
518 for (i = 0;
519 i < cvmx_bootmem_desc->named_block_num_blocks; i++) {
520 if ((name && named_block_array_ptr[i].size
521 && !strncmp(name, named_block_array_ptr[i].name,
522 cvmx_bootmem_desc->named_block_name_len
523 - 1))
524 || (!name && !named_block_array_ptr[i].size)) {
525 if (!(flags & CVMX_BOOTMEM_FLAG_NO_LOCKING))
526 cvmx_bootmem_unlock();
527
528 return &(named_block_array_ptr[i]);
529 }
530 }
531 } else {
532 cvmx_dprintf("ERROR: Incompatible bootmem descriptor "
533 "version: %d.%d at addr: %p\n",
534 (int)cvmx_bootmem_desc->major_version,
535 (int)cvmx_bootmem_desc->minor_version,
536 cvmx_bootmem_desc);
537 }
538 if (!(flags & CVMX_BOOTMEM_FLAG_NO_LOCKING))
539 cvmx_bootmem_unlock();
540
541 return NULL;
542}
543
544int cvmx_bootmem_phy_named_block_free(char *name, uint32_t flags)
545{
546 struct cvmx_bootmem_named_block_desc *named_block_ptr;
547
548 if (cvmx_bootmem_desc->major_version != 3) {
549 cvmx_dprintf("ERROR: Incompatible bootmem descriptor version: "
550 "%d.%d at addr: %p\n",
551 (int)cvmx_bootmem_desc->major_version,
552 (int)cvmx_bootmem_desc->minor_version,
553 cvmx_bootmem_desc);
554 return 0;
555 }
556#ifdef DEBUG
557 cvmx_dprintf("cvmx_bootmem_phy_named_block_free: %s\n", name);
558#endif
559
560 /*
561 * Take lock here, as name lookup/block free/name free need to
562 * be atomic.
563 */
564 cvmx_bootmem_lock();
565
566 named_block_ptr =
567 cvmx_bootmem_phy_named_block_find(name,
568 CVMX_BOOTMEM_FLAG_NO_LOCKING);
569 if (named_block_ptr) {
570#ifdef DEBUG
571 cvmx_dprintf("cvmx_bootmem_phy_named_block_free: "
572 "%s, base: 0x%llx, size: 0x%llx\n",
573 name,
574 (unsigned long long)named_block_ptr->base_addr,
575 (unsigned long long)named_block_ptr->size);
576#endif
577 __cvmx_bootmem_phy_free(named_block_ptr->base_addr,
578 named_block_ptr->size,
579 CVMX_BOOTMEM_FLAG_NO_LOCKING);
580 named_block_ptr->size = 0;
581 /* Set size to zero to indicate block not used. */
582 }
583
584 cvmx_bootmem_unlock();
585 return named_block_ptr != NULL; /* 0 on failure, 1 on success */
586}
diff --git a/arch/mips/cavium-octeon/executive/cvmx-l2c.c b/arch/mips/cavium-octeon/executive/cvmx-l2c.c
new file mode 100644
index 000000000000..6abe56f1e097
--- /dev/null
+++ b/arch/mips/cavium-octeon/executive/cvmx-l2c.c
@@ -0,0 +1,734 @@
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/*
29 * Implementation of the Level 2 Cache (L2C) control, measurement, and
30 * debugging facilities.
31 */
32
33#include <asm/octeon/cvmx.h>
34#include <asm/octeon/cvmx-l2c.h>
35#include <asm/octeon/cvmx-spinlock.h>
36
37/*
38 * This spinlock is used internally to ensure that only one core is
39 * performing certain L2 operations at a time.
40 *
41 * NOTE: This only protects calls from within a single application -
42 * if multiple applications or operating systems are running, then it
43 * is up to the user program to coordinate between them.
44 */
45static cvmx_spinlock_t cvmx_l2c_spinlock;
46
47static inline int l2_size_half(void)
48{
49 uint64_t val = cvmx_read_csr(CVMX_L2D_FUS3);
50 return !!(val & (1ull << 34));
51}
52
53int cvmx_l2c_get_core_way_partition(uint32_t core)
54{
55 uint32_t field;
56
57 /* Validate the core number */
58 if (core >= cvmx_octeon_num_cores())
59 return -1;
60
61 /*
62 * Use the lower two bits of the coreNumber to determine the
63 * bit offset of the UMSK[] field in the L2C_SPAR register.
64 */
65 field = (core & 0x3) * 8;
66
67 /*
68 * Return the UMSK[] field from the appropriate L2C_SPAR
69 * register based on the coreNumber.
70 */
71
72 switch (core & 0xC) {
73 case 0x0:
74 return (cvmx_read_csr(CVMX_L2C_SPAR0) & (0xFF << field)) >>
75 field;
76 case 0x4:
77 return (cvmx_read_csr(CVMX_L2C_SPAR1) & (0xFF << field)) >>
78 field;
79 case 0x8:
80 return (cvmx_read_csr(CVMX_L2C_SPAR2) & (0xFF << field)) >>
81 field;
82 case 0xC:
83 return (cvmx_read_csr(CVMX_L2C_SPAR3) & (0xFF << field)) >>
84 field;
85 }
86 return 0;
87}
88
89int cvmx_l2c_set_core_way_partition(uint32_t core, uint32_t mask)
90{
91 uint32_t field;
92 uint32_t valid_mask;
93
94 valid_mask = (0x1 << cvmx_l2c_get_num_assoc()) - 1;
95
96 mask &= valid_mask;
97
98 /* A UMSK setting which blocks all L2C Ways is an error. */
99 if (mask == valid_mask)
100 return -1;
101
102 /* Validate the core number */
103 if (core >= cvmx_octeon_num_cores())
104 return -1;
105
106 /* Check to make sure current mask & new mask don't block all ways */
107 if (((mask | cvmx_l2c_get_core_way_partition(core)) & valid_mask) ==
108 valid_mask)
109 return -1;
110
111 /* Use the lower two bits of core to determine the bit offset of the
112 * UMSK[] field in the L2C_SPAR register.
113 */
114 field = (core & 0x3) * 8;
115
116 /* Assign the new mask setting to the UMSK[] field in the appropriate
117 * L2C_SPAR register based on the core_num.
118 *
119 */
120 switch (core & 0xC) {
121 case 0x0:
122 cvmx_write_csr(CVMX_L2C_SPAR0,
123 (cvmx_read_csr(CVMX_L2C_SPAR0) &
124 ~(0xFF << field)) | mask << field);
125 break;
126 case 0x4:
127 cvmx_write_csr(CVMX_L2C_SPAR1,
128 (cvmx_read_csr(CVMX_L2C_SPAR1) &
129 ~(0xFF << field)) | mask << field);
130 break;
131 case 0x8:
132 cvmx_write_csr(CVMX_L2C_SPAR2,
133 (cvmx_read_csr(CVMX_L2C_SPAR2) &
134 ~(0xFF << field)) | mask << field);
135 break;
136 case 0xC:
137 cvmx_write_csr(CVMX_L2C_SPAR3,
138 (cvmx_read_csr(CVMX_L2C_SPAR3) &
139 ~(0xFF << field)) | mask << field);
140 break;
141 }
142 return 0;
143}
144
145int cvmx_l2c_set_hw_way_partition(uint32_t mask)
146{
147 uint32_t valid_mask;
148
149 valid_mask = 0xff;
150
151 if (OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN38XX)) {
152 if (l2_size_half())
153 valid_mask = 0xf;
154 } else if (l2_size_half())
155 valid_mask = 0x3;
156
157 mask &= valid_mask;
158
159 /* A UMSK setting which blocks all L2C Ways is an error. */
160 if (mask == valid_mask)
161 return -1;
162 /* Check to make sure current mask & new mask don't block all ways */
163 if (((mask | cvmx_l2c_get_hw_way_partition()) & valid_mask) ==
164 valid_mask)
165 return -1;
166
167 cvmx_write_csr(CVMX_L2C_SPAR4,
168 (cvmx_read_csr(CVMX_L2C_SPAR4) & ~0xFF) | mask);
169 return 0;
170}
171
172int cvmx_l2c_get_hw_way_partition(void)
173{
174 return cvmx_read_csr(CVMX_L2C_SPAR4) & (0xFF);
175}
176
177void cvmx_l2c_config_perf(uint32_t counter, enum cvmx_l2c_event event,
178 uint32_t clear_on_read)
179{
180 union cvmx_l2c_pfctl pfctl;
181
182 pfctl.u64 = cvmx_read_csr(CVMX_L2C_PFCTL);
183
184 switch (counter) {
185 case 0:
186 pfctl.s.cnt0sel = event;
187 pfctl.s.cnt0ena = 1;
188 if (!cvmx_octeon_is_pass1())
189 pfctl.s.cnt0rdclr = clear_on_read;
190 break;
191 case 1:
192 pfctl.s.cnt1sel = event;
193 pfctl.s.cnt1ena = 1;
194 if (!cvmx_octeon_is_pass1())
195 pfctl.s.cnt1rdclr = clear_on_read;
196 break;
197 case 2:
198 pfctl.s.cnt2sel = event;
199 pfctl.s.cnt2ena = 1;
200 if (!cvmx_octeon_is_pass1())
201 pfctl.s.cnt2rdclr = clear_on_read;
202 break;
203 case 3:
204 default:
205 pfctl.s.cnt3sel = event;
206 pfctl.s.cnt3ena = 1;
207 if (!cvmx_octeon_is_pass1())
208 pfctl.s.cnt3rdclr = clear_on_read;
209 break;
210 }
211
212 cvmx_write_csr(CVMX_L2C_PFCTL, pfctl.u64);
213}
214
215uint64_t cvmx_l2c_read_perf(uint32_t counter)
216{
217 switch (counter) {
218 case 0:
219 return cvmx_read_csr(CVMX_L2C_PFC0);
220 case 1:
221 return cvmx_read_csr(CVMX_L2C_PFC1);
222 case 2:
223 return cvmx_read_csr(CVMX_L2C_PFC2);
224 case 3:
225 default:
226 return cvmx_read_csr(CVMX_L2C_PFC3);
227 }
228}
229
230/**
231 * @INTERNAL
232 * Helper function use to fault in cache lines for L2 cache locking
233 *
234 * @addr: Address of base of memory region to read into L2 cache
235 * @len: Length (in bytes) of region to fault in
236 */
237static void fault_in(uint64_t addr, int len)
238{
239 volatile char *ptr;
240 volatile char dummy;
241 /*
242 * Adjust addr and length so we get all cache lines even for
243 * small ranges spanning two cache lines
244 */
245 len += addr & CVMX_CACHE_LINE_MASK;
246 addr &= ~CVMX_CACHE_LINE_MASK;
247 ptr = (volatile char *)cvmx_phys_to_ptr(addr);
248 /*
249 * Invalidate L1 cache to make sure all loads result in data
250 * being in L2.
251 */
252 CVMX_DCACHE_INVALIDATE;
253 while (len > 0) {
254 dummy += *ptr;
255 len -= CVMX_CACHE_LINE_SIZE;
256 ptr += CVMX_CACHE_LINE_SIZE;
257 }
258}
259
260int cvmx_l2c_lock_line(uint64_t addr)
261{
262 int retval = 0;
263 union cvmx_l2c_dbg l2cdbg;
264 union cvmx_l2c_lckbase lckbase;
265 union cvmx_l2c_lckoff lckoff;
266 union cvmx_l2t_err l2t_err;
267 l2cdbg.u64 = 0;
268 lckbase.u64 = 0;
269 lckoff.u64 = 0;
270
271 cvmx_spinlock_lock(&cvmx_l2c_spinlock);
272
273 /* Clear l2t error bits if set */
274 l2t_err.u64 = cvmx_read_csr(CVMX_L2T_ERR);
275 l2t_err.s.lckerr = 1;
276 l2t_err.s.lckerr2 = 1;
277 cvmx_write_csr(CVMX_L2T_ERR, l2t_err.u64);
278
279 addr &= ~CVMX_CACHE_LINE_MASK;
280
281 /* Set this core as debug core */
282 l2cdbg.s.ppnum = cvmx_get_core_num();
283 CVMX_SYNC;
284 cvmx_write_csr(CVMX_L2C_DBG, l2cdbg.u64);
285 cvmx_read_csr(CVMX_L2C_DBG);
286
287 lckoff.s.lck_offset = 0; /* Only lock 1 line at a time */
288 cvmx_write_csr(CVMX_L2C_LCKOFF, lckoff.u64);
289 cvmx_read_csr(CVMX_L2C_LCKOFF);
290
291 if (((union cvmx_l2c_cfg) (cvmx_read_csr(CVMX_L2C_CFG))).s.idxalias) {
292 int alias_shift =
293 CVMX_L2C_IDX_ADDR_SHIFT + 2 * CVMX_L2_SET_BITS - 1;
294 uint64_t addr_tmp =
295 addr ^ (addr & ((1 << alias_shift) - 1)) >>
296 CVMX_L2_SET_BITS;
297 lckbase.s.lck_base = addr_tmp >> 7;
298 } else {
299 lckbase.s.lck_base = addr >> 7;
300 }
301
302 lckbase.s.lck_ena = 1;
303 cvmx_write_csr(CVMX_L2C_LCKBASE, lckbase.u64);
304 cvmx_read_csr(CVMX_L2C_LCKBASE); /* Make sure it gets there */
305
306 fault_in(addr, CVMX_CACHE_LINE_SIZE);
307
308 lckbase.s.lck_ena = 0;
309 cvmx_write_csr(CVMX_L2C_LCKBASE, lckbase.u64);
310 cvmx_read_csr(CVMX_L2C_LCKBASE); /* Make sure it gets there */
311
312 /* Stop being debug core */
313 cvmx_write_csr(CVMX_L2C_DBG, 0);
314 cvmx_read_csr(CVMX_L2C_DBG);
315
316 l2t_err.u64 = cvmx_read_csr(CVMX_L2T_ERR);
317 if (l2t_err.s.lckerr || l2t_err.s.lckerr2)
318 retval = 1; /* We were unable to lock the line */
319
320 cvmx_spinlock_unlock(&cvmx_l2c_spinlock);
321
322 return retval;
323}
324
325int cvmx_l2c_lock_mem_region(uint64_t start, uint64_t len)
326{
327 int retval = 0;
328
329 /* Round start/end to cache line boundaries */
330 len += start & CVMX_CACHE_LINE_MASK;
331 start &= ~CVMX_CACHE_LINE_MASK;
332 len = (len + CVMX_CACHE_LINE_MASK) & ~CVMX_CACHE_LINE_MASK;
333
334 while (len) {
335 retval += cvmx_l2c_lock_line(start);
336 start += CVMX_CACHE_LINE_SIZE;
337 len -= CVMX_CACHE_LINE_SIZE;
338 }
339
340 return retval;
341}
342
343void cvmx_l2c_flush(void)
344{
345 uint64_t assoc, set;
346 uint64_t n_assoc, n_set;
347 union cvmx_l2c_dbg l2cdbg;
348
349 cvmx_spinlock_lock(&cvmx_l2c_spinlock);
350
351 l2cdbg.u64 = 0;
352 if (!OCTEON_IS_MODEL(OCTEON_CN30XX))
353 l2cdbg.s.ppnum = cvmx_get_core_num();
354 l2cdbg.s.finv = 1;
355 n_set = CVMX_L2_SETS;
356 n_assoc = l2_size_half() ? (CVMX_L2_ASSOC / 2) : CVMX_L2_ASSOC;
357 for (set = 0; set < n_set; set++) {
358 for (assoc = 0; assoc < n_assoc; assoc++) {
359 l2cdbg.s.set = assoc;
360 /* Enter debug mode, and make sure all other
361 ** writes complete before we enter debug
362 ** mode */
363 CVMX_SYNCW;
364 cvmx_write_csr(CVMX_L2C_DBG, l2cdbg.u64);
365 cvmx_read_csr(CVMX_L2C_DBG);
366
367 CVMX_PREPARE_FOR_STORE(CVMX_ADD_SEG
368 (CVMX_MIPS_SPACE_XKPHYS,
369 set * CVMX_CACHE_LINE_SIZE), 0);
370 CVMX_SYNCW; /* Push STF out to L2 */
371 /* Exit debug mode */
372 CVMX_SYNC;
373 cvmx_write_csr(CVMX_L2C_DBG, 0);
374 cvmx_read_csr(CVMX_L2C_DBG);
375 }
376 }
377
378 cvmx_spinlock_unlock(&cvmx_l2c_spinlock);
379}
380
381int cvmx_l2c_unlock_line(uint64_t address)
382{
383 int assoc;
384 union cvmx_l2c_tag tag;
385 union cvmx_l2c_dbg l2cdbg;
386 uint32_t tag_addr;
387
388 uint32_t index = cvmx_l2c_address_to_index(address);
389
390 cvmx_spinlock_lock(&cvmx_l2c_spinlock);
391 /* Compute portion of address that is stored in tag */
392 tag_addr =
393 ((address >> CVMX_L2C_TAG_ADDR_ALIAS_SHIFT) &
394 ((1 << CVMX_L2C_TAG_ADDR_ALIAS_SHIFT) - 1));
395 for (assoc = 0; assoc < CVMX_L2_ASSOC; assoc++) {
396 tag = cvmx_get_l2c_tag(assoc, index);
397
398 if (tag.s.V && (tag.s.addr == tag_addr)) {
399 l2cdbg.u64 = 0;
400 l2cdbg.s.ppnum = cvmx_get_core_num();
401 l2cdbg.s.set = assoc;
402 l2cdbg.s.finv = 1;
403
404 CVMX_SYNC;
405 /* Enter debug mode */
406 cvmx_write_csr(CVMX_L2C_DBG, l2cdbg.u64);
407 cvmx_read_csr(CVMX_L2C_DBG);
408
409 CVMX_PREPARE_FOR_STORE(CVMX_ADD_SEG
410 (CVMX_MIPS_SPACE_XKPHYS,
411 address), 0);
412 CVMX_SYNC;
413 /* Exit debug mode */
414 cvmx_write_csr(CVMX_L2C_DBG, 0);
415 cvmx_read_csr(CVMX_L2C_DBG);
416 cvmx_spinlock_unlock(&cvmx_l2c_spinlock);
417 return tag.s.L;
418 }
419 }
420 cvmx_spinlock_unlock(&cvmx_l2c_spinlock);
421 return 0;
422}
423
424int cvmx_l2c_unlock_mem_region(uint64_t start, uint64_t len)
425{
426 int num_unlocked = 0;
427 /* Round start/end to cache line boundaries */
428 len += start & CVMX_CACHE_LINE_MASK;
429 start &= ~CVMX_CACHE_LINE_MASK;
430 len = (len + CVMX_CACHE_LINE_MASK) & ~CVMX_CACHE_LINE_MASK;
431 while (len > 0) {
432 num_unlocked += cvmx_l2c_unlock_line(start);
433 start += CVMX_CACHE_LINE_SIZE;
434 len -= CVMX_CACHE_LINE_SIZE;
435 }
436
437 return num_unlocked;
438}
439
440/*
441 * Internal l2c tag types. These are converted to a generic structure
442 * that can be used on all chips.
443 */
444union __cvmx_l2c_tag {
445 uint64_t u64;
446 struct cvmx_l2c_tag_cn50xx {
447 uint64_t reserved:40;
448 uint64_t V:1; /* Line valid */
449 uint64_t D:1; /* Line dirty */
450 uint64_t L:1; /* Line locked */
451 uint64_t U:1; /* Use, LRU eviction */
452 uint64_t addr:20; /* Phys mem addr (33..14) */
453 } cn50xx;
454 struct cvmx_l2c_tag_cn30xx {
455 uint64_t reserved:41;
456 uint64_t V:1; /* Line valid */
457 uint64_t D:1; /* Line dirty */
458 uint64_t L:1; /* Line locked */
459 uint64_t U:1; /* Use, LRU eviction */
460 uint64_t addr:19; /* Phys mem addr (33..15) */
461 } cn30xx;
462 struct cvmx_l2c_tag_cn31xx {
463 uint64_t reserved:42;
464 uint64_t V:1; /* Line valid */
465 uint64_t D:1; /* Line dirty */
466 uint64_t L:1; /* Line locked */
467 uint64_t U:1; /* Use, LRU eviction */
468 uint64_t addr:18; /* Phys mem addr (33..16) */
469 } cn31xx;
470 struct cvmx_l2c_tag_cn38xx {
471 uint64_t reserved:43;
472 uint64_t V:1; /* Line valid */
473 uint64_t D:1; /* Line dirty */
474 uint64_t L:1; /* Line locked */
475 uint64_t U:1; /* Use, LRU eviction */
476 uint64_t addr:17; /* Phys mem addr (33..17) */
477 } cn38xx;
478 struct cvmx_l2c_tag_cn58xx {
479 uint64_t reserved:44;
480 uint64_t V:1; /* Line valid */
481 uint64_t D:1; /* Line dirty */
482 uint64_t L:1; /* Line locked */
483 uint64_t U:1; /* Use, LRU eviction */
484 uint64_t addr:16; /* Phys mem addr (33..18) */
485 } cn58xx;
486 struct cvmx_l2c_tag_cn58xx cn56xx; /* 2048 sets */
487 struct cvmx_l2c_tag_cn31xx cn52xx; /* 512 sets */
488};
489
490/**
491 * @INTERNAL
492 * Function to read a L2C tag. This code make the current core
493 * the 'debug core' for the L2. This code must only be executed by
494 * 1 core at a time.
495 *
496 * @assoc: Association (way) of the tag to dump
497 * @index: Index of the cacheline
498 *
499 * Returns The Octeon model specific tag structure. This is
500 * translated by a wrapper function to a generic form that is
501 * easier for applications to use.
502 */
503static union __cvmx_l2c_tag __read_l2_tag(uint64_t assoc, uint64_t index)
504{
505
506 uint64_t debug_tag_addr = (((1ULL << 63) | (index << 7)) + 96);
507 uint64_t core = cvmx_get_core_num();
508 union __cvmx_l2c_tag tag_val;
509 uint64_t dbg_addr = CVMX_L2C_DBG;
510 unsigned long flags;
511
512 union cvmx_l2c_dbg debug_val;
513 debug_val.u64 = 0;
514 /*
515 * For low core count parts, the core number is always small enough
516 * to stay in the correct field and not set any reserved bits.
517 */
518 debug_val.s.ppnum = core;
519 debug_val.s.l2t = 1;
520 debug_val.s.set = assoc;
521 /*
522 * Make sure core is quiet (no prefetches, etc.) before
523 * entering debug mode.
524 */
525 CVMX_SYNC;
526 /* Flush L1 to make sure debug load misses L1 */
527 CVMX_DCACHE_INVALIDATE;
528
529 local_irq_save(flags);
530
531 /*
532 * The following must be done in assembly as when in debug
533 * mode all data loads from L2 return special debug data, not
534 * normal memory contents. Also, interrupts must be
535 * disabled, since if an interrupt occurs while in debug mode
536 * the ISR will get debug data from all its memory reads
537 * instead of the contents of memory
538 */
539
540 asm volatile (".set push \n"
541 " .set mips64 \n"
542 " .set noreorder \n"
543 /* Enter debug mode, wait for store */
544 " sd %[dbg_val], 0(%[dbg_addr]) \n"
545 " ld $0, 0(%[dbg_addr]) \n"
546 /* Read L2C tag data */
547 " ld %[tag_val], 0(%[tag_addr]) \n"
548 /* Exit debug mode, wait for store */
549 " sd $0, 0(%[dbg_addr]) \n"
550 " ld $0, 0(%[dbg_addr]) \n"
551 /* Invalidate dcache to discard debug data */
552 " cache 9, 0($0) \n"
553 " .set pop" :
554 [tag_val] "=r"(tag_val.u64) : [dbg_addr] "r"(dbg_addr),
555 [dbg_val] "r"(debug_val.u64),
556 [tag_addr] "r"(debug_tag_addr) : "memory");
557
558 local_irq_restore(flags);
559 return tag_val;
560
561}
562
563union cvmx_l2c_tag cvmx_l2c_get_tag(uint32_t association, uint32_t index)
564{
565 union __cvmx_l2c_tag tmp_tag;
566 union cvmx_l2c_tag tag;
567 tag.u64 = 0;
568
569 if ((int)association >= cvmx_l2c_get_num_assoc()) {
570 cvmx_dprintf
571 ("ERROR: cvmx_get_l2c_tag association out of range\n");
572 return tag;
573 }
574 if ((int)index >= cvmx_l2c_get_num_sets()) {
575 cvmx_dprintf("ERROR: cvmx_get_l2c_tag "
576 "index out of range (arg: %d, max: %d\n",
577 index, cvmx_l2c_get_num_sets());
578 return tag;
579 }
580 /* __read_l2_tag is intended for internal use only */
581 tmp_tag = __read_l2_tag(association, index);
582
583 /*
584 * Convert all tag structure types to generic version, as it
585 * can represent all models.
586 */
587 if (OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN56XX)) {
588 tag.s.V = tmp_tag.cn58xx.V;
589 tag.s.D = tmp_tag.cn58xx.D;
590 tag.s.L = tmp_tag.cn58xx.L;
591 tag.s.U = tmp_tag.cn58xx.U;
592 tag.s.addr = tmp_tag.cn58xx.addr;
593 } else if (OCTEON_IS_MODEL(OCTEON_CN38XX)) {
594 tag.s.V = tmp_tag.cn38xx.V;
595 tag.s.D = tmp_tag.cn38xx.D;
596 tag.s.L = tmp_tag.cn38xx.L;
597 tag.s.U = tmp_tag.cn38xx.U;
598 tag.s.addr = tmp_tag.cn38xx.addr;
599 } else if (OCTEON_IS_MODEL(OCTEON_CN31XX)
600 || OCTEON_IS_MODEL(OCTEON_CN52XX)) {
601 tag.s.V = tmp_tag.cn31xx.V;
602 tag.s.D = tmp_tag.cn31xx.D;
603 tag.s.L = tmp_tag.cn31xx.L;
604 tag.s.U = tmp_tag.cn31xx.U;
605 tag.s.addr = tmp_tag.cn31xx.addr;
606 } else if (OCTEON_IS_MODEL(OCTEON_CN30XX)) {
607 tag.s.V = tmp_tag.cn30xx.V;
608 tag.s.D = tmp_tag.cn30xx.D;
609 tag.s.L = tmp_tag.cn30xx.L;
610 tag.s.U = tmp_tag.cn30xx.U;
611 tag.s.addr = tmp_tag.cn30xx.addr;
612 } else if (OCTEON_IS_MODEL(OCTEON_CN50XX)) {
613 tag.s.V = tmp_tag.cn50xx.V;
614 tag.s.D = tmp_tag.cn50xx.D;
615 tag.s.L = tmp_tag.cn50xx.L;
616 tag.s.U = tmp_tag.cn50xx.U;
617 tag.s.addr = tmp_tag.cn50xx.addr;
618 } else {
619 cvmx_dprintf("Unsupported OCTEON Model in %s\n", __func__);
620 }
621
622 return tag;
623}
624
625uint32_t cvmx_l2c_address_to_index(uint64_t addr)
626{
627 uint64_t idx = addr >> CVMX_L2C_IDX_ADDR_SHIFT;
628 union cvmx_l2c_cfg l2c_cfg;
629 l2c_cfg.u64 = cvmx_read_csr(CVMX_L2C_CFG);
630
631 if (l2c_cfg.s.idxalias) {
632 idx ^=
633 ((addr & CVMX_L2C_ALIAS_MASK) >>
634 CVMX_L2C_TAG_ADDR_ALIAS_SHIFT);
635 }
636 idx &= CVMX_L2C_IDX_MASK;
637 return idx;
638}
639
640int cvmx_l2c_get_cache_size_bytes(void)
641{
642 return cvmx_l2c_get_num_sets() * cvmx_l2c_get_num_assoc() *
643 CVMX_CACHE_LINE_SIZE;
644}
645
646/**
647 * Return log base 2 of the number of sets in the L2 cache
648 * Returns
649 */
650int cvmx_l2c_get_set_bits(void)
651{
652 int l2_set_bits;
653 if (OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX))
654 l2_set_bits = 11; /* 2048 sets */
655 else if (OCTEON_IS_MODEL(OCTEON_CN38XX))
656 l2_set_bits = 10; /* 1024 sets */
657 else if (OCTEON_IS_MODEL(OCTEON_CN31XX)
658 || OCTEON_IS_MODEL(OCTEON_CN52XX))
659 l2_set_bits = 9; /* 512 sets */
660 else if (OCTEON_IS_MODEL(OCTEON_CN30XX))
661 l2_set_bits = 8; /* 256 sets */
662 else if (OCTEON_IS_MODEL(OCTEON_CN50XX))
663 l2_set_bits = 7; /* 128 sets */
664 else {
665 cvmx_dprintf("Unsupported OCTEON Model in %s\n", __func__);
666 l2_set_bits = 11; /* 2048 sets */
667 }
668 return l2_set_bits;
669
670}
671
672/* Return the number of sets in the L2 Cache */
673int cvmx_l2c_get_num_sets(void)
674{
675 return 1 << cvmx_l2c_get_set_bits();
676}
677
678/* Return the number of associations in the L2 Cache */
679int cvmx_l2c_get_num_assoc(void)
680{
681 int l2_assoc;
682 if (OCTEON_IS_MODEL(OCTEON_CN56XX) ||
683 OCTEON_IS_MODEL(OCTEON_CN52XX) ||
684 OCTEON_IS_MODEL(OCTEON_CN58XX) ||
685 OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN38XX))
686 l2_assoc = 8;
687 else if (OCTEON_IS_MODEL(OCTEON_CN31XX) ||
688 OCTEON_IS_MODEL(OCTEON_CN30XX))
689 l2_assoc = 4;
690 else {
691 cvmx_dprintf("Unsupported OCTEON Model in %s\n", __func__);
692 l2_assoc = 8;
693 }
694
695 /* Check to see if part of the cache is disabled */
696 if (cvmx_fuse_read(265))
697 l2_assoc = l2_assoc >> 2;
698 else if (cvmx_fuse_read(264))
699 l2_assoc = l2_assoc >> 1;
700
701 return l2_assoc;
702}
703
704/**
705 * Flush a line from the L2 cache
706 * This should only be called from one core at a time, as this routine
707 * sets the core to the 'debug' core in order to flush the line.
708 *
709 * @assoc: Association (or way) to flush
710 * @index: Index to flush
711 */
712void cvmx_l2c_flush_line(uint32_t assoc, uint32_t index)
713{
714 union cvmx_l2c_dbg l2cdbg;
715
716 l2cdbg.u64 = 0;
717 l2cdbg.s.ppnum = cvmx_get_core_num();
718 l2cdbg.s.finv = 1;
719
720 l2cdbg.s.set = assoc;
721 /*
722 * Enter debug mode, and make sure all other writes complete
723 * before we enter debug mode.
724 */
725 asm volatile ("sync" : : : "memory");
726 cvmx_write_csr(CVMX_L2C_DBG, l2cdbg.u64);
727 cvmx_read_csr(CVMX_L2C_DBG);
728
729 CVMX_PREPARE_FOR_STORE(((1ULL << 63) + (index) * 128), 0);
730 /* Exit debug mode */
731 asm volatile ("sync" : : : "memory");
732 cvmx_write_csr(CVMX_L2C_DBG, 0);
733 cvmx_read_csr(CVMX_L2C_DBG);
734}
diff --git a/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c b/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c
new file mode 100644
index 000000000000..4812370706a1
--- /dev/null
+++ b/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c
@@ -0,0 +1,116 @@
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/*
29 * This module provides system/board/application information obtained
30 * by the bootloader.
31 */
32
33#include <asm/octeon/cvmx.h>
34#include <asm/octeon/cvmx-spinlock.h>
35#include <asm/octeon/cvmx-sysinfo.h>
36
37/**
38 * This structure defines the private state maintained by sysinfo module.
39 *
40 */
41static struct {
42 struct cvmx_sysinfo sysinfo; /* system information */
43 cvmx_spinlock_t lock; /* mutex spinlock */
44
45} state = {
46 .lock = CVMX_SPINLOCK_UNLOCKED_INITIALIZER
47};
48
49
50/*
51 * Global variables that define the min/max of the memory region set
52 * up for 32 bit userspace access.
53 */
54uint64_t linux_mem32_min;
55uint64_t linux_mem32_max;
56uint64_t linux_mem32_wired;
57uint64_t linux_mem32_offset;
58
59/**
60 * This function returns the application information as obtained
61 * by the bootloader. This provides the core mask of the cores
62 * running the same application image, as well as the physical
63 * memory regions available to the core.
64 *
65 * Returns Pointer to the boot information structure
66 *
67 */
68struct cvmx_sysinfo *cvmx_sysinfo_get(void)
69{
70 return &(state.sysinfo);
71}
72
73/**
74 * This function is used in non-simple executive environments (such as
75 * Linux kernel, u-boot, etc.) to configure the minimal fields that
76 * are required to use simple executive files directly.
77 *
78 * Locking (if required) must be handled outside of this
79 * function
80 *
81 * @phy_mem_desc_ptr:
82 * Pointer to global physical memory descriptor
83 * (bootmem descriptor) @board_type: Octeon board
84 * type enumeration
85 *
86 * @board_rev_major:
87 * Board major revision
88 * @board_rev_minor:
89 * Board minor revision
90 * @cpu_clock_hz:
91 * CPU clock freqency in hertz
92 *
93 * Returns 0: Failure
94 * 1: success
95 */
96int cvmx_sysinfo_minimal_initialize(void *phy_mem_desc_ptr,
97 uint16_t board_type,
98 uint8_t board_rev_major,
99 uint8_t board_rev_minor,
100 uint32_t cpu_clock_hz)
101{
102
103 /* The sysinfo structure was already initialized */
104 if (state.sysinfo.board_type)
105 return 0;
106
107 memset(&(state.sysinfo), 0x0, sizeof(state.sysinfo));
108 state.sysinfo.phy_mem_desc_ptr = phy_mem_desc_ptr;
109 state.sysinfo.board_type = board_type;
110 state.sysinfo.board_rev_major = board_rev_major;
111 state.sysinfo.board_rev_minor = board_rev_minor;
112 state.sysinfo.cpu_clock_hz = cpu_clock_hz;
113
114 return 1;
115}
116
diff --git a/arch/mips/cavium-octeon/executive/octeon-model.c b/arch/mips/cavium-octeon/executive/octeon-model.c
new file mode 100644
index 000000000000..9afc3794ed1b
--- /dev/null
+++ b/arch/mips/cavium-octeon/executive/octeon-model.c
@@ -0,0 +1,358 @@
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/*
29 * File defining functions for working with different Octeon
30 * models.
31 */
32#include <asm/octeon/octeon.h>
33
34/**
35 * Given the chip processor ID from COP0, this function returns a
36 * string representing the chip model number. The string is of the
37 * form CNXXXXpX.X-FREQ-SUFFIX.
38 * - XXXX = The chip model number
39 * - X.X = Chip pass number
40 * - FREQ = Current frequency in Mhz
41 * - SUFFIX = NSP, EXP, SCP, SSP, or CP
42 *
43 * @chip_id: Chip ID
44 *
45 * Returns Model string
46 */
47const char *octeon_model_get_string(uint32_t chip_id)
48{
49 static char buffer[32];
50 return octeon_model_get_string_buffer(chip_id, buffer);
51}
52
53/*
54 * Version of octeon_model_get_string() that takes buffer as argument,
55 * as running early in u-boot static/global variables don't work when
56 * running from flash.
57 */
58const char *octeon_model_get_string_buffer(uint32_t chip_id, char *buffer)
59{
60 const char *family;
61 const char *core_model;
62 char pass[4];
63 int clock_mhz;
64 const char *suffix;
65 union cvmx_l2d_fus3 fus3;
66 int num_cores;
67 union cvmx_mio_fus_dat2 fus_dat2;
68 union cvmx_mio_fus_dat3 fus_dat3;
69 char fuse_model[10];
70 uint32_t fuse_data = 0;
71
72 fus3.u64 = cvmx_read_csr(CVMX_L2D_FUS3);
73 fus_dat2.u64 = cvmx_read_csr(CVMX_MIO_FUS_DAT2);
74 fus_dat3.u64 = cvmx_read_csr(CVMX_MIO_FUS_DAT3);
75
76 num_cores = cvmx_octeon_num_cores();
77
78 /* Make sure the non existant devices look disabled */
79 switch ((chip_id >> 8) & 0xff) {
80 case 6: /* CN50XX */
81 case 2: /* CN30XX */
82 fus_dat3.s.nodfa_dte = 1;
83 fus_dat3.s.nozip = 1;
84 break;
85 case 4: /* CN57XX or CN56XX */
86 fus_dat3.s.nodfa_dte = 1;
87 break;
88 default:
89 break;
90 }
91
92 /* Make a guess at the suffix */
93 /* NSP = everything */
94 /* EXP = No crypto */
95 /* SCP = No DFA, No zip */
96 /* CP = No DFA, No crypto, No zip */
97 if (fus_dat3.s.nodfa_dte) {
98 if (fus_dat2.s.nocrypto)
99 suffix = "CP";
100 else
101 suffix = "SCP";
102 } else if (fus_dat2.s.nocrypto)
103 suffix = "EXP";
104 else
105 suffix = "NSP";
106
107 /*
108 * Assume pass number is encoded using <5:3><2:0>. Exceptions
109 * will be fixed later.
110 */
111 sprintf(pass, "%u.%u", ((chip_id >> 3) & 7) + 1, chip_id & 7);
112
113 /*
114 * Use the number of cores to determine the last 2 digits of
115 * the model number. There are some exceptions that are fixed
116 * later.
117 */
118 switch (num_cores) {
119 case 16:
120 core_model = "60";
121 break;
122 case 15:
123 core_model = "58";
124 break;
125 case 14:
126 core_model = "55";
127 break;
128 case 13:
129 core_model = "52";
130 break;
131 case 12:
132 core_model = "50";
133 break;
134 case 11:
135 core_model = "48";
136 break;
137 case 10:
138 core_model = "45";
139 break;
140 case 9:
141 core_model = "42";
142 break;
143 case 8:
144 core_model = "40";
145 break;
146 case 7:
147 core_model = "38";
148 break;
149 case 6:
150 core_model = "34";
151 break;
152 case 5:
153 core_model = "32";
154 break;
155 case 4:
156 core_model = "30";
157 break;
158 case 3:
159 core_model = "25";
160 break;
161 case 2:
162 core_model = "20";
163 break;
164 case 1:
165 core_model = "10";
166 break;
167 default:
168 core_model = "XX";
169 break;
170 }
171
172 /* Now figure out the family, the first two digits */
173 switch ((chip_id >> 8) & 0xff) {
174 case 0: /* CN38XX, CN37XX or CN36XX */
175 if (fus3.cn38xx.crip_512k) {
176 /*
177 * For some unknown reason, the 16 core one is
178 * called 37 instead of 36.
179 */
180 if (num_cores >= 16)
181 family = "37";
182 else
183 family = "36";
184 } else
185 family = "38";
186 /*
187 * This series of chips didn't follow the standard
188 * pass numbering.
189 */
190 switch (chip_id & 0xf) {
191 case 0:
192 strcpy(pass, "1.X");
193 break;
194 case 1:
195 strcpy(pass, "2.X");
196 break;
197 case 3:
198 strcpy(pass, "3.X");
199 break;
200 default:
201 strcpy(pass, "X.X");
202 break;
203 }
204 break;
205 case 1: /* CN31XX or CN3020 */
206 if ((chip_id & 0x10) || fus3.cn31xx.crip_128k)
207 family = "30";
208 else
209 family = "31";
210 /*
211 * This series of chips didn't follow the standard
212 * pass numbering.
213 */
214 switch (chip_id & 0xf) {
215 case 0:
216 strcpy(pass, "1.0");
217 break;
218 case 2:
219 strcpy(pass, "1.1");
220 break;
221 default:
222 strcpy(pass, "X.X");
223 break;
224 }
225 break;
226 case 2: /* CN3010 or CN3005 */
227 family = "30";
228 /* A chip with half cache is an 05 */
229 if (fus3.cn30xx.crip_64k)
230 core_model = "05";
231 /*
232 * This series of chips didn't follow the standard
233 * pass numbering.
234 */
235 switch (chip_id & 0xf) {
236 case 0:
237 strcpy(pass, "1.0");
238 break;
239 case 2:
240 strcpy(pass, "1.1");
241 break;
242 default:
243 strcpy(pass, "X.X");
244 break;
245 }
246 break;
247 case 3: /* CN58XX */
248 family = "58";
249 /* Special case. 4 core, no crypto */
250 if ((num_cores == 4) && fus_dat2.cn38xx.nocrypto)
251 core_model = "29";
252
253 /* Pass 1 uses different encodings for pass numbers */
254 if ((chip_id & 0xFF) < 0x8) {
255 switch (chip_id & 0x3) {
256 case 0:
257 strcpy(pass, "1.0");
258 break;
259 case 1:
260 strcpy(pass, "1.1");
261 break;
262 case 3:
263 strcpy(pass, "1.2");
264 break;
265 default:
266 strcpy(pass, "1.X");
267 break;
268 }
269 }
270 break;
271 case 4: /* CN57XX, CN56XX, CN55XX, CN54XX */
272 if (fus_dat2.cn56xx.raid_en) {
273 if (fus3.cn56xx.crip_1024k)
274 family = "55";
275 else
276 family = "57";
277 if (fus_dat2.cn56xx.nocrypto)
278 suffix = "SP";
279 else
280 suffix = "SSP";
281 } else {
282 if (fus_dat2.cn56xx.nocrypto)
283 suffix = "CP";
284 else {
285 suffix = "NSP";
286 if (fus_dat3.s.nozip)
287 suffix = "SCP";
288 }
289 if (fus3.cn56xx.crip_1024k)
290 family = "54";
291 else
292 family = "56";
293 }
294 break;
295 case 6: /* CN50XX */
296 family = "50";
297 break;
298 case 7: /* CN52XX */
299 if (fus3.cn52xx.crip_256k)
300 family = "51";
301 else
302 family = "52";
303 break;
304 default:
305 family = "XX";
306 core_model = "XX";
307 strcpy(pass, "X.X");
308 suffix = "XXX";
309 break;
310 }
311
312 clock_mhz = octeon_get_clock_rate() / 1000000;
313
314 if (family[0] != '3') {
315 /* Check for model in fuses, overrides normal decode */
316 /* This is _not_ valid for Octeon CN3XXX models */
317 fuse_data |= cvmx_fuse_read_byte(51);
318 fuse_data = fuse_data << 8;
319 fuse_data |= cvmx_fuse_read_byte(50);
320 fuse_data = fuse_data << 8;
321 fuse_data |= cvmx_fuse_read_byte(49);
322 fuse_data = fuse_data << 8;
323 fuse_data |= cvmx_fuse_read_byte(48);
324 if (fuse_data & 0x7ffff) {
325 int model = fuse_data & 0x3fff;
326 int suffix = (fuse_data >> 14) & 0x1f;
327 if (suffix && model) {
328 /*
329 * Have both number and suffix in
330 * fuses, so both
331 */
332 sprintf(fuse_model, "%d%c",
333 model, 'A' + suffix - 1);
334 core_model = "";
335 family = fuse_model;
336 } else if (suffix && !model) {
337 /*
338 * Only have suffix, so add suffix to
339 * 'normal' model number.
340 */
341 sprintf(fuse_model, "%s%c", core_model,
342 'A' + suffix - 1);
343 core_model = fuse_model;
344 } else {
345 /*
346 * Don't have suffix, so just use
347 * model from fuses.
348 */
349 sprintf(fuse_model, "%d", model);
350 core_model = "";
351 family = fuse_model;
352 }
353 }
354 }
355 sprintf(buffer, "CN%s%sp%s-%d-%s",
356 family, core_model, pass, clock_mhz, suffix);
357 return buffer;
358}
diff --git a/arch/mips/cavium-octeon/flash_setup.c b/arch/mips/cavium-octeon/flash_setup.c
new file mode 100644
index 000000000000..553d36cbcc42
--- /dev/null
+++ b/arch/mips/cavium-octeon/flash_setup.c
@@ -0,0 +1,84 @@
1/*
2 * Octeon Bootbus flash setup
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
6 * for more details.
7 *
8 * Copyright (C) 2007, 2008 Cavium Networks
9 */
10#include <linux/kernel.h>
11#include <linux/mtd/mtd.h>
12#include <linux/mtd/map.h>
13#include <linux/mtd/partitions.h>
14
15#include <asm/octeon/octeon.h>
16
17static struct map_info flash_map;
18static struct mtd_info *mymtd;
19#ifdef CONFIG_MTD_PARTITIONS
20static int nr_parts;
21static struct mtd_partition *parts;
22static const char *part_probe_types[] = {
23 "cmdlinepart",
24#ifdef CONFIG_MTD_REDBOOT_PARTS
25 "RedBoot",
26#endif
27 NULL
28};
29#endif
30
31/**
32 * Module/ driver initialization.
33 *
34 * Returns Zero on success
35 */
36static int __init flash_init(void)
37{
38 /*
39 * Read the bootbus region 0 setup to determine the base
40 * address of the flash.
41 */
42 union cvmx_mio_boot_reg_cfgx region_cfg;
43 region_cfg.u64 = cvmx_read_csr(CVMX_MIO_BOOT_REG_CFGX(0));
44 if (region_cfg.s.en) {
45 /*
46 * The bootloader always takes the flash and sets its
47 * address so the entire flash fits below
48 * 0x1fc00000. This way the flash aliases to
49 * 0x1fc00000 for booting. Software can access the
50 * full flash at the true address, while core boot can
51 * access 4MB.
52 */
53 /* Use this name so old part lines work */
54 flash_map.name = "phys_mapped_flash";
55 flash_map.phys = region_cfg.s.base << 16;
56 flash_map.size = 0x1fc00000 - flash_map.phys;
57 flash_map.bankwidth = 1;
58 flash_map.virt = ioremap(flash_map.phys, flash_map.size);
59 pr_notice("Bootbus flash: Setting flash for %luMB flash at "
60 "0x%08lx\n", flash_map.size >> 20, flash_map.phys);
61 simple_map_init(&flash_map);
62 mymtd = do_map_probe("cfi_probe", &flash_map);
63 if (mymtd) {
64 mymtd->owner = THIS_MODULE;
65
66#ifdef CONFIG_MTD_PARTITIONS
67 nr_parts = parse_mtd_partitions(mymtd,
68 part_probe_types,
69 &parts, 0);
70 if (nr_parts > 0)
71 add_mtd_partitions(mymtd, parts, nr_parts);
72 else
73 add_mtd_device(mymtd);
74#else
75 add_mtd_device(mymtd);
76#endif
77 } else {
78 pr_err("Failed to register MTD device for flash\n");
79 }
80 }
81 return 0;
82}
83
84late_initcall(flash_init);
diff --git a/arch/mips/cavium-octeon/octeon-irq.c b/arch/mips/cavium-octeon/octeon-irq.c
new file mode 100644
index 000000000000..fc72984a5dae
--- /dev/null
+++ b/arch/mips/cavium-octeon/octeon-irq.c
@@ -0,0 +1,497 @@
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-2008 Cavium Networks
7 */
8#include <linux/irq.h>
9#include <linux/interrupt.h>
10#include <linux/hardirq.h>
11
12#include <asm/octeon/octeon.h>
13
14DEFINE_RWLOCK(octeon_irq_ciu0_rwlock);
15DEFINE_RWLOCK(octeon_irq_ciu1_rwlock);
16DEFINE_SPINLOCK(octeon_irq_msi_lock);
17
18static void octeon_irq_core_ack(unsigned int irq)
19{
20 unsigned int bit = irq - OCTEON_IRQ_SW0;
21 /*
22 * We don't need to disable IRQs to make these atomic since
23 * they are already disabled earlier in the low level
24 * interrupt code.
25 */
26 clear_c0_status(0x100 << bit);
27 /* The two user interrupts must be cleared manually. */
28 if (bit < 2)
29 clear_c0_cause(0x100 << bit);
30}
31
32static void octeon_irq_core_eoi(unsigned int irq)
33{
34 irq_desc_t *desc = irq_desc + irq;
35 unsigned int bit = irq - OCTEON_IRQ_SW0;
36 /*
37 * If an IRQ is being processed while we are disabling it the
38 * handler will attempt to unmask the interrupt after it has
39 * been disabled.
40 */
41 if (desc->status & IRQ_DISABLED)
42 return;
43
44 /* There is a race here. We should fix it. */
45
46 /*
47 * We don't need to disable IRQs to make these atomic since
48 * they are already disabled earlier in the low level
49 * interrupt code.
50 */
51 set_c0_status(0x100 << bit);
52}
53
54static void octeon_irq_core_enable(unsigned int irq)
55{
56 unsigned long flags;
57 unsigned int bit = irq - OCTEON_IRQ_SW0;
58
59 /*
60 * We need to disable interrupts to make sure our updates are
61 * atomic.
62 */
63 local_irq_save(flags);
64 set_c0_status(0x100 << bit);
65 local_irq_restore(flags);
66}
67
68static void octeon_irq_core_disable_local(unsigned int irq)
69{
70 unsigned long flags;
71 unsigned int bit = irq - OCTEON_IRQ_SW0;
72 /*
73 * We need to disable interrupts to make sure our updates are
74 * atomic.
75 */
76 local_irq_save(flags);
77 clear_c0_status(0x100 << bit);
78 local_irq_restore(flags);
79}
80
81static void octeon_irq_core_disable(unsigned int irq)
82{
83#ifdef CONFIG_SMP
84 on_each_cpu((void (*)(void *)) octeon_irq_core_disable_local,
85 (void *) (long) irq, 1);
86#else
87 octeon_irq_core_disable_local(irq);
88#endif
89}
90
91static struct irq_chip octeon_irq_chip_core = {
92 .name = "Core",
93 .enable = octeon_irq_core_enable,
94 .disable = octeon_irq_core_disable,
95 .ack = octeon_irq_core_ack,
96 .eoi = octeon_irq_core_eoi,
97};
98
99
100static void octeon_irq_ciu0_ack(unsigned int irq)
101{
102 /*
103 * In order to avoid any locking accessing the CIU, we
104 * acknowledge CIU interrupts by disabling all of them. This
105 * way we can use a per core register and avoid any out of
106 * core locking requirements. This has the side affect that
107 * CIU interrupts can't be processed recursively.
108 *
109 * We don't need to disable IRQs to make these atomic since
110 * they are already disabled earlier in the low level
111 * interrupt code.
112 */
113 clear_c0_status(0x100 << 2);
114}
115
116static void octeon_irq_ciu0_eoi(unsigned int irq)
117{
118 /*
119 * Enable all CIU interrupts again. We don't need to disable
120 * IRQs to make these atomic since they are already disabled
121 * earlier in the low level interrupt code.
122 */
123 set_c0_status(0x100 << 2);
124}
125
126static void octeon_irq_ciu0_enable(unsigned int irq)
127{
128 int coreid = cvmx_get_core_num();
129 unsigned long flags;
130 uint64_t en0;
131 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */
132
133 /*
134 * A read lock is used here to make sure only one core is ever
135 * updating the CIU enable bits at a time. During an enable
136 * the cores don't interfere with each other. During a disable
137 * the write lock stops any enables that might cause a
138 * problem.
139 */
140 read_lock_irqsave(&octeon_irq_ciu0_rwlock, flags);
141 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
142 en0 |= 1ull << bit;
143 cvmx_write_csr(CVMX_CIU_INTX_EN0(coreid * 2), en0);
144 cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
145 read_unlock_irqrestore(&octeon_irq_ciu0_rwlock, flags);
146}
147
148static void octeon_irq_ciu0_disable(unsigned int irq)
149{
150 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */
151 unsigned long flags;
152 uint64_t en0;
153#ifdef CONFIG_SMP
154 int cpu;
155 write_lock_irqsave(&octeon_irq_ciu0_rwlock, flags);
156 for_each_online_cpu(cpu) {
157 int coreid = cpu_logical_map(cpu);
158 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
159 en0 &= ~(1ull << bit);
160 cvmx_write_csr(CVMX_CIU_INTX_EN0(coreid * 2), en0);
161 }
162 /*
163 * We need to do a read after the last update to make sure all
164 * of them are done.
165 */
166 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2));
167 write_unlock_irqrestore(&octeon_irq_ciu0_rwlock, flags);
168#else
169 int coreid = cvmx_get_core_num();
170 local_irq_save(flags);
171 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
172 en0 &= ~(1ull << bit);
173 cvmx_write_csr(CVMX_CIU_INTX_EN0(coreid * 2), en0);
174 cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
175 local_irq_restore(flags);
176#endif
177}
178
179#ifdef CONFIG_SMP
180static void octeon_irq_ciu0_set_affinity(unsigned int irq, const struct cpumask *dest)
181{
182 int cpu;
183 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */
184
185 write_lock(&octeon_irq_ciu0_rwlock);
186 for_each_online_cpu(cpu) {
187 int coreid = cpu_logical_map(cpu);
188 uint64_t en0 =
189 cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
190 if (cpumask_test_cpu(cpu, dest))
191 en0 |= 1ull << bit;
192 else
193 en0 &= ~(1ull << bit);
194 cvmx_write_csr(CVMX_CIU_INTX_EN0(coreid * 2), en0);
195 }
196 /*
197 * We need to do a read after the last update to make sure all
198 * of them are done.
199 */
200 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2));
201 write_unlock(&octeon_irq_ciu0_rwlock);
202}
203#endif
204
205static struct irq_chip octeon_irq_chip_ciu0 = {
206 .name = "CIU0",
207 .enable = octeon_irq_ciu0_enable,
208 .disable = octeon_irq_ciu0_disable,
209 .ack = octeon_irq_ciu0_ack,
210 .eoi = octeon_irq_ciu0_eoi,
211#ifdef CONFIG_SMP
212 .set_affinity = octeon_irq_ciu0_set_affinity,
213#endif
214};
215
216
217static void octeon_irq_ciu1_ack(unsigned int irq)
218{
219 /*
220 * In order to avoid any locking accessing the CIU, we
221 * acknowledge CIU interrupts by disabling all of them. This
222 * way we can use a per core register and avoid any out of
223 * core locking requirements. This has the side affect that
224 * CIU interrupts can't be processed recursively. We don't
225 * need to disable IRQs to make these atomic since they are
226 * already disabled earlier in the low level interrupt code.
227 */
228 clear_c0_status(0x100 << 3);
229}
230
231static void octeon_irq_ciu1_eoi(unsigned int irq)
232{
233 /*
234 * Enable all CIU interrupts again. We don't need to disable
235 * IRQs to make these atomic since they are already disabled
236 * earlier in the low level interrupt code.
237 */
238 set_c0_status(0x100 << 3);
239}
240
241static void octeon_irq_ciu1_enable(unsigned int irq)
242{
243 int coreid = cvmx_get_core_num();
244 unsigned long flags;
245 uint64_t en1;
246 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */
247
248 /*
249 * A read lock is used here to make sure only one core is ever
250 * updating the CIU enable bits at a time. During an enable
251 * the cores don't interfere with each other. During a disable
252 * the write lock stops any enables that might cause a
253 * problem.
254 */
255 read_lock_irqsave(&octeon_irq_ciu1_rwlock, flags);
256 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
257 en1 |= 1ull << bit;
258 cvmx_write_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1), en1);
259 cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
260 read_unlock_irqrestore(&octeon_irq_ciu1_rwlock, flags);
261}
262
263static void octeon_irq_ciu1_disable(unsigned int irq)
264{
265 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */
266 unsigned long flags;
267 uint64_t en1;
268#ifdef CONFIG_SMP
269 int cpu;
270 write_lock_irqsave(&octeon_irq_ciu1_rwlock, flags);
271 for_each_online_cpu(cpu) {
272 int coreid = cpu_logical_map(cpu);
273 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
274 en1 &= ~(1ull << bit);
275 cvmx_write_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1), en1);
276 }
277 /*
278 * We need to do a read after the last update to make sure all
279 * of them are done.
280 */
281 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1));
282 write_unlock_irqrestore(&octeon_irq_ciu1_rwlock, flags);
283#else
284 int coreid = cvmx_get_core_num();
285 local_irq_save(flags);
286 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
287 en1 &= ~(1ull << bit);
288 cvmx_write_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1), en1);
289 cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
290 local_irq_restore(flags);
291#endif
292}
293
294#ifdef CONFIG_SMP
295static void octeon_irq_ciu1_set_affinity(unsigned int irq, const struct cpumask *dest)
296{
297 int cpu;
298 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */
299
300 write_lock(&octeon_irq_ciu1_rwlock);
301 for_each_online_cpu(cpu) {
302 int coreid = cpu_logical_map(cpu);
303 uint64_t en1 =
304 cvmx_read_csr(CVMX_CIU_INTX_EN1
305 (coreid * 2 + 1));
306 if (cpumask_test_cpu(cpu, dest))
307 en1 |= 1ull << bit;
308 else
309 en1 &= ~(1ull << bit);
310 cvmx_write_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1), en1);
311 }
312 /*
313 * We need to do a read after the last update to make sure all
314 * of them are done.
315 */
316 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1));
317 write_unlock(&octeon_irq_ciu1_rwlock);
318}
319#endif
320
321static struct irq_chip octeon_irq_chip_ciu1 = {
322 .name = "CIU1",
323 .enable = octeon_irq_ciu1_enable,
324 .disable = octeon_irq_ciu1_disable,
325 .ack = octeon_irq_ciu1_ack,
326 .eoi = octeon_irq_ciu1_eoi,
327#ifdef CONFIG_SMP
328 .set_affinity = octeon_irq_ciu1_set_affinity,
329#endif
330};
331
332#ifdef CONFIG_PCI_MSI
333
334static void octeon_irq_msi_ack(unsigned int irq)
335{
336 if (!octeon_has_feature(OCTEON_FEATURE_PCIE)) {
337 /* These chips have PCI */
338 cvmx_write_csr(CVMX_NPI_NPI_MSI_RCV,
339 1ull << (irq - OCTEON_IRQ_MSI_BIT0));
340 } else {
341 /*
342 * These chips have PCIe. Thankfully the ACK doesn't
343 * need any locking.
344 */
345 cvmx_write_csr(CVMX_PEXP_NPEI_MSI_RCV0,
346 1ull << (irq - OCTEON_IRQ_MSI_BIT0));
347 }
348}
349
350static void octeon_irq_msi_eoi(unsigned int irq)
351{
352 /* Nothing needed */
353}
354
355static void octeon_irq_msi_enable(unsigned int irq)
356{
357 if (!octeon_has_feature(OCTEON_FEATURE_PCIE)) {
358 /*
359 * Octeon PCI doesn't have the ability to mask/unmask
360 * MSI interrupts individually. Instead of
361 * masking/unmasking them in groups of 16, we simple
362 * assume MSI devices are well behaved. MSI
363 * interrupts are always enable and the ACK is assumed
364 * to be enough.
365 */
366 } else {
367 /* These chips have PCIe. Note that we only support
368 * the first 64 MSI interrupts. Unfortunately all the
369 * MSI enables are in the same register. We use
370 * MSI0's lock to control access to them all.
371 */
372 uint64_t en;
373 unsigned long flags;
374 spin_lock_irqsave(&octeon_irq_msi_lock, flags);
375 en = cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
376 en |= 1ull << (irq - OCTEON_IRQ_MSI_BIT0);
377 cvmx_write_csr(CVMX_PEXP_NPEI_MSI_ENB0, en);
378 cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
379 spin_unlock_irqrestore(&octeon_irq_msi_lock, flags);
380 }
381}
382
383static void octeon_irq_msi_disable(unsigned int irq)
384{
385 if (!octeon_has_feature(OCTEON_FEATURE_PCIE)) {
386 /* See comment in enable */
387 } else {
388 /*
389 * These chips have PCIe. Note that we only support
390 * the first 64 MSI interrupts. Unfortunately all the
391 * MSI enables are in the same register. We use
392 * MSI0's lock to control access to them all.
393 */
394 uint64_t en;
395 unsigned long flags;
396 spin_lock_irqsave(&octeon_irq_msi_lock, flags);
397 en = cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
398 en &= ~(1ull << (irq - OCTEON_IRQ_MSI_BIT0));
399 cvmx_write_csr(CVMX_PEXP_NPEI_MSI_ENB0, en);
400 cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
401 spin_unlock_irqrestore(&octeon_irq_msi_lock, flags);
402 }
403}
404
405static struct irq_chip octeon_irq_chip_msi = {
406 .name = "MSI",
407 .enable = octeon_irq_msi_enable,
408 .disable = octeon_irq_msi_disable,
409 .ack = octeon_irq_msi_ack,
410 .eoi = octeon_irq_msi_eoi,
411};
412#endif
413
414void __init arch_init_irq(void)
415{
416 int irq;
417
418#ifdef CONFIG_SMP
419 /* Set the default affinity to the boot cpu. */
420 cpumask_clear(irq_default_affinity);
421 cpumask_set_cpu(smp_processor_id(), irq_default_affinity);
422#endif
423
424 if (NR_IRQS < OCTEON_IRQ_LAST)
425 pr_err("octeon_irq_init: NR_IRQS is set too low\n");
426
427 /* 0 - 15 reserved for i8259 master and slave controller. */
428
429 /* 17 - 23 Mips internal */
430 for (irq = OCTEON_IRQ_SW0; irq <= OCTEON_IRQ_TIMER; irq++) {
431 set_irq_chip_and_handler(irq, &octeon_irq_chip_core,
432 handle_percpu_irq);
433 }
434
435 /* 24 - 87 CIU_INT_SUM0 */
436 for (irq = OCTEON_IRQ_WORKQ0; irq <= OCTEON_IRQ_BOOTDMA; irq++) {
437 set_irq_chip_and_handler(irq, &octeon_irq_chip_ciu0,
438 handle_percpu_irq);
439 }
440
441 /* 88 - 151 CIU_INT_SUM1 */
442 for (irq = OCTEON_IRQ_WDOG0; irq <= OCTEON_IRQ_RESERVED151; irq++) {
443 set_irq_chip_and_handler(irq, &octeon_irq_chip_ciu1,
444 handle_percpu_irq);
445 }
446
447#ifdef CONFIG_PCI_MSI
448 /* 152 - 215 PCI/PCIe MSI interrupts */
449 for (irq = OCTEON_IRQ_MSI_BIT0; irq <= OCTEON_IRQ_MSI_BIT63; irq++) {
450 set_irq_chip_and_handler(irq, &octeon_irq_chip_msi,
451 handle_percpu_irq);
452 }
453#endif
454 set_c0_status(0x300 << 2);
455}
456
457asmlinkage void plat_irq_dispatch(void)
458{
459 const unsigned long core_id = cvmx_get_core_num();
460 const uint64_t ciu_sum0_address = CVMX_CIU_INTX_SUM0(core_id * 2);
461 const uint64_t ciu_en0_address = CVMX_CIU_INTX_EN0(core_id * 2);
462 const uint64_t ciu_sum1_address = CVMX_CIU_INT_SUM1;
463 const uint64_t ciu_en1_address = CVMX_CIU_INTX_EN1(core_id * 2 + 1);
464 unsigned long cop0_cause;
465 unsigned long cop0_status;
466 uint64_t ciu_en;
467 uint64_t ciu_sum;
468
469 while (1) {
470 cop0_cause = read_c0_cause();
471 cop0_status = read_c0_status();
472 cop0_cause &= cop0_status;
473 cop0_cause &= ST0_IM;
474
475 if (unlikely(cop0_cause & STATUSF_IP2)) {
476 ciu_sum = cvmx_read_csr(ciu_sum0_address);
477 ciu_en = cvmx_read_csr(ciu_en0_address);
478 ciu_sum &= ciu_en;
479 if (likely(ciu_sum))
480 do_IRQ(fls64(ciu_sum) + OCTEON_IRQ_WORKQ0 - 1);
481 else
482 spurious_interrupt();
483 } else if (unlikely(cop0_cause & STATUSF_IP3)) {
484 ciu_sum = cvmx_read_csr(ciu_sum1_address);
485 ciu_en = cvmx_read_csr(ciu_en1_address);
486 ciu_sum &= ciu_en;
487 if (likely(ciu_sum))
488 do_IRQ(fls64(ciu_sum) + OCTEON_IRQ_WDOG0 - 1);
489 else
490 spurious_interrupt();
491 } else if (likely(cop0_cause)) {
492 do_IRQ(fls(cop0_cause) - 9 + MIPS_CPU_IRQ_BASE);
493 } else {
494 break;
495 }
496 }
497}
diff --git a/arch/mips/cavium-octeon/octeon-memcpy.S b/arch/mips/cavium-octeon/octeon-memcpy.S
new file mode 100644
index 000000000000..88e0cddca205
--- /dev/null
+++ b/arch/mips/cavium-octeon/octeon-memcpy.S
@@ -0,0 +1,521 @@
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 * Unified implementation of memcpy, memmove and the __copy_user backend.
7 *
8 * Copyright (C) 1998, 99, 2000, 01, 2002 Ralf Baechle (ralf@gnu.org)
9 * Copyright (C) 1999, 2000, 01, 2002 Silicon Graphics, Inc.
10 * Copyright (C) 2002 Broadcom, Inc.
11 * memcpy/copy_user author: Mark Vandevoorde
12 *
13 * Mnemonic names for arguments to memcpy/__copy_user
14 */
15
16#include <asm/asm.h>
17#include <asm/asm-offsets.h>
18#include <asm/regdef.h>
19
20#define dst a0
21#define src a1
22#define len a2
23
24/*
25 * Spec
26 *
27 * memcpy copies len bytes from src to dst and sets v0 to dst.
28 * It assumes that
29 * - src and dst don't overlap
30 * - src is readable
31 * - dst is writable
32 * memcpy uses the standard calling convention
33 *
34 * __copy_user copies up to len bytes from src to dst and sets a2 (len) to
35 * the number of uncopied bytes due to an exception caused by a read or write.
36 * __copy_user assumes that src and dst don't overlap, and that the call is
37 * implementing one of the following:
38 * copy_to_user
39 * - src is readable (no exceptions when reading src)
40 * copy_from_user
41 * - dst is writable (no exceptions when writing dst)
42 * __copy_user uses a non-standard calling convention; see
43 * arch/mips/include/asm/uaccess.h
44 *
45 * When an exception happens on a load, the handler must
46 # ensure that all of the destination buffer is overwritten to prevent
47 * leaking information to user mode programs.
48 */
49
50/*
51 * Implementation
52 */
53
54/*
55 * The exception handler for loads requires that:
56 * 1- AT contain the address of the byte just past the end of the source
57 * of the copy,
58 * 2- src_entry <= src < AT, and
59 * 3- (dst - src) == (dst_entry - src_entry),
60 * The _entry suffix denotes values when __copy_user was called.
61 *
62 * (1) is set up up by uaccess.h and maintained by not writing AT in copy_user
63 * (2) is met by incrementing src by the number of bytes copied
64 * (3) is met by not doing loads between a pair of increments of dst and src
65 *
66 * The exception handlers for stores adjust len (if necessary) and return.
67 * These handlers do not need to overwrite any data.
68 *
69 * For __rmemcpy and memmove an exception is always a kernel bug, therefore
70 * they're not protected.
71 */
72
73#define EXC(inst_reg,addr,handler) \
749: inst_reg, addr; \
75 .section __ex_table,"a"; \
76 PTR 9b, handler; \
77 .previous
78
79/*
80 * Only on the 64-bit kernel we can made use of 64-bit registers.
81 */
82#ifdef CONFIG_64BIT
83#define USE_DOUBLE
84#endif
85
86#ifdef USE_DOUBLE
87
88#define LOAD ld
89#define LOADL ldl
90#define LOADR ldr
91#define STOREL sdl
92#define STORER sdr
93#define STORE sd
94#define ADD daddu
95#define SUB dsubu
96#define SRL dsrl
97#define SRA dsra
98#define SLL dsll
99#define SLLV dsllv
100#define SRLV dsrlv
101#define NBYTES 8
102#define LOG_NBYTES 3
103
104/*
105 * As we are sharing code base with the mips32 tree (which use the o32 ABI
106 * register definitions). We need to redefine the register definitions from
107 * the n64 ABI register naming to the o32 ABI register naming.
108 */
109#undef t0
110#undef t1
111#undef t2
112#undef t3
113#define t0 $8
114#define t1 $9
115#define t2 $10
116#define t3 $11
117#define t4 $12
118#define t5 $13
119#define t6 $14
120#define t7 $15
121
122#else
123
124#define LOAD lw
125#define LOADL lwl
126#define LOADR lwr
127#define STOREL swl
128#define STORER swr
129#define STORE sw
130#define ADD addu
131#define SUB subu
132#define SRL srl
133#define SLL sll
134#define SRA sra
135#define SLLV sllv
136#define SRLV srlv
137#define NBYTES 4
138#define LOG_NBYTES 2
139
140#endif /* USE_DOUBLE */
141
142#ifdef CONFIG_CPU_LITTLE_ENDIAN
143#define LDFIRST LOADR
144#define LDREST LOADL
145#define STFIRST STORER
146#define STREST STOREL
147#define SHIFT_DISCARD SLLV
148#else
149#define LDFIRST LOADL
150#define LDREST LOADR
151#define STFIRST STOREL
152#define STREST STORER
153#define SHIFT_DISCARD SRLV
154#endif
155
156#define FIRST(unit) ((unit)*NBYTES)
157#define REST(unit) (FIRST(unit)+NBYTES-1)
158#define UNIT(unit) FIRST(unit)
159
160#define ADDRMASK (NBYTES-1)
161
162 .text
163 .set noreorder
164 .set noat
165
166/*
167 * A combined memcpy/__copy_user
168 * __copy_user sets len to 0 for success; else to an upper bound of
169 * the number of uncopied bytes.
170 * memcpy sets v0 to dst.
171 */
172 .align 5
173LEAF(memcpy) /* a0=dst a1=src a2=len */
174 move v0, dst /* return value */
175__memcpy:
176FEXPORT(__copy_user)
177 /*
178 * Note: dst & src may be unaligned, len may be 0
179 * Temps
180 */
181 #
182 # Octeon doesn't care if the destination is unaligned. The hardware
183 # can fix it faster than we can special case the assembly.
184 #
185 pref 0, 0(src)
186 sltu t0, len, NBYTES # Check if < 1 word
187 bnez t0, copy_bytes_checklen
188 and t0, src, ADDRMASK # Check if src unaligned
189 bnez t0, src_unaligned
190 sltu t0, len, 4*NBYTES # Check if < 4 words
191 bnez t0, less_than_4units
192 sltu t0, len, 8*NBYTES # Check if < 8 words
193 bnez t0, less_than_8units
194 sltu t0, len, 16*NBYTES # Check if < 16 words
195 bnez t0, cleanup_both_aligned
196 sltu t0, len, 128+1 # Check if len < 129
197 bnez t0, 1f # Skip prefetch if len is too short
198 sltu t0, len, 256+1 # Check if len < 257
199 bnez t0, 1f # Skip prefetch if len is too short
200 pref 0, 128(src) # We must not prefetch invalid addresses
201 #
202 # This is where we loop if there is more than 128 bytes left
2032: pref 0, 256(src) # We must not prefetch invalid addresses
204 #
205 # This is where we loop if we can't prefetch anymore
2061:
207EXC( LOAD t0, UNIT(0)(src), l_exc)
208EXC( LOAD t1, UNIT(1)(src), l_exc_copy)
209EXC( LOAD t2, UNIT(2)(src), l_exc_copy)
210EXC( LOAD t3, UNIT(3)(src), l_exc_copy)
211 SUB len, len, 16*NBYTES
212EXC( STORE t0, UNIT(0)(dst), s_exc_p16u)
213EXC( STORE t1, UNIT(1)(dst), s_exc_p15u)
214EXC( STORE t2, UNIT(2)(dst), s_exc_p14u)
215EXC( STORE t3, UNIT(3)(dst), s_exc_p13u)
216EXC( LOAD t0, UNIT(4)(src), l_exc_copy)
217EXC( LOAD t1, UNIT(5)(src), l_exc_copy)
218EXC( LOAD t2, UNIT(6)(src), l_exc_copy)
219EXC( LOAD t3, UNIT(7)(src), l_exc_copy)
220EXC( STORE t0, UNIT(4)(dst), s_exc_p12u)
221EXC( STORE t1, UNIT(5)(dst), s_exc_p11u)
222EXC( STORE t2, UNIT(6)(dst), s_exc_p10u)
223 ADD src, src, 16*NBYTES
224EXC( STORE t3, UNIT(7)(dst), s_exc_p9u)
225 ADD dst, dst, 16*NBYTES
226EXC( LOAD t0, UNIT(-8)(src), l_exc_copy)
227EXC( LOAD t1, UNIT(-7)(src), l_exc_copy)
228EXC( LOAD t2, UNIT(-6)(src), l_exc_copy)
229EXC( LOAD t3, UNIT(-5)(src), l_exc_copy)
230EXC( STORE t0, UNIT(-8)(dst), s_exc_p8u)
231EXC( STORE t1, UNIT(-7)(dst), s_exc_p7u)
232EXC( STORE t2, UNIT(-6)(dst), s_exc_p6u)
233EXC( STORE t3, UNIT(-5)(dst), s_exc_p5u)
234EXC( LOAD t0, UNIT(-4)(src), l_exc_copy)
235EXC( LOAD t1, UNIT(-3)(src), l_exc_copy)
236EXC( LOAD t2, UNIT(-2)(src), l_exc_copy)
237EXC( LOAD t3, UNIT(-1)(src), l_exc_copy)
238EXC( STORE t0, UNIT(-4)(dst), s_exc_p4u)
239EXC( STORE t1, UNIT(-3)(dst), s_exc_p3u)
240EXC( STORE t2, UNIT(-2)(dst), s_exc_p2u)
241EXC( STORE t3, UNIT(-1)(dst), s_exc_p1u)
242 sltu t0, len, 256+1 # See if we can prefetch more
243 beqz t0, 2b
244 sltu t0, len, 128 # See if we can loop more time
245 beqz t0, 1b
246 nop
247 #
248 # Jump here if there are less than 16*NBYTES left.
249 #
250cleanup_both_aligned:
251 beqz len, done
252 sltu t0, len, 8*NBYTES
253 bnez t0, less_than_8units
254 nop
255EXC( LOAD t0, UNIT(0)(src), l_exc)
256EXC( LOAD t1, UNIT(1)(src), l_exc_copy)
257EXC( LOAD t2, UNIT(2)(src), l_exc_copy)
258EXC( LOAD t3, UNIT(3)(src), l_exc_copy)
259 SUB len, len, 8*NBYTES
260EXC( STORE t0, UNIT(0)(dst), s_exc_p8u)
261EXC( STORE t1, UNIT(1)(dst), s_exc_p7u)
262EXC( STORE t2, UNIT(2)(dst), s_exc_p6u)
263EXC( STORE t3, UNIT(3)(dst), s_exc_p5u)
264EXC( LOAD t0, UNIT(4)(src), l_exc_copy)
265EXC( LOAD t1, UNIT(5)(src), l_exc_copy)
266EXC( LOAD t2, UNIT(6)(src), l_exc_copy)
267EXC( LOAD t3, UNIT(7)(src), l_exc_copy)
268EXC( STORE t0, UNIT(4)(dst), s_exc_p4u)
269EXC( STORE t1, UNIT(5)(dst), s_exc_p3u)
270EXC( STORE t2, UNIT(6)(dst), s_exc_p2u)
271EXC( STORE t3, UNIT(7)(dst), s_exc_p1u)
272 ADD src, src, 8*NBYTES
273 beqz len, done
274 ADD dst, dst, 8*NBYTES
275 #
276 # Jump here if there are less than 8*NBYTES left.
277 #
278less_than_8units:
279 sltu t0, len, 4*NBYTES
280 bnez t0, less_than_4units
281 nop
282EXC( LOAD t0, UNIT(0)(src), l_exc)
283EXC( LOAD t1, UNIT(1)(src), l_exc_copy)
284EXC( LOAD t2, UNIT(2)(src), l_exc_copy)
285EXC( LOAD t3, UNIT(3)(src), l_exc_copy)
286 SUB len, len, 4*NBYTES
287EXC( STORE t0, UNIT(0)(dst), s_exc_p4u)
288EXC( STORE t1, UNIT(1)(dst), s_exc_p3u)
289EXC( STORE t2, UNIT(2)(dst), s_exc_p2u)
290EXC( STORE t3, UNIT(3)(dst), s_exc_p1u)
291 ADD src, src, 4*NBYTES
292 beqz len, done
293 ADD dst, dst, 4*NBYTES
294 #
295 # Jump here if there are less than 4*NBYTES left. This means
296 # we may need to copy up to 3 NBYTES words.
297 #
298less_than_4units:
299 sltu t0, len, 1*NBYTES
300 bnez t0, copy_bytes_checklen
301 nop
302 #
303 # 1) Copy NBYTES, then check length again
304 #
305EXC( LOAD t0, 0(src), l_exc)
306 SUB len, len, NBYTES
307 sltu t1, len, 8
308EXC( STORE t0, 0(dst), s_exc_p1u)
309 ADD src, src, NBYTES
310 bnez t1, copy_bytes_checklen
311 ADD dst, dst, NBYTES
312 #
313 # 2) Copy NBYTES, then check length again
314 #
315EXC( LOAD t0, 0(src), l_exc)
316 SUB len, len, NBYTES
317 sltu t1, len, 8
318EXC( STORE t0, 0(dst), s_exc_p1u)
319 ADD src, src, NBYTES
320 bnez t1, copy_bytes_checklen
321 ADD dst, dst, NBYTES
322 #
323 # 3) Copy NBYTES, then check length again
324 #
325EXC( LOAD t0, 0(src), l_exc)
326 SUB len, len, NBYTES
327 ADD src, src, NBYTES
328 ADD dst, dst, NBYTES
329 b copy_bytes_checklen
330EXC( STORE t0, -8(dst), s_exc_p1u)
331
332src_unaligned:
333#define rem t8
334 SRL t0, len, LOG_NBYTES+2 # +2 for 4 units/iter
335 beqz t0, cleanup_src_unaligned
336 and rem, len, (4*NBYTES-1) # rem = len % 4*NBYTES
3371:
338/*
339 * Avoid consecutive LD*'s to the same register since some mips
340 * implementations can't issue them in the same cycle.
341 * It's OK to load FIRST(N+1) before REST(N) because the two addresses
342 * are to the same unit (unless src is aligned, but it's not).
343 */
344EXC( LDFIRST t0, FIRST(0)(src), l_exc)
345EXC( LDFIRST t1, FIRST(1)(src), l_exc_copy)
346 SUB len, len, 4*NBYTES
347EXC( LDREST t0, REST(0)(src), l_exc_copy)
348EXC( LDREST t1, REST(1)(src), l_exc_copy)
349EXC( LDFIRST t2, FIRST(2)(src), l_exc_copy)
350EXC( LDFIRST t3, FIRST(3)(src), l_exc_copy)
351EXC( LDREST t2, REST(2)(src), l_exc_copy)
352EXC( LDREST t3, REST(3)(src), l_exc_copy)
353 ADD src, src, 4*NBYTES
354EXC( STORE t0, UNIT(0)(dst), s_exc_p4u)
355EXC( STORE t1, UNIT(1)(dst), s_exc_p3u)
356EXC( STORE t2, UNIT(2)(dst), s_exc_p2u)
357EXC( STORE t3, UNIT(3)(dst), s_exc_p1u)
358 bne len, rem, 1b
359 ADD dst, dst, 4*NBYTES
360
361cleanup_src_unaligned:
362 beqz len, done
363 and rem, len, NBYTES-1 # rem = len % NBYTES
364 beq rem, len, copy_bytes
365 nop
3661:
367EXC( LDFIRST t0, FIRST(0)(src), l_exc)
368EXC( LDREST t0, REST(0)(src), l_exc_copy)
369 SUB len, len, NBYTES
370EXC( STORE t0, 0(dst), s_exc_p1u)
371 ADD src, src, NBYTES
372 bne len, rem, 1b
373 ADD dst, dst, NBYTES
374
375copy_bytes_checklen:
376 beqz len, done
377 nop
378copy_bytes:
379 /* 0 < len < NBYTES */
380#define COPY_BYTE(N) \
381EXC( lb t0, N(src), l_exc); \
382 SUB len, len, 1; \
383 beqz len, done; \
384EXC( sb t0, N(dst), s_exc_p1)
385
386 COPY_BYTE(0)
387 COPY_BYTE(1)
388#ifdef USE_DOUBLE
389 COPY_BYTE(2)
390 COPY_BYTE(3)
391 COPY_BYTE(4)
392 COPY_BYTE(5)
393#endif
394EXC( lb t0, NBYTES-2(src), l_exc)
395 SUB len, len, 1
396 jr ra
397EXC( sb t0, NBYTES-2(dst), s_exc_p1)
398done:
399 jr ra
400 nop
401 END(memcpy)
402
403l_exc_copy:
404 /*
405 * Copy bytes from src until faulting load address (or until a
406 * lb faults)
407 *
408 * When reached by a faulting LDFIRST/LDREST, THREAD_BUADDR($28)
409 * may be more than a byte beyond the last address.
410 * Hence, the lb below may get an exception.
411 *
412 * Assumes src < THREAD_BUADDR($28)
413 */
414 LOAD t0, TI_TASK($28)
415 nop
416 LOAD t0, THREAD_BUADDR(t0)
4171:
418EXC( lb t1, 0(src), l_exc)
419 ADD src, src, 1
420 sb t1, 0(dst) # can't fault -- we're copy_from_user
421 bne src, t0, 1b
422 ADD dst, dst, 1
423l_exc:
424 LOAD t0, TI_TASK($28)
425 nop
426 LOAD t0, THREAD_BUADDR(t0) # t0 is just past last good address
427 nop
428 SUB len, AT, t0 # len number of uncopied bytes
429 /*
430 * Here's where we rely on src and dst being incremented in tandem,
431 * See (3) above.
432 * dst += (fault addr - src) to put dst at first byte to clear
433 */
434 ADD dst, t0 # compute start address in a1
435 SUB dst, src
436 /*
437 * Clear len bytes starting at dst. Can't call __bzero because it
438 * might modify len. An inefficient loop for these rare times...
439 */
440 beqz len, done
441 SUB src, len, 1
4421: sb zero, 0(dst)
443 ADD dst, dst, 1
444 bnez src, 1b
445 SUB src, src, 1
446 jr ra
447 nop
448
449
450#define SEXC(n) \
451s_exc_p ## n ## u: \
452 jr ra; \
453 ADD len, len, n*NBYTES
454
455SEXC(16)
456SEXC(15)
457SEXC(14)
458SEXC(13)
459SEXC(12)
460SEXC(11)
461SEXC(10)
462SEXC(9)
463SEXC(8)
464SEXC(7)
465SEXC(6)
466SEXC(5)
467SEXC(4)
468SEXC(3)
469SEXC(2)
470SEXC(1)
471
472s_exc_p1:
473 jr ra
474 ADD len, len, 1
475s_exc:
476 jr ra
477 nop
478
479 .align 5
480LEAF(memmove)
481 ADD t0, a0, a2
482 ADD t1, a1, a2
483 sltu t0, a1, t0 # dst + len <= src -> memcpy
484 sltu t1, a0, t1 # dst >= src + len -> memcpy
485 and t0, t1
486 beqz t0, __memcpy
487 move v0, a0 /* return value */
488 beqz a2, r_out
489 END(memmove)
490
491 /* fall through to __rmemcpy */
492LEAF(__rmemcpy) /* a0=dst a1=src a2=len */
493 sltu t0, a1, a0
494 beqz t0, r_end_bytes_up # src >= dst
495 nop
496 ADD a0, a2 # dst = dst + len
497 ADD a1, a2 # src = src + len
498
499r_end_bytes:
500 lb t0, -1(a1)
501 SUB a2, a2, 0x1
502 sb t0, -1(a0)
503 SUB a1, a1, 0x1
504 bnez a2, r_end_bytes
505 SUB a0, a0, 0x1
506
507r_out:
508 jr ra
509 move a2, zero
510
511r_end_bytes_up:
512 lb t0, (a1)
513 SUB a2, a2, 0x1
514 sb t0, (a0)
515 ADD a1, a1, 0x1
516 bnez a2, r_end_bytes_up
517 ADD a0, a0, 0x1
518
519 jr ra
520 move a2, zero
521 END(__rmemcpy)
diff --git a/arch/mips/cavium-octeon/serial.c b/arch/mips/cavium-octeon/serial.c
new file mode 100644
index 000000000000..8240728d485a
--- /dev/null
+++ b/arch/mips/cavium-octeon/serial.c
@@ -0,0 +1,136 @@
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-2007 Cavium Networks
7 */
8#include <linux/console.h>
9#include <linux/module.h>
10#include <linux/init.h>
11#include <linux/platform_device.h>
12#include <linux/serial.h>
13#include <linux/serial_8250.h>
14#include <linux/serial_reg.h>
15#include <linux/tty.h>
16
17#include <asm/time.h>
18
19#include <asm/octeon/octeon.h>
20
21#ifdef CONFIG_GDB_CONSOLE
22#define DEBUG_UART 0
23#else
24#define DEBUG_UART 1
25#endif
26
27unsigned int octeon_serial_in(struct uart_port *up, int offset)
28{
29 int rv = cvmx_read_csr((uint64_t)(up->membase + (offset << 3)));
30 if (offset == UART_IIR && (rv & 0xf) == 7) {
31 /* Busy interrupt, read the USR (39) and try again. */
32 cvmx_read_csr((uint64_t)(up->membase + (39 << 3)));
33 rv = cvmx_read_csr((uint64_t)(up->membase + (offset << 3)));
34 }
35 return rv;
36}
37
38void octeon_serial_out(struct uart_port *up, int offset, int value)
39{
40 /*
41 * If bits 6 or 7 of the OCTEON UART's LCR are set, it quits
42 * working.
43 */
44 if (offset == UART_LCR)
45 value &= 0x9f;
46 cvmx_write_csr((uint64_t)(up->membase + (offset << 3)), (u8)value);
47}
48
49/*
50 * Allocated in .bss, so it is all zeroed.
51 */
52#define OCTEON_MAX_UARTS 3
53static struct plat_serial8250_port octeon_uart8250_data[OCTEON_MAX_UARTS + 1];
54static struct platform_device octeon_uart8250_device = {
55 .name = "serial8250",
56 .id = PLAT8250_DEV_PLATFORM,
57 .dev = {
58 .platform_data = octeon_uart8250_data,
59 },
60};
61
62static void __init octeon_uart_set_common(struct plat_serial8250_port *p)
63{
64 p->flags = ASYNC_SKIP_TEST | UPF_SHARE_IRQ | UPF_FIXED_TYPE;
65 p->type = PORT_OCTEON;
66 p->iotype = UPIO_MEM;
67 p->regshift = 3; /* I/O addresses are every 8 bytes */
68 p->uartclk = mips_hpt_frequency;
69 p->serial_in = octeon_serial_in;
70 p->serial_out = octeon_serial_out;
71}
72
73static int __init octeon_serial_init(void)
74{
75 int enable_uart0;
76 int enable_uart1;
77 int enable_uart2;
78 struct plat_serial8250_port *p;
79
80#ifdef CONFIG_CAVIUM_OCTEON_2ND_KERNEL
81 /*
82 * If we are configured to run as the second of two kernels,
83 * disable uart0 and enable uart1. Uart0 is owned by the first
84 * kernel
85 */
86 enable_uart0 = 0;
87 enable_uart1 = 1;
88#else
89 /*
90 * We are configured for the first kernel. We'll enable uart0
91 * if the bootloader told us to use 0, otherwise will enable
92 * uart 1.
93 */
94 enable_uart0 = (octeon_get_boot_uart() == 0);
95 enable_uart1 = (octeon_get_boot_uart() == 1);
96#ifdef CONFIG_KGDB
97 enable_uart1 = 1;
98#endif
99#endif
100
101 /* Right now CN52XX is the only chip with a third uart */
102 enable_uart2 = OCTEON_IS_MODEL(OCTEON_CN52XX);
103
104 p = octeon_uart8250_data;
105 if (enable_uart0) {
106 /* Add a ttyS device for hardware uart 0 */
107 octeon_uart_set_common(p);
108 p->membase = (void *) CVMX_MIO_UARTX_RBR(0);
109 p->mapbase = CVMX_MIO_UARTX_RBR(0) & ((1ull << 49) - 1);
110 p->irq = OCTEON_IRQ_UART0;
111 p++;
112 }
113
114 if (enable_uart1) {
115 /* Add a ttyS device for hardware uart 1 */
116 octeon_uart_set_common(p);
117 p->membase = (void *) CVMX_MIO_UARTX_RBR(1);
118 p->mapbase = CVMX_MIO_UARTX_RBR(1) & ((1ull << 49) - 1);
119 p->irq = OCTEON_IRQ_UART1;
120 p++;
121 }
122 if (enable_uart2) {
123 /* Add a ttyS device for hardware uart 2 */
124 octeon_uart_set_common(p);
125 p->membase = (void *) CVMX_MIO_UART2_RBR;
126 p->mapbase = CVMX_MIO_UART2_RBR & ((1ull << 49) - 1);
127 p->irq = OCTEON_IRQ_UART2;
128 p++;
129 }
130
131 BUG_ON(p > &octeon_uart8250_data[OCTEON_MAX_UARTS]);
132
133 return platform_device_register(&octeon_uart8250_device);
134}
135
136device_initcall(octeon_serial_init);
diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c
new file mode 100644
index 000000000000..5f4e49ba4713
--- /dev/null
+++ b/arch/mips/cavium-octeon/setup.c
@@ -0,0 +1,927 @@
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-2007 Cavium Networks
7 * Copyright (C) 2008 Wind River Systems
8 */
9#include <linux/init.h>
10#include <linux/console.h>
11#include <linux/delay.h>
12#include <linux/interrupt.h>
13#include <linux/io.h>
14#include <linux/irq.h>
15#include <linux/serial.h>
16#include <linux/types.h>
17#include <linux/string.h> /* for memset */
18#include <linux/tty.h>
19#include <linux/time.h>
20#include <linux/platform_device.h>
21#include <linux/serial_core.h>
22#include <linux/serial_8250.h>
23
24#include <asm/processor.h>
25#include <asm/reboot.h>
26#include <asm/smp-ops.h>
27#include <asm/system.h>
28#include <asm/irq_cpu.h>
29#include <asm/mipsregs.h>
30#include <asm/bootinfo.h>
31#include <asm/sections.h>
32#include <asm/time.h>
33
34#include <asm/octeon/octeon.h>
35
36#ifdef CONFIG_CAVIUM_DECODE_RSL
37extern void cvmx_interrupt_rsl_decode(void);
38extern int __cvmx_interrupt_ecc_report_single_bit_errors;
39extern void cvmx_interrupt_rsl_enable(void);
40#endif
41
42extern struct plat_smp_ops octeon_smp_ops;
43
44#ifdef CONFIG_PCI
45extern void pci_console_init(const char *arg);
46#endif
47
48#ifdef CONFIG_CAVIUM_RESERVE32
49extern uint64_t octeon_reserve32_memory;
50#endif
51static unsigned long long MAX_MEMORY = 512ull << 20;
52
53struct octeon_boot_descriptor *octeon_boot_desc_ptr;
54
55struct cvmx_bootinfo *octeon_bootinfo;
56EXPORT_SYMBOL(octeon_bootinfo);
57
58#ifdef CONFIG_CAVIUM_RESERVE32
59uint64_t octeon_reserve32_memory;
60EXPORT_SYMBOL(octeon_reserve32_memory);
61#endif
62
63static int octeon_uart;
64
65extern asmlinkage void handle_int(void);
66extern asmlinkage void plat_irq_dispatch(void);
67
68/**
69 * Return non zero if we are currently running in the Octeon simulator
70 *
71 * Returns
72 */
73int octeon_is_simulation(void)
74{
75 return octeon_bootinfo->board_type == CVMX_BOARD_TYPE_SIM;
76}
77EXPORT_SYMBOL(octeon_is_simulation);
78
79/**
80 * Return true if Octeon is in PCI Host mode. This means
81 * Linux can control the PCI bus.
82 *
83 * Returns Non zero if Octeon in host mode.
84 */
85int octeon_is_pci_host(void)
86{
87#ifdef CONFIG_PCI
88 return octeon_bootinfo->config_flags & CVMX_BOOTINFO_CFG_FLAG_PCI_HOST;
89#else
90 return 0;
91#endif
92}
93
94/**
95 * Get the clock rate of Octeon
96 *
97 * Returns Clock rate in HZ
98 */
99uint64_t octeon_get_clock_rate(void)
100{
101 if (octeon_is_simulation())
102 octeon_bootinfo->eclock_hz = 6000000;
103 return octeon_bootinfo->eclock_hz;
104}
105EXPORT_SYMBOL(octeon_get_clock_rate);
106
107/**
108 * Write to the LCD display connected to the bootbus. This display
109 * exists on most Cavium evaluation boards. If it doesn't exist, then
110 * this function doesn't do anything.
111 *
112 * @s: String to write
113 */
114void octeon_write_lcd(const char *s)
115{
116 if (octeon_bootinfo->led_display_base_addr) {
117 void __iomem *lcd_address =
118 ioremap_nocache(octeon_bootinfo->led_display_base_addr,
119 8);
120 int i;
121 for (i = 0; i < 8; i++, s++) {
122 if (*s)
123 iowrite8(*s, lcd_address + i);
124 else
125 iowrite8(' ', lcd_address + i);
126 }
127 iounmap(lcd_address);
128 }
129}
130
131/**
132 * Return the console uart passed by the bootloader
133 *
134 * Returns uart (0 or 1)
135 */
136int octeon_get_boot_uart(void)
137{
138 int uart;
139#ifdef CONFIG_CAVIUM_OCTEON_2ND_KERNEL
140 uart = 1;
141#else
142 uart = (octeon_boot_desc_ptr->flags & OCTEON_BL_FLAG_CONSOLE_UART1) ?
143 1 : 0;
144#endif
145 return uart;
146}
147
148/**
149 * Get the coremask Linux was booted on.
150 *
151 * Returns Core mask
152 */
153int octeon_get_boot_coremask(void)
154{
155 return octeon_boot_desc_ptr->core_mask;
156}
157
158/**
159 * Check the hardware BIST results for a CPU
160 */
161void octeon_check_cpu_bist(void)
162{
163 const int coreid = cvmx_get_core_num();
164 unsigned long long mask;
165 unsigned long long bist_val;
166
167 /* Check BIST results for COP0 registers */
168 mask = 0x1f00000000ull;
169 bist_val = read_octeon_c0_icacheerr();
170 if (bist_val & mask)
171 pr_err("Core%d BIST Failure: CacheErr(icache) = 0x%llx\n",
172 coreid, bist_val);
173
174 bist_val = read_octeon_c0_dcacheerr();
175 if (bist_val & 1)
176 pr_err("Core%d L1 Dcache parity error: "
177 "CacheErr(dcache) = 0x%llx\n",
178 coreid, bist_val);
179
180 mask = 0xfc00000000000000ull;
181 bist_val = read_c0_cvmmemctl();
182 if (bist_val & mask)
183 pr_err("Core%d BIST Failure: COP0_CVM_MEM_CTL = 0x%llx\n",
184 coreid, bist_val);
185
186 write_octeon_c0_dcacheerr(0);
187}
188
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/**
238 * Reboot Octeon
239 *
240 * @command: Command to pass to the bootloader. Currently ignored.
241 */
242static void octeon_restart(char *command)
243{
244 /* Disable all watchdogs before soft reset. They don't get cleared */
245#ifdef CONFIG_SMP
246 int cpu;
247 for_each_online_cpu(cpu)
248 cvmx_write_csr(CVMX_CIU_WDOGX(cpu_logical_map(cpu)), 0);
249#else
250 cvmx_write_csr(CVMX_CIU_WDOGX(cvmx_get_core_num()), 0);
251#endif
252
253 mb();
254 while (1)
255 cvmx_write_csr(CVMX_CIU_SOFT_RST, 1);
256}
257
258
259/**
260 * Permanently stop a core.
261 *
262 * @arg: Ignored.
263 */
264static void octeon_kill_core(void *arg)
265{
266 mb();
267 if (octeon_is_simulation()) {
268 /* The simulator needs the watchdog to stop for dead cores */
269 cvmx_write_csr(CVMX_CIU_WDOGX(cvmx_get_core_num()), 0);
270 /* A break instruction causes the simulator stop a core */
271 asm volatile ("sync\nbreak");
272 }
273}
274
275
276/**
277 * Halt the system
278 */
279static void octeon_halt(void)
280{
281 smp_call_function(octeon_kill_core, NULL, 0);
282
283 switch (octeon_bootinfo->board_type) {
284 case CVMX_BOARD_TYPE_NAO38:
285 /* Driving a 1 to GPIO 12 shuts off this board */
286 cvmx_write_csr(CVMX_GPIO_BIT_CFGX(12), 1);
287 cvmx_write_csr(CVMX_GPIO_TX_SET, 0x1000);
288 break;
289 default:
290 octeon_write_lcd("PowerOff");
291 break;
292 }
293
294 octeon_kill_core(NULL);
295}
296
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/**
310 * Handle all the error condition interrupts that might occur.
311 *
312 */
313#ifdef CONFIG_CAVIUM_DECODE_RSL
314static irqreturn_t octeon_rlm_interrupt(int cpl, void *dev_id)
315{
316 cvmx_interrupt_rsl_decode();
317 return IRQ_HANDLED;
318}
319#endif
320
321/**
322 * Return a string representing the system type
323 *
324 * Returns
325 */
326const char *octeon_board_type_string(void)
327{
328 static char name[80];
329 sprintf(name, "%s (%s)",
330 cvmx_board_type_to_string(octeon_bootinfo->board_type),
331 octeon_model_get_string(read_c0_prid()));
332 return name;
333}
334
335const char *get_system_type(void)
336 __attribute__ ((alias("octeon_board_type_string")));
337
338void octeon_user_io_init(void)
339{
340 union octeon_cvmemctl cvmmemctl;
341 union cvmx_iob_fau_timeout fau_timeout;
342 union cvmx_pow_nw_tim nm_tim;
343 uint64_t cvmctl;
344
345 /* Get the current settings for CP0_CVMMEMCTL_REG */
346 cvmmemctl.u64 = read_c0_cvmmemctl();
347 /* R/W If set, marked write-buffer entries time out the same
348 * as as other entries; if clear, marked write-buffer entries
349 * use the maximum timeout. */
350 cvmmemctl.s.dismarkwblongto = 1;
351 /* R/W If set, a merged store does not clear the write-buffer
352 * entry timeout state. */
353 cvmmemctl.s.dismrgclrwbto = 0;
354 /* R/W Two bits that are the MSBs of the resultant CVMSEG LM
355 * word location for an IOBDMA. The other 8 bits come from the
356 * SCRADDR field of the IOBDMA. */
357 cvmmemctl.s.iobdmascrmsb = 0;
358 /* R/W If set, SYNCWS and SYNCS only order marked stores; if
359 * clear, SYNCWS and SYNCS only order unmarked
360 * stores. SYNCWSMARKED has no effect when DISSYNCWS is
361 * set. */
362 cvmmemctl.s.syncwsmarked = 0;
363 /* R/W If set, SYNCWS acts as SYNCW and SYNCS acts as SYNC. */
364 cvmmemctl.s.dissyncws = 0;
365 /* R/W If set, no stall happens on write buffer full. */
366 if (OCTEON_IS_MODEL(OCTEON_CN38XX_PASS2))
367 cvmmemctl.s.diswbfst = 1;
368 else
369 cvmmemctl.s.diswbfst = 0;
370 /* R/W If set (and SX set), supervisor-level loads/stores can
371 * use XKPHYS addresses with <48>==0 */
372 cvmmemctl.s.xkmemenas = 0;
373
374 /* R/W If set (and UX set), user-level loads/stores can use
375 * XKPHYS addresses with VA<48>==0 */
376 cvmmemctl.s.xkmemenau = 0;
377
378 /* R/W If set (and SX set), supervisor-level loads/stores can
379 * use XKPHYS addresses with VA<48>==1 */
380 cvmmemctl.s.xkioenas = 0;
381
382 /* R/W If set (and UX set), user-level loads/stores can use
383 * XKPHYS addresses with VA<48>==1 */
384 cvmmemctl.s.xkioenau = 0;
385
386 /* R/W If set, all stores act as SYNCW (NOMERGE must be set
387 * when this is set) RW, reset to 0. */
388 cvmmemctl.s.allsyncw = 0;
389
390 /* R/W If set, no stores merge, and all stores reach the
391 * coherent bus in order. */
392 cvmmemctl.s.nomerge = 0;
393 /* R/W Selects the bit in the counter used for DID time-outs 0
394 * = 231, 1 = 230, 2 = 229, 3 = 214. Actual time-out is
395 * between 1x and 2x this interval. For example, with
396 * DIDTTO=3, expiration interval is between 16K and 32K. */
397 cvmmemctl.s.didtto = 0;
398 /* R/W If set, the (mem) CSR clock never turns off. */
399 cvmmemctl.s.csrckalwys = 0;
400 /* R/W If set, mclk never turns off. */
401 cvmmemctl.s.mclkalwys = 0;
402 /* R/W Selects the bit in the counter used for write buffer
403 * flush time-outs (WBFLT+11) is the bit position in an
404 * internal counter used to determine expiration. The write
405 * buffer expires between 1x and 2x this interval. For
406 * example, with WBFLT = 0, a write buffer expires between 2K
407 * and 4K cycles after the write buffer entry is allocated. */
408 cvmmemctl.s.wbfltime = 0;
409 /* R/W If set, do not put Istream in the L2 cache. */
410 cvmmemctl.s.istrnol2 = 0;
411 /* R/W The write buffer threshold. */
412 cvmmemctl.s.wbthresh = 10;
413 /* R/W If set, CVMSEG is available for loads/stores in
414 * kernel/debug mode. */
415#if CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE > 0
416 cvmmemctl.s.cvmsegenak = 1;
417#else
418 cvmmemctl.s.cvmsegenak = 0;
419#endif
420 /* R/W If set, CVMSEG is available for loads/stores in
421 * supervisor mode. */
422 cvmmemctl.s.cvmsegenas = 0;
423 /* R/W If set, CVMSEG is available for loads/stores in user
424 * mode. */
425 cvmmemctl.s.cvmsegenau = 0;
426 /* R/W Size of local memory in cache blocks, 54 (6912 bytes)
427 * is max legal value. */
428 cvmmemctl.s.lmemsz = CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE;
429
430
431 if (smp_processor_id() == 0)
432 pr_notice("CVMSEG size: %d cache lines (%d bytes)\n",
433 CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE,
434 CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE * 128);
435
436 write_c0_cvmmemctl(cvmmemctl.u64);
437
438 /* Move the performance counter interrupts to IRQ 6 */
439 cvmctl = read_c0_cvmctl();
440 cvmctl &= ~(7 << 7);
441 cvmctl |= 6 << 7;
442 write_c0_cvmctl(cvmctl);
443
444 /* Set a default for the hardware timeouts */
445 fau_timeout.u64 = 0;
446 fau_timeout.s.tout_val = 0xfff;
447 /* Disable tagwait FAU timeout */
448 fau_timeout.s.tout_enb = 0;
449 cvmx_write_csr(CVMX_IOB_FAU_TIMEOUT, fau_timeout.u64);
450
451 nm_tim.u64 = 0;
452 /* 4096 cycles */
453 nm_tim.s.nw_tim = 3;
454 cvmx_write_csr(CVMX_POW_NW_TIM, nm_tim.u64);
455
456 write_octeon_c0_icacheerr(0);
457 write_c0_derraddr1(0);
458}
459
460/**
461 * Early entry point for arch setup
462 */
463void __init prom_init(void)
464{
465 struct cvmx_sysinfo *sysinfo;
466 const int coreid = cvmx_get_core_num();
467 int i;
468 int argc;
469 struct uart_port octeon_port;
470#ifdef CONFIG_CAVIUM_RESERVE32
471 int64_t addr = -1;
472#endif
473 /*
474 * The bootloader passes a pointer to the boot descriptor in
475 * $a3, this is available as fw_arg3.
476 */
477 octeon_boot_desc_ptr = (struct octeon_boot_descriptor *)fw_arg3;
478 octeon_bootinfo =
479 cvmx_phys_to_ptr(octeon_boot_desc_ptr->cvmx_desc_vaddr);
480 cvmx_bootmem_init(cvmx_phys_to_ptr(octeon_bootinfo->phy_mem_desc_addr));
481
482 /*
483 * Only enable the LED controller if we're running on a CN38XX, CN58XX,
484 * or CN56XX. The CN30XX and CN31XX don't have an LED controller.
485 */
486 if (!octeon_is_simulation() &&
487 octeon_has_feature(OCTEON_FEATURE_LED_CONTROLLER)) {
488 cvmx_write_csr(CVMX_LED_EN, 0);
489 cvmx_write_csr(CVMX_LED_PRT, 0);
490 cvmx_write_csr(CVMX_LED_DBG, 0);
491 cvmx_write_csr(CVMX_LED_PRT_FMT, 0);
492 cvmx_write_csr(CVMX_LED_UDD_CNTX(0), 32);
493 cvmx_write_csr(CVMX_LED_UDD_CNTX(1), 32);
494 cvmx_write_csr(CVMX_LED_UDD_DATX(0), 0);
495 cvmx_write_csr(CVMX_LED_UDD_DATX(1), 0);
496 cvmx_write_csr(CVMX_LED_EN, 1);
497 }
498#ifdef CONFIG_CAVIUM_RESERVE32
499 /*
500 * We need to temporarily allocate all memory in the reserve32
501 * region. This makes sure the kernel doesn't allocate this
502 * memory when it is getting memory from the
503 * bootloader. Later, after the memory allocations are
504 * complete, the reserve32 will be freed.
505 */
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
518 * is in case we later use hugetlb entries with it.
519 */
520 addr = cvmx_bootmem_phy_named_block_alloc(CONFIG_CAVIUM_RESERVE32 << 20,
521 0, 0, 2 << 20,
522 "CAVIUM_RESERVE32", 0);
523#endif
524 if (addr < 0)
525 pr_err("Failed to allocate CAVIUM_RESERVE32 memory area\n");
526 else
527 octeon_reserve32_memory = addr;
528#endif
529
530#ifdef CONFIG_CAVIUM_OCTEON_LOCK_L2
531 if (cvmx_read_csr(CVMX_L2D_FUS3) & (3ull << 34)) {
532 pr_info("Skipping L2 locking due to reduced L2 cache size\n");
533 } else {
534 uint32_t ebase = read_c0_ebase() & 0x3ffff000;
535#ifdef CONFIG_CAVIUM_OCTEON_LOCK_L2_TLB
536 /* TLB refill */
537 cvmx_l2c_lock_mem_region(ebase, 0x100);
538#endif
539#ifdef CONFIG_CAVIUM_OCTEON_LOCK_L2_EXCEPTION
540 /* General exception */
541 cvmx_l2c_lock_mem_region(ebase + 0x180, 0x80);
542#endif
543#ifdef CONFIG_CAVIUM_OCTEON_LOCK_L2_LOW_LEVEL_INTERRUPT
544 /* Interrupt handler */
545 cvmx_l2c_lock_mem_region(ebase + 0x200, 0x80);
546#endif
547#ifdef CONFIG_CAVIUM_OCTEON_LOCK_L2_INTERRUPT
548 cvmx_l2c_lock_mem_region(__pa_symbol(handle_int), 0x100);
549 cvmx_l2c_lock_mem_region(__pa_symbol(plat_irq_dispatch), 0x80);
550#endif
551#ifdef CONFIG_CAVIUM_OCTEON_LOCK_L2_MEMCPY
552 cvmx_l2c_lock_mem_region(__pa_symbol(memcpy), 0x480);
553#endif
554 }
555#endif
556
557 sysinfo = cvmx_sysinfo_get();
558 memset(sysinfo, 0, sizeof(*sysinfo));
559 sysinfo->system_dram_size = octeon_bootinfo->dram_size << 20;
560 sysinfo->phy_mem_desc_ptr =
561 cvmx_phys_to_ptr(octeon_bootinfo->phy_mem_desc_addr);
562 sysinfo->core_mask = octeon_bootinfo->core_mask;
563 sysinfo->exception_base_addr = octeon_bootinfo->exception_base_addr;
564 sysinfo->cpu_clock_hz = octeon_bootinfo->eclock_hz;
565 sysinfo->dram_data_rate_hz = octeon_bootinfo->dclock_hz * 2;
566 sysinfo->board_type = octeon_bootinfo->board_type;
567 sysinfo->board_rev_major = octeon_bootinfo->board_rev_major;
568 sysinfo->board_rev_minor = octeon_bootinfo->board_rev_minor;
569 memcpy(sysinfo->mac_addr_base, octeon_bootinfo->mac_addr_base,
570 sizeof(sysinfo->mac_addr_base));
571 sysinfo->mac_addr_count = octeon_bootinfo->mac_addr_count;
572 memcpy(sysinfo->board_serial_number,
573 octeon_bootinfo->board_serial_number,
574 sizeof(sysinfo->board_serial_number));
575 sysinfo->compact_flash_common_base_addr =
576 octeon_bootinfo->compact_flash_common_base_addr;
577 sysinfo->compact_flash_attribute_base_addr =
578 octeon_bootinfo->compact_flash_attribute_base_addr;
579 sysinfo->led_display_base_addr = octeon_bootinfo->led_display_base_addr;
580 sysinfo->dfa_ref_clock_hz = octeon_bootinfo->dfa_ref_clock_hz;
581 sysinfo->bootloader_config_flags = octeon_bootinfo->config_flags;
582
583
584 octeon_check_cpu_bist();
585
586 octeon_uart = octeon_get_boot_uart();
587
588 /*
589 * Disable All CIU Interrupts. The ones we need will be
590 * enabled later. Read the SUM register so we know the write
591 * completed.
592 */
593 cvmx_write_csr(CVMX_CIU_INTX_EN0((coreid * 2)), 0);
594 cvmx_write_csr(CVMX_CIU_INTX_EN0((coreid * 2 + 1)), 0);
595 cvmx_write_csr(CVMX_CIU_INTX_EN1((coreid * 2)), 0);
596 cvmx_write_csr(CVMX_CIU_INTX_EN1((coreid * 2 + 1)), 0);
597 cvmx_read_csr(CVMX_CIU_INTX_SUM0((coreid * 2)));
598
599#ifdef CONFIG_SMP
600 octeon_write_lcd("LinuxSMP");
601#else
602 octeon_write_lcd("Linux");
603#endif
604
605#ifdef CONFIG_CAVIUM_GDB
606 /*
607 * When debugging the linux kernel, force the cores to enter
608 * the debug exception handler to break in.
609 */
610 if (octeon_get_boot_debug_flag()) {
611 cvmx_write_csr(CVMX_CIU_DINT, 1 << cvmx_get_core_num());
612 cvmx_read_csr(CVMX_CIU_DINT);
613 }
614#endif
615
616 /*
617 * BIST should always be enabled when doing a soft reset. L2
618 * Cache locking for instance is not cleared unless BIST is
619 * enabled. Unfortunately due to a chip errata G-200 for
620 * Cn38XX and CN31XX, BIST msut be disabled on these parts.
621 */
622 if (OCTEON_IS_MODEL(OCTEON_CN38XX_PASS2) ||
623 OCTEON_IS_MODEL(OCTEON_CN31XX))
624 cvmx_write_csr(CVMX_CIU_SOFT_BIST, 0);
625 else
626 cvmx_write_csr(CVMX_CIU_SOFT_BIST, 1);
627
628 /* Default to 64MB in the simulator to speed things up */
629 if (octeon_is_simulation())
630 MAX_MEMORY = 64ull << 20;
631
632 arcs_cmdline[0] = 0;
633 argc = octeon_boot_desc_ptr->argc;
634 for (i = 0; i < argc; i++) {
635 const char *arg =
636 cvmx_phys_to_ptr(octeon_boot_desc_ptr->argv[i]);
637 if ((strncmp(arg, "MEM=", 4) == 0) ||
638 (strncmp(arg, "mem=", 4) == 0)) {
639 sscanf(arg + 4, "%llu", &MAX_MEMORY);
640 MAX_MEMORY <<= 20;
641 if (MAX_MEMORY == 0)
642 MAX_MEMORY = 32ull << 30;
643 } else if (strcmp(arg, "ecc_verbose") == 0) {
644#ifdef CONFIG_CAVIUM_REPORT_SINGLE_BIT_ECC
645 __cvmx_interrupt_ecc_report_single_bit_errors = 1;
646 pr_notice("Reporting of single bit ECC errors is "
647 "turned on\n");
648#endif
649 } else if (strlen(arcs_cmdline) + strlen(arg) + 1 <
650 sizeof(arcs_cmdline) - 1) {
651 strcat(arcs_cmdline, " ");
652 strcat(arcs_cmdline, arg);
653 }
654 }
655
656 if (strstr(arcs_cmdline, "console=") == NULL) {
657#ifdef CONFIG_GDB_CONSOLE
658 strcat(arcs_cmdline, " console=gdb");
659#else
660#ifdef CONFIG_CAVIUM_OCTEON_2ND_KERNEL
661 strcat(arcs_cmdline, " console=ttyS0,115200");
662#else
663 if (octeon_uart == 1)
664 strcat(arcs_cmdline, " console=ttyS1,115200");
665 else
666 strcat(arcs_cmdline, " console=ttyS0,115200");
667#endif
668#endif
669 }
670
671 if (octeon_is_simulation()) {
672 /*
673 * The simulator uses a mtdram device pre filled with
674 * the filesystem. Also specify the calibration delay
675 * to avoid calculating it every time.
676 */
677 strcat(arcs_cmdline, " rw root=1f00"
678 " lpj=60176 slram=root,0x40000000,+1073741824");
679 }
680
681 mips_hpt_frequency = octeon_get_clock_rate();
682
683 octeon_init_cvmcount();
684
685 _machine_restart = octeon_restart;
686 _machine_halt = octeon_halt;
687
688 memset(&octeon_port, 0, sizeof(octeon_port));
689 /*
690 * For early_serial_setup we don't set the port type or
691 * UPF_FIXED_TYPE.
692 */
693 octeon_port.flags = ASYNC_SKIP_TEST | UPF_SHARE_IRQ;
694 octeon_port.iotype = UPIO_MEM;
695 /* I/O addresses are every 8 bytes */
696 octeon_port.regshift = 3;
697 /* Clock rate of the chip */
698 octeon_port.uartclk = mips_hpt_frequency;
699 octeon_port.fifosize = 64;
700 octeon_port.mapbase = 0x0001180000000800ull + (1024 * octeon_uart);
701 octeon_port.membase = cvmx_phys_to_ptr(octeon_port.mapbase);
702 octeon_port.serial_in = octeon_serial_in;
703 octeon_port.serial_out = octeon_serial_out;
704#ifdef CONFIG_CAVIUM_OCTEON_2ND_KERNEL
705 octeon_port.line = 0;
706#else
707 octeon_port.line = octeon_uart;
708#endif
709 octeon_port.irq = 42 + octeon_uart;
710 early_serial_setup(&octeon_port);
711
712 octeon_user_io_init();
713 register_smp_ops(&octeon_smp_ops);
714}
715
716void __init plat_mem_setup(void)
717{
718 uint64_t mem_alloc_size;
719 uint64_t total;
720 int64_t memory;
721
722 total = 0;
723
724 /* First add the init memory we will be returning. */
725 memory = __pa_symbol(&__init_begin) & PAGE_MASK;
726 mem_alloc_size = (__pa_symbol(&__init_end) & PAGE_MASK) - memory;
727 if (mem_alloc_size > 0) {
728 add_memory_region(memory, mem_alloc_size, BOOT_MEM_RAM);
729 total += mem_alloc_size;
730 }
731
732 /*
733 * The Mips memory init uses the first memory location for
734 * some memory vectors. When SPARSEMEM is in use, it doesn't
735 * verify that the size is big enough for the final
736 * vectors. Making the smallest chuck 4MB seems to be enough
737 * to consistantly work.
738 */
739 mem_alloc_size = 4 << 20;
740 if (mem_alloc_size > MAX_MEMORY)
741 mem_alloc_size = MAX_MEMORY;
742
743 /*
744 * When allocating memory, we want incrementing addresses from
745 * bootmem_alloc so the code in add_memory_region can merge
746 * regions next to each other.
747 */
748 cvmx_bootmem_lock();
749 while ((boot_mem_map.nr_map < BOOT_MEM_MAP_MAX)
750 && (total < MAX_MEMORY)) {
751#if defined(CONFIG_64BIT) || defined(CONFIG_64BIT_PHYS_ADDR)
752 memory = cvmx_bootmem_phy_alloc(mem_alloc_size,
753 __pa_symbol(&__init_end), -1,
754 0x100000,
755 CVMX_BOOTMEM_FLAG_NO_LOCKING);
756#elif defined(CONFIG_HIGHMEM)
757 memory = cvmx_bootmem_phy_alloc(mem_alloc_size, 0, 1ull << 31,
758 0x100000,
759 CVMX_BOOTMEM_FLAG_NO_LOCKING);
760#else
761 memory = cvmx_bootmem_phy_alloc(mem_alloc_size, 0, 512 << 20,
762 0x100000,
763 CVMX_BOOTMEM_FLAG_NO_LOCKING);
764#endif
765 if (memory >= 0) {
766 /*
767 * This function automatically merges address
768 * regions next to each other if they are
769 * received in incrementing order.
770 */
771 add_memory_region(memory, mem_alloc_size, BOOT_MEM_RAM);
772 total += mem_alloc_size;
773 } else {
774 break;
775 }
776 }
777 cvmx_bootmem_unlock();
778
779#ifdef CONFIG_CAVIUM_RESERVE32
780 /*
781 * Now that we've allocated the kernel memory it is safe to
782 * free the reserved region. We free it here so that builtin
783 * drivers can use the memory.
784 */
785 if (octeon_reserve32_memory)
786 cvmx_bootmem_free_named("CAVIUM_RESERVE32");
787#endif /* CONFIG_CAVIUM_RESERVE32 */
788
789 if (total == 0)
790 panic("Unable to allocate memory from "
791 "cvmx_bootmem_phy_alloc\n");
792}
793
794
795int prom_putchar(char c)
796{
797 uint64_t lsrval;
798
799 /* Spin until there is room */
800 do {
801 lsrval = cvmx_read_csr(CVMX_MIO_UARTX_LSR(octeon_uart));
802 } while ((lsrval & 0x20) == 0);
803
804 /* Write the byte */
805 cvmx_write_csr(CVMX_MIO_UARTX_THR(octeon_uart), c);
806 return 1;
807}
808
809void prom_free_prom_memory(void)
810{
811#ifdef CONFIG_CAVIUM_DECODE_RSL
812 cvmx_interrupt_rsl_enable();
813
814 /* Add an interrupt handler for general failures. */
815 if (request_irq(OCTEON_IRQ_RML, octeon_rlm_interrupt, IRQF_SHARED,
816 "RML/RSL", octeon_rlm_interrupt)) {
817 panic("Unable to request_irq(OCTEON_IRQ_RML)\n");
818 }
819#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}
826
827static struct octeon_cf_data octeon_cf_data;
828
829static int __init octeon_cf_device_init(void)
830{
831 union cvmx_mio_boot_reg_cfgx mio_boot_reg_cfg;
832 unsigned long base_ptr, region_base, region_size;
833 struct platform_device *pd;
834 struct resource cf_resources[3];
835 unsigned int num_resources;
836 int i;
837 int ret = 0;
838
839 /* Setup octeon-cf platform device if present. */
840 base_ptr = 0;
841 if (octeon_bootinfo->major_version == 1
842 && octeon_bootinfo->minor_version >= 1) {
843 if (octeon_bootinfo->compact_flash_common_base_addr)
844 base_ptr =
845 octeon_bootinfo->compact_flash_common_base_addr;
846 } else {
847 base_ptr = 0x1d000800;
848 }
849
850 if (!base_ptr)
851 return ret;
852
853 /* Find CS0 region. */
854 for (i = 0; i < 8; i++) {
855 mio_boot_reg_cfg.u64 = cvmx_read_csr(CVMX_MIO_BOOT_REG_CFGX(i));
856 region_base = mio_boot_reg_cfg.s.base << 16;
857 region_size = (mio_boot_reg_cfg.s.size + 1) << 16;
858 if (mio_boot_reg_cfg.s.en && base_ptr >= region_base
859 && base_ptr < region_base + region_size)
860 break;
861 }
862 if (i >= 7) {
863 /* i and i + 1 are CS0 and CS1, both must be less than 8. */
864 goto out;
865 }
866 octeon_cf_data.base_region = i;
867 octeon_cf_data.is16bit = mio_boot_reg_cfg.s.width;
868 octeon_cf_data.base_region_bias = base_ptr - region_base;
869 memset(cf_resources, 0, sizeof(cf_resources));
870 num_resources = 0;
871 cf_resources[num_resources].flags = IORESOURCE_MEM;
872 cf_resources[num_resources].start = region_base;
873 cf_resources[num_resources].end = region_base + region_size - 1;
874 num_resources++;
875
876
877 if (!(base_ptr & 0xfffful)) {
878 /*
879 * Boot loader signals availability of DMA (true_ide
880 * mode) by setting low order bits of base_ptr to
881 * zero.
882 */
883
884 /* Asume that CS1 immediately follows. */
885 mio_boot_reg_cfg.u64 =
886 cvmx_read_csr(CVMX_MIO_BOOT_REG_CFGX(i + 1));
887 region_base = mio_boot_reg_cfg.s.base << 16;
888 region_size = (mio_boot_reg_cfg.s.size + 1) << 16;
889 if (!mio_boot_reg_cfg.s.en)
890 goto out;
891
892 cf_resources[num_resources].flags = IORESOURCE_MEM;
893 cf_resources[num_resources].start = region_base;
894 cf_resources[num_resources].end = region_base + region_size - 1;
895 num_resources++;
896
897 octeon_cf_data.dma_engine = 0;
898 cf_resources[num_resources].flags = IORESOURCE_IRQ;
899 cf_resources[num_resources].start = OCTEON_IRQ_BOOTDMA;
900 cf_resources[num_resources].end = OCTEON_IRQ_BOOTDMA;
901 num_resources++;
902 } else {
903 octeon_cf_data.dma_engine = -1;
904 }
905
906 pd = platform_device_alloc("pata_octeon_cf", -1);
907 if (!pd) {
908 ret = -ENOMEM;
909 goto out;
910 }
911 pd->dev.platform_data = &octeon_cf_data;
912
913 ret = platform_device_add_resources(pd, cf_resources, num_resources);
914 if (ret)
915 goto fail;
916
917 ret = platform_device_add(pd);
918 if (ret)
919 goto fail;
920
921 return ret;
922fail:
923 platform_device_put(pd);
924out:
925 return ret;
926}
927device_initcall(octeon_cf_device_init);
diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
new file mode 100644
index 000000000000..24e0ad63980a
--- /dev/null
+++ b/arch/mips/cavium-octeon/smp.c
@@ -0,0 +1,211 @@
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-2008 Cavium Networks
7 */
8#include <linux/init.h>
9#include <linux/delay.h>
10#include <linux/smp.h>
11#include <linux/interrupt.h>
12#include <linux/kernel_stat.h>
13#include <linux/sched.h>
14#include <linux/module.h>
15
16#include <asm/mmu_context.h>
17#include <asm/system.h>
18#include <asm/time.h>
19
20#include <asm/octeon/octeon.h>
21
22volatile unsigned long octeon_processor_boot = 0xff;
23volatile unsigned long octeon_processor_sp;
24volatile unsigned long octeon_processor_gp;
25
26static irqreturn_t mailbox_interrupt(int irq, void *dev_id)
27{
28 const int coreid = cvmx_get_core_num();
29 uint64_t action;
30
31 /* Load the mailbox register to figure out what we're supposed to do */
32 action = cvmx_read_csr(CVMX_CIU_MBOX_CLRX(coreid));
33
34 /* Clear the mailbox to clear the interrupt */
35 cvmx_write_csr(CVMX_CIU_MBOX_CLRX(coreid), action);
36
37 if (action & SMP_CALL_FUNCTION)
38 smp_call_function_interrupt();
39
40 /* Check if we've been told to flush the icache */
41 if (action & SMP_ICACHE_FLUSH)
42 asm volatile ("synci 0($0)\n");
43 return IRQ_HANDLED;
44}
45
46/**
47 * Cause the function described by call_data to be executed on the passed
48 * cpu. When the function has finished, increment the finished field of
49 * call_data.
50 */
51void octeon_send_ipi_single(int cpu, unsigned int action)
52{
53 int coreid = cpu_logical_map(cpu);
54 /*
55 pr_info("SMP: Mailbox send cpu=%d, coreid=%d, action=%u\n", cpu,
56 coreid, action);
57 */
58 cvmx_write_csr(CVMX_CIU_MBOX_SETX(coreid), action);
59}
60
61static inline void octeon_send_ipi_mask(cpumask_t mask, unsigned int action)
62{
63 unsigned int i;
64
65 for_each_cpu_mask(i, mask)
66 octeon_send_ipi_single(i, action);
67}
68
69/**
70 * Detect available CPUs, populate phys_cpu_present_map
71 */
72static void octeon_smp_setup(void)
73{
74 const int coreid = cvmx_get_core_num();
75 int cpus;
76 int id;
77
78 int core_mask = octeon_get_boot_coremask();
79
80 cpus_clear(cpu_possible_map);
81 __cpu_number_map[coreid] = 0;
82 __cpu_logical_map[0] = coreid;
83 cpu_set(0, cpu_possible_map);
84
85 cpus = 1;
86 for (id = 0; id < 16; id++) {
87 if ((id != coreid) && (core_mask & (1 << id))) {
88 cpu_set(cpus, cpu_possible_map);
89 __cpu_number_map[id] = cpus;
90 __cpu_logical_map[cpus] = id;
91 cpus++;
92 }
93 }
94}
95
96/**
97 * Firmware CPU startup hook
98 *
99 */
100static void octeon_boot_secondary(int cpu, struct task_struct *idle)
101{
102 int count;
103
104 pr_info("SMP: Booting CPU%02d (CoreId %2d)...\n", cpu,
105 cpu_logical_map(cpu));
106
107 octeon_processor_sp = __KSTK_TOS(idle);
108 octeon_processor_gp = (unsigned long)(task_thread_info(idle));
109 octeon_processor_boot = cpu_logical_map(cpu);
110 mb();
111
112 count = 10000;
113 while (octeon_processor_sp && count) {
114 /* Waiting for processor to get the SP and GP */
115 udelay(1);
116 count--;
117 }
118 if (count == 0)
119 pr_err("Secondary boot timeout\n");
120}
121
122/**
123 * After we've done initial boot, this function is called to allow the
124 * board code to clean up state, if needed
125 */
126static void octeon_init_secondary(void)
127{
128 const int coreid = cvmx_get_core_num();
129 union cvmx_ciu_intx_sum0 interrupt_enable;
130
131 octeon_check_cpu_bist();
132 octeon_init_cvmcount();
133 /*
134 pr_info("SMP: CPU%d (CoreId %lu) started\n", cpu, coreid);
135 */
136 /* Enable Mailbox interrupts to this core. These are the only
137 interrupts allowed on line 3 */
138 cvmx_write_csr(CVMX_CIU_MBOX_CLRX(coreid), 0xffffffff);
139 interrupt_enable.u64 = 0;
140 interrupt_enable.s.mbox = 0x3;
141 cvmx_write_csr(CVMX_CIU_INTX_EN0((coreid * 2)), interrupt_enable.u64);
142 cvmx_write_csr(CVMX_CIU_INTX_EN0((coreid * 2 + 1)), 0);
143 cvmx_write_csr(CVMX_CIU_INTX_EN1((coreid * 2)), 0);
144 cvmx_write_csr(CVMX_CIU_INTX_EN1((coreid * 2 + 1)), 0);
145 /* Enable core interrupt processing for 2,3 and 7 */
146 set_c0_status(0x8c01);
147}
148
149/**
150 * Callout to firmware before smp_init
151 *
152 */
153void octeon_prepare_cpus(unsigned int max_cpus)
154{
155 cvmx_write_csr(CVMX_CIU_MBOX_CLRX(cvmx_get_core_num()), 0xffffffff);
156 if (request_irq(OCTEON_IRQ_MBOX0, mailbox_interrupt, IRQF_SHARED,
157 "mailbox0", mailbox_interrupt)) {
158 panic("Cannot request_irq(OCTEON_IRQ_MBOX0)\n");
159 }
160 if (request_irq(OCTEON_IRQ_MBOX1, mailbox_interrupt, IRQF_SHARED,
161 "mailbox1", mailbox_interrupt)) {
162 panic("Cannot request_irq(OCTEON_IRQ_MBOX1)\n");
163 }
164}
165
166/**
167 * Last chance for the board code to finish SMP initialization before
168 * the CPU is "online".
169 */
170static void octeon_smp_finish(void)
171{
172#ifdef CONFIG_CAVIUM_GDB
173 unsigned long tmp;
174 /* Pulse MCD0 signal on Ctrl-C to stop all the cores. Also set the MCD0
175 to be not masked by this core so we know the signal is received by
176 someone */
177 asm volatile ("dmfc0 %0, $22\n"
178 "ori %0, %0, 0x9100\n" "dmtc0 %0, $22\n" : "=r" (tmp));
179#endif
180
181 octeon_user_io_init();
182
183 /* to generate the first CPU timer interrupt */
184 write_c0_compare(read_c0_count() + mips_hpt_frequency / HZ);
185}
186
187/**
188 * Hook for after all CPUs are online
189 */
190static void octeon_cpus_done(void)
191{
192#ifdef CONFIG_CAVIUM_GDB
193 unsigned long tmp;
194 /* Pulse MCD0 signal on Ctrl-C to stop all the cores. Also set the MCD0
195 to be not masked by this core so we know the signal is received by
196 someone */
197 asm volatile ("dmfc0 %0, $22\n"
198 "ori %0, %0, 0x9100\n" "dmtc0 %0, $22\n" : "=r" (tmp));
199#endif
200}
201
202struct plat_smp_ops octeon_smp_ops = {
203 .send_ipi_single = octeon_send_ipi_single,
204 .send_ipi_mask = octeon_send_ipi_mask,
205 .init_secondary = octeon_init_secondary,
206 .smp_finish = octeon_smp_finish,
207 .cpus_done = octeon_cpus_done,
208 .boot_secondary = octeon_boot_secondary,
209 .smp_setup = octeon_smp_setup,
210 .prepare_cpus = octeon_prepare_cpus,
211};
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig
index a3bbbf067a3b..783da855a2e3 100644
--- a/arch/mips/configs/bigsur_defconfig
+++ b/arch/mips/configs/bigsur_defconfig
@@ -959,7 +959,7 @@ CONFIG_I2C_SIBYTE=y
959# Miscellaneous I2C Chip support 959# Miscellaneous I2C Chip support
960# 960#
961# CONFIG_DS1682 is not set 961# CONFIG_DS1682 is not set
962CONFIG_SENSORS_EEPROM=y 962CONFIG_EEPROM_LEGACY=y
963CONFIG_SENSORS_PCF8574=y 963CONFIG_SENSORS_PCF8574=y
964# CONFIG_PCF8575 is not set 964# CONFIG_PCF8575 is not set
965CONFIG_SENSORS_PCF8591=y 965CONFIG_SENSORS_PCF8591=y
diff --git a/arch/mips/configs/cavium-octeon_defconfig b/arch/mips/configs/cavium-octeon_defconfig
new file mode 100644
index 000000000000..7afaa28a3768
--- /dev/null
+++ b/arch/mips/configs/cavium-octeon_defconfig
@@ -0,0 +1,943 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28-rc6
4# Wed Dec 3 11:00:58 2008
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_BASLER_EXCITE 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_MACH_EMMA 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
29# CONFIG_SGI_IP22 is not set
30# CONFIG_SGI_IP27 is not set
31# CONFIG_SGI_IP28 is not set
32# CONFIG_SGI_IP32 is not set
33# CONFIG_SIBYTE_CRHINE is not set
34# CONFIG_SIBYTE_CARMEL is not set
35# CONFIG_SIBYTE_CRHONE is not set
36# CONFIG_SIBYTE_RHONE is not set
37# CONFIG_SIBYTE_SWARM is not set
38# CONFIG_SIBYTE_LITTLESUR is not set
39# CONFIG_SIBYTE_SENTOSA is not set
40# CONFIG_SIBYTE_BIGSUR is not set
41# CONFIG_SNI_RM is not set
42# CONFIG_MACH_TX39XX is not set
43# CONFIG_MACH_TX49XX is not set
44# CONFIG_MIKROTIK_RB532 is not set
45# CONFIG_WR_PPMC is not set
46# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
47CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD=y
48CONFIG_CAVIUM_OCTEON_SPECIFIC_OPTIONS=y
49# CONFIG_CAVIUM_OCTEON_2ND_KERNEL is not set
50CONFIG_CAVIUM_OCTEON_HW_FIX_UNALIGNED=y
51CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE=2
52CONFIG_CAVIUM_OCTEON_LOCK_L2=y
53CONFIG_CAVIUM_OCTEON_LOCK_L2_TLB=y
54CONFIG_CAVIUM_OCTEON_LOCK_L2_EXCEPTION=y
55CONFIG_CAVIUM_OCTEON_LOCK_L2_LOW_LEVEL_INTERRUPT=y
56CONFIG_CAVIUM_OCTEON_LOCK_L2_INTERRUPT=y
57CONFIG_CAVIUM_OCTEON_LOCK_L2_MEMCPY=y
58CONFIG_ARCH_SPARSEMEM_ENABLE=y
59CONFIG_RWSEM_GENERIC_SPINLOCK=y
60# CONFIG_ARCH_HAS_ILOG2_U32 is not set
61# CONFIG_ARCH_HAS_ILOG2_U64 is not set
62CONFIG_ARCH_SUPPORTS_OPROFILE=y
63CONFIG_GENERIC_FIND_NEXT_BIT=y
64CONFIG_GENERIC_HWEIGHT=y
65CONFIG_GENERIC_CALIBRATE_DELAY=y
66CONFIG_GENERIC_CLOCKEVENTS=y
67CONFIG_GENERIC_TIME=y
68CONFIG_GENERIC_CMOS_UPDATE=y
69CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
70# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
71CONFIG_CEVT_R4K=y
72CONFIG_CSRC_R4K=y
73CONFIG_DMA_COHERENT=y
74# CONFIG_EARLY_PRINTK is not set
75CONFIG_SYS_HAS_EARLY_PRINTK=y
76# CONFIG_HOTPLUG_CPU is not set
77# CONFIG_NO_IOPORT is not set
78CONFIG_CPU_BIG_ENDIAN=y
79# CONFIG_CPU_LITTLE_ENDIAN is not set
80CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
81CONFIG_IRQ_CPU=y
82CONFIG_IRQ_CPU_OCTEON=y
83CONFIG_SWAP_IO_SPACE=y
84CONFIG_MIPS_L1_CACHE_SHIFT=7
85
86#
87# CPU selection
88#
89# CONFIG_CPU_LOONGSON2 is not set
90# CONFIG_CPU_MIPS32_R1 is not set
91# CONFIG_CPU_MIPS32_R2 is not set
92# CONFIG_CPU_MIPS64_R1 is not set
93# CONFIG_CPU_MIPS64_R2 is not set
94# CONFIG_CPU_R3000 is not set
95# CONFIG_CPU_TX39XX is not set
96# CONFIG_CPU_VR41XX is not set
97# CONFIG_CPU_R4300 is not set
98# CONFIG_CPU_R4X00 is not set
99# CONFIG_CPU_TX49XX is not set
100# CONFIG_CPU_R5000 is not set
101# CONFIG_CPU_R5432 is not set
102# CONFIG_CPU_R5500 is not set
103# CONFIG_CPU_R6000 is not set
104# CONFIG_CPU_NEVADA is not set
105# CONFIG_CPU_R8000 is not set
106# CONFIG_CPU_R10000 is not set
107# CONFIG_CPU_RM7000 is not set
108# CONFIG_CPU_RM9000 is not set
109# CONFIG_CPU_SB1 is not set
110CONFIG_CPU_CAVIUM_OCTEON=y
111CONFIG_WEAK_ORDERING=y
112CONFIG_WEAK_REORDERING_BEYOND_LLSC=y
113CONFIG_CPU_MIPSR2=y
114CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
115CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
116
117#
118# Kernel type
119#
120# CONFIG_32BIT is not set
121CONFIG_64BIT=y
122CONFIG_PAGE_SIZE_4KB=y
123# CONFIG_PAGE_SIZE_8KB is not set
124# CONFIG_PAGE_SIZE_16KB is not set
125# CONFIG_PAGE_SIZE_64KB is not set
126CONFIG_CPU_HAS_PREFETCH=y
127CONFIG_MIPS_MT_DISABLED=y
128# CONFIG_MIPS_MT_SMP is not set
129# CONFIG_MIPS_MT_SMTC is not set
130CONFIG_64BIT_PHYS_ADDR=y
131CONFIG_CPU_HAS_SYNC=y
132CONFIG_GENERIC_HARDIRQS=y
133CONFIG_GENERIC_IRQ_PROBE=y
134CONFIG_IRQ_PER_CPU=y
135CONFIG_CPU_SUPPORTS_HIGHMEM=y
136CONFIG_SYS_SUPPORTS_HIGHMEM=y
137CONFIG_ARCH_FLATMEM_ENABLE=y
138CONFIG_ARCH_POPULATES_NODE_MAP=y
139CONFIG_SELECT_MEMORY_MODEL=y
140# CONFIG_FLATMEM_MANUAL is not set
141# CONFIG_DISCONTIGMEM_MANUAL is not set
142CONFIG_SPARSEMEM_MANUAL=y
143CONFIG_SPARSEMEM=y
144CONFIG_HAVE_MEMORY_PRESENT=y
145CONFIG_SPARSEMEM_STATIC=y
146CONFIG_PAGEFLAGS_EXTENDED=y
147CONFIG_SPLIT_PTLOCK_CPUS=4
148CONFIG_RESOURCES_64BIT=y
149CONFIG_PHYS_ADDR_T_64BIT=y
150CONFIG_ZONE_DMA_FLAG=0
151CONFIG_VIRT_TO_BUS=y
152CONFIG_UNEVICTABLE_LRU=y
153CONFIG_SMP=y
154CONFIG_SYS_SUPPORTS_SMP=y
155CONFIG_NR_CPUS_DEFAULT_16=y
156CONFIG_NR_CPUS=16
157# CONFIG_NO_HZ is not set
158# CONFIG_HIGH_RES_TIMERS is not set
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
172# CONFIG_PREEMPT_RCU is not set
173# CONFIG_KEXEC is not set
174CONFIG_SECCOMP=y
175CONFIG_LOCKDEP_SUPPORT=y
176CONFIG_STACKTRACE_SUPPORT=y
177CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
178
179#
180# General setup
181#
182CONFIG_EXPERIMENTAL=y
183CONFIG_LOCK_KERNEL=y
184CONFIG_INIT_ENV_ARG_LIMIT=32
185CONFIG_LOCALVERSION=""
186CONFIG_LOCALVERSION_AUTO=y
187CONFIG_SWAP=y
188CONFIG_SYSVIPC=y
189CONFIG_SYSVIPC_SYSCTL=y
190CONFIG_POSIX_MQUEUE=y
191CONFIG_BSD_PROCESS_ACCT=y
192CONFIG_BSD_PROCESS_ACCT_V3=y
193# CONFIG_TASKSTATS is not set
194# CONFIG_AUDIT is not set
195CONFIG_IKCONFIG=y
196CONFIG_IKCONFIG_PROC=y
197CONFIG_LOG_BUF_SHIFT=14
198# CONFIG_CGROUPS is not set
199CONFIG_GROUP_SCHED=y
200CONFIG_FAIR_GROUP_SCHED=y
201# CONFIG_RT_GROUP_SCHED is not set
202CONFIG_USER_SCHED=y
203# CONFIG_CGROUP_SCHED is not set
204CONFIG_SYSFS_DEPRECATED=y
205CONFIG_SYSFS_DEPRECATED_V2=y
206CONFIG_RELAY=y
207# CONFIG_NAMESPACES is not set
208CONFIG_BLK_DEV_INITRD=y
209CONFIG_INITRAMFS_SOURCE=""
210# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
211CONFIG_SYSCTL=y
212CONFIG_EMBEDDED=y
213CONFIG_SYSCTL_SYSCALL=y
214CONFIG_KALLSYMS=y
215# CONFIG_KALLSYMS_ALL is not set
216# CONFIG_KALLSYMS_EXTRA_PASS is not set
217CONFIG_HOTPLUG=y
218CONFIG_PRINTK=y
219CONFIG_BUG=y
220CONFIG_ELF_CORE=y
221# CONFIG_PCSPKR_PLATFORM is not set
222CONFIG_COMPAT_BRK=y
223CONFIG_BASE_FULL=y
224CONFIG_FUTEX=y
225CONFIG_ANON_INODES=y
226CONFIG_EPOLL=y
227CONFIG_SIGNALFD=y
228CONFIG_TIMERFD=y
229CONFIG_EVENTFD=y
230CONFIG_SHMEM=y
231CONFIG_AIO=y
232CONFIG_VM_EVENT_COUNTERS=y
233CONFIG_SLAB=y
234# CONFIG_SLUB is not set
235# CONFIG_SLOB is not set
236# CONFIG_PROFILING is not set
237# CONFIG_MARKERS is not set
238CONFIG_HAVE_OPROFILE=y
239CONFIG_USE_GENERIC_SMP_HELPERS=y
240# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
241CONFIG_SLABINFO=y
242CONFIG_RT_MUTEXES=y
243# CONFIG_TINY_SHMEM is not set
244CONFIG_BASE_SMALL=0
245CONFIG_MODULES=y
246# CONFIG_MODULE_FORCE_LOAD is not set
247CONFIG_MODULE_UNLOAD=y
248# CONFIG_MODULE_FORCE_UNLOAD is not set
249# CONFIG_MODVERSIONS is not set
250# CONFIG_MODULE_SRCVERSION_ALL is not set
251CONFIG_KMOD=y
252CONFIG_STOP_MACHINE=y
253CONFIG_BLOCK=y
254# CONFIG_BLK_DEV_IO_TRACE is not set
255# CONFIG_BLK_DEV_BSG is not set
256# CONFIG_BLK_DEV_INTEGRITY is not set
257CONFIG_BLOCK_COMPAT=y
258
259#
260# IO Schedulers
261#
262CONFIG_IOSCHED_NOOP=y
263CONFIG_IOSCHED_AS=y
264CONFIG_IOSCHED_DEADLINE=y
265CONFIG_IOSCHED_CFQ=y
266# CONFIG_DEFAULT_AS is not set
267# CONFIG_DEFAULT_DEADLINE is not set
268CONFIG_DEFAULT_CFQ=y
269# CONFIG_DEFAULT_NOOP is not set
270CONFIG_DEFAULT_IOSCHED="cfq"
271CONFIG_CLASSIC_RCU=y
272# CONFIG_PROBE_INITRD_HEADER is not set
273# CONFIG_FREEZER is not set
274
275#
276# Bus options (PCI, PCMCIA, EISA, ISA, TC)
277#
278# CONFIG_ARCH_SUPPORTS_MSI is not set
279CONFIG_MMU=y
280# CONFIG_PCCARD is not set
281
282#
283# Executable file formats
284#
285CONFIG_BINFMT_ELF=y
286# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
287# CONFIG_HAVE_AOUT is not set
288# CONFIG_BINFMT_MISC is not set
289CONFIG_MIPS32_COMPAT=y
290CONFIG_COMPAT=y
291CONFIG_SYSVIPC_COMPAT=y
292CONFIG_MIPS32_O32=y
293CONFIG_MIPS32_N32=y
294CONFIG_BINFMT_ELF32=y
295
296#
297# Power management options
298#
299# CONFIG_PM is not set
300CONFIG_NET=y
301
302#
303# Networking options
304#
305CONFIG_PACKET=y
306CONFIG_PACKET_MMAP=y
307CONFIG_UNIX=y
308CONFIG_XFRM=y
309# CONFIG_XFRM_USER is not set
310# CONFIG_XFRM_SUB_POLICY is not set
311# CONFIG_XFRM_MIGRATE is not set
312# CONFIG_XFRM_STATISTICS is not set
313# CONFIG_NET_KEY is not set
314CONFIG_INET=y
315CONFIG_IP_MULTICAST=y
316CONFIG_IP_ADVANCED_ROUTER=y
317CONFIG_ASK_IP_FIB_HASH=y
318# CONFIG_IP_FIB_TRIE is not set
319CONFIG_IP_FIB_HASH=y
320CONFIG_IP_MULTIPLE_TABLES=y
321CONFIG_IP_ROUTE_MULTIPATH=y
322CONFIG_IP_ROUTE_VERBOSE=y
323CONFIG_IP_PNP=y
324CONFIG_IP_PNP_DHCP=y
325CONFIG_IP_PNP_BOOTP=y
326CONFIG_IP_PNP_RARP=y
327# CONFIG_NET_IPIP is not set
328# CONFIG_NET_IPGRE is not set
329CONFIG_IP_MROUTE=y
330CONFIG_IP_PIMSM_V1=y
331CONFIG_IP_PIMSM_V2=y
332# CONFIG_ARPD is not set
333CONFIG_SYN_COOKIES=y
334# CONFIG_INET_AH is not set
335# CONFIG_INET_ESP is not set
336# CONFIG_INET_IPCOMP is not set
337# CONFIG_INET_XFRM_TUNNEL is not set
338# CONFIG_INET_TUNNEL is not set
339CONFIG_INET_XFRM_MODE_TRANSPORT=y
340CONFIG_INET_XFRM_MODE_TUNNEL=y
341CONFIG_INET_XFRM_MODE_BEET=y
342# CONFIG_INET_LRO is not set
343CONFIG_INET_DIAG=y
344CONFIG_INET_TCP_DIAG=y
345# CONFIG_TCP_CONG_ADVANCED is not set
346CONFIG_TCP_CONG_CUBIC=y
347CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_TCP_MD5SIG is not set
349# CONFIG_IPV6 is not set
350# CONFIG_NETLABEL is not set
351# CONFIG_NETWORK_SECMARK is not set
352# CONFIG_NETFILTER is not set
353# CONFIG_IP_DCCP is not set
354# CONFIG_IP_SCTP is not set
355# CONFIG_TIPC is not set
356# CONFIG_ATM is not set
357# CONFIG_BRIDGE is not set
358# CONFIG_NET_DSA is not set
359# CONFIG_VLAN_8021Q is not set
360# CONFIG_DECNET is not set
361# CONFIG_LLC2 is not set
362# CONFIG_IPX is not set
363# CONFIG_ATALK is not set
364# CONFIG_X25 is not set
365# CONFIG_LAPB is not set
366# CONFIG_ECONET is not set
367# CONFIG_WAN_ROUTER is not set
368# CONFIG_NET_SCHED is not set
369
370#
371# Network testing
372#
373# CONFIG_NET_PKTGEN is not set
374# CONFIG_HAMRADIO is not set
375# CONFIG_CAN is not set
376# CONFIG_IRDA is not set
377# CONFIG_BT is not set
378# CONFIG_AF_RXRPC is not set
379# CONFIG_PHONET is not set
380CONFIG_FIB_RULES=y
381# CONFIG_WIRELESS is not set
382# CONFIG_RFKILL is not set
383# CONFIG_NET_9P is not set
384
385#
386# Device Drivers
387#
388
389#
390# Generic Driver Options
391#
392CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
393CONFIG_STANDALONE=y
394CONFIG_PREVENT_FIRMWARE_BUILD=y
395# CONFIG_FW_LOADER is not set
396# CONFIG_DEBUG_DRIVER is not set
397# CONFIG_DEBUG_DEVRES is not set
398# CONFIG_SYS_HYPERVISOR is not set
399# CONFIG_CONNECTOR is not set
400CONFIG_MTD=y
401# CONFIG_MTD_DEBUG is not set
402# CONFIG_MTD_CONCAT is not set
403CONFIG_MTD_PARTITIONS=y
404# CONFIG_MTD_REDBOOT_PARTS is not set
405# CONFIG_MTD_CMDLINE_PARTS is not set
406# CONFIG_MTD_AR7_PARTS is not set
407
408#
409# User Modules And Translation Layers
410#
411CONFIG_MTD_CHAR=y
412CONFIG_MTD_BLKDEVS=y
413CONFIG_MTD_BLOCK=y
414# CONFIG_FTL is not set
415# CONFIG_NFTL is not set
416# CONFIG_INFTL is not set
417# CONFIG_RFD_FTL is not set
418# CONFIG_SSFDC is not set
419# CONFIG_MTD_OOPS is not set
420
421#
422# RAM/ROM/Flash chip drivers
423#
424CONFIG_MTD_CFI=y
425# CONFIG_MTD_JEDECPROBE is not set
426CONFIG_MTD_GEN_PROBE=y
427# CONFIG_MTD_CFI_ADV_OPTIONS is not set
428CONFIG_MTD_MAP_BANK_WIDTH_1=y
429CONFIG_MTD_MAP_BANK_WIDTH_2=y
430CONFIG_MTD_MAP_BANK_WIDTH_4=y
431# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
432# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
433# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
434CONFIG_MTD_CFI_I1=y
435CONFIG_MTD_CFI_I2=y
436# CONFIG_MTD_CFI_I4 is not set
437# CONFIG_MTD_CFI_I8 is not set
438# CONFIG_MTD_CFI_INTELEXT is not set
439CONFIG_MTD_CFI_AMDSTD=y
440# CONFIG_MTD_CFI_STAA is not set
441CONFIG_MTD_CFI_UTIL=y
442# CONFIG_MTD_RAM is not set
443# CONFIG_MTD_ROM is not set
444# CONFIG_MTD_ABSENT is not set
445
446#
447# Mapping drivers for chip access
448#
449# CONFIG_MTD_COMPLEX_MAPPINGS is not set
450CONFIG_MTD_PHYSMAP=y
451CONFIG_MTD_PHYSMAP_START=0x8000000
452CONFIG_MTD_PHYSMAP_LEN=0x0
453CONFIG_MTD_PHYSMAP_BANKWIDTH=2
454# CONFIG_MTD_PLATRAM is not set
455
456#
457# Self-contained MTD device drivers
458#
459# CONFIG_MTD_SLRAM is not set
460# CONFIG_MTD_PHRAM is not set
461# CONFIG_MTD_MTDRAM is not set
462# CONFIG_MTD_BLOCK2MTD is not set
463
464#
465# Disk-On-Chip Device Drivers
466#
467# CONFIG_MTD_DOC2000 is not set
468# CONFIG_MTD_DOC2001 is not set
469# CONFIG_MTD_DOC2001PLUS is not set
470# CONFIG_MTD_NAND is not set
471# CONFIG_MTD_ONENAND is not set
472
473#
474# UBI - Unsorted block images
475#
476# CONFIG_MTD_UBI is not set
477# CONFIG_PARPORT is not set
478CONFIG_BLK_DEV=y
479# CONFIG_BLK_DEV_COW_COMMON is not set
480CONFIG_BLK_DEV_LOOP=y
481# CONFIG_BLK_DEV_CRYPTOLOOP is not set
482# CONFIG_BLK_DEV_NBD is not set
483# CONFIG_BLK_DEV_RAM is not set
484# CONFIG_CDROM_PKTCDVD is not set
485# CONFIG_ATA_OVER_ETH is not set
486# CONFIG_BLK_DEV_HD is not set
487# CONFIG_MISC_DEVICES is not set
488CONFIG_HAVE_IDE=y
489# CONFIG_IDE is not set
490
491#
492# SCSI device support
493#
494# CONFIG_RAID_ATTRS is not set
495# CONFIG_SCSI is not set
496# CONFIG_SCSI_DMA is not set
497# CONFIG_SCSI_NETLINK is not set
498# CONFIG_ATA is not set
499# CONFIG_MD is not set
500CONFIG_NETDEVICES=y
501# CONFIG_DUMMY is not set
502# CONFIG_BONDING is not set
503# CONFIG_MACVLAN is not set
504# CONFIG_EQUALIZER is not set
505# CONFIG_TUN is not set
506# CONFIG_VETH is not set
507# CONFIG_PHYLIB is not set
508CONFIG_NET_ETHERNET=y
509CONFIG_MII=y
510# CONFIG_AX88796 is not set
511# CONFIG_SMC91X is not set
512# CONFIG_DM9000 is not set
513# CONFIG_IBM_NEW_EMAC_ZMII is not set
514# CONFIG_IBM_NEW_EMAC_RGMII is not set
515# CONFIG_IBM_NEW_EMAC_TAH is not set
516# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
517# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
518# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
519# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
520# CONFIG_B44 is not set
521CONFIG_NETDEV_1000=y
522# CONFIG_NETDEV_10000 is not set
523
524#
525# Wireless LAN
526#
527# CONFIG_WLAN_PRE80211 is not set
528# CONFIG_WLAN_80211 is not set
529# CONFIG_IWLWIFI_LEDS is not set
530# CONFIG_WAN is not set
531# CONFIG_PPP is not set
532# CONFIG_SLIP is not set
533# CONFIG_NETCONSOLE is not set
534# CONFIG_NETPOLL is not set
535# CONFIG_NET_POLL_CONTROLLER is not set
536# CONFIG_ISDN is not set
537# CONFIG_PHONE is not set
538
539#
540# Input device support
541#
542# CONFIG_INPUT is not set
543
544#
545# Hardware I/O ports
546#
547# CONFIG_SERIO is not set
548# CONFIG_GAMEPORT is not set
549
550#
551# Character devices
552#
553# CONFIG_VT is not set
554CONFIG_DEVKMEM=y
555# CONFIG_SERIAL_NONSTANDARD is not set
556
557#
558# Serial drivers
559#
560CONFIG_SERIAL_8250=y
561CONFIG_SERIAL_8250_CONSOLE=y
562CONFIG_SERIAL_8250_NR_UARTS=2
563CONFIG_SERIAL_8250_RUNTIME_UARTS=2
564# CONFIG_SERIAL_8250_EXTENDED is not set
565
566#
567# Non-8250 serial port support
568#
569CONFIG_SERIAL_CORE=y
570CONFIG_SERIAL_CORE_CONSOLE=y
571CONFIG_UNIX98_PTYS=y
572CONFIG_LEGACY_PTYS=y
573CONFIG_LEGACY_PTY_COUNT=256
574# CONFIG_IPMI_HANDLER is not set
575# CONFIG_HW_RANDOM is not set
576# CONFIG_R3964 is not set
577# CONFIG_RAW_DRIVER is not set
578# CONFIG_TCG_TPM is not set
579# CONFIG_I2C is not set
580# CONFIG_SPI is not set
581# CONFIG_W1 is not set
582# CONFIG_POWER_SUPPLY is not set
583# CONFIG_HWMON is not set
584# CONFIG_THERMAL is not set
585# CONFIG_THERMAL_HWMON is not set
586CONFIG_WATCHDOG=y
587# CONFIG_WATCHDOG_NOWAYOUT is not set
588
589#
590# Watchdog Device Drivers
591#
592# CONFIG_SOFT_WATCHDOG is not set
593CONFIG_SSB_POSSIBLE=y
594
595#
596# Sonics Silicon Backplane
597#
598# CONFIG_SSB is not set
599
600#
601# Multifunction device drivers
602#
603# CONFIG_MFD_CORE is not set
604# CONFIG_MFD_SM501 is not set
605# CONFIG_HTC_PASIC3 is not set
606# CONFIG_MFD_TMIO is not set
607# CONFIG_REGULATOR is not set
608
609#
610# Multimedia devices
611#
612
613#
614# Multimedia core support
615#
616# CONFIG_VIDEO_DEV is not set
617# CONFIG_DVB_CORE is not set
618# CONFIG_VIDEO_MEDIA is not set
619
620#
621# Multimedia drivers
622#
623# CONFIG_DAB is not set
624
625#
626# Graphics support
627#
628# CONFIG_VGASTATE is not set
629# CONFIG_VIDEO_OUTPUT_CONTROL is not set
630# CONFIG_FB is not set
631# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
632
633#
634# Display device support
635#
636# CONFIG_DISPLAY_SUPPORT is not set
637# CONFIG_SOUND is not set
638# CONFIG_USB_SUPPORT is not set
639# CONFIG_MMC is not set
640# CONFIG_MEMSTICK is not set
641# CONFIG_NEW_LEDS is not set
642# CONFIG_ACCESSIBILITY is not set
643CONFIG_RTC_LIB=y
644# CONFIG_RTC_CLASS is not set
645# CONFIG_DMADEVICES is not set
646# CONFIG_UIO is not set
647# CONFIG_STAGING is not set
648CONFIG_STAGING_EXCLUDE_BUILD=y
649
650#
651# File systems
652#
653# CONFIG_EXT2_FS is not set
654# CONFIG_EXT3_FS is not set
655# CONFIG_EXT4_FS is not set
656# CONFIG_REISERFS_FS is not set
657# CONFIG_JFS_FS is not set
658# CONFIG_FS_POSIX_ACL is not set
659CONFIG_FILE_LOCKING=y
660# CONFIG_XFS_FS is not set
661# CONFIG_GFS2_FS is not set
662# CONFIG_OCFS2_FS is not set
663CONFIG_DNOTIFY=y
664CONFIG_INOTIFY=y
665CONFIG_INOTIFY_USER=y
666# CONFIG_QUOTA is not set
667# CONFIG_AUTOFS_FS is not set
668# CONFIG_AUTOFS4_FS is not set
669# CONFIG_FUSE_FS is not set
670
671#
672# CD-ROM/DVD Filesystems
673#
674# CONFIG_ISO9660_FS is not set
675# CONFIG_UDF_FS is not set
676
677#
678# DOS/FAT/NT Filesystems
679#
680# CONFIG_MSDOS_FS is not set
681# CONFIG_VFAT_FS is not set
682# CONFIG_NTFS_FS is not set
683
684#
685# Pseudo filesystems
686#
687CONFIG_PROC_FS=y
688CONFIG_PROC_KCORE=y
689CONFIG_PROC_SYSCTL=y
690CONFIG_PROC_PAGE_MONITOR=y
691CONFIG_SYSFS=y
692CONFIG_TMPFS=y
693# CONFIG_TMPFS_POSIX_ACL is not set
694# CONFIG_HUGETLB_PAGE is not set
695# CONFIG_CONFIGFS_FS is not set
696
697#
698# Miscellaneous filesystems
699#
700# CONFIG_ADFS_FS is not set
701# CONFIG_AFFS_FS is not set
702# CONFIG_HFS_FS is not set
703# CONFIG_HFSPLUS_FS is not set
704# CONFIG_BEFS_FS is not set
705# CONFIG_BFS_FS is not set
706# CONFIG_EFS_FS is not set
707# CONFIG_JFFS2_FS is not set
708# CONFIG_CRAMFS is not set
709# CONFIG_VXFS_FS is not set
710# CONFIG_MINIX_FS is not set
711# CONFIG_OMFS_FS is not set
712# CONFIG_HPFS_FS is not set
713# CONFIG_QNX4FS_FS is not set
714# CONFIG_ROMFS_FS is not set
715# CONFIG_SYSV_FS is not set
716# CONFIG_UFS_FS is not set
717# CONFIG_NETWORK_FILESYSTEMS is not set
718
719#
720# Partition Types
721#
722# CONFIG_PARTITION_ADVANCED is not set
723CONFIG_MSDOS_PARTITION=y
724CONFIG_NLS=y
725CONFIG_NLS_DEFAULT="iso8859-1"
726CONFIG_NLS_CODEPAGE_437=y
727# CONFIG_NLS_CODEPAGE_737 is not set
728# CONFIG_NLS_CODEPAGE_775 is not set
729# CONFIG_NLS_CODEPAGE_850 is not set
730# CONFIG_NLS_CODEPAGE_852 is not set
731# CONFIG_NLS_CODEPAGE_855 is not set
732# CONFIG_NLS_CODEPAGE_857 is not set
733# CONFIG_NLS_CODEPAGE_860 is not set
734# CONFIG_NLS_CODEPAGE_861 is not set
735# CONFIG_NLS_CODEPAGE_862 is not set
736# CONFIG_NLS_CODEPAGE_863 is not set
737# CONFIG_NLS_CODEPAGE_864 is not set
738# CONFIG_NLS_CODEPAGE_865 is not set
739# CONFIG_NLS_CODEPAGE_866 is not set
740# CONFIG_NLS_CODEPAGE_869 is not set
741# CONFIG_NLS_CODEPAGE_936 is not set
742# CONFIG_NLS_CODEPAGE_950 is not set
743# CONFIG_NLS_CODEPAGE_932 is not set
744# CONFIG_NLS_CODEPAGE_949 is not set
745# CONFIG_NLS_CODEPAGE_874 is not set
746# CONFIG_NLS_ISO8859_8 is not set
747# CONFIG_NLS_CODEPAGE_1250 is not set
748# CONFIG_NLS_CODEPAGE_1251 is not set
749# CONFIG_NLS_ASCII is not set
750CONFIG_NLS_ISO8859_1=y
751# CONFIG_NLS_ISO8859_2 is not set
752# CONFIG_NLS_ISO8859_3 is not set
753# CONFIG_NLS_ISO8859_4 is not set
754# CONFIG_NLS_ISO8859_5 is not set
755# CONFIG_NLS_ISO8859_6 is not set
756# CONFIG_NLS_ISO8859_7 is not set
757# CONFIG_NLS_ISO8859_9 is not set
758# CONFIG_NLS_ISO8859_13 is not set
759# CONFIG_NLS_ISO8859_14 is not set
760# CONFIG_NLS_ISO8859_15 is not set
761# CONFIG_NLS_KOI8_R is not set
762# CONFIG_NLS_KOI8_U is not set
763# CONFIG_NLS_UTF8 is not set
764# CONFIG_DLM is not set
765
766#
767# Kernel hacking
768#
769CONFIG_TRACE_IRQFLAGS_SUPPORT=y
770# CONFIG_PRINTK_TIME is not set
771CONFIG_ENABLE_WARN_DEPRECATED=y
772CONFIG_ENABLE_MUST_CHECK=y
773CONFIG_FRAME_WARN=2048
774CONFIG_MAGIC_SYSRQ=y
775# CONFIG_UNUSED_SYMBOLS is not set
776CONFIG_DEBUG_FS=y
777# CONFIG_HEADERS_CHECK is not set
778CONFIG_DEBUG_KERNEL=y
779# CONFIG_DEBUG_SHIRQ is not set
780CONFIG_DETECT_SOFTLOCKUP=y
781# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
782CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
783CONFIG_SCHED_DEBUG=y
784# CONFIG_SCHEDSTATS is not set
785# CONFIG_TIMER_STATS is not set
786# CONFIG_DEBUG_OBJECTS is not set
787# CONFIG_DEBUG_SLAB is not set
788CONFIG_DEBUG_PREEMPT=y
789# CONFIG_DEBUG_RT_MUTEXES is not set
790# CONFIG_RT_MUTEX_TESTER is not set
791CONFIG_DEBUG_SPINLOCK=y
792# CONFIG_DEBUG_MUTEXES is not set
793# CONFIG_DEBUG_LOCK_ALLOC is not set
794# CONFIG_PROVE_LOCKING is not set
795# CONFIG_LOCK_STAT is not set
796CONFIG_DEBUG_SPINLOCK_SLEEP=y
797# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
798# CONFIG_DEBUG_KOBJECT is not set
799CONFIG_DEBUG_INFO=y
800# CONFIG_DEBUG_VM is not set
801# CONFIG_DEBUG_WRITECOUNT is not set
802# CONFIG_DEBUG_MEMORY_INIT is not set
803# CONFIG_DEBUG_LIST is not set
804# CONFIG_DEBUG_SG is not set
805# CONFIG_BOOT_PRINTK_DELAY is not set
806# CONFIG_RCU_TORTURE_TEST is not set
807# CONFIG_RCU_CPU_STALL_DETECTOR is not set
808# CONFIG_BACKTRACE_SELF_TEST is not set
809# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
810# CONFIG_FAULT_INJECTION is not set
811CONFIG_SYSCTL_SYSCALL_CHECK=y
812
813#
814# Tracers
815#
816# CONFIG_IRQSOFF_TRACER is not set
817# CONFIG_PREEMPT_TRACER is not set
818# CONFIG_SCHED_TRACER is not set
819# CONFIG_CONTEXT_SWITCH_TRACER is not set
820# CONFIG_BOOT_TRACER is not set
821# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
822# CONFIG_SAMPLES is not set
823CONFIG_HAVE_ARCH_KGDB=y
824# CONFIG_KGDB is not set
825CONFIG_CMDLINE=""
826# CONFIG_DEBUG_STACK_USAGE is not set
827# CONFIG_RUNTIME_DEBUG is not set
828
829#
830# Security options
831#
832# CONFIG_KEYS is not set
833CONFIG_SECURITY=y
834# CONFIG_SECURITYFS is not set
835CONFIG_SECURITY_NETWORK=y
836# CONFIG_SECURITY_NETWORK_XFRM is not set
837# CONFIG_SECURITY_FILE_CAPABILITIES is not set
838CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
839CONFIG_CRYPTO=y
840
841#
842# Crypto core or helper
843#
844# CONFIG_CRYPTO_FIPS is not set
845CONFIG_CRYPTO_ALGAPI=y
846CONFIG_CRYPTO_AEAD=y
847CONFIG_CRYPTO_BLKCIPHER=y
848CONFIG_CRYPTO_HASH=y
849CONFIG_CRYPTO_RNG=y
850CONFIG_CRYPTO_MANAGER=y
851# CONFIG_CRYPTO_GF128MUL is not set
852# CONFIG_CRYPTO_NULL is not set
853# CONFIG_CRYPTO_CRYPTD is not set
854# CONFIG_CRYPTO_AUTHENC is not set
855# CONFIG_CRYPTO_TEST is not set
856
857#
858# Authenticated Encryption with Associated Data
859#
860# CONFIG_CRYPTO_CCM is not set
861# CONFIG_CRYPTO_GCM is not set
862# CONFIG_CRYPTO_SEQIV is not set
863
864#
865# Block modes
866#
867CONFIG_CRYPTO_CBC=y
868# CONFIG_CRYPTO_CTR is not set
869# CONFIG_CRYPTO_CTS is not set
870# CONFIG_CRYPTO_ECB is not set
871# CONFIG_CRYPTO_LRW is not set
872# CONFIG_CRYPTO_PCBC is not set
873# CONFIG_CRYPTO_XTS is not set
874
875#
876# Hash modes
877#
878CONFIG_CRYPTO_HMAC=y
879# CONFIG_CRYPTO_XCBC is not set
880
881#
882# Digest
883#
884# CONFIG_CRYPTO_CRC32C is not set
885# CONFIG_CRYPTO_MD4 is not set
886CONFIG_CRYPTO_MD5=y
887# CONFIG_CRYPTO_MICHAEL_MIC is not set
888# CONFIG_CRYPTO_RMD128 is not set
889# CONFIG_CRYPTO_RMD160 is not set
890# CONFIG_CRYPTO_RMD256 is not set
891# CONFIG_CRYPTO_RMD320 is not set
892# CONFIG_CRYPTO_SHA1 is not set
893# CONFIG_CRYPTO_SHA256 is not set
894# CONFIG_CRYPTO_SHA512 is not set
895# CONFIG_CRYPTO_TGR192 is not set
896# CONFIG_CRYPTO_WP512 is not set
897
898#
899# Ciphers
900#
901# CONFIG_CRYPTO_AES is not set
902# CONFIG_CRYPTO_ANUBIS is not set
903# CONFIG_CRYPTO_ARC4 is not set
904# CONFIG_CRYPTO_BLOWFISH is not set
905# CONFIG_CRYPTO_CAMELLIA is not set
906# CONFIG_CRYPTO_CAST5 is not set
907# CONFIG_CRYPTO_CAST6 is not set
908CONFIG_CRYPTO_DES=y
909# CONFIG_CRYPTO_FCRYPT is not set
910# CONFIG_CRYPTO_KHAZAD is not set
911# CONFIG_CRYPTO_SALSA20 is not set
912# CONFIG_CRYPTO_SEED is not set
913# CONFIG_CRYPTO_SERPENT is not set
914# CONFIG_CRYPTO_TEA is not set
915# CONFIG_CRYPTO_TWOFISH is not set
916
917#
918# Compression
919#
920# CONFIG_CRYPTO_DEFLATE is not set
921# CONFIG_CRYPTO_LZO is not set
922
923#
924# Random Number Generation
925#
926# CONFIG_CRYPTO_ANSI_CPRNG is not set
927CONFIG_CRYPTO_HW=y
928
929#
930# Library routines
931#
932CONFIG_BITREVERSE=y
933# CONFIG_CRC_CCITT is not set
934# CONFIG_CRC16 is not set
935# CONFIG_CRC_T10DIF is not set
936# CONFIG_CRC_ITU_T is not set
937CONFIG_CRC32=y
938# CONFIG_CRC7 is not set
939# CONFIG_LIBCRC32C is not set
940CONFIG_PLIST=y
941CONFIG_HAS_IOMEM=y
942CONFIG_HAS_IOPORT=y
943CONFIG_HAS_DMA=y
diff --git a/arch/mips/configs/emma2rh_defconfig b/arch/mips/configs/emma2rh_defconfig
index 634bb4eaf132..fea9bc9865a3 100644
--- a/arch/mips/configs/emma2rh_defconfig
+++ b/arch/mips/configs/emma2rh_defconfig
@@ -996,7 +996,7 @@ CONFIG_I2C_CHARDEV=y
996# 996#
997# CONFIG_SENSORS_DS1337 is not set 997# CONFIG_SENSORS_DS1337 is not set
998# CONFIG_SENSORS_DS1374 is not set 998# CONFIG_SENSORS_DS1374 is not set
999# CONFIG_SENSORS_EEPROM is not set 999# CONFIG_EEPROM_LEGACY is not set
1000# CONFIG_SENSORS_PCF8574 is not set 1000# CONFIG_SENSORS_PCF8574 is not set
1001# CONFIG_SENSORS_PCA9539 is not set 1001# CONFIG_SENSORS_PCA9539 is not set
1002# CONFIG_SENSORS_PCF8591 is not set 1002# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/mips/configs/fulong_defconfig b/arch/mips/configs/fulong_defconfig
index b6698a232ae9..786a9bc9a696 100644
--- a/arch/mips/configs/fulong_defconfig
+++ b/arch/mips/configs/fulong_defconfig
@@ -1006,8 +1006,8 @@ CONFIG_I2C_VIAPRO=m
1006# Miscellaneous I2C Chip support 1006# Miscellaneous I2C Chip support
1007# 1007#
1008# CONFIG_DS1682 is not set 1008# CONFIG_DS1682 is not set
1009# CONFIG_AT24 is not set 1009# CONFIG_EEPROM_AT24 is not set
1010# CONFIG_SENSORS_EEPROM is not set 1010# CONFIG_EEPROM_LEGACY is not set
1011# CONFIG_SENSORS_PCF8574 is not set 1011# CONFIG_SENSORS_PCF8574 is not set
1012# CONFIG_PCF8575 is not set 1012# CONFIG_PCF8575 is not set
1013# CONFIG_SENSORS_PCA9539 is not set 1013# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig
index 34ea319be94c..f2baea3039bb 100644
--- a/arch/mips/configs/ip27_defconfig
+++ b/arch/mips/configs/ip27_defconfig
@@ -53,7 +53,7 @@ CONFIG_GENERIC_TIME=y
53CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 53CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
54CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 54CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
55CONFIG_ARC=y 55CONFIG_ARC=y
56CONFIG_DMA_IP27=y 56CONFIG_DMA_COHERENT=y
57CONFIG_EARLY_PRINTK=y 57CONFIG_EARLY_PRINTK=y
58CONFIG_SYS_HAS_EARLY_PRINTK=y 58CONFIG_SYS_HAS_EARLY_PRINTK=y
59# CONFIG_NO_IOPORT is not set 59# CONFIG_NO_IOPORT is not set
diff --git a/arch/mips/configs/msp71xx_defconfig b/arch/mips/configs/msp71xx_defconfig
index dd13db4d0fb9..84d6491b3d41 100644
--- a/arch/mips/configs/msp71xx_defconfig
+++ b/arch/mips/configs/msp71xx_defconfig
@@ -929,7 +929,7 @@ CONFIG_I2C_PMCMSP=y
929# 929#
930# CONFIG_SENSORS_DS1337 is not set 930# CONFIG_SENSORS_DS1337 is not set
931# CONFIG_SENSORS_DS1374 is not set 931# CONFIG_SENSORS_DS1374 is not set
932# CONFIG_SENSORS_EEPROM is not set 932# CONFIG_EEPROM_LEGACY is not set
933# CONFIG_SENSORS_PCF8574 is not set 933# CONFIG_SENSORS_PCF8574 is not set
934CONFIG_PMCTWILED=y 934CONFIG_PMCTWILED=y
935# CONFIG_SENSORS_PCA9539 is not set 935# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defconfig
index db9272677aa2..8426d3b9501c 100644
--- a/arch/mips/configs/mtx1_defconfig
+++ b/arch/mips/configs/mtx1_defconfig
@@ -1845,7 +1845,7 @@ CONFIG_I2C_VOODOO3=m
1845CONFIG_SENSORS_DS1337=m 1845CONFIG_SENSORS_DS1337=m
1846CONFIG_SENSORS_DS1374=m 1846CONFIG_SENSORS_DS1374=m
1847# CONFIG_DS1682 is not set 1847# CONFIG_DS1682 is not set
1848CONFIG_SENSORS_EEPROM=m 1848CONFIG_EEPROM_LEGACY=m
1849CONFIG_SENSORS_PCF8574=m 1849CONFIG_SENSORS_PCF8574=m
1850CONFIG_SENSORS_PCA9539=m 1850CONFIG_SENSORS_PCA9539=m
1851CONFIG_SENSORS_PCF8591=m 1851CONFIG_SENSORS_PCF8591=m
@@ -1872,7 +1872,7 @@ CONFIG_SPI_BUTTERFLY=m
1872# 1872#
1873# SPI Protocol Masters 1873# SPI Protocol Masters
1874# 1874#
1875# CONFIG_SPI_AT25 is not set 1875# CONFIG_EEPROM_AT25 is not set
1876# CONFIG_SPI_SPIDEV is not set 1876# CONFIG_SPI_SPIDEV is not set
1877# CONFIG_SPI_TLE62X0 is not set 1877# CONFIG_SPI_TLE62X0 is not set
1878CONFIG_W1=m 1878CONFIG_W1=m
diff --git a/arch/mips/configs/pnx8335-stb225_defconfig b/arch/mips/configs/pnx8335-stb225_defconfig
index d9536522cff5..2728caa6c2fb 100644
--- a/arch/mips/configs/pnx8335-stb225_defconfig
+++ b/arch/mips/configs/pnx8335-stb225_defconfig
@@ -640,8 +640,8 @@ CONFIG_I2C_CHARDEV=y
640# Miscellaneous I2C Chip support 640# Miscellaneous I2C Chip support
641# 641#
642# CONFIG_DS1682 is not set 642# CONFIG_DS1682 is not set
643# CONFIG_AT24 is not set 643# CONFIG_EEPROM_AT24 is not set
644# CONFIG_SENSORS_EEPROM is not set 644# CONFIG_EEPROM_LEGACY is not set
645# CONFIG_SENSORS_PCF8574 is not set 645# CONFIG_SENSORS_PCF8574 is not set
646# CONFIG_PCF8575 is not set 646# CONFIG_PCF8575 is not set
647# CONFIG_SENSORS_PCA9539 is not set 647# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/mips/configs/rbtx49xx_defconfig b/arch/mips/configs/rbtx49xx_defconfig
index c7c0864b8ce9..83d5c58662c8 100644
--- a/arch/mips/configs/rbtx49xx_defconfig
+++ b/arch/mips/configs/rbtx49xx_defconfig
@@ -522,7 +522,7 @@ CONFIG_SPI_TXX9=y
522# 522#
523# SPI Protocol Masters 523# SPI Protocol Masters
524# 524#
525CONFIG_SPI_AT25=y 525CONFIG_EEPROM_AT25=y
526# CONFIG_SPI_TLE62X0 is not set 526# CONFIG_SPI_TLE62X0 is not set
527CONFIG_HAVE_GPIO_LIB=y 527CONFIG_HAVE_GPIO_LIB=y
528 528
diff --git a/arch/mips/include/asm/Kbuild b/arch/mips/include/asm/Kbuild
index 023866c0c102..7897f05e3165 100644
--- a/arch/mips/include/asm/Kbuild
+++ b/arch/mips/include/asm/Kbuild
@@ -1,4 +1,3 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2
3header-y += cachectl.h sgidefs.h sysmips.h 3header-y += cachectl.h sgidefs.h sysmips.h
4header-y += swab.h
diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
index c996c3b4d074..1b332e15ab52 100644
--- a/arch/mips/include/asm/atomic.h
+++ b/arch/mips/include/asm/atomic.h
@@ -50,7 +50,7 @@
50static __inline__ void atomic_add(int i, atomic_t * v) 50static __inline__ void atomic_add(int i, atomic_t * v)
51{ 51{
52 if (cpu_has_llsc && R10000_LLSC_WAR) { 52 if (cpu_has_llsc && R10000_LLSC_WAR) {
53 unsigned long temp; 53 int temp;
54 54
55 __asm__ __volatile__( 55 __asm__ __volatile__(
56 " .set mips3 \n" 56 " .set mips3 \n"
@@ -62,7 +62,7 @@ static __inline__ void atomic_add(int i, atomic_t * v)
62 : "=&r" (temp), "=m" (v->counter) 62 : "=&r" (temp), "=m" (v->counter)
63 : "Ir" (i), "m" (v->counter)); 63 : "Ir" (i), "m" (v->counter));
64 } else if (cpu_has_llsc) { 64 } else if (cpu_has_llsc) {
65 unsigned long temp; 65 int temp;
66 66
67 __asm__ __volatile__( 67 __asm__ __volatile__(
68 " .set mips3 \n" 68 " .set mips3 \n"
@@ -95,7 +95,7 @@ static __inline__ void atomic_add(int i, atomic_t * v)
95static __inline__ void atomic_sub(int i, atomic_t * v) 95static __inline__ void atomic_sub(int i, atomic_t * v)
96{ 96{
97 if (cpu_has_llsc && R10000_LLSC_WAR) { 97 if (cpu_has_llsc && R10000_LLSC_WAR) {
98 unsigned long temp; 98 int temp;
99 99
100 __asm__ __volatile__( 100 __asm__ __volatile__(
101 " .set mips3 \n" 101 " .set mips3 \n"
@@ -107,7 +107,7 @@ static __inline__ void atomic_sub(int i, atomic_t * v)
107 : "=&r" (temp), "=m" (v->counter) 107 : "=&r" (temp), "=m" (v->counter)
108 : "Ir" (i), "m" (v->counter)); 108 : "Ir" (i), "m" (v->counter));
109 } else if (cpu_has_llsc) { 109 } else if (cpu_has_llsc) {
110 unsigned long temp; 110 int temp;
111 111
112 __asm__ __volatile__( 112 __asm__ __volatile__(
113 " .set mips3 \n" 113 " .set mips3 \n"
@@ -135,12 +135,12 @@ static __inline__ void atomic_sub(int i, atomic_t * v)
135 */ 135 */
136static __inline__ int atomic_add_return(int i, atomic_t * v) 136static __inline__ int atomic_add_return(int i, atomic_t * v)
137{ 137{
138 unsigned long result; 138 int result;
139 139
140 smp_llsc_mb(); 140 smp_llsc_mb();
141 141
142 if (cpu_has_llsc && R10000_LLSC_WAR) { 142 if (cpu_has_llsc && R10000_LLSC_WAR) {
143 unsigned long temp; 143 int temp;
144 144
145 __asm__ __volatile__( 145 __asm__ __volatile__(
146 " .set mips3 \n" 146 " .set mips3 \n"
@@ -154,7 +154,7 @@ static __inline__ int atomic_add_return(int i, atomic_t * v)
154 : "Ir" (i), "m" (v->counter) 154 : "Ir" (i), "m" (v->counter)
155 : "memory"); 155 : "memory");
156 } else if (cpu_has_llsc) { 156 } else if (cpu_has_llsc) {
157 unsigned long temp; 157 int temp;
158 158
159 __asm__ __volatile__( 159 __asm__ __volatile__(
160 " .set mips3 \n" 160 " .set mips3 \n"
@@ -187,12 +187,12 @@ static __inline__ int atomic_add_return(int i, atomic_t * v)
187 187
188static __inline__ int atomic_sub_return(int i, atomic_t * v) 188static __inline__ int atomic_sub_return(int i, atomic_t * v)
189{ 189{
190 unsigned long result; 190 int result;
191 191
192 smp_llsc_mb(); 192 smp_llsc_mb();
193 193
194 if (cpu_has_llsc && R10000_LLSC_WAR) { 194 if (cpu_has_llsc && R10000_LLSC_WAR) {
195 unsigned long temp; 195 int temp;
196 196
197 __asm__ __volatile__( 197 __asm__ __volatile__(
198 " .set mips3 \n" 198 " .set mips3 \n"
@@ -206,7 +206,7 @@ static __inline__ int atomic_sub_return(int i, atomic_t * v)
206 : "Ir" (i), "m" (v->counter) 206 : "Ir" (i), "m" (v->counter)
207 : "memory"); 207 : "memory");
208 } else if (cpu_has_llsc) { 208 } else if (cpu_has_llsc) {
209 unsigned long temp; 209 int temp;
210 210
211 __asm__ __volatile__( 211 __asm__ __volatile__(
212 " .set mips3 \n" 212 " .set mips3 \n"
@@ -247,12 +247,12 @@ static __inline__ int atomic_sub_return(int i, atomic_t * v)
247 */ 247 */
248static __inline__ int atomic_sub_if_positive(int i, atomic_t * v) 248static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
249{ 249{
250 unsigned long result; 250 int result;
251 251
252 smp_llsc_mb(); 252 smp_llsc_mb();
253 253
254 if (cpu_has_llsc && R10000_LLSC_WAR) { 254 if (cpu_has_llsc && R10000_LLSC_WAR) {
255 unsigned long temp; 255 int temp;
256 256
257 __asm__ __volatile__( 257 __asm__ __volatile__(
258 " .set mips3 \n" 258 " .set mips3 \n"
@@ -270,7 +270,7 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
270 : "Ir" (i), "m" (v->counter) 270 : "Ir" (i), "m" (v->counter)
271 : "memory"); 271 : "memory");
272 } else if (cpu_has_llsc) { 272 } else if (cpu_has_llsc) {
273 unsigned long temp; 273 int temp;
274 274
275 __asm__ __volatile__( 275 __asm__ __volatile__(
276 " .set mips3 \n" 276 " .set mips3 \n"
@@ -429,7 +429,7 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u)
429static __inline__ void atomic64_add(long i, atomic64_t * v) 429static __inline__ void atomic64_add(long i, atomic64_t * v)
430{ 430{
431 if (cpu_has_llsc && R10000_LLSC_WAR) { 431 if (cpu_has_llsc && R10000_LLSC_WAR) {
432 unsigned long temp; 432 long temp;
433 433
434 __asm__ __volatile__( 434 __asm__ __volatile__(
435 " .set mips3 \n" 435 " .set mips3 \n"
@@ -441,7 +441,7 @@ static __inline__ void atomic64_add(long i, atomic64_t * v)
441 : "=&r" (temp), "=m" (v->counter) 441 : "=&r" (temp), "=m" (v->counter)
442 : "Ir" (i), "m" (v->counter)); 442 : "Ir" (i), "m" (v->counter));
443 } else if (cpu_has_llsc) { 443 } else if (cpu_has_llsc) {
444 unsigned long temp; 444 long temp;
445 445
446 __asm__ __volatile__( 446 __asm__ __volatile__(
447 " .set mips3 \n" 447 " .set mips3 \n"
@@ -474,7 +474,7 @@ static __inline__ void atomic64_add(long i, atomic64_t * v)
474static __inline__ void atomic64_sub(long i, atomic64_t * v) 474static __inline__ void atomic64_sub(long i, atomic64_t * v)
475{ 475{
476 if (cpu_has_llsc && R10000_LLSC_WAR) { 476 if (cpu_has_llsc && R10000_LLSC_WAR) {
477 unsigned long temp; 477 long temp;
478 478
479 __asm__ __volatile__( 479 __asm__ __volatile__(
480 " .set mips3 \n" 480 " .set mips3 \n"
@@ -486,7 +486,7 @@ static __inline__ void atomic64_sub(long i, atomic64_t * v)
486 : "=&r" (temp), "=m" (v->counter) 486 : "=&r" (temp), "=m" (v->counter)
487 : "Ir" (i), "m" (v->counter)); 487 : "Ir" (i), "m" (v->counter));
488 } else if (cpu_has_llsc) { 488 } else if (cpu_has_llsc) {
489 unsigned long temp; 489 long temp;
490 490
491 __asm__ __volatile__( 491 __asm__ __volatile__(
492 " .set mips3 \n" 492 " .set mips3 \n"
@@ -514,12 +514,12 @@ static __inline__ void atomic64_sub(long i, atomic64_t * v)
514 */ 514 */
515static __inline__ long atomic64_add_return(long i, atomic64_t * v) 515static __inline__ long atomic64_add_return(long i, atomic64_t * v)
516{ 516{
517 unsigned long result; 517 long result;
518 518
519 smp_llsc_mb(); 519 smp_llsc_mb();
520 520
521 if (cpu_has_llsc && R10000_LLSC_WAR) { 521 if (cpu_has_llsc && R10000_LLSC_WAR) {
522 unsigned long temp; 522 long temp;
523 523
524 __asm__ __volatile__( 524 __asm__ __volatile__(
525 " .set mips3 \n" 525 " .set mips3 \n"
@@ -533,7 +533,7 @@ static __inline__ long atomic64_add_return(long i, atomic64_t * v)
533 : "Ir" (i), "m" (v->counter) 533 : "Ir" (i), "m" (v->counter)
534 : "memory"); 534 : "memory");
535 } else if (cpu_has_llsc) { 535 } else if (cpu_has_llsc) {
536 unsigned long temp; 536 long temp;
537 537
538 __asm__ __volatile__( 538 __asm__ __volatile__(
539 " .set mips3 \n" 539 " .set mips3 \n"
@@ -566,12 +566,12 @@ static __inline__ long atomic64_add_return(long i, atomic64_t * v)
566 566
567static __inline__ long atomic64_sub_return(long i, atomic64_t * v) 567static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
568{ 568{
569 unsigned long result; 569 long result;
570 570
571 smp_llsc_mb(); 571 smp_llsc_mb();
572 572
573 if (cpu_has_llsc && R10000_LLSC_WAR) { 573 if (cpu_has_llsc && R10000_LLSC_WAR) {
574 unsigned long temp; 574 long temp;
575 575
576 __asm__ __volatile__( 576 __asm__ __volatile__(
577 " .set mips3 \n" 577 " .set mips3 \n"
@@ -585,7 +585,7 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
585 : "Ir" (i), "m" (v->counter) 585 : "Ir" (i), "m" (v->counter)
586 : "memory"); 586 : "memory");
587 } else if (cpu_has_llsc) { 587 } else if (cpu_has_llsc) {
588 unsigned long temp; 588 long temp;
589 589
590 __asm__ __volatile__( 590 __asm__ __volatile__(
591 " .set mips3 \n" 591 " .set mips3 \n"
@@ -626,12 +626,12 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
626 */ 626 */
627static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) 627static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
628{ 628{
629 unsigned long result; 629 long result;
630 630
631 smp_llsc_mb(); 631 smp_llsc_mb();
632 632
633 if (cpu_has_llsc && R10000_LLSC_WAR) { 633 if (cpu_has_llsc && R10000_LLSC_WAR) {
634 unsigned long temp; 634 long temp;
635 635
636 __asm__ __volatile__( 636 __asm__ __volatile__(
637 " .set mips3 \n" 637 " .set mips3 \n"
@@ -649,7 +649,7 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
649 : "Ir" (i), "m" (v->counter) 649 : "Ir" (i), "m" (v->counter)
650 : "memory"); 650 : "memory");
651 } else if (cpu_has_llsc) { 651 } else if (cpu_has_llsc) {
652 unsigned long temp; 652 long temp;
653 653
654 __asm__ __volatile__( 654 __asm__ __volatile__(
655 " .set mips3 \n" 655 " .set mips3 \n"
diff --git a/arch/mips/include/asm/byteorder.h b/arch/mips/include/asm/byteorder.h
index 607b71830707..9579051ff1c7 100644
--- a/arch/mips/include/asm/byteorder.h
+++ b/arch/mips/include/asm/byteorder.h
@@ -8,8 +8,6 @@
8#ifndef _ASM_BYTEORDER_H 8#ifndef _ASM_BYTEORDER_H
9#define _ASM_BYTEORDER_H 9#define _ASM_BYTEORDER_H
10 10
11#include <asm/swab.h>
12
13#if defined(__MIPSEB__) 11#if defined(__MIPSEB__)
14#include <linux/byteorder/big_endian.h> 12#include <linux/byteorder/big_endian.h>
15#elif defined(__MIPSEL__) 13#elif defined(__MIPSEL__)
diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h
index 12d12dfe73c0..a0d14f85b781 100644
--- a/arch/mips/include/asm/cpu-features.h
+++ b/arch/mips/include/asm/cpu-features.h
@@ -38,6 +38,9 @@
38#ifndef cpu_has_tx39_cache 38#ifndef cpu_has_tx39_cache
39#define cpu_has_tx39_cache (cpu_data[0].options & MIPS_CPU_TX39_CACHE) 39#define cpu_has_tx39_cache (cpu_data[0].options & MIPS_CPU_TX39_CACHE)
40#endif 40#endif
41#ifndef cpu_has_octeon_cache
42#define cpu_has_octeon_cache 0
43#endif
41#ifndef cpu_has_fpu 44#ifndef cpu_has_fpu
42#define cpu_has_fpu (current_cpu_data.options & MIPS_CPU_FPU) 45#define cpu_has_fpu (current_cpu_data.options & MIPS_CPU_FPU)
43#define raw_cpu_has_fpu (raw_current_cpu_data.options & MIPS_CPU_FPU) 46#define raw_cpu_has_fpu (raw_current_cpu_data.options & MIPS_CPU_FPU)
diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h
index 229a786101d9..c018727c7ddc 100644
--- a/arch/mips/include/asm/cpu.h
+++ b/arch/mips/include/asm/cpu.h
@@ -33,6 +33,7 @@
33#define PRID_COMP_TOSHIBA 0x070000 33#define PRID_COMP_TOSHIBA 0x070000
34#define PRID_COMP_LSI 0x080000 34#define PRID_COMP_LSI 0x080000
35#define PRID_COMP_LEXRA 0x0b0000 35#define PRID_COMP_LEXRA 0x0b0000
36#define PRID_COMP_CAVIUM 0x0d0000
36 37
37 38
38/* 39/*
@@ -114,6 +115,18 @@
114#define PRID_IMP_BCM3302 0x9000 115#define PRID_IMP_BCM3302 0x9000
115 116
116/* 117/*
118 * These are the PRID's for when 23:16 == PRID_COMP_CAVIUM
119 */
120
121#define PRID_IMP_CAVIUM_CN38XX 0x0000
122#define PRID_IMP_CAVIUM_CN31XX 0x0100
123#define PRID_IMP_CAVIUM_CN30XX 0x0200
124#define PRID_IMP_CAVIUM_CN58XX 0x0300
125#define PRID_IMP_CAVIUM_CN56XX 0x0400
126#define PRID_IMP_CAVIUM_CN50XX 0x0600
127#define PRID_IMP_CAVIUM_CN52XX 0x0700
128
129/*
117 * Definitions for 7:0 on legacy processors 130 * Definitions for 7:0 on legacy processors
118 */ 131 */
119 132
@@ -203,6 +216,7 @@ enum cpu_type_enum {
203 * MIPS64 class processors 216 * MIPS64 class processors
204 */ 217 */
205 CPU_5KC, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2, 218 CPU_5KC, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2,
219 CPU_CAVIUM_OCTEON,
206 220
207 CPU_LAST 221 CPU_LAST
208}; 222};
diff --git a/arch/mips/include/asm/hazards.h b/arch/mips/include/asm/hazards.h
index 2de638f84c86..43baed16a109 100644
--- a/arch/mips/include/asm/hazards.h
+++ b/arch/mips/include/asm/hazards.h
@@ -42,7 +42,7 @@ ASMMACRO(_ehb,
42/* 42/*
43 * TLB hazards 43 * TLB hazards
44 */ 44 */
45#if defined(CONFIG_CPU_MIPSR2) 45#if defined(CONFIG_CPU_MIPSR2) && !defined(CONFIG_CPU_CAVIUM_OCTEON)
46 46
47/* 47/*
48 * MIPSR2 defines ehb for hazard avoidance 48 * MIPSR2 defines ehb for hazard avoidance
@@ -138,7 +138,7 @@ do { \
138 __instruction_hazard(); \ 138 __instruction_hazard(); \
139} while (0) 139} while (0)
140 140
141#elif defined(CONFIG_CPU_R10000) 141#elif defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_CAVIUM_OCTEON)
142 142
143/* 143/*
144 * R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer. 144 * R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer.
diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
index 501a40b9f18d..436878e4e063 100644
--- a/arch/mips/include/asm/io.h
+++ b/arch/mips/include/asm/io.h
@@ -295,6 +295,12 @@ static inline void iounmap(const volatile void __iomem *addr)
295#undef __IS_KSEG1 295#undef __IS_KSEG1
296} 296}
297 297
298#ifdef CONFIG_CPU_CAVIUM_OCTEON
299#define war_octeon_io_reorder_wmb() wmb()
300#else
301#define war_octeon_io_reorder_wmb() do { } while (0)
302#endif
303
298#define __BUILD_MEMORY_SINGLE(pfx, bwlq, type, irq) \ 304#define __BUILD_MEMORY_SINGLE(pfx, bwlq, type, irq) \
299 \ 305 \
300static inline void pfx##write##bwlq(type val, \ 306static inline void pfx##write##bwlq(type val, \
@@ -303,6 +309,8 @@ static inline void pfx##write##bwlq(type val, \
303 volatile type *__mem; \ 309 volatile type *__mem; \
304 type __val; \ 310 type __val; \
305 \ 311 \
312 war_octeon_io_reorder_wmb(); \
313 \
306 __mem = (void *)__swizzle_addr_##bwlq((unsigned long)(mem)); \ 314 __mem = (void *)__swizzle_addr_##bwlq((unsigned long)(mem)); \
307 \ 315 \
308 __val = pfx##ioswab##bwlq(__mem, val); \ 316 __val = pfx##ioswab##bwlq(__mem, val); \
@@ -370,6 +378,8 @@ static inline void pfx##out##bwlq##p(type val, unsigned long port) \
370 volatile type *__addr; \ 378 volatile type *__addr; \
371 type __val; \ 379 type __val; \
372 \ 380 \
381 war_octeon_io_reorder_wmb(); \
382 \
373 __addr = (void *)__swizzle_addr_##bwlq(mips_io_port_base + port); \ 383 __addr = (void *)__swizzle_addr_##bwlq(mips_io_port_base + port); \
374 \ 384 \
375 __val = pfx##ioswab##bwlq(__addr, val); \ 385 __val = pfx##ioswab##bwlq(__addr, val); \
@@ -504,8 +514,12 @@ BUILDSTRING(q, u64)
504#endif 514#endif
505 515
506 516
517#ifdef CONFIG_CPU_CAVIUM_OCTEON
518#define mmiowb() wmb()
519#else
507/* Depends on MIPS II instruction set */ 520/* Depends on MIPS II instruction set */
508#define mmiowb() asm volatile ("sync" ::: "memory") 521#define mmiowb() asm volatile ("sync" ::: "memory")
522#endif
509 523
510static inline void memset_io(volatile void __iomem *addr, unsigned char val, int count) 524static inline void memset_io(volatile void __iomem *addr, unsigned char val, int count)
511{ 525{
diff --git a/arch/mips/include/asm/irq.h b/arch/mips/include/asm/irq.h
index abc62aa744ac..3214ade02d10 100644
--- a/arch/mips/include/asm/irq.h
+++ b/arch/mips/include/asm/irq.h
@@ -66,7 +66,7 @@ extern void smtc_forward_irq(unsigned int irq);
66 */ 66 */
67#define IRQ_AFFINITY_HOOK(irq) \ 67#define IRQ_AFFINITY_HOOK(irq) \
68do { \ 68do { \
69 if (!cpu_isset(smp_processor_id(), irq_desc[irq].affinity)) { \ 69 if (!cpumask_test_cpu(smp_processor_id(), irq_desc[irq].affinity)) {\
70 smtc_forward_irq(irq); \ 70 smtc_forward_irq(irq); \
71 irq_exit(); \ 71 irq_exit(); \
72 return; \ 72 return; \
diff --git a/arch/mips/include/asm/mach-au1x00/au1000.h b/arch/mips/include/asm/mach-au1x00/au1000.h
index 0d302bad4492..62f91f50b5b5 100644
--- a/arch/mips/include/asm/mach-au1x00/au1000.h
+++ b/arch/mips/include/asm/mach-au1x00/au1000.h
@@ -91,14 +91,57 @@ static inline u32 au_readl(unsigned long reg)
91 return *(volatile u32 *)reg; 91 return *(volatile u32 *)reg;
92} 92}
93 93
94/* Early Au1000 have a write-only SYS_CPUPLL register. */
95static inline int au1xxx_cpu_has_pll_wo(void)
96{
97 switch (read_c0_prid()) {
98 case 0x00030100: /* Au1000 DA */
99 case 0x00030201: /* Au1000 HA */
100 case 0x00030202: /* Au1000 HB */
101 return 1;
102 }
103 return 0;
104}
105
106/* does CPU need CONFIG[OD] set to fix tons of errata? */
107static inline int au1xxx_cpu_needs_config_od(void)
108{
109 /*
110 * c0_config.od (bit 19) was write only (and read as 0) on the
111 * early revisions of Alchemy SOCs. It disables the bus trans-
112 * action overlapping and needs to be set to fix various errata.
113 */
114 switch (read_c0_prid()) {
115 case 0x00030100: /* Au1000 DA */
116 case 0x00030201: /* Au1000 HA */
117 case 0x00030202: /* Au1000 HB */
118 case 0x01030200: /* Au1500 AB */
119 /*
120 * Au1100/Au1200 errata actually keep silence about this bit,
121 * so we set it just in case for those revisions that require
122 * it to be set according to the (now gone) cpu_table.
123 */
124 case 0x02030200: /* Au1100 AB */
125 case 0x02030201: /* Au1100 BA */
126 case 0x02030202: /* Au1100 BC */
127 case 0x04030201: /* Au1200 AC */
128 return 1;
129 }
130 return 0;
131}
94 132
95/* arch/mips/au1000/common/clocks.c */ 133/* arch/mips/au1000/common/clocks.c */
96extern void set_au1x00_speed(unsigned int new_freq); 134extern void set_au1x00_speed(unsigned int new_freq);
97extern unsigned int get_au1x00_speed(void); 135extern unsigned int get_au1x00_speed(void);
98extern void set_au1x00_uart_baud_base(unsigned long new_baud_base); 136extern void set_au1x00_uart_baud_base(unsigned long new_baud_base);
99extern unsigned long get_au1x00_uart_baud_base(void); 137extern unsigned long get_au1x00_uart_baud_base(void);
100extern void set_au1x00_lcd_clock(void); 138extern unsigned long au1xxx_calc_clock(void);
101extern unsigned int get_au1x00_lcd_clock(void); 139
140/* PM: arch/mips/alchemy/common/sleeper.S, power.c, irq.c */
141void au1xxx_save_and_sleep(void);
142void au_sleep(void);
143void save_au1xxx_intctl(void);
144void restore_au1xxx_intctl(void);
102 145
103/* 146/*
104 * Every board describes its IRQ mapping with this table. 147 * Every board describes its IRQ mapping with this table.
@@ -109,10 +152,11 @@ struct au1xxx_irqmap {
109 int im_request; 152 int im_request;
110}; 153};
111 154
112/* 155/* core calls this function to let boards initialize other IRQ sources */
113 * init_IRQ looks for a table with this name. 156void board_init_irq(void);
114 */ 157
115extern struct au1xxx_irqmap au1xxx_irq_map[]; 158/* boards call this to register additional (GPIO) interrupts */
159void au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count);
116 160
117#endif /* !defined (_LANGUAGE_ASSEMBLY) */ 161#endif /* !defined (_LANGUAGE_ASSEMBLY) */
118 162
@@ -505,15 +549,6 @@ extern struct au1xxx_irqmap au1xxx_irq_map[];
505 549
506#define IC1_TESTBIT 0xB1800080 550#define IC1_TESTBIT 0xB1800080
507 551
508/* Interrupt Configuration Modes */
509#define INTC_INT_DISABLED 0x0
510#define INTC_INT_RISE_EDGE 0x1
511#define INTC_INT_FALL_EDGE 0x2
512#define INTC_INT_RISE_AND_FALL_EDGE 0x3
513#define INTC_INT_HIGH_LEVEL 0x5
514#define INTC_INT_LOW_LEVEL 0x6
515#define INTC_INT_HIGH_AND_LOW_LEVEL 0x7
516
517/* Interrupt Numbers */ 552/* Interrupt Numbers */
518/* Au1000 */ 553/* Au1000 */
519#ifdef CONFIG_SOC_AU1000 554#ifdef CONFIG_SOC_AU1000
@@ -1525,6 +1560,10 @@ enum soc_au1200_ints {
1525#define SYS_SLPPWR 0xB1900078 1560#define SYS_SLPPWR 0xB1900078
1526#define SYS_SLEEP 0xB190007C 1561#define SYS_SLEEP 0xB190007C
1527 1562
1563#define SYS_WAKEMSK_D2 (1 << 9)
1564#define SYS_WAKEMSK_M2 (1 << 8)
1565#define SYS_WAKEMSK_GPIO(x) (1 << (x))
1566
1528/* Clock Controller */ 1567/* Clock Controller */
1529#define SYS_FREQCTRL0 0xB1900020 1568#define SYS_FREQCTRL0 0xB1900020
1530# define SYS_FC_FRDIV2_BIT 22 1569# define SYS_FC_FRDIV2_BIT 22
@@ -1749,24 +1788,4 @@ static AU1X00_SYS * const sys = (AU1X00_SYS *)SYS_BASE;
1749 1788
1750#endif 1789#endif
1751 1790
1752/*
1753 * Processor information based on PRID.
1754 * Copied from PowerPC.
1755 */
1756#ifndef _LANGUAGE_ASSEMBLY
1757struct cpu_spec {
1758 /* CPU is matched via (PRID & prid_mask) == prid_value */
1759 unsigned int prid_mask;
1760 unsigned int prid_value;
1761
1762 char *cpu_name;
1763 unsigned char cpu_od; /* Set Config[OD] */
1764 unsigned char cpu_bclk; /* Enable BCLK switching */
1765 unsigned char cpu_pll_wo; /* sys_cpupll reg. write-only */
1766};
1767
1768extern struct cpu_spec cpu_specs[];
1769extern struct cpu_spec *cur_cpu_spec[];
1770#endif
1771
1772#endif 1791#endif
diff --git a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
index 44a67bf05dc1..06f68f43800a 100644
--- a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
+++ b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
@@ -357,6 +357,11 @@ u32 au1xxx_dbdma_put_dscr(u32 chanid, au1x_ddma_desc_t *dscr);
357u32 au1xxx_ddma_add_device(dbdev_tab_t *dev); 357u32 au1xxx_ddma_add_device(dbdev_tab_t *dev);
358extern void au1xxx_ddma_del_device(u32 devid); 358extern void au1xxx_ddma_del_device(u32 devid);
359void *au1xxx_ddma_get_nextptr_virt(au1x_ddma_desc_t *dp); 359void *au1xxx_ddma_get_nextptr_virt(au1x_ddma_desc_t *dp);
360#ifdef CONFIG_PM
361void au1xxx_dbdma_suspend(void);
362void au1xxx_dbdma_resume(void);
363#endif
364
360 365
361/* 366/*
362 * Some compatibilty macros -- needed to make changes to API 367 * Some compatibilty macros -- needed to make changes to API
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
new file mode 100644
index 000000000000..04ce6e6569da
--- /dev/null
+++ b/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h
@@ -0,0 +1,78 @@
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 Cavium Networks
7 */
8#ifndef __ASM_MACH_CAVIUM_OCTEON_CPU_FEATURE_OVERRIDES_H
9#define __ASM_MACH_CAVIUM_OCTEON_CPU_FEATURE_OVERRIDES_H
10
11#include <linux/types.h>
12#include <asm/mipsregs.h>
13
14/*
15 * Cavium Octeons are MIPS64v2 processors
16 */
17#define cpu_dcache_line_size() 128
18#define cpu_icache_line_size() 128
19
20
21#define cpu_has_4kex 1
22#define cpu_has_3k_cache 0
23#define cpu_has_4k_cache 0
24#define cpu_has_tx39_cache 0
25#define cpu_has_fpu 0
26#define cpu_has_counter 1
27#define cpu_has_watch 1
28#define cpu_has_divec 1
29#define cpu_has_vce 0
30#define cpu_has_cache_cdex_p 0
31#define cpu_has_cache_cdex_s 0
32#define cpu_has_prefetch 1
33
34/*
35 * We should disable LL/SC on non SMP systems as it is faster to
36 * disable interrupts for atomic access than a LL/SC. Unfortunatly we
37 * cannot as this breaks asm/futex.h
38 */
39#define cpu_has_llsc 1
40#define cpu_has_vtag_icache 1
41#define cpu_has_dc_aliases 0
42#define cpu_has_ic_fills_f_dc 0
43#define cpu_has_64bits 1
44#define cpu_has_octeon_cache 1
45#define cpu_has_saa octeon_has_saa()
46#define cpu_has_mips32r1 0
47#define cpu_has_mips32r2 0
48#define cpu_has_mips64r1 0
49#define cpu_has_mips64r2 1
50#define cpu_has_dsp 0
51#define cpu_has_mipsmt 0
52#define cpu_has_userlocal 0
53#define cpu_has_vint 0
54#define cpu_has_veic 0
55#define ARCH_HAS_READ_CURRENT_TIMER 1
56#define ARCH_HAS_IRQ_PER_CPU 1
57#define ARCH_HAS_SPINLOCK_PREFETCH 1
58#define spin_lock_prefetch(x) prefetch(x)
59#define PREFETCH_STRIDE 128
60
61static inline int read_current_timer(unsigned long *result)
62{
63 asm volatile ("rdhwr %0,$31\n"
64#ifndef CONFIG_64BIT
65 "\tsll %0, 0"
66#endif
67 : "=r" (*result));
68 return 0;
69}
70
71static inline int octeon_has_saa(void)
72{
73 int id;
74 asm volatile ("mfc0 %0, $15,0" : "=r" (id));
75 return id >= 0x000d0300;
76}
77
78#endif
diff --git a/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h b/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h
new file mode 100644
index 000000000000..f30fce92aabb
--- /dev/null
+++ b/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h
@@ -0,0 +1,64 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2006 Ralf Baechle <ralf@linux-mips.org>
7 *
8 *
9 * Similar to mach-generic/dma-coherence.h except
10 * plat_device_is_coherent hard coded to return 1.
11 *
12 */
13#ifndef __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H
14#define __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H
15
16struct device;
17
18dma_addr_t octeon_map_dma_mem(struct device *, void *, size_t);
19void octeon_unmap_dma_mem(struct device *, dma_addr_t);
20
21static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr,
22 size_t size)
23{
24 return octeon_map_dma_mem(dev, addr, size);
25}
26
27static inline dma_addr_t plat_map_dma_mem_page(struct device *dev,
28 struct page *page)
29{
30 return octeon_map_dma_mem(dev, page_address(page), PAGE_SIZE);
31}
32
33static inline unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr)
34{
35 return dma_addr;
36}
37
38static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr)
39{
40 octeon_unmap_dma_mem(dev, dma_addr);
41}
42
43static inline int plat_dma_supported(struct device *dev, u64 mask)
44{
45 return 1;
46}
47
48static inline void plat_extra_sync_for_device(struct device *dev)
49{
50 mb();
51}
52
53static inline int plat_device_is_coherent(struct device *dev)
54{
55 return 1;
56}
57
58static inline int plat_dma_mapping_error(struct device *dev,
59 dma_addr_t dma_addr)
60{
61 return dma_addr == -1;
62}
63
64#endif /* __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H */
diff --git a/arch/mips/include/asm/mach-cavium-octeon/irq.h b/arch/mips/include/asm/mach-cavium-octeon/irq.h
new file mode 100644
index 000000000000..d32220fbf4f1
--- /dev/null
+++ b/arch/mips/include/asm/mach-cavium-octeon/irq.h
@@ -0,0 +1,244 @@
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-2008 Cavium Networks
7 */
8#ifndef __OCTEON_IRQ_H__
9#define __OCTEON_IRQ_H__
10
11#define NR_IRQS OCTEON_IRQ_LAST
12#define MIPS_CPU_IRQ_BASE OCTEON_IRQ_SW0
13
14/* 0 - 7 represent the i8259 master */
15#define OCTEON_IRQ_I8259M0 0
16#define OCTEON_IRQ_I8259M1 1
17#define OCTEON_IRQ_I8259M2 2
18#define OCTEON_IRQ_I8259M3 3
19#define OCTEON_IRQ_I8259M4 4
20#define OCTEON_IRQ_I8259M5 5
21#define OCTEON_IRQ_I8259M6 6
22#define OCTEON_IRQ_I8259M7 7
23/* 8 - 15 represent the i8259 slave */
24#define OCTEON_IRQ_I8259S0 8
25#define OCTEON_IRQ_I8259S1 9
26#define OCTEON_IRQ_I8259S2 10
27#define OCTEON_IRQ_I8259S3 11
28#define OCTEON_IRQ_I8259S4 12
29#define OCTEON_IRQ_I8259S5 13
30#define OCTEON_IRQ_I8259S6 14
31#define OCTEON_IRQ_I8259S7 15
32/* 16 - 23 represent the 8 MIPS standard interrupt sources */
33#define OCTEON_IRQ_SW0 16
34#define OCTEON_IRQ_SW1 17
35#define OCTEON_IRQ_CIU0 18
36#define OCTEON_IRQ_CIU1 19
37#define OCTEON_IRQ_CIU4 20
38#define OCTEON_IRQ_5 21
39#define OCTEON_IRQ_PERF 22
40#define OCTEON_IRQ_TIMER 23
41/* 24 - 87 represent the sources in CIU_INTX_EN0 */
42#define OCTEON_IRQ_WORKQ0 24
43#define OCTEON_IRQ_WORKQ1 25
44#define OCTEON_IRQ_WORKQ2 26
45#define OCTEON_IRQ_WORKQ3 27
46#define OCTEON_IRQ_WORKQ4 28
47#define OCTEON_IRQ_WORKQ5 29
48#define OCTEON_IRQ_WORKQ6 30
49#define OCTEON_IRQ_WORKQ7 31
50#define OCTEON_IRQ_WORKQ8 32
51#define OCTEON_IRQ_WORKQ9 33
52#define OCTEON_IRQ_WORKQ10 34
53#define OCTEON_IRQ_WORKQ11 35
54#define OCTEON_IRQ_WORKQ12 36
55#define OCTEON_IRQ_WORKQ13 37
56#define OCTEON_IRQ_WORKQ14 38
57#define OCTEON_IRQ_WORKQ15 39
58#define OCTEON_IRQ_GPIO0 40
59#define OCTEON_IRQ_GPIO1 41
60#define OCTEON_IRQ_GPIO2 42
61#define OCTEON_IRQ_GPIO3 43
62#define OCTEON_IRQ_GPIO4 44
63#define OCTEON_IRQ_GPIO5 45
64#define OCTEON_IRQ_GPIO6 46
65#define OCTEON_IRQ_GPIO7 47
66#define OCTEON_IRQ_GPIO8 48
67#define OCTEON_IRQ_GPIO9 49
68#define OCTEON_IRQ_GPIO10 50
69#define OCTEON_IRQ_GPIO11 51
70#define OCTEON_IRQ_GPIO12 52
71#define OCTEON_IRQ_GPIO13 53
72#define OCTEON_IRQ_GPIO14 54
73#define OCTEON_IRQ_GPIO15 55
74#define OCTEON_IRQ_MBOX0 56
75#define OCTEON_IRQ_MBOX1 57
76#define OCTEON_IRQ_UART0 58
77#define OCTEON_IRQ_UART1 59
78#define OCTEON_IRQ_PCI_INT0 60
79#define OCTEON_IRQ_PCI_INT1 61
80#define OCTEON_IRQ_PCI_INT2 62
81#define OCTEON_IRQ_PCI_INT3 63
82#define OCTEON_IRQ_PCI_MSI0 64
83#define OCTEON_IRQ_PCI_MSI1 65
84#define OCTEON_IRQ_PCI_MSI2 66
85#define OCTEON_IRQ_PCI_MSI3 67
86#define OCTEON_IRQ_RESERVED68 68 /* Summary of CIU_INT_SUM1 */
87#define OCTEON_IRQ_TWSI 69
88#define OCTEON_IRQ_RML 70
89#define OCTEON_IRQ_TRACE 71
90#define OCTEON_IRQ_GMX_DRP0 72
91#define OCTEON_IRQ_GMX_DRP1 73
92#define OCTEON_IRQ_IPD_DRP 74
93#define OCTEON_IRQ_KEY_ZERO 75
94#define OCTEON_IRQ_TIMER0 76
95#define OCTEON_IRQ_TIMER1 77
96#define OCTEON_IRQ_TIMER2 78
97#define OCTEON_IRQ_TIMER3 79
98#define OCTEON_IRQ_USB0 80
99#define OCTEON_IRQ_PCM 81
100#define OCTEON_IRQ_MPI 82
101#define OCTEON_IRQ_TWSI2 83
102#define OCTEON_IRQ_POWIQ 84
103#define OCTEON_IRQ_IPDPPTHR 85
104#define OCTEON_IRQ_MII0 86
105#define OCTEON_IRQ_BOOTDMA 87
106/* 88 - 151 represent the sources in CIU_INTX_EN1 */
107#define OCTEON_IRQ_WDOG0 88
108#define OCTEON_IRQ_WDOG1 89
109#define OCTEON_IRQ_WDOG2 90
110#define OCTEON_IRQ_WDOG3 91
111#define OCTEON_IRQ_WDOG4 92
112#define OCTEON_IRQ_WDOG5 93
113#define OCTEON_IRQ_WDOG6 94
114#define OCTEON_IRQ_WDOG7 95
115#define OCTEON_IRQ_WDOG8 96
116#define OCTEON_IRQ_WDOG9 97
117#define OCTEON_IRQ_WDOG10 98
118#define OCTEON_IRQ_WDOG11 99
119#define OCTEON_IRQ_WDOG12 100
120#define OCTEON_IRQ_WDOG13 101
121#define OCTEON_IRQ_WDOG14 102
122#define OCTEON_IRQ_WDOG15 103
123#define OCTEON_IRQ_UART2 104
124#define OCTEON_IRQ_USB1 105
125#define OCTEON_IRQ_MII1 106
126#define OCTEON_IRQ_RESERVED107 107
127#define OCTEON_IRQ_RESERVED108 108
128#define OCTEON_IRQ_RESERVED109 109
129#define OCTEON_IRQ_RESERVED110 110
130#define OCTEON_IRQ_RESERVED111 111
131#define OCTEON_IRQ_RESERVED112 112
132#define OCTEON_IRQ_RESERVED113 113
133#define OCTEON_IRQ_RESERVED114 114
134#define OCTEON_IRQ_RESERVED115 115
135#define OCTEON_IRQ_RESERVED116 116
136#define OCTEON_IRQ_RESERVED117 117
137#define OCTEON_IRQ_RESERVED118 118
138#define OCTEON_IRQ_RESERVED119 119
139#define OCTEON_IRQ_RESERVED120 120
140#define OCTEON_IRQ_RESERVED121 121
141#define OCTEON_IRQ_RESERVED122 122
142#define OCTEON_IRQ_RESERVED123 123
143#define OCTEON_IRQ_RESERVED124 124
144#define OCTEON_IRQ_RESERVED125 125
145#define OCTEON_IRQ_RESERVED126 126
146#define OCTEON_IRQ_RESERVED127 127
147#define OCTEON_IRQ_RESERVED128 128
148#define OCTEON_IRQ_RESERVED129 129
149#define OCTEON_IRQ_RESERVED130 130
150#define OCTEON_IRQ_RESERVED131 131
151#define OCTEON_IRQ_RESERVED132 132
152#define OCTEON_IRQ_RESERVED133 133
153#define OCTEON_IRQ_RESERVED134 134
154#define OCTEON_IRQ_RESERVED135 135
155#define OCTEON_IRQ_RESERVED136 136
156#define OCTEON_IRQ_RESERVED137 137
157#define OCTEON_IRQ_RESERVED138 138
158#define OCTEON_IRQ_RESERVED139 139
159#define OCTEON_IRQ_RESERVED140 140
160#define OCTEON_IRQ_RESERVED141 141
161#define OCTEON_IRQ_RESERVED142 142
162#define OCTEON_IRQ_RESERVED143 143
163#define OCTEON_IRQ_RESERVED144 144
164#define OCTEON_IRQ_RESERVED145 145
165#define OCTEON_IRQ_RESERVED146 146
166#define OCTEON_IRQ_RESERVED147 147
167#define OCTEON_IRQ_RESERVED148 148
168#define OCTEON_IRQ_RESERVED149 149
169#define OCTEON_IRQ_RESERVED150 150
170#define OCTEON_IRQ_RESERVED151 151
171
172#ifdef CONFIG_PCI_MSI
173/* 152 - 215 represent the MSI interrupts 0-63 */
174#define OCTEON_IRQ_MSI_BIT0 152
175#define OCTEON_IRQ_MSI_BIT1 153
176#define OCTEON_IRQ_MSI_BIT2 154
177#define OCTEON_IRQ_MSI_BIT3 155
178#define OCTEON_IRQ_MSI_BIT4 156
179#define OCTEON_IRQ_MSI_BIT5 157
180#define OCTEON_IRQ_MSI_BIT6 158
181#define OCTEON_IRQ_MSI_BIT7 159
182#define OCTEON_IRQ_MSI_BIT8 160
183#define OCTEON_IRQ_MSI_BIT9 161
184#define OCTEON_IRQ_MSI_BIT10 162
185#define OCTEON_IRQ_MSI_BIT11 163
186#define OCTEON_IRQ_MSI_BIT12 164
187#define OCTEON_IRQ_MSI_BIT13 165
188#define OCTEON_IRQ_MSI_BIT14 166
189#define OCTEON_IRQ_MSI_BIT15 167
190#define OCTEON_IRQ_MSI_BIT16 168
191#define OCTEON_IRQ_MSI_BIT17 169
192#define OCTEON_IRQ_MSI_BIT18 170
193#define OCTEON_IRQ_MSI_BIT19 171
194#define OCTEON_IRQ_MSI_BIT20 172
195#define OCTEON_IRQ_MSI_BIT21 173
196#define OCTEON_IRQ_MSI_BIT22 174
197#define OCTEON_IRQ_MSI_BIT23 175
198#define OCTEON_IRQ_MSI_BIT24 176
199#define OCTEON_IRQ_MSI_BIT25 177
200#define OCTEON_IRQ_MSI_BIT26 178
201#define OCTEON_IRQ_MSI_BIT27 179
202#define OCTEON_IRQ_MSI_BIT28 180
203#define OCTEON_IRQ_MSI_BIT29 181
204#define OCTEON_IRQ_MSI_BIT30 182
205#define OCTEON_IRQ_MSI_BIT31 183
206#define OCTEON_IRQ_MSI_BIT32 184
207#define OCTEON_IRQ_MSI_BIT33 185
208#define OCTEON_IRQ_MSI_BIT34 186
209#define OCTEON_IRQ_MSI_BIT35 187
210#define OCTEON_IRQ_MSI_BIT36 188
211#define OCTEON_IRQ_MSI_BIT37 189
212#define OCTEON_IRQ_MSI_BIT38 190
213#define OCTEON_IRQ_MSI_BIT39 191
214#define OCTEON_IRQ_MSI_BIT40 192
215#define OCTEON_IRQ_MSI_BIT41 193
216#define OCTEON_IRQ_MSI_BIT42 194
217#define OCTEON_IRQ_MSI_BIT43 195
218#define OCTEON_IRQ_MSI_BIT44 196
219#define OCTEON_IRQ_MSI_BIT45 197
220#define OCTEON_IRQ_MSI_BIT46 198
221#define OCTEON_IRQ_MSI_BIT47 199
222#define OCTEON_IRQ_MSI_BIT48 200
223#define OCTEON_IRQ_MSI_BIT49 201
224#define OCTEON_IRQ_MSI_BIT50 202
225#define OCTEON_IRQ_MSI_BIT51 203
226#define OCTEON_IRQ_MSI_BIT52 204
227#define OCTEON_IRQ_MSI_BIT53 205
228#define OCTEON_IRQ_MSI_BIT54 206
229#define OCTEON_IRQ_MSI_BIT55 207
230#define OCTEON_IRQ_MSI_BIT56 208
231#define OCTEON_IRQ_MSI_BIT57 209
232#define OCTEON_IRQ_MSI_BIT58 210
233#define OCTEON_IRQ_MSI_BIT59 211
234#define OCTEON_IRQ_MSI_BIT60 212
235#define OCTEON_IRQ_MSI_BIT61 213
236#define OCTEON_IRQ_MSI_BIT62 214
237#define OCTEON_IRQ_MSI_BIT63 215
238
239#define OCTEON_IRQ_LAST 216
240#else
241#define OCTEON_IRQ_LAST 152
242#endif
243
244#endif
diff --git a/arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h b/arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h
new file mode 100644
index 000000000000..0b2b5eb22e9b
--- /dev/null
+++ b/arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h
@@ -0,0 +1,131 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2005-2008 Cavium Networks, Inc
7 */
8#ifndef __ASM_MACH_CAVIUM_OCTEON_KERNEL_ENTRY_H
9#define __ASM_MACH_CAVIUM_OCTEON_KERNEL_ENTRY_H
10
11
12#define CP0_CYCLE_COUNTER $9, 6
13#define CP0_CVMCTL_REG $9, 7
14#define CP0_CVMMEMCTL_REG $11,7
15#define CP0_PRID_REG $15, 0
16#define CP0_PRID_OCTEON_PASS1 0x000d0000
17#define CP0_PRID_OCTEON_CN30XX 0x000d0200
18
19.macro kernel_entry_setup
20 # Registers set by bootloader:
21 # (only 32 bits set by bootloader, all addresses are physical
22 # addresses, and need to have the appropriate memory region set
23 # by the kernel
24 # a0 = argc
25 # a1 = argv (kseg0 compat addr)
26 # a2 = 1 if init core, zero otherwise
27 # a3 = address of boot descriptor block
28 .set push
29 .set arch=octeon
30 # Read the cavium mem control register
31 dmfc0 v0, CP0_CVMMEMCTL_REG
32 # Clear the lower 6 bits, the CVMSEG size
33 dins v0, $0, 0, 6
34 ori v0, CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE
35 dmtc0 v0, CP0_CVMMEMCTL_REG # Write the cavium mem control register
36 dmfc0 v0, CP0_CVMCTL_REG # Read the cavium control register
37#ifdef CONFIG_CAVIUM_OCTEON_HW_FIX_UNALIGNED
38 # Disable unaligned load/store support but leave HW fixup enabled
39 or v0, v0, 0x5001
40 xor v0, v0, 0x1001
41#else
42 # Disable unaligned load/store and HW fixup support
43 or v0, v0, 0x5001
44 xor v0, v0, 0x5001
45#endif
46 # Read the processor ID register
47 mfc0 v1, CP0_PRID_REG
48 # Disable instruction prefetching (Octeon Pass1 errata)
49 or v0, v0, 0x2000
50 # Skip reenable of prefetching for Octeon Pass1
51 beq v1, CP0_PRID_OCTEON_PASS1, skip
52 nop
53 # Reenable instruction prefetching, not on Pass1
54 xor v0, v0, 0x2000
55 # Strip off pass number off of processor id
56 srl v1, 8
57 sll v1, 8
58 # CN30XX needs some extra stuff turned off for better performance
59 bne v1, CP0_PRID_OCTEON_CN30XX, skip
60 nop
61 # CN30XX Use random Icache replacement
62 or v0, v0, 0x400
63 # CN30XX Disable instruction prefetching
64 or v0, v0, 0x2000
65skip:
66 # Write the cavium control register
67 dmtc0 v0, CP0_CVMCTL_REG
68 sync
69 # Flush dcache after config change
70 cache 9, 0($0)
71 # Get my core id
72 rdhwr v0, $0
73 # Jump the master to kernel_entry
74 bne a2, zero, octeon_main_processor
75 nop
76
77#ifdef CONFIG_SMP
78
79 #
80 # All cores other than the master need to wait here for SMP bootstrap
81 # to begin
82 #
83
84 # This is the variable where the next core to boot os stored
85 PTR_LA t0, octeon_processor_boot
86octeon_spin_wait_boot:
87 # Get the core id of the next to be booted
88 LONG_L t1, (t0)
89 # Keep looping if it isn't me
90 bne t1, v0, octeon_spin_wait_boot
91 nop
92 # Get my GP from the global variable
93 PTR_LA t0, octeon_processor_gp
94 LONG_L gp, (t0)
95 # Get my SP from the global variable
96 PTR_LA t0, octeon_processor_sp
97 LONG_L sp, (t0)
98 # Set the SP global variable to zero so the master knows we've started
99 LONG_S zero, (t0)
100#ifdef __OCTEON__
101 syncw
102 syncw
103#else
104 sync
105#endif
106 # Jump to the normal Linux SMP entry point
107 j smp_bootstrap
108 nop
109#else /* CONFIG_SMP */
110
111 #
112 # Someone tried to boot SMP with a non SMP kernel. All extra cores
113 # will halt here.
114 #
115octeon_wait_forever:
116 wait
117 b octeon_wait_forever
118 nop
119
120#endif /* CONFIG_SMP */
121octeon_main_processor:
122 .set pop
123.endm
124
125/*
126 * Do SMP slave processor setup necessary before we can savely execute C code.
127 */
128 .macro smp_slave_setup
129 .endm
130
131#endif /* __ASM_MACH_CAVIUM_OCTEON_KERNEL_ENTRY_H */
diff --git a/arch/mips/include/asm/mach-cavium-octeon/war.h b/arch/mips/include/asm/mach-cavium-octeon/war.h
new file mode 100644
index 000000000000..c4712d7cc81d
--- /dev/null
+++ b/arch/mips/include/asm/mach-cavium-octeon/war.h
@@ -0,0 +1,26 @@
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) 2002, 2004, 2007 by Ralf Baechle <ralf@linux-mips.org>
7 * Copyright (C) 2008 Cavium Networks <support@caviumnetworks.com>
8 */
9#ifndef __ASM_MIPS_MACH_CAVIUM_OCTEON_WAR_H
10#define __ASM_MIPS_MACH_CAVIUM_OCTEON_WAR_H
11
12#define R4600_V1_INDEX_ICACHEOP_WAR 0
13#define R4600_V1_HIT_CACHEOP_WAR 0
14#define R4600_V2_HIT_CACHEOP_WAR 0
15#define R5432_CP0_INTERRUPT_WAR 0
16#define BCM1250_M3_WAR 0
17#define SIBYTE_1956_WAR 0
18#define MIPS4K_ICACHE_REFILL_WAR 0
19#define MIPS_CACHE_SYNC_WAR 0
20#define TX49XX_ICACHE_INDEX_INV_WAR 0
21#define RM9000_CDEX_SMP_WAR 0
22#define ICACHE_REFILLS_WORKAROUND_WAR 0
23#define R10000_LLSC_WAR 0
24#define MIPS34K_MISSED_ITLB_WAR 0
25
26#endif /* __ASM_MIPS_MACH_CAVIUM_OCTEON_WAR_H */
diff --git a/arch/mips/include/asm/mach-generic/dma-coherence.h b/arch/mips/include/asm/mach-generic/dma-coherence.h
index 76e04e7feb84..36c611b6c597 100644
--- a/arch/mips/include/asm/mach-generic/dma-coherence.h
+++ b/arch/mips/include/asm/mach-generic/dma-coherence.h
@@ -28,10 +28,34 @@ static inline unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr)
28 return dma_addr; 28 return dma_addr;
29} 29}
30 30
31static inline void plat_unmap_dma_mem(dma_addr_t dma_addr) 31static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr)
32{ 32{
33} 33}
34 34
35static inline int plat_dma_supported(struct device *dev, u64 mask)
36{
37 /*
38 * we fall back to GFP_DMA when the mask isn't all 1s,
39 * so we can't guarantee allocations that must be
40 * within a tighter range than GFP_DMA..
41 */
42 if (mask < DMA_BIT_MASK(24))
43 return 0;
44
45 return 1;
46}
47
48static inline void plat_extra_sync_for_device(struct device *dev)
49{
50 return;
51}
52
53static inline int plat_dma_mapping_error(struct device *dev,
54 dma_addr_t dma_addr)
55{
56 return 0;
57}
58
35static inline int plat_device_is_coherent(struct device *dev) 59static inline int plat_device_is_coherent(struct device *dev)
36{ 60{
37#ifdef CONFIG_DMA_COHERENT 61#ifdef CONFIG_DMA_COHERENT
diff --git a/arch/mips/include/asm/mach-ip27/dma-coherence.h b/arch/mips/include/asm/mach-ip27/dma-coherence.h
index ed7e6222dc15..4c21bfca10c3 100644
--- a/arch/mips/include/asm/mach-ip27/dma-coherence.h
+++ b/arch/mips/include/asm/mach-ip27/dma-coherence.h
@@ -38,10 +38,34 @@ static unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr)
38 return dma_addr & ~(0xffUL << 56); 38 return dma_addr & ~(0xffUL << 56);
39} 39}
40 40
41static inline void plat_unmap_dma_mem(dma_addr_t dma_addr) 41static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr)
42{ 42{
43} 43}
44 44
45static inline int plat_dma_supported(struct device *dev, u64 mask)
46{
47 /*
48 * we fall back to GFP_DMA when the mask isn't all 1s,
49 * so we can't guarantee allocations that must be
50 * within a tighter range than GFP_DMA..
51 */
52 if (mask < DMA_BIT_MASK(24))
53 return 0;
54
55 return 1;
56}
57
58static inline void plat_extra_sync_for_device(struct device *dev)
59{
60 return;
61}
62
63static inline int plat_dma_mapping_error(struct device *dev,
64 dma_addr_t dma_addr)
65{
66 return 0;
67}
68
45static inline int plat_device_is_coherent(struct device *dev) 69static inline int plat_device_is_coherent(struct device *dev)
46{ 70{
47 return 1; /* IP27 non-cohernet mode is unsupported */ 71 return 1; /* IP27 non-cohernet mode is unsupported */
diff --git a/arch/mips/include/asm/mach-ip32/dma-coherence.h b/arch/mips/include/asm/mach-ip32/dma-coherence.h
index a5511ebb2d53..7ae40f4b1c80 100644
--- a/arch/mips/include/asm/mach-ip32/dma-coherence.h
+++ b/arch/mips/include/asm/mach-ip32/dma-coherence.h
@@ -60,10 +60,34 @@ static unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr)
60 return addr; 60 return addr;
61} 61}
62 62
63static inline void plat_unmap_dma_mem(dma_addr_t dma_addr) 63static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr)
64{ 64{
65} 65}
66 66
67static inline int plat_dma_supported(struct device *dev, u64 mask)
68{
69 /*
70 * we fall back to GFP_DMA when the mask isn't all 1s,
71 * so we can't guarantee allocations that must be
72 * within a tighter range than GFP_DMA..
73 */
74 if (mask < DMA_BIT_MASK(24))
75 return 0;
76
77 return 1;
78}
79
80static inline void plat_extra_sync_for_device(struct device *dev)
81{
82 return;
83}
84
85static inline int plat_dma_mapping_error(struct device *dev,
86 dma_addr_t dma_addr)
87{
88 return 0;
89}
90
67static inline int plat_device_is_coherent(struct device *dev) 91static inline int plat_device_is_coherent(struct device *dev)
68{ 92{
69 return 0; /* IP32 is non-cohernet */ 93 return 0; /* IP32 is non-cohernet */
diff --git a/arch/mips/include/asm/mach-jazz/dma-coherence.h b/arch/mips/include/asm/mach-jazz/dma-coherence.h
index d66979a124a8..1c7cd27efa7b 100644
--- a/arch/mips/include/asm/mach-jazz/dma-coherence.h
+++ b/arch/mips/include/asm/mach-jazz/dma-coherence.h
@@ -27,11 +27,35 @@ static unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr)
27 return vdma_log2phys(dma_addr); 27 return vdma_log2phys(dma_addr);
28} 28}
29 29
30static void plat_unmap_dma_mem(dma_addr_t dma_addr) 30static void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr)
31{ 31{
32 vdma_free(dma_addr); 32 vdma_free(dma_addr);
33} 33}
34 34
35static inline int plat_dma_supported(struct device *dev, u64 mask)
36{
37 /*
38 * we fall back to GFP_DMA when the mask isn't all 1s,
39 * so we can't guarantee allocations that must be
40 * within a tighter range than GFP_DMA..
41 */
42 if (mask < DMA_BIT_MASK(24))
43 return 0;
44
45 return 1;
46}
47
48static inline void plat_extra_sync_for_device(struct device *dev)
49{
50 return;
51}
52
53static inline int plat_dma_mapping_error(struct device *dev,
54 dma_addr_t dma_addr)
55{
56 return 0;
57}
58
35static inline int plat_device_is_coherent(struct device *dev) 59static inline int plat_device_is_coherent(struct device *dev)
36{ 60{
37 return 0; 61 return 0;
diff --git a/arch/mips/include/asm/mach-lemote/dma-coherence.h b/arch/mips/include/asm/mach-lemote/dma-coherence.h
index 7e914777ebc4..38fad7dfe7da 100644
--- a/arch/mips/include/asm/mach-lemote/dma-coherence.h
+++ b/arch/mips/include/asm/mach-lemote/dma-coherence.h
@@ -30,10 +30,34 @@ static inline unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr)
30 return dma_addr & 0x7fffffff; 30 return dma_addr & 0x7fffffff;
31} 31}
32 32
33static inline void plat_unmap_dma_mem(dma_addr_t dma_addr) 33static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr)
34{ 34{
35} 35}
36 36
37static inline int plat_dma_supported(struct device *dev, u64 mask)
38{
39 /*
40 * we fall back to GFP_DMA when the mask isn't all 1s,
41 * so we can't guarantee allocations that must be
42 * within a tighter range than GFP_DMA..
43 */
44 if (mask < DMA_BIT_MASK(24))
45 return 0;
46
47 return 1;
48}
49
50static inline void plat_extra_sync_for_device(struct device *dev)
51{
52 return;
53}
54
55static inline int plat_dma_mapping_error(struct device *dev,
56 dma_addr_t dma_addr)
57{
58 return 0;
59}
60
37static inline int plat_device_is_coherent(struct device *dev) 61static inline int plat_device_is_coherent(struct device *dev)
38{ 62{
39 return 0; 63 return 0;
diff --git a/arch/mips/include/asm/mach-rc32434/gpio.h b/arch/mips/include/asm/mach-rc32434/gpio.h
index b5cf6457305a..3cb50d17b62d 100644
--- a/arch/mips/include/asm/mach-rc32434/gpio.h
+++ b/arch/mips/include/asm/mach-rc32434/gpio.h
@@ -80,11 +80,8 @@ struct rb532_gpio_reg {
80/* Compact Flash GPIO pin */ 80/* Compact Flash GPIO pin */
81#define CF_GPIO_NUM 13 81#define CF_GPIO_NUM 13
82 82
83extern void set_434_reg(unsigned reg_offs, unsigned bit, unsigned len, unsigned val);
84extern unsigned get_434_reg(unsigned reg_offs);
85extern void set_latch_u5(unsigned char or_mask, unsigned char nand_mask);
86extern unsigned char get_latch_u5(void);
87extern void rb532_gpio_set_ilevel(int bit, unsigned gpio); 83extern void rb532_gpio_set_ilevel(int bit, unsigned gpio);
88extern void rb532_gpio_set_istat(int bit, unsigned gpio); 84extern void rb532_gpio_set_istat(int bit, unsigned gpio);
85extern void rb532_gpio_set_func(unsigned gpio);
89 86
90#endif /* _RC32434_GPIO_H_ */ 87#endif /* _RC32434_GPIO_H_ */
diff --git a/arch/mips/include/asm/mach-rc32434/irq.h b/arch/mips/include/asm/mach-rc32434/irq.h
index 56738d8ec4e2..023a5b100ed0 100644
--- a/arch/mips/include/asm/mach-rc32434/irq.h
+++ b/arch/mips/include/asm/mach-rc32434/irq.h
@@ -30,4 +30,7 @@
30#define ETH0_RX_OVR_IRQ (GROUP3_IRQ_BASE + 9) 30#define ETH0_RX_OVR_IRQ (GROUP3_IRQ_BASE + 9)
31#define ETH0_TX_UND_IRQ (GROUP3_IRQ_BASE + 10) 31#define ETH0_TX_UND_IRQ (GROUP3_IRQ_BASE + 10)
32 32
33#define GPIO_MAPPED_IRQ_BASE GROUP4_IRQ_BASE
34#define GPIO_MAPPED_IRQ_GROUP 4
35
33#endif /* __ASM_RC32434_IRQ_H */ 36#endif /* __ASM_RC32434_IRQ_H */
diff --git a/arch/mips/include/asm/mach-rc32434/rb.h b/arch/mips/include/asm/mach-rc32434/rb.h
index f25a84916703..6dc5f8df1f3e 100644
--- a/arch/mips/include/asm/mach-rc32434/rb.h
+++ b/arch/mips/include/asm/mach-rc32434/rb.h
@@ -83,4 +83,7 @@ struct mpmc_device {
83 void __iomem *base; 83 void __iomem *base;
84}; 84};
85 85
86extern void set_latch_u5(unsigned char or_mask, unsigned char nand_mask);
87extern unsigned char get_latch_u5(void);
88
86#endif /* __ASM_RC32434_RB_H */ 89#endif /* __ASM_RC32434_RB_H */
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h
index 9316324d070d..0417516503f6 100644
--- a/arch/mips/include/asm/mipsregs.h
+++ b/arch/mips/include/asm/mipsregs.h
@@ -1000,6 +1000,26 @@ do { \
1000#define read_c0_ebase() __read_32bit_c0_register($15, 1) 1000#define read_c0_ebase() __read_32bit_c0_register($15, 1)
1001#define write_c0_ebase(val) __write_32bit_c0_register($15, 1, val) 1001#define write_c0_ebase(val) __write_32bit_c0_register($15, 1, val)
1002 1002
1003
1004/* Cavium OCTEON (cnMIPS) */
1005#define read_c0_cvmcount() __read_ulong_c0_register($9, 6)
1006#define write_c0_cvmcount(val) __write_ulong_c0_register($9, 6, val)
1007
1008#define read_c0_cvmctl() __read_64bit_c0_register($9, 7)
1009#define write_c0_cvmctl(val) __write_64bit_c0_register($9, 7, val)
1010
1011#define read_c0_cvmmemctl() __read_64bit_c0_register($11, 7)
1012#define write_c0_cvmmemctl(val) __write_64bit_c0_register($11, 7, val)
1013/*
1014 * The cacheerr registers are not standardized. On OCTEON, they are
1015 * 64 bits wide.
1016 */
1017#define read_octeon_c0_icacheerr() __read_64bit_c0_register($27, 0)
1018#define write_octeon_c0_icacheerr(val) __write_64bit_c0_register($27, 0, val)
1019
1020#define read_octeon_c0_dcacheerr() __read_64bit_c0_register($27, 1)
1021#define write_octeon_c0_dcacheerr(val) __write_64bit_c0_register($27, 1, val)
1022
1003/* 1023/*
1004 * Macros to access the floating point coprocessor control registers 1024 * Macros to access the floating point coprocessor control registers
1005 */ 1025 */
@@ -1008,6 +1028,8 @@ do { \
1008 __asm__ __volatile__( \ 1028 __asm__ __volatile__( \
1009 ".set\tpush\n\t" \ 1029 ".set\tpush\n\t" \
1010 ".set\treorder\n\t" \ 1030 ".set\treorder\n\t" \
1031 /* gas fails to assemble cfc1 for some archs (octeon).*/ \
1032 ".set\tmips1\n\t" \
1011 "cfc1\t%0,"STR(source)"\n\t" \ 1033 "cfc1\t%0,"STR(source)"\n\t" \
1012 ".set\tpop" \ 1034 ".set\tpop" \
1013 : "=r" (__res)); \ 1035 : "=r" (__res)); \
diff --git a/arch/mips/include/asm/module.h b/arch/mips/include/asm/module.h
index e2e09b2cd265..d94085a3eafb 100644
--- a/arch/mips/include/asm/module.h
+++ b/arch/mips/include/asm/module.h
@@ -116,6 +116,8 @@ search_module_dbetables(unsigned long addr)
116#define MODULE_PROC_FAMILY "SB1 " 116#define MODULE_PROC_FAMILY "SB1 "
117#elif defined CONFIG_CPU_LOONGSON2 117#elif defined CONFIG_CPU_LOONGSON2
118#define MODULE_PROC_FAMILY "LOONGSON2 " 118#define MODULE_PROC_FAMILY "LOONGSON2 "
119#elif defined CONFIG_CPU_CAVIUM_OCTEON
120#define MODULE_PROC_FAMILY "OCTEON "
119#else 121#else
120#error MODULE_PROC_FAMILY undefined for your processor configuration 122#error MODULE_PROC_FAMILY undefined for your processor configuration
121#endif 123#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-asm.h b/arch/mips/include/asm/octeon/cvmx-asm.h
new file mode 100644
index 000000000000..b21d3fc1ef91
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-asm.h
@@ -0,0 +1,128 @@
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/*
29 *
30 * This is file defines ASM primitives for the executive.
31 */
32#ifndef __CVMX_ASM_H__
33#define __CVMX_ASM_H__
34
35#include "octeon-model.h"
36
37/* other useful stuff */
38#define CVMX_SYNC asm volatile ("sync" : : : "memory")
39/* String version of SYNCW macro for using in inline asm constructs */
40#define CVMX_SYNCW_STR "syncw\nsyncw\n"
41#ifdef __OCTEON__
42
43/* Deprecated, will be removed in future release */
44#define CVMX_SYNCIO asm volatile ("nop")
45
46#define CVMX_SYNCIOBDMA asm volatile ("synciobdma" : : : "memory")
47
48/* Deprecated, will be removed in future release */
49#define CVMX_SYNCIOALL asm volatile ("nop")
50
51/*
52 * We actually use two syncw instructions in a row when we need a write
53 * memory barrier. This is because the CN3XXX series of Octeons have
54 * errata Core-401. This can cause a single syncw to not enforce
55 * ordering under very rare conditions. Even if it is rare, better safe
56 * than sorry.
57 */
58#define CVMX_SYNCW asm volatile ("syncw\n\tsyncw" : : : "memory")
59
60/*
61 * Define new sync instructions to be normal SYNC instructions for
62 * operating systems that use threads.
63 */
64#define CVMX_SYNCWS CVMX_SYNCW
65#define CVMX_SYNCS CVMX_SYNC
66#define CVMX_SYNCWS_STR CVMX_SYNCW_STR
67#else
68/*
69 * Not using a Cavium compiler, always use the slower sync so the
70 * assembler stays happy.
71 */
72/* Deprecated, will be removed in future release */
73#define CVMX_SYNCIO asm volatile ("nop")
74
75#define CVMX_SYNCIOBDMA asm volatile ("sync" : : : "memory")
76
77/* Deprecated, will be removed in future release */
78#define CVMX_SYNCIOALL asm volatile ("nop")
79
80#define CVMX_SYNCW asm volatile ("sync" : : : "memory")
81#define CVMX_SYNCWS CVMX_SYNCW
82#define CVMX_SYNCS CVMX_SYNC
83#define CVMX_SYNCWS_STR CVMX_SYNCW_STR
84#endif
85
86/*
87 * CVMX_PREPARE_FOR_STORE makes each byte of the block unpredictable
88 * (actually old value or zero) until that byte is stored to (by this or
89 * another processor. Note that the value of each byte is not only
90 * unpredictable, but may also change again - up until the point when one
91 * of the cores stores to the byte.
92 */
93#define CVMX_PREPARE_FOR_STORE(address, offset) \
94 asm volatile ("pref 30, " CVMX_TMP_STR(offset) "(%[rbase])" : : \
95 [rbase] "d" (address))
96/*
97 * This is a command headed to the L2 controller to tell it to clear
98 * its dirty bit for a block. Basically, SW is telling HW that the
99 * current version of the block will not be used.
100 */
101#define CVMX_DONT_WRITE_BACK(address, offset) \
102 asm volatile ("pref 29, " CVMX_TMP_STR(offset) "(%[rbase])" : : \
103 [rbase] "d" (address))
104
105/* flush stores, invalidate entire icache */
106#define CVMX_ICACHE_INVALIDATE \
107 { CVMX_SYNC; asm volatile ("synci 0($0)" : : ); }
108
109/* flush stores, invalidate entire icache */
110#define CVMX_ICACHE_INVALIDATE2 \
111 { CVMX_SYNC; asm volatile ("cache 0, 0($0)" : : ); }
112
113/* complete prefetches, invalidate entire dcache */
114#define CVMX_DCACHE_INVALIDATE \
115 { CVMX_SYNC; asm volatile ("cache 9, 0($0)" : : ); }
116
117
118#define CVMX_POP(result, input) \
119 asm ("pop %[rd],%[rs]" : [rd] "=d" (result) : [rs] "d" (input))
120#define CVMX_DPOP(result, input) \
121 asm ("dpop %[rd],%[rs]" : [rd] "=d" (result) : [rs] "d" (input))
122
123/* some new cop0-like stuff */
124#define CVMX_RDHWR(result, regstr) \
125 asm volatile ("rdhwr %[rt],$" CVMX_TMP_STR(regstr) : [rt] "=d" (result))
126#define CVMX_RDHWRNV(result, regstr) \
127 asm ("rdhwr %[rt],$" CVMX_TMP_STR(regstr) : [rt] "=d" (result))
128#endif /* __CVMX_ASM_H__ */
diff --git a/arch/mips/include/asm/octeon/cvmx-bootinfo.h b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
new file mode 100644
index 000000000000..692989acd8a9
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
@@ -0,0 +1,262 @@
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/*
29 * Header file containing the ABI with the bootloader.
30 */
31
32#ifndef __CVMX_BOOTINFO_H__
33#define __CVMX_BOOTINFO_H__
34
35/*
36 * Current major and minor versions of the CVMX bootinfo block that is
37 * passed from the bootloader to the application. This is versioned
38 * so that applications can properly handle multiple bootloader
39 * versions.
40 */
41#define CVMX_BOOTINFO_MAJ_VER 1
42#define CVMX_BOOTINFO_MIN_VER 2
43
44#if (CVMX_BOOTINFO_MAJ_VER == 1)
45#define CVMX_BOOTINFO_OCTEON_SERIAL_LEN 20
46/*
47 * This structure is populated by the bootloader. For binary
48 * compatibility the only changes that should be made are
49 * adding members to the end of the structure, and the minor
50 * version should be incremented at that time.
51 * If an incompatible change is made, the major version
52 * must be incremented, and the minor version should be reset
53 * to 0.
54 */
55struct cvmx_bootinfo {
56 uint32_t major_version;
57 uint32_t minor_version;
58
59 uint64_t stack_top;
60 uint64_t heap_base;
61 uint64_t heap_end;
62 uint64_t desc_vaddr;
63
64 uint32_t exception_base_addr;
65 uint32_t stack_size;
66 uint32_t flags;
67 uint32_t core_mask;
68 /* DRAM size in megabytes */
69 uint32_t dram_size;
70 /* physical address of free memory descriptor block*/
71 uint32_t phy_mem_desc_addr;
72 /* used to pass flags from app to debugger */
73 uint32_t debugger_flags_base_addr;
74
75 /* CPU clock speed, in hz */
76 uint32_t eclock_hz;
77
78 /* DRAM clock speed, in hz */
79 uint32_t dclock_hz;
80
81 uint32_t reserved0;
82 uint16_t board_type;
83 uint8_t board_rev_major;
84 uint8_t board_rev_minor;
85 uint16_t reserved1;
86 uint8_t reserved2;
87 uint8_t reserved3;
88 char board_serial_number[CVMX_BOOTINFO_OCTEON_SERIAL_LEN];
89 uint8_t mac_addr_base[6];
90 uint8_t mac_addr_count;
91#if (CVMX_BOOTINFO_MIN_VER >= 1)
92 /*
93 * Several boards support compact flash on the Octeon boot
94 * bus. The CF memory spaces may be mapped to different
95 * addresses on different boards. These are the physical
96 * addresses, so care must be taken to use the correct
97 * XKPHYS/KSEG0 addressing depending on the application's
98 * ABI. These values will be 0 if CF is not present.
99 */
100 uint64_t compact_flash_common_base_addr;
101 uint64_t compact_flash_attribute_base_addr;
102 /*
103 * Base address of the LED display (as on EBT3000 board)
104 * This will be 0 if LED display not present.
105 */
106 uint64_t led_display_base_addr;
107#endif
108#if (CVMX_BOOTINFO_MIN_VER >= 2)
109 /* DFA reference clock in hz (if applicable)*/
110 uint32_t dfa_ref_clock_hz;
111
112 /*
113 * flags indicating various configuration options. These
114 * flags supercede the 'flags' variable and should be used
115 * instead if available.
116 */
117 uint32_t config_flags;
118#endif
119
120};
121
122#define CVMX_BOOTINFO_CFG_FLAG_PCI_HOST (1ull << 0)
123#define CVMX_BOOTINFO_CFG_FLAG_PCI_TARGET (1ull << 1)
124#define CVMX_BOOTINFO_CFG_FLAG_DEBUG (1ull << 2)
125#define CVMX_BOOTINFO_CFG_FLAG_NO_MAGIC (1ull << 3)
126/* This flag is set if the TLB mappings are not contained in the
127 * 0x10000000 - 0x20000000 boot bus region. */
128#define CVMX_BOOTINFO_CFG_FLAG_OVERSIZE_TLB_MAPPING (1ull << 4)
129#define CVMX_BOOTINFO_CFG_FLAG_BREAK (1ull << 5)
130
131#endif /* (CVMX_BOOTINFO_MAJ_VER == 1) */
132
133/* Type defines for board and chip types */
134enum cvmx_board_types_enum {
135 CVMX_BOARD_TYPE_NULL = 0,
136 CVMX_BOARD_TYPE_SIM = 1,
137 CVMX_BOARD_TYPE_EBT3000 = 2,
138 CVMX_BOARD_TYPE_KODAMA = 3,
139 CVMX_BOARD_TYPE_NIAGARA = 4,
140 CVMX_BOARD_TYPE_NAC38 = 5, /* formerly NAO38 */
141 CVMX_BOARD_TYPE_THUNDER = 6,
142 CVMX_BOARD_TYPE_TRANTOR = 7,
143 CVMX_BOARD_TYPE_EBH3000 = 8,
144 CVMX_BOARD_TYPE_EBH3100 = 9,
145 CVMX_BOARD_TYPE_HIKARI = 10,
146 CVMX_BOARD_TYPE_CN3010_EVB_HS5 = 11,
147 CVMX_BOARD_TYPE_CN3005_EVB_HS5 = 12,
148 CVMX_BOARD_TYPE_KBP = 13,
149 /* Deprecated, CVMX_BOARD_TYPE_CN3010_EVB_HS5 supports the CN3020 */
150 CVMX_BOARD_TYPE_CN3020_EVB_HS5 = 14,
151 CVMX_BOARD_TYPE_EBT5800 = 15,
152 CVMX_BOARD_TYPE_NICPRO2 = 16,
153 CVMX_BOARD_TYPE_EBH5600 = 17,
154 CVMX_BOARD_TYPE_EBH5601 = 18,
155 CVMX_BOARD_TYPE_EBH5200 = 19,
156 CVMX_BOARD_TYPE_BBGW_REF = 20,
157 CVMX_BOARD_TYPE_NIC_XLE_4G = 21,
158 CVMX_BOARD_TYPE_EBT5600 = 22,
159 CVMX_BOARD_TYPE_EBH5201 = 23,
160 CVMX_BOARD_TYPE_MAX,
161
162 /*
163 * The range from CVMX_BOARD_TYPE_MAX to
164 * CVMX_BOARD_TYPE_CUST_DEFINED_MIN is reserved for future
165 * SDK use.
166 */
167
168 /*
169 * Set aside a range for customer boards. These numbers are managed
170 * by Cavium.
171 */
172 CVMX_BOARD_TYPE_CUST_DEFINED_MIN = 10000,
173 CVMX_BOARD_TYPE_CUST_WSX16 = 10001,
174 CVMX_BOARD_TYPE_CUST_NS0216 = 10002,
175 CVMX_BOARD_TYPE_CUST_NB5 = 10003,
176 CVMX_BOARD_TYPE_CUST_WMR500 = 10004,
177 CVMX_BOARD_TYPE_CUST_DEFINED_MAX = 20000,
178
179 /*
180 * Set aside a range for customer private use. The SDK won't
181 * use any numbers in this range.
182 */
183 CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001,
184 CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000,
185
186 /* The remaining range is reserved for future use. */
187};
188
189enum cvmx_chip_types_enum {
190 CVMX_CHIP_TYPE_NULL = 0,
191 CVMX_CHIP_SIM_TYPE_DEPRECATED = 1,
192 CVMX_CHIP_TYPE_OCTEON_SAMPLE = 2,
193 CVMX_CHIP_TYPE_MAX,
194};
195
196/* Compatability alias for NAC38 name change, planned to be removed
197 * from SDK 1.7 */
198#define CVMX_BOARD_TYPE_NAO38 CVMX_BOARD_TYPE_NAC38
199
200/* Functions to return string based on type */
201#define ENUM_BRD_TYPE_CASE(x) \
202 case x: return(#x + 16); /* Skip CVMX_BOARD_TYPE_ */
203static inline const char *cvmx_board_type_to_string(enum
204 cvmx_board_types_enum type)
205{
206 switch (type) {
207 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NULL)
208 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_SIM)
209 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBT3000)
210 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_KODAMA)
211 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NIAGARA)
212 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NAC38)
213 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_THUNDER)
214 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_TRANTOR)
215 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH3000)
216 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH3100)
217 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_HIKARI)
218 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CN3010_EVB_HS5)
219 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CN3005_EVB_HS5)
220 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_KBP)
221 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CN3020_EVB_HS5)
222 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBT5800)
223 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NICPRO2)
224 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH5600)
225 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH5601)
226 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH5200)
227 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_BBGW_REF)
228 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NIC_XLE_4G)
229 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBT5600)
230 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH5201)
231 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MAX)
232
233 /* Customer boards listed here */
234 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_DEFINED_MIN)
235 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_WSX16)
236 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_NS0216)
237 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_NB5)
238 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_WMR500)
239 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_DEFINED_MAX)
240
241 /* Customer private range */
242 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN)
243 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX)
244 }
245 return "Unsupported Board";
246}
247
248#define ENUM_CHIP_TYPE_CASE(x) \
249 case x: return(#x + 15); /* Skip CVMX_CHIP_TYPE */
250static inline const char *cvmx_chip_type_to_string(enum
251 cvmx_chip_types_enum type)
252{
253 switch (type) {
254 ENUM_CHIP_TYPE_CASE(CVMX_CHIP_TYPE_NULL)
255 ENUM_CHIP_TYPE_CASE(CVMX_CHIP_SIM_TYPE_DEPRECATED)
256 ENUM_CHIP_TYPE_CASE(CVMX_CHIP_TYPE_OCTEON_SAMPLE)
257 ENUM_CHIP_TYPE_CASE(CVMX_CHIP_TYPE_MAX)
258 }
259 return "Unsupported Chip";
260}
261
262#endif /* __CVMX_BOOTINFO_H__ */
diff --git a/arch/mips/include/asm/octeon/cvmx-bootmem.h b/arch/mips/include/asm/octeon/cvmx-bootmem.h
new file mode 100644
index 000000000000..1cbe4b55889d
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-bootmem.h
@@ -0,0 +1,288 @@
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/*
29 * Simple allocate only memory allocator. Used to allocate memory at
30 * application start time.
31 */
32
33#ifndef __CVMX_BOOTMEM_H__
34#define __CVMX_BOOTMEM_H__
35/* Must be multiple of 8, changing breaks ABI */
36#define CVMX_BOOTMEM_NAME_LEN 128
37
38/* Can change without breaking ABI */
39#define CVMX_BOOTMEM_NUM_NAMED_BLOCKS 64
40
41/* minimum alignment of bootmem alloced blocks */
42#define CVMX_BOOTMEM_ALIGNMENT_SIZE (16ull)
43
44/* Flags for cvmx_bootmem_phy_mem* functions */
45/* Allocate from end of block instead of beginning */
46#define CVMX_BOOTMEM_FLAG_END_ALLOC (1 << 0)
47
48/* Don't do any locking. */
49#define CVMX_BOOTMEM_FLAG_NO_LOCKING (1 << 1)
50
51/* First bytes of each free physical block of memory contain this structure,
52 * which is used to maintain the free memory list. Since the bootloader is
53 * only 32 bits, there is a union providing 64 and 32 bit versions. The
54 * application init code converts addresses to 64 bit addresses before the
55 * application starts.
56 */
57struct cvmx_bootmem_block_header {
58 /*
59 * Note: these are referenced from assembly routines in the
60 * bootloader, so this structure should not be changed
61 * without changing those routines as well.
62 */
63 uint64_t next_block_addr;
64 uint64_t size;
65
66};
67
68/*
69 * Structure for named memory blocks. Number of descriptors available
70 * can be changed without affecting compatiblity, but name length
71 * changes require a bump in the bootmem descriptor version Note: This
72 * structure must be naturally 64 bit aligned, as a single memory
73 * image will be used by both 32 and 64 bit programs.
74 */
75struct cvmx_bootmem_named_block_desc {
76 /* Base address of named block */
77 uint64_t base_addr;
78 /*
79 * Size actually allocated for named block (may differ from
80 * requested).
81 */
82 uint64_t size;
83 /* name of named block */
84 char name[CVMX_BOOTMEM_NAME_LEN];
85};
86
87/* Current descriptor versions */
88/* CVMX bootmem descriptor major version */
89#define CVMX_BOOTMEM_DESC_MAJ_VER 3
90
91/* CVMX bootmem descriptor minor version */
92#define CVMX_BOOTMEM_DESC_MIN_VER 0
93
94/* First three members of cvmx_bootmem_desc_t are left in original
95 * positions for backwards compatibility.
96 */
97struct cvmx_bootmem_desc {
98 /* spinlock to control access to list */
99 uint32_t lock;
100 /* flags for indicating various conditions */
101 uint32_t flags;
102 uint64_t head_addr;
103
104 /* Incremented when incompatible changes made */
105 uint32_t major_version;
106
107 /*
108 * Incremented changed when compatible changes made, reset to
109 * zero when major incremented.
110 */
111 uint32_t minor_version;
112
113 uint64_t app_data_addr;
114 uint64_t app_data_size;
115
116 /* number of elements in named blocks array */
117 uint32_t named_block_num_blocks;
118
119 /* length of name array in bootmem blocks */
120 uint32_t named_block_name_len;
121 /* address of named memory block descriptors */
122 uint64_t named_block_array_addr;
123
124};
125
126/**
127 * Initialize the boot alloc memory structures. This is
128 * normally called inside of cvmx_user_app_init()
129 *
130 * @mem_desc_ptr: Address of the free memory list
131 */
132extern int cvmx_bootmem_init(void *mem_desc_ptr);
133
134/**
135 * Allocate a block of memory from the free list that was passed
136 * to the application by the bootloader.
137 * This is an allocate-only algorithm, so freeing memory is not possible.
138 *
139 * @size: Size in bytes of block to allocate
140 * @alignment: Alignment required - must be power of 2
141 *
142 * Returns pointer to block of memory, NULL on error
143 */
144extern void *cvmx_bootmem_alloc(uint64_t size, uint64_t alignment);
145
146/**
147 * Allocate a block of memory from the free list that was
148 * passed to the application by the bootloader at a specific
149 * address. This is an allocate-only algorithm, so
150 * freeing memory is not possible. Allocation will fail if
151 * memory cannot be allocated at the specified address.
152 *
153 * @size: Size in bytes of block to allocate
154 * @address: Physical address to allocate memory at. If this memory is not
155 * available, the allocation fails.
156 * @alignment: Alignment required - must be power of 2
157 * Returns pointer to block of memory, NULL on error
158 */
159extern void *cvmx_bootmem_alloc_address(uint64_t size, uint64_t address,
160 uint64_t alignment);
161
162/**
163 * Allocate a block of memory from the free list that was
164 * passed to the application by the bootloader within a specified
165 * address range. This is an allocate-only algorithm, so
166 * freeing memory is not possible. Allocation will fail if
167 * memory cannot be allocated in the requested range.
168 *
169 * @size: Size in bytes of block to allocate
170 * @min_addr: defines the minimum address of the range
171 * @max_addr: defines the maximum address of the range
172 * @alignment: Alignment required - must be power of 2
173 * Returns pointer to block of memory, NULL on error
174 */
175extern void *cvmx_bootmem_alloc_range(uint64_t size, uint64_t alignment,
176 uint64_t min_addr, uint64_t max_addr);
177
178/**
179 * Frees a previously allocated named bootmem block.
180 *
181 * @name: name of block to free
182 *
183 * Returns 0 on failure,
184 * !0 on success
185 */
186extern int cvmx_bootmem_free_named(char *name);
187
188/**
189 * Finds a named bootmem block by name.
190 *
191 * @name: name of block to free
192 *
193 * Returns pointer to named block descriptor on success
194 * 0 on failure
195 */
196struct cvmx_bootmem_named_block_desc *cvmx_bootmem_find_named_block(char *name);
197
198/**
199 * Allocates a block of physical memory from the free list, at
200 * (optional) requested address and alignment.
201 *
202 * @req_size: size of region to allocate. All requests are rounded up
203 * to be a multiple CVMX_BOOTMEM_ALIGNMENT_SIZE bytes size
204 *
205 * @address_min: Minimum address that block can occupy.
206 *
207 * @address_max: Specifies the maximum address_min (inclusive) that
208 * the allocation can use.
209 *
210 * @alignment: Requested alignment of the block. If this alignment
211 * cannot be met, the allocation fails. This must be a
212 * power of 2. (Note: Alignment of
213 * CVMX_BOOTMEM_ALIGNMENT_SIZE bytes is required, and
214 * internally enforced. Requested alignments of less than
215 * CVMX_BOOTMEM_ALIGNMENT_SIZE are set to
216 * CVMX_BOOTMEM_ALIGNMENT_SIZE.)
217 *
218 * @flags: Flags to control options for the allocation.
219 *
220 * Returns physical address of block allocated, or -1 on failure
221 */
222int64_t cvmx_bootmem_phy_alloc(uint64_t req_size, uint64_t address_min,
223 uint64_t address_max, uint64_t alignment,
224 uint32_t flags);
225
226/**
227 * Finds a named memory block by name.
228 * Also used for finding an unused entry in the named block table.
229 *
230 * @name: Name of memory block to find. If NULL pointer given, then
231 * finds unused descriptor, if available.
232 *
233 * @flags: Flags to control options for the allocation.
234 *
235 * Returns Pointer to memory block descriptor, NULL if not found.
236 * If NULL returned when name parameter is NULL, then no memory
237 * block descriptors are available.
238 */
239struct cvmx_bootmem_named_block_desc *
240cvmx_bootmem_phy_named_block_find(char *name, uint32_t flags);
241
242/**
243 * Frees a named block.
244 *
245 * @name: name of block to free
246 * @flags: flags for passing options
247 *
248 * Returns 0 on failure
249 * 1 on success
250 */
251int cvmx_bootmem_phy_named_block_free(char *name, uint32_t flags);
252
253/**
254 * Frees a block to the bootmem allocator list. This must
255 * be used with care, as the size provided must match the size
256 * of the block that was allocated, or the list will become
257 * corrupted.
258 *
259 * IMPORTANT: This is only intended to be used as part of named block
260 * frees and initial population of the free memory list.
261 * *
262 *
263 * @phy_addr: physical address of block
264 * @size: size of block in bytes.
265 * @flags: flags for passing options
266 *
267 * Returns 1 on success,
268 * 0 on failure
269 */
270int __cvmx_bootmem_phy_free(uint64_t phy_addr, uint64_t size, uint32_t flags);
271
272/**
273 * Locks the bootmem allocator. This is useful in certain situations
274 * where multiple allocations must be made without being interrupted.
275 * This should be used with the CVMX_BOOTMEM_FLAG_NO_LOCKING flag.
276 *
277 */
278void cvmx_bootmem_lock(void);
279
280/**
281 * Unlocks the bootmem allocator. This is useful in certain situations
282 * where multiple allocations must be made without being interrupted.
283 * This should be used with the CVMX_BOOTMEM_FLAG_NO_LOCKING flag.
284 *
285 */
286void cvmx_bootmem_unlock(void);
287
288#endif /* __CVMX_BOOTMEM_H__ */
diff --git a/arch/mips/include/asm/octeon/cvmx-ciu-defs.h b/arch/mips/include/asm/octeon/cvmx-ciu-defs.h
new file mode 100644
index 000000000000..f8f05b7764b7
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-ciu-defs.h
@@ -0,0 +1,1616 @@
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_CIU_DEFS_H__
29#define __CVMX_CIU_DEFS_H__
30
31#define CVMX_CIU_BIST \
32 CVMX_ADD_IO_SEG(0x0001070000000730ull)
33#define CVMX_CIU_DINT \
34 CVMX_ADD_IO_SEG(0x0001070000000720ull)
35#define CVMX_CIU_FUSE \
36 CVMX_ADD_IO_SEG(0x0001070000000728ull)
37#define CVMX_CIU_GSTOP \
38 CVMX_ADD_IO_SEG(0x0001070000000710ull)
39#define CVMX_CIU_INTX_EN0(offset) \
40 CVMX_ADD_IO_SEG(0x0001070000000200ull + (((offset) & 63) * 16))
41#define CVMX_CIU_INTX_EN0_W1C(offset) \
42 CVMX_ADD_IO_SEG(0x0001070000002200ull + (((offset) & 63) * 16))
43#define CVMX_CIU_INTX_EN0_W1S(offset) \
44 CVMX_ADD_IO_SEG(0x0001070000006200ull + (((offset) & 63) * 16))
45#define CVMX_CIU_INTX_EN1(offset) \
46 CVMX_ADD_IO_SEG(0x0001070000000208ull + (((offset) & 63) * 16))
47#define CVMX_CIU_INTX_EN1_W1C(offset) \
48 CVMX_ADD_IO_SEG(0x0001070000002208ull + (((offset) & 63) * 16))
49#define CVMX_CIU_INTX_EN1_W1S(offset) \
50 CVMX_ADD_IO_SEG(0x0001070000006208ull + (((offset) & 63) * 16))
51#define CVMX_CIU_INTX_EN4_0(offset) \
52 CVMX_ADD_IO_SEG(0x0001070000000C80ull + (((offset) & 15) * 16))
53#define CVMX_CIU_INTX_EN4_0_W1C(offset) \
54 CVMX_ADD_IO_SEG(0x0001070000002C80ull + (((offset) & 15) * 16))
55#define CVMX_CIU_INTX_EN4_0_W1S(offset) \
56 CVMX_ADD_IO_SEG(0x0001070000006C80ull + (((offset) & 15) * 16))
57#define CVMX_CIU_INTX_EN4_1(offset) \
58 CVMX_ADD_IO_SEG(0x0001070000000C88ull + (((offset) & 15) * 16))
59#define CVMX_CIU_INTX_EN4_1_W1C(offset) \
60 CVMX_ADD_IO_SEG(0x0001070000002C88ull + (((offset) & 15) * 16))
61#define CVMX_CIU_INTX_EN4_1_W1S(offset) \
62 CVMX_ADD_IO_SEG(0x0001070000006C88ull + (((offset) & 15) * 16))
63#define CVMX_CIU_INTX_SUM0(offset) \
64 CVMX_ADD_IO_SEG(0x0001070000000000ull + (((offset) & 63) * 8))
65#define CVMX_CIU_INTX_SUM4(offset) \
66 CVMX_ADD_IO_SEG(0x0001070000000C00ull + (((offset) & 15) * 8))
67#define CVMX_CIU_INT_SUM1 \
68 CVMX_ADD_IO_SEG(0x0001070000000108ull)
69#define CVMX_CIU_MBOX_CLRX(offset) \
70 CVMX_ADD_IO_SEG(0x0001070000000680ull + (((offset) & 15) * 8))
71#define CVMX_CIU_MBOX_SETX(offset) \
72 CVMX_ADD_IO_SEG(0x0001070000000600ull + (((offset) & 15) * 8))
73#define CVMX_CIU_NMI \
74 CVMX_ADD_IO_SEG(0x0001070000000718ull)
75#define CVMX_CIU_PCI_INTA \
76 CVMX_ADD_IO_SEG(0x0001070000000750ull)
77#define CVMX_CIU_PP_DBG \
78 CVMX_ADD_IO_SEG(0x0001070000000708ull)
79#define CVMX_CIU_PP_POKEX(offset) \
80 CVMX_ADD_IO_SEG(0x0001070000000580ull + (((offset) & 15) * 8))
81#define CVMX_CIU_PP_RST \
82 CVMX_ADD_IO_SEG(0x0001070000000700ull)
83#define CVMX_CIU_QLM_DCOK \
84 CVMX_ADD_IO_SEG(0x0001070000000760ull)
85#define CVMX_CIU_QLM_JTGC \
86 CVMX_ADD_IO_SEG(0x0001070000000768ull)
87#define CVMX_CIU_QLM_JTGD \
88 CVMX_ADD_IO_SEG(0x0001070000000770ull)
89#define CVMX_CIU_SOFT_BIST \
90 CVMX_ADD_IO_SEG(0x0001070000000738ull)
91#define CVMX_CIU_SOFT_PRST \
92 CVMX_ADD_IO_SEG(0x0001070000000748ull)
93#define CVMX_CIU_SOFT_PRST1 \
94 CVMX_ADD_IO_SEG(0x0001070000000758ull)
95#define CVMX_CIU_SOFT_RST \
96 CVMX_ADD_IO_SEG(0x0001070000000740ull)
97#define CVMX_CIU_TIMX(offset) \
98 CVMX_ADD_IO_SEG(0x0001070000000480ull + (((offset) & 3) * 8))
99#define CVMX_CIU_WDOGX(offset) \
100 CVMX_ADD_IO_SEG(0x0001070000000500ull + (((offset) & 15) * 8))
101
102union cvmx_ciu_bist {
103 uint64_t u64;
104 struct cvmx_ciu_bist_s {
105 uint64_t reserved_4_63:60;
106 uint64_t bist:4;
107 } s;
108 struct cvmx_ciu_bist_s cn30xx;
109 struct cvmx_ciu_bist_s cn31xx;
110 struct cvmx_ciu_bist_s cn38xx;
111 struct cvmx_ciu_bist_s cn38xxp2;
112 struct cvmx_ciu_bist_cn50xx {
113 uint64_t reserved_2_63:62;
114 uint64_t bist:2;
115 } cn50xx;
116 struct cvmx_ciu_bist_cn52xx {
117 uint64_t reserved_3_63:61;
118 uint64_t bist:3;
119 } cn52xx;
120 struct cvmx_ciu_bist_cn52xx cn52xxp1;
121 struct cvmx_ciu_bist_s cn56xx;
122 struct cvmx_ciu_bist_s cn56xxp1;
123 struct cvmx_ciu_bist_s cn58xx;
124 struct cvmx_ciu_bist_s cn58xxp1;
125};
126
127union cvmx_ciu_dint {
128 uint64_t u64;
129 struct cvmx_ciu_dint_s {
130 uint64_t reserved_16_63:48;
131 uint64_t dint:16;
132 } s;
133 struct cvmx_ciu_dint_cn30xx {
134 uint64_t reserved_1_63:63;
135 uint64_t dint:1;
136 } cn30xx;
137 struct cvmx_ciu_dint_cn31xx {
138 uint64_t reserved_2_63:62;
139 uint64_t dint:2;
140 } cn31xx;
141 struct cvmx_ciu_dint_s cn38xx;
142 struct cvmx_ciu_dint_s cn38xxp2;
143 struct cvmx_ciu_dint_cn31xx cn50xx;
144 struct cvmx_ciu_dint_cn52xx {
145 uint64_t reserved_4_63:60;
146 uint64_t dint:4;
147 } cn52xx;
148 struct cvmx_ciu_dint_cn52xx cn52xxp1;
149 struct cvmx_ciu_dint_cn56xx {
150 uint64_t reserved_12_63:52;
151 uint64_t dint:12;
152 } cn56xx;
153 struct cvmx_ciu_dint_cn56xx cn56xxp1;
154 struct cvmx_ciu_dint_s cn58xx;
155 struct cvmx_ciu_dint_s cn58xxp1;
156};
157
158union cvmx_ciu_fuse {
159 uint64_t u64;
160 struct cvmx_ciu_fuse_s {
161 uint64_t reserved_16_63:48;
162 uint64_t fuse:16;
163 } s;
164 struct cvmx_ciu_fuse_cn30xx {
165 uint64_t reserved_1_63:63;
166 uint64_t fuse:1;
167 } cn30xx;
168 struct cvmx_ciu_fuse_cn31xx {
169 uint64_t reserved_2_63:62;
170 uint64_t fuse:2;
171 } cn31xx;
172 struct cvmx_ciu_fuse_s cn38xx;
173 struct cvmx_ciu_fuse_s cn38xxp2;
174 struct cvmx_ciu_fuse_cn31xx cn50xx;
175 struct cvmx_ciu_fuse_cn52xx {
176 uint64_t reserved_4_63:60;
177 uint64_t fuse:4;
178 } cn52xx;
179 struct cvmx_ciu_fuse_cn52xx cn52xxp1;
180 struct cvmx_ciu_fuse_cn56xx {
181 uint64_t reserved_12_63:52;
182 uint64_t fuse:12;
183 } cn56xx;
184 struct cvmx_ciu_fuse_cn56xx cn56xxp1;
185 struct cvmx_ciu_fuse_s cn58xx;
186 struct cvmx_ciu_fuse_s cn58xxp1;
187};
188
189union cvmx_ciu_gstop {
190 uint64_t u64;
191 struct cvmx_ciu_gstop_s {
192 uint64_t reserved_1_63:63;
193 uint64_t gstop:1;
194 } s;
195 struct cvmx_ciu_gstop_s cn30xx;
196 struct cvmx_ciu_gstop_s cn31xx;
197 struct cvmx_ciu_gstop_s cn38xx;
198 struct cvmx_ciu_gstop_s cn38xxp2;
199 struct cvmx_ciu_gstop_s cn50xx;
200 struct cvmx_ciu_gstop_s cn52xx;
201 struct cvmx_ciu_gstop_s cn52xxp1;
202 struct cvmx_ciu_gstop_s cn56xx;
203 struct cvmx_ciu_gstop_s cn56xxp1;
204 struct cvmx_ciu_gstop_s cn58xx;
205 struct cvmx_ciu_gstop_s cn58xxp1;
206};
207
208union cvmx_ciu_intx_en0 {
209 uint64_t u64;
210 struct cvmx_ciu_intx_en0_s {
211 uint64_t bootdma:1;
212 uint64_t mii:1;
213 uint64_t ipdppthr:1;
214 uint64_t powiq:1;
215 uint64_t twsi2:1;
216 uint64_t mpi:1;
217 uint64_t pcm:1;
218 uint64_t usb:1;
219 uint64_t timer:4;
220 uint64_t key_zero:1;
221 uint64_t ipd_drp:1;
222 uint64_t gmx_drp:2;
223 uint64_t trace:1;
224 uint64_t rml:1;
225 uint64_t twsi:1;
226 uint64_t reserved_44_44:1;
227 uint64_t pci_msi:4;
228 uint64_t pci_int:4;
229 uint64_t uart:2;
230 uint64_t mbox:2;
231 uint64_t gpio:16;
232 uint64_t workq:16;
233 } s;
234 struct cvmx_ciu_intx_en0_cn30xx {
235 uint64_t reserved_59_63:5;
236 uint64_t mpi:1;
237 uint64_t pcm:1;
238 uint64_t usb:1;
239 uint64_t timer:4;
240 uint64_t reserved_51_51:1;
241 uint64_t ipd_drp:1;
242 uint64_t reserved_49_49:1;
243 uint64_t gmx_drp:1;
244 uint64_t reserved_47_47:1;
245 uint64_t rml:1;
246 uint64_t twsi:1;
247 uint64_t reserved_44_44:1;
248 uint64_t pci_msi:4;
249 uint64_t pci_int:4;
250 uint64_t uart:2;
251 uint64_t mbox:2;
252 uint64_t gpio:16;
253 uint64_t workq:16;
254 } cn30xx;
255 struct cvmx_ciu_intx_en0_cn31xx {
256 uint64_t reserved_59_63:5;
257 uint64_t mpi:1;
258 uint64_t pcm:1;
259 uint64_t usb:1;
260 uint64_t timer:4;
261 uint64_t reserved_51_51:1;
262 uint64_t ipd_drp:1;
263 uint64_t reserved_49_49:1;
264 uint64_t gmx_drp:1;
265 uint64_t trace:1;
266 uint64_t rml:1;
267 uint64_t twsi:1;
268 uint64_t reserved_44_44:1;
269 uint64_t pci_msi:4;
270 uint64_t pci_int:4;
271 uint64_t uart:2;
272 uint64_t mbox:2;
273 uint64_t gpio:16;
274 uint64_t workq:16;
275 } cn31xx;
276 struct cvmx_ciu_intx_en0_cn38xx {
277 uint64_t reserved_56_63:8;
278 uint64_t timer:4;
279 uint64_t key_zero:1;
280 uint64_t ipd_drp:1;
281 uint64_t gmx_drp:2;
282 uint64_t trace:1;
283 uint64_t rml:1;
284 uint64_t twsi:1;
285 uint64_t reserved_44_44:1;
286 uint64_t pci_msi:4;
287 uint64_t pci_int:4;
288 uint64_t uart:2;
289 uint64_t mbox:2;
290 uint64_t gpio:16;
291 uint64_t workq:16;
292 } cn38xx;
293 struct cvmx_ciu_intx_en0_cn38xx cn38xxp2;
294 struct cvmx_ciu_intx_en0_cn30xx cn50xx;
295 struct cvmx_ciu_intx_en0_cn52xx {
296 uint64_t bootdma:1;
297 uint64_t mii:1;
298 uint64_t ipdppthr:1;
299 uint64_t powiq:1;
300 uint64_t twsi2:1;
301 uint64_t reserved_57_58:2;
302 uint64_t usb:1;
303 uint64_t timer:4;
304 uint64_t reserved_51_51:1;
305 uint64_t ipd_drp:1;
306 uint64_t reserved_49_49:1;
307 uint64_t gmx_drp:1;
308 uint64_t trace:1;
309 uint64_t rml:1;
310 uint64_t twsi:1;
311 uint64_t reserved_44_44:1;
312 uint64_t pci_msi:4;
313 uint64_t pci_int:4;
314 uint64_t uart:2;
315 uint64_t mbox:2;
316 uint64_t gpio:16;
317 uint64_t workq:16;
318 } cn52xx;
319 struct cvmx_ciu_intx_en0_cn52xx cn52xxp1;
320 struct cvmx_ciu_intx_en0_cn56xx {
321 uint64_t bootdma:1;
322 uint64_t mii:1;
323 uint64_t ipdppthr:1;
324 uint64_t powiq:1;
325 uint64_t twsi2:1;
326 uint64_t reserved_57_58:2;
327 uint64_t usb:1;
328 uint64_t timer:4;
329 uint64_t key_zero:1;
330 uint64_t ipd_drp:1;
331 uint64_t gmx_drp:2;
332 uint64_t trace:1;
333 uint64_t rml:1;
334 uint64_t twsi:1;
335 uint64_t reserved_44_44:1;
336 uint64_t pci_msi:4;
337 uint64_t pci_int:4;
338 uint64_t uart:2;
339 uint64_t mbox:2;
340 uint64_t gpio:16;
341 uint64_t workq:16;
342 } cn56xx;
343 struct cvmx_ciu_intx_en0_cn56xx cn56xxp1;
344 struct cvmx_ciu_intx_en0_cn38xx cn58xx;
345 struct cvmx_ciu_intx_en0_cn38xx cn58xxp1;
346};
347
348union cvmx_ciu_intx_en0_w1c {
349 uint64_t u64;
350 struct cvmx_ciu_intx_en0_w1c_s {
351 uint64_t bootdma:1;
352 uint64_t mii:1;
353 uint64_t ipdppthr:1;
354 uint64_t powiq:1;
355 uint64_t twsi2:1;
356 uint64_t reserved_57_58:2;
357 uint64_t usb:1;
358 uint64_t timer:4;
359 uint64_t key_zero:1;
360 uint64_t ipd_drp:1;
361 uint64_t gmx_drp:2;
362 uint64_t trace:1;
363 uint64_t rml:1;
364 uint64_t twsi:1;
365 uint64_t reserved_44_44:1;
366 uint64_t pci_msi:4;
367 uint64_t pci_int:4;
368 uint64_t uart:2;
369 uint64_t mbox:2;
370 uint64_t gpio:16;
371 uint64_t workq:16;
372 } s;
373 struct cvmx_ciu_intx_en0_w1c_cn52xx {
374 uint64_t bootdma:1;
375 uint64_t mii:1;
376 uint64_t ipdppthr:1;
377 uint64_t powiq:1;
378 uint64_t twsi2:1;
379 uint64_t reserved_57_58:2;
380 uint64_t usb:1;
381 uint64_t timer:4;
382 uint64_t reserved_51_51:1;
383 uint64_t ipd_drp:1;
384 uint64_t reserved_49_49:1;
385 uint64_t gmx_drp:1;
386 uint64_t trace:1;
387 uint64_t rml:1;
388 uint64_t twsi:1;
389 uint64_t reserved_44_44:1;
390 uint64_t pci_msi:4;
391 uint64_t pci_int:4;
392 uint64_t uart:2;
393 uint64_t mbox:2;
394 uint64_t gpio:16;
395 uint64_t workq:16;
396 } cn52xx;
397 struct cvmx_ciu_intx_en0_w1c_s cn56xx;
398 struct cvmx_ciu_intx_en0_w1c_cn58xx {
399 uint64_t reserved_56_63:8;
400 uint64_t timer:4;
401 uint64_t key_zero:1;
402 uint64_t ipd_drp:1;
403 uint64_t gmx_drp:2;
404 uint64_t trace:1;
405 uint64_t rml:1;
406 uint64_t twsi:1;
407 uint64_t reserved_44_44:1;
408 uint64_t pci_msi:4;
409 uint64_t pci_int:4;
410 uint64_t uart:2;
411 uint64_t mbox:2;
412 uint64_t gpio:16;
413 uint64_t workq:16;
414 } cn58xx;
415};
416
417union cvmx_ciu_intx_en0_w1s {
418 uint64_t u64;
419 struct cvmx_ciu_intx_en0_w1s_s {
420 uint64_t bootdma:1;
421 uint64_t mii:1;
422 uint64_t ipdppthr:1;
423 uint64_t powiq:1;
424 uint64_t twsi2:1;
425 uint64_t reserved_57_58:2;
426 uint64_t usb:1;
427 uint64_t timer:4;
428 uint64_t key_zero:1;
429 uint64_t ipd_drp:1;
430 uint64_t gmx_drp:2;
431 uint64_t trace:1;
432 uint64_t rml:1;
433 uint64_t twsi:1;
434 uint64_t reserved_44_44:1;
435 uint64_t pci_msi:4;
436 uint64_t pci_int:4;
437 uint64_t uart:2;
438 uint64_t mbox:2;
439 uint64_t gpio:16;
440 uint64_t workq:16;
441 } s;
442 struct cvmx_ciu_intx_en0_w1s_cn52xx {
443 uint64_t bootdma:1;
444 uint64_t mii:1;
445 uint64_t ipdppthr:1;
446 uint64_t powiq:1;
447 uint64_t twsi2:1;
448 uint64_t reserved_57_58:2;
449 uint64_t usb:1;
450 uint64_t timer:4;
451 uint64_t reserved_51_51:1;
452 uint64_t ipd_drp:1;
453 uint64_t reserved_49_49:1;
454 uint64_t gmx_drp:1;
455 uint64_t trace:1;
456 uint64_t rml:1;
457 uint64_t twsi:1;
458 uint64_t reserved_44_44:1;
459 uint64_t pci_msi:4;
460 uint64_t pci_int:4;
461 uint64_t uart:2;
462 uint64_t mbox:2;
463 uint64_t gpio:16;
464 uint64_t workq:16;
465 } cn52xx;
466 struct cvmx_ciu_intx_en0_w1s_s cn56xx;
467 struct cvmx_ciu_intx_en0_w1s_cn58xx {
468 uint64_t reserved_56_63:8;
469 uint64_t timer:4;
470 uint64_t key_zero:1;
471 uint64_t ipd_drp:1;
472 uint64_t gmx_drp:2;
473 uint64_t trace:1;
474 uint64_t rml:1;
475 uint64_t twsi:1;
476 uint64_t reserved_44_44:1;
477 uint64_t pci_msi:4;
478 uint64_t pci_int:4;
479 uint64_t uart:2;
480 uint64_t mbox:2;
481 uint64_t gpio:16;
482 uint64_t workq:16;
483 } cn58xx;
484};
485
486union cvmx_ciu_intx_en1 {
487 uint64_t u64;
488 struct cvmx_ciu_intx_en1_s {
489 uint64_t reserved_20_63:44;
490 uint64_t nand:1;
491 uint64_t mii1:1;
492 uint64_t usb1:1;
493 uint64_t uart2:1;
494 uint64_t wdog:16;
495 } s;
496 struct cvmx_ciu_intx_en1_cn30xx {
497 uint64_t reserved_1_63:63;
498 uint64_t wdog:1;
499 } cn30xx;
500 struct cvmx_ciu_intx_en1_cn31xx {
501 uint64_t reserved_2_63:62;
502 uint64_t wdog:2;
503 } cn31xx;
504 struct cvmx_ciu_intx_en1_cn38xx {
505 uint64_t reserved_16_63:48;
506 uint64_t wdog:16;
507 } cn38xx;
508 struct cvmx_ciu_intx_en1_cn38xx cn38xxp2;
509 struct cvmx_ciu_intx_en1_cn31xx cn50xx;
510 struct cvmx_ciu_intx_en1_cn52xx {
511 uint64_t reserved_20_63:44;
512 uint64_t nand:1;
513 uint64_t mii1:1;
514 uint64_t usb1:1;
515 uint64_t uart2:1;
516 uint64_t reserved_4_15:12;
517 uint64_t wdog:4;
518 } cn52xx;
519 struct cvmx_ciu_intx_en1_cn52xxp1 {
520 uint64_t reserved_19_63:45;
521 uint64_t mii1:1;
522 uint64_t usb1:1;
523 uint64_t uart2:1;
524 uint64_t reserved_4_15:12;
525 uint64_t wdog:4;
526 } cn52xxp1;
527 struct cvmx_ciu_intx_en1_cn56xx {
528 uint64_t reserved_12_63:52;
529 uint64_t wdog:12;
530 } cn56xx;
531 struct cvmx_ciu_intx_en1_cn56xx cn56xxp1;
532 struct cvmx_ciu_intx_en1_cn38xx cn58xx;
533 struct cvmx_ciu_intx_en1_cn38xx cn58xxp1;
534};
535
536union cvmx_ciu_intx_en1_w1c {
537 uint64_t u64;
538 struct cvmx_ciu_intx_en1_w1c_s {
539 uint64_t reserved_20_63:44;
540 uint64_t nand:1;
541 uint64_t mii1:1;
542 uint64_t usb1:1;
543 uint64_t uart2:1;
544 uint64_t wdog:16;
545 } s;
546 struct cvmx_ciu_intx_en1_w1c_cn52xx {
547 uint64_t reserved_20_63:44;
548 uint64_t nand:1;
549 uint64_t mii1:1;
550 uint64_t usb1:1;
551 uint64_t uart2:1;
552 uint64_t reserved_4_15:12;
553 uint64_t wdog:4;
554 } cn52xx;
555 struct cvmx_ciu_intx_en1_w1c_cn56xx {
556 uint64_t reserved_12_63:52;
557 uint64_t wdog:12;
558 } cn56xx;
559 struct cvmx_ciu_intx_en1_w1c_cn58xx {
560 uint64_t reserved_16_63:48;
561 uint64_t wdog:16;
562 } cn58xx;
563};
564
565union cvmx_ciu_intx_en1_w1s {
566 uint64_t u64;
567 struct cvmx_ciu_intx_en1_w1s_s {
568 uint64_t reserved_20_63:44;
569 uint64_t nand:1;
570 uint64_t mii1:1;
571 uint64_t usb1:1;
572 uint64_t uart2:1;
573 uint64_t wdog:16;
574 } s;
575 struct cvmx_ciu_intx_en1_w1s_cn52xx {
576 uint64_t reserved_20_63:44;
577 uint64_t nand:1;
578 uint64_t mii1:1;
579 uint64_t usb1:1;
580 uint64_t uart2:1;
581 uint64_t reserved_4_15:12;
582 uint64_t wdog:4;
583 } cn52xx;
584 struct cvmx_ciu_intx_en1_w1s_cn56xx {
585 uint64_t reserved_12_63:52;
586 uint64_t wdog:12;
587 } cn56xx;
588 struct cvmx_ciu_intx_en1_w1s_cn58xx {
589 uint64_t reserved_16_63:48;
590 uint64_t wdog:16;
591 } cn58xx;
592};
593
594union cvmx_ciu_intx_en4_0 {
595 uint64_t u64;
596 struct cvmx_ciu_intx_en4_0_s {
597 uint64_t bootdma:1;
598 uint64_t mii:1;
599 uint64_t ipdppthr:1;
600 uint64_t powiq:1;
601 uint64_t twsi2:1;
602 uint64_t mpi:1;
603 uint64_t pcm:1;
604 uint64_t usb:1;
605 uint64_t timer:4;
606 uint64_t key_zero:1;
607 uint64_t ipd_drp:1;
608 uint64_t gmx_drp:2;
609 uint64_t trace:1;
610 uint64_t rml:1;
611 uint64_t twsi:1;
612 uint64_t reserved_44_44:1;
613 uint64_t pci_msi:4;
614 uint64_t pci_int:4;
615 uint64_t uart:2;
616 uint64_t mbox:2;
617 uint64_t gpio:16;
618 uint64_t workq:16;
619 } s;
620 struct cvmx_ciu_intx_en4_0_cn50xx {
621 uint64_t reserved_59_63:5;
622 uint64_t mpi:1;
623 uint64_t pcm:1;
624 uint64_t usb:1;
625 uint64_t timer:4;
626 uint64_t reserved_51_51:1;
627 uint64_t ipd_drp:1;
628 uint64_t reserved_49_49:1;
629 uint64_t gmx_drp:1;
630 uint64_t reserved_47_47:1;
631 uint64_t rml:1;
632 uint64_t twsi:1;
633 uint64_t reserved_44_44:1;
634 uint64_t pci_msi:4;
635 uint64_t pci_int:4;
636 uint64_t uart:2;
637 uint64_t mbox:2;
638 uint64_t gpio:16;
639 uint64_t workq:16;
640 } cn50xx;
641 struct cvmx_ciu_intx_en4_0_cn52xx {
642 uint64_t bootdma:1;
643 uint64_t mii:1;
644 uint64_t ipdppthr:1;
645 uint64_t powiq:1;
646 uint64_t twsi2:1;
647 uint64_t reserved_57_58:2;
648 uint64_t usb:1;
649 uint64_t timer:4;
650 uint64_t reserved_51_51:1;
651 uint64_t ipd_drp:1;
652 uint64_t reserved_49_49:1;
653 uint64_t gmx_drp:1;
654 uint64_t trace:1;
655 uint64_t rml:1;
656 uint64_t twsi:1;
657 uint64_t reserved_44_44:1;
658 uint64_t pci_msi:4;
659 uint64_t pci_int:4;
660 uint64_t uart:2;
661 uint64_t mbox:2;
662 uint64_t gpio:16;
663 uint64_t workq:16;
664 } cn52xx;
665 struct cvmx_ciu_intx_en4_0_cn52xx cn52xxp1;
666 struct cvmx_ciu_intx_en4_0_cn56xx {
667 uint64_t bootdma:1;
668 uint64_t mii:1;
669 uint64_t ipdppthr:1;
670 uint64_t powiq:1;
671 uint64_t twsi2:1;
672 uint64_t reserved_57_58:2;
673 uint64_t usb:1;
674 uint64_t timer:4;
675 uint64_t key_zero:1;
676 uint64_t ipd_drp:1;
677 uint64_t gmx_drp:2;
678 uint64_t trace:1;
679 uint64_t rml:1;
680 uint64_t twsi:1;
681 uint64_t reserved_44_44:1;
682 uint64_t pci_msi:4;
683 uint64_t pci_int:4;
684 uint64_t uart:2;
685 uint64_t mbox:2;
686 uint64_t gpio:16;
687 uint64_t workq:16;
688 } cn56xx;
689 struct cvmx_ciu_intx_en4_0_cn56xx cn56xxp1;
690 struct cvmx_ciu_intx_en4_0_cn58xx {
691 uint64_t reserved_56_63:8;
692 uint64_t timer:4;
693 uint64_t key_zero:1;
694 uint64_t ipd_drp:1;
695 uint64_t gmx_drp:2;
696 uint64_t trace:1;
697 uint64_t rml:1;
698 uint64_t twsi:1;
699 uint64_t reserved_44_44:1;
700 uint64_t pci_msi:4;
701 uint64_t pci_int:4;
702 uint64_t uart:2;
703 uint64_t mbox:2;
704 uint64_t gpio:16;
705 uint64_t workq:16;
706 } cn58xx;
707 struct cvmx_ciu_intx_en4_0_cn58xx cn58xxp1;
708};
709
710union cvmx_ciu_intx_en4_0_w1c {
711 uint64_t u64;
712 struct cvmx_ciu_intx_en4_0_w1c_s {
713 uint64_t bootdma:1;
714 uint64_t mii:1;
715 uint64_t ipdppthr:1;
716 uint64_t powiq:1;
717 uint64_t twsi2:1;
718 uint64_t reserved_57_58:2;
719 uint64_t usb:1;
720 uint64_t timer:4;
721 uint64_t key_zero:1;
722 uint64_t ipd_drp:1;
723 uint64_t gmx_drp:2;
724 uint64_t trace:1;
725 uint64_t rml:1;
726 uint64_t twsi:1;
727 uint64_t reserved_44_44:1;
728 uint64_t pci_msi:4;
729 uint64_t pci_int:4;
730 uint64_t uart:2;
731 uint64_t mbox:2;
732 uint64_t gpio:16;
733 uint64_t workq:16;
734 } s;
735 struct cvmx_ciu_intx_en4_0_w1c_cn52xx {
736 uint64_t bootdma:1;
737 uint64_t mii:1;
738 uint64_t ipdppthr:1;
739 uint64_t powiq:1;
740 uint64_t twsi2:1;
741 uint64_t reserved_57_58:2;
742 uint64_t usb:1;
743 uint64_t timer:4;
744 uint64_t reserved_51_51:1;
745 uint64_t ipd_drp:1;
746 uint64_t reserved_49_49:1;
747 uint64_t gmx_drp:1;
748 uint64_t trace:1;
749 uint64_t rml:1;
750 uint64_t twsi:1;
751 uint64_t reserved_44_44:1;
752 uint64_t pci_msi:4;
753 uint64_t pci_int:4;
754 uint64_t uart:2;
755 uint64_t mbox:2;
756 uint64_t gpio:16;
757 uint64_t workq:16;
758 } cn52xx;
759 struct cvmx_ciu_intx_en4_0_w1c_s cn56xx;
760 struct cvmx_ciu_intx_en4_0_w1c_cn58xx {
761 uint64_t reserved_56_63:8;
762 uint64_t timer:4;
763 uint64_t key_zero:1;
764 uint64_t ipd_drp:1;
765 uint64_t gmx_drp:2;
766 uint64_t trace:1;
767 uint64_t rml:1;
768 uint64_t twsi:1;
769 uint64_t reserved_44_44:1;
770 uint64_t pci_msi:4;
771 uint64_t pci_int:4;
772 uint64_t uart:2;
773 uint64_t mbox:2;
774 uint64_t gpio:16;
775 uint64_t workq:16;
776 } cn58xx;
777};
778
779union cvmx_ciu_intx_en4_0_w1s {
780 uint64_t u64;
781 struct cvmx_ciu_intx_en4_0_w1s_s {
782 uint64_t bootdma:1;
783 uint64_t mii:1;
784 uint64_t ipdppthr:1;
785 uint64_t powiq:1;
786 uint64_t twsi2:1;
787 uint64_t reserved_57_58:2;
788 uint64_t usb:1;
789 uint64_t timer:4;
790 uint64_t key_zero:1;
791 uint64_t ipd_drp:1;
792 uint64_t gmx_drp:2;
793 uint64_t trace:1;
794 uint64_t rml:1;
795 uint64_t twsi:1;
796 uint64_t reserved_44_44:1;
797 uint64_t pci_msi:4;
798 uint64_t pci_int:4;
799 uint64_t uart:2;
800 uint64_t mbox:2;
801 uint64_t gpio:16;
802 uint64_t workq:16;
803 } s;
804 struct cvmx_ciu_intx_en4_0_w1s_cn52xx {
805 uint64_t bootdma:1;
806 uint64_t mii:1;
807 uint64_t ipdppthr:1;
808 uint64_t powiq:1;
809 uint64_t twsi2:1;
810 uint64_t reserved_57_58:2;
811 uint64_t usb:1;
812 uint64_t timer:4;
813 uint64_t reserved_51_51:1;
814 uint64_t ipd_drp:1;
815 uint64_t reserved_49_49:1;
816 uint64_t gmx_drp:1;
817 uint64_t trace:1;
818 uint64_t rml:1;
819 uint64_t twsi:1;
820 uint64_t reserved_44_44:1;
821 uint64_t pci_msi:4;
822 uint64_t pci_int:4;
823 uint64_t uart:2;
824 uint64_t mbox:2;
825 uint64_t gpio:16;
826 uint64_t workq:16;
827 } cn52xx;
828 struct cvmx_ciu_intx_en4_0_w1s_s cn56xx;
829 struct cvmx_ciu_intx_en4_0_w1s_cn58xx {
830 uint64_t reserved_56_63:8;
831 uint64_t timer:4;
832 uint64_t key_zero:1;
833 uint64_t ipd_drp:1;
834 uint64_t gmx_drp:2;
835 uint64_t trace:1;
836 uint64_t rml:1;
837 uint64_t twsi:1;
838 uint64_t reserved_44_44:1;
839 uint64_t pci_msi:4;
840 uint64_t pci_int:4;
841 uint64_t uart:2;
842 uint64_t mbox:2;
843 uint64_t gpio:16;
844 uint64_t workq:16;
845 } cn58xx;
846};
847
848union cvmx_ciu_intx_en4_1 {
849 uint64_t u64;
850 struct cvmx_ciu_intx_en4_1_s {
851 uint64_t reserved_20_63:44;
852 uint64_t nand:1;
853 uint64_t mii1:1;
854 uint64_t usb1:1;
855 uint64_t uart2:1;
856 uint64_t wdog:16;
857 } s;
858 struct cvmx_ciu_intx_en4_1_cn50xx {
859 uint64_t reserved_2_63:62;
860 uint64_t wdog:2;
861 } cn50xx;
862 struct cvmx_ciu_intx_en4_1_cn52xx {
863 uint64_t reserved_20_63:44;
864 uint64_t nand:1;
865 uint64_t mii1:1;
866 uint64_t usb1:1;
867 uint64_t uart2:1;
868 uint64_t reserved_4_15:12;
869 uint64_t wdog:4;
870 } cn52xx;
871 struct cvmx_ciu_intx_en4_1_cn52xxp1 {
872 uint64_t reserved_19_63:45;
873 uint64_t mii1:1;
874 uint64_t usb1:1;
875 uint64_t uart2:1;
876 uint64_t reserved_4_15:12;
877 uint64_t wdog:4;
878 } cn52xxp1;
879 struct cvmx_ciu_intx_en4_1_cn56xx {
880 uint64_t reserved_12_63:52;
881 uint64_t wdog:12;
882 } cn56xx;
883 struct cvmx_ciu_intx_en4_1_cn56xx cn56xxp1;
884 struct cvmx_ciu_intx_en4_1_cn58xx {
885 uint64_t reserved_16_63:48;
886 uint64_t wdog:16;
887 } cn58xx;
888 struct cvmx_ciu_intx_en4_1_cn58xx cn58xxp1;
889};
890
891union cvmx_ciu_intx_en4_1_w1c {
892 uint64_t u64;
893 struct cvmx_ciu_intx_en4_1_w1c_s {
894 uint64_t reserved_20_63:44;
895 uint64_t nand:1;
896 uint64_t mii1:1;
897 uint64_t usb1:1;
898 uint64_t uart2:1;
899 uint64_t wdog:16;
900 } s;
901 struct cvmx_ciu_intx_en4_1_w1c_cn52xx {
902 uint64_t reserved_20_63:44;
903 uint64_t nand:1;
904 uint64_t mii1:1;
905 uint64_t usb1:1;
906 uint64_t uart2:1;
907 uint64_t reserved_4_15:12;
908 uint64_t wdog:4;
909 } cn52xx;
910 struct cvmx_ciu_intx_en4_1_w1c_cn56xx {
911 uint64_t reserved_12_63:52;
912 uint64_t wdog:12;
913 } cn56xx;
914 struct cvmx_ciu_intx_en4_1_w1c_cn58xx {
915 uint64_t reserved_16_63:48;
916 uint64_t wdog:16;
917 } cn58xx;
918};
919
920union cvmx_ciu_intx_en4_1_w1s {
921 uint64_t u64;
922 struct cvmx_ciu_intx_en4_1_w1s_s {
923 uint64_t reserved_20_63:44;
924 uint64_t nand:1;
925 uint64_t mii1:1;
926 uint64_t usb1:1;
927 uint64_t uart2:1;
928 uint64_t wdog:16;
929 } s;
930 struct cvmx_ciu_intx_en4_1_w1s_cn52xx {
931 uint64_t reserved_20_63:44;
932 uint64_t nand:1;
933 uint64_t mii1:1;
934 uint64_t usb1:1;
935 uint64_t uart2:1;
936 uint64_t reserved_4_15:12;
937 uint64_t wdog:4;
938 } cn52xx;
939 struct cvmx_ciu_intx_en4_1_w1s_cn56xx {
940 uint64_t reserved_12_63:52;
941 uint64_t wdog:12;
942 } cn56xx;
943 struct cvmx_ciu_intx_en4_1_w1s_cn58xx {
944 uint64_t reserved_16_63:48;
945 uint64_t wdog:16;
946 } cn58xx;
947};
948
949union cvmx_ciu_intx_sum0 {
950 uint64_t u64;
951 struct cvmx_ciu_intx_sum0_s {
952 uint64_t bootdma:1;
953 uint64_t mii:1;
954 uint64_t ipdppthr:1;
955 uint64_t powiq:1;
956 uint64_t twsi2:1;
957 uint64_t mpi:1;
958 uint64_t pcm:1;
959 uint64_t usb:1;
960 uint64_t timer:4;
961 uint64_t key_zero:1;
962 uint64_t ipd_drp:1;
963 uint64_t gmx_drp:2;
964 uint64_t trace:1;
965 uint64_t rml:1;
966 uint64_t twsi:1;
967 uint64_t wdog_sum:1;
968 uint64_t pci_msi:4;
969 uint64_t pci_int:4;
970 uint64_t uart:2;
971 uint64_t mbox:2;
972 uint64_t gpio:16;
973 uint64_t workq:16;
974 } s;
975 struct cvmx_ciu_intx_sum0_cn30xx {
976 uint64_t reserved_59_63:5;
977 uint64_t mpi:1;
978 uint64_t pcm:1;
979 uint64_t usb:1;
980 uint64_t timer:4;
981 uint64_t reserved_51_51:1;
982 uint64_t ipd_drp:1;
983 uint64_t reserved_49_49:1;
984 uint64_t gmx_drp:1;
985 uint64_t reserved_47_47:1;
986 uint64_t rml:1;
987 uint64_t twsi:1;
988 uint64_t wdog_sum:1;
989 uint64_t pci_msi:4;
990 uint64_t pci_int:4;
991 uint64_t uart:2;
992 uint64_t mbox:2;
993 uint64_t gpio:16;
994 uint64_t workq:16;
995 } cn30xx;
996 struct cvmx_ciu_intx_sum0_cn31xx {
997 uint64_t reserved_59_63:5;
998 uint64_t mpi:1;
999 uint64_t pcm:1;
1000 uint64_t usb:1;
1001 uint64_t timer:4;
1002 uint64_t reserved_51_51:1;
1003 uint64_t ipd_drp:1;
1004 uint64_t reserved_49_49:1;
1005 uint64_t gmx_drp:1;
1006 uint64_t trace:1;
1007 uint64_t rml:1;
1008 uint64_t twsi:1;
1009 uint64_t wdog_sum:1;
1010 uint64_t pci_msi:4;
1011 uint64_t pci_int:4;
1012 uint64_t uart:2;
1013 uint64_t mbox:2;
1014 uint64_t gpio:16;
1015 uint64_t workq:16;
1016 } cn31xx;
1017 struct cvmx_ciu_intx_sum0_cn38xx {
1018 uint64_t reserved_56_63:8;
1019 uint64_t timer:4;
1020 uint64_t key_zero:1;
1021 uint64_t ipd_drp:1;
1022 uint64_t gmx_drp:2;
1023 uint64_t trace:1;
1024 uint64_t rml:1;
1025 uint64_t twsi:1;
1026 uint64_t wdog_sum:1;
1027 uint64_t pci_msi:4;
1028 uint64_t pci_int:4;
1029 uint64_t uart:2;
1030 uint64_t mbox:2;
1031 uint64_t gpio:16;
1032 uint64_t workq:16;
1033 } cn38xx;
1034 struct cvmx_ciu_intx_sum0_cn38xx cn38xxp2;
1035 struct cvmx_ciu_intx_sum0_cn30xx cn50xx;
1036 struct cvmx_ciu_intx_sum0_cn52xx {
1037 uint64_t bootdma:1;
1038 uint64_t mii:1;
1039 uint64_t ipdppthr:1;
1040 uint64_t powiq:1;
1041 uint64_t twsi2:1;
1042 uint64_t reserved_57_58:2;
1043 uint64_t usb:1;
1044 uint64_t timer:4;
1045 uint64_t reserved_51_51:1;
1046 uint64_t ipd_drp:1;
1047 uint64_t reserved_49_49:1;
1048 uint64_t gmx_drp:1;
1049 uint64_t trace:1;
1050 uint64_t rml:1;
1051 uint64_t twsi:1;
1052 uint64_t wdog_sum:1;
1053 uint64_t pci_msi:4;
1054 uint64_t pci_int:4;
1055 uint64_t uart:2;
1056 uint64_t mbox:2;
1057 uint64_t gpio:16;
1058 uint64_t workq:16;
1059 } cn52xx;
1060 struct cvmx_ciu_intx_sum0_cn52xx cn52xxp1;
1061 struct cvmx_ciu_intx_sum0_cn56xx {
1062 uint64_t bootdma:1;
1063 uint64_t mii:1;
1064 uint64_t ipdppthr:1;
1065 uint64_t powiq:1;
1066 uint64_t twsi2:1;
1067 uint64_t reserved_57_58:2;
1068 uint64_t usb:1;
1069 uint64_t timer:4;
1070 uint64_t key_zero:1;
1071 uint64_t ipd_drp:1;
1072 uint64_t gmx_drp:2;
1073 uint64_t trace:1;
1074 uint64_t rml:1;
1075 uint64_t twsi:1;
1076 uint64_t wdog_sum:1;
1077 uint64_t pci_msi:4;
1078 uint64_t pci_int:4;
1079 uint64_t uart:2;
1080 uint64_t mbox:2;
1081 uint64_t gpio:16;
1082 uint64_t workq:16;
1083 } cn56xx;
1084 struct cvmx_ciu_intx_sum0_cn56xx cn56xxp1;
1085 struct cvmx_ciu_intx_sum0_cn38xx cn58xx;
1086 struct cvmx_ciu_intx_sum0_cn38xx cn58xxp1;
1087};
1088
1089union cvmx_ciu_intx_sum4 {
1090 uint64_t u64;
1091 struct cvmx_ciu_intx_sum4_s {
1092 uint64_t bootdma:1;
1093 uint64_t mii:1;
1094 uint64_t ipdppthr:1;
1095 uint64_t powiq:1;
1096 uint64_t twsi2:1;
1097 uint64_t mpi:1;
1098 uint64_t pcm:1;
1099 uint64_t usb:1;
1100 uint64_t timer:4;
1101 uint64_t key_zero:1;
1102 uint64_t ipd_drp:1;
1103 uint64_t gmx_drp:2;
1104 uint64_t trace:1;
1105 uint64_t rml:1;
1106 uint64_t twsi:1;
1107 uint64_t wdog_sum:1;
1108 uint64_t pci_msi:4;
1109 uint64_t pci_int:4;
1110 uint64_t uart:2;
1111 uint64_t mbox:2;
1112 uint64_t gpio:16;
1113 uint64_t workq:16;
1114 } s;
1115 struct cvmx_ciu_intx_sum4_cn50xx {
1116 uint64_t reserved_59_63:5;
1117 uint64_t mpi:1;
1118 uint64_t pcm:1;
1119 uint64_t usb:1;
1120 uint64_t timer:4;
1121 uint64_t reserved_51_51:1;
1122 uint64_t ipd_drp:1;
1123 uint64_t reserved_49_49:1;
1124 uint64_t gmx_drp:1;
1125 uint64_t reserved_47_47:1;
1126 uint64_t rml:1;
1127 uint64_t twsi:1;
1128 uint64_t wdog_sum:1;
1129 uint64_t pci_msi:4;
1130 uint64_t pci_int:4;
1131 uint64_t uart:2;
1132 uint64_t mbox:2;
1133 uint64_t gpio:16;
1134 uint64_t workq:16;
1135 } cn50xx;
1136 struct cvmx_ciu_intx_sum4_cn52xx {
1137 uint64_t bootdma:1;
1138 uint64_t mii:1;
1139 uint64_t ipdppthr:1;
1140 uint64_t powiq:1;
1141 uint64_t twsi2:1;
1142 uint64_t reserved_57_58:2;
1143 uint64_t usb:1;
1144 uint64_t timer:4;
1145 uint64_t reserved_51_51:1;
1146 uint64_t ipd_drp:1;
1147 uint64_t reserved_49_49:1;
1148 uint64_t gmx_drp:1;
1149 uint64_t trace:1;
1150 uint64_t rml:1;
1151 uint64_t twsi:1;
1152 uint64_t wdog_sum:1;
1153 uint64_t pci_msi:4;
1154 uint64_t pci_int:4;
1155 uint64_t uart:2;
1156 uint64_t mbox:2;
1157 uint64_t gpio:16;
1158 uint64_t workq:16;
1159 } cn52xx;
1160 struct cvmx_ciu_intx_sum4_cn52xx cn52xxp1;
1161 struct cvmx_ciu_intx_sum4_cn56xx {
1162 uint64_t bootdma:1;
1163 uint64_t mii:1;
1164 uint64_t ipdppthr:1;
1165 uint64_t powiq:1;
1166 uint64_t twsi2:1;
1167 uint64_t reserved_57_58:2;
1168 uint64_t usb:1;
1169 uint64_t timer:4;
1170 uint64_t key_zero:1;
1171 uint64_t ipd_drp:1;
1172 uint64_t gmx_drp:2;
1173 uint64_t trace:1;
1174 uint64_t rml:1;
1175 uint64_t twsi:1;
1176 uint64_t wdog_sum:1;
1177 uint64_t pci_msi:4;
1178 uint64_t pci_int:4;
1179 uint64_t uart:2;
1180 uint64_t mbox:2;
1181 uint64_t gpio:16;
1182 uint64_t workq:16;
1183 } cn56xx;
1184 struct cvmx_ciu_intx_sum4_cn56xx cn56xxp1;
1185 struct cvmx_ciu_intx_sum4_cn58xx {
1186 uint64_t reserved_56_63:8;
1187 uint64_t timer:4;
1188 uint64_t key_zero:1;
1189 uint64_t ipd_drp:1;
1190 uint64_t gmx_drp:2;
1191 uint64_t trace:1;
1192 uint64_t rml:1;
1193 uint64_t twsi:1;
1194 uint64_t wdog_sum:1;
1195 uint64_t pci_msi:4;
1196 uint64_t pci_int:4;
1197 uint64_t uart:2;
1198 uint64_t mbox:2;
1199 uint64_t gpio:16;
1200 uint64_t workq:16;
1201 } cn58xx;
1202 struct cvmx_ciu_intx_sum4_cn58xx cn58xxp1;
1203};
1204
1205union cvmx_ciu_int_sum1 {
1206 uint64_t u64;
1207 struct cvmx_ciu_int_sum1_s {
1208 uint64_t reserved_20_63:44;
1209 uint64_t nand:1;
1210 uint64_t mii1:1;
1211 uint64_t usb1:1;
1212 uint64_t uart2:1;
1213 uint64_t wdog:16;
1214 } s;
1215 struct cvmx_ciu_int_sum1_cn30xx {
1216 uint64_t reserved_1_63:63;
1217 uint64_t wdog:1;
1218 } cn30xx;
1219 struct cvmx_ciu_int_sum1_cn31xx {
1220 uint64_t reserved_2_63:62;
1221 uint64_t wdog:2;
1222 } cn31xx;
1223 struct cvmx_ciu_int_sum1_cn38xx {
1224 uint64_t reserved_16_63:48;
1225 uint64_t wdog:16;
1226 } cn38xx;
1227 struct cvmx_ciu_int_sum1_cn38xx cn38xxp2;
1228 struct cvmx_ciu_int_sum1_cn31xx cn50xx;
1229 struct cvmx_ciu_int_sum1_cn52xx {
1230 uint64_t reserved_20_63:44;
1231 uint64_t nand:1;
1232 uint64_t mii1:1;
1233 uint64_t usb1:1;
1234 uint64_t uart2:1;
1235 uint64_t reserved_4_15:12;
1236 uint64_t wdog:4;
1237 } cn52xx;
1238 struct cvmx_ciu_int_sum1_cn52xxp1 {
1239 uint64_t reserved_19_63:45;
1240 uint64_t mii1:1;
1241 uint64_t usb1:1;
1242 uint64_t uart2:1;
1243 uint64_t reserved_4_15:12;
1244 uint64_t wdog:4;
1245 } cn52xxp1;
1246 struct cvmx_ciu_int_sum1_cn56xx {
1247 uint64_t reserved_12_63:52;
1248 uint64_t wdog:12;
1249 } cn56xx;
1250 struct cvmx_ciu_int_sum1_cn56xx cn56xxp1;
1251 struct cvmx_ciu_int_sum1_cn38xx cn58xx;
1252 struct cvmx_ciu_int_sum1_cn38xx cn58xxp1;
1253};
1254
1255union cvmx_ciu_mbox_clrx {
1256 uint64_t u64;
1257 struct cvmx_ciu_mbox_clrx_s {
1258 uint64_t reserved_32_63:32;
1259 uint64_t bits:32;
1260 } s;
1261 struct cvmx_ciu_mbox_clrx_s cn30xx;
1262 struct cvmx_ciu_mbox_clrx_s cn31xx;
1263 struct cvmx_ciu_mbox_clrx_s cn38xx;
1264 struct cvmx_ciu_mbox_clrx_s cn38xxp2;
1265 struct cvmx_ciu_mbox_clrx_s cn50xx;
1266 struct cvmx_ciu_mbox_clrx_s cn52xx;
1267 struct cvmx_ciu_mbox_clrx_s cn52xxp1;
1268 struct cvmx_ciu_mbox_clrx_s cn56xx;
1269 struct cvmx_ciu_mbox_clrx_s cn56xxp1;
1270 struct cvmx_ciu_mbox_clrx_s cn58xx;
1271 struct cvmx_ciu_mbox_clrx_s cn58xxp1;
1272};
1273
1274union cvmx_ciu_mbox_setx {
1275 uint64_t u64;
1276 struct cvmx_ciu_mbox_setx_s {
1277 uint64_t reserved_32_63:32;
1278 uint64_t bits:32;
1279 } s;
1280 struct cvmx_ciu_mbox_setx_s cn30xx;
1281 struct cvmx_ciu_mbox_setx_s cn31xx;
1282 struct cvmx_ciu_mbox_setx_s cn38xx;
1283 struct cvmx_ciu_mbox_setx_s cn38xxp2;
1284 struct cvmx_ciu_mbox_setx_s cn50xx;
1285 struct cvmx_ciu_mbox_setx_s cn52xx;
1286 struct cvmx_ciu_mbox_setx_s cn52xxp1;
1287 struct cvmx_ciu_mbox_setx_s cn56xx;
1288 struct cvmx_ciu_mbox_setx_s cn56xxp1;
1289 struct cvmx_ciu_mbox_setx_s cn58xx;
1290 struct cvmx_ciu_mbox_setx_s cn58xxp1;
1291};
1292
1293union cvmx_ciu_nmi {
1294 uint64_t u64;
1295 struct cvmx_ciu_nmi_s {
1296 uint64_t reserved_16_63:48;
1297 uint64_t nmi:16;
1298 } s;
1299 struct cvmx_ciu_nmi_cn30xx {
1300 uint64_t reserved_1_63:63;
1301 uint64_t nmi:1;
1302 } cn30xx;
1303 struct cvmx_ciu_nmi_cn31xx {
1304 uint64_t reserved_2_63:62;
1305 uint64_t nmi:2;
1306 } cn31xx;
1307 struct cvmx_ciu_nmi_s cn38xx;
1308 struct cvmx_ciu_nmi_s cn38xxp2;
1309 struct cvmx_ciu_nmi_cn31xx cn50xx;
1310 struct cvmx_ciu_nmi_cn52xx {
1311 uint64_t reserved_4_63:60;
1312 uint64_t nmi:4;
1313 } cn52xx;
1314 struct cvmx_ciu_nmi_cn52xx cn52xxp1;
1315 struct cvmx_ciu_nmi_cn56xx {
1316 uint64_t reserved_12_63:52;
1317 uint64_t nmi:12;
1318 } cn56xx;
1319 struct cvmx_ciu_nmi_cn56xx cn56xxp1;
1320 struct cvmx_ciu_nmi_s cn58xx;
1321 struct cvmx_ciu_nmi_s cn58xxp1;
1322};
1323
1324union cvmx_ciu_pci_inta {
1325 uint64_t u64;
1326 struct cvmx_ciu_pci_inta_s {
1327 uint64_t reserved_2_63:62;
1328 uint64_t intr:2;
1329 } s;
1330 struct cvmx_ciu_pci_inta_s cn30xx;
1331 struct cvmx_ciu_pci_inta_s cn31xx;
1332 struct cvmx_ciu_pci_inta_s cn38xx;
1333 struct cvmx_ciu_pci_inta_s cn38xxp2;
1334 struct cvmx_ciu_pci_inta_s cn50xx;
1335 struct cvmx_ciu_pci_inta_s cn52xx;
1336 struct cvmx_ciu_pci_inta_s cn52xxp1;
1337 struct cvmx_ciu_pci_inta_s cn56xx;
1338 struct cvmx_ciu_pci_inta_s cn56xxp1;
1339 struct cvmx_ciu_pci_inta_s cn58xx;
1340 struct cvmx_ciu_pci_inta_s cn58xxp1;
1341};
1342
1343union cvmx_ciu_pp_dbg {
1344 uint64_t u64;
1345 struct cvmx_ciu_pp_dbg_s {
1346 uint64_t reserved_16_63:48;
1347 uint64_t ppdbg:16;
1348 } s;
1349 struct cvmx_ciu_pp_dbg_cn30xx {
1350 uint64_t reserved_1_63:63;
1351 uint64_t ppdbg:1;
1352 } cn30xx;
1353 struct cvmx_ciu_pp_dbg_cn31xx {
1354 uint64_t reserved_2_63:62;
1355 uint64_t ppdbg:2;
1356 } cn31xx;
1357 struct cvmx_ciu_pp_dbg_s cn38xx;
1358 struct cvmx_ciu_pp_dbg_s cn38xxp2;
1359 struct cvmx_ciu_pp_dbg_cn31xx cn50xx;
1360 struct cvmx_ciu_pp_dbg_cn52xx {
1361 uint64_t reserved_4_63:60;
1362 uint64_t ppdbg:4;
1363 } cn52xx;
1364 struct cvmx_ciu_pp_dbg_cn52xx cn52xxp1;
1365 struct cvmx_ciu_pp_dbg_cn56xx {
1366 uint64_t reserved_12_63:52;
1367 uint64_t ppdbg:12;
1368 } cn56xx;
1369 struct cvmx_ciu_pp_dbg_cn56xx cn56xxp1;
1370 struct cvmx_ciu_pp_dbg_s cn58xx;
1371 struct cvmx_ciu_pp_dbg_s cn58xxp1;
1372};
1373
1374union cvmx_ciu_pp_pokex {
1375 uint64_t u64;
1376 struct cvmx_ciu_pp_pokex_s {
1377 uint64_t reserved_0_63:64;
1378 } s;
1379 struct cvmx_ciu_pp_pokex_s cn30xx;
1380 struct cvmx_ciu_pp_pokex_s cn31xx;
1381 struct cvmx_ciu_pp_pokex_s cn38xx;
1382 struct cvmx_ciu_pp_pokex_s cn38xxp2;
1383 struct cvmx_ciu_pp_pokex_s cn50xx;
1384 struct cvmx_ciu_pp_pokex_s cn52xx;
1385 struct cvmx_ciu_pp_pokex_s cn52xxp1;
1386 struct cvmx_ciu_pp_pokex_s cn56xx;
1387 struct cvmx_ciu_pp_pokex_s cn56xxp1;
1388 struct cvmx_ciu_pp_pokex_s cn58xx;
1389 struct cvmx_ciu_pp_pokex_s cn58xxp1;
1390};
1391
1392union cvmx_ciu_pp_rst {
1393 uint64_t u64;
1394 struct cvmx_ciu_pp_rst_s {
1395 uint64_t reserved_16_63:48;
1396 uint64_t rst:15;
1397 uint64_t rst0:1;
1398 } s;
1399 struct cvmx_ciu_pp_rst_cn30xx {
1400 uint64_t reserved_1_63:63;
1401 uint64_t rst0:1;
1402 } cn30xx;
1403 struct cvmx_ciu_pp_rst_cn31xx {
1404 uint64_t reserved_2_63:62;
1405 uint64_t rst:1;
1406 uint64_t rst0:1;
1407 } cn31xx;
1408 struct cvmx_ciu_pp_rst_s cn38xx;
1409 struct cvmx_ciu_pp_rst_s cn38xxp2;
1410 struct cvmx_ciu_pp_rst_cn31xx cn50xx;
1411 struct cvmx_ciu_pp_rst_cn52xx {
1412 uint64_t reserved_4_63:60;
1413 uint64_t rst:3;
1414 uint64_t rst0:1;
1415 } cn52xx;
1416 struct cvmx_ciu_pp_rst_cn52xx cn52xxp1;
1417 struct cvmx_ciu_pp_rst_cn56xx {
1418 uint64_t reserved_12_63:52;
1419 uint64_t rst:11;
1420 uint64_t rst0:1;
1421 } cn56xx;
1422 struct cvmx_ciu_pp_rst_cn56xx cn56xxp1;
1423 struct cvmx_ciu_pp_rst_s cn58xx;
1424 struct cvmx_ciu_pp_rst_s cn58xxp1;
1425};
1426
1427union cvmx_ciu_qlm_dcok {
1428 uint64_t u64;
1429 struct cvmx_ciu_qlm_dcok_s {
1430 uint64_t reserved_4_63:60;
1431 uint64_t qlm_dcok:4;
1432 } s;
1433 struct cvmx_ciu_qlm_dcok_cn52xx {
1434 uint64_t reserved_2_63:62;
1435 uint64_t qlm_dcok:2;
1436 } cn52xx;
1437 struct cvmx_ciu_qlm_dcok_cn52xx cn52xxp1;
1438 struct cvmx_ciu_qlm_dcok_s cn56xx;
1439 struct cvmx_ciu_qlm_dcok_s cn56xxp1;
1440};
1441
1442union cvmx_ciu_qlm_jtgc {
1443 uint64_t u64;
1444 struct cvmx_ciu_qlm_jtgc_s {
1445 uint64_t reserved_11_63:53;
1446 uint64_t clk_div:3;
1447 uint64_t reserved_6_7:2;
1448 uint64_t mux_sel:2;
1449 uint64_t bypass:4;
1450 } s;
1451 struct cvmx_ciu_qlm_jtgc_cn52xx {
1452 uint64_t reserved_11_63:53;
1453 uint64_t clk_div:3;
1454 uint64_t reserved_5_7:3;
1455 uint64_t mux_sel:1;
1456 uint64_t reserved_2_3:2;
1457 uint64_t bypass:2;
1458 } cn52xx;
1459 struct cvmx_ciu_qlm_jtgc_cn52xx cn52xxp1;
1460 struct cvmx_ciu_qlm_jtgc_s cn56xx;
1461 struct cvmx_ciu_qlm_jtgc_s cn56xxp1;
1462};
1463
1464union cvmx_ciu_qlm_jtgd {
1465 uint64_t u64;
1466 struct cvmx_ciu_qlm_jtgd_s {
1467 uint64_t capture:1;
1468 uint64_t shift:1;
1469 uint64_t update:1;
1470 uint64_t reserved_44_60:17;
1471 uint64_t select:4;
1472 uint64_t reserved_37_39:3;
1473 uint64_t shft_cnt:5;
1474 uint64_t shft_reg:32;
1475 } s;
1476 struct cvmx_ciu_qlm_jtgd_cn52xx {
1477 uint64_t capture:1;
1478 uint64_t shift:1;
1479 uint64_t update:1;
1480 uint64_t reserved_42_60:19;
1481 uint64_t select:2;
1482 uint64_t reserved_37_39:3;
1483 uint64_t shft_cnt:5;
1484 uint64_t shft_reg:32;
1485 } cn52xx;
1486 struct cvmx_ciu_qlm_jtgd_cn52xx cn52xxp1;
1487 struct cvmx_ciu_qlm_jtgd_s cn56xx;
1488 struct cvmx_ciu_qlm_jtgd_cn56xxp1 {
1489 uint64_t capture:1;
1490 uint64_t shift:1;
1491 uint64_t update:1;
1492 uint64_t reserved_37_60:24;
1493 uint64_t shft_cnt:5;
1494 uint64_t shft_reg:32;
1495 } cn56xxp1;
1496};
1497
1498union cvmx_ciu_soft_bist {
1499 uint64_t u64;
1500 struct cvmx_ciu_soft_bist_s {
1501 uint64_t reserved_1_63:63;
1502 uint64_t soft_bist:1;
1503 } s;
1504 struct cvmx_ciu_soft_bist_s cn30xx;
1505 struct cvmx_ciu_soft_bist_s cn31xx;
1506 struct cvmx_ciu_soft_bist_s cn38xx;
1507 struct cvmx_ciu_soft_bist_s cn38xxp2;
1508 struct cvmx_ciu_soft_bist_s cn50xx;
1509 struct cvmx_ciu_soft_bist_s cn52xx;
1510 struct cvmx_ciu_soft_bist_s cn52xxp1;
1511 struct cvmx_ciu_soft_bist_s cn56xx;
1512 struct cvmx_ciu_soft_bist_s cn56xxp1;
1513 struct cvmx_ciu_soft_bist_s cn58xx;
1514 struct cvmx_ciu_soft_bist_s cn58xxp1;
1515};
1516
1517union cvmx_ciu_soft_prst {
1518 uint64_t u64;
1519 struct cvmx_ciu_soft_prst_s {
1520 uint64_t reserved_3_63:61;
1521 uint64_t host64:1;
1522 uint64_t npi:1;
1523 uint64_t soft_prst:1;
1524 } s;
1525 struct cvmx_ciu_soft_prst_s cn30xx;
1526 struct cvmx_ciu_soft_prst_s cn31xx;
1527 struct cvmx_ciu_soft_prst_s cn38xx;
1528 struct cvmx_ciu_soft_prst_s cn38xxp2;
1529 struct cvmx_ciu_soft_prst_s cn50xx;
1530 struct cvmx_ciu_soft_prst_cn52xx {
1531 uint64_t reserved_1_63:63;
1532 uint64_t soft_prst:1;
1533 } cn52xx;
1534 struct cvmx_ciu_soft_prst_cn52xx cn52xxp1;
1535 struct cvmx_ciu_soft_prst_cn52xx cn56xx;
1536 struct cvmx_ciu_soft_prst_cn52xx cn56xxp1;
1537 struct cvmx_ciu_soft_prst_s cn58xx;
1538 struct cvmx_ciu_soft_prst_s cn58xxp1;
1539};
1540
1541union cvmx_ciu_soft_prst1 {
1542 uint64_t u64;
1543 struct cvmx_ciu_soft_prst1_s {
1544 uint64_t reserved_1_63:63;
1545 uint64_t soft_prst:1;
1546 } s;
1547 struct cvmx_ciu_soft_prst1_s cn52xx;
1548 struct cvmx_ciu_soft_prst1_s cn52xxp1;
1549 struct cvmx_ciu_soft_prst1_s cn56xx;
1550 struct cvmx_ciu_soft_prst1_s cn56xxp1;
1551};
1552
1553union cvmx_ciu_soft_rst {
1554 uint64_t u64;
1555 struct cvmx_ciu_soft_rst_s {
1556 uint64_t reserved_1_63:63;
1557 uint64_t soft_rst:1;
1558 } s;
1559 struct cvmx_ciu_soft_rst_s cn30xx;
1560 struct cvmx_ciu_soft_rst_s cn31xx;
1561 struct cvmx_ciu_soft_rst_s cn38xx;
1562 struct cvmx_ciu_soft_rst_s cn38xxp2;
1563 struct cvmx_ciu_soft_rst_s cn50xx;
1564 struct cvmx_ciu_soft_rst_s cn52xx;
1565 struct cvmx_ciu_soft_rst_s cn52xxp1;
1566 struct cvmx_ciu_soft_rst_s cn56xx;
1567 struct cvmx_ciu_soft_rst_s cn56xxp1;
1568 struct cvmx_ciu_soft_rst_s cn58xx;
1569 struct cvmx_ciu_soft_rst_s cn58xxp1;
1570};
1571
1572union cvmx_ciu_timx {
1573 uint64_t u64;
1574 struct cvmx_ciu_timx_s {
1575 uint64_t reserved_37_63:27;
1576 uint64_t one_shot:1;
1577 uint64_t len:36;
1578 } s;
1579 struct cvmx_ciu_timx_s cn30xx;
1580 struct cvmx_ciu_timx_s cn31xx;
1581 struct cvmx_ciu_timx_s cn38xx;
1582 struct cvmx_ciu_timx_s cn38xxp2;
1583 struct cvmx_ciu_timx_s cn50xx;
1584 struct cvmx_ciu_timx_s cn52xx;
1585 struct cvmx_ciu_timx_s cn52xxp1;
1586 struct cvmx_ciu_timx_s cn56xx;
1587 struct cvmx_ciu_timx_s cn56xxp1;
1588 struct cvmx_ciu_timx_s cn58xx;
1589 struct cvmx_ciu_timx_s cn58xxp1;
1590};
1591
1592union cvmx_ciu_wdogx {
1593 uint64_t u64;
1594 struct cvmx_ciu_wdogx_s {
1595 uint64_t reserved_46_63:18;
1596 uint64_t gstopen:1;
1597 uint64_t dstop:1;
1598 uint64_t cnt:24;
1599 uint64_t len:16;
1600 uint64_t state:2;
1601 uint64_t mode:2;
1602 } s;
1603 struct cvmx_ciu_wdogx_s cn30xx;
1604 struct cvmx_ciu_wdogx_s cn31xx;
1605 struct cvmx_ciu_wdogx_s cn38xx;
1606 struct cvmx_ciu_wdogx_s cn38xxp2;
1607 struct cvmx_ciu_wdogx_s cn50xx;
1608 struct cvmx_ciu_wdogx_s cn52xx;
1609 struct cvmx_ciu_wdogx_s cn52xxp1;
1610 struct cvmx_ciu_wdogx_s cn56xx;
1611 struct cvmx_ciu_wdogx_s cn56xxp1;
1612 struct cvmx_ciu_wdogx_s cn58xx;
1613 struct cvmx_ciu_wdogx_s cn58xxp1;
1614};
1615
1616#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-gpio-defs.h b/arch/mips/include/asm/octeon/cvmx-gpio-defs.h
new file mode 100644
index 000000000000..5fdd6ba48a05
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-gpio-defs.h
@@ -0,0 +1,219 @@
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_GPIO_DEFS_H__
29#define __CVMX_GPIO_DEFS_H__
30
31#define CVMX_GPIO_BIT_CFGX(offset) \
32 CVMX_ADD_IO_SEG(0x0001070000000800ull + (((offset) & 15) * 8))
33#define CVMX_GPIO_BOOT_ENA \
34 CVMX_ADD_IO_SEG(0x00010700000008A8ull)
35#define CVMX_GPIO_CLK_GENX(offset) \
36 CVMX_ADD_IO_SEG(0x00010700000008C0ull + (((offset) & 3) * 8))
37#define CVMX_GPIO_DBG_ENA \
38 CVMX_ADD_IO_SEG(0x00010700000008A0ull)
39#define CVMX_GPIO_INT_CLR \
40 CVMX_ADD_IO_SEG(0x0001070000000898ull)
41#define CVMX_GPIO_RX_DAT \
42 CVMX_ADD_IO_SEG(0x0001070000000880ull)
43#define CVMX_GPIO_TX_CLR \
44 CVMX_ADD_IO_SEG(0x0001070000000890ull)
45#define CVMX_GPIO_TX_SET \
46 CVMX_ADD_IO_SEG(0x0001070000000888ull)
47#define CVMX_GPIO_XBIT_CFGX(offset) \
48 CVMX_ADD_IO_SEG(0x0001070000000900ull + (((offset) & 31) * 8) - 8 * 16)
49
50union cvmx_gpio_bit_cfgx {
51 uint64_t u64;
52 struct cvmx_gpio_bit_cfgx_s {
53 uint64_t reserved_15_63:49;
54 uint64_t clk_gen:1;
55 uint64_t clk_sel:2;
56 uint64_t fil_sel:4;
57 uint64_t fil_cnt:4;
58 uint64_t int_type:1;
59 uint64_t int_en:1;
60 uint64_t rx_xor:1;
61 uint64_t tx_oe:1;
62 } s;
63 struct cvmx_gpio_bit_cfgx_cn30xx {
64 uint64_t reserved_12_63:52;
65 uint64_t fil_sel:4;
66 uint64_t fil_cnt:4;
67 uint64_t int_type:1;
68 uint64_t int_en:1;
69 uint64_t rx_xor:1;
70 uint64_t tx_oe:1;
71 } cn30xx;
72 struct cvmx_gpio_bit_cfgx_cn30xx cn31xx;
73 struct cvmx_gpio_bit_cfgx_cn30xx cn38xx;
74 struct cvmx_gpio_bit_cfgx_cn30xx cn38xxp2;
75 struct cvmx_gpio_bit_cfgx_cn30xx cn50xx;
76 struct cvmx_gpio_bit_cfgx_s cn52xx;
77 struct cvmx_gpio_bit_cfgx_s cn52xxp1;
78 struct cvmx_gpio_bit_cfgx_s cn56xx;
79 struct cvmx_gpio_bit_cfgx_s cn56xxp1;
80 struct cvmx_gpio_bit_cfgx_cn30xx cn58xx;
81 struct cvmx_gpio_bit_cfgx_cn30xx cn58xxp1;
82};
83
84union cvmx_gpio_boot_ena {
85 uint64_t u64;
86 struct cvmx_gpio_boot_ena_s {
87 uint64_t reserved_12_63:52;
88 uint64_t boot_ena:4;
89 uint64_t reserved_0_7:8;
90 } s;
91 struct cvmx_gpio_boot_ena_s cn30xx;
92 struct cvmx_gpio_boot_ena_s cn31xx;
93 struct cvmx_gpio_boot_ena_s cn50xx;
94};
95
96union cvmx_gpio_clk_genx {
97 uint64_t u64;
98 struct cvmx_gpio_clk_genx_s {
99 uint64_t reserved_32_63:32;
100 uint64_t n:32;
101 } s;
102 struct cvmx_gpio_clk_genx_s cn52xx;
103 struct cvmx_gpio_clk_genx_s cn52xxp1;
104 struct cvmx_gpio_clk_genx_s cn56xx;
105 struct cvmx_gpio_clk_genx_s cn56xxp1;
106};
107
108union cvmx_gpio_dbg_ena {
109 uint64_t u64;
110 struct cvmx_gpio_dbg_ena_s {
111 uint64_t reserved_21_63:43;
112 uint64_t dbg_ena:21;
113 } s;
114 struct cvmx_gpio_dbg_ena_s cn30xx;
115 struct cvmx_gpio_dbg_ena_s cn31xx;
116 struct cvmx_gpio_dbg_ena_s cn50xx;
117};
118
119union cvmx_gpio_int_clr {
120 uint64_t u64;
121 struct cvmx_gpio_int_clr_s {
122 uint64_t reserved_16_63:48;
123 uint64_t type:16;
124 } s;
125 struct cvmx_gpio_int_clr_s cn30xx;
126 struct cvmx_gpio_int_clr_s cn31xx;
127 struct cvmx_gpio_int_clr_s cn38xx;
128 struct cvmx_gpio_int_clr_s cn38xxp2;
129 struct cvmx_gpio_int_clr_s cn50xx;
130 struct cvmx_gpio_int_clr_s cn52xx;
131 struct cvmx_gpio_int_clr_s cn52xxp1;
132 struct cvmx_gpio_int_clr_s cn56xx;
133 struct cvmx_gpio_int_clr_s cn56xxp1;
134 struct cvmx_gpio_int_clr_s cn58xx;
135 struct cvmx_gpio_int_clr_s cn58xxp1;
136};
137
138union cvmx_gpio_rx_dat {
139 uint64_t u64;
140 struct cvmx_gpio_rx_dat_s {
141 uint64_t reserved_24_63:40;
142 uint64_t dat:24;
143 } s;
144 struct cvmx_gpio_rx_dat_s cn30xx;
145 struct cvmx_gpio_rx_dat_s cn31xx;
146 struct cvmx_gpio_rx_dat_cn38xx {
147 uint64_t reserved_16_63:48;
148 uint64_t dat:16;
149 } cn38xx;
150 struct cvmx_gpio_rx_dat_cn38xx cn38xxp2;
151 struct cvmx_gpio_rx_dat_s cn50xx;
152 struct cvmx_gpio_rx_dat_cn38xx cn52xx;
153 struct cvmx_gpio_rx_dat_cn38xx cn52xxp1;
154 struct cvmx_gpio_rx_dat_cn38xx cn56xx;
155 struct cvmx_gpio_rx_dat_cn38xx cn56xxp1;
156 struct cvmx_gpio_rx_dat_cn38xx cn58xx;
157 struct cvmx_gpio_rx_dat_cn38xx cn58xxp1;
158};
159
160union cvmx_gpio_tx_clr {
161 uint64_t u64;
162 struct cvmx_gpio_tx_clr_s {
163 uint64_t reserved_24_63:40;
164 uint64_t clr:24;
165 } s;
166 struct cvmx_gpio_tx_clr_s cn30xx;
167 struct cvmx_gpio_tx_clr_s cn31xx;
168 struct cvmx_gpio_tx_clr_cn38xx {
169 uint64_t reserved_16_63:48;
170 uint64_t clr:16;
171 } cn38xx;
172 struct cvmx_gpio_tx_clr_cn38xx cn38xxp2;
173 struct cvmx_gpio_tx_clr_s cn50xx;
174 struct cvmx_gpio_tx_clr_cn38xx cn52xx;
175 struct cvmx_gpio_tx_clr_cn38xx cn52xxp1;
176 struct cvmx_gpio_tx_clr_cn38xx cn56xx;
177 struct cvmx_gpio_tx_clr_cn38xx cn56xxp1;
178 struct cvmx_gpio_tx_clr_cn38xx cn58xx;
179 struct cvmx_gpio_tx_clr_cn38xx cn58xxp1;
180};
181
182union cvmx_gpio_tx_set {
183 uint64_t u64;
184 struct cvmx_gpio_tx_set_s {
185 uint64_t reserved_24_63:40;
186 uint64_t set:24;
187 } s;
188 struct cvmx_gpio_tx_set_s cn30xx;
189 struct cvmx_gpio_tx_set_s cn31xx;
190 struct cvmx_gpio_tx_set_cn38xx {
191 uint64_t reserved_16_63:48;
192 uint64_t set:16;
193 } cn38xx;
194 struct cvmx_gpio_tx_set_cn38xx cn38xxp2;
195 struct cvmx_gpio_tx_set_s cn50xx;
196 struct cvmx_gpio_tx_set_cn38xx cn52xx;
197 struct cvmx_gpio_tx_set_cn38xx cn52xxp1;
198 struct cvmx_gpio_tx_set_cn38xx cn56xx;
199 struct cvmx_gpio_tx_set_cn38xx cn56xxp1;
200 struct cvmx_gpio_tx_set_cn38xx cn58xx;
201 struct cvmx_gpio_tx_set_cn38xx cn58xxp1;
202};
203
204union cvmx_gpio_xbit_cfgx {
205 uint64_t u64;
206 struct cvmx_gpio_xbit_cfgx_s {
207 uint64_t reserved_12_63:52;
208 uint64_t fil_sel:4;
209 uint64_t fil_cnt:4;
210 uint64_t reserved_2_3:2;
211 uint64_t rx_xor:1;
212 uint64_t tx_oe:1;
213 } s;
214 struct cvmx_gpio_xbit_cfgx_s cn30xx;
215 struct cvmx_gpio_xbit_cfgx_s cn31xx;
216 struct cvmx_gpio_xbit_cfgx_s cn50xx;
217};
218
219#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-iob-defs.h b/arch/mips/include/asm/octeon/cvmx-iob-defs.h
new file mode 100644
index 000000000000..0ee36baec500
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-iob-defs.h
@@ -0,0 +1,530 @@
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_IOB_DEFS_H__
29#define __CVMX_IOB_DEFS_H__
30
31#define CVMX_IOB_BIST_STATUS \
32 CVMX_ADD_IO_SEG(0x00011800F00007F8ull)
33#define CVMX_IOB_CTL_STATUS \
34 CVMX_ADD_IO_SEG(0x00011800F0000050ull)
35#define CVMX_IOB_DWB_PRI_CNT \
36 CVMX_ADD_IO_SEG(0x00011800F0000028ull)
37#define CVMX_IOB_FAU_TIMEOUT \
38 CVMX_ADD_IO_SEG(0x00011800F0000000ull)
39#define CVMX_IOB_I2C_PRI_CNT \
40 CVMX_ADD_IO_SEG(0x00011800F0000010ull)
41#define CVMX_IOB_INB_CONTROL_MATCH \
42 CVMX_ADD_IO_SEG(0x00011800F0000078ull)
43#define CVMX_IOB_INB_CONTROL_MATCH_ENB \
44 CVMX_ADD_IO_SEG(0x00011800F0000088ull)
45#define CVMX_IOB_INB_DATA_MATCH \
46 CVMX_ADD_IO_SEG(0x00011800F0000070ull)
47#define CVMX_IOB_INB_DATA_MATCH_ENB \
48 CVMX_ADD_IO_SEG(0x00011800F0000080ull)
49#define CVMX_IOB_INT_ENB \
50 CVMX_ADD_IO_SEG(0x00011800F0000060ull)
51#define CVMX_IOB_INT_SUM \
52 CVMX_ADD_IO_SEG(0x00011800F0000058ull)
53#define CVMX_IOB_N2C_L2C_PRI_CNT \
54 CVMX_ADD_IO_SEG(0x00011800F0000020ull)
55#define CVMX_IOB_N2C_RSP_PRI_CNT \
56 CVMX_ADD_IO_SEG(0x00011800F0000008ull)
57#define CVMX_IOB_OUTB_COM_PRI_CNT \
58 CVMX_ADD_IO_SEG(0x00011800F0000040ull)
59#define CVMX_IOB_OUTB_CONTROL_MATCH \
60 CVMX_ADD_IO_SEG(0x00011800F0000098ull)
61#define CVMX_IOB_OUTB_CONTROL_MATCH_ENB \
62 CVMX_ADD_IO_SEG(0x00011800F00000A8ull)
63#define CVMX_IOB_OUTB_DATA_MATCH \
64 CVMX_ADD_IO_SEG(0x00011800F0000090ull)
65#define CVMX_IOB_OUTB_DATA_MATCH_ENB \
66 CVMX_ADD_IO_SEG(0x00011800F00000A0ull)
67#define CVMX_IOB_OUTB_FPA_PRI_CNT \
68 CVMX_ADD_IO_SEG(0x00011800F0000048ull)
69#define CVMX_IOB_OUTB_REQ_PRI_CNT \
70 CVMX_ADD_IO_SEG(0x00011800F0000038ull)
71#define CVMX_IOB_P2C_REQ_PRI_CNT \
72 CVMX_ADD_IO_SEG(0x00011800F0000018ull)
73#define CVMX_IOB_PKT_ERR \
74 CVMX_ADD_IO_SEG(0x00011800F0000068ull)
75
76union cvmx_iob_bist_status {
77 uint64_t u64;
78 struct cvmx_iob_bist_status_s {
79 uint64_t reserved_18_63:46;
80 uint64_t icnrcb:1;
81 uint64_t icr0:1;
82 uint64_t icr1:1;
83 uint64_t icnr1:1;
84 uint64_t icnr0:1;
85 uint64_t ibdr0:1;
86 uint64_t ibdr1:1;
87 uint64_t ibr0:1;
88 uint64_t ibr1:1;
89 uint64_t icnrt:1;
90 uint64_t ibrq0:1;
91 uint64_t ibrq1:1;
92 uint64_t icrn0:1;
93 uint64_t icrn1:1;
94 uint64_t icrp0:1;
95 uint64_t icrp1:1;
96 uint64_t ibd:1;
97 uint64_t icd:1;
98 } s;
99 struct cvmx_iob_bist_status_s cn30xx;
100 struct cvmx_iob_bist_status_s cn31xx;
101 struct cvmx_iob_bist_status_s cn38xx;
102 struct cvmx_iob_bist_status_s cn38xxp2;
103 struct cvmx_iob_bist_status_s cn50xx;
104 struct cvmx_iob_bist_status_s cn52xx;
105 struct cvmx_iob_bist_status_s cn52xxp1;
106 struct cvmx_iob_bist_status_s cn56xx;
107 struct cvmx_iob_bist_status_s cn56xxp1;
108 struct cvmx_iob_bist_status_s cn58xx;
109 struct cvmx_iob_bist_status_s cn58xxp1;
110};
111
112union cvmx_iob_ctl_status {
113 uint64_t u64;
114 struct cvmx_iob_ctl_status_s {
115 uint64_t reserved_5_63:59;
116 uint64_t outb_mat:1;
117 uint64_t inb_mat:1;
118 uint64_t pko_enb:1;
119 uint64_t dwb_enb:1;
120 uint64_t fau_end:1;
121 } s;
122 struct cvmx_iob_ctl_status_s cn30xx;
123 struct cvmx_iob_ctl_status_s cn31xx;
124 struct cvmx_iob_ctl_status_s cn38xx;
125 struct cvmx_iob_ctl_status_s cn38xxp2;
126 struct cvmx_iob_ctl_status_s cn50xx;
127 struct cvmx_iob_ctl_status_s cn52xx;
128 struct cvmx_iob_ctl_status_s cn52xxp1;
129 struct cvmx_iob_ctl_status_s cn56xx;
130 struct cvmx_iob_ctl_status_s cn56xxp1;
131 struct cvmx_iob_ctl_status_s cn58xx;
132 struct cvmx_iob_ctl_status_s cn58xxp1;
133};
134
135union cvmx_iob_dwb_pri_cnt {
136 uint64_t u64;
137 struct cvmx_iob_dwb_pri_cnt_s {
138 uint64_t reserved_16_63:48;
139 uint64_t cnt_enb:1;
140 uint64_t cnt_val:15;
141 } s;
142 struct cvmx_iob_dwb_pri_cnt_s cn38xx;
143 struct cvmx_iob_dwb_pri_cnt_s cn38xxp2;
144 struct cvmx_iob_dwb_pri_cnt_s cn52xx;
145 struct cvmx_iob_dwb_pri_cnt_s cn52xxp1;
146 struct cvmx_iob_dwb_pri_cnt_s cn56xx;
147 struct cvmx_iob_dwb_pri_cnt_s cn56xxp1;
148 struct cvmx_iob_dwb_pri_cnt_s cn58xx;
149 struct cvmx_iob_dwb_pri_cnt_s cn58xxp1;
150};
151
152union cvmx_iob_fau_timeout {
153 uint64_t u64;
154 struct cvmx_iob_fau_timeout_s {
155 uint64_t reserved_13_63:51;
156 uint64_t tout_enb:1;
157 uint64_t tout_val:12;
158 } s;
159 struct cvmx_iob_fau_timeout_s cn30xx;
160 struct cvmx_iob_fau_timeout_s cn31xx;
161 struct cvmx_iob_fau_timeout_s cn38xx;
162 struct cvmx_iob_fau_timeout_s cn38xxp2;
163 struct cvmx_iob_fau_timeout_s cn50xx;
164 struct cvmx_iob_fau_timeout_s cn52xx;
165 struct cvmx_iob_fau_timeout_s cn52xxp1;
166 struct cvmx_iob_fau_timeout_s cn56xx;
167 struct cvmx_iob_fau_timeout_s cn56xxp1;
168 struct cvmx_iob_fau_timeout_s cn58xx;
169 struct cvmx_iob_fau_timeout_s cn58xxp1;
170};
171
172union cvmx_iob_i2c_pri_cnt {
173 uint64_t u64;
174 struct cvmx_iob_i2c_pri_cnt_s {
175 uint64_t reserved_16_63:48;
176 uint64_t cnt_enb:1;
177 uint64_t cnt_val:15;
178 } s;
179 struct cvmx_iob_i2c_pri_cnt_s cn38xx;
180 struct cvmx_iob_i2c_pri_cnt_s cn38xxp2;
181 struct cvmx_iob_i2c_pri_cnt_s cn52xx;
182 struct cvmx_iob_i2c_pri_cnt_s cn52xxp1;
183 struct cvmx_iob_i2c_pri_cnt_s cn56xx;
184 struct cvmx_iob_i2c_pri_cnt_s cn56xxp1;
185 struct cvmx_iob_i2c_pri_cnt_s cn58xx;
186 struct cvmx_iob_i2c_pri_cnt_s cn58xxp1;
187};
188
189union cvmx_iob_inb_control_match {
190 uint64_t u64;
191 struct cvmx_iob_inb_control_match_s {
192 uint64_t reserved_29_63:35;
193 uint64_t mask:8;
194 uint64_t opc:4;
195 uint64_t dst:9;
196 uint64_t src:8;
197 } s;
198 struct cvmx_iob_inb_control_match_s cn30xx;
199 struct cvmx_iob_inb_control_match_s cn31xx;
200 struct cvmx_iob_inb_control_match_s cn38xx;
201 struct cvmx_iob_inb_control_match_s cn38xxp2;
202 struct cvmx_iob_inb_control_match_s cn50xx;
203 struct cvmx_iob_inb_control_match_s cn52xx;
204 struct cvmx_iob_inb_control_match_s cn52xxp1;
205 struct cvmx_iob_inb_control_match_s cn56xx;
206 struct cvmx_iob_inb_control_match_s cn56xxp1;
207 struct cvmx_iob_inb_control_match_s cn58xx;
208 struct cvmx_iob_inb_control_match_s cn58xxp1;
209};
210
211union cvmx_iob_inb_control_match_enb {
212 uint64_t u64;
213 struct cvmx_iob_inb_control_match_enb_s {
214 uint64_t reserved_29_63:35;
215 uint64_t mask:8;
216 uint64_t opc:4;
217 uint64_t dst:9;
218 uint64_t src:8;
219 } s;
220 struct cvmx_iob_inb_control_match_enb_s cn30xx;
221 struct cvmx_iob_inb_control_match_enb_s cn31xx;
222 struct cvmx_iob_inb_control_match_enb_s cn38xx;
223 struct cvmx_iob_inb_control_match_enb_s cn38xxp2;
224 struct cvmx_iob_inb_control_match_enb_s cn50xx;
225 struct cvmx_iob_inb_control_match_enb_s cn52xx;
226 struct cvmx_iob_inb_control_match_enb_s cn52xxp1;
227 struct cvmx_iob_inb_control_match_enb_s cn56xx;
228 struct cvmx_iob_inb_control_match_enb_s cn56xxp1;
229 struct cvmx_iob_inb_control_match_enb_s cn58xx;
230 struct cvmx_iob_inb_control_match_enb_s cn58xxp1;
231};
232
233union cvmx_iob_inb_data_match {
234 uint64_t u64;
235 struct cvmx_iob_inb_data_match_s {
236 uint64_t data:64;
237 } s;
238 struct cvmx_iob_inb_data_match_s cn30xx;
239 struct cvmx_iob_inb_data_match_s cn31xx;
240 struct cvmx_iob_inb_data_match_s cn38xx;
241 struct cvmx_iob_inb_data_match_s cn38xxp2;
242 struct cvmx_iob_inb_data_match_s cn50xx;
243 struct cvmx_iob_inb_data_match_s cn52xx;
244 struct cvmx_iob_inb_data_match_s cn52xxp1;
245 struct cvmx_iob_inb_data_match_s cn56xx;
246 struct cvmx_iob_inb_data_match_s cn56xxp1;
247 struct cvmx_iob_inb_data_match_s cn58xx;
248 struct cvmx_iob_inb_data_match_s cn58xxp1;
249};
250
251union cvmx_iob_inb_data_match_enb {
252 uint64_t u64;
253 struct cvmx_iob_inb_data_match_enb_s {
254 uint64_t data:64;
255 } s;
256 struct cvmx_iob_inb_data_match_enb_s cn30xx;
257 struct cvmx_iob_inb_data_match_enb_s cn31xx;
258 struct cvmx_iob_inb_data_match_enb_s cn38xx;
259 struct cvmx_iob_inb_data_match_enb_s cn38xxp2;
260 struct cvmx_iob_inb_data_match_enb_s cn50xx;
261 struct cvmx_iob_inb_data_match_enb_s cn52xx;
262 struct cvmx_iob_inb_data_match_enb_s cn52xxp1;
263 struct cvmx_iob_inb_data_match_enb_s cn56xx;
264 struct cvmx_iob_inb_data_match_enb_s cn56xxp1;
265 struct cvmx_iob_inb_data_match_enb_s cn58xx;
266 struct cvmx_iob_inb_data_match_enb_s cn58xxp1;
267};
268
269union cvmx_iob_int_enb {
270 uint64_t u64;
271 struct cvmx_iob_int_enb_s {
272 uint64_t reserved_6_63:58;
273 uint64_t p_dat:1;
274 uint64_t np_dat:1;
275 uint64_t p_eop:1;
276 uint64_t p_sop:1;
277 uint64_t np_eop:1;
278 uint64_t np_sop:1;
279 } s;
280 struct cvmx_iob_int_enb_cn30xx {
281 uint64_t reserved_4_63:60;
282 uint64_t p_eop:1;
283 uint64_t p_sop:1;
284 uint64_t np_eop:1;
285 uint64_t np_sop:1;
286 } cn30xx;
287 struct cvmx_iob_int_enb_cn30xx cn31xx;
288 struct cvmx_iob_int_enb_cn30xx cn38xx;
289 struct cvmx_iob_int_enb_cn30xx cn38xxp2;
290 struct cvmx_iob_int_enb_s cn50xx;
291 struct cvmx_iob_int_enb_s cn52xx;
292 struct cvmx_iob_int_enb_s cn52xxp1;
293 struct cvmx_iob_int_enb_s cn56xx;
294 struct cvmx_iob_int_enb_s cn56xxp1;
295 struct cvmx_iob_int_enb_s cn58xx;
296 struct cvmx_iob_int_enb_s cn58xxp1;
297};
298
299union cvmx_iob_int_sum {
300 uint64_t u64;
301 struct cvmx_iob_int_sum_s {
302 uint64_t reserved_6_63:58;
303 uint64_t p_dat:1;
304 uint64_t np_dat:1;
305 uint64_t p_eop:1;
306 uint64_t p_sop:1;
307 uint64_t np_eop:1;
308 uint64_t np_sop:1;
309 } s;
310 struct cvmx_iob_int_sum_cn30xx {
311 uint64_t reserved_4_63:60;
312 uint64_t p_eop:1;
313 uint64_t p_sop:1;
314 uint64_t np_eop:1;
315 uint64_t np_sop:1;
316 } cn30xx;
317 struct cvmx_iob_int_sum_cn30xx cn31xx;
318 struct cvmx_iob_int_sum_cn30xx cn38xx;
319 struct cvmx_iob_int_sum_cn30xx cn38xxp2;
320 struct cvmx_iob_int_sum_s cn50xx;
321 struct cvmx_iob_int_sum_s cn52xx;
322 struct cvmx_iob_int_sum_s cn52xxp1;
323 struct cvmx_iob_int_sum_s cn56xx;
324 struct cvmx_iob_int_sum_s cn56xxp1;
325 struct cvmx_iob_int_sum_s cn58xx;
326 struct cvmx_iob_int_sum_s cn58xxp1;
327};
328
329union cvmx_iob_n2c_l2c_pri_cnt {
330 uint64_t u64;
331 struct cvmx_iob_n2c_l2c_pri_cnt_s {
332 uint64_t reserved_16_63:48;
333 uint64_t cnt_enb:1;
334 uint64_t cnt_val:15;
335 } s;
336 struct cvmx_iob_n2c_l2c_pri_cnt_s cn38xx;
337 struct cvmx_iob_n2c_l2c_pri_cnt_s cn38xxp2;
338 struct cvmx_iob_n2c_l2c_pri_cnt_s cn52xx;
339 struct cvmx_iob_n2c_l2c_pri_cnt_s cn52xxp1;
340 struct cvmx_iob_n2c_l2c_pri_cnt_s cn56xx;
341 struct cvmx_iob_n2c_l2c_pri_cnt_s cn56xxp1;
342 struct cvmx_iob_n2c_l2c_pri_cnt_s cn58xx;
343 struct cvmx_iob_n2c_l2c_pri_cnt_s cn58xxp1;
344};
345
346union cvmx_iob_n2c_rsp_pri_cnt {
347 uint64_t u64;
348 struct cvmx_iob_n2c_rsp_pri_cnt_s {
349 uint64_t reserved_16_63:48;
350 uint64_t cnt_enb:1;
351 uint64_t cnt_val:15;
352 } s;
353 struct cvmx_iob_n2c_rsp_pri_cnt_s cn38xx;
354 struct cvmx_iob_n2c_rsp_pri_cnt_s cn38xxp2;
355 struct cvmx_iob_n2c_rsp_pri_cnt_s cn52xx;
356 struct cvmx_iob_n2c_rsp_pri_cnt_s cn52xxp1;
357 struct cvmx_iob_n2c_rsp_pri_cnt_s cn56xx;
358 struct cvmx_iob_n2c_rsp_pri_cnt_s cn56xxp1;
359 struct cvmx_iob_n2c_rsp_pri_cnt_s cn58xx;
360 struct cvmx_iob_n2c_rsp_pri_cnt_s cn58xxp1;
361};
362
363union cvmx_iob_outb_com_pri_cnt {
364 uint64_t u64;
365 struct cvmx_iob_outb_com_pri_cnt_s {
366 uint64_t reserved_16_63:48;
367 uint64_t cnt_enb:1;
368 uint64_t cnt_val:15;
369 } s;
370 struct cvmx_iob_outb_com_pri_cnt_s cn38xx;
371 struct cvmx_iob_outb_com_pri_cnt_s cn38xxp2;
372 struct cvmx_iob_outb_com_pri_cnt_s cn52xx;
373 struct cvmx_iob_outb_com_pri_cnt_s cn52xxp1;
374 struct cvmx_iob_outb_com_pri_cnt_s cn56xx;
375 struct cvmx_iob_outb_com_pri_cnt_s cn56xxp1;
376 struct cvmx_iob_outb_com_pri_cnt_s cn58xx;
377 struct cvmx_iob_outb_com_pri_cnt_s cn58xxp1;
378};
379
380union cvmx_iob_outb_control_match {
381 uint64_t u64;
382 struct cvmx_iob_outb_control_match_s {
383 uint64_t reserved_26_63:38;
384 uint64_t mask:8;
385 uint64_t eot:1;
386 uint64_t dst:8;
387 uint64_t src:9;
388 } s;
389 struct cvmx_iob_outb_control_match_s cn30xx;
390 struct cvmx_iob_outb_control_match_s cn31xx;
391 struct cvmx_iob_outb_control_match_s cn38xx;
392 struct cvmx_iob_outb_control_match_s cn38xxp2;
393 struct cvmx_iob_outb_control_match_s cn50xx;
394 struct cvmx_iob_outb_control_match_s cn52xx;
395 struct cvmx_iob_outb_control_match_s cn52xxp1;
396 struct cvmx_iob_outb_control_match_s cn56xx;
397 struct cvmx_iob_outb_control_match_s cn56xxp1;
398 struct cvmx_iob_outb_control_match_s cn58xx;
399 struct cvmx_iob_outb_control_match_s cn58xxp1;
400};
401
402union cvmx_iob_outb_control_match_enb {
403 uint64_t u64;
404 struct cvmx_iob_outb_control_match_enb_s {
405 uint64_t reserved_26_63:38;
406 uint64_t mask:8;
407 uint64_t eot:1;
408 uint64_t dst:8;
409 uint64_t src:9;
410 } s;
411 struct cvmx_iob_outb_control_match_enb_s cn30xx;
412 struct cvmx_iob_outb_control_match_enb_s cn31xx;
413 struct cvmx_iob_outb_control_match_enb_s cn38xx;
414 struct cvmx_iob_outb_control_match_enb_s cn38xxp2;
415 struct cvmx_iob_outb_control_match_enb_s cn50xx;
416 struct cvmx_iob_outb_control_match_enb_s cn52xx;
417 struct cvmx_iob_outb_control_match_enb_s cn52xxp1;
418 struct cvmx_iob_outb_control_match_enb_s cn56xx;
419 struct cvmx_iob_outb_control_match_enb_s cn56xxp1;
420 struct cvmx_iob_outb_control_match_enb_s cn58xx;
421 struct cvmx_iob_outb_control_match_enb_s cn58xxp1;
422};
423
424union cvmx_iob_outb_data_match {
425 uint64_t u64;
426 struct cvmx_iob_outb_data_match_s {
427 uint64_t data:64;
428 } s;
429 struct cvmx_iob_outb_data_match_s cn30xx;
430 struct cvmx_iob_outb_data_match_s cn31xx;
431 struct cvmx_iob_outb_data_match_s cn38xx;
432 struct cvmx_iob_outb_data_match_s cn38xxp2;
433 struct cvmx_iob_outb_data_match_s cn50xx;
434 struct cvmx_iob_outb_data_match_s cn52xx;
435 struct cvmx_iob_outb_data_match_s cn52xxp1;
436 struct cvmx_iob_outb_data_match_s cn56xx;
437 struct cvmx_iob_outb_data_match_s cn56xxp1;
438 struct cvmx_iob_outb_data_match_s cn58xx;
439 struct cvmx_iob_outb_data_match_s cn58xxp1;
440};
441
442union cvmx_iob_outb_data_match_enb {
443 uint64_t u64;
444 struct cvmx_iob_outb_data_match_enb_s {
445 uint64_t data:64;
446 } s;
447 struct cvmx_iob_outb_data_match_enb_s cn30xx;
448 struct cvmx_iob_outb_data_match_enb_s cn31xx;
449 struct cvmx_iob_outb_data_match_enb_s cn38xx;
450 struct cvmx_iob_outb_data_match_enb_s cn38xxp2;
451 struct cvmx_iob_outb_data_match_enb_s cn50xx;
452 struct cvmx_iob_outb_data_match_enb_s cn52xx;
453 struct cvmx_iob_outb_data_match_enb_s cn52xxp1;
454 struct cvmx_iob_outb_data_match_enb_s cn56xx;
455 struct cvmx_iob_outb_data_match_enb_s cn56xxp1;
456 struct cvmx_iob_outb_data_match_enb_s cn58xx;
457 struct cvmx_iob_outb_data_match_enb_s cn58xxp1;
458};
459
460union cvmx_iob_outb_fpa_pri_cnt {
461 uint64_t u64;
462 struct cvmx_iob_outb_fpa_pri_cnt_s {
463 uint64_t reserved_16_63:48;
464 uint64_t cnt_enb:1;
465 uint64_t cnt_val:15;
466 } s;
467 struct cvmx_iob_outb_fpa_pri_cnt_s cn38xx;
468 struct cvmx_iob_outb_fpa_pri_cnt_s cn38xxp2;
469 struct cvmx_iob_outb_fpa_pri_cnt_s cn52xx;
470 struct cvmx_iob_outb_fpa_pri_cnt_s cn52xxp1;
471 struct cvmx_iob_outb_fpa_pri_cnt_s cn56xx;
472 struct cvmx_iob_outb_fpa_pri_cnt_s cn56xxp1;
473 struct cvmx_iob_outb_fpa_pri_cnt_s cn58xx;
474 struct cvmx_iob_outb_fpa_pri_cnt_s cn58xxp1;
475};
476
477union cvmx_iob_outb_req_pri_cnt {
478 uint64_t u64;
479 struct cvmx_iob_outb_req_pri_cnt_s {
480 uint64_t reserved_16_63:48;
481 uint64_t cnt_enb:1;
482 uint64_t cnt_val:15;
483 } s;
484 struct cvmx_iob_outb_req_pri_cnt_s cn38xx;
485 struct cvmx_iob_outb_req_pri_cnt_s cn38xxp2;
486 struct cvmx_iob_outb_req_pri_cnt_s cn52xx;
487 struct cvmx_iob_outb_req_pri_cnt_s cn52xxp1;
488 struct cvmx_iob_outb_req_pri_cnt_s cn56xx;
489 struct cvmx_iob_outb_req_pri_cnt_s cn56xxp1;
490 struct cvmx_iob_outb_req_pri_cnt_s cn58xx;
491 struct cvmx_iob_outb_req_pri_cnt_s cn58xxp1;
492};
493
494union cvmx_iob_p2c_req_pri_cnt {
495 uint64_t u64;
496 struct cvmx_iob_p2c_req_pri_cnt_s {
497 uint64_t reserved_16_63:48;
498 uint64_t cnt_enb:1;
499 uint64_t cnt_val:15;
500 } s;
501 struct cvmx_iob_p2c_req_pri_cnt_s cn38xx;
502 struct cvmx_iob_p2c_req_pri_cnt_s cn38xxp2;
503 struct cvmx_iob_p2c_req_pri_cnt_s cn52xx;
504 struct cvmx_iob_p2c_req_pri_cnt_s cn52xxp1;
505 struct cvmx_iob_p2c_req_pri_cnt_s cn56xx;
506 struct cvmx_iob_p2c_req_pri_cnt_s cn56xxp1;
507 struct cvmx_iob_p2c_req_pri_cnt_s cn58xx;
508 struct cvmx_iob_p2c_req_pri_cnt_s cn58xxp1;
509};
510
511union cvmx_iob_pkt_err {
512 uint64_t u64;
513 struct cvmx_iob_pkt_err_s {
514 uint64_t reserved_6_63:58;
515 uint64_t port:6;
516 } s;
517 struct cvmx_iob_pkt_err_s cn30xx;
518 struct cvmx_iob_pkt_err_s cn31xx;
519 struct cvmx_iob_pkt_err_s cn38xx;
520 struct cvmx_iob_pkt_err_s cn38xxp2;
521 struct cvmx_iob_pkt_err_s cn50xx;
522 struct cvmx_iob_pkt_err_s cn52xx;
523 struct cvmx_iob_pkt_err_s cn52xxp1;
524 struct cvmx_iob_pkt_err_s cn56xx;
525 struct cvmx_iob_pkt_err_s cn56xxp1;
526 struct cvmx_iob_pkt_err_s cn58xx;
527 struct cvmx_iob_pkt_err_s cn58xxp1;
528};
529
530#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-ipd-defs.h b/arch/mips/include/asm/octeon/cvmx-ipd-defs.h
new file mode 100644
index 000000000000..f8b8fc657d2c
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-ipd-defs.h
@@ -0,0 +1,877 @@
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_IPD_DEFS_H__
29#define __CVMX_IPD_DEFS_H__
30
31#define CVMX_IPD_1ST_MBUFF_SKIP \
32 CVMX_ADD_IO_SEG(0x00014F0000000000ull)
33#define CVMX_IPD_1st_NEXT_PTR_BACK \
34 CVMX_ADD_IO_SEG(0x00014F0000000150ull)
35#define CVMX_IPD_2nd_NEXT_PTR_BACK \
36 CVMX_ADD_IO_SEG(0x00014F0000000158ull)
37#define CVMX_IPD_BIST_STATUS \
38 CVMX_ADD_IO_SEG(0x00014F00000007F8ull)
39#define CVMX_IPD_BP_PRT_RED_END \
40 CVMX_ADD_IO_SEG(0x00014F0000000328ull)
41#define CVMX_IPD_CLK_COUNT \
42 CVMX_ADD_IO_SEG(0x00014F0000000338ull)
43#define CVMX_IPD_CTL_STATUS \
44 CVMX_ADD_IO_SEG(0x00014F0000000018ull)
45#define CVMX_IPD_INT_ENB \
46 CVMX_ADD_IO_SEG(0x00014F0000000160ull)
47#define CVMX_IPD_INT_SUM \
48 CVMX_ADD_IO_SEG(0x00014F0000000168ull)
49#define CVMX_IPD_NOT_1ST_MBUFF_SKIP \
50 CVMX_ADD_IO_SEG(0x00014F0000000008ull)
51#define CVMX_IPD_PACKET_MBUFF_SIZE \
52 CVMX_ADD_IO_SEG(0x00014F0000000010ull)
53#define CVMX_IPD_PKT_PTR_VALID \
54 CVMX_ADD_IO_SEG(0x00014F0000000358ull)
55#define CVMX_IPD_PORTX_BP_PAGE_CNT(offset) \
56 CVMX_ADD_IO_SEG(0x00014F0000000028ull + (((offset) & 63) * 8))
57#define CVMX_IPD_PORTX_BP_PAGE_CNT2(offset) \
58 CVMX_ADD_IO_SEG(0x00014F0000000368ull + (((offset) & 63) * 8) - 8 * 36)
59#define CVMX_IPD_PORT_BP_COUNTERS2_PAIRX(offset) \
60 CVMX_ADD_IO_SEG(0x00014F0000000388ull + (((offset) & 63) * 8) - 8 * 36)
61#define CVMX_IPD_PORT_BP_COUNTERS_PAIRX(offset) \
62 CVMX_ADD_IO_SEG(0x00014F00000001B8ull + (((offset) & 63) * 8))
63#define CVMX_IPD_PORT_QOS_INTX(offset) \
64 CVMX_ADD_IO_SEG(0x00014F0000000808ull + (((offset) & 7) * 8))
65#define CVMX_IPD_PORT_QOS_INT_ENBX(offset) \
66 CVMX_ADD_IO_SEG(0x00014F0000000848ull + (((offset) & 7) * 8))
67#define CVMX_IPD_PORT_QOS_X_CNT(offset) \
68 CVMX_ADD_IO_SEG(0x00014F0000000888ull + (((offset) & 511) * 8))
69#define CVMX_IPD_PRC_HOLD_PTR_FIFO_CTL \
70 CVMX_ADD_IO_SEG(0x00014F0000000348ull)
71#define CVMX_IPD_PRC_PORT_PTR_FIFO_CTL \
72 CVMX_ADD_IO_SEG(0x00014F0000000350ull)
73#define CVMX_IPD_PTR_COUNT \
74 CVMX_ADD_IO_SEG(0x00014F0000000320ull)
75#define CVMX_IPD_PWP_PTR_FIFO_CTL \
76 CVMX_ADD_IO_SEG(0x00014F0000000340ull)
77#define CVMX_IPD_QOS0_RED_MARKS \
78 CVMX_ADD_IO_SEG(0x00014F0000000178ull)
79#define CVMX_IPD_QOS1_RED_MARKS \
80 CVMX_ADD_IO_SEG(0x00014F0000000180ull)
81#define CVMX_IPD_QOS2_RED_MARKS \
82 CVMX_ADD_IO_SEG(0x00014F0000000188ull)
83#define CVMX_IPD_QOS3_RED_MARKS \
84 CVMX_ADD_IO_SEG(0x00014F0000000190ull)
85#define CVMX_IPD_QOS4_RED_MARKS \
86 CVMX_ADD_IO_SEG(0x00014F0000000198ull)
87#define CVMX_IPD_QOS5_RED_MARKS \
88 CVMX_ADD_IO_SEG(0x00014F00000001A0ull)
89#define CVMX_IPD_QOS6_RED_MARKS \
90 CVMX_ADD_IO_SEG(0x00014F00000001A8ull)
91#define CVMX_IPD_QOS7_RED_MARKS \
92 CVMX_ADD_IO_SEG(0x00014F00000001B0ull)
93#define CVMX_IPD_QOSX_RED_MARKS(offset) \
94 CVMX_ADD_IO_SEG(0x00014F0000000178ull + (((offset) & 7) * 8))
95#define CVMX_IPD_QUE0_FREE_PAGE_CNT \
96 CVMX_ADD_IO_SEG(0x00014F0000000330ull)
97#define CVMX_IPD_RED_PORT_ENABLE \
98 CVMX_ADD_IO_SEG(0x00014F00000002D8ull)
99#define CVMX_IPD_RED_PORT_ENABLE2 \
100 CVMX_ADD_IO_SEG(0x00014F00000003A8ull)
101#define CVMX_IPD_RED_QUE0_PARAM \
102 CVMX_ADD_IO_SEG(0x00014F00000002E0ull)
103#define CVMX_IPD_RED_QUE1_PARAM \
104 CVMX_ADD_IO_SEG(0x00014F00000002E8ull)
105#define CVMX_IPD_RED_QUE2_PARAM \
106 CVMX_ADD_IO_SEG(0x00014F00000002F0ull)
107#define CVMX_IPD_RED_QUE3_PARAM \
108 CVMX_ADD_IO_SEG(0x00014F00000002F8ull)
109#define CVMX_IPD_RED_QUE4_PARAM \
110 CVMX_ADD_IO_SEG(0x00014F0000000300ull)
111#define CVMX_IPD_RED_QUE5_PARAM \
112 CVMX_ADD_IO_SEG(0x00014F0000000308ull)
113#define CVMX_IPD_RED_QUE6_PARAM \
114 CVMX_ADD_IO_SEG(0x00014F0000000310ull)
115#define CVMX_IPD_RED_QUE7_PARAM \
116 CVMX_ADD_IO_SEG(0x00014F0000000318ull)
117#define CVMX_IPD_RED_QUEX_PARAM(offset) \
118 CVMX_ADD_IO_SEG(0x00014F00000002E0ull + (((offset) & 7) * 8))
119#define CVMX_IPD_SUB_PORT_BP_PAGE_CNT \
120 CVMX_ADD_IO_SEG(0x00014F0000000148ull)
121#define CVMX_IPD_SUB_PORT_FCS \
122 CVMX_ADD_IO_SEG(0x00014F0000000170ull)
123#define CVMX_IPD_SUB_PORT_QOS_CNT \
124 CVMX_ADD_IO_SEG(0x00014F0000000800ull)
125#define CVMX_IPD_WQE_FPA_QUEUE \
126 CVMX_ADD_IO_SEG(0x00014F0000000020ull)
127#define CVMX_IPD_WQE_PTR_VALID \
128 CVMX_ADD_IO_SEG(0x00014F0000000360ull)
129
130union cvmx_ipd_1st_mbuff_skip {
131 uint64_t u64;
132 struct cvmx_ipd_1st_mbuff_skip_s {
133 uint64_t reserved_6_63:58;
134 uint64_t skip_sz:6;
135 } s;
136 struct cvmx_ipd_1st_mbuff_skip_s cn30xx;
137 struct cvmx_ipd_1st_mbuff_skip_s cn31xx;
138 struct cvmx_ipd_1st_mbuff_skip_s cn38xx;
139 struct cvmx_ipd_1st_mbuff_skip_s cn38xxp2;
140 struct cvmx_ipd_1st_mbuff_skip_s cn50xx;
141 struct cvmx_ipd_1st_mbuff_skip_s cn52xx;
142 struct cvmx_ipd_1st_mbuff_skip_s cn52xxp1;
143 struct cvmx_ipd_1st_mbuff_skip_s cn56xx;
144 struct cvmx_ipd_1st_mbuff_skip_s cn56xxp1;
145 struct cvmx_ipd_1st_mbuff_skip_s cn58xx;
146 struct cvmx_ipd_1st_mbuff_skip_s cn58xxp1;
147};
148
149union cvmx_ipd_1st_next_ptr_back {
150 uint64_t u64;
151 struct cvmx_ipd_1st_next_ptr_back_s {
152 uint64_t reserved_4_63:60;
153 uint64_t back:4;
154 } s;
155 struct cvmx_ipd_1st_next_ptr_back_s cn30xx;
156 struct cvmx_ipd_1st_next_ptr_back_s cn31xx;
157 struct cvmx_ipd_1st_next_ptr_back_s cn38xx;
158 struct cvmx_ipd_1st_next_ptr_back_s cn38xxp2;
159 struct cvmx_ipd_1st_next_ptr_back_s cn50xx;
160 struct cvmx_ipd_1st_next_ptr_back_s cn52xx;
161 struct cvmx_ipd_1st_next_ptr_back_s cn52xxp1;
162 struct cvmx_ipd_1st_next_ptr_back_s cn56xx;
163 struct cvmx_ipd_1st_next_ptr_back_s cn56xxp1;
164 struct cvmx_ipd_1st_next_ptr_back_s cn58xx;
165 struct cvmx_ipd_1st_next_ptr_back_s cn58xxp1;
166};
167
168union cvmx_ipd_2nd_next_ptr_back {
169 uint64_t u64;
170 struct cvmx_ipd_2nd_next_ptr_back_s {
171 uint64_t reserved_4_63:60;
172 uint64_t back:4;
173 } s;
174 struct cvmx_ipd_2nd_next_ptr_back_s cn30xx;
175 struct cvmx_ipd_2nd_next_ptr_back_s cn31xx;
176 struct cvmx_ipd_2nd_next_ptr_back_s cn38xx;
177 struct cvmx_ipd_2nd_next_ptr_back_s cn38xxp2;
178 struct cvmx_ipd_2nd_next_ptr_back_s cn50xx;
179 struct cvmx_ipd_2nd_next_ptr_back_s cn52xx;
180 struct cvmx_ipd_2nd_next_ptr_back_s cn52xxp1;
181 struct cvmx_ipd_2nd_next_ptr_back_s cn56xx;
182 struct cvmx_ipd_2nd_next_ptr_back_s cn56xxp1;
183 struct cvmx_ipd_2nd_next_ptr_back_s cn58xx;
184 struct cvmx_ipd_2nd_next_ptr_back_s cn58xxp1;
185};
186
187union cvmx_ipd_bist_status {
188 uint64_t u64;
189 struct cvmx_ipd_bist_status_s {
190 uint64_t reserved_18_63:46;
191 uint64_t csr_mem:1;
192 uint64_t csr_ncmd:1;
193 uint64_t pwq_wqed:1;
194 uint64_t pwq_wp1:1;
195 uint64_t pwq_pow:1;
196 uint64_t ipq_pbe1:1;
197 uint64_t ipq_pbe0:1;
198 uint64_t pbm3:1;
199 uint64_t pbm2:1;
200 uint64_t pbm1:1;
201 uint64_t pbm0:1;
202 uint64_t pbm_word:1;
203 uint64_t pwq1:1;
204 uint64_t pwq0:1;
205 uint64_t prc_off:1;
206 uint64_t ipd_old:1;
207 uint64_t ipd_new:1;
208 uint64_t pwp:1;
209 } s;
210 struct cvmx_ipd_bist_status_cn30xx {
211 uint64_t reserved_16_63:48;
212 uint64_t pwq_wqed:1;
213 uint64_t pwq_wp1:1;
214 uint64_t pwq_pow:1;
215 uint64_t ipq_pbe1:1;
216 uint64_t ipq_pbe0:1;
217 uint64_t pbm3:1;
218 uint64_t pbm2:1;
219 uint64_t pbm1:1;
220 uint64_t pbm0:1;
221 uint64_t pbm_word:1;
222 uint64_t pwq1:1;
223 uint64_t pwq0:1;
224 uint64_t prc_off:1;
225 uint64_t ipd_old:1;
226 uint64_t ipd_new:1;
227 uint64_t pwp:1;
228 } cn30xx;
229 struct cvmx_ipd_bist_status_cn30xx cn31xx;
230 struct cvmx_ipd_bist_status_cn30xx cn38xx;
231 struct cvmx_ipd_bist_status_cn30xx cn38xxp2;
232 struct cvmx_ipd_bist_status_cn30xx cn50xx;
233 struct cvmx_ipd_bist_status_s cn52xx;
234 struct cvmx_ipd_bist_status_s cn52xxp1;
235 struct cvmx_ipd_bist_status_s cn56xx;
236 struct cvmx_ipd_bist_status_s cn56xxp1;
237 struct cvmx_ipd_bist_status_cn30xx cn58xx;
238 struct cvmx_ipd_bist_status_cn30xx cn58xxp1;
239};
240
241union cvmx_ipd_bp_prt_red_end {
242 uint64_t u64;
243 struct cvmx_ipd_bp_prt_red_end_s {
244 uint64_t reserved_40_63:24;
245 uint64_t prt_enb:40;
246 } s;
247 struct cvmx_ipd_bp_prt_red_end_cn30xx {
248 uint64_t reserved_36_63:28;
249 uint64_t prt_enb:36;
250 } cn30xx;
251 struct cvmx_ipd_bp_prt_red_end_cn30xx cn31xx;
252 struct cvmx_ipd_bp_prt_red_end_cn30xx cn38xx;
253 struct cvmx_ipd_bp_prt_red_end_cn30xx cn38xxp2;
254 struct cvmx_ipd_bp_prt_red_end_cn30xx cn50xx;
255 struct cvmx_ipd_bp_prt_red_end_s cn52xx;
256 struct cvmx_ipd_bp_prt_red_end_s cn52xxp1;
257 struct cvmx_ipd_bp_prt_red_end_s cn56xx;
258 struct cvmx_ipd_bp_prt_red_end_s cn56xxp1;
259 struct cvmx_ipd_bp_prt_red_end_cn30xx cn58xx;
260 struct cvmx_ipd_bp_prt_red_end_cn30xx cn58xxp1;
261};
262
263union cvmx_ipd_clk_count {
264 uint64_t u64;
265 struct cvmx_ipd_clk_count_s {
266 uint64_t clk_cnt:64;
267 } s;
268 struct cvmx_ipd_clk_count_s cn30xx;
269 struct cvmx_ipd_clk_count_s cn31xx;
270 struct cvmx_ipd_clk_count_s cn38xx;
271 struct cvmx_ipd_clk_count_s cn38xxp2;
272 struct cvmx_ipd_clk_count_s cn50xx;
273 struct cvmx_ipd_clk_count_s cn52xx;
274 struct cvmx_ipd_clk_count_s cn52xxp1;
275 struct cvmx_ipd_clk_count_s cn56xx;
276 struct cvmx_ipd_clk_count_s cn56xxp1;
277 struct cvmx_ipd_clk_count_s cn58xx;
278 struct cvmx_ipd_clk_count_s cn58xxp1;
279};
280
281union cvmx_ipd_ctl_status {
282 uint64_t u64;
283 struct cvmx_ipd_ctl_status_s {
284 uint64_t reserved_15_63:49;
285 uint64_t no_wptr:1;
286 uint64_t pq_apkt:1;
287 uint64_t pq_nabuf:1;
288 uint64_t ipd_full:1;
289 uint64_t pkt_off:1;
290 uint64_t len_m8:1;
291 uint64_t reset:1;
292 uint64_t addpkt:1;
293 uint64_t naddbuf:1;
294 uint64_t pkt_lend:1;
295 uint64_t wqe_lend:1;
296 uint64_t pbp_en:1;
297 uint64_t opc_mode:2;
298 uint64_t ipd_en:1;
299 } s;
300 struct cvmx_ipd_ctl_status_cn30xx {
301 uint64_t reserved_10_63:54;
302 uint64_t len_m8:1;
303 uint64_t reset:1;
304 uint64_t addpkt:1;
305 uint64_t naddbuf:1;
306 uint64_t pkt_lend:1;
307 uint64_t wqe_lend:1;
308 uint64_t pbp_en:1;
309 uint64_t opc_mode:2;
310 uint64_t ipd_en:1;
311 } cn30xx;
312 struct cvmx_ipd_ctl_status_cn30xx cn31xx;
313 struct cvmx_ipd_ctl_status_cn30xx cn38xx;
314 struct cvmx_ipd_ctl_status_cn38xxp2 {
315 uint64_t reserved_9_63:55;
316 uint64_t reset:1;
317 uint64_t addpkt:1;
318 uint64_t naddbuf:1;
319 uint64_t pkt_lend:1;
320 uint64_t wqe_lend:1;
321 uint64_t pbp_en:1;
322 uint64_t opc_mode:2;
323 uint64_t ipd_en:1;
324 } cn38xxp2;
325 struct cvmx_ipd_ctl_status_s cn50xx;
326 struct cvmx_ipd_ctl_status_s cn52xx;
327 struct cvmx_ipd_ctl_status_s cn52xxp1;
328 struct cvmx_ipd_ctl_status_s cn56xx;
329 struct cvmx_ipd_ctl_status_s cn56xxp1;
330 struct cvmx_ipd_ctl_status_cn58xx {
331 uint64_t reserved_12_63:52;
332 uint64_t ipd_full:1;
333 uint64_t pkt_off:1;
334 uint64_t len_m8:1;
335 uint64_t reset:1;
336 uint64_t addpkt:1;
337 uint64_t naddbuf:1;
338 uint64_t pkt_lend:1;
339 uint64_t wqe_lend:1;
340 uint64_t pbp_en:1;
341 uint64_t opc_mode:2;
342 uint64_t ipd_en:1;
343 } cn58xx;
344 struct cvmx_ipd_ctl_status_cn58xx cn58xxp1;
345};
346
347union cvmx_ipd_int_enb {
348 uint64_t u64;
349 struct cvmx_ipd_int_enb_s {
350 uint64_t reserved_12_63:52;
351 uint64_t pq_sub:1;
352 uint64_t pq_add:1;
353 uint64_t bc_ovr:1;
354 uint64_t d_coll:1;
355 uint64_t c_coll:1;
356 uint64_t cc_ovr:1;
357 uint64_t dc_ovr:1;
358 uint64_t bp_sub:1;
359 uint64_t prc_par3:1;
360 uint64_t prc_par2:1;
361 uint64_t prc_par1:1;
362 uint64_t prc_par0:1;
363 } s;
364 struct cvmx_ipd_int_enb_cn30xx {
365 uint64_t reserved_5_63:59;
366 uint64_t bp_sub:1;
367 uint64_t prc_par3:1;
368 uint64_t prc_par2:1;
369 uint64_t prc_par1:1;
370 uint64_t prc_par0:1;
371 } cn30xx;
372 struct cvmx_ipd_int_enb_cn30xx cn31xx;
373 struct cvmx_ipd_int_enb_cn38xx {
374 uint64_t reserved_10_63:54;
375 uint64_t bc_ovr:1;
376 uint64_t d_coll:1;
377 uint64_t c_coll:1;
378 uint64_t cc_ovr:1;
379 uint64_t dc_ovr:1;
380 uint64_t bp_sub:1;
381 uint64_t prc_par3:1;
382 uint64_t prc_par2:1;
383 uint64_t prc_par1:1;
384 uint64_t prc_par0:1;
385 } cn38xx;
386 struct cvmx_ipd_int_enb_cn30xx cn38xxp2;
387 struct cvmx_ipd_int_enb_cn38xx cn50xx;
388 struct cvmx_ipd_int_enb_s cn52xx;
389 struct cvmx_ipd_int_enb_s cn52xxp1;
390 struct cvmx_ipd_int_enb_s cn56xx;
391 struct cvmx_ipd_int_enb_s cn56xxp1;
392 struct cvmx_ipd_int_enb_cn38xx cn58xx;
393 struct cvmx_ipd_int_enb_cn38xx cn58xxp1;
394};
395
396union cvmx_ipd_int_sum {
397 uint64_t u64;
398 struct cvmx_ipd_int_sum_s {
399 uint64_t reserved_12_63:52;
400 uint64_t pq_sub:1;
401 uint64_t pq_add:1;
402 uint64_t bc_ovr:1;
403 uint64_t d_coll:1;
404 uint64_t c_coll:1;
405 uint64_t cc_ovr:1;
406 uint64_t dc_ovr:1;
407 uint64_t bp_sub:1;
408 uint64_t prc_par3:1;
409 uint64_t prc_par2:1;
410 uint64_t prc_par1:1;
411 uint64_t prc_par0:1;
412 } s;
413 struct cvmx_ipd_int_sum_cn30xx {
414 uint64_t reserved_5_63:59;
415 uint64_t bp_sub:1;
416 uint64_t prc_par3:1;
417 uint64_t prc_par2:1;
418 uint64_t prc_par1:1;
419 uint64_t prc_par0:1;
420 } cn30xx;
421 struct cvmx_ipd_int_sum_cn30xx cn31xx;
422 struct cvmx_ipd_int_sum_cn38xx {
423 uint64_t reserved_10_63:54;
424 uint64_t bc_ovr:1;
425 uint64_t d_coll:1;
426 uint64_t c_coll:1;
427 uint64_t cc_ovr:1;
428 uint64_t dc_ovr:1;
429 uint64_t bp_sub:1;
430 uint64_t prc_par3:1;
431 uint64_t prc_par2:1;
432 uint64_t prc_par1:1;
433 uint64_t prc_par0:1;
434 } cn38xx;
435 struct cvmx_ipd_int_sum_cn30xx cn38xxp2;
436 struct cvmx_ipd_int_sum_cn38xx cn50xx;
437 struct cvmx_ipd_int_sum_s cn52xx;
438 struct cvmx_ipd_int_sum_s cn52xxp1;
439 struct cvmx_ipd_int_sum_s cn56xx;
440 struct cvmx_ipd_int_sum_s cn56xxp1;
441 struct cvmx_ipd_int_sum_cn38xx cn58xx;
442 struct cvmx_ipd_int_sum_cn38xx cn58xxp1;
443};
444
445union cvmx_ipd_not_1st_mbuff_skip {
446 uint64_t u64;
447 struct cvmx_ipd_not_1st_mbuff_skip_s {
448 uint64_t reserved_6_63:58;
449 uint64_t skip_sz:6;
450 } s;
451 struct cvmx_ipd_not_1st_mbuff_skip_s cn30xx;
452 struct cvmx_ipd_not_1st_mbuff_skip_s cn31xx;
453 struct cvmx_ipd_not_1st_mbuff_skip_s cn38xx;
454 struct cvmx_ipd_not_1st_mbuff_skip_s cn38xxp2;
455 struct cvmx_ipd_not_1st_mbuff_skip_s cn50xx;
456 struct cvmx_ipd_not_1st_mbuff_skip_s cn52xx;
457 struct cvmx_ipd_not_1st_mbuff_skip_s cn52xxp1;
458 struct cvmx_ipd_not_1st_mbuff_skip_s cn56xx;
459 struct cvmx_ipd_not_1st_mbuff_skip_s cn56xxp1;
460 struct cvmx_ipd_not_1st_mbuff_skip_s cn58xx;
461 struct cvmx_ipd_not_1st_mbuff_skip_s cn58xxp1;
462};
463
464union cvmx_ipd_packet_mbuff_size {
465 uint64_t u64;
466 struct cvmx_ipd_packet_mbuff_size_s {
467 uint64_t reserved_12_63:52;
468 uint64_t mb_size:12;
469 } s;
470 struct cvmx_ipd_packet_mbuff_size_s cn30xx;
471 struct cvmx_ipd_packet_mbuff_size_s cn31xx;
472 struct cvmx_ipd_packet_mbuff_size_s cn38xx;
473 struct cvmx_ipd_packet_mbuff_size_s cn38xxp2;
474 struct cvmx_ipd_packet_mbuff_size_s cn50xx;
475 struct cvmx_ipd_packet_mbuff_size_s cn52xx;
476 struct cvmx_ipd_packet_mbuff_size_s cn52xxp1;
477 struct cvmx_ipd_packet_mbuff_size_s cn56xx;
478 struct cvmx_ipd_packet_mbuff_size_s cn56xxp1;
479 struct cvmx_ipd_packet_mbuff_size_s cn58xx;
480 struct cvmx_ipd_packet_mbuff_size_s cn58xxp1;
481};
482
483union cvmx_ipd_pkt_ptr_valid {
484 uint64_t u64;
485 struct cvmx_ipd_pkt_ptr_valid_s {
486 uint64_t reserved_29_63:35;
487 uint64_t ptr:29;
488 } s;
489 struct cvmx_ipd_pkt_ptr_valid_s cn30xx;
490 struct cvmx_ipd_pkt_ptr_valid_s cn31xx;
491 struct cvmx_ipd_pkt_ptr_valid_s cn38xx;
492 struct cvmx_ipd_pkt_ptr_valid_s cn50xx;
493 struct cvmx_ipd_pkt_ptr_valid_s cn52xx;
494 struct cvmx_ipd_pkt_ptr_valid_s cn52xxp1;
495 struct cvmx_ipd_pkt_ptr_valid_s cn56xx;
496 struct cvmx_ipd_pkt_ptr_valid_s cn56xxp1;
497 struct cvmx_ipd_pkt_ptr_valid_s cn58xx;
498 struct cvmx_ipd_pkt_ptr_valid_s cn58xxp1;
499};
500
501union cvmx_ipd_portx_bp_page_cnt {
502 uint64_t u64;
503 struct cvmx_ipd_portx_bp_page_cnt_s {
504 uint64_t reserved_18_63:46;
505 uint64_t bp_enb:1;
506 uint64_t page_cnt:17;
507 } s;
508 struct cvmx_ipd_portx_bp_page_cnt_s cn30xx;
509 struct cvmx_ipd_portx_bp_page_cnt_s cn31xx;
510 struct cvmx_ipd_portx_bp_page_cnt_s cn38xx;
511 struct cvmx_ipd_portx_bp_page_cnt_s cn38xxp2;
512 struct cvmx_ipd_portx_bp_page_cnt_s cn50xx;
513 struct cvmx_ipd_portx_bp_page_cnt_s cn52xx;
514 struct cvmx_ipd_portx_bp_page_cnt_s cn52xxp1;
515 struct cvmx_ipd_portx_bp_page_cnt_s cn56xx;
516 struct cvmx_ipd_portx_bp_page_cnt_s cn56xxp1;
517 struct cvmx_ipd_portx_bp_page_cnt_s cn58xx;
518 struct cvmx_ipd_portx_bp_page_cnt_s cn58xxp1;
519};
520
521union cvmx_ipd_portx_bp_page_cnt2 {
522 uint64_t u64;
523 struct cvmx_ipd_portx_bp_page_cnt2_s {
524 uint64_t reserved_18_63:46;
525 uint64_t bp_enb:1;
526 uint64_t page_cnt:17;
527 } s;
528 struct cvmx_ipd_portx_bp_page_cnt2_s cn52xx;
529 struct cvmx_ipd_portx_bp_page_cnt2_s cn52xxp1;
530 struct cvmx_ipd_portx_bp_page_cnt2_s cn56xx;
531 struct cvmx_ipd_portx_bp_page_cnt2_s cn56xxp1;
532};
533
534union cvmx_ipd_port_bp_counters2_pairx {
535 uint64_t u64;
536 struct cvmx_ipd_port_bp_counters2_pairx_s {
537 uint64_t reserved_25_63:39;
538 uint64_t cnt_val:25;
539 } s;
540 struct cvmx_ipd_port_bp_counters2_pairx_s cn52xx;
541 struct cvmx_ipd_port_bp_counters2_pairx_s cn52xxp1;
542 struct cvmx_ipd_port_bp_counters2_pairx_s cn56xx;
543 struct cvmx_ipd_port_bp_counters2_pairx_s cn56xxp1;
544};
545
546union cvmx_ipd_port_bp_counters_pairx {
547 uint64_t u64;
548 struct cvmx_ipd_port_bp_counters_pairx_s {
549 uint64_t reserved_25_63:39;
550 uint64_t cnt_val:25;
551 } s;
552 struct cvmx_ipd_port_bp_counters_pairx_s cn30xx;
553 struct cvmx_ipd_port_bp_counters_pairx_s cn31xx;
554 struct cvmx_ipd_port_bp_counters_pairx_s cn38xx;
555 struct cvmx_ipd_port_bp_counters_pairx_s cn38xxp2;
556 struct cvmx_ipd_port_bp_counters_pairx_s cn50xx;
557 struct cvmx_ipd_port_bp_counters_pairx_s cn52xx;
558 struct cvmx_ipd_port_bp_counters_pairx_s cn52xxp1;
559 struct cvmx_ipd_port_bp_counters_pairx_s cn56xx;
560 struct cvmx_ipd_port_bp_counters_pairx_s cn56xxp1;
561 struct cvmx_ipd_port_bp_counters_pairx_s cn58xx;
562 struct cvmx_ipd_port_bp_counters_pairx_s cn58xxp1;
563};
564
565union cvmx_ipd_port_qos_x_cnt {
566 uint64_t u64;
567 struct cvmx_ipd_port_qos_x_cnt_s {
568 uint64_t wmark:32;
569 uint64_t cnt:32;
570 } s;
571 struct cvmx_ipd_port_qos_x_cnt_s cn52xx;
572 struct cvmx_ipd_port_qos_x_cnt_s cn52xxp1;
573 struct cvmx_ipd_port_qos_x_cnt_s cn56xx;
574 struct cvmx_ipd_port_qos_x_cnt_s cn56xxp1;
575};
576
577union cvmx_ipd_port_qos_intx {
578 uint64_t u64;
579 struct cvmx_ipd_port_qos_intx_s {
580 uint64_t intr:64;
581 } s;
582 struct cvmx_ipd_port_qos_intx_s cn52xx;
583 struct cvmx_ipd_port_qos_intx_s cn52xxp1;
584 struct cvmx_ipd_port_qos_intx_s cn56xx;
585 struct cvmx_ipd_port_qos_intx_s cn56xxp1;
586};
587
588union cvmx_ipd_port_qos_int_enbx {
589 uint64_t u64;
590 struct cvmx_ipd_port_qos_int_enbx_s {
591 uint64_t enb:64;
592 } s;
593 struct cvmx_ipd_port_qos_int_enbx_s cn52xx;
594 struct cvmx_ipd_port_qos_int_enbx_s cn52xxp1;
595 struct cvmx_ipd_port_qos_int_enbx_s cn56xx;
596 struct cvmx_ipd_port_qos_int_enbx_s cn56xxp1;
597};
598
599union cvmx_ipd_prc_hold_ptr_fifo_ctl {
600 uint64_t u64;
601 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s {
602 uint64_t reserved_39_63:25;
603 uint64_t max_pkt:3;
604 uint64_t praddr:3;
605 uint64_t ptr:29;
606 uint64_t cena:1;
607 uint64_t raddr:3;
608 } s;
609 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn30xx;
610 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn31xx;
611 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn38xx;
612 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn50xx;
613 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn52xx;
614 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn52xxp1;
615 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn56xx;
616 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn56xxp1;
617 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn58xx;
618 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn58xxp1;
619};
620
621union cvmx_ipd_prc_port_ptr_fifo_ctl {
622 uint64_t u64;
623 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s {
624 uint64_t reserved_44_63:20;
625 uint64_t max_pkt:7;
626 uint64_t ptr:29;
627 uint64_t cena:1;
628 uint64_t raddr:7;
629 } s;
630 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn30xx;
631 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn31xx;
632 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn38xx;
633 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn50xx;
634 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn52xx;
635 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn52xxp1;
636 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn56xx;
637 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn56xxp1;
638 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn58xx;
639 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn58xxp1;
640};
641
642union cvmx_ipd_ptr_count {
643 uint64_t u64;
644 struct cvmx_ipd_ptr_count_s {
645 uint64_t reserved_19_63:45;
646 uint64_t pktv_cnt:1;
647 uint64_t wqev_cnt:1;
648 uint64_t pfif_cnt:3;
649 uint64_t pkt_pcnt:7;
650 uint64_t wqe_pcnt:7;
651 } s;
652 struct cvmx_ipd_ptr_count_s cn30xx;
653 struct cvmx_ipd_ptr_count_s cn31xx;
654 struct cvmx_ipd_ptr_count_s cn38xx;
655 struct cvmx_ipd_ptr_count_s cn38xxp2;
656 struct cvmx_ipd_ptr_count_s cn50xx;
657 struct cvmx_ipd_ptr_count_s cn52xx;
658 struct cvmx_ipd_ptr_count_s cn52xxp1;
659 struct cvmx_ipd_ptr_count_s cn56xx;
660 struct cvmx_ipd_ptr_count_s cn56xxp1;
661 struct cvmx_ipd_ptr_count_s cn58xx;
662 struct cvmx_ipd_ptr_count_s cn58xxp1;
663};
664
665union cvmx_ipd_pwp_ptr_fifo_ctl {
666 uint64_t u64;
667 struct cvmx_ipd_pwp_ptr_fifo_ctl_s {
668 uint64_t reserved_61_63:3;
669 uint64_t max_cnts:7;
670 uint64_t wraddr:8;
671 uint64_t praddr:8;
672 uint64_t ptr:29;
673 uint64_t cena:1;
674 uint64_t raddr:8;
675 } s;
676 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn30xx;
677 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn31xx;
678 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn38xx;
679 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn50xx;
680 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn52xx;
681 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn52xxp1;
682 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn56xx;
683 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn56xxp1;
684 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn58xx;
685 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn58xxp1;
686};
687
688union cvmx_ipd_qosx_red_marks {
689 uint64_t u64;
690 struct cvmx_ipd_qosx_red_marks_s {
691 uint64_t drop:32;
692 uint64_t pass:32;
693 } s;
694 struct cvmx_ipd_qosx_red_marks_s cn30xx;
695 struct cvmx_ipd_qosx_red_marks_s cn31xx;
696 struct cvmx_ipd_qosx_red_marks_s cn38xx;
697 struct cvmx_ipd_qosx_red_marks_s cn38xxp2;
698 struct cvmx_ipd_qosx_red_marks_s cn50xx;
699 struct cvmx_ipd_qosx_red_marks_s cn52xx;
700 struct cvmx_ipd_qosx_red_marks_s cn52xxp1;
701 struct cvmx_ipd_qosx_red_marks_s cn56xx;
702 struct cvmx_ipd_qosx_red_marks_s cn56xxp1;
703 struct cvmx_ipd_qosx_red_marks_s cn58xx;
704 struct cvmx_ipd_qosx_red_marks_s cn58xxp1;
705};
706
707union cvmx_ipd_que0_free_page_cnt {
708 uint64_t u64;
709 struct cvmx_ipd_que0_free_page_cnt_s {
710 uint64_t reserved_32_63:32;
711 uint64_t q0_pcnt:32;
712 } s;
713 struct cvmx_ipd_que0_free_page_cnt_s cn30xx;
714 struct cvmx_ipd_que0_free_page_cnt_s cn31xx;
715 struct cvmx_ipd_que0_free_page_cnt_s cn38xx;
716 struct cvmx_ipd_que0_free_page_cnt_s cn38xxp2;
717 struct cvmx_ipd_que0_free_page_cnt_s cn50xx;
718 struct cvmx_ipd_que0_free_page_cnt_s cn52xx;
719 struct cvmx_ipd_que0_free_page_cnt_s cn52xxp1;
720 struct cvmx_ipd_que0_free_page_cnt_s cn56xx;
721 struct cvmx_ipd_que0_free_page_cnt_s cn56xxp1;
722 struct cvmx_ipd_que0_free_page_cnt_s cn58xx;
723 struct cvmx_ipd_que0_free_page_cnt_s cn58xxp1;
724};
725
726union cvmx_ipd_red_port_enable {
727 uint64_t u64;
728 struct cvmx_ipd_red_port_enable_s {
729 uint64_t prb_dly:14;
730 uint64_t avg_dly:14;
731 uint64_t prt_enb:36;
732 } s;
733 struct cvmx_ipd_red_port_enable_s cn30xx;
734 struct cvmx_ipd_red_port_enable_s cn31xx;
735 struct cvmx_ipd_red_port_enable_s cn38xx;
736 struct cvmx_ipd_red_port_enable_s cn38xxp2;
737 struct cvmx_ipd_red_port_enable_s cn50xx;
738 struct cvmx_ipd_red_port_enable_s cn52xx;
739 struct cvmx_ipd_red_port_enable_s cn52xxp1;
740 struct cvmx_ipd_red_port_enable_s cn56xx;
741 struct cvmx_ipd_red_port_enable_s cn56xxp1;
742 struct cvmx_ipd_red_port_enable_s cn58xx;
743 struct cvmx_ipd_red_port_enable_s cn58xxp1;
744};
745
746union cvmx_ipd_red_port_enable2 {
747 uint64_t u64;
748 struct cvmx_ipd_red_port_enable2_s {
749 uint64_t reserved_4_63:60;
750 uint64_t prt_enb:4;
751 } s;
752 struct cvmx_ipd_red_port_enable2_s cn52xx;
753 struct cvmx_ipd_red_port_enable2_s cn52xxp1;
754 struct cvmx_ipd_red_port_enable2_s cn56xx;
755 struct cvmx_ipd_red_port_enable2_s cn56xxp1;
756};
757
758union cvmx_ipd_red_quex_param {
759 uint64_t u64;
760 struct cvmx_ipd_red_quex_param_s {
761 uint64_t reserved_49_63:15;
762 uint64_t use_pcnt:1;
763 uint64_t new_con:8;
764 uint64_t avg_con:8;
765 uint64_t prb_con:32;
766 } s;
767 struct cvmx_ipd_red_quex_param_s cn30xx;
768 struct cvmx_ipd_red_quex_param_s cn31xx;
769 struct cvmx_ipd_red_quex_param_s cn38xx;
770 struct cvmx_ipd_red_quex_param_s cn38xxp2;
771 struct cvmx_ipd_red_quex_param_s cn50xx;
772 struct cvmx_ipd_red_quex_param_s cn52xx;
773 struct cvmx_ipd_red_quex_param_s cn52xxp1;
774 struct cvmx_ipd_red_quex_param_s cn56xx;
775 struct cvmx_ipd_red_quex_param_s cn56xxp1;
776 struct cvmx_ipd_red_quex_param_s cn58xx;
777 struct cvmx_ipd_red_quex_param_s cn58xxp1;
778};
779
780union cvmx_ipd_sub_port_bp_page_cnt {
781 uint64_t u64;
782 struct cvmx_ipd_sub_port_bp_page_cnt_s {
783 uint64_t reserved_31_63:33;
784 uint64_t port:6;
785 uint64_t page_cnt:25;
786 } s;
787 struct cvmx_ipd_sub_port_bp_page_cnt_s cn30xx;
788 struct cvmx_ipd_sub_port_bp_page_cnt_s cn31xx;
789 struct cvmx_ipd_sub_port_bp_page_cnt_s cn38xx;
790 struct cvmx_ipd_sub_port_bp_page_cnt_s cn38xxp2;
791 struct cvmx_ipd_sub_port_bp_page_cnt_s cn50xx;
792 struct cvmx_ipd_sub_port_bp_page_cnt_s cn52xx;
793 struct cvmx_ipd_sub_port_bp_page_cnt_s cn52xxp1;
794 struct cvmx_ipd_sub_port_bp_page_cnt_s cn56xx;
795 struct cvmx_ipd_sub_port_bp_page_cnt_s cn56xxp1;
796 struct cvmx_ipd_sub_port_bp_page_cnt_s cn58xx;
797 struct cvmx_ipd_sub_port_bp_page_cnt_s cn58xxp1;
798};
799
800union cvmx_ipd_sub_port_fcs {
801 uint64_t u64;
802 struct cvmx_ipd_sub_port_fcs_s {
803 uint64_t reserved_40_63:24;
804 uint64_t port_bit2:4;
805 uint64_t reserved_32_35:4;
806 uint64_t port_bit:32;
807 } s;
808 struct cvmx_ipd_sub_port_fcs_cn30xx {
809 uint64_t reserved_3_63:61;
810 uint64_t port_bit:3;
811 } cn30xx;
812 struct cvmx_ipd_sub_port_fcs_cn30xx cn31xx;
813 struct cvmx_ipd_sub_port_fcs_cn38xx {
814 uint64_t reserved_32_63:32;
815 uint64_t port_bit:32;
816 } cn38xx;
817 struct cvmx_ipd_sub_port_fcs_cn38xx cn38xxp2;
818 struct cvmx_ipd_sub_port_fcs_cn30xx cn50xx;
819 struct cvmx_ipd_sub_port_fcs_s cn52xx;
820 struct cvmx_ipd_sub_port_fcs_s cn52xxp1;
821 struct cvmx_ipd_sub_port_fcs_s cn56xx;
822 struct cvmx_ipd_sub_port_fcs_s cn56xxp1;
823 struct cvmx_ipd_sub_port_fcs_cn38xx cn58xx;
824 struct cvmx_ipd_sub_port_fcs_cn38xx cn58xxp1;
825};
826
827union cvmx_ipd_sub_port_qos_cnt {
828 uint64_t u64;
829 struct cvmx_ipd_sub_port_qos_cnt_s {
830 uint64_t reserved_41_63:23;
831 uint64_t port_qos:9;
832 uint64_t cnt:32;
833 } s;
834 struct cvmx_ipd_sub_port_qos_cnt_s cn52xx;
835 struct cvmx_ipd_sub_port_qos_cnt_s cn52xxp1;
836 struct cvmx_ipd_sub_port_qos_cnt_s cn56xx;
837 struct cvmx_ipd_sub_port_qos_cnt_s cn56xxp1;
838};
839
840union cvmx_ipd_wqe_fpa_queue {
841 uint64_t u64;
842 struct cvmx_ipd_wqe_fpa_queue_s {
843 uint64_t reserved_3_63:61;
844 uint64_t wqe_pool:3;
845 } s;
846 struct cvmx_ipd_wqe_fpa_queue_s cn30xx;
847 struct cvmx_ipd_wqe_fpa_queue_s cn31xx;
848 struct cvmx_ipd_wqe_fpa_queue_s cn38xx;
849 struct cvmx_ipd_wqe_fpa_queue_s cn38xxp2;
850 struct cvmx_ipd_wqe_fpa_queue_s cn50xx;
851 struct cvmx_ipd_wqe_fpa_queue_s cn52xx;
852 struct cvmx_ipd_wqe_fpa_queue_s cn52xxp1;
853 struct cvmx_ipd_wqe_fpa_queue_s cn56xx;
854 struct cvmx_ipd_wqe_fpa_queue_s cn56xxp1;
855 struct cvmx_ipd_wqe_fpa_queue_s cn58xx;
856 struct cvmx_ipd_wqe_fpa_queue_s cn58xxp1;
857};
858
859union cvmx_ipd_wqe_ptr_valid {
860 uint64_t u64;
861 struct cvmx_ipd_wqe_ptr_valid_s {
862 uint64_t reserved_29_63:35;
863 uint64_t ptr:29;
864 } s;
865 struct cvmx_ipd_wqe_ptr_valid_s cn30xx;
866 struct cvmx_ipd_wqe_ptr_valid_s cn31xx;
867 struct cvmx_ipd_wqe_ptr_valid_s cn38xx;
868 struct cvmx_ipd_wqe_ptr_valid_s cn50xx;
869 struct cvmx_ipd_wqe_ptr_valid_s cn52xx;
870 struct cvmx_ipd_wqe_ptr_valid_s cn52xxp1;
871 struct cvmx_ipd_wqe_ptr_valid_s cn56xx;
872 struct cvmx_ipd_wqe_ptr_valid_s cn56xxp1;
873 struct cvmx_ipd_wqe_ptr_valid_s cn58xx;
874 struct cvmx_ipd_wqe_ptr_valid_s cn58xxp1;
875};
876
877#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-l2c-defs.h b/arch/mips/include/asm/octeon/cvmx-l2c-defs.h
new file mode 100644
index 000000000000..337583842b51
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-l2c-defs.h
@@ -0,0 +1,963 @@
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_L2C_DEFS_H__
29#define __CVMX_L2C_DEFS_H__
30
31#define CVMX_L2C_BST0 \
32 CVMX_ADD_IO_SEG(0x00011800800007F8ull)
33#define CVMX_L2C_BST1 \
34 CVMX_ADD_IO_SEG(0x00011800800007F0ull)
35#define CVMX_L2C_BST2 \
36 CVMX_ADD_IO_SEG(0x00011800800007E8ull)
37#define CVMX_L2C_CFG \
38 CVMX_ADD_IO_SEG(0x0001180080000000ull)
39#define CVMX_L2C_DBG \
40 CVMX_ADD_IO_SEG(0x0001180080000030ull)
41#define CVMX_L2C_DUT \
42 CVMX_ADD_IO_SEG(0x0001180080000050ull)
43#define CVMX_L2C_GRPWRR0 \
44 CVMX_ADD_IO_SEG(0x00011800800000C8ull)
45#define CVMX_L2C_GRPWRR1 \
46 CVMX_ADD_IO_SEG(0x00011800800000D0ull)
47#define CVMX_L2C_INT_EN \
48 CVMX_ADD_IO_SEG(0x0001180080000100ull)
49#define CVMX_L2C_INT_STAT \
50 CVMX_ADD_IO_SEG(0x00011800800000F8ull)
51#define CVMX_L2C_LCKBASE \
52 CVMX_ADD_IO_SEG(0x0001180080000058ull)
53#define CVMX_L2C_LCKOFF \
54 CVMX_ADD_IO_SEG(0x0001180080000060ull)
55#define CVMX_L2C_LFB0 \
56 CVMX_ADD_IO_SEG(0x0001180080000038ull)
57#define CVMX_L2C_LFB1 \
58 CVMX_ADD_IO_SEG(0x0001180080000040ull)
59#define CVMX_L2C_LFB2 \
60 CVMX_ADD_IO_SEG(0x0001180080000048ull)
61#define CVMX_L2C_LFB3 \
62 CVMX_ADD_IO_SEG(0x00011800800000B8ull)
63#define CVMX_L2C_OOB \
64 CVMX_ADD_IO_SEG(0x00011800800000D8ull)
65#define CVMX_L2C_OOB1 \
66 CVMX_ADD_IO_SEG(0x00011800800000E0ull)
67#define CVMX_L2C_OOB2 \
68 CVMX_ADD_IO_SEG(0x00011800800000E8ull)
69#define CVMX_L2C_OOB3 \
70 CVMX_ADD_IO_SEG(0x00011800800000F0ull)
71#define CVMX_L2C_PFC0 \
72 CVMX_ADD_IO_SEG(0x0001180080000098ull)
73#define CVMX_L2C_PFC1 \
74 CVMX_ADD_IO_SEG(0x00011800800000A0ull)
75#define CVMX_L2C_PFC2 \
76 CVMX_ADD_IO_SEG(0x00011800800000A8ull)
77#define CVMX_L2C_PFC3 \
78 CVMX_ADD_IO_SEG(0x00011800800000B0ull)
79#define CVMX_L2C_PFCTL \
80 CVMX_ADD_IO_SEG(0x0001180080000090ull)
81#define CVMX_L2C_PFCX(offset) \
82 CVMX_ADD_IO_SEG(0x0001180080000098ull + (((offset) & 3) * 8))
83#define CVMX_L2C_PPGRP \
84 CVMX_ADD_IO_SEG(0x00011800800000C0ull)
85#define CVMX_L2C_SPAR0 \
86 CVMX_ADD_IO_SEG(0x0001180080000068ull)
87#define CVMX_L2C_SPAR1 \
88 CVMX_ADD_IO_SEG(0x0001180080000070ull)
89#define CVMX_L2C_SPAR2 \
90 CVMX_ADD_IO_SEG(0x0001180080000078ull)
91#define CVMX_L2C_SPAR3 \
92 CVMX_ADD_IO_SEG(0x0001180080000080ull)
93#define CVMX_L2C_SPAR4 \
94 CVMX_ADD_IO_SEG(0x0001180080000088ull)
95
96union cvmx_l2c_bst0 {
97 uint64_t u64;
98 struct cvmx_l2c_bst0_s {
99 uint64_t reserved_24_63:40;
100 uint64_t dtbnk:1;
101 uint64_t wlb_msk:4;
102 uint64_t dtcnt:13;
103 uint64_t dt:1;
104 uint64_t stin_msk:1;
105 uint64_t wlb_dat:4;
106 } s;
107 struct cvmx_l2c_bst0_cn30xx {
108 uint64_t reserved_23_63:41;
109 uint64_t wlb_msk:4;
110 uint64_t reserved_15_18:4;
111 uint64_t dtcnt:9;
112 uint64_t dt:1;
113 uint64_t reserved_4_4:1;
114 uint64_t wlb_dat:4;
115 } cn30xx;
116 struct cvmx_l2c_bst0_cn31xx {
117 uint64_t reserved_23_63:41;
118 uint64_t wlb_msk:4;
119 uint64_t reserved_16_18:3;
120 uint64_t dtcnt:10;
121 uint64_t dt:1;
122 uint64_t stin_msk:1;
123 uint64_t wlb_dat:4;
124 } cn31xx;
125 struct cvmx_l2c_bst0_cn38xx {
126 uint64_t reserved_19_63:45;
127 uint64_t dtcnt:13;
128 uint64_t dt:1;
129 uint64_t stin_msk:1;
130 uint64_t wlb_dat:4;
131 } cn38xx;
132 struct cvmx_l2c_bst0_cn38xx cn38xxp2;
133 struct cvmx_l2c_bst0_cn50xx {
134 uint64_t reserved_24_63:40;
135 uint64_t dtbnk:1;
136 uint64_t wlb_msk:4;
137 uint64_t reserved_16_18:3;
138 uint64_t dtcnt:10;
139 uint64_t dt:1;
140 uint64_t stin_msk:1;
141 uint64_t wlb_dat:4;
142 } cn50xx;
143 struct cvmx_l2c_bst0_cn50xx cn52xx;
144 struct cvmx_l2c_bst0_cn50xx cn52xxp1;
145 struct cvmx_l2c_bst0_s cn56xx;
146 struct cvmx_l2c_bst0_s cn56xxp1;
147 struct cvmx_l2c_bst0_s cn58xx;
148 struct cvmx_l2c_bst0_s cn58xxp1;
149};
150
151union cvmx_l2c_bst1 {
152 uint64_t u64;
153 struct cvmx_l2c_bst1_s {
154 uint64_t reserved_9_63:55;
155 uint64_t l2t:9;
156 } s;
157 struct cvmx_l2c_bst1_cn30xx {
158 uint64_t reserved_16_63:48;
159 uint64_t vwdf:4;
160 uint64_t lrf:2;
161 uint64_t vab_vwcf:1;
162 uint64_t reserved_5_8:4;
163 uint64_t l2t:5;
164 } cn30xx;
165 struct cvmx_l2c_bst1_cn30xx cn31xx;
166 struct cvmx_l2c_bst1_cn38xx {
167 uint64_t reserved_16_63:48;
168 uint64_t vwdf:4;
169 uint64_t lrf:2;
170 uint64_t vab_vwcf:1;
171 uint64_t l2t:9;
172 } cn38xx;
173 struct cvmx_l2c_bst1_cn38xx cn38xxp2;
174 struct cvmx_l2c_bst1_cn38xx cn50xx;
175 struct cvmx_l2c_bst1_cn52xx {
176 uint64_t reserved_19_63:45;
177 uint64_t plc2:1;
178 uint64_t plc1:1;
179 uint64_t plc0:1;
180 uint64_t vwdf:4;
181 uint64_t reserved_11_11:1;
182 uint64_t ilc:1;
183 uint64_t vab_vwcf:1;
184 uint64_t l2t:9;
185 } cn52xx;
186 struct cvmx_l2c_bst1_cn52xx cn52xxp1;
187 struct cvmx_l2c_bst1_cn56xx {
188 uint64_t reserved_24_63:40;
189 uint64_t plc2:1;
190 uint64_t plc1:1;
191 uint64_t plc0:1;
192 uint64_t ilc:1;
193 uint64_t vwdf1:4;
194 uint64_t vwdf0:4;
195 uint64_t vab_vwcf1:1;
196 uint64_t reserved_10_10:1;
197 uint64_t vab_vwcf0:1;
198 uint64_t l2t:9;
199 } cn56xx;
200 struct cvmx_l2c_bst1_cn56xx cn56xxp1;
201 struct cvmx_l2c_bst1_cn38xx cn58xx;
202 struct cvmx_l2c_bst1_cn38xx cn58xxp1;
203};
204
205union cvmx_l2c_bst2 {
206 uint64_t u64;
207 struct cvmx_l2c_bst2_s {
208 uint64_t reserved_16_63:48;
209 uint64_t mrb:4;
210 uint64_t reserved_4_11:8;
211 uint64_t ipcbst:1;
212 uint64_t picbst:1;
213 uint64_t xrdmsk:1;
214 uint64_t xrddat:1;
215 } s;
216 struct cvmx_l2c_bst2_cn30xx {
217 uint64_t reserved_16_63:48;
218 uint64_t mrb:4;
219 uint64_t rmdf:4;
220 uint64_t reserved_4_7:4;
221 uint64_t ipcbst:1;
222 uint64_t reserved_2_2:1;
223 uint64_t xrdmsk:1;
224 uint64_t xrddat:1;
225 } cn30xx;
226 struct cvmx_l2c_bst2_cn30xx cn31xx;
227 struct cvmx_l2c_bst2_cn38xx {
228 uint64_t reserved_16_63:48;
229 uint64_t mrb:4;
230 uint64_t rmdf:4;
231 uint64_t rhdf:4;
232 uint64_t ipcbst:1;
233 uint64_t picbst:1;
234 uint64_t xrdmsk:1;
235 uint64_t xrddat:1;
236 } cn38xx;
237 struct cvmx_l2c_bst2_cn38xx cn38xxp2;
238 struct cvmx_l2c_bst2_cn30xx cn50xx;
239 struct cvmx_l2c_bst2_cn30xx cn52xx;
240 struct cvmx_l2c_bst2_cn30xx cn52xxp1;
241 struct cvmx_l2c_bst2_cn56xx {
242 uint64_t reserved_16_63:48;
243 uint64_t mrb:4;
244 uint64_t rmdb:4;
245 uint64_t rhdb:4;
246 uint64_t ipcbst:1;
247 uint64_t picbst:1;
248 uint64_t xrdmsk:1;
249 uint64_t xrddat:1;
250 } cn56xx;
251 struct cvmx_l2c_bst2_cn56xx cn56xxp1;
252 struct cvmx_l2c_bst2_cn56xx cn58xx;
253 struct cvmx_l2c_bst2_cn56xx cn58xxp1;
254};
255
256union cvmx_l2c_cfg {
257 uint64_t u64;
258 struct cvmx_l2c_cfg_s {
259 uint64_t reserved_20_63:44;
260 uint64_t bstrun:1;
261 uint64_t lbist:1;
262 uint64_t xor_bank:1;
263 uint64_t dpres1:1;
264 uint64_t dpres0:1;
265 uint64_t dfill_dis:1;
266 uint64_t fpexp:4;
267 uint64_t fpempty:1;
268 uint64_t fpen:1;
269 uint64_t idxalias:1;
270 uint64_t mwf_crd:4;
271 uint64_t rsp_arb_mode:1;
272 uint64_t rfb_arb_mode:1;
273 uint64_t lrf_arb_mode:1;
274 } s;
275 struct cvmx_l2c_cfg_cn30xx {
276 uint64_t reserved_14_63:50;
277 uint64_t fpexp:4;
278 uint64_t fpempty:1;
279 uint64_t fpen:1;
280 uint64_t idxalias:1;
281 uint64_t mwf_crd:4;
282 uint64_t rsp_arb_mode:1;
283 uint64_t rfb_arb_mode:1;
284 uint64_t lrf_arb_mode:1;
285 } cn30xx;
286 struct cvmx_l2c_cfg_cn30xx cn31xx;
287 struct cvmx_l2c_cfg_cn30xx cn38xx;
288 struct cvmx_l2c_cfg_cn30xx cn38xxp2;
289 struct cvmx_l2c_cfg_cn50xx {
290 uint64_t reserved_20_63:44;
291 uint64_t bstrun:1;
292 uint64_t lbist:1;
293 uint64_t reserved_14_17:4;
294 uint64_t fpexp:4;
295 uint64_t fpempty:1;
296 uint64_t fpen:1;
297 uint64_t idxalias:1;
298 uint64_t mwf_crd:4;
299 uint64_t rsp_arb_mode:1;
300 uint64_t rfb_arb_mode:1;
301 uint64_t lrf_arb_mode:1;
302 } cn50xx;
303 struct cvmx_l2c_cfg_cn50xx cn52xx;
304 struct cvmx_l2c_cfg_cn50xx cn52xxp1;
305 struct cvmx_l2c_cfg_s cn56xx;
306 struct cvmx_l2c_cfg_s cn56xxp1;
307 struct cvmx_l2c_cfg_cn58xx {
308 uint64_t reserved_20_63:44;
309 uint64_t bstrun:1;
310 uint64_t lbist:1;
311 uint64_t reserved_15_17:3;
312 uint64_t dfill_dis:1;
313 uint64_t fpexp:4;
314 uint64_t fpempty:1;
315 uint64_t fpen:1;
316 uint64_t idxalias:1;
317 uint64_t mwf_crd:4;
318 uint64_t rsp_arb_mode:1;
319 uint64_t rfb_arb_mode:1;
320 uint64_t lrf_arb_mode:1;
321 } cn58xx;
322 struct cvmx_l2c_cfg_cn58xxp1 {
323 uint64_t reserved_15_63:49;
324 uint64_t dfill_dis:1;
325 uint64_t fpexp:4;
326 uint64_t fpempty:1;
327 uint64_t fpen:1;
328 uint64_t idxalias:1;
329 uint64_t mwf_crd:4;
330 uint64_t rsp_arb_mode:1;
331 uint64_t rfb_arb_mode:1;
332 uint64_t lrf_arb_mode:1;
333 } cn58xxp1;
334};
335
336union cvmx_l2c_dbg {
337 uint64_t u64;
338 struct cvmx_l2c_dbg_s {
339 uint64_t reserved_15_63:49;
340 uint64_t lfb_enum:4;
341 uint64_t lfb_dmp:1;
342 uint64_t ppnum:4;
343 uint64_t set:3;
344 uint64_t finv:1;
345 uint64_t l2d:1;
346 uint64_t l2t:1;
347 } s;
348 struct cvmx_l2c_dbg_cn30xx {
349 uint64_t reserved_13_63:51;
350 uint64_t lfb_enum:2;
351 uint64_t lfb_dmp:1;
352 uint64_t reserved_5_9:5;
353 uint64_t set:2;
354 uint64_t finv:1;
355 uint64_t l2d:1;
356 uint64_t l2t:1;
357 } cn30xx;
358 struct cvmx_l2c_dbg_cn31xx {
359 uint64_t reserved_14_63:50;
360 uint64_t lfb_enum:3;
361 uint64_t lfb_dmp:1;
362 uint64_t reserved_7_9:3;
363 uint64_t ppnum:1;
364 uint64_t reserved_5_5:1;
365 uint64_t set:2;
366 uint64_t finv:1;
367 uint64_t l2d:1;
368 uint64_t l2t:1;
369 } cn31xx;
370 struct cvmx_l2c_dbg_s cn38xx;
371 struct cvmx_l2c_dbg_s cn38xxp2;
372 struct cvmx_l2c_dbg_cn50xx {
373 uint64_t reserved_14_63:50;
374 uint64_t lfb_enum:3;
375 uint64_t lfb_dmp:1;
376 uint64_t reserved_7_9:3;
377 uint64_t ppnum:1;
378 uint64_t set:3;
379 uint64_t finv:1;
380 uint64_t l2d:1;
381 uint64_t l2t:1;
382 } cn50xx;
383 struct cvmx_l2c_dbg_cn52xx {
384 uint64_t reserved_14_63:50;
385 uint64_t lfb_enum:3;
386 uint64_t lfb_dmp:1;
387 uint64_t reserved_8_9:2;
388 uint64_t ppnum:2;
389 uint64_t set:3;
390 uint64_t finv:1;
391 uint64_t l2d:1;
392 uint64_t l2t:1;
393 } cn52xx;
394 struct cvmx_l2c_dbg_cn52xx cn52xxp1;
395 struct cvmx_l2c_dbg_s cn56xx;
396 struct cvmx_l2c_dbg_s cn56xxp1;
397 struct cvmx_l2c_dbg_s cn58xx;
398 struct cvmx_l2c_dbg_s cn58xxp1;
399};
400
401union cvmx_l2c_dut {
402 uint64_t u64;
403 struct cvmx_l2c_dut_s {
404 uint64_t reserved_32_63:32;
405 uint64_t dtena:1;
406 uint64_t reserved_30_30:1;
407 uint64_t dt_vld:1;
408 uint64_t dt_tag:29;
409 } s;
410 struct cvmx_l2c_dut_s cn30xx;
411 struct cvmx_l2c_dut_s cn31xx;
412 struct cvmx_l2c_dut_s cn38xx;
413 struct cvmx_l2c_dut_s cn38xxp2;
414 struct cvmx_l2c_dut_s cn50xx;
415 struct cvmx_l2c_dut_s cn52xx;
416 struct cvmx_l2c_dut_s cn52xxp1;
417 struct cvmx_l2c_dut_s cn56xx;
418 struct cvmx_l2c_dut_s cn56xxp1;
419 struct cvmx_l2c_dut_s cn58xx;
420 struct cvmx_l2c_dut_s cn58xxp1;
421};
422
423union cvmx_l2c_grpwrr0 {
424 uint64_t u64;
425 struct cvmx_l2c_grpwrr0_s {
426 uint64_t plc1rmsk:32;
427 uint64_t plc0rmsk:32;
428 } s;
429 struct cvmx_l2c_grpwrr0_s cn52xx;
430 struct cvmx_l2c_grpwrr0_s cn52xxp1;
431 struct cvmx_l2c_grpwrr0_s cn56xx;
432 struct cvmx_l2c_grpwrr0_s cn56xxp1;
433};
434
435union cvmx_l2c_grpwrr1 {
436 uint64_t u64;
437 struct cvmx_l2c_grpwrr1_s {
438 uint64_t ilcrmsk:32;
439 uint64_t plc2rmsk:32;
440 } s;
441 struct cvmx_l2c_grpwrr1_s cn52xx;
442 struct cvmx_l2c_grpwrr1_s cn52xxp1;
443 struct cvmx_l2c_grpwrr1_s cn56xx;
444 struct cvmx_l2c_grpwrr1_s cn56xxp1;
445};
446
447union cvmx_l2c_int_en {
448 uint64_t u64;
449 struct cvmx_l2c_int_en_s {
450 uint64_t reserved_9_63:55;
451 uint64_t lck2ena:1;
452 uint64_t lckena:1;
453 uint64_t l2ddeden:1;
454 uint64_t l2dsecen:1;
455 uint64_t l2tdeden:1;
456 uint64_t l2tsecen:1;
457 uint64_t oob3en:1;
458 uint64_t oob2en:1;
459 uint64_t oob1en:1;
460 } s;
461 struct cvmx_l2c_int_en_s cn52xx;
462 struct cvmx_l2c_int_en_s cn52xxp1;
463 struct cvmx_l2c_int_en_s cn56xx;
464 struct cvmx_l2c_int_en_s cn56xxp1;
465};
466
467union cvmx_l2c_int_stat {
468 uint64_t u64;
469 struct cvmx_l2c_int_stat_s {
470 uint64_t reserved_9_63:55;
471 uint64_t lck2:1;
472 uint64_t lck:1;
473 uint64_t l2dded:1;
474 uint64_t l2dsec:1;
475 uint64_t l2tded:1;
476 uint64_t l2tsec:1;
477 uint64_t oob3:1;
478 uint64_t oob2:1;
479 uint64_t oob1:1;
480 } s;
481 struct cvmx_l2c_int_stat_s cn52xx;
482 struct cvmx_l2c_int_stat_s cn52xxp1;
483 struct cvmx_l2c_int_stat_s cn56xx;
484 struct cvmx_l2c_int_stat_s cn56xxp1;
485};
486
487union cvmx_l2c_lckbase {
488 uint64_t u64;
489 struct cvmx_l2c_lckbase_s {
490 uint64_t reserved_31_63:33;
491 uint64_t lck_base:27;
492 uint64_t reserved_1_3:3;
493 uint64_t lck_ena:1;
494 } s;
495 struct cvmx_l2c_lckbase_s cn30xx;
496 struct cvmx_l2c_lckbase_s cn31xx;
497 struct cvmx_l2c_lckbase_s cn38xx;
498 struct cvmx_l2c_lckbase_s cn38xxp2;
499 struct cvmx_l2c_lckbase_s cn50xx;
500 struct cvmx_l2c_lckbase_s cn52xx;
501 struct cvmx_l2c_lckbase_s cn52xxp1;
502 struct cvmx_l2c_lckbase_s cn56xx;
503 struct cvmx_l2c_lckbase_s cn56xxp1;
504 struct cvmx_l2c_lckbase_s cn58xx;
505 struct cvmx_l2c_lckbase_s cn58xxp1;
506};
507
508union cvmx_l2c_lckoff {
509 uint64_t u64;
510 struct cvmx_l2c_lckoff_s {
511 uint64_t reserved_10_63:54;
512 uint64_t lck_offset:10;
513 } s;
514 struct cvmx_l2c_lckoff_s cn30xx;
515 struct cvmx_l2c_lckoff_s cn31xx;
516 struct cvmx_l2c_lckoff_s cn38xx;
517 struct cvmx_l2c_lckoff_s cn38xxp2;
518 struct cvmx_l2c_lckoff_s cn50xx;
519 struct cvmx_l2c_lckoff_s cn52xx;
520 struct cvmx_l2c_lckoff_s cn52xxp1;
521 struct cvmx_l2c_lckoff_s cn56xx;
522 struct cvmx_l2c_lckoff_s cn56xxp1;
523 struct cvmx_l2c_lckoff_s cn58xx;
524 struct cvmx_l2c_lckoff_s cn58xxp1;
525};
526
527union cvmx_l2c_lfb0 {
528 uint64_t u64;
529 struct cvmx_l2c_lfb0_s {
530 uint64_t reserved_32_63:32;
531 uint64_t stcpnd:1;
532 uint64_t stpnd:1;
533 uint64_t stinv:1;
534 uint64_t stcfl:1;
535 uint64_t vam:1;
536 uint64_t inxt:4;
537 uint64_t itl:1;
538 uint64_t ihd:1;
539 uint64_t set:3;
540 uint64_t vabnum:4;
541 uint64_t sid:9;
542 uint64_t cmd:4;
543 uint64_t vld:1;
544 } s;
545 struct cvmx_l2c_lfb0_cn30xx {
546 uint64_t reserved_32_63:32;
547 uint64_t stcpnd:1;
548 uint64_t stpnd:1;
549 uint64_t stinv:1;
550 uint64_t stcfl:1;
551 uint64_t vam:1;
552 uint64_t reserved_25_26:2;
553 uint64_t inxt:2;
554 uint64_t itl:1;
555 uint64_t ihd:1;
556 uint64_t reserved_20_20:1;
557 uint64_t set:2;
558 uint64_t reserved_16_17:2;
559 uint64_t vabnum:2;
560 uint64_t sid:9;
561 uint64_t cmd:4;
562 uint64_t vld:1;
563 } cn30xx;
564 struct cvmx_l2c_lfb0_cn31xx {
565 uint64_t reserved_32_63:32;
566 uint64_t stcpnd:1;
567 uint64_t stpnd:1;
568 uint64_t stinv:1;
569 uint64_t stcfl:1;
570 uint64_t vam:1;
571 uint64_t reserved_26_26:1;
572 uint64_t inxt:3;
573 uint64_t itl:1;
574 uint64_t ihd:1;
575 uint64_t reserved_20_20:1;
576 uint64_t set:2;
577 uint64_t reserved_17_17:1;
578 uint64_t vabnum:3;
579 uint64_t sid:9;
580 uint64_t cmd:4;
581 uint64_t vld:1;
582 } cn31xx;
583 struct cvmx_l2c_lfb0_s cn38xx;
584 struct cvmx_l2c_lfb0_s cn38xxp2;
585 struct cvmx_l2c_lfb0_cn50xx {
586 uint64_t reserved_32_63:32;
587 uint64_t stcpnd:1;
588 uint64_t stpnd:1;
589 uint64_t stinv:1;
590 uint64_t stcfl:1;
591 uint64_t vam:1;
592 uint64_t reserved_26_26:1;
593 uint64_t inxt:3;
594 uint64_t itl:1;
595 uint64_t ihd:1;
596 uint64_t set:3;
597 uint64_t reserved_17_17:1;
598 uint64_t vabnum:3;
599 uint64_t sid:9;
600 uint64_t cmd:4;
601 uint64_t vld:1;
602 } cn50xx;
603 struct cvmx_l2c_lfb0_cn50xx cn52xx;
604 struct cvmx_l2c_lfb0_cn50xx cn52xxp1;
605 struct cvmx_l2c_lfb0_s cn56xx;
606 struct cvmx_l2c_lfb0_s cn56xxp1;
607 struct cvmx_l2c_lfb0_s cn58xx;
608 struct cvmx_l2c_lfb0_s cn58xxp1;
609};
610
611union cvmx_l2c_lfb1 {
612 uint64_t u64;
613 struct cvmx_l2c_lfb1_s {
614 uint64_t reserved_19_63:45;
615 uint64_t dsgoing:1;
616 uint64_t bid:2;
617 uint64_t wtrsp:1;
618 uint64_t wtdw:1;
619 uint64_t wtdq:1;
620 uint64_t wtwhp:1;
621 uint64_t wtwhf:1;
622 uint64_t wtwrm:1;
623 uint64_t wtstm:1;
624 uint64_t wtrda:1;
625 uint64_t wtstdt:1;
626 uint64_t wtstrsp:1;
627 uint64_t wtstrsc:1;
628 uint64_t wtvtm:1;
629 uint64_t wtmfl:1;
630 uint64_t prbrty:1;
631 uint64_t wtprb:1;
632 uint64_t vld:1;
633 } s;
634 struct cvmx_l2c_lfb1_s cn30xx;
635 struct cvmx_l2c_lfb1_s cn31xx;
636 struct cvmx_l2c_lfb1_s cn38xx;
637 struct cvmx_l2c_lfb1_s cn38xxp2;
638 struct cvmx_l2c_lfb1_s cn50xx;
639 struct cvmx_l2c_lfb1_s cn52xx;
640 struct cvmx_l2c_lfb1_s cn52xxp1;
641 struct cvmx_l2c_lfb1_s cn56xx;
642 struct cvmx_l2c_lfb1_s cn56xxp1;
643 struct cvmx_l2c_lfb1_s cn58xx;
644 struct cvmx_l2c_lfb1_s cn58xxp1;
645};
646
647union cvmx_l2c_lfb2 {
648 uint64_t u64;
649 struct cvmx_l2c_lfb2_s {
650 uint64_t reserved_0_63:64;
651 } s;
652 struct cvmx_l2c_lfb2_cn30xx {
653 uint64_t reserved_27_63:37;
654 uint64_t lfb_tag:19;
655 uint64_t lfb_idx:8;
656 } cn30xx;
657 struct cvmx_l2c_lfb2_cn31xx {
658 uint64_t reserved_27_63:37;
659 uint64_t lfb_tag:17;
660 uint64_t lfb_idx:10;
661 } cn31xx;
662 struct cvmx_l2c_lfb2_cn31xx cn38xx;
663 struct cvmx_l2c_lfb2_cn31xx cn38xxp2;
664 struct cvmx_l2c_lfb2_cn50xx {
665 uint64_t reserved_27_63:37;
666 uint64_t lfb_tag:20;
667 uint64_t lfb_idx:7;
668 } cn50xx;
669 struct cvmx_l2c_lfb2_cn52xx {
670 uint64_t reserved_27_63:37;
671 uint64_t lfb_tag:18;
672 uint64_t lfb_idx:9;
673 } cn52xx;
674 struct cvmx_l2c_lfb2_cn52xx cn52xxp1;
675 struct cvmx_l2c_lfb2_cn56xx {
676 uint64_t reserved_27_63:37;
677 uint64_t lfb_tag:16;
678 uint64_t lfb_idx:11;
679 } cn56xx;
680 struct cvmx_l2c_lfb2_cn56xx cn56xxp1;
681 struct cvmx_l2c_lfb2_cn56xx cn58xx;
682 struct cvmx_l2c_lfb2_cn56xx cn58xxp1;
683};
684
685union cvmx_l2c_lfb3 {
686 uint64_t u64;
687 struct cvmx_l2c_lfb3_s {
688 uint64_t reserved_5_63:59;
689 uint64_t stpartdis:1;
690 uint64_t lfb_hwm:4;
691 } s;
692 struct cvmx_l2c_lfb3_cn30xx {
693 uint64_t reserved_5_63:59;
694 uint64_t stpartdis:1;
695 uint64_t reserved_2_3:2;
696 uint64_t lfb_hwm:2;
697 } cn30xx;
698 struct cvmx_l2c_lfb3_cn31xx {
699 uint64_t reserved_5_63:59;
700 uint64_t stpartdis:1;
701 uint64_t reserved_3_3:1;
702 uint64_t lfb_hwm:3;
703 } cn31xx;
704 struct cvmx_l2c_lfb3_s cn38xx;
705 struct cvmx_l2c_lfb3_s cn38xxp2;
706 struct cvmx_l2c_lfb3_cn31xx cn50xx;
707 struct cvmx_l2c_lfb3_cn31xx cn52xx;
708 struct cvmx_l2c_lfb3_cn31xx cn52xxp1;
709 struct cvmx_l2c_lfb3_s cn56xx;
710 struct cvmx_l2c_lfb3_s cn56xxp1;
711 struct cvmx_l2c_lfb3_s cn58xx;
712 struct cvmx_l2c_lfb3_s cn58xxp1;
713};
714
715union cvmx_l2c_oob {
716 uint64_t u64;
717 struct cvmx_l2c_oob_s {
718 uint64_t reserved_2_63:62;
719 uint64_t dwbena:1;
720 uint64_t stena:1;
721 } s;
722 struct cvmx_l2c_oob_s cn52xx;
723 struct cvmx_l2c_oob_s cn52xxp1;
724 struct cvmx_l2c_oob_s cn56xx;
725 struct cvmx_l2c_oob_s cn56xxp1;
726};
727
728union cvmx_l2c_oob1 {
729 uint64_t u64;
730 struct cvmx_l2c_oob1_s {
731 uint64_t fadr:27;
732 uint64_t fsrc:1;
733 uint64_t reserved_34_35:2;
734 uint64_t sadr:14;
735 uint64_t reserved_14_19:6;
736 uint64_t size:14;
737 } s;
738 struct cvmx_l2c_oob1_s cn52xx;
739 struct cvmx_l2c_oob1_s cn52xxp1;
740 struct cvmx_l2c_oob1_s cn56xx;
741 struct cvmx_l2c_oob1_s cn56xxp1;
742};
743
744union cvmx_l2c_oob2 {
745 uint64_t u64;
746 struct cvmx_l2c_oob2_s {
747 uint64_t fadr:27;
748 uint64_t fsrc:1;
749 uint64_t reserved_34_35:2;
750 uint64_t sadr:14;
751 uint64_t reserved_14_19:6;
752 uint64_t size:14;
753 } s;
754 struct cvmx_l2c_oob2_s cn52xx;
755 struct cvmx_l2c_oob2_s cn52xxp1;
756 struct cvmx_l2c_oob2_s cn56xx;
757 struct cvmx_l2c_oob2_s cn56xxp1;
758};
759
760union cvmx_l2c_oob3 {
761 uint64_t u64;
762 struct cvmx_l2c_oob3_s {
763 uint64_t fadr:27;
764 uint64_t fsrc:1;
765 uint64_t reserved_34_35:2;
766 uint64_t sadr:14;
767 uint64_t reserved_14_19:6;
768 uint64_t size:14;
769 } s;
770 struct cvmx_l2c_oob3_s cn52xx;
771 struct cvmx_l2c_oob3_s cn52xxp1;
772 struct cvmx_l2c_oob3_s cn56xx;
773 struct cvmx_l2c_oob3_s cn56xxp1;
774};
775
776union cvmx_l2c_pfcx {
777 uint64_t u64;
778 struct cvmx_l2c_pfcx_s {
779 uint64_t reserved_36_63:28;
780 uint64_t pfcnt0:36;
781 } s;
782 struct cvmx_l2c_pfcx_s cn30xx;
783 struct cvmx_l2c_pfcx_s cn31xx;
784 struct cvmx_l2c_pfcx_s cn38xx;
785 struct cvmx_l2c_pfcx_s cn38xxp2;
786 struct cvmx_l2c_pfcx_s cn50xx;
787 struct cvmx_l2c_pfcx_s cn52xx;
788 struct cvmx_l2c_pfcx_s cn52xxp1;
789 struct cvmx_l2c_pfcx_s cn56xx;
790 struct cvmx_l2c_pfcx_s cn56xxp1;
791 struct cvmx_l2c_pfcx_s cn58xx;
792 struct cvmx_l2c_pfcx_s cn58xxp1;
793};
794
795union cvmx_l2c_pfctl {
796 uint64_t u64;
797 struct cvmx_l2c_pfctl_s {
798 uint64_t reserved_36_63:28;
799 uint64_t cnt3rdclr:1;
800 uint64_t cnt2rdclr:1;
801 uint64_t cnt1rdclr:1;
802 uint64_t cnt0rdclr:1;
803 uint64_t cnt3ena:1;
804 uint64_t cnt3clr:1;
805 uint64_t cnt3sel:6;
806 uint64_t cnt2ena:1;
807 uint64_t cnt2clr:1;
808 uint64_t cnt2sel:6;
809 uint64_t cnt1ena:1;
810 uint64_t cnt1clr:1;
811 uint64_t cnt1sel:6;
812 uint64_t cnt0ena:1;
813 uint64_t cnt0clr:1;
814 uint64_t cnt0sel:6;
815 } s;
816 struct cvmx_l2c_pfctl_s cn30xx;
817 struct cvmx_l2c_pfctl_s cn31xx;
818 struct cvmx_l2c_pfctl_s cn38xx;
819 struct cvmx_l2c_pfctl_s cn38xxp2;
820 struct cvmx_l2c_pfctl_s cn50xx;
821 struct cvmx_l2c_pfctl_s cn52xx;
822 struct cvmx_l2c_pfctl_s cn52xxp1;
823 struct cvmx_l2c_pfctl_s cn56xx;
824 struct cvmx_l2c_pfctl_s cn56xxp1;
825 struct cvmx_l2c_pfctl_s cn58xx;
826 struct cvmx_l2c_pfctl_s cn58xxp1;
827};
828
829union cvmx_l2c_ppgrp {
830 uint64_t u64;
831 struct cvmx_l2c_ppgrp_s {
832 uint64_t reserved_24_63:40;
833 uint64_t pp11grp:2;
834 uint64_t pp10grp:2;
835 uint64_t pp9grp:2;
836 uint64_t pp8grp:2;
837 uint64_t pp7grp:2;
838 uint64_t pp6grp:2;
839 uint64_t pp5grp:2;
840 uint64_t pp4grp:2;
841 uint64_t pp3grp:2;
842 uint64_t pp2grp:2;
843 uint64_t pp1grp:2;
844 uint64_t pp0grp:2;
845 } s;
846 struct cvmx_l2c_ppgrp_cn52xx {
847 uint64_t reserved_8_63:56;
848 uint64_t pp3grp:2;
849 uint64_t pp2grp:2;
850 uint64_t pp1grp:2;
851 uint64_t pp0grp:2;
852 } cn52xx;
853 struct cvmx_l2c_ppgrp_cn52xx cn52xxp1;
854 struct cvmx_l2c_ppgrp_s cn56xx;
855 struct cvmx_l2c_ppgrp_s cn56xxp1;
856};
857
858union cvmx_l2c_spar0 {
859 uint64_t u64;
860 struct cvmx_l2c_spar0_s {
861 uint64_t reserved_32_63:32;
862 uint64_t umsk3:8;
863 uint64_t umsk2:8;
864 uint64_t umsk1:8;
865 uint64_t umsk0:8;
866 } s;
867 struct cvmx_l2c_spar0_cn30xx {
868 uint64_t reserved_4_63:60;
869 uint64_t umsk0:4;
870 } cn30xx;
871 struct cvmx_l2c_spar0_cn31xx {
872 uint64_t reserved_12_63:52;
873 uint64_t umsk1:4;
874 uint64_t reserved_4_7:4;
875 uint64_t umsk0:4;
876 } cn31xx;
877 struct cvmx_l2c_spar0_s cn38xx;
878 struct cvmx_l2c_spar0_s cn38xxp2;
879 struct cvmx_l2c_spar0_cn50xx {
880 uint64_t reserved_16_63:48;
881 uint64_t umsk1:8;
882 uint64_t umsk0:8;
883 } cn50xx;
884 struct cvmx_l2c_spar0_s cn52xx;
885 struct cvmx_l2c_spar0_s cn52xxp1;
886 struct cvmx_l2c_spar0_s cn56xx;
887 struct cvmx_l2c_spar0_s cn56xxp1;
888 struct cvmx_l2c_spar0_s cn58xx;
889 struct cvmx_l2c_spar0_s cn58xxp1;
890};
891
892union cvmx_l2c_spar1 {
893 uint64_t u64;
894 struct cvmx_l2c_spar1_s {
895 uint64_t reserved_32_63:32;
896 uint64_t umsk7:8;
897 uint64_t umsk6:8;
898 uint64_t umsk5:8;
899 uint64_t umsk4:8;
900 } s;
901 struct cvmx_l2c_spar1_s cn38xx;
902 struct cvmx_l2c_spar1_s cn38xxp2;
903 struct cvmx_l2c_spar1_s cn56xx;
904 struct cvmx_l2c_spar1_s cn56xxp1;
905 struct cvmx_l2c_spar1_s cn58xx;
906 struct cvmx_l2c_spar1_s cn58xxp1;
907};
908
909union cvmx_l2c_spar2 {
910 uint64_t u64;
911 struct cvmx_l2c_spar2_s {
912 uint64_t reserved_32_63:32;
913 uint64_t umsk11:8;
914 uint64_t umsk10:8;
915 uint64_t umsk9:8;
916 uint64_t umsk8:8;
917 } s;
918 struct cvmx_l2c_spar2_s cn38xx;
919 struct cvmx_l2c_spar2_s cn38xxp2;
920 struct cvmx_l2c_spar2_s cn56xx;
921 struct cvmx_l2c_spar2_s cn56xxp1;
922 struct cvmx_l2c_spar2_s cn58xx;
923 struct cvmx_l2c_spar2_s cn58xxp1;
924};
925
926union cvmx_l2c_spar3 {
927 uint64_t u64;
928 struct cvmx_l2c_spar3_s {
929 uint64_t reserved_32_63:32;
930 uint64_t umsk15:8;
931 uint64_t umsk14:8;
932 uint64_t umsk13:8;
933 uint64_t umsk12:8;
934 } s;
935 struct cvmx_l2c_spar3_s cn38xx;
936 struct cvmx_l2c_spar3_s cn38xxp2;
937 struct cvmx_l2c_spar3_s cn58xx;
938 struct cvmx_l2c_spar3_s cn58xxp1;
939};
940
941union cvmx_l2c_spar4 {
942 uint64_t u64;
943 struct cvmx_l2c_spar4_s {
944 uint64_t reserved_8_63:56;
945 uint64_t umskiob:8;
946 } s;
947 struct cvmx_l2c_spar4_cn30xx {
948 uint64_t reserved_4_63:60;
949 uint64_t umskiob:4;
950 } cn30xx;
951 struct cvmx_l2c_spar4_cn30xx cn31xx;
952 struct cvmx_l2c_spar4_s cn38xx;
953 struct cvmx_l2c_spar4_s cn38xxp2;
954 struct cvmx_l2c_spar4_s cn50xx;
955 struct cvmx_l2c_spar4_s cn52xx;
956 struct cvmx_l2c_spar4_s cn52xxp1;
957 struct cvmx_l2c_spar4_s cn56xx;
958 struct cvmx_l2c_spar4_s cn56xxp1;
959 struct cvmx_l2c_spar4_s cn58xx;
960 struct cvmx_l2c_spar4_s cn58xxp1;
961};
962
963#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-l2c.h b/arch/mips/include/asm/octeon/cvmx-l2c.h
new file mode 100644
index 000000000000..2a8c0902ea50
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-l2c.h
@@ -0,0 +1,325 @@
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/*
29 *
30 * Interface to the Level 2 Cache (L2C) control, measurement, and debugging
31 * facilities.
32 */
33
34#ifndef __CVMX_L2C_H__
35#define __CVMX_L2C_H__
36
37/* Deprecated macro, use function */
38#define CVMX_L2_ASSOC cvmx_l2c_get_num_assoc()
39
40/* Deprecated macro, use function */
41#define CVMX_L2_SET_BITS cvmx_l2c_get_set_bits()
42
43/* Deprecated macro, use function */
44#define CVMX_L2_SETS cvmx_l2c_get_num_sets()
45
46#define CVMX_L2C_IDX_ADDR_SHIFT 7 /* based on 128 byte cache line size */
47#define CVMX_L2C_IDX_MASK (cvmx_l2c_get_num_sets() - 1)
48
49/* Defines for index aliasing computations */
50#define CVMX_L2C_TAG_ADDR_ALIAS_SHIFT \
51 (CVMX_L2C_IDX_ADDR_SHIFT + cvmx_l2c_get_set_bits())
52
53#define CVMX_L2C_ALIAS_MASK \
54 (CVMX_L2C_IDX_MASK << CVMX_L2C_TAG_ADDR_ALIAS_SHIFT)
55
56union cvmx_l2c_tag {
57 uint64_t u64;
58 struct {
59 uint64_t reserved:28;
60 uint64_t V:1; /* Line valid */
61 uint64_t D:1; /* Line dirty */
62 uint64_t L:1; /* Line locked */
63 uint64_t U:1; /* Use, LRU eviction */
64 uint64_t addr:32; /* Phys mem (not all bits valid) */
65 } s;
66};
67
68 /* L2C Performance Counter events. */
69enum cvmx_l2c_event {
70 CVMX_L2C_EVENT_CYCLES = 0,
71 CVMX_L2C_EVENT_INSTRUCTION_MISS = 1,
72 CVMX_L2C_EVENT_INSTRUCTION_HIT = 2,
73 CVMX_L2C_EVENT_DATA_MISS = 3,
74 CVMX_L2C_EVENT_DATA_HIT = 4,
75 CVMX_L2C_EVENT_MISS = 5,
76 CVMX_L2C_EVENT_HIT = 6,
77 CVMX_L2C_EVENT_VICTIM_HIT = 7,
78 CVMX_L2C_EVENT_INDEX_CONFLICT = 8,
79 CVMX_L2C_EVENT_TAG_PROBE = 9,
80 CVMX_L2C_EVENT_TAG_UPDATE = 10,
81 CVMX_L2C_EVENT_TAG_COMPLETE = 11,
82 CVMX_L2C_EVENT_TAG_DIRTY = 12,
83 CVMX_L2C_EVENT_DATA_STORE_NOP = 13,
84 CVMX_L2C_EVENT_DATA_STORE_READ = 14,
85 CVMX_L2C_EVENT_DATA_STORE_WRITE = 15,
86 CVMX_L2C_EVENT_FILL_DATA_VALID = 16,
87 CVMX_L2C_EVENT_WRITE_REQUEST = 17,
88 CVMX_L2C_EVENT_READ_REQUEST = 18,
89 CVMX_L2C_EVENT_WRITE_DATA_VALID = 19,
90 CVMX_L2C_EVENT_XMC_NOP = 20,
91 CVMX_L2C_EVENT_XMC_LDT = 21,
92 CVMX_L2C_EVENT_XMC_LDI = 22,
93 CVMX_L2C_EVENT_XMC_LDD = 23,
94 CVMX_L2C_EVENT_XMC_STF = 24,
95 CVMX_L2C_EVENT_XMC_STT = 25,
96 CVMX_L2C_EVENT_XMC_STP = 26,
97 CVMX_L2C_EVENT_XMC_STC = 27,
98 CVMX_L2C_EVENT_XMC_DWB = 28,
99 CVMX_L2C_EVENT_XMC_PL2 = 29,
100 CVMX_L2C_EVENT_XMC_PSL1 = 30,
101 CVMX_L2C_EVENT_XMC_IOBLD = 31,
102 CVMX_L2C_EVENT_XMC_IOBST = 32,
103 CVMX_L2C_EVENT_XMC_IOBDMA = 33,
104 CVMX_L2C_EVENT_XMC_IOBRSP = 34,
105 CVMX_L2C_EVENT_XMC_BUS_VALID = 35,
106 CVMX_L2C_EVENT_XMC_MEM_DATA = 36,
107 CVMX_L2C_EVENT_XMC_REFL_DATA = 37,
108 CVMX_L2C_EVENT_XMC_IOBRSP_DATA = 38,
109 CVMX_L2C_EVENT_RSC_NOP = 39,
110 CVMX_L2C_EVENT_RSC_STDN = 40,
111 CVMX_L2C_EVENT_RSC_FILL = 41,
112 CVMX_L2C_EVENT_RSC_REFL = 42,
113 CVMX_L2C_EVENT_RSC_STIN = 43,
114 CVMX_L2C_EVENT_RSC_SCIN = 44,
115 CVMX_L2C_EVENT_RSC_SCFL = 45,
116 CVMX_L2C_EVENT_RSC_SCDN = 46,
117 CVMX_L2C_EVENT_RSC_DATA_VALID = 47,
118 CVMX_L2C_EVENT_RSC_VALID_FILL = 48,
119 CVMX_L2C_EVENT_RSC_VALID_STRSP = 49,
120 CVMX_L2C_EVENT_RSC_VALID_REFL = 50,
121 CVMX_L2C_EVENT_LRF_REQ = 51,
122 CVMX_L2C_EVENT_DT_RD_ALLOC = 52,
123 CVMX_L2C_EVENT_DT_WR_INVAL = 53
124};
125
126/**
127 * Configure one of the four L2 Cache performance counters to capture event
128 * occurences.
129 *
130 * @counter: The counter to configure. Range 0..3.
131 * @event: The type of L2 Cache event occurrence to count.
132 * @clear_on_read: When asserted, any read of the performance counter
133 * clears the counter.
134 *
135 * The routine does not clear the counter.
136 */
137void cvmx_l2c_config_perf(uint32_t counter,
138 enum cvmx_l2c_event event, uint32_t clear_on_read);
139/**
140 * Read the given L2 Cache performance counter. The counter must be configured
141 * before reading, but this routine does not enforce this requirement.
142 *
143 * @counter: The counter to configure. Range 0..3.
144 *
145 * Returns The current counter value.
146 */
147uint64_t cvmx_l2c_read_perf(uint32_t counter);
148
149/**
150 * Return the L2 Cache way partitioning for a given core.
151 *
152 * @core: The core processor of interest.
153 *
154 * Returns The mask specifying the partitioning. 0 bits in mask indicates
155 * the cache 'ways' that a core can evict from.
156 * -1 on error
157 */
158int cvmx_l2c_get_core_way_partition(uint32_t core);
159
160/**
161 * Partitions the L2 cache for a core
162 *
163 * @core: The core that the partitioning applies to.
164 *
165 * @mask: The partitioning of the ways expressed as a binary mask. A 0
166 * bit allows the core to evict cache lines from a way, while a
167 * 1 bit blocks the core from evicting any lines from that
168 * way. There must be at least one allowed way (0 bit) in the
169 * mask.
170 *
171 * If any ways are blocked for all cores and the HW blocks, then those
172 * ways will never have any cache lines evicted from them. All cores
173 * and the hardware blocks are free to read from all ways regardless
174 * of the partitioning.
175 */
176int cvmx_l2c_set_core_way_partition(uint32_t core, uint32_t mask);
177
178/**
179 * Return the L2 Cache way partitioning for the hw blocks.
180 *
181 * Returns The mask specifying the reserved way. 0 bits in mask indicates
182 * the cache 'ways' that a core can evict from.
183 * -1 on error
184 */
185int cvmx_l2c_get_hw_way_partition(void);
186
187/**
188 * Partitions the L2 cache for the hardware blocks.
189 *
190 * @mask: The partitioning of the ways expressed as a binary mask. A 0
191 * bit allows the core to evict cache lines from a way, while a
192 * 1 bit blocks the core from evicting any lines from that
193 * way. There must be at least one allowed way (0 bit) in the
194 * mask.
195 *
196 * If any ways are blocked for all cores and the HW blocks, then those
197 * ways will never have any cache lines evicted from them. All cores
198 * and the hardware blocks are free to read from all ways regardless
199 * of the partitioning.
200 */
201int cvmx_l2c_set_hw_way_partition(uint32_t mask);
202
203/**
204 * Locks a line in the L2 cache at the specified physical address
205 *
206 * @addr: physical address of line to lock
207 *
208 * Returns 0 on success,
209 * 1 if line not locked.
210 */
211int cvmx_l2c_lock_line(uint64_t addr);
212
213/**
214 * Locks a specified memory region in the L2 cache.
215 *
216 * Note that if not all lines can be locked, that means that all
217 * but one of the ways (associations) available to the locking
218 * core are locked. Having only 1 association available for
219 * normal caching may have a significant adverse affect on performance.
220 * Care should be taken to ensure that enough of the L2 cache is left
221 * unlocked to allow for normal caching of DRAM.
222 *
223 * @start: Physical address of the start of the region to lock
224 * @len: Length (in bytes) of region to lock
225 *
226 * Returns Number of requested lines that where not locked.
227 * 0 on success (all locked)
228 */
229int cvmx_l2c_lock_mem_region(uint64_t start, uint64_t len);
230
231/**
232 * Unlock and flush a cache line from the L2 cache.
233 * IMPORTANT: Must only be run by one core at a time due to use
234 * of L2C debug features.
235 * Note that this function will flush a matching but unlocked cache line.
236 * (If address is not in L2, no lines are flushed.)
237 *
238 * @address: Physical address to unlock
239 *
240 * Returns 0: line not unlocked
241 * 1: line unlocked
242 */
243int cvmx_l2c_unlock_line(uint64_t address);
244
245/**
246 * Unlocks a region of memory that is locked in the L2 cache
247 *
248 * @start: start physical address
249 * @len: length (in bytes) to unlock
250 *
251 * Returns Number of locked lines that the call unlocked
252 */
253int cvmx_l2c_unlock_mem_region(uint64_t start, uint64_t len);
254
255/**
256 * Read the L2 controller tag for a given location in L2
257 *
258 * @association:
259 * Which association to read line from
260 * @index: Which way to read from.
261 *
262 * Returns l2c tag structure for line requested.
263 */
264union cvmx_l2c_tag cvmx_l2c_get_tag(uint32_t association, uint32_t index);
265
266/* Wrapper around deprecated old function name */
267static inline union cvmx_l2c_tag cvmx_get_l2c_tag(uint32_t association,
268 uint32_t index)
269{
270 return cvmx_l2c_get_tag(association, index);
271}
272
273/**
274 * Returns the cache index for a given physical address
275 *
276 * @addr: physical address
277 *
278 * Returns L2 cache index
279 */
280uint32_t cvmx_l2c_address_to_index(uint64_t addr);
281
282/**
283 * Flushes (and unlocks) the entire L2 cache.
284 * IMPORTANT: Must only be run by one core at a time due to use
285 * of L2C debug features.
286 */
287void cvmx_l2c_flush(void);
288
289/**
290 *
291 * Returns Returns the size of the L2 cache in bytes,
292 * -1 on error (unrecognized model)
293 */
294int cvmx_l2c_get_cache_size_bytes(void);
295
296/**
297 * Return the number of sets in the L2 Cache
298 *
299 * Returns
300 */
301int cvmx_l2c_get_num_sets(void);
302
303/**
304 * Return log base 2 of the number of sets in the L2 cache
305 * Returns
306 */
307int cvmx_l2c_get_set_bits(void);
308/**
309 * Return the number of associations in the L2 Cache
310 *
311 * Returns
312 */
313int cvmx_l2c_get_num_assoc(void);
314
315/**
316 * Flush a line from the L2 cache
317 * This should only be called from one core at a time, as this routine
318 * sets the core to the 'debug' core in order to flush the line.
319 *
320 * @assoc: Association (or way) to flush
321 * @index: Index to flush
322 */
323void cvmx_l2c_flush_line(uint32_t assoc, uint32_t index);
324
325#endif /* __CVMX_L2C_H__ */
diff --git a/arch/mips/include/asm/octeon/cvmx-l2d-defs.h b/arch/mips/include/asm/octeon/cvmx-l2d-defs.h
new file mode 100644
index 000000000000..d7102d455e1b
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-l2d-defs.h
@@ -0,0 +1,369 @@
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_L2D_DEFS_H__
29#define __CVMX_L2D_DEFS_H__
30
31#define CVMX_L2D_BST0 \
32 CVMX_ADD_IO_SEG(0x0001180080000780ull)
33#define CVMX_L2D_BST1 \
34 CVMX_ADD_IO_SEG(0x0001180080000788ull)
35#define CVMX_L2D_BST2 \
36 CVMX_ADD_IO_SEG(0x0001180080000790ull)
37#define CVMX_L2D_BST3 \
38 CVMX_ADD_IO_SEG(0x0001180080000798ull)
39#define CVMX_L2D_ERR \
40 CVMX_ADD_IO_SEG(0x0001180080000010ull)
41#define CVMX_L2D_FADR \
42 CVMX_ADD_IO_SEG(0x0001180080000018ull)
43#define CVMX_L2D_FSYN0 \
44 CVMX_ADD_IO_SEG(0x0001180080000020ull)
45#define CVMX_L2D_FSYN1 \
46 CVMX_ADD_IO_SEG(0x0001180080000028ull)
47#define CVMX_L2D_FUS0 \
48 CVMX_ADD_IO_SEG(0x00011800800007A0ull)
49#define CVMX_L2D_FUS1 \
50 CVMX_ADD_IO_SEG(0x00011800800007A8ull)
51#define CVMX_L2D_FUS2 \
52 CVMX_ADD_IO_SEG(0x00011800800007B0ull)
53#define CVMX_L2D_FUS3 \
54 CVMX_ADD_IO_SEG(0x00011800800007B8ull)
55
56union cvmx_l2d_bst0 {
57 uint64_t u64;
58 struct cvmx_l2d_bst0_s {
59 uint64_t reserved_35_63:29;
60 uint64_t ftl:1;
61 uint64_t q0stat:34;
62 } s;
63 struct cvmx_l2d_bst0_s cn30xx;
64 struct cvmx_l2d_bst0_s cn31xx;
65 struct cvmx_l2d_bst0_s cn38xx;
66 struct cvmx_l2d_bst0_s cn38xxp2;
67 struct cvmx_l2d_bst0_s cn50xx;
68 struct cvmx_l2d_bst0_s cn52xx;
69 struct cvmx_l2d_bst0_s cn52xxp1;
70 struct cvmx_l2d_bst0_s cn56xx;
71 struct cvmx_l2d_bst0_s cn56xxp1;
72 struct cvmx_l2d_bst0_s cn58xx;
73 struct cvmx_l2d_bst0_s cn58xxp1;
74};
75
76union cvmx_l2d_bst1 {
77 uint64_t u64;
78 struct cvmx_l2d_bst1_s {
79 uint64_t reserved_34_63:30;
80 uint64_t q1stat:34;
81 } s;
82 struct cvmx_l2d_bst1_s cn30xx;
83 struct cvmx_l2d_bst1_s cn31xx;
84 struct cvmx_l2d_bst1_s cn38xx;
85 struct cvmx_l2d_bst1_s cn38xxp2;
86 struct cvmx_l2d_bst1_s cn50xx;
87 struct cvmx_l2d_bst1_s cn52xx;
88 struct cvmx_l2d_bst1_s cn52xxp1;
89 struct cvmx_l2d_bst1_s cn56xx;
90 struct cvmx_l2d_bst1_s cn56xxp1;
91 struct cvmx_l2d_bst1_s cn58xx;
92 struct cvmx_l2d_bst1_s cn58xxp1;
93};
94
95union cvmx_l2d_bst2 {
96 uint64_t u64;
97 struct cvmx_l2d_bst2_s {
98 uint64_t reserved_34_63:30;
99 uint64_t q2stat:34;
100 } s;
101 struct cvmx_l2d_bst2_s cn30xx;
102 struct cvmx_l2d_bst2_s cn31xx;
103 struct cvmx_l2d_bst2_s cn38xx;
104 struct cvmx_l2d_bst2_s cn38xxp2;
105 struct cvmx_l2d_bst2_s cn50xx;
106 struct cvmx_l2d_bst2_s cn52xx;
107 struct cvmx_l2d_bst2_s cn52xxp1;
108 struct cvmx_l2d_bst2_s cn56xx;
109 struct cvmx_l2d_bst2_s cn56xxp1;
110 struct cvmx_l2d_bst2_s cn58xx;
111 struct cvmx_l2d_bst2_s cn58xxp1;
112};
113
114union cvmx_l2d_bst3 {
115 uint64_t u64;
116 struct cvmx_l2d_bst3_s {
117 uint64_t reserved_34_63:30;
118 uint64_t q3stat:34;
119 } s;
120 struct cvmx_l2d_bst3_s cn30xx;
121 struct cvmx_l2d_bst3_s cn31xx;
122 struct cvmx_l2d_bst3_s cn38xx;
123 struct cvmx_l2d_bst3_s cn38xxp2;
124 struct cvmx_l2d_bst3_s cn50xx;
125 struct cvmx_l2d_bst3_s cn52xx;
126 struct cvmx_l2d_bst3_s cn52xxp1;
127 struct cvmx_l2d_bst3_s cn56xx;
128 struct cvmx_l2d_bst3_s cn56xxp1;
129 struct cvmx_l2d_bst3_s cn58xx;
130 struct cvmx_l2d_bst3_s cn58xxp1;
131};
132
133union cvmx_l2d_err {
134 uint64_t u64;
135 struct cvmx_l2d_err_s {
136 uint64_t reserved_6_63:58;
137 uint64_t bmhclsel:1;
138 uint64_t ded_err:1;
139 uint64_t sec_err:1;
140 uint64_t ded_intena:1;
141 uint64_t sec_intena:1;
142 uint64_t ecc_ena:1;
143 } s;
144 struct cvmx_l2d_err_s cn30xx;
145 struct cvmx_l2d_err_s cn31xx;
146 struct cvmx_l2d_err_s cn38xx;
147 struct cvmx_l2d_err_s cn38xxp2;
148 struct cvmx_l2d_err_s cn50xx;
149 struct cvmx_l2d_err_s cn52xx;
150 struct cvmx_l2d_err_s cn52xxp1;
151 struct cvmx_l2d_err_s cn56xx;
152 struct cvmx_l2d_err_s cn56xxp1;
153 struct cvmx_l2d_err_s cn58xx;
154 struct cvmx_l2d_err_s cn58xxp1;
155};
156
157union cvmx_l2d_fadr {
158 uint64_t u64;
159 struct cvmx_l2d_fadr_s {
160 uint64_t reserved_19_63:45;
161 uint64_t fadru:1;
162 uint64_t fowmsk:4;
163 uint64_t fset:3;
164 uint64_t fadr:11;
165 } s;
166 struct cvmx_l2d_fadr_cn30xx {
167 uint64_t reserved_18_63:46;
168 uint64_t fowmsk:4;
169 uint64_t reserved_13_13:1;
170 uint64_t fset:2;
171 uint64_t reserved_9_10:2;
172 uint64_t fadr:9;
173 } cn30xx;
174 struct cvmx_l2d_fadr_cn31xx {
175 uint64_t reserved_18_63:46;
176 uint64_t fowmsk:4;
177 uint64_t reserved_13_13:1;
178 uint64_t fset:2;
179 uint64_t reserved_10_10:1;
180 uint64_t fadr:10;
181 } cn31xx;
182 struct cvmx_l2d_fadr_cn38xx {
183 uint64_t reserved_18_63:46;
184 uint64_t fowmsk:4;
185 uint64_t fset:3;
186 uint64_t fadr:11;
187 } cn38xx;
188 struct cvmx_l2d_fadr_cn38xx cn38xxp2;
189 struct cvmx_l2d_fadr_cn50xx {
190 uint64_t reserved_18_63:46;
191 uint64_t fowmsk:4;
192 uint64_t fset:3;
193 uint64_t reserved_8_10:3;
194 uint64_t fadr:8;
195 } cn50xx;
196 struct cvmx_l2d_fadr_cn52xx {
197 uint64_t reserved_18_63:46;
198 uint64_t fowmsk:4;
199 uint64_t fset:3;
200 uint64_t reserved_10_10:1;
201 uint64_t fadr:10;
202 } cn52xx;
203 struct cvmx_l2d_fadr_cn52xx cn52xxp1;
204 struct cvmx_l2d_fadr_s cn56xx;
205 struct cvmx_l2d_fadr_s cn56xxp1;
206 struct cvmx_l2d_fadr_s cn58xx;
207 struct cvmx_l2d_fadr_s cn58xxp1;
208};
209
210union cvmx_l2d_fsyn0 {
211 uint64_t u64;
212 struct cvmx_l2d_fsyn0_s {
213 uint64_t reserved_20_63:44;
214 uint64_t fsyn_ow1:10;
215 uint64_t fsyn_ow0:10;
216 } s;
217 struct cvmx_l2d_fsyn0_s cn30xx;
218 struct cvmx_l2d_fsyn0_s cn31xx;
219 struct cvmx_l2d_fsyn0_s cn38xx;
220 struct cvmx_l2d_fsyn0_s cn38xxp2;
221 struct cvmx_l2d_fsyn0_s cn50xx;
222 struct cvmx_l2d_fsyn0_s cn52xx;
223 struct cvmx_l2d_fsyn0_s cn52xxp1;
224 struct cvmx_l2d_fsyn0_s cn56xx;
225 struct cvmx_l2d_fsyn0_s cn56xxp1;
226 struct cvmx_l2d_fsyn0_s cn58xx;
227 struct cvmx_l2d_fsyn0_s cn58xxp1;
228};
229
230union cvmx_l2d_fsyn1 {
231 uint64_t u64;
232 struct cvmx_l2d_fsyn1_s {
233 uint64_t reserved_20_63:44;
234 uint64_t fsyn_ow3:10;
235 uint64_t fsyn_ow2:10;
236 } s;
237 struct cvmx_l2d_fsyn1_s cn30xx;
238 struct cvmx_l2d_fsyn1_s cn31xx;
239 struct cvmx_l2d_fsyn1_s cn38xx;
240 struct cvmx_l2d_fsyn1_s cn38xxp2;
241 struct cvmx_l2d_fsyn1_s cn50xx;
242 struct cvmx_l2d_fsyn1_s cn52xx;
243 struct cvmx_l2d_fsyn1_s cn52xxp1;
244 struct cvmx_l2d_fsyn1_s cn56xx;
245 struct cvmx_l2d_fsyn1_s cn56xxp1;
246 struct cvmx_l2d_fsyn1_s cn58xx;
247 struct cvmx_l2d_fsyn1_s cn58xxp1;
248};
249
250union cvmx_l2d_fus0 {
251 uint64_t u64;
252 struct cvmx_l2d_fus0_s {
253 uint64_t reserved_34_63:30;
254 uint64_t q0fus:34;
255 } s;
256 struct cvmx_l2d_fus0_s cn30xx;
257 struct cvmx_l2d_fus0_s cn31xx;
258 struct cvmx_l2d_fus0_s cn38xx;
259 struct cvmx_l2d_fus0_s cn38xxp2;
260 struct cvmx_l2d_fus0_s cn50xx;
261 struct cvmx_l2d_fus0_s cn52xx;
262 struct cvmx_l2d_fus0_s cn52xxp1;
263 struct cvmx_l2d_fus0_s cn56xx;
264 struct cvmx_l2d_fus0_s cn56xxp1;
265 struct cvmx_l2d_fus0_s cn58xx;
266 struct cvmx_l2d_fus0_s cn58xxp1;
267};
268
269union cvmx_l2d_fus1 {
270 uint64_t u64;
271 struct cvmx_l2d_fus1_s {
272 uint64_t reserved_34_63:30;
273 uint64_t q1fus:34;
274 } s;
275 struct cvmx_l2d_fus1_s cn30xx;
276 struct cvmx_l2d_fus1_s cn31xx;
277 struct cvmx_l2d_fus1_s cn38xx;
278 struct cvmx_l2d_fus1_s cn38xxp2;
279 struct cvmx_l2d_fus1_s cn50xx;
280 struct cvmx_l2d_fus1_s cn52xx;
281 struct cvmx_l2d_fus1_s cn52xxp1;
282 struct cvmx_l2d_fus1_s cn56xx;
283 struct cvmx_l2d_fus1_s cn56xxp1;
284 struct cvmx_l2d_fus1_s cn58xx;
285 struct cvmx_l2d_fus1_s cn58xxp1;
286};
287
288union cvmx_l2d_fus2 {
289 uint64_t u64;
290 struct cvmx_l2d_fus2_s {
291 uint64_t reserved_34_63:30;
292 uint64_t q2fus:34;
293 } s;
294 struct cvmx_l2d_fus2_s cn30xx;
295 struct cvmx_l2d_fus2_s cn31xx;
296 struct cvmx_l2d_fus2_s cn38xx;
297 struct cvmx_l2d_fus2_s cn38xxp2;
298 struct cvmx_l2d_fus2_s cn50xx;
299 struct cvmx_l2d_fus2_s cn52xx;
300 struct cvmx_l2d_fus2_s cn52xxp1;
301 struct cvmx_l2d_fus2_s cn56xx;
302 struct cvmx_l2d_fus2_s cn56xxp1;
303 struct cvmx_l2d_fus2_s cn58xx;
304 struct cvmx_l2d_fus2_s cn58xxp1;
305};
306
307union cvmx_l2d_fus3 {
308 uint64_t u64;
309 struct cvmx_l2d_fus3_s {
310 uint64_t reserved_40_63:24;
311 uint64_t ema_ctl:3;
312 uint64_t reserved_34_36:3;
313 uint64_t q3fus:34;
314 } s;
315 struct cvmx_l2d_fus3_cn30xx {
316 uint64_t reserved_35_63:29;
317 uint64_t crip_64k:1;
318 uint64_t q3fus:34;
319 } cn30xx;
320 struct cvmx_l2d_fus3_cn31xx {
321 uint64_t reserved_35_63:29;
322 uint64_t crip_128k:1;
323 uint64_t q3fus:34;
324 } cn31xx;
325 struct cvmx_l2d_fus3_cn38xx {
326 uint64_t reserved_36_63:28;
327 uint64_t crip_256k:1;
328 uint64_t crip_512k:1;
329 uint64_t q3fus:34;
330 } cn38xx;
331 struct cvmx_l2d_fus3_cn38xx cn38xxp2;
332 struct cvmx_l2d_fus3_cn50xx {
333 uint64_t reserved_40_63:24;
334 uint64_t ema_ctl:3;
335 uint64_t reserved_36_36:1;
336 uint64_t crip_32k:1;
337 uint64_t crip_64k:1;
338 uint64_t q3fus:34;
339 } cn50xx;
340 struct cvmx_l2d_fus3_cn52xx {
341 uint64_t reserved_40_63:24;
342 uint64_t ema_ctl:3;
343 uint64_t reserved_36_36:1;
344 uint64_t crip_128k:1;
345 uint64_t crip_256k:1;
346 uint64_t q3fus:34;
347 } cn52xx;
348 struct cvmx_l2d_fus3_cn52xx cn52xxp1;
349 struct cvmx_l2d_fus3_cn56xx {
350 uint64_t reserved_40_63:24;
351 uint64_t ema_ctl:3;
352 uint64_t reserved_36_36:1;
353 uint64_t crip_512k:1;
354 uint64_t crip_1024k:1;
355 uint64_t q3fus:34;
356 } cn56xx;
357 struct cvmx_l2d_fus3_cn56xx cn56xxp1;
358 struct cvmx_l2d_fus3_cn58xx {
359 uint64_t reserved_39_63:25;
360 uint64_t ema_ctl:2;
361 uint64_t reserved_36_36:1;
362 uint64_t crip_512k:1;
363 uint64_t crip_1024k:1;
364 uint64_t q3fus:34;
365 } cn58xx;
366 struct cvmx_l2d_fus3_cn58xx cn58xxp1;
367};
368
369#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-l2t-defs.h b/arch/mips/include/asm/octeon/cvmx-l2t-defs.h
new file mode 100644
index 000000000000..2639a3f5ffc2
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-l2t-defs.h
@@ -0,0 +1,141 @@
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_L2T_DEFS_H__
29#define __CVMX_L2T_DEFS_H__
30
31#define CVMX_L2T_ERR \
32 CVMX_ADD_IO_SEG(0x0001180080000008ull)
33
34union cvmx_l2t_err {
35 uint64_t u64;
36 struct cvmx_l2t_err_s {
37 uint64_t reserved_29_63:35;
38 uint64_t fadru:1;
39 uint64_t lck_intena2:1;
40 uint64_t lckerr2:1;
41 uint64_t lck_intena:1;
42 uint64_t lckerr:1;
43 uint64_t fset:3;
44 uint64_t fadr:10;
45 uint64_t fsyn:6;
46 uint64_t ded_err:1;
47 uint64_t sec_err:1;
48 uint64_t ded_intena:1;
49 uint64_t sec_intena:1;
50 uint64_t ecc_ena:1;
51 } s;
52 struct cvmx_l2t_err_cn30xx {
53 uint64_t reserved_28_63:36;
54 uint64_t lck_intena2:1;
55 uint64_t lckerr2:1;
56 uint64_t lck_intena:1;
57 uint64_t lckerr:1;
58 uint64_t reserved_23_23:1;
59 uint64_t fset:2;
60 uint64_t reserved_19_20:2;
61 uint64_t fadr:8;
62 uint64_t fsyn:6;
63 uint64_t ded_err:1;
64 uint64_t sec_err:1;
65 uint64_t ded_intena:1;
66 uint64_t sec_intena:1;
67 uint64_t ecc_ena:1;
68 } cn30xx;
69 struct cvmx_l2t_err_cn31xx {
70 uint64_t reserved_28_63:36;
71 uint64_t lck_intena2:1;
72 uint64_t lckerr2:1;
73 uint64_t lck_intena:1;
74 uint64_t lckerr:1;
75 uint64_t reserved_23_23:1;
76 uint64_t fset:2;
77 uint64_t reserved_20_20:1;
78 uint64_t fadr:9;
79 uint64_t fsyn:6;
80 uint64_t ded_err:1;
81 uint64_t sec_err:1;
82 uint64_t ded_intena:1;
83 uint64_t sec_intena:1;
84 uint64_t ecc_ena:1;
85 } cn31xx;
86 struct cvmx_l2t_err_cn38xx {
87 uint64_t reserved_28_63:36;
88 uint64_t lck_intena2:1;
89 uint64_t lckerr2:1;
90 uint64_t lck_intena:1;
91 uint64_t lckerr:1;
92 uint64_t fset:3;
93 uint64_t fadr:10;
94 uint64_t fsyn:6;
95 uint64_t ded_err:1;
96 uint64_t sec_err:1;
97 uint64_t ded_intena:1;
98 uint64_t sec_intena:1;
99 uint64_t ecc_ena:1;
100 } cn38xx;
101 struct cvmx_l2t_err_cn38xx cn38xxp2;
102 struct cvmx_l2t_err_cn50xx {
103 uint64_t reserved_28_63:36;
104 uint64_t lck_intena2:1;
105 uint64_t lckerr2:1;
106 uint64_t lck_intena:1;
107 uint64_t lckerr:1;
108 uint64_t fset:3;
109 uint64_t reserved_18_20:3;
110 uint64_t fadr:7;
111 uint64_t fsyn:6;
112 uint64_t ded_err:1;
113 uint64_t sec_err:1;
114 uint64_t ded_intena:1;
115 uint64_t sec_intena:1;
116 uint64_t ecc_ena:1;
117 } cn50xx;
118 struct cvmx_l2t_err_cn52xx {
119 uint64_t reserved_28_63:36;
120 uint64_t lck_intena2:1;
121 uint64_t lckerr2:1;
122 uint64_t lck_intena:1;
123 uint64_t lckerr:1;
124 uint64_t fset:3;
125 uint64_t reserved_20_20:1;
126 uint64_t fadr:9;
127 uint64_t fsyn:6;
128 uint64_t ded_err:1;
129 uint64_t sec_err:1;
130 uint64_t ded_intena:1;
131 uint64_t sec_intena:1;
132 uint64_t ecc_ena:1;
133 } cn52xx;
134 struct cvmx_l2t_err_cn52xx cn52xxp1;
135 struct cvmx_l2t_err_s cn56xx;
136 struct cvmx_l2t_err_s cn56xxp1;
137 struct cvmx_l2t_err_s cn58xx;
138 struct cvmx_l2t_err_s cn58xxp1;
139};
140
141#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-led-defs.h b/arch/mips/include/asm/octeon/cvmx-led-defs.h
new file mode 100644
index 000000000000..16f174a4dadf
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-led-defs.h
@@ -0,0 +1,240 @@
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_LED_DEFS_H__
29#define __CVMX_LED_DEFS_H__
30
31#define CVMX_LED_BLINK \
32 CVMX_ADD_IO_SEG(0x0001180000001A48ull)
33#define CVMX_LED_CLK_PHASE \
34 CVMX_ADD_IO_SEG(0x0001180000001A08ull)
35#define CVMX_LED_CYLON \
36 CVMX_ADD_IO_SEG(0x0001180000001AF8ull)
37#define CVMX_LED_DBG \
38 CVMX_ADD_IO_SEG(0x0001180000001A18ull)
39#define CVMX_LED_EN \
40 CVMX_ADD_IO_SEG(0x0001180000001A00ull)
41#define CVMX_LED_POLARITY \
42 CVMX_ADD_IO_SEG(0x0001180000001A50ull)
43#define CVMX_LED_PRT \
44 CVMX_ADD_IO_SEG(0x0001180000001A10ull)
45#define CVMX_LED_PRT_FMT \
46 CVMX_ADD_IO_SEG(0x0001180000001A30ull)
47#define CVMX_LED_PRT_STATUSX(offset) \
48 CVMX_ADD_IO_SEG(0x0001180000001A80ull + (((offset) & 7) * 8))
49#define CVMX_LED_UDD_CNTX(offset) \
50 CVMX_ADD_IO_SEG(0x0001180000001A20ull + (((offset) & 1) * 8))
51#define CVMX_LED_UDD_DATX(offset) \
52 CVMX_ADD_IO_SEG(0x0001180000001A38ull + (((offset) & 1) * 8))
53#define CVMX_LED_UDD_DAT_CLRX(offset) \
54 CVMX_ADD_IO_SEG(0x0001180000001AC8ull + (((offset) & 1) * 16))
55#define CVMX_LED_UDD_DAT_SETX(offset) \
56 CVMX_ADD_IO_SEG(0x0001180000001AC0ull + (((offset) & 1) * 16))
57
58union cvmx_led_blink {
59 uint64_t u64;
60 struct cvmx_led_blink_s {
61 uint64_t reserved_8_63:56;
62 uint64_t rate:8;
63 } s;
64 struct cvmx_led_blink_s cn38xx;
65 struct cvmx_led_blink_s cn38xxp2;
66 struct cvmx_led_blink_s cn56xx;
67 struct cvmx_led_blink_s cn56xxp1;
68 struct cvmx_led_blink_s cn58xx;
69 struct cvmx_led_blink_s cn58xxp1;
70};
71
72union cvmx_led_clk_phase {
73 uint64_t u64;
74 struct cvmx_led_clk_phase_s {
75 uint64_t reserved_7_63:57;
76 uint64_t phase:7;
77 } s;
78 struct cvmx_led_clk_phase_s cn38xx;
79 struct cvmx_led_clk_phase_s cn38xxp2;
80 struct cvmx_led_clk_phase_s cn56xx;
81 struct cvmx_led_clk_phase_s cn56xxp1;
82 struct cvmx_led_clk_phase_s cn58xx;
83 struct cvmx_led_clk_phase_s cn58xxp1;
84};
85
86union cvmx_led_cylon {
87 uint64_t u64;
88 struct cvmx_led_cylon_s {
89 uint64_t reserved_16_63:48;
90 uint64_t rate:16;
91 } s;
92 struct cvmx_led_cylon_s cn38xx;
93 struct cvmx_led_cylon_s cn38xxp2;
94 struct cvmx_led_cylon_s cn56xx;
95 struct cvmx_led_cylon_s cn56xxp1;
96 struct cvmx_led_cylon_s cn58xx;
97 struct cvmx_led_cylon_s cn58xxp1;
98};
99
100union cvmx_led_dbg {
101 uint64_t u64;
102 struct cvmx_led_dbg_s {
103 uint64_t reserved_1_63:63;
104 uint64_t dbg_en:1;
105 } s;
106 struct cvmx_led_dbg_s cn38xx;
107 struct cvmx_led_dbg_s cn38xxp2;
108 struct cvmx_led_dbg_s cn56xx;
109 struct cvmx_led_dbg_s cn56xxp1;
110 struct cvmx_led_dbg_s cn58xx;
111 struct cvmx_led_dbg_s cn58xxp1;
112};
113
114union cvmx_led_en {
115 uint64_t u64;
116 struct cvmx_led_en_s {
117 uint64_t reserved_1_63:63;
118 uint64_t en:1;
119 } s;
120 struct cvmx_led_en_s cn38xx;
121 struct cvmx_led_en_s cn38xxp2;
122 struct cvmx_led_en_s cn56xx;
123 struct cvmx_led_en_s cn56xxp1;
124 struct cvmx_led_en_s cn58xx;
125 struct cvmx_led_en_s cn58xxp1;
126};
127
128union cvmx_led_polarity {
129 uint64_t u64;
130 struct cvmx_led_polarity_s {
131 uint64_t reserved_1_63:63;
132 uint64_t polarity:1;
133 } s;
134 struct cvmx_led_polarity_s cn38xx;
135 struct cvmx_led_polarity_s cn38xxp2;
136 struct cvmx_led_polarity_s cn56xx;
137 struct cvmx_led_polarity_s cn56xxp1;
138 struct cvmx_led_polarity_s cn58xx;
139 struct cvmx_led_polarity_s cn58xxp1;
140};
141
142union cvmx_led_prt {
143 uint64_t u64;
144 struct cvmx_led_prt_s {
145 uint64_t reserved_8_63:56;
146 uint64_t prt_en:8;
147 } s;
148 struct cvmx_led_prt_s cn38xx;
149 struct cvmx_led_prt_s cn38xxp2;
150 struct cvmx_led_prt_s cn56xx;
151 struct cvmx_led_prt_s cn56xxp1;
152 struct cvmx_led_prt_s cn58xx;
153 struct cvmx_led_prt_s cn58xxp1;
154};
155
156union cvmx_led_prt_fmt {
157 uint64_t u64;
158 struct cvmx_led_prt_fmt_s {
159 uint64_t reserved_4_63:60;
160 uint64_t format:4;
161 } s;
162 struct cvmx_led_prt_fmt_s cn38xx;
163 struct cvmx_led_prt_fmt_s cn38xxp2;
164 struct cvmx_led_prt_fmt_s cn56xx;
165 struct cvmx_led_prt_fmt_s cn56xxp1;
166 struct cvmx_led_prt_fmt_s cn58xx;
167 struct cvmx_led_prt_fmt_s cn58xxp1;
168};
169
170union cvmx_led_prt_statusx {
171 uint64_t u64;
172 struct cvmx_led_prt_statusx_s {
173 uint64_t reserved_6_63:58;
174 uint64_t status:6;
175 } s;
176 struct cvmx_led_prt_statusx_s cn38xx;
177 struct cvmx_led_prt_statusx_s cn38xxp2;
178 struct cvmx_led_prt_statusx_s cn56xx;
179 struct cvmx_led_prt_statusx_s cn56xxp1;
180 struct cvmx_led_prt_statusx_s cn58xx;
181 struct cvmx_led_prt_statusx_s cn58xxp1;
182};
183
184union cvmx_led_udd_cntx {
185 uint64_t u64;
186 struct cvmx_led_udd_cntx_s {
187 uint64_t reserved_6_63:58;
188 uint64_t cnt:6;
189 } s;
190 struct cvmx_led_udd_cntx_s cn38xx;
191 struct cvmx_led_udd_cntx_s cn38xxp2;
192 struct cvmx_led_udd_cntx_s cn56xx;
193 struct cvmx_led_udd_cntx_s cn56xxp1;
194 struct cvmx_led_udd_cntx_s cn58xx;
195 struct cvmx_led_udd_cntx_s cn58xxp1;
196};
197
198union cvmx_led_udd_datx {
199 uint64_t u64;
200 struct cvmx_led_udd_datx_s {
201 uint64_t reserved_32_63:32;
202 uint64_t dat:32;
203 } s;
204 struct cvmx_led_udd_datx_s cn38xx;
205 struct cvmx_led_udd_datx_s cn38xxp2;
206 struct cvmx_led_udd_datx_s cn56xx;
207 struct cvmx_led_udd_datx_s cn56xxp1;
208 struct cvmx_led_udd_datx_s cn58xx;
209 struct cvmx_led_udd_datx_s cn58xxp1;
210};
211
212union cvmx_led_udd_dat_clrx {
213 uint64_t u64;
214 struct cvmx_led_udd_dat_clrx_s {
215 uint64_t reserved_32_63:32;
216 uint64_t clr:32;
217 } s;
218 struct cvmx_led_udd_dat_clrx_s cn38xx;
219 struct cvmx_led_udd_dat_clrx_s cn38xxp2;
220 struct cvmx_led_udd_dat_clrx_s cn56xx;
221 struct cvmx_led_udd_dat_clrx_s cn56xxp1;
222 struct cvmx_led_udd_dat_clrx_s cn58xx;
223 struct cvmx_led_udd_dat_clrx_s cn58xxp1;
224};
225
226union cvmx_led_udd_dat_setx {
227 uint64_t u64;
228 struct cvmx_led_udd_dat_setx_s {
229 uint64_t reserved_32_63:32;
230 uint64_t set:32;
231 } s;
232 struct cvmx_led_udd_dat_setx_s cn38xx;
233 struct cvmx_led_udd_dat_setx_s cn38xxp2;
234 struct cvmx_led_udd_dat_setx_s cn56xx;
235 struct cvmx_led_udd_dat_setx_s cn56xxp1;
236 struct cvmx_led_udd_dat_setx_s cn58xx;
237 struct cvmx_led_udd_dat_setx_s cn58xxp1;
238};
239
240#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-mio-defs.h b/arch/mips/include/asm/octeon/cvmx-mio-defs.h
new file mode 100644
index 000000000000..6555f0530988
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-mio-defs.h
@@ -0,0 +1,2004 @@
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_MIO_DEFS_H__
29#define __CVMX_MIO_DEFS_H__
30
31#define CVMX_MIO_BOOT_BIST_STAT \
32 CVMX_ADD_IO_SEG(0x00011800000000F8ull)
33#define CVMX_MIO_BOOT_COMP \
34 CVMX_ADD_IO_SEG(0x00011800000000B8ull)
35#define CVMX_MIO_BOOT_DMA_CFGX(offset) \
36 CVMX_ADD_IO_SEG(0x0001180000000100ull + (((offset) & 3) * 8))
37#define CVMX_MIO_BOOT_DMA_INTX(offset) \
38 CVMX_ADD_IO_SEG(0x0001180000000138ull + (((offset) & 3) * 8))
39#define CVMX_MIO_BOOT_DMA_INT_ENX(offset) \
40 CVMX_ADD_IO_SEG(0x0001180000000150ull + (((offset) & 3) * 8))
41#define CVMX_MIO_BOOT_DMA_TIMX(offset) \
42 CVMX_ADD_IO_SEG(0x0001180000000120ull + (((offset) & 3) * 8))
43#define CVMX_MIO_BOOT_ERR \
44 CVMX_ADD_IO_SEG(0x00011800000000A0ull)
45#define CVMX_MIO_BOOT_INT \
46 CVMX_ADD_IO_SEG(0x00011800000000A8ull)
47#define CVMX_MIO_BOOT_LOC_ADR \
48 CVMX_ADD_IO_SEG(0x0001180000000090ull)
49#define CVMX_MIO_BOOT_LOC_CFGX(offset) \
50 CVMX_ADD_IO_SEG(0x0001180000000080ull + (((offset) & 1) * 8))
51#define CVMX_MIO_BOOT_LOC_DAT \
52 CVMX_ADD_IO_SEG(0x0001180000000098ull)
53#define CVMX_MIO_BOOT_PIN_DEFS \
54 CVMX_ADD_IO_SEG(0x00011800000000C0ull)
55#define CVMX_MIO_BOOT_REG_CFGX(offset) \
56 CVMX_ADD_IO_SEG(0x0001180000000000ull + (((offset) & 7) * 8))
57#define CVMX_MIO_BOOT_REG_TIMX(offset) \
58 CVMX_ADD_IO_SEG(0x0001180000000040ull + (((offset) & 7) * 8))
59#define CVMX_MIO_BOOT_THR \
60 CVMX_ADD_IO_SEG(0x00011800000000B0ull)
61#define CVMX_MIO_FUS_BNK_DATX(offset) \
62 CVMX_ADD_IO_SEG(0x0001180000001520ull + (((offset) & 3) * 8))
63#define CVMX_MIO_FUS_DAT0 \
64 CVMX_ADD_IO_SEG(0x0001180000001400ull)
65#define CVMX_MIO_FUS_DAT1 \
66 CVMX_ADD_IO_SEG(0x0001180000001408ull)
67#define CVMX_MIO_FUS_DAT2 \
68 CVMX_ADD_IO_SEG(0x0001180000001410ull)
69#define CVMX_MIO_FUS_DAT3 \
70 CVMX_ADD_IO_SEG(0x0001180000001418ull)
71#define CVMX_MIO_FUS_EMA \
72 CVMX_ADD_IO_SEG(0x0001180000001550ull)
73#define CVMX_MIO_FUS_PDF \
74 CVMX_ADD_IO_SEG(0x0001180000001420ull)
75#define CVMX_MIO_FUS_PLL \
76 CVMX_ADD_IO_SEG(0x0001180000001580ull)
77#define CVMX_MIO_FUS_PROG \
78 CVMX_ADD_IO_SEG(0x0001180000001510ull)
79#define CVMX_MIO_FUS_PROG_TIMES \
80 CVMX_ADD_IO_SEG(0x0001180000001518ull)
81#define CVMX_MIO_FUS_RCMD \
82 CVMX_ADD_IO_SEG(0x0001180000001500ull)
83#define CVMX_MIO_FUS_SPR_REPAIR_RES \
84 CVMX_ADD_IO_SEG(0x0001180000001548ull)
85#define CVMX_MIO_FUS_SPR_REPAIR_SUM \
86 CVMX_ADD_IO_SEG(0x0001180000001540ull)
87#define CVMX_MIO_FUS_UNLOCK \
88 CVMX_ADD_IO_SEG(0x0001180000001578ull)
89#define CVMX_MIO_FUS_WADR \
90 CVMX_ADD_IO_SEG(0x0001180000001508ull)
91#define CVMX_MIO_NDF_DMA_CFG \
92 CVMX_ADD_IO_SEG(0x0001180000000168ull)
93#define CVMX_MIO_NDF_DMA_INT \
94 CVMX_ADD_IO_SEG(0x0001180000000170ull)
95#define CVMX_MIO_NDF_DMA_INT_EN \
96 CVMX_ADD_IO_SEG(0x0001180000000178ull)
97#define CVMX_MIO_PLL_CTL \
98 CVMX_ADD_IO_SEG(0x0001180000001448ull)
99#define CVMX_MIO_PLL_SETTING \
100 CVMX_ADD_IO_SEG(0x0001180000001440ull)
101#define CVMX_MIO_TWSX_INT(offset) \
102 CVMX_ADD_IO_SEG(0x0001180000001010ull + (((offset) & 1) * 512))
103#define CVMX_MIO_TWSX_SW_TWSI(offset) \
104 CVMX_ADD_IO_SEG(0x0001180000001000ull + (((offset) & 1) * 512))
105#define CVMX_MIO_TWSX_SW_TWSI_EXT(offset) \
106 CVMX_ADD_IO_SEG(0x0001180000001018ull + (((offset) & 1) * 512))
107#define CVMX_MIO_TWSX_TWSI_SW(offset) \
108 CVMX_ADD_IO_SEG(0x0001180000001008ull + (((offset) & 1) * 512))
109#define CVMX_MIO_UART2_DLH \
110 CVMX_ADD_IO_SEG(0x0001180000000488ull)
111#define CVMX_MIO_UART2_DLL \
112 CVMX_ADD_IO_SEG(0x0001180000000480ull)
113#define CVMX_MIO_UART2_FAR \
114 CVMX_ADD_IO_SEG(0x0001180000000520ull)
115#define CVMX_MIO_UART2_FCR \
116 CVMX_ADD_IO_SEG(0x0001180000000450ull)
117#define CVMX_MIO_UART2_HTX \
118 CVMX_ADD_IO_SEG(0x0001180000000708ull)
119#define CVMX_MIO_UART2_IER \
120 CVMX_ADD_IO_SEG(0x0001180000000408ull)
121#define CVMX_MIO_UART2_IIR \
122 CVMX_ADD_IO_SEG(0x0001180000000410ull)
123#define CVMX_MIO_UART2_LCR \
124 CVMX_ADD_IO_SEG(0x0001180000000418ull)
125#define CVMX_MIO_UART2_LSR \
126 CVMX_ADD_IO_SEG(0x0001180000000428ull)
127#define CVMX_MIO_UART2_MCR \
128 CVMX_ADD_IO_SEG(0x0001180000000420ull)
129#define CVMX_MIO_UART2_MSR \
130 CVMX_ADD_IO_SEG(0x0001180000000430ull)
131#define CVMX_MIO_UART2_RBR \
132 CVMX_ADD_IO_SEG(0x0001180000000400ull)
133#define CVMX_MIO_UART2_RFL \
134 CVMX_ADD_IO_SEG(0x0001180000000608ull)
135#define CVMX_MIO_UART2_RFW \
136 CVMX_ADD_IO_SEG(0x0001180000000530ull)
137#define CVMX_MIO_UART2_SBCR \
138 CVMX_ADD_IO_SEG(0x0001180000000620ull)
139#define CVMX_MIO_UART2_SCR \
140 CVMX_ADD_IO_SEG(0x0001180000000438ull)
141#define CVMX_MIO_UART2_SFE \
142 CVMX_ADD_IO_SEG(0x0001180000000630ull)
143#define CVMX_MIO_UART2_SRR \
144 CVMX_ADD_IO_SEG(0x0001180000000610ull)
145#define CVMX_MIO_UART2_SRT \
146 CVMX_ADD_IO_SEG(0x0001180000000638ull)
147#define CVMX_MIO_UART2_SRTS \
148 CVMX_ADD_IO_SEG(0x0001180000000618ull)
149#define CVMX_MIO_UART2_STT \
150 CVMX_ADD_IO_SEG(0x0001180000000700ull)
151#define CVMX_MIO_UART2_TFL \
152 CVMX_ADD_IO_SEG(0x0001180000000600ull)
153#define CVMX_MIO_UART2_TFR \
154 CVMX_ADD_IO_SEG(0x0001180000000528ull)
155#define CVMX_MIO_UART2_THR \
156 CVMX_ADD_IO_SEG(0x0001180000000440ull)
157#define CVMX_MIO_UART2_USR \
158 CVMX_ADD_IO_SEG(0x0001180000000538ull)
159#define CVMX_MIO_UARTX_DLH(offset) \
160 CVMX_ADD_IO_SEG(0x0001180000000888ull + (((offset) & 1) * 1024))
161#define CVMX_MIO_UARTX_DLL(offset) \
162 CVMX_ADD_IO_SEG(0x0001180000000880ull + (((offset) & 1) * 1024))
163#define CVMX_MIO_UARTX_FAR(offset) \
164 CVMX_ADD_IO_SEG(0x0001180000000920ull + (((offset) & 1) * 1024))
165#define CVMX_MIO_UARTX_FCR(offset) \
166 CVMX_ADD_IO_SEG(0x0001180000000850ull + (((offset) & 1) * 1024))
167#define CVMX_MIO_UARTX_HTX(offset) \
168 CVMX_ADD_IO_SEG(0x0001180000000B08ull + (((offset) & 1) * 1024))
169#define CVMX_MIO_UARTX_IER(offset) \
170 CVMX_ADD_IO_SEG(0x0001180000000808ull + (((offset) & 1) * 1024))
171#define CVMX_MIO_UARTX_IIR(offset) \
172 CVMX_ADD_IO_SEG(0x0001180000000810ull + (((offset) & 1) * 1024))
173#define CVMX_MIO_UARTX_LCR(offset) \
174 CVMX_ADD_IO_SEG(0x0001180000000818ull + (((offset) & 1) * 1024))
175#define CVMX_MIO_UARTX_LSR(offset) \
176 CVMX_ADD_IO_SEG(0x0001180000000828ull + (((offset) & 1) * 1024))
177#define CVMX_MIO_UARTX_MCR(offset) \
178 CVMX_ADD_IO_SEG(0x0001180000000820ull + (((offset) & 1) * 1024))
179#define CVMX_MIO_UARTX_MSR(offset) \
180 CVMX_ADD_IO_SEG(0x0001180000000830ull + (((offset) & 1) * 1024))
181#define CVMX_MIO_UARTX_RBR(offset) \
182 CVMX_ADD_IO_SEG(0x0001180000000800ull + (((offset) & 1) * 1024))
183#define CVMX_MIO_UARTX_RFL(offset) \
184 CVMX_ADD_IO_SEG(0x0001180000000A08ull + (((offset) & 1) * 1024))
185#define CVMX_MIO_UARTX_RFW(offset) \
186 CVMX_ADD_IO_SEG(0x0001180000000930ull + (((offset) & 1) * 1024))
187#define CVMX_MIO_UARTX_SBCR(offset) \
188 CVMX_ADD_IO_SEG(0x0001180000000A20ull + (((offset) & 1) * 1024))
189#define CVMX_MIO_UARTX_SCR(offset) \
190 CVMX_ADD_IO_SEG(0x0001180000000838ull + (((offset) & 1) * 1024))
191#define CVMX_MIO_UARTX_SFE(offset) \
192 CVMX_ADD_IO_SEG(0x0001180000000A30ull + (((offset) & 1) * 1024))
193#define CVMX_MIO_UARTX_SRR(offset) \
194 CVMX_ADD_IO_SEG(0x0001180000000A10ull + (((offset) & 1) * 1024))
195#define CVMX_MIO_UARTX_SRT(offset) \
196 CVMX_ADD_IO_SEG(0x0001180000000A38ull + (((offset) & 1) * 1024))
197#define CVMX_MIO_UARTX_SRTS(offset) \
198 CVMX_ADD_IO_SEG(0x0001180000000A18ull + (((offset) & 1) * 1024))
199#define CVMX_MIO_UARTX_STT(offset) \
200 CVMX_ADD_IO_SEG(0x0001180000000B00ull + (((offset) & 1) * 1024))
201#define CVMX_MIO_UARTX_TFL(offset) \
202 CVMX_ADD_IO_SEG(0x0001180000000A00ull + (((offset) & 1) * 1024))
203#define CVMX_MIO_UARTX_TFR(offset) \
204 CVMX_ADD_IO_SEG(0x0001180000000928ull + (((offset) & 1) * 1024))
205#define CVMX_MIO_UARTX_THR(offset) \
206 CVMX_ADD_IO_SEG(0x0001180000000840ull + (((offset) & 1) * 1024))
207#define CVMX_MIO_UARTX_USR(offset) \
208 CVMX_ADD_IO_SEG(0x0001180000000938ull + (((offset) & 1) * 1024))
209
210union cvmx_mio_boot_bist_stat {
211 uint64_t u64;
212 struct cvmx_mio_boot_bist_stat_s {
213 uint64_t reserved_2_63:62;
214 uint64_t loc:1;
215 uint64_t ncbi:1;
216 } s;
217 struct cvmx_mio_boot_bist_stat_cn30xx {
218 uint64_t reserved_4_63:60;
219 uint64_t ncbo_1:1;
220 uint64_t ncbo_0:1;
221 uint64_t loc:1;
222 uint64_t ncbi:1;
223 } cn30xx;
224 struct cvmx_mio_boot_bist_stat_cn30xx cn31xx;
225 struct cvmx_mio_boot_bist_stat_cn38xx {
226 uint64_t reserved_3_63:61;
227 uint64_t ncbo_0:1;
228 uint64_t loc:1;
229 uint64_t ncbi:1;
230 } cn38xx;
231 struct cvmx_mio_boot_bist_stat_cn38xx cn38xxp2;
232 struct cvmx_mio_boot_bist_stat_cn50xx {
233 uint64_t reserved_6_63:58;
234 uint64_t pcm_1:1;
235 uint64_t pcm_0:1;
236 uint64_t ncbo_1:1;
237 uint64_t ncbo_0:1;
238 uint64_t loc:1;
239 uint64_t ncbi:1;
240 } cn50xx;
241 struct cvmx_mio_boot_bist_stat_cn52xx {
242 uint64_t reserved_6_63:58;
243 uint64_t ndf:2;
244 uint64_t ncbo_0:1;
245 uint64_t dma:1;
246 uint64_t loc:1;
247 uint64_t ncbi:1;
248 } cn52xx;
249 struct cvmx_mio_boot_bist_stat_cn52xxp1 {
250 uint64_t reserved_4_63:60;
251 uint64_t ncbo_0:1;
252 uint64_t dma:1;
253 uint64_t loc:1;
254 uint64_t ncbi:1;
255 } cn52xxp1;
256 struct cvmx_mio_boot_bist_stat_cn52xxp1 cn56xx;
257 struct cvmx_mio_boot_bist_stat_cn52xxp1 cn56xxp1;
258 struct cvmx_mio_boot_bist_stat_cn38xx cn58xx;
259 struct cvmx_mio_boot_bist_stat_cn38xx cn58xxp1;
260};
261
262union cvmx_mio_boot_comp {
263 uint64_t u64;
264 struct cvmx_mio_boot_comp_s {
265 uint64_t reserved_10_63:54;
266 uint64_t pctl:5;
267 uint64_t nctl:5;
268 } s;
269 struct cvmx_mio_boot_comp_s cn50xx;
270 struct cvmx_mio_boot_comp_s cn52xx;
271 struct cvmx_mio_boot_comp_s cn52xxp1;
272 struct cvmx_mio_boot_comp_s cn56xx;
273 struct cvmx_mio_boot_comp_s cn56xxp1;
274};
275
276union cvmx_mio_boot_dma_cfgx {
277 uint64_t u64;
278 struct cvmx_mio_boot_dma_cfgx_s {
279 uint64_t en:1;
280 uint64_t rw:1;
281 uint64_t clr:1;
282 uint64_t reserved_60_60:1;
283 uint64_t swap32:1;
284 uint64_t swap16:1;
285 uint64_t swap8:1;
286 uint64_t endian:1;
287 uint64_t size:20;
288 uint64_t adr:36;
289 } s;
290 struct cvmx_mio_boot_dma_cfgx_s cn52xx;
291 struct cvmx_mio_boot_dma_cfgx_s cn52xxp1;
292 struct cvmx_mio_boot_dma_cfgx_s cn56xx;
293 struct cvmx_mio_boot_dma_cfgx_s cn56xxp1;
294};
295
296union cvmx_mio_boot_dma_intx {
297 uint64_t u64;
298 struct cvmx_mio_boot_dma_intx_s {
299 uint64_t reserved_2_63:62;
300 uint64_t dmarq:1;
301 uint64_t done:1;
302 } s;
303 struct cvmx_mio_boot_dma_intx_s cn52xx;
304 struct cvmx_mio_boot_dma_intx_s cn52xxp1;
305 struct cvmx_mio_boot_dma_intx_s cn56xx;
306 struct cvmx_mio_boot_dma_intx_s cn56xxp1;
307};
308
309union cvmx_mio_boot_dma_int_enx {
310 uint64_t u64;
311 struct cvmx_mio_boot_dma_int_enx_s {
312 uint64_t reserved_2_63:62;
313 uint64_t dmarq:1;
314 uint64_t done:1;
315 } s;
316 struct cvmx_mio_boot_dma_int_enx_s cn52xx;
317 struct cvmx_mio_boot_dma_int_enx_s cn52xxp1;
318 struct cvmx_mio_boot_dma_int_enx_s cn56xx;
319 struct cvmx_mio_boot_dma_int_enx_s cn56xxp1;
320};
321
322union cvmx_mio_boot_dma_timx {
323 uint64_t u64;
324 struct cvmx_mio_boot_dma_timx_s {
325 uint64_t dmack_pi:1;
326 uint64_t dmarq_pi:1;
327 uint64_t tim_mult:2;
328 uint64_t rd_dly:3;
329 uint64_t ddr:1;
330 uint64_t width:1;
331 uint64_t reserved_48_54:7;
332 uint64_t pause:6;
333 uint64_t dmack_h:6;
334 uint64_t we_n:6;
335 uint64_t we_a:6;
336 uint64_t oe_n:6;
337 uint64_t oe_a:6;
338 uint64_t dmack_s:6;
339 uint64_t dmarq:6;
340 } s;
341 struct cvmx_mio_boot_dma_timx_s cn52xx;
342 struct cvmx_mio_boot_dma_timx_s cn52xxp1;
343 struct cvmx_mio_boot_dma_timx_s cn56xx;
344 struct cvmx_mio_boot_dma_timx_s cn56xxp1;
345};
346
347union cvmx_mio_boot_err {
348 uint64_t u64;
349 struct cvmx_mio_boot_err_s {
350 uint64_t reserved_2_63:62;
351 uint64_t wait_err:1;
352 uint64_t adr_err:1;
353 } s;
354 struct cvmx_mio_boot_err_s cn30xx;
355 struct cvmx_mio_boot_err_s cn31xx;
356 struct cvmx_mio_boot_err_s cn38xx;
357 struct cvmx_mio_boot_err_s cn38xxp2;
358 struct cvmx_mio_boot_err_s cn50xx;
359 struct cvmx_mio_boot_err_s cn52xx;
360 struct cvmx_mio_boot_err_s cn52xxp1;
361 struct cvmx_mio_boot_err_s cn56xx;
362 struct cvmx_mio_boot_err_s cn56xxp1;
363 struct cvmx_mio_boot_err_s cn58xx;
364 struct cvmx_mio_boot_err_s cn58xxp1;
365};
366
367union cvmx_mio_boot_int {
368 uint64_t u64;
369 struct cvmx_mio_boot_int_s {
370 uint64_t reserved_2_63:62;
371 uint64_t wait_int:1;
372 uint64_t adr_int:1;
373 } s;
374 struct cvmx_mio_boot_int_s cn30xx;
375 struct cvmx_mio_boot_int_s cn31xx;
376 struct cvmx_mio_boot_int_s cn38xx;
377 struct cvmx_mio_boot_int_s cn38xxp2;
378 struct cvmx_mio_boot_int_s cn50xx;
379 struct cvmx_mio_boot_int_s cn52xx;
380 struct cvmx_mio_boot_int_s cn52xxp1;
381 struct cvmx_mio_boot_int_s cn56xx;
382 struct cvmx_mio_boot_int_s cn56xxp1;
383 struct cvmx_mio_boot_int_s cn58xx;
384 struct cvmx_mio_boot_int_s cn58xxp1;
385};
386
387union cvmx_mio_boot_loc_adr {
388 uint64_t u64;
389 struct cvmx_mio_boot_loc_adr_s {
390 uint64_t reserved_8_63:56;
391 uint64_t adr:5;
392 uint64_t reserved_0_2:3;
393 } s;
394 struct cvmx_mio_boot_loc_adr_s cn30xx;
395 struct cvmx_mio_boot_loc_adr_s cn31xx;
396 struct cvmx_mio_boot_loc_adr_s cn38xx;
397 struct cvmx_mio_boot_loc_adr_s cn38xxp2;
398 struct cvmx_mio_boot_loc_adr_s cn50xx;
399 struct cvmx_mio_boot_loc_adr_s cn52xx;
400 struct cvmx_mio_boot_loc_adr_s cn52xxp1;
401 struct cvmx_mio_boot_loc_adr_s cn56xx;
402 struct cvmx_mio_boot_loc_adr_s cn56xxp1;
403 struct cvmx_mio_boot_loc_adr_s cn58xx;
404 struct cvmx_mio_boot_loc_adr_s cn58xxp1;
405};
406
407union cvmx_mio_boot_loc_cfgx {
408 uint64_t u64;
409 struct cvmx_mio_boot_loc_cfgx_s {
410 uint64_t reserved_32_63:32;
411 uint64_t en:1;
412 uint64_t reserved_28_30:3;
413 uint64_t base:25;
414 uint64_t reserved_0_2:3;
415 } s;
416 struct cvmx_mio_boot_loc_cfgx_s cn30xx;
417 struct cvmx_mio_boot_loc_cfgx_s cn31xx;
418 struct cvmx_mio_boot_loc_cfgx_s cn38xx;
419 struct cvmx_mio_boot_loc_cfgx_s cn38xxp2;
420 struct cvmx_mio_boot_loc_cfgx_s cn50xx;
421 struct cvmx_mio_boot_loc_cfgx_s cn52xx;
422 struct cvmx_mio_boot_loc_cfgx_s cn52xxp1;
423 struct cvmx_mio_boot_loc_cfgx_s cn56xx;
424 struct cvmx_mio_boot_loc_cfgx_s cn56xxp1;
425 struct cvmx_mio_boot_loc_cfgx_s cn58xx;
426 struct cvmx_mio_boot_loc_cfgx_s cn58xxp1;
427};
428
429union cvmx_mio_boot_loc_dat {
430 uint64_t u64;
431 struct cvmx_mio_boot_loc_dat_s {
432 uint64_t data:64;
433 } s;
434 struct cvmx_mio_boot_loc_dat_s cn30xx;
435 struct cvmx_mio_boot_loc_dat_s cn31xx;
436 struct cvmx_mio_boot_loc_dat_s cn38xx;
437 struct cvmx_mio_boot_loc_dat_s cn38xxp2;
438 struct cvmx_mio_boot_loc_dat_s cn50xx;
439 struct cvmx_mio_boot_loc_dat_s cn52xx;
440 struct cvmx_mio_boot_loc_dat_s cn52xxp1;
441 struct cvmx_mio_boot_loc_dat_s cn56xx;
442 struct cvmx_mio_boot_loc_dat_s cn56xxp1;
443 struct cvmx_mio_boot_loc_dat_s cn58xx;
444 struct cvmx_mio_boot_loc_dat_s cn58xxp1;
445};
446
447union cvmx_mio_boot_pin_defs {
448 uint64_t u64;
449 struct cvmx_mio_boot_pin_defs_s {
450 uint64_t reserved_16_63:48;
451 uint64_t ale:1;
452 uint64_t width:1;
453 uint64_t dmack_p2:1;
454 uint64_t dmack_p1:1;
455 uint64_t dmack_p0:1;
456 uint64_t term:2;
457 uint64_t nand:1;
458 uint64_t reserved_0_7:8;
459 } s;
460 struct cvmx_mio_boot_pin_defs_cn52xx {
461 uint64_t reserved_16_63:48;
462 uint64_t ale:1;
463 uint64_t width:1;
464 uint64_t reserved_13_13:1;
465 uint64_t dmack_p1:1;
466 uint64_t dmack_p0:1;
467 uint64_t term:2;
468 uint64_t nand:1;
469 uint64_t reserved_0_7:8;
470 } cn52xx;
471 struct cvmx_mio_boot_pin_defs_cn56xx {
472 uint64_t reserved_16_63:48;
473 uint64_t ale:1;
474 uint64_t width:1;
475 uint64_t dmack_p2:1;
476 uint64_t dmack_p1:1;
477 uint64_t dmack_p0:1;
478 uint64_t term:2;
479 uint64_t reserved_0_8:9;
480 } cn56xx;
481};
482
483union cvmx_mio_boot_reg_cfgx {
484 uint64_t u64;
485 struct cvmx_mio_boot_reg_cfgx_s {
486 uint64_t reserved_44_63:20;
487 uint64_t dmack:2;
488 uint64_t tim_mult:2;
489 uint64_t rd_dly:3;
490 uint64_t sam:1;
491 uint64_t we_ext:2;
492 uint64_t oe_ext:2;
493 uint64_t en:1;
494 uint64_t orbit:1;
495 uint64_t ale:1;
496 uint64_t width:1;
497 uint64_t size:12;
498 uint64_t base:16;
499 } s;
500 struct cvmx_mio_boot_reg_cfgx_cn30xx {
501 uint64_t reserved_37_63:27;
502 uint64_t sam:1;
503 uint64_t we_ext:2;
504 uint64_t oe_ext:2;
505 uint64_t en:1;
506 uint64_t orbit:1;
507 uint64_t ale:1;
508 uint64_t width:1;
509 uint64_t size:12;
510 uint64_t base:16;
511 } cn30xx;
512 struct cvmx_mio_boot_reg_cfgx_cn30xx cn31xx;
513 struct cvmx_mio_boot_reg_cfgx_cn38xx {
514 uint64_t reserved_32_63:32;
515 uint64_t en:1;
516 uint64_t orbit:1;
517 uint64_t reserved_28_29:2;
518 uint64_t size:12;
519 uint64_t base:16;
520 } cn38xx;
521 struct cvmx_mio_boot_reg_cfgx_cn38xx cn38xxp2;
522 struct cvmx_mio_boot_reg_cfgx_cn50xx {
523 uint64_t reserved_42_63:22;
524 uint64_t tim_mult:2;
525 uint64_t rd_dly:3;
526 uint64_t sam:1;
527 uint64_t we_ext:2;
528 uint64_t oe_ext:2;
529 uint64_t en:1;
530 uint64_t orbit:1;
531 uint64_t ale:1;
532 uint64_t width:1;
533 uint64_t size:12;
534 uint64_t base:16;
535 } cn50xx;
536 struct cvmx_mio_boot_reg_cfgx_s cn52xx;
537 struct cvmx_mio_boot_reg_cfgx_s cn52xxp1;
538 struct cvmx_mio_boot_reg_cfgx_s cn56xx;
539 struct cvmx_mio_boot_reg_cfgx_s cn56xxp1;
540 struct cvmx_mio_boot_reg_cfgx_cn30xx cn58xx;
541 struct cvmx_mio_boot_reg_cfgx_cn30xx cn58xxp1;
542};
543
544union cvmx_mio_boot_reg_timx {
545 uint64_t u64;
546 struct cvmx_mio_boot_reg_timx_s {
547 uint64_t pagem:1;
548 uint64_t waitm:1;
549 uint64_t pages:2;
550 uint64_t ale:6;
551 uint64_t page:6;
552 uint64_t wait:6;
553 uint64_t pause:6;
554 uint64_t wr_hld:6;
555 uint64_t rd_hld:6;
556 uint64_t we:6;
557 uint64_t oe:6;
558 uint64_t ce:6;
559 uint64_t adr:6;
560 } s;
561 struct cvmx_mio_boot_reg_timx_s cn30xx;
562 struct cvmx_mio_boot_reg_timx_s cn31xx;
563 struct cvmx_mio_boot_reg_timx_cn38xx {
564 uint64_t pagem:1;
565 uint64_t waitm:1;
566 uint64_t pages:2;
567 uint64_t reserved_54_59:6;
568 uint64_t page:6;
569 uint64_t wait:6;
570 uint64_t pause:6;
571 uint64_t wr_hld:6;
572 uint64_t rd_hld:6;
573 uint64_t we:6;
574 uint64_t oe:6;
575 uint64_t ce:6;
576 uint64_t adr:6;
577 } cn38xx;
578 struct cvmx_mio_boot_reg_timx_cn38xx cn38xxp2;
579 struct cvmx_mio_boot_reg_timx_s cn50xx;
580 struct cvmx_mio_boot_reg_timx_s cn52xx;
581 struct cvmx_mio_boot_reg_timx_s cn52xxp1;
582 struct cvmx_mio_boot_reg_timx_s cn56xx;
583 struct cvmx_mio_boot_reg_timx_s cn56xxp1;
584 struct cvmx_mio_boot_reg_timx_s cn58xx;
585 struct cvmx_mio_boot_reg_timx_s cn58xxp1;
586};
587
588union cvmx_mio_boot_thr {
589 uint64_t u64;
590 struct cvmx_mio_boot_thr_s {
591 uint64_t reserved_22_63:42;
592 uint64_t dma_thr:6;
593 uint64_t reserved_14_15:2;
594 uint64_t fif_cnt:6;
595 uint64_t reserved_6_7:2;
596 uint64_t fif_thr:6;
597 } s;
598 struct cvmx_mio_boot_thr_cn30xx {
599 uint64_t reserved_14_63:50;
600 uint64_t fif_cnt:6;
601 uint64_t reserved_6_7:2;
602 uint64_t fif_thr:6;
603 } cn30xx;
604 struct cvmx_mio_boot_thr_cn30xx cn31xx;
605 struct cvmx_mio_boot_thr_cn30xx cn38xx;
606 struct cvmx_mio_boot_thr_cn30xx cn38xxp2;
607 struct cvmx_mio_boot_thr_cn30xx cn50xx;
608 struct cvmx_mio_boot_thr_s cn52xx;
609 struct cvmx_mio_boot_thr_s cn52xxp1;
610 struct cvmx_mio_boot_thr_s cn56xx;
611 struct cvmx_mio_boot_thr_s cn56xxp1;
612 struct cvmx_mio_boot_thr_cn30xx cn58xx;
613 struct cvmx_mio_boot_thr_cn30xx cn58xxp1;
614};
615
616union cvmx_mio_fus_bnk_datx {
617 uint64_t u64;
618 struct cvmx_mio_fus_bnk_datx_s {
619 uint64_t dat:64;
620 } s;
621 struct cvmx_mio_fus_bnk_datx_s cn50xx;
622 struct cvmx_mio_fus_bnk_datx_s cn52xx;
623 struct cvmx_mio_fus_bnk_datx_s cn52xxp1;
624 struct cvmx_mio_fus_bnk_datx_s cn56xx;
625 struct cvmx_mio_fus_bnk_datx_s cn56xxp1;
626 struct cvmx_mio_fus_bnk_datx_s cn58xx;
627 struct cvmx_mio_fus_bnk_datx_s cn58xxp1;
628};
629
630union cvmx_mio_fus_dat0 {
631 uint64_t u64;
632 struct cvmx_mio_fus_dat0_s {
633 uint64_t reserved_32_63:32;
634 uint64_t man_info:32;
635 } s;
636 struct cvmx_mio_fus_dat0_s cn30xx;
637 struct cvmx_mio_fus_dat0_s cn31xx;
638 struct cvmx_mio_fus_dat0_s cn38xx;
639 struct cvmx_mio_fus_dat0_s cn38xxp2;
640 struct cvmx_mio_fus_dat0_s cn50xx;
641 struct cvmx_mio_fus_dat0_s cn52xx;
642 struct cvmx_mio_fus_dat0_s cn52xxp1;
643 struct cvmx_mio_fus_dat0_s cn56xx;
644 struct cvmx_mio_fus_dat0_s cn56xxp1;
645 struct cvmx_mio_fus_dat0_s cn58xx;
646 struct cvmx_mio_fus_dat0_s cn58xxp1;
647};
648
649union cvmx_mio_fus_dat1 {
650 uint64_t u64;
651 struct cvmx_mio_fus_dat1_s {
652 uint64_t reserved_32_63:32;
653 uint64_t man_info:32;
654 } s;
655 struct cvmx_mio_fus_dat1_s cn30xx;
656 struct cvmx_mio_fus_dat1_s cn31xx;
657 struct cvmx_mio_fus_dat1_s cn38xx;
658 struct cvmx_mio_fus_dat1_s cn38xxp2;
659 struct cvmx_mio_fus_dat1_s cn50xx;
660 struct cvmx_mio_fus_dat1_s cn52xx;
661 struct cvmx_mio_fus_dat1_s cn52xxp1;
662 struct cvmx_mio_fus_dat1_s cn56xx;
663 struct cvmx_mio_fus_dat1_s cn56xxp1;
664 struct cvmx_mio_fus_dat1_s cn58xx;
665 struct cvmx_mio_fus_dat1_s cn58xxp1;
666};
667
668union cvmx_mio_fus_dat2 {
669 uint64_t u64;
670 struct cvmx_mio_fus_dat2_s {
671 uint64_t reserved_34_63:30;
672 uint64_t fus318:1;
673 uint64_t raid_en:1;
674 uint64_t reserved_30_31:2;
675 uint64_t nokasu:1;
676 uint64_t nodfa_cp2:1;
677 uint64_t nomul:1;
678 uint64_t nocrypto:1;
679 uint64_t rst_sht:1;
680 uint64_t bist_dis:1;
681 uint64_t chip_id:8;
682 uint64_t reserved_0_15:16;
683 } s;
684 struct cvmx_mio_fus_dat2_cn30xx {
685 uint64_t reserved_29_63:35;
686 uint64_t nodfa_cp2:1;
687 uint64_t nomul:1;
688 uint64_t nocrypto:1;
689 uint64_t rst_sht:1;
690 uint64_t bist_dis:1;
691 uint64_t chip_id:8;
692 uint64_t pll_off:4;
693 uint64_t reserved_1_11:11;
694 uint64_t pp_dis:1;
695 } cn30xx;
696 struct cvmx_mio_fus_dat2_cn31xx {
697 uint64_t reserved_29_63:35;
698 uint64_t nodfa_cp2:1;
699 uint64_t nomul:1;
700 uint64_t nocrypto:1;
701 uint64_t rst_sht:1;
702 uint64_t bist_dis:1;
703 uint64_t chip_id:8;
704 uint64_t pll_off:4;
705 uint64_t reserved_2_11:10;
706 uint64_t pp_dis:2;
707 } cn31xx;
708 struct cvmx_mio_fus_dat2_cn38xx {
709 uint64_t reserved_29_63:35;
710 uint64_t nodfa_cp2:1;
711 uint64_t nomul:1;
712 uint64_t nocrypto:1;
713 uint64_t rst_sht:1;
714 uint64_t bist_dis:1;
715 uint64_t chip_id:8;
716 uint64_t pp_dis:16;
717 } cn38xx;
718 struct cvmx_mio_fus_dat2_cn38xx cn38xxp2;
719 struct cvmx_mio_fus_dat2_cn50xx {
720 uint64_t reserved_34_63:30;
721 uint64_t fus318:1;
722 uint64_t raid_en:1;
723 uint64_t reserved_30_31:2;
724 uint64_t nokasu:1;
725 uint64_t nodfa_cp2:1;
726 uint64_t nomul:1;
727 uint64_t nocrypto:1;
728 uint64_t rst_sht:1;
729 uint64_t bist_dis:1;
730 uint64_t chip_id:8;
731 uint64_t reserved_2_15:14;
732 uint64_t pp_dis:2;
733 } cn50xx;
734 struct cvmx_mio_fus_dat2_cn52xx {
735 uint64_t reserved_34_63:30;
736 uint64_t fus318:1;
737 uint64_t raid_en:1;
738 uint64_t reserved_30_31:2;
739 uint64_t nokasu:1;
740 uint64_t nodfa_cp2:1;
741 uint64_t nomul:1;
742 uint64_t nocrypto:1;
743 uint64_t rst_sht:1;
744 uint64_t bist_dis:1;
745 uint64_t chip_id:8;
746 uint64_t reserved_4_15:12;
747 uint64_t pp_dis:4;
748 } cn52xx;
749 struct cvmx_mio_fus_dat2_cn52xx cn52xxp1;
750 struct cvmx_mio_fus_dat2_cn56xx {
751 uint64_t reserved_34_63:30;
752 uint64_t fus318:1;
753 uint64_t raid_en:1;
754 uint64_t reserved_30_31:2;
755 uint64_t nokasu:1;
756 uint64_t nodfa_cp2:1;
757 uint64_t nomul:1;
758 uint64_t nocrypto:1;
759 uint64_t rst_sht:1;
760 uint64_t bist_dis:1;
761 uint64_t chip_id:8;
762 uint64_t reserved_12_15:4;
763 uint64_t pp_dis:12;
764 } cn56xx;
765 struct cvmx_mio_fus_dat2_cn56xx cn56xxp1;
766 struct cvmx_mio_fus_dat2_cn58xx {
767 uint64_t reserved_30_63:34;
768 uint64_t nokasu:1;
769 uint64_t nodfa_cp2:1;
770 uint64_t nomul:1;
771 uint64_t nocrypto:1;
772 uint64_t rst_sht:1;
773 uint64_t bist_dis:1;
774 uint64_t chip_id:8;
775 uint64_t pp_dis:16;
776 } cn58xx;
777 struct cvmx_mio_fus_dat2_cn58xx cn58xxp1;
778};
779
780union cvmx_mio_fus_dat3 {
781 uint64_t u64;
782 struct cvmx_mio_fus_dat3_s {
783 uint64_t reserved_32_63:32;
784 uint64_t pll_div4:1;
785 uint64_t zip_crip:2;
786 uint64_t bar2_en:1;
787 uint64_t efus_lck:1;
788 uint64_t efus_ign:1;
789 uint64_t nozip:1;
790 uint64_t nodfa_dte:1;
791 uint64_t icache:24;
792 } s;
793 struct cvmx_mio_fus_dat3_cn30xx {
794 uint64_t reserved_32_63:32;
795 uint64_t pll_div4:1;
796 uint64_t reserved_29_30:2;
797 uint64_t bar2_en:1;
798 uint64_t efus_lck:1;
799 uint64_t efus_ign:1;
800 uint64_t nozip:1;
801 uint64_t nodfa_dte:1;
802 uint64_t icache:24;
803 } cn30xx;
804 struct cvmx_mio_fus_dat3_s cn31xx;
805 struct cvmx_mio_fus_dat3_cn38xx {
806 uint64_t reserved_31_63:33;
807 uint64_t zip_crip:2;
808 uint64_t bar2_en:1;
809 uint64_t efus_lck:1;
810 uint64_t efus_ign:1;
811 uint64_t nozip:1;
812 uint64_t nodfa_dte:1;
813 uint64_t icache:24;
814 } cn38xx;
815 struct cvmx_mio_fus_dat3_cn38xxp2 {
816 uint64_t reserved_29_63:35;
817 uint64_t bar2_en:1;
818 uint64_t efus_lck:1;
819 uint64_t efus_ign:1;
820 uint64_t nozip:1;
821 uint64_t nodfa_dte:1;
822 uint64_t icache:24;
823 } cn38xxp2;
824 struct cvmx_mio_fus_dat3_cn38xx cn50xx;
825 struct cvmx_mio_fus_dat3_cn38xx cn52xx;
826 struct cvmx_mio_fus_dat3_cn38xx cn52xxp1;
827 struct cvmx_mio_fus_dat3_cn38xx cn56xx;
828 struct cvmx_mio_fus_dat3_cn38xx cn56xxp1;
829 struct cvmx_mio_fus_dat3_cn38xx cn58xx;
830 struct cvmx_mio_fus_dat3_cn38xx cn58xxp1;
831};
832
833union cvmx_mio_fus_ema {
834 uint64_t u64;
835 struct cvmx_mio_fus_ema_s {
836 uint64_t reserved_7_63:57;
837 uint64_t eff_ema:3;
838 uint64_t reserved_3_3:1;
839 uint64_t ema:3;
840 } s;
841 struct cvmx_mio_fus_ema_s cn50xx;
842 struct cvmx_mio_fus_ema_s cn52xx;
843 struct cvmx_mio_fus_ema_s cn52xxp1;
844 struct cvmx_mio_fus_ema_s cn56xx;
845 struct cvmx_mio_fus_ema_s cn56xxp1;
846 struct cvmx_mio_fus_ema_cn58xx {
847 uint64_t reserved_2_63:62;
848 uint64_t ema:2;
849 } cn58xx;
850 struct cvmx_mio_fus_ema_cn58xx cn58xxp1;
851};
852
853union cvmx_mio_fus_pdf {
854 uint64_t u64;
855 struct cvmx_mio_fus_pdf_s {
856 uint64_t pdf:64;
857 } s;
858 struct cvmx_mio_fus_pdf_s cn50xx;
859 struct cvmx_mio_fus_pdf_s cn52xx;
860 struct cvmx_mio_fus_pdf_s cn52xxp1;
861 struct cvmx_mio_fus_pdf_s cn56xx;
862 struct cvmx_mio_fus_pdf_s cn56xxp1;
863 struct cvmx_mio_fus_pdf_s cn58xx;
864};
865
866union cvmx_mio_fus_pll {
867 uint64_t u64;
868 struct cvmx_mio_fus_pll_s {
869 uint64_t reserved_2_63:62;
870 uint64_t rfslip:1;
871 uint64_t fbslip:1;
872 } s;
873 struct cvmx_mio_fus_pll_s cn50xx;
874 struct cvmx_mio_fus_pll_s cn52xx;
875 struct cvmx_mio_fus_pll_s cn52xxp1;
876 struct cvmx_mio_fus_pll_s cn56xx;
877 struct cvmx_mio_fus_pll_s cn56xxp1;
878 struct cvmx_mio_fus_pll_s cn58xx;
879 struct cvmx_mio_fus_pll_s cn58xxp1;
880};
881
882union cvmx_mio_fus_prog {
883 uint64_t u64;
884 struct cvmx_mio_fus_prog_s {
885 uint64_t reserved_1_63:63;
886 uint64_t prog:1;
887 } s;
888 struct cvmx_mio_fus_prog_s cn30xx;
889 struct cvmx_mio_fus_prog_s cn31xx;
890 struct cvmx_mio_fus_prog_s cn38xx;
891 struct cvmx_mio_fus_prog_s cn38xxp2;
892 struct cvmx_mio_fus_prog_s cn50xx;
893 struct cvmx_mio_fus_prog_s cn52xx;
894 struct cvmx_mio_fus_prog_s cn52xxp1;
895 struct cvmx_mio_fus_prog_s cn56xx;
896 struct cvmx_mio_fus_prog_s cn56xxp1;
897 struct cvmx_mio_fus_prog_s cn58xx;
898 struct cvmx_mio_fus_prog_s cn58xxp1;
899};
900
901union cvmx_mio_fus_prog_times {
902 uint64_t u64;
903 struct cvmx_mio_fus_prog_times_s {
904 uint64_t reserved_33_63:31;
905 uint64_t prog_pin:1;
906 uint64_t out:8;
907 uint64_t sclk_lo:4;
908 uint64_t sclk_hi:12;
909 uint64_t setup:8;
910 } s;
911 struct cvmx_mio_fus_prog_times_s cn50xx;
912 struct cvmx_mio_fus_prog_times_s cn52xx;
913 struct cvmx_mio_fus_prog_times_s cn52xxp1;
914 struct cvmx_mio_fus_prog_times_s cn56xx;
915 struct cvmx_mio_fus_prog_times_s cn56xxp1;
916 struct cvmx_mio_fus_prog_times_s cn58xx;
917 struct cvmx_mio_fus_prog_times_s cn58xxp1;
918};
919
920union cvmx_mio_fus_rcmd {
921 uint64_t u64;
922 struct cvmx_mio_fus_rcmd_s {
923 uint64_t reserved_24_63:40;
924 uint64_t dat:8;
925 uint64_t reserved_13_15:3;
926 uint64_t pend:1;
927 uint64_t reserved_9_11:3;
928 uint64_t efuse:1;
929 uint64_t addr:8;
930 } s;
931 struct cvmx_mio_fus_rcmd_cn30xx {
932 uint64_t reserved_24_63:40;
933 uint64_t dat:8;
934 uint64_t reserved_13_15:3;
935 uint64_t pend:1;
936 uint64_t reserved_9_11:3;
937 uint64_t efuse:1;
938 uint64_t reserved_7_7:1;
939 uint64_t addr:7;
940 } cn30xx;
941 struct cvmx_mio_fus_rcmd_cn30xx cn31xx;
942 struct cvmx_mio_fus_rcmd_cn30xx cn38xx;
943 struct cvmx_mio_fus_rcmd_cn30xx cn38xxp2;
944 struct cvmx_mio_fus_rcmd_cn30xx cn50xx;
945 struct cvmx_mio_fus_rcmd_s cn52xx;
946 struct cvmx_mio_fus_rcmd_s cn52xxp1;
947 struct cvmx_mio_fus_rcmd_s cn56xx;
948 struct cvmx_mio_fus_rcmd_s cn56xxp1;
949 struct cvmx_mio_fus_rcmd_cn30xx cn58xx;
950 struct cvmx_mio_fus_rcmd_cn30xx cn58xxp1;
951};
952
953union cvmx_mio_fus_spr_repair_res {
954 uint64_t u64;
955 struct cvmx_mio_fus_spr_repair_res_s {
956 uint64_t reserved_42_63:22;
957 uint64_t repair2:14;
958 uint64_t repair1:14;
959 uint64_t repair0:14;
960 } s;
961 struct cvmx_mio_fus_spr_repair_res_s cn30xx;
962 struct cvmx_mio_fus_spr_repair_res_s cn31xx;
963 struct cvmx_mio_fus_spr_repair_res_s cn38xx;
964 struct cvmx_mio_fus_spr_repair_res_s cn50xx;
965 struct cvmx_mio_fus_spr_repair_res_s cn52xx;
966 struct cvmx_mio_fus_spr_repair_res_s cn52xxp1;
967 struct cvmx_mio_fus_spr_repair_res_s cn56xx;
968 struct cvmx_mio_fus_spr_repair_res_s cn56xxp1;
969 struct cvmx_mio_fus_spr_repair_res_s cn58xx;
970 struct cvmx_mio_fus_spr_repair_res_s cn58xxp1;
971};
972
973union cvmx_mio_fus_spr_repair_sum {
974 uint64_t u64;
975 struct cvmx_mio_fus_spr_repair_sum_s {
976 uint64_t reserved_1_63:63;
977 uint64_t too_many:1;
978 } s;
979 struct cvmx_mio_fus_spr_repair_sum_s cn30xx;
980 struct cvmx_mio_fus_spr_repair_sum_s cn31xx;
981 struct cvmx_mio_fus_spr_repair_sum_s cn38xx;
982 struct cvmx_mio_fus_spr_repair_sum_s cn50xx;
983 struct cvmx_mio_fus_spr_repair_sum_s cn52xx;
984 struct cvmx_mio_fus_spr_repair_sum_s cn52xxp1;
985 struct cvmx_mio_fus_spr_repair_sum_s cn56xx;
986 struct cvmx_mio_fus_spr_repair_sum_s cn56xxp1;
987 struct cvmx_mio_fus_spr_repair_sum_s cn58xx;
988 struct cvmx_mio_fus_spr_repair_sum_s cn58xxp1;
989};
990
991union cvmx_mio_fus_unlock {
992 uint64_t u64;
993 struct cvmx_mio_fus_unlock_s {
994 uint64_t reserved_24_63:40;
995 uint64_t key:24;
996 } s;
997 struct cvmx_mio_fus_unlock_s cn30xx;
998 struct cvmx_mio_fus_unlock_s cn31xx;
999};
1000
1001union cvmx_mio_fus_wadr {
1002 uint64_t u64;
1003 struct cvmx_mio_fus_wadr_s {
1004 uint64_t reserved_10_63:54;
1005 uint64_t addr:10;
1006 } s;
1007 struct cvmx_mio_fus_wadr_s cn30xx;
1008 struct cvmx_mio_fus_wadr_s cn31xx;
1009 struct cvmx_mio_fus_wadr_s cn38xx;
1010 struct cvmx_mio_fus_wadr_s cn38xxp2;
1011 struct cvmx_mio_fus_wadr_cn50xx {
1012 uint64_t reserved_2_63:62;
1013 uint64_t addr:2;
1014 } cn50xx;
1015 struct cvmx_mio_fus_wadr_cn52xx {
1016 uint64_t reserved_3_63:61;
1017 uint64_t addr:3;
1018 } cn52xx;
1019 struct cvmx_mio_fus_wadr_cn52xx cn52xxp1;
1020 struct cvmx_mio_fus_wadr_cn52xx cn56xx;
1021 struct cvmx_mio_fus_wadr_cn52xx cn56xxp1;
1022 struct cvmx_mio_fus_wadr_cn50xx cn58xx;
1023 struct cvmx_mio_fus_wadr_cn50xx cn58xxp1;
1024};
1025
1026union cvmx_mio_ndf_dma_cfg {
1027 uint64_t u64;
1028 struct cvmx_mio_ndf_dma_cfg_s {
1029 uint64_t en:1;
1030 uint64_t rw:1;
1031 uint64_t clr:1;
1032 uint64_t reserved_60_60:1;
1033 uint64_t swap32:1;
1034 uint64_t swap16:1;
1035 uint64_t swap8:1;
1036 uint64_t endian:1;
1037 uint64_t size:20;
1038 uint64_t adr:36;
1039 } s;
1040 struct cvmx_mio_ndf_dma_cfg_s cn52xx;
1041};
1042
1043union cvmx_mio_ndf_dma_int {
1044 uint64_t u64;
1045 struct cvmx_mio_ndf_dma_int_s {
1046 uint64_t reserved_1_63:63;
1047 uint64_t done:1;
1048 } s;
1049 struct cvmx_mio_ndf_dma_int_s cn52xx;
1050};
1051
1052union cvmx_mio_ndf_dma_int_en {
1053 uint64_t u64;
1054 struct cvmx_mio_ndf_dma_int_en_s {
1055 uint64_t reserved_1_63:63;
1056 uint64_t done:1;
1057 } s;
1058 struct cvmx_mio_ndf_dma_int_en_s cn52xx;
1059};
1060
1061union cvmx_mio_pll_ctl {
1062 uint64_t u64;
1063 struct cvmx_mio_pll_ctl_s {
1064 uint64_t reserved_5_63:59;
1065 uint64_t bw_ctl:5;
1066 } s;
1067 struct cvmx_mio_pll_ctl_s cn30xx;
1068 struct cvmx_mio_pll_ctl_s cn31xx;
1069};
1070
1071union cvmx_mio_pll_setting {
1072 uint64_t u64;
1073 struct cvmx_mio_pll_setting_s {
1074 uint64_t reserved_17_63:47;
1075 uint64_t setting:17;
1076 } s;
1077 struct cvmx_mio_pll_setting_s cn30xx;
1078 struct cvmx_mio_pll_setting_s cn31xx;
1079};
1080
1081union cvmx_mio_twsx_int {
1082 uint64_t u64;
1083 struct cvmx_mio_twsx_int_s {
1084 uint64_t reserved_12_63:52;
1085 uint64_t scl:1;
1086 uint64_t sda:1;
1087 uint64_t scl_ovr:1;
1088 uint64_t sda_ovr:1;
1089 uint64_t reserved_7_7:1;
1090 uint64_t core_en:1;
1091 uint64_t ts_en:1;
1092 uint64_t st_en:1;
1093 uint64_t reserved_3_3:1;
1094 uint64_t core_int:1;
1095 uint64_t ts_int:1;
1096 uint64_t st_int:1;
1097 } s;
1098 struct cvmx_mio_twsx_int_s cn30xx;
1099 struct cvmx_mio_twsx_int_s cn31xx;
1100 struct cvmx_mio_twsx_int_s cn38xx;
1101 struct cvmx_mio_twsx_int_cn38xxp2 {
1102 uint64_t reserved_7_63:57;
1103 uint64_t core_en:1;
1104 uint64_t ts_en:1;
1105 uint64_t st_en:1;
1106 uint64_t reserved_3_3:1;
1107 uint64_t core_int:1;
1108 uint64_t ts_int:1;
1109 uint64_t st_int:1;
1110 } cn38xxp2;
1111 struct cvmx_mio_twsx_int_s cn50xx;
1112 struct cvmx_mio_twsx_int_s cn52xx;
1113 struct cvmx_mio_twsx_int_s cn52xxp1;
1114 struct cvmx_mio_twsx_int_s cn56xx;
1115 struct cvmx_mio_twsx_int_s cn56xxp1;
1116 struct cvmx_mio_twsx_int_s cn58xx;
1117 struct cvmx_mio_twsx_int_s cn58xxp1;
1118};
1119
1120union cvmx_mio_twsx_sw_twsi {
1121 uint64_t u64;
1122 struct cvmx_mio_twsx_sw_twsi_s {
1123 uint64_t v:1;
1124 uint64_t slonly:1;
1125 uint64_t eia:1;
1126 uint64_t op:4;
1127 uint64_t r:1;
1128 uint64_t sovr:1;
1129 uint64_t size:3;
1130 uint64_t scr:2;
1131 uint64_t a:10;
1132 uint64_t ia:5;
1133 uint64_t eop_ia:3;
1134 uint64_t d:32;
1135 } s;
1136 struct cvmx_mio_twsx_sw_twsi_s cn30xx;
1137 struct cvmx_mio_twsx_sw_twsi_s cn31xx;
1138 struct cvmx_mio_twsx_sw_twsi_s cn38xx;
1139 struct cvmx_mio_twsx_sw_twsi_s cn38xxp2;
1140 struct cvmx_mio_twsx_sw_twsi_s cn50xx;
1141 struct cvmx_mio_twsx_sw_twsi_s cn52xx;
1142 struct cvmx_mio_twsx_sw_twsi_s cn52xxp1;
1143 struct cvmx_mio_twsx_sw_twsi_s cn56xx;
1144 struct cvmx_mio_twsx_sw_twsi_s cn56xxp1;
1145 struct cvmx_mio_twsx_sw_twsi_s cn58xx;
1146 struct cvmx_mio_twsx_sw_twsi_s cn58xxp1;
1147};
1148
1149union cvmx_mio_twsx_sw_twsi_ext {
1150 uint64_t u64;
1151 struct cvmx_mio_twsx_sw_twsi_ext_s {
1152 uint64_t reserved_40_63:24;
1153 uint64_t ia:8;
1154 uint64_t d:32;
1155 } s;
1156 struct cvmx_mio_twsx_sw_twsi_ext_s cn30xx;
1157 struct cvmx_mio_twsx_sw_twsi_ext_s cn31xx;
1158 struct cvmx_mio_twsx_sw_twsi_ext_s cn38xx;
1159 struct cvmx_mio_twsx_sw_twsi_ext_s cn38xxp2;
1160 struct cvmx_mio_twsx_sw_twsi_ext_s cn50xx;
1161 struct cvmx_mio_twsx_sw_twsi_ext_s cn52xx;
1162 struct cvmx_mio_twsx_sw_twsi_ext_s cn52xxp1;
1163 struct cvmx_mio_twsx_sw_twsi_ext_s cn56xx;
1164 struct cvmx_mio_twsx_sw_twsi_ext_s cn56xxp1;
1165 struct cvmx_mio_twsx_sw_twsi_ext_s cn58xx;
1166 struct cvmx_mio_twsx_sw_twsi_ext_s cn58xxp1;
1167};
1168
1169union cvmx_mio_twsx_twsi_sw {
1170 uint64_t u64;
1171 struct cvmx_mio_twsx_twsi_sw_s {
1172 uint64_t v:2;
1173 uint64_t reserved_32_61:30;
1174 uint64_t d:32;
1175 } s;
1176 struct cvmx_mio_twsx_twsi_sw_s cn30xx;
1177 struct cvmx_mio_twsx_twsi_sw_s cn31xx;
1178 struct cvmx_mio_twsx_twsi_sw_s cn38xx;
1179 struct cvmx_mio_twsx_twsi_sw_s cn38xxp2;
1180 struct cvmx_mio_twsx_twsi_sw_s cn50xx;
1181 struct cvmx_mio_twsx_twsi_sw_s cn52xx;
1182 struct cvmx_mio_twsx_twsi_sw_s cn52xxp1;
1183 struct cvmx_mio_twsx_twsi_sw_s cn56xx;
1184 struct cvmx_mio_twsx_twsi_sw_s cn56xxp1;
1185 struct cvmx_mio_twsx_twsi_sw_s cn58xx;
1186 struct cvmx_mio_twsx_twsi_sw_s cn58xxp1;
1187};
1188
1189union cvmx_mio_uartx_dlh {
1190 uint64_t u64;
1191 struct cvmx_mio_uartx_dlh_s {
1192 uint64_t reserved_8_63:56;
1193 uint64_t dlh:8;
1194 } s;
1195 struct cvmx_mio_uartx_dlh_s cn30xx;
1196 struct cvmx_mio_uartx_dlh_s cn31xx;
1197 struct cvmx_mio_uartx_dlh_s cn38xx;
1198 struct cvmx_mio_uartx_dlh_s cn38xxp2;
1199 struct cvmx_mio_uartx_dlh_s cn50xx;
1200 struct cvmx_mio_uartx_dlh_s cn52xx;
1201 struct cvmx_mio_uartx_dlh_s cn52xxp1;
1202 struct cvmx_mio_uartx_dlh_s cn56xx;
1203 struct cvmx_mio_uartx_dlh_s cn56xxp1;
1204 struct cvmx_mio_uartx_dlh_s cn58xx;
1205 struct cvmx_mio_uartx_dlh_s cn58xxp1;
1206};
1207
1208union cvmx_mio_uartx_dll {
1209 uint64_t u64;
1210 struct cvmx_mio_uartx_dll_s {
1211 uint64_t reserved_8_63:56;
1212 uint64_t dll:8;
1213 } s;
1214 struct cvmx_mio_uartx_dll_s cn30xx;
1215 struct cvmx_mio_uartx_dll_s cn31xx;
1216 struct cvmx_mio_uartx_dll_s cn38xx;
1217 struct cvmx_mio_uartx_dll_s cn38xxp2;
1218 struct cvmx_mio_uartx_dll_s cn50xx;
1219 struct cvmx_mio_uartx_dll_s cn52xx;
1220 struct cvmx_mio_uartx_dll_s cn52xxp1;
1221 struct cvmx_mio_uartx_dll_s cn56xx;
1222 struct cvmx_mio_uartx_dll_s cn56xxp1;
1223 struct cvmx_mio_uartx_dll_s cn58xx;
1224 struct cvmx_mio_uartx_dll_s cn58xxp1;
1225};
1226
1227union cvmx_mio_uartx_far {
1228 uint64_t u64;
1229 struct cvmx_mio_uartx_far_s {
1230 uint64_t reserved_1_63:63;
1231 uint64_t far:1;
1232 } s;
1233 struct cvmx_mio_uartx_far_s cn30xx;
1234 struct cvmx_mio_uartx_far_s cn31xx;
1235 struct cvmx_mio_uartx_far_s cn38xx;
1236 struct cvmx_mio_uartx_far_s cn38xxp2;
1237 struct cvmx_mio_uartx_far_s cn50xx;
1238 struct cvmx_mio_uartx_far_s cn52xx;
1239 struct cvmx_mio_uartx_far_s cn52xxp1;
1240 struct cvmx_mio_uartx_far_s cn56xx;
1241 struct cvmx_mio_uartx_far_s cn56xxp1;
1242 struct cvmx_mio_uartx_far_s cn58xx;
1243 struct cvmx_mio_uartx_far_s cn58xxp1;
1244};
1245
1246union cvmx_mio_uartx_fcr {
1247 uint64_t u64;
1248 struct cvmx_mio_uartx_fcr_s {
1249 uint64_t reserved_8_63:56;
1250 uint64_t rxtrig:2;
1251 uint64_t txtrig:2;
1252 uint64_t reserved_3_3:1;
1253 uint64_t txfr:1;
1254 uint64_t rxfr:1;
1255 uint64_t en:1;
1256 } s;
1257 struct cvmx_mio_uartx_fcr_s cn30xx;
1258 struct cvmx_mio_uartx_fcr_s cn31xx;
1259 struct cvmx_mio_uartx_fcr_s cn38xx;
1260 struct cvmx_mio_uartx_fcr_s cn38xxp2;
1261 struct cvmx_mio_uartx_fcr_s cn50xx;
1262 struct cvmx_mio_uartx_fcr_s cn52xx;
1263 struct cvmx_mio_uartx_fcr_s cn52xxp1;
1264 struct cvmx_mio_uartx_fcr_s cn56xx;
1265 struct cvmx_mio_uartx_fcr_s cn56xxp1;
1266 struct cvmx_mio_uartx_fcr_s cn58xx;
1267 struct cvmx_mio_uartx_fcr_s cn58xxp1;
1268};
1269
1270union cvmx_mio_uartx_htx {
1271 uint64_t u64;
1272 struct cvmx_mio_uartx_htx_s {
1273 uint64_t reserved_1_63:63;
1274 uint64_t htx:1;
1275 } s;
1276 struct cvmx_mio_uartx_htx_s cn30xx;
1277 struct cvmx_mio_uartx_htx_s cn31xx;
1278 struct cvmx_mio_uartx_htx_s cn38xx;
1279 struct cvmx_mio_uartx_htx_s cn38xxp2;
1280 struct cvmx_mio_uartx_htx_s cn50xx;
1281 struct cvmx_mio_uartx_htx_s cn52xx;
1282 struct cvmx_mio_uartx_htx_s cn52xxp1;
1283 struct cvmx_mio_uartx_htx_s cn56xx;
1284 struct cvmx_mio_uartx_htx_s cn56xxp1;
1285 struct cvmx_mio_uartx_htx_s cn58xx;
1286 struct cvmx_mio_uartx_htx_s cn58xxp1;
1287};
1288
1289union cvmx_mio_uartx_ier {
1290 uint64_t u64;
1291 struct cvmx_mio_uartx_ier_s {
1292 uint64_t reserved_8_63:56;
1293 uint64_t ptime:1;
1294 uint64_t reserved_4_6:3;
1295 uint64_t edssi:1;
1296 uint64_t elsi:1;
1297 uint64_t etbei:1;
1298 uint64_t erbfi:1;
1299 } s;
1300 struct cvmx_mio_uartx_ier_s cn30xx;
1301 struct cvmx_mio_uartx_ier_s cn31xx;
1302 struct cvmx_mio_uartx_ier_s cn38xx;
1303 struct cvmx_mio_uartx_ier_s cn38xxp2;
1304 struct cvmx_mio_uartx_ier_s cn50xx;
1305 struct cvmx_mio_uartx_ier_s cn52xx;
1306 struct cvmx_mio_uartx_ier_s cn52xxp1;
1307 struct cvmx_mio_uartx_ier_s cn56xx;
1308 struct cvmx_mio_uartx_ier_s cn56xxp1;
1309 struct cvmx_mio_uartx_ier_s cn58xx;
1310 struct cvmx_mio_uartx_ier_s cn58xxp1;
1311};
1312
1313union cvmx_mio_uartx_iir {
1314 uint64_t u64;
1315 struct cvmx_mio_uartx_iir_s {
1316 uint64_t reserved_8_63:56;
1317 uint64_t fen:2;
1318 uint64_t reserved_4_5:2;
1319 uint64_t iid:4;
1320 } s;
1321 struct cvmx_mio_uartx_iir_s cn30xx;
1322 struct cvmx_mio_uartx_iir_s cn31xx;
1323 struct cvmx_mio_uartx_iir_s cn38xx;
1324 struct cvmx_mio_uartx_iir_s cn38xxp2;
1325 struct cvmx_mio_uartx_iir_s cn50xx;
1326 struct cvmx_mio_uartx_iir_s cn52xx;
1327 struct cvmx_mio_uartx_iir_s cn52xxp1;
1328 struct cvmx_mio_uartx_iir_s cn56xx;
1329 struct cvmx_mio_uartx_iir_s cn56xxp1;
1330 struct cvmx_mio_uartx_iir_s cn58xx;
1331 struct cvmx_mio_uartx_iir_s cn58xxp1;
1332};
1333
1334union cvmx_mio_uartx_lcr {
1335 uint64_t u64;
1336 struct cvmx_mio_uartx_lcr_s {
1337 uint64_t reserved_8_63:56;
1338 uint64_t dlab:1;
1339 uint64_t brk:1;
1340 uint64_t reserved_5_5:1;
1341 uint64_t eps:1;
1342 uint64_t pen:1;
1343 uint64_t stop:1;
1344 uint64_t cls:2;
1345 } s;
1346 struct cvmx_mio_uartx_lcr_s cn30xx;
1347 struct cvmx_mio_uartx_lcr_s cn31xx;
1348 struct cvmx_mio_uartx_lcr_s cn38xx;
1349 struct cvmx_mio_uartx_lcr_s cn38xxp2;
1350 struct cvmx_mio_uartx_lcr_s cn50xx;
1351 struct cvmx_mio_uartx_lcr_s cn52xx;
1352 struct cvmx_mio_uartx_lcr_s cn52xxp1;
1353 struct cvmx_mio_uartx_lcr_s cn56xx;
1354 struct cvmx_mio_uartx_lcr_s cn56xxp1;
1355 struct cvmx_mio_uartx_lcr_s cn58xx;
1356 struct cvmx_mio_uartx_lcr_s cn58xxp1;
1357};
1358
1359union cvmx_mio_uartx_lsr {
1360 uint64_t u64;
1361 struct cvmx_mio_uartx_lsr_s {
1362 uint64_t reserved_8_63:56;
1363 uint64_t ferr:1;
1364 uint64_t temt:1;
1365 uint64_t thre:1;
1366 uint64_t bi:1;
1367 uint64_t fe:1;
1368 uint64_t pe:1;
1369 uint64_t oe:1;
1370 uint64_t dr:1;
1371 } s;
1372 struct cvmx_mio_uartx_lsr_s cn30xx;
1373 struct cvmx_mio_uartx_lsr_s cn31xx;
1374 struct cvmx_mio_uartx_lsr_s cn38xx;
1375 struct cvmx_mio_uartx_lsr_s cn38xxp2;
1376 struct cvmx_mio_uartx_lsr_s cn50xx;
1377 struct cvmx_mio_uartx_lsr_s cn52xx;
1378 struct cvmx_mio_uartx_lsr_s cn52xxp1;
1379 struct cvmx_mio_uartx_lsr_s cn56xx;
1380 struct cvmx_mio_uartx_lsr_s cn56xxp1;
1381 struct cvmx_mio_uartx_lsr_s cn58xx;
1382 struct cvmx_mio_uartx_lsr_s cn58xxp1;
1383};
1384
1385union cvmx_mio_uartx_mcr {
1386 uint64_t u64;
1387 struct cvmx_mio_uartx_mcr_s {
1388 uint64_t reserved_6_63:58;
1389 uint64_t afce:1;
1390 uint64_t loop:1;
1391 uint64_t out2:1;
1392 uint64_t out1:1;
1393 uint64_t rts:1;
1394 uint64_t dtr:1;
1395 } s;
1396 struct cvmx_mio_uartx_mcr_s cn30xx;
1397 struct cvmx_mio_uartx_mcr_s cn31xx;
1398 struct cvmx_mio_uartx_mcr_s cn38xx;
1399 struct cvmx_mio_uartx_mcr_s cn38xxp2;
1400 struct cvmx_mio_uartx_mcr_s cn50xx;
1401 struct cvmx_mio_uartx_mcr_s cn52xx;
1402 struct cvmx_mio_uartx_mcr_s cn52xxp1;
1403 struct cvmx_mio_uartx_mcr_s cn56xx;
1404 struct cvmx_mio_uartx_mcr_s cn56xxp1;
1405 struct cvmx_mio_uartx_mcr_s cn58xx;
1406 struct cvmx_mio_uartx_mcr_s cn58xxp1;
1407};
1408
1409union cvmx_mio_uartx_msr {
1410 uint64_t u64;
1411 struct cvmx_mio_uartx_msr_s {
1412 uint64_t reserved_8_63:56;
1413 uint64_t dcd:1;
1414 uint64_t ri:1;
1415 uint64_t dsr:1;
1416 uint64_t cts:1;
1417 uint64_t ddcd:1;
1418 uint64_t teri:1;
1419 uint64_t ddsr:1;
1420 uint64_t dcts:1;
1421 } s;
1422 struct cvmx_mio_uartx_msr_s cn30xx;
1423 struct cvmx_mio_uartx_msr_s cn31xx;
1424 struct cvmx_mio_uartx_msr_s cn38xx;
1425 struct cvmx_mio_uartx_msr_s cn38xxp2;
1426 struct cvmx_mio_uartx_msr_s cn50xx;
1427 struct cvmx_mio_uartx_msr_s cn52xx;
1428 struct cvmx_mio_uartx_msr_s cn52xxp1;
1429 struct cvmx_mio_uartx_msr_s cn56xx;
1430 struct cvmx_mio_uartx_msr_s cn56xxp1;
1431 struct cvmx_mio_uartx_msr_s cn58xx;
1432 struct cvmx_mio_uartx_msr_s cn58xxp1;
1433};
1434
1435union cvmx_mio_uartx_rbr {
1436 uint64_t u64;
1437 struct cvmx_mio_uartx_rbr_s {
1438 uint64_t reserved_8_63:56;
1439 uint64_t rbr:8;
1440 } s;
1441 struct cvmx_mio_uartx_rbr_s cn30xx;
1442 struct cvmx_mio_uartx_rbr_s cn31xx;
1443 struct cvmx_mio_uartx_rbr_s cn38xx;
1444 struct cvmx_mio_uartx_rbr_s cn38xxp2;
1445 struct cvmx_mio_uartx_rbr_s cn50xx;
1446 struct cvmx_mio_uartx_rbr_s cn52xx;
1447 struct cvmx_mio_uartx_rbr_s cn52xxp1;
1448 struct cvmx_mio_uartx_rbr_s cn56xx;
1449 struct cvmx_mio_uartx_rbr_s cn56xxp1;
1450 struct cvmx_mio_uartx_rbr_s cn58xx;
1451 struct cvmx_mio_uartx_rbr_s cn58xxp1;
1452};
1453
1454union cvmx_mio_uartx_rfl {
1455 uint64_t u64;
1456 struct cvmx_mio_uartx_rfl_s {
1457 uint64_t reserved_7_63:57;
1458 uint64_t rfl:7;
1459 } s;
1460 struct cvmx_mio_uartx_rfl_s cn30xx;
1461 struct cvmx_mio_uartx_rfl_s cn31xx;
1462 struct cvmx_mio_uartx_rfl_s cn38xx;
1463 struct cvmx_mio_uartx_rfl_s cn38xxp2;
1464 struct cvmx_mio_uartx_rfl_s cn50xx;
1465 struct cvmx_mio_uartx_rfl_s cn52xx;
1466 struct cvmx_mio_uartx_rfl_s cn52xxp1;
1467 struct cvmx_mio_uartx_rfl_s cn56xx;
1468 struct cvmx_mio_uartx_rfl_s cn56xxp1;
1469 struct cvmx_mio_uartx_rfl_s cn58xx;
1470 struct cvmx_mio_uartx_rfl_s cn58xxp1;
1471};
1472
1473union cvmx_mio_uartx_rfw {
1474 uint64_t u64;
1475 struct cvmx_mio_uartx_rfw_s {
1476 uint64_t reserved_10_63:54;
1477 uint64_t rffe:1;
1478 uint64_t rfpe:1;
1479 uint64_t rfwd:8;
1480 } s;
1481 struct cvmx_mio_uartx_rfw_s cn30xx;
1482 struct cvmx_mio_uartx_rfw_s cn31xx;
1483 struct cvmx_mio_uartx_rfw_s cn38xx;
1484 struct cvmx_mio_uartx_rfw_s cn38xxp2;
1485 struct cvmx_mio_uartx_rfw_s cn50xx;
1486 struct cvmx_mio_uartx_rfw_s cn52xx;
1487 struct cvmx_mio_uartx_rfw_s cn52xxp1;
1488 struct cvmx_mio_uartx_rfw_s cn56xx;
1489 struct cvmx_mio_uartx_rfw_s cn56xxp1;
1490 struct cvmx_mio_uartx_rfw_s cn58xx;
1491 struct cvmx_mio_uartx_rfw_s cn58xxp1;
1492};
1493
1494union cvmx_mio_uartx_sbcr {
1495 uint64_t u64;
1496 struct cvmx_mio_uartx_sbcr_s {
1497 uint64_t reserved_1_63:63;
1498 uint64_t sbcr:1;
1499 } s;
1500 struct cvmx_mio_uartx_sbcr_s cn30xx;
1501 struct cvmx_mio_uartx_sbcr_s cn31xx;
1502 struct cvmx_mio_uartx_sbcr_s cn38xx;
1503 struct cvmx_mio_uartx_sbcr_s cn38xxp2;
1504 struct cvmx_mio_uartx_sbcr_s cn50xx;
1505 struct cvmx_mio_uartx_sbcr_s cn52xx;
1506 struct cvmx_mio_uartx_sbcr_s cn52xxp1;
1507 struct cvmx_mio_uartx_sbcr_s cn56xx;
1508 struct cvmx_mio_uartx_sbcr_s cn56xxp1;
1509 struct cvmx_mio_uartx_sbcr_s cn58xx;
1510 struct cvmx_mio_uartx_sbcr_s cn58xxp1;
1511};
1512
1513union cvmx_mio_uartx_scr {
1514 uint64_t u64;
1515 struct cvmx_mio_uartx_scr_s {
1516 uint64_t reserved_8_63:56;
1517 uint64_t scr:8;
1518 } s;
1519 struct cvmx_mio_uartx_scr_s cn30xx;
1520 struct cvmx_mio_uartx_scr_s cn31xx;
1521 struct cvmx_mio_uartx_scr_s cn38xx;
1522 struct cvmx_mio_uartx_scr_s cn38xxp2;
1523 struct cvmx_mio_uartx_scr_s cn50xx;
1524 struct cvmx_mio_uartx_scr_s cn52xx;
1525 struct cvmx_mio_uartx_scr_s cn52xxp1;
1526 struct cvmx_mio_uartx_scr_s cn56xx;
1527 struct cvmx_mio_uartx_scr_s cn56xxp1;
1528 struct cvmx_mio_uartx_scr_s cn58xx;
1529 struct cvmx_mio_uartx_scr_s cn58xxp1;
1530};
1531
1532union cvmx_mio_uartx_sfe {
1533 uint64_t u64;
1534 struct cvmx_mio_uartx_sfe_s {
1535 uint64_t reserved_1_63:63;
1536 uint64_t sfe:1;
1537 } s;
1538 struct cvmx_mio_uartx_sfe_s cn30xx;
1539 struct cvmx_mio_uartx_sfe_s cn31xx;
1540 struct cvmx_mio_uartx_sfe_s cn38xx;
1541 struct cvmx_mio_uartx_sfe_s cn38xxp2;
1542 struct cvmx_mio_uartx_sfe_s cn50xx;
1543 struct cvmx_mio_uartx_sfe_s cn52xx;
1544 struct cvmx_mio_uartx_sfe_s cn52xxp1;
1545 struct cvmx_mio_uartx_sfe_s cn56xx;
1546 struct cvmx_mio_uartx_sfe_s cn56xxp1;
1547 struct cvmx_mio_uartx_sfe_s cn58xx;
1548 struct cvmx_mio_uartx_sfe_s cn58xxp1;
1549};
1550
1551union cvmx_mio_uartx_srr {
1552 uint64_t u64;
1553 struct cvmx_mio_uartx_srr_s {
1554 uint64_t reserved_3_63:61;
1555 uint64_t stfr:1;
1556 uint64_t srfr:1;
1557 uint64_t usr:1;
1558 } s;
1559 struct cvmx_mio_uartx_srr_s cn30xx;
1560 struct cvmx_mio_uartx_srr_s cn31xx;
1561 struct cvmx_mio_uartx_srr_s cn38xx;
1562 struct cvmx_mio_uartx_srr_s cn38xxp2;
1563 struct cvmx_mio_uartx_srr_s cn50xx;
1564 struct cvmx_mio_uartx_srr_s cn52xx;
1565 struct cvmx_mio_uartx_srr_s cn52xxp1;
1566 struct cvmx_mio_uartx_srr_s cn56xx;
1567 struct cvmx_mio_uartx_srr_s cn56xxp1;
1568 struct cvmx_mio_uartx_srr_s cn58xx;
1569 struct cvmx_mio_uartx_srr_s cn58xxp1;
1570};
1571
1572union cvmx_mio_uartx_srt {
1573 uint64_t u64;
1574 struct cvmx_mio_uartx_srt_s {
1575 uint64_t reserved_2_63:62;
1576 uint64_t srt:2;
1577 } s;
1578 struct cvmx_mio_uartx_srt_s cn30xx;
1579 struct cvmx_mio_uartx_srt_s cn31xx;
1580 struct cvmx_mio_uartx_srt_s cn38xx;
1581 struct cvmx_mio_uartx_srt_s cn38xxp2;
1582 struct cvmx_mio_uartx_srt_s cn50xx;
1583 struct cvmx_mio_uartx_srt_s cn52xx;
1584 struct cvmx_mio_uartx_srt_s cn52xxp1;
1585 struct cvmx_mio_uartx_srt_s cn56xx;
1586 struct cvmx_mio_uartx_srt_s cn56xxp1;
1587 struct cvmx_mio_uartx_srt_s cn58xx;
1588 struct cvmx_mio_uartx_srt_s cn58xxp1;
1589};
1590
1591union cvmx_mio_uartx_srts {
1592 uint64_t u64;
1593 struct cvmx_mio_uartx_srts_s {
1594 uint64_t reserved_1_63:63;
1595 uint64_t srts:1;
1596 } s;
1597 struct cvmx_mio_uartx_srts_s cn30xx;
1598 struct cvmx_mio_uartx_srts_s cn31xx;
1599 struct cvmx_mio_uartx_srts_s cn38xx;
1600 struct cvmx_mio_uartx_srts_s cn38xxp2;
1601 struct cvmx_mio_uartx_srts_s cn50xx;
1602 struct cvmx_mio_uartx_srts_s cn52xx;
1603 struct cvmx_mio_uartx_srts_s cn52xxp1;
1604 struct cvmx_mio_uartx_srts_s cn56xx;
1605 struct cvmx_mio_uartx_srts_s cn56xxp1;
1606 struct cvmx_mio_uartx_srts_s cn58xx;
1607 struct cvmx_mio_uartx_srts_s cn58xxp1;
1608};
1609
1610union cvmx_mio_uartx_stt {
1611 uint64_t u64;
1612 struct cvmx_mio_uartx_stt_s {
1613 uint64_t reserved_2_63:62;
1614 uint64_t stt:2;
1615 } s;
1616 struct cvmx_mio_uartx_stt_s cn30xx;
1617 struct cvmx_mio_uartx_stt_s cn31xx;
1618 struct cvmx_mio_uartx_stt_s cn38xx;
1619 struct cvmx_mio_uartx_stt_s cn38xxp2;
1620 struct cvmx_mio_uartx_stt_s cn50xx;
1621 struct cvmx_mio_uartx_stt_s cn52xx;
1622 struct cvmx_mio_uartx_stt_s cn52xxp1;
1623 struct cvmx_mio_uartx_stt_s cn56xx;
1624 struct cvmx_mio_uartx_stt_s cn56xxp1;
1625 struct cvmx_mio_uartx_stt_s cn58xx;
1626 struct cvmx_mio_uartx_stt_s cn58xxp1;
1627};
1628
1629union cvmx_mio_uartx_tfl {
1630 uint64_t u64;
1631 struct cvmx_mio_uartx_tfl_s {
1632 uint64_t reserved_7_63:57;
1633 uint64_t tfl:7;
1634 } s;
1635 struct cvmx_mio_uartx_tfl_s cn30xx;
1636 struct cvmx_mio_uartx_tfl_s cn31xx;
1637 struct cvmx_mio_uartx_tfl_s cn38xx;
1638 struct cvmx_mio_uartx_tfl_s cn38xxp2;
1639 struct cvmx_mio_uartx_tfl_s cn50xx;
1640 struct cvmx_mio_uartx_tfl_s cn52xx;
1641 struct cvmx_mio_uartx_tfl_s cn52xxp1;
1642 struct cvmx_mio_uartx_tfl_s cn56xx;
1643 struct cvmx_mio_uartx_tfl_s cn56xxp1;
1644 struct cvmx_mio_uartx_tfl_s cn58xx;
1645 struct cvmx_mio_uartx_tfl_s cn58xxp1;
1646};
1647
1648union cvmx_mio_uartx_tfr {
1649 uint64_t u64;
1650 struct cvmx_mio_uartx_tfr_s {
1651 uint64_t reserved_8_63:56;
1652 uint64_t tfr:8;
1653 } s;
1654 struct cvmx_mio_uartx_tfr_s cn30xx;
1655 struct cvmx_mio_uartx_tfr_s cn31xx;
1656 struct cvmx_mio_uartx_tfr_s cn38xx;
1657 struct cvmx_mio_uartx_tfr_s cn38xxp2;
1658 struct cvmx_mio_uartx_tfr_s cn50xx;
1659 struct cvmx_mio_uartx_tfr_s cn52xx;
1660 struct cvmx_mio_uartx_tfr_s cn52xxp1;
1661 struct cvmx_mio_uartx_tfr_s cn56xx;
1662 struct cvmx_mio_uartx_tfr_s cn56xxp1;
1663 struct cvmx_mio_uartx_tfr_s cn58xx;
1664 struct cvmx_mio_uartx_tfr_s cn58xxp1;
1665};
1666
1667union cvmx_mio_uartx_thr {
1668 uint64_t u64;
1669 struct cvmx_mio_uartx_thr_s {
1670 uint64_t reserved_8_63:56;
1671 uint64_t thr:8;
1672 } s;
1673 struct cvmx_mio_uartx_thr_s cn30xx;
1674 struct cvmx_mio_uartx_thr_s cn31xx;
1675 struct cvmx_mio_uartx_thr_s cn38xx;
1676 struct cvmx_mio_uartx_thr_s cn38xxp2;
1677 struct cvmx_mio_uartx_thr_s cn50xx;
1678 struct cvmx_mio_uartx_thr_s cn52xx;
1679 struct cvmx_mio_uartx_thr_s cn52xxp1;
1680 struct cvmx_mio_uartx_thr_s cn56xx;
1681 struct cvmx_mio_uartx_thr_s cn56xxp1;
1682 struct cvmx_mio_uartx_thr_s cn58xx;
1683 struct cvmx_mio_uartx_thr_s cn58xxp1;
1684};
1685
1686union cvmx_mio_uartx_usr {
1687 uint64_t u64;
1688 struct cvmx_mio_uartx_usr_s {
1689 uint64_t reserved_5_63:59;
1690 uint64_t rff:1;
1691 uint64_t rfne:1;
1692 uint64_t tfe:1;
1693 uint64_t tfnf:1;
1694 uint64_t busy:1;
1695 } s;
1696 struct cvmx_mio_uartx_usr_s cn30xx;
1697 struct cvmx_mio_uartx_usr_s cn31xx;
1698 struct cvmx_mio_uartx_usr_s cn38xx;
1699 struct cvmx_mio_uartx_usr_s cn38xxp2;
1700 struct cvmx_mio_uartx_usr_s cn50xx;
1701 struct cvmx_mio_uartx_usr_s cn52xx;
1702 struct cvmx_mio_uartx_usr_s cn52xxp1;
1703 struct cvmx_mio_uartx_usr_s cn56xx;
1704 struct cvmx_mio_uartx_usr_s cn56xxp1;
1705 struct cvmx_mio_uartx_usr_s cn58xx;
1706 struct cvmx_mio_uartx_usr_s cn58xxp1;
1707};
1708
1709union cvmx_mio_uart2_dlh {
1710 uint64_t u64;
1711 struct cvmx_mio_uart2_dlh_s {
1712 uint64_t reserved_8_63:56;
1713 uint64_t dlh:8;
1714 } s;
1715 struct cvmx_mio_uart2_dlh_s cn52xx;
1716 struct cvmx_mio_uart2_dlh_s cn52xxp1;
1717};
1718
1719union cvmx_mio_uart2_dll {
1720 uint64_t u64;
1721 struct cvmx_mio_uart2_dll_s {
1722 uint64_t reserved_8_63:56;
1723 uint64_t dll:8;
1724 } s;
1725 struct cvmx_mio_uart2_dll_s cn52xx;
1726 struct cvmx_mio_uart2_dll_s cn52xxp1;
1727};
1728
1729union cvmx_mio_uart2_far {
1730 uint64_t u64;
1731 struct cvmx_mio_uart2_far_s {
1732 uint64_t reserved_1_63:63;
1733 uint64_t far:1;
1734 } s;
1735 struct cvmx_mio_uart2_far_s cn52xx;
1736 struct cvmx_mio_uart2_far_s cn52xxp1;
1737};
1738
1739union cvmx_mio_uart2_fcr {
1740 uint64_t u64;
1741 struct cvmx_mio_uart2_fcr_s {
1742 uint64_t reserved_8_63:56;
1743 uint64_t rxtrig:2;
1744 uint64_t txtrig:2;
1745 uint64_t reserved_3_3:1;
1746 uint64_t txfr:1;
1747 uint64_t rxfr:1;
1748 uint64_t en:1;
1749 } s;
1750 struct cvmx_mio_uart2_fcr_s cn52xx;
1751 struct cvmx_mio_uart2_fcr_s cn52xxp1;
1752};
1753
1754union cvmx_mio_uart2_htx {
1755 uint64_t u64;
1756 struct cvmx_mio_uart2_htx_s {
1757 uint64_t reserved_1_63:63;
1758 uint64_t htx:1;
1759 } s;
1760 struct cvmx_mio_uart2_htx_s cn52xx;
1761 struct cvmx_mio_uart2_htx_s cn52xxp1;
1762};
1763
1764union cvmx_mio_uart2_ier {
1765 uint64_t u64;
1766 struct cvmx_mio_uart2_ier_s {
1767 uint64_t reserved_8_63:56;
1768 uint64_t ptime:1;
1769 uint64_t reserved_4_6:3;
1770 uint64_t edssi:1;
1771 uint64_t elsi:1;
1772 uint64_t etbei:1;
1773 uint64_t erbfi:1;
1774 } s;
1775 struct cvmx_mio_uart2_ier_s cn52xx;
1776 struct cvmx_mio_uart2_ier_s cn52xxp1;
1777};
1778
1779union cvmx_mio_uart2_iir {
1780 uint64_t u64;
1781 struct cvmx_mio_uart2_iir_s {
1782 uint64_t reserved_8_63:56;
1783 uint64_t fen:2;
1784 uint64_t reserved_4_5:2;
1785 uint64_t iid:4;
1786 } s;
1787 struct cvmx_mio_uart2_iir_s cn52xx;
1788 struct cvmx_mio_uart2_iir_s cn52xxp1;
1789};
1790
1791union cvmx_mio_uart2_lcr {
1792 uint64_t u64;
1793 struct cvmx_mio_uart2_lcr_s {
1794 uint64_t reserved_8_63:56;
1795 uint64_t dlab:1;
1796 uint64_t brk:1;
1797 uint64_t reserved_5_5:1;
1798 uint64_t eps:1;
1799 uint64_t pen:1;
1800 uint64_t stop:1;
1801 uint64_t cls:2;
1802 } s;
1803 struct cvmx_mio_uart2_lcr_s cn52xx;
1804 struct cvmx_mio_uart2_lcr_s cn52xxp1;
1805};
1806
1807union cvmx_mio_uart2_lsr {
1808 uint64_t u64;
1809 struct cvmx_mio_uart2_lsr_s {
1810 uint64_t reserved_8_63:56;
1811 uint64_t ferr:1;
1812 uint64_t temt:1;
1813 uint64_t thre:1;
1814 uint64_t bi:1;
1815 uint64_t fe:1;
1816 uint64_t pe:1;
1817 uint64_t oe:1;
1818 uint64_t dr:1;
1819 } s;
1820 struct cvmx_mio_uart2_lsr_s cn52xx;
1821 struct cvmx_mio_uart2_lsr_s cn52xxp1;
1822};
1823
1824union cvmx_mio_uart2_mcr {
1825 uint64_t u64;
1826 struct cvmx_mio_uart2_mcr_s {
1827 uint64_t reserved_6_63:58;
1828 uint64_t afce:1;
1829 uint64_t loop:1;
1830 uint64_t out2:1;
1831 uint64_t out1:1;
1832 uint64_t rts:1;
1833 uint64_t dtr:1;
1834 } s;
1835 struct cvmx_mio_uart2_mcr_s cn52xx;
1836 struct cvmx_mio_uart2_mcr_s cn52xxp1;
1837};
1838
1839union cvmx_mio_uart2_msr {
1840 uint64_t u64;
1841 struct cvmx_mio_uart2_msr_s {
1842 uint64_t reserved_8_63:56;
1843 uint64_t dcd:1;
1844 uint64_t ri:1;
1845 uint64_t dsr:1;
1846 uint64_t cts:1;
1847 uint64_t ddcd:1;
1848 uint64_t teri:1;
1849 uint64_t ddsr:1;
1850 uint64_t dcts:1;
1851 } s;
1852 struct cvmx_mio_uart2_msr_s cn52xx;
1853 struct cvmx_mio_uart2_msr_s cn52xxp1;
1854};
1855
1856union cvmx_mio_uart2_rbr {
1857 uint64_t u64;
1858 struct cvmx_mio_uart2_rbr_s {
1859 uint64_t reserved_8_63:56;
1860 uint64_t rbr:8;
1861 } s;
1862 struct cvmx_mio_uart2_rbr_s cn52xx;
1863 struct cvmx_mio_uart2_rbr_s cn52xxp1;
1864};
1865
1866union cvmx_mio_uart2_rfl {
1867 uint64_t u64;
1868 struct cvmx_mio_uart2_rfl_s {
1869 uint64_t reserved_7_63:57;
1870 uint64_t rfl:7;
1871 } s;
1872 struct cvmx_mio_uart2_rfl_s cn52xx;
1873 struct cvmx_mio_uart2_rfl_s cn52xxp1;
1874};
1875
1876union cvmx_mio_uart2_rfw {
1877 uint64_t u64;
1878 struct cvmx_mio_uart2_rfw_s {
1879 uint64_t reserved_10_63:54;
1880 uint64_t rffe:1;
1881 uint64_t rfpe:1;
1882 uint64_t rfwd:8;
1883 } s;
1884 struct cvmx_mio_uart2_rfw_s cn52xx;
1885 struct cvmx_mio_uart2_rfw_s cn52xxp1;
1886};
1887
1888union cvmx_mio_uart2_sbcr {
1889 uint64_t u64;
1890 struct cvmx_mio_uart2_sbcr_s {
1891 uint64_t reserved_1_63:63;
1892 uint64_t sbcr:1;
1893 } s;
1894 struct cvmx_mio_uart2_sbcr_s cn52xx;
1895 struct cvmx_mio_uart2_sbcr_s cn52xxp1;
1896};
1897
1898union cvmx_mio_uart2_scr {
1899 uint64_t u64;
1900 struct cvmx_mio_uart2_scr_s {
1901 uint64_t reserved_8_63:56;
1902 uint64_t scr:8;
1903 } s;
1904 struct cvmx_mio_uart2_scr_s cn52xx;
1905 struct cvmx_mio_uart2_scr_s cn52xxp1;
1906};
1907
1908union cvmx_mio_uart2_sfe {
1909 uint64_t u64;
1910 struct cvmx_mio_uart2_sfe_s {
1911 uint64_t reserved_1_63:63;
1912 uint64_t sfe:1;
1913 } s;
1914 struct cvmx_mio_uart2_sfe_s cn52xx;
1915 struct cvmx_mio_uart2_sfe_s cn52xxp1;
1916};
1917
1918union cvmx_mio_uart2_srr {
1919 uint64_t u64;
1920 struct cvmx_mio_uart2_srr_s {
1921 uint64_t reserved_3_63:61;
1922 uint64_t stfr:1;
1923 uint64_t srfr:1;
1924 uint64_t usr:1;
1925 } s;
1926 struct cvmx_mio_uart2_srr_s cn52xx;
1927 struct cvmx_mio_uart2_srr_s cn52xxp1;
1928};
1929
1930union cvmx_mio_uart2_srt {
1931 uint64_t u64;
1932 struct cvmx_mio_uart2_srt_s {
1933 uint64_t reserved_2_63:62;
1934 uint64_t srt:2;
1935 } s;
1936 struct cvmx_mio_uart2_srt_s cn52xx;
1937 struct cvmx_mio_uart2_srt_s cn52xxp1;
1938};
1939
1940union cvmx_mio_uart2_srts {
1941 uint64_t u64;
1942 struct cvmx_mio_uart2_srts_s {
1943 uint64_t reserved_1_63:63;
1944 uint64_t srts:1;
1945 } s;
1946 struct cvmx_mio_uart2_srts_s cn52xx;
1947 struct cvmx_mio_uart2_srts_s cn52xxp1;
1948};
1949
1950union cvmx_mio_uart2_stt {
1951 uint64_t u64;
1952 struct cvmx_mio_uart2_stt_s {
1953 uint64_t reserved_2_63:62;
1954 uint64_t stt:2;
1955 } s;
1956 struct cvmx_mio_uart2_stt_s cn52xx;
1957 struct cvmx_mio_uart2_stt_s cn52xxp1;
1958};
1959
1960union cvmx_mio_uart2_tfl {
1961 uint64_t u64;
1962 struct cvmx_mio_uart2_tfl_s {
1963 uint64_t reserved_7_63:57;
1964 uint64_t tfl:7;
1965 } s;
1966 struct cvmx_mio_uart2_tfl_s cn52xx;
1967 struct cvmx_mio_uart2_tfl_s cn52xxp1;
1968};
1969
1970union cvmx_mio_uart2_tfr {
1971 uint64_t u64;
1972 struct cvmx_mio_uart2_tfr_s {
1973 uint64_t reserved_8_63:56;
1974 uint64_t tfr:8;
1975 } s;
1976 struct cvmx_mio_uart2_tfr_s cn52xx;
1977 struct cvmx_mio_uart2_tfr_s cn52xxp1;
1978};
1979
1980union cvmx_mio_uart2_thr {
1981 uint64_t u64;
1982 struct cvmx_mio_uart2_thr_s {
1983 uint64_t reserved_8_63:56;
1984 uint64_t thr:8;
1985 } s;
1986 struct cvmx_mio_uart2_thr_s cn52xx;
1987 struct cvmx_mio_uart2_thr_s cn52xxp1;
1988};
1989
1990union cvmx_mio_uart2_usr {
1991 uint64_t u64;
1992 struct cvmx_mio_uart2_usr_s {
1993 uint64_t reserved_5_63:59;
1994 uint64_t rff:1;
1995 uint64_t rfne:1;
1996 uint64_t tfe:1;
1997 uint64_t tfnf:1;
1998 uint64_t busy:1;
1999 } s;
2000 struct cvmx_mio_uart2_usr_s cn52xx;
2001 struct cvmx_mio_uart2_usr_s cn52xxp1;
2002};
2003
2004#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-packet.h b/arch/mips/include/asm/octeon/cvmx-packet.h
new file mode 100644
index 000000000000..38aefa1bab9d
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-packet.h
@@ -0,0 +1,61 @@
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/*
29 * Packet buffer defines.
30 */
31
32#ifndef __CVMX_PACKET_H__
33#define __CVMX_PACKET_H__
34
35/**
36 * This structure defines a buffer pointer on Octeon
37 */
38union cvmx_buf_ptr {
39 void *ptr;
40 uint64_t u64;
41 struct {
42 /* if set, invert the "free" pick of the overall
43 * packet. HW always sets this bit to 0 on inbound
44 * packet */
45 uint64_t i:1;
46
47 /* Indicates the amount to back up to get to the
48 * buffer start in cache lines. In most cases this is
49 * less than one complete cache line, so the value is
50 * zero */
51 uint64_t back:4;
52 /* The pool that the buffer came from / goes to */
53 uint64_t pool:3;
54 /* The size of the segment pointed to by addr (in bytes) */
55 uint64_t size:16;
56 /* Pointer to the first byte of the data, NOT buffer */
57 uint64_t addr:40;
58 } s;
59};
60
61#endif /* __CVMX_PACKET_H__ */
diff --git a/arch/mips/include/asm/octeon/cvmx-pow-defs.h b/arch/mips/include/asm/octeon/cvmx-pow-defs.h
new file mode 100644
index 000000000000..2d82e24be51c
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-pow-defs.h
@@ -0,0 +1,698 @@
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_POW_DEFS_H__
29#define __CVMX_POW_DEFS_H__
30
31#define CVMX_POW_BIST_STAT \
32 CVMX_ADD_IO_SEG(0x00016700000003F8ull)
33#define CVMX_POW_DS_PC \
34 CVMX_ADD_IO_SEG(0x0001670000000398ull)
35#define CVMX_POW_ECC_ERR \
36 CVMX_ADD_IO_SEG(0x0001670000000218ull)
37#define CVMX_POW_INT_CTL \
38 CVMX_ADD_IO_SEG(0x0001670000000220ull)
39#define CVMX_POW_IQ_CNTX(offset) \
40 CVMX_ADD_IO_SEG(0x0001670000000340ull + (((offset) & 7) * 8))
41#define CVMX_POW_IQ_COM_CNT \
42 CVMX_ADD_IO_SEG(0x0001670000000388ull)
43#define CVMX_POW_IQ_INT \
44 CVMX_ADD_IO_SEG(0x0001670000000238ull)
45#define CVMX_POW_IQ_INT_EN \
46 CVMX_ADD_IO_SEG(0x0001670000000240ull)
47#define CVMX_POW_IQ_THRX(offset) \
48 CVMX_ADD_IO_SEG(0x00016700000003A0ull + (((offset) & 7) * 8))
49#define CVMX_POW_NOS_CNT \
50 CVMX_ADD_IO_SEG(0x0001670000000228ull)
51#define CVMX_POW_NW_TIM \
52 CVMX_ADD_IO_SEG(0x0001670000000210ull)
53#define CVMX_POW_PF_RST_MSK \
54 CVMX_ADD_IO_SEG(0x0001670000000230ull)
55#define CVMX_POW_PP_GRP_MSKX(offset) \
56 CVMX_ADD_IO_SEG(0x0001670000000000ull + (((offset) & 15) * 8))
57#define CVMX_POW_QOS_RNDX(offset) \
58 CVMX_ADD_IO_SEG(0x00016700000001C0ull + (((offset) & 7) * 8))
59#define CVMX_POW_QOS_THRX(offset) \
60 CVMX_ADD_IO_SEG(0x0001670000000180ull + (((offset) & 7) * 8))
61#define CVMX_POW_TS_PC \
62 CVMX_ADD_IO_SEG(0x0001670000000390ull)
63#define CVMX_POW_WA_COM_PC \
64 CVMX_ADD_IO_SEG(0x0001670000000380ull)
65#define CVMX_POW_WA_PCX(offset) \
66 CVMX_ADD_IO_SEG(0x0001670000000300ull + (((offset) & 7) * 8))
67#define CVMX_POW_WQ_INT \
68 CVMX_ADD_IO_SEG(0x0001670000000200ull)
69#define CVMX_POW_WQ_INT_CNTX(offset) \
70 CVMX_ADD_IO_SEG(0x0001670000000100ull + (((offset) & 15) * 8))
71#define CVMX_POW_WQ_INT_PC \
72 CVMX_ADD_IO_SEG(0x0001670000000208ull)
73#define CVMX_POW_WQ_INT_THRX(offset) \
74 CVMX_ADD_IO_SEG(0x0001670000000080ull + (((offset) & 15) * 8))
75#define CVMX_POW_WS_PCX(offset) \
76 CVMX_ADD_IO_SEG(0x0001670000000280ull + (((offset) & 15) * 8))
77
78union cvmx_pow_bist_stat {
79 uint64_t u64;
80 struct cvmx_pow_bist_stat_s {
81 uint64_t reserved_32_63:32;
82 uint64_t pp:16;
83 uint64_t reserved_0_15:16;
84 } s;
85 struct cvmx_pow_bist_stat_cn30xx {
86 uint64_t reserved_17_63:47;
87 uint64_t pp:1;
88 uint64_t reserved_9_15:7;
89 uint64_t cam:1;
90 uint64_t nbt1:1;
91 uint64_t nbt0:1;
92 uint64_t index:1;
93 uint64_t fidx:1;
94 uint64_t nbr1:1;
95 uint64_t nbr0:1;
96 uint64_t pend:1;
97 uint64_t adr:1;
98 } cn30xx;
99 struct cvmx_pow_bist_stat_cn31xx {
100 uint64_t reserved_18_63:46;
101 uint64_t pp:2;
102 uint64_t reserved_9_15:7;
103 uint64_t cam:1;
104 uint64_t nbt1:1;
105 uint64_t nbt0:1;
106 uint64_t index:1;
107 uint64_t fidx:1;
108 uint64_t nbr1:1;
109 uint64_t nbr0:1;
110 uint64_t pend:1;
111 uint64_t adr:1;
112 } cn31xx;
113 struct cvmx_pow_bist_stat_cn38xx {
114 uint64_t reserved_32_63:32;
115 uint64_t pp:16;
116 uint64_t reserved_10_15:6;
117 uint64_t cam:1;
118 uint64_t nbt:1;
119 uint64_t index:1;
120 uint64_t fidx:1;
121 uint64_t nbr1:1;
122 uint64_t nbr0:1;
123 uint64_t pend1:1;
124 uint64_t pend0:1;
125 uint64_t adr1:1;
126 uint64_t adr0:1;
127 } cn38xx;
128 struct cvmx_pow_bist_stat_cn38xx cn38xxp2;
129 struct cvmx_pow_bist_stat_cn31xx cn50xx;
130 struct cvmx_pow_bist_stat_cn52xx {
131 uint64_t reserved_20_63:44;
132 uint64_t pp:4;
133 uint64_t reserved_9_15:7;
134 uint64_t cam:1;
135 uint64_t nbt1:1;
136 uint64_t nbt0:1;
137 uint64_t index:1;
138 uint64_t fidx:1;
139 uint64_t nbr1:1;
140 uint64_t nbr0:1;
141 uint64_t pend:1;
142 uint64_t adr:1;
143 } cn52xx;
144 struct cvmx_pow_bist_stat_cn52xx cn52xxp1;
145 struct cvmx_pow_bist_stat_cn56xx {
146 uint64_t reserved_28_63:36;
147 uint64_t pp:12;
148 uint64_t reserved_10_15:6;
149 uint64_t cam:1;
150 uint64_t nbt:1;
151 uint64_t index:1;
152 uint64_t fidx:1;
153 uint64_t nbr1:1;
154 uint64_t nbr0:1;
155 uint64_t pend1:1;
156 uint64_t pend0:1;
157 uint64_t adr1:1;
158 uint64_t adr0:1;
159 } cn56xx;
160 struct cvmx_pow_bist_stat_cn56xx cn56xxp1;
161 struct cvmx_pow_bist_stat_cn38xx cn58xx;
162 struct cvmx_pow_bist_stat_cn38xx cn58xxp1;
163};
164
165union cvmx_pow_ds_pc {
166 uint64_t u64;
167 struct cvmx_pow_ds_pc_s {
168 uint64_t reserved_32_63:32;
169 uint64_t ds_pc:32;
170 } s;
171 struct cvmx_pow_ds_pc_s cn30xx;
172 struct cvmx_pow_ds_pc_s cn31xx;
173 struct cvmx_pow_ds_pc_s cn38xx;
174 struct cvmx_pow_ds_pc_s cn38xxp2;
175 struct cvmx_pow_ds_pc_s cn50xx;
176 struct cvmx_pow_ds_pc_s cn52xx;
177 struct cvmx_pow_ds_pc_s cn52xxp1;
178 struct cvmx_pow_ds_pc_s cn56xx;
179 struct cvmx_pow_ds_pc_s cn56xxp1;
180 struct cvmx_pow_ds_pc_s cn58xx;
181 struct cvmx_pow_ds_pc_s cn58xxp1;
182};
183
184union cvmx_pow_ecc_err {
185 uint64_t u64;
186 struct cvmx_pow_ecc_err_s {
187 uint64_t reserved_45_63:19;
188 uint64_t iop_ie:13;
189 uint64_t reserved_29_31:3;
190 uint64_t iop:13;
191 uint64_t reserved_14_15:2;
192 uint64_t rpe_ie:1;
193 uint64_t rpe:1;
194 uint64_t reserved_9_11:3;
195 uint64_t syn:5;
196 uint64_t dbe_ie:1;
197 uint64_t sbe_ie:1;
198 uint64_t dbe:1;
199 uint64_t sbe:1;
200 } s;
201 struct cvmx_pow_ecc_err_s cn30xx;
202 struct cvmx_pow_ecc_err_cn31xx {
203 uint64_t reserved_14_63:50;
204 uint64_t rpe_ie:1;
205 uint64_t rpe:1;
206 uint64_t reserved_9_11:3;
207 uint64_t syn:5;
208 uint64_t dbe_ie:1;
209 uint64_t sbe_ie:1;
210 uint64_t dbe:1;
211 uint64_t sbe:1;
212 } cn31xx;
213 struct cvmx_pow_ecc_err_s cn38xx;
214 struct cvmx_pow_ecc_err_cn31xx cn38xxp2;
215 struct cvmx_pow_ecc_err_s cn50xx;
216 struct cvmx_pow_ecc_err_s cn52xx;
217 struct cvmx_pow_ecc_err_s cn52xxp1;
218 struct cvmx_pow_ecc_err_s cn56xx;
219 struct cvmx_pow_ecc_err_s cn56xxp1;
220 struct cvmx_pow_ecc_err_s cn58xx;
221 struct cvmx_pow_ecc_err_s cn58xxp1;
222};
223
224union cvmx_pow_int_ctl {
225 uint64_t u64;
226 struct cvmx_pow_int_ctl_s {
227 uint64_t reserved_6_63:58;
228 uint64_t pfr_dis:1;
229 uint64_t nbr_thr:5;
230 } s;
231 struct cvmx_pow_int_ctl_s cn30xx;
232 struct cvmx_pow_int_ctl_s cn31xx;
233 struct cvmx_pow_int_ctl_s cn38xx;
234 struct cvmx_pow_int_ctl_s cn38xxp2;
235 struct cvmx_pow_int_ctl_s cn50xx;
236 struct cvmx_pow_int_ctl_s cn52xx;
237 struct cvmx_pow_int_ctl_s cn52xxp1;
238 struct cvmx_pow_int_ctl_s cn56xx;
239 struct cvmx_pow_int_ctl_s cn56xxp1;
240 struct cvmx_pow_int_ctl_s cn58xx;
241 struct cvmx_pow_int_ctl_s cn58xxp1;
242};
243
244union cvmx_pow_iq_cntx {
245 uint64_t u64;
246 struct cvmx_pow_iq_cntx_s {
247 uint64_t reserved_32_63:32;
248 uint64_t iq_cnt:32;
249 } s;
250 struct cvmx_pow_iq_cntx_s cn30xx;
251 struct cvmx_pow_iq_cntx_s cn31xx;
252 struct cvmx_pow_iq_cntx_s cn38xx;
253 struct cvmx_pow_iq_cntx_s cn38xxp2;
254 struct cvmx_pow_iq_cntx_s cn50xx;
255 struct cvmx_pow_iq_cntx_s cn52xx;
256 struct cvmx_pow_iq_cntx_s cn52xxp1;
257 struct cvmx_pow_iq_cntx_s cn56xx;
258 struct cvmx_pow_iq_cntx_s cn56xxp1;
259 struct cvmx_pow_iq_cntx_s cn58xx;
260 struct cvmx_pow_iq_cntx_s cn58xxp1;
261};
262
263union cvmx_pow_iq_com_cnt {
264 uint64_t u64;
265 struct cvmx_pow_iq_com_cnt_s {
266 uint64_t reserved_32_63:32;
267 uint64_t iq_cnt:32;
268 } s;
269 struct cvmx_pow_iq_com_cnt_s cn30xx;
270 struct cvmx_pow_iq_com_cnt_s cn31xx;
271 struct cvmx_pow_iq_com_cnt_s cn38xx;
272 struct cvmx_pow_iq_com_cnt_s cn38xxp2;
273 struct cvmx_pow_iq_com_cnt_s cn50xx;
274 struct cvmx_pow_iq_com_cnt_s cn52xx;
275 struct cvmx_pow_iq_com_cnt_s cn52xxp1;
276 struct cvmx_pow_iq_com_cnt_s cn56xx;
277 struct cvmx_pow_iq_com_cnt_s cn56xxp1;
278 struct cvmx_pow_iq_com_cnt_s cn58xx;
279 struct cvmx_pow_iq_com_cnt_s cn58xxp1;
280};
281
282union cvmx_pow_iq_int {
283 uint64_t u64;
284 struct cvmx_pow_iq_int_s {
285 uint64_t reserved_8_63:56;
286 uint64_t iq_int:8;
287 } s;
288 struct cvmx_pow_iq_int_s cn52xx;
289 struct cvmx_pow_iq_int_s cn52xxp1;
290 struct cvmx_pow_iq_int_s cn56xx;
291 struct cvmx_pow_iq_int_s cn56xxp1;
292};
293
294union cvmx_pow_iq_int_en {
295 uint64_t u64;
296 struct cvmx_pow_iq_int_en_s {
297 uint64_t reserved_8_63:56;
298 uint64_t int_en:8;
299 } s;
300 struct cvmx_pow_iq_int_en_s cn52xx;
301 struct cvmx_pow_iq_int_en_s cn52xxp1;
302 struct cvmx_pow_iq_int_en_s cn56xx;
303 struct cvmx_pow_iq_int_en_s cn56xxp1;
304};
305
306union cvmx_pow_iq_thrx {
307 uint64_t u64;
308 struct cvmx_pow_iq_thrx_s {
309 uint64_t reserved_32_63:32;
310 uint64_t iq_thr:32;
311 } s;
312 struct cvmx_pow_iq_thrx_s cn52xx;
313 struct cvmx_pow_iq_thrx_s cn52xxp1;
314 struct cvmx_pow_iq_thrx_s cn56xx;
315 struct cvmx_pow_iq_thrx_s cn56xxp1;
316};
317
318union cvmx_pow_nos_cnt {
319 uint64_t u64;
320 struct cvmx_pow_nos_cnt_s {
321 uint64_t reserved_12_63:52;
322 uint64_t nos_cnt:12;
323 } s;
324 struct cvmx_pow_nos_cnt_cn30xx {
325 uint64_t reserved_7_63:57;
326 uint64_t nos_cnt:7;
327 } cn30xx;
328 struct cvmx_pow_nos_cnt_cn31xx {
329 uint64_t reserved_9_63:55;
330 uint64_t nos_cnt:9;
331 } cn31xx;
332 struct cvmx_pow_nos_cnt_s cn38xx;
333 struct cvmx_pow_nos_cnt_s cn38xxp2;
334 struct cvmx_pow_nos_cnt_cn31xx cn50xx;
335 struct cvmx_pow_nos_cnt_cn52xx {
336 uint64_t reserved_10_63:54;
337 uint64_t nos_cnt:10;
338 } cn52xx;
339 struct cvmx_pow_nos_cnt_cn52xx cn52xxp1;
340 struct cvmx_pow_nos_cnt_s cn56xx;
341 struct cvmx_pow_nos_cnt_s cn56xxp1;
342 struct cvmx_pow_nos_cnt_s cn58xx;
343 struct cvmx_pow_nos_cnt_s cn58xxp1;
344};
345
346union cvmx_pow_nw_tim {
347 uint64_t u64;
348 struct cvmx_pow_nw_tim_s {
349 uint64_t reserved_10_63:54;
350 uint64_t nw_tim:10;
351 } s;
352 struct cvmx_pow_nw_tim_s cn30xx;
353 struct cvmx_pow_nw_tim_s cn31xx;
354 struct cvmx_pow_nw_tim_s cn38xx;
355 struct cvmx_pow_nw_tim_s cn38xxp2;
356 struct cvmx_pow_nw_tim_s cn50xx;
357 struct cvmx_pow_nw_tim_s cn52xx;
358 struct cvmx_pow_nw_tim_s cn52xxp1;
359 struct cvmx_pow_nw_tim_s cn56xx;
360 struct cvmx_pow_nw_tim_s cn56xxp1;
361 struct cvmx_pow_nw_tim_s cn58xx;
362 struct cvmx_pow_nw_tim_s cn58xxp1;
363};
364
365union cvmx_pow_pf_rst_msk {
366 uint64_t u64;
367 struct cvmx_pow_pf_rst_msk_s {
368 uint64_t reserved_8_63:56;
369 uint64_t rst_msk:8;
370 } s;
371 struct cvmx_pow_pf_rst_msk_s cn50xx;
372 struct cvmx_pow_pf_rst_msk_s cn52xx;
373 struct cvmx_pow_pf_rst_msk_s cn52xxp1;
374 struct cvmx_pow_pf_rst_msk_s cn56xx;
375 struct cvmx_pow_pf_rst_msk_s cn56xxp1;
376 struct cvmx_pow_pf_rst_msk_s cn58xx;
377 struct cvmx_pow_pf_rst_msk_s cn58xxp1;
378};
379
380union cvmx_pow_pp_grp_mskx {
381 uint64_t u64;
382 struct cvmx_pow_pp_grp_mskx_s {
383 uint64_t reserved_48_63:16;
384 uint64_t qos7_pri:4;
385 uint64_t qos6_pri:4;
386 uint64_t qos5_pri:4;
387 uint64_t qos4_pri:4;
388 uint64_t qos3_pri:4;
389 uint64_t qos2_pri:4;
390 uint64_t qos1_pri:4;
391 uint64_t qos0_pri:4;
392 uint64_t grp_msk:16;
393 } s;
394 struct cvmx_pow_pp_grp_mskx_cn30xx {
395 uint64_t reserved_16_63:48;
396 uint64_t grp_msk:16;
397 } cn30xx;
398 struct cvmx_pow_pp_grp_mskx_cn30xx cn31xx;
399 struct cvmx_pow_pp_grp_mskx_cn30xx cn38xx;
400 struct cvmx_pow_pp_grp_mskx_cn30xx cn38xxp2;
401 struct cvmx_pow_pp_grp_mskx_s cn50xx;
402 struct cvmx_pow_pp_grp_mskx_s cn52xx;
403 struct cvmx_pow_pp_grp_mskx_s cn52xxp1;
404 struct cvmx_pow_pp_grp_mskx_s cn56xx;
405 struct cvmx_pow_pp_grp_mskx_s cn56xxp1;
406 struct cvmx_pow_pp_grp_mskx_s cn58xx;
407 struct cvmx_pow_pp_grp_mskx_s cn58xxp1;
408};
409
410union cvmx_pow_qos_rndx {
411 uint64_t u64;
412 struct cvmx_pow_qos_rndx_s {
413 uint64_t reserved_32_63:32;
414 uint64_t rnd_p3:8;
415 uint64_t rnd_p2:8;
416 uint64_t rnd_p1:8;
417 uint64_t rnd:8;
418 } s;
419 struct cvmx_pow_qos_rndx_s cn30xx;
420 struct cvmx_pow_qos_rndx_s cn31xx;
421 struct cvmx_pow_qos_rndx_s cn38xx;
422 struct cvmx_pow_qos_rndx_s cn38xxp2;
423 struct cvmx_pow_qos_rndx_s cn50xx;
424 struct cvmx_pow_qos_rndx_s cn52xx;
425 struct cvmx_pow_qos_rndx_s cn52xxp1;
426 struct cvmx_pow_qos_rndx_s cn56xx;
427 struct cvmx_pow_qos_rndx_s cn56xxp1;
428 struct cvmx_pow_qos_rndx_s cn58xx;
429 struct cvmx_pow_qos_rndx_s cn58xxp1;
430};
431
432union cvmx_pow_qos_thrx {
433 uint64_t u64;
434 struct cvmx_pow_qos_thrx_s {
435 uint64_t reserved_60_63:4;
436 uint64_t des_cnt:12;
437 uint64_t buf_cnt:12;
438 uint64_t free_cnt:12;
439 uint64_t reserved_23_23:1;
440 uint64_t max_thr:11;
441 uint64_t reserved_11_11:1;
442 uint64_t min_thr:11;
443 } s;
444 struct cvmx_pow_qos_thrx_cn30xx {
445 uint64_t reserved_55_63:9;
446 uint64_t des_cnt:7;
447 uint64_t reserved_43_47:5;
448 uint64_t buf_cnt:7;
449 uint64_t reserved_31_35:5;
450 uint64_t free_cnt:7;
451 uint64_t reserved_18_23:6;
452 uint64_t max_thr:6;
453 uint64_t reserved_6_11:6;
454 uint64_t min_thr:6;
455 } cn30xx;
456 struct cvmx_pow_qos_thrx_cn31xx {
457 uint64_t reserved_57_63:7;
458 uint64_t des_cnt:9;
459 uint64_t reserved_45_47:3;
460 uint64_t buf_cnt:9;
461 uint64_t reserved_33_35:3;
462 uint64_t free_cnt:9;
463 uint64_t reserved_20_23:4;
464 uint64_t max_thr:8;
465 uint64_t reserved_8_11:4;
466 uint64_t min_thr:8;
467 } cn31xx;
468 struct cvmx_pow_qos_thrx_s cn38xx;
469 struct cvmx_pow_qos_thrx_s cn38xxp2;
470 struct cvmx_pow_qos_thrx_cn31xx cn50xx;
471 struct cvmx_pow_qos_thrx_cn52xx {
472 uint64_t reserved_58_63:6;
473 uint64_t des_cnt:10;
474 uint64_t reserved_46_47:2;
475 uint64_t buf_cnt:10;
476 uint64_t reserved_34_35:2;
477 uint64_t free_cnt:10;
478 uint64_t reserved_21_23:3;
479 uint64_t max_thr:9;
480 uint64_t reserved_9_11:3;
481 uint64_t min_thr:9;
482 } cn52xx;
483 struct cvmx_pow_qos_thrx_cn52xx cn52xxp1;
484 struct cvmx_pow_qos_thrx_s cn56xx;
485 struct cvmx_pow_qos_thrx_s cn56xxp1;
486 struct cvmx_pow_qos_thrx_s cn58xx;
487 struct cvmx_pow_qos_thrx_s cn58xxp1;
488};
489
490union cvmx_pow_ts_pc {
491 uint64_t u64;
492 struct cvmx_pow_ts_pc_s {
493 uint64_t reserved_32_63:32;
494 uint64_t ts_pc:32;
495 } s;
496 struct cvmx_pow_ts_pc_s cn30xx;
497 struct cvmx_pow_ts_pc_s cn31xx;
498 struct cvmx_pow_ts_pc_s cn38xx;
499 struct cvmx_pow_ts_pc_s cn38xxp2;
500 struct cvmx_pow_ts_pc_s cn50xx;
501 struct cvmx_pow_ts_pc_s cn52xx;
502 struct cvmx_pow_ts_pc_s cn52xxp1;
503 struct cvmx_pow_ts_pc_s cn56xx;
504 struct cvmx_pow_ts_pc_s cn56xxp1;
505 struct cvmx_pow_ts_pc_s cn58xx;
506 struct cvmx_pow_ts_pc_s cn58xxp1;
507};
508
509union cvmx_pow_wa_com_pc {
510 uint64_t u64;
511 struct cvmx_pow_wa_com_pc_s {
512 uint64_t reserved_32_63:32;
513 uint64_t wa_pc:32;
514 } s;
515 struct cvmx_pow_wa_com_pc_s cn30xx;
516 struct cvmx_pow_wa_com_pc_s cn31xx;
517 struct cvmx_pow_wa_com_pc_s cn38xx;
518 struct cvmx_pow_wa_com_pc_s cn38xxp2;
519 struct cvmx_pow_wa_com_pc_s cn50xx;
520 struct cvmx_pow_wa_com_pc_s cn52xx;
521 struct cvmx_pow_wa_com_pc_s cn52xxp1;
522 struct cvmx_pow_wa_com_pc_s cn56xx;
523 struct cvmx_pow_wa_com_pc_s cn56xxp1;
524 struct cvmx_pow_wa_com_pc_s cn58xx;
525 struct cvmx_pow_wa_com_pc_s cn58xxp1;
526};
527
528union cvmx_pow_wa_pcx {
529 uint64_t u64;
530 struct cvmx_pow_wa_pcx_s {
531 uint64_t reserved_32_63:32;
532 uint64_t wa_pc:32;
533 } s;
534 struct cvmx_pow_wa_pcx_s cn30xx;
535 struct cvmx_pow_wa_pcx_s cn31xx;
536 struct cvmx_pow_wa_pcx_s cn38xx;
537 struct cvmx_pow_wa_pcx_s cn38xxp2;
538 struct cvmx_pow_wa_pcx_s cn50xx;
539 struct cvmx_pow_wa_pcx_s cn52xx;
540 struct cvmx_pow_wa_pcx_s cn52xxp1;
541 struct cvmx_pow_wa_pcx_s cn56xx;
542 struct cvmx_pow_wa_pcx_s cn56xxp1;
543 struct cvmx_pow_wa_pcx_s cn58xx;
544 struct cvmx_pow_wa_pcx_s cn58xxp1;
545};
546
547union cvmx_pow_wq_int {
548 uint64_t u64;
549 struct cvmx_pow_wq_int_s {
550 uint64_t reserved_32_63:32;
551 uint64_t iq_dis:16;
552 uint64_t wq_int:16;
553 } s;
554 struct cvmx_pow_wq_int_s cn30xx;
555 struct cvmx_pow_wq_int_s cn31xx;
556 struct cvmx_pow_wq_int_s cn38xx;
557 struct cvmx_pow_wq_int_s cn38xxp2;
558 struct cvmx_pow_wq_int_s cn50xx;
559 struct cvmx_pow_wq_int_s cn52xx;
560 struct cvmx_pow_wq_int_s cn52xxp1;
561 struct cvmx_pow_wq_int_s cn56xx;
562 struct cvmx_pow_wq_int_s cn56xxp1;
563 struct cvmx_pow_wq_int_s cn58xx;
564 struct cvmx_pow_wq_int_s cn58xxp1;
565};
566
567union cvmx_pow_wq_int_cntx {
568 uint64_t u64;
569 struct cvmx_pow_wq_int_cntx_s {
570 uint64_t reserved_28_63:36;
571 uint64_t tc_cnt:4;
572 uint64_t ds_cnt:12;
573 uint64_t iq_cnt:12;
574 } s;
575 struct cvmx_pow_wq_int_cntx_cn30xx {
576 uint64_t reserved_28_63:36;
577 uint64_t tc_cnt:4;
578 uint64_t reserved_19_23:5;
579 uint64_t ds_cnt:7;
580 uint64_t reserved_7_11:5;
581 uint64_t iq_cnt:7;
582 } cn30xx;
583 struct cvmx_pow_wq_int_cntx_cn31xx {
584 uint64_t reserved_28_63:36;
585 uint64_t tc_cnt:4;
586 uint64_t reserved_21_23:3;
587 uint64_t ds_cnt:9;
588 uint64_t reserved_9_11:3;
589 uint64_t iq_cnt:9;
590 } cn31xx;
591 struct cvmx_pow_wq_int_cntx_s cn38xx;
592 struct cvmx_pow_wq_int_cntx_s cn38xxp2;
593 struct cvmx_pow_wq_int_cntx_cn31xx cn50xx;
594 struct cvmx_pow_wq_int_cntx_cn52xx {
595 uint64_t reserved_28_63:36;
596 uint64_t tc_cnt:4;
597 uint64_t reserved_22_23:2;
598 uint64_t ds_cnt:10;
599 uint64_t reserved_10_11:2;
600 uint64_t iq_cnt:10;
601 } cn52xx;
602 struct cvmx_pow_wq_int_cntx_cn52xx cn52xxp1;
603 struct cvmx_pow_wq_int_cntx_s cn56xx;
604 struct cvmx_pow_wq_int_cntx_s cn56xxp1;
605 struct cvmx_pow_wq_int_cntx_s cn58xx;
606 struct cvmx_pow_wq_int_cntx_s cn58xxp1;
607};
608
609union cvmx_pow_wq_int_pc {
610 uint64_t u64;
611 struct cvmx_pow_wq_int_pc_s {
612 uint64_t reserved_60_63:4;
613 uint64_t pc:28;
614 uint64_t reserved_28_31:4;
615 uint64_t pc_thr:20;
616 uint64_t reserved_0_7:8;
617 } s;
618 struct cvmx_pow_wq_int_pc_s cn30xx;
619 struct cvmx_pow_wq_int_pc_s cn31xx;
620 struct cvmx_pow_wq_int_pc_s cn38xx;
621 struct cvmx_pow_wq_int_pc_s cn38xxp2;
622 struct cvmx_pow_wq_int_pc_s cn50xx;
623 struct cvmx_pow_wq_int_pc_s cn52xx;
624 struct cvmx_pow_wq_int_pc_s cn52xxp1;
625 struct cvmx_pow_wq_int_pc_s cn56xx;
626 struct cvmx_pow_wq_int_pc_s cn56xxp1;
627 struct cvmx_pow_wq_int_pc_s cn58xx;
628 struct cvmx_pow_wq_int_pc_s cn58xxp1;
629};
630
631union cvmx_pow_wq_int_thrx {
632 uint64_t u64;
633 struct cvmx_pow_wq_int_thrx_s {
634 uint64_t reserved_29_63:35;
635 uint64_t tc_en:1;
636 uint64_t tc_thr:4;
637 uint64_t reserved_23_23:1;
638 uint64_t ds_thr:11;
639 uint64_t reserved_11_11:1;
640 uint64_t iq_thr:11;
641 } s;
642 struct cvmx_pow_wq_int_thrx_cn30xx {
643 uint64_t reserved_29_63:35;
644 uint64_t tc_en:1;
645 uint64_t tc_thr:4;
646 uint64_t reserved_18_23:6;
647 uint64_t ds_thr:6;
648 uint64_t reserved_6_11:6;
649 uint64_t iq_thr:6;
650 } cn30xx;
651 struct cvmx_pow_wq_int_thrx_cn31xx {
652 uint64_t reserved_29_63:35;
653 uint64_t tc_en:1;
654 uint64_t tc_thr:4;
655 uint64_t reserved_20_23:4;
656 uint64_t ds_thr:8;
657 uint64_t reserved_8_11:4;
658 uint64_t iq_thr:8;
659 } cn31xx;
660 struct cvmx_pow_wq_int_thrx_s cn38xx;
661 struct cvmx_pow_wq_int_thrx_s cn38xxp2;
662 struct cvmx_pow_wq_int_thrx_cn31xx cn50xx;
663 struct cvmx_pow_wq_int_thrx_cn52xx {
664 uint64_t reserved_29_63:35;
665 uint64_t tc_en:1;
666 uint64_t tc_thr:4;
667 uint64_t reserved_21_23:3;
668 uint64_t ds_thr:9;
669 uint64_t reserved_9_11:3;
670 uint64_t iq_thr:9;
671 } cn52xx;
672 struct cvmx_pow_wq_int_thrx_cn52xx cn52xxp1;
673 struct cvmx_pow_wq_int_thrx_s cn56xx;
674 struct cvmx_pow_wq_int_thrx_s cn56xxp1;
675 struct cvmx_pow_wq_int_thrx_s cn58xx;
676 struct cvmx_pow_wq_int_thrx_s cn58xxp1;
677};
678
679union cvmx_pow_ws_pcx {
680 uint64_t u64;
681 struct cvmx_pow_ws_pcx_s {
682 uint64_t reserved_32_63:32;
683 uint64_t ws_pc:32;
684 } s;
685 struct cvmx_pow_ws_pcx_s cn30xx;
686 struct cvmx_pow_ws_pcx_s cn31xx;
687 struct cvmx_pow_ws_pcx_s cn38xx;
688 struct cvmx_pow_ws_pcx_s cn38xxp2;
689 struct cvmx_pow_ws_pcx_s cn50xx;
690 struct cvmx_pow_ws_pcx_s cn52xx;
691 struct cvmx_pow_ws_pcx_s cn52xxp1;
692 struct cvmx_pow_ws_pcx_s cn56xx;
693 struct cvmx_pow_ws_pcx_s cn56xxp1;
694 struct cvmx_pow_ws_pcx_s cn58xx;
695 struct cvmx_pow_ws_pcx_s cn58xxp1;
696};
697
698#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-spinlock.h b/arch/mips/include/asm/octeon/cvmx-spinlock.h
new file mode 100644
index 000000000000..2fbf0871df11
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-spinlock.h
@@ -0,0 +1,232 @@
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/**
29 * Implementation of spinlocks for Octeon CVMX. Although similar in
30 * function to Linux kernel spinlocks, they are not compatible.
31 * Octeon CVMX spinlocks are only used to synchronize with the boot
32 * monitor and other non-Linux programs running in the system.
33 */
34
35#ifndef __CVMX_SPINLOCK_H__
36#define __CVMX_SPINLOCK_H__
37
38#include "cvmx-asm.h"
39
40/* Spinlocks for Octeon */
41
42/* define these to enable recursive spinlock debugging */
43/*#define CVMX_SPINLOCK_DEBUG */
44
45/**
46 * Spinlocks for Octeon CVMX
47 */
48typedef struct {
49 volatile uint32_t value;
50} cvmx_spinlock_t;
51
52/* note - macros not expanded in inline ASM, so values hardcoded */
53#define CVMX_SPINLOCK_UNLOCKED_VAL 0
54#define CVMX_SPINLOCK_LOCKED_VAL 1
55
56#define CVMX_SPINLOCK_UNLOCKED_INITIALIZER {CVMX_SPINLOCK_UNLOCKED_VAL}
57
58/**
59 * Initialize a spinlock
60 *
61 * @lock: Lock to initialize
62 */
63static inline void cvmx_spinlock_init(cvmx_spinlock_t *lock)
64{
65 lock->value = CVMX_SPINLOCK_UNLOCKED_VAL;
66}
67
68/**
69 * Return non-zero if the spinlock is currently locked
70 *
71 * @lock: Lock to check
72 * Returns Non-zero if locked
73 */
74static inline int cvmx_spinlock_locked(cvmx_spinlock_t *lock)
75{
76 return lock->value != CVMX_SPINLOCK_UNLOCKED_VAL;
77}
78
79/**
80 * Releases lock
81 *
82 * @lock: pointer to lock structure
83 */
84static inline void cvmx_spinlock_unlock(cvmx_spinlock_t *lock)
85{
86 CVMX_SYNCWS;
87 lock->value = 0;
88 CVMX_SYNCWS;
89}
90
91/**
92 * Attempts to take the lock, but does not spin if lock is not available.
93 * May take some time to acquire the lock even if it is available
94 * due to the ll/sc not succeeding.
95 *
96 * @lock: pointer to lock structure
97 *
98 * Returns 0: lock successfully taken
99 * 1: lock not taken, held by someone else
100 * These return values match the Linux semantics.
101 */
102
103static inline unsigned int cvmx_spinlock_trylock(cvmx_spinlock_t *lock)
104{
105 unsigned int tmp;
106
107 __asm__ __volatile__(".set noreorder \n"
108 "1: ll %[tmp], %[val] \n"
109 /* if lock held, fail immediately */
110 " bnez %[tmp], 2f \n"
111 " li %[tmp], 1 \n"
112 " sc %[tmp], %[val] \n"
113 " beqz %[tmp], 1b \n"
114 " li %[tmp], 0 \n"
115 "2: \n"
116 ".set reorder \n" :
117 [val] "+m"(lock->value), [tmp] "=&r"(tmp)
118 : : "memory");
119
120 return tmp != 0; /* normalize to 0 or 1 */
121}
122
123/**
124 * Gets lock, spins until lock is taken
125 *
126 * @lock: pointer to lock structure
127 */
128static inline void cvmx_spinlock_lock(cvmx_spinlock_t *lock)
129{
130 unsigned int tmp;
131
132 __asm__ __volatile__(".set noreorder \n"
133 "1: ll %[tmp], %[val] \n"
134 " bnez %[tmp], 1b \n"
135 " li %[tmp], 1 \n"
136 " sc %[tmp], %[val] \n"
137 " beqz %[tmp], 1b \n"
138 " nop \n"
139 ".set reorder \n" :
140 [val] "+m"(lock->value), [tmp] "=&r"(tmp)
141 : : "memory");
142
143}
144
145/** ********************************************************************
146 * Bit spinlocks
147 * These spinlocks use a single bit (bit 31) of a 32 bit word for locking.
148 * The rest of the bits in the word are left undisturbed. This enables more
149 * compact data structures as only 1 bit is consumed for the lock.
150 *
151 */
152
153/**
154 * Gets lock, spins until lock is taken
155 * Preserves the low 31 bits of the 32 bit
156 * word used for the lock.
157 *
158 *
159 * @word: word to lock bit 31 of
160 */
161static inline void cvmx_spinlock_bit_lock(uint32_t *word)
162{
163 unsigned int tmp;
164 unsigned int sav;
165
166 __asm__ __volatile__(".set noreorder \n"
167 ".set noat \n"
168 "1: ll %[tmp], %[val] \n"
169 " bbit1 %[tmp], 31, 1b \n"
170 " li $at, 1 \n"
171 " ins %[tmp], $at, 31, 1 \n"
172 " sc %[tmp], %[val] \n"
173 " beqz %[tmp], 1b \n"
174 " nop \n"
175 ".set at \n"
176 ".set reorder \n" :
177 [val] "+m"(*word), [tmp] "=&r"(tmp), [sav] "=&r"(sav)
178 : : "memory");
179
180}
181
182/**
183 * Attempts to get lock, returns immediately with success/failure
184 * Preserves the low 31 bits of the 32 bit
185 * word used for the lock.
186 *
187 *
188 * @word: word to lock bit 31 of
189 * Returns 0: lock successfully taken
190 * 1: lock not taken, held by someone else
191 * These return values match the Linux semantics.
192 */
193static inline unsigned int cvmx_spinlock_bit_trylock(uint32_t *word)
194{
195 unsigned int tmp;
196
197 __asm__ __volatile__(".set noreorder\n\t"
198 ".set noat\n"
199 "1: ll %[tmp], %[val] \n"
200 /* if lock held, fail immediately */
201 " bbit1 %[tmp], 31, 2f \n"
202 " li $at, 1 \n"
203 " ins %[tmp], $at, 31, 1 \n"
204 " sc %[tmp], %[val] \n"
205 " beqz %[tmp], 1b \n"
206 " li %[tmp], 0 \n"
207 "2: \n"
208 ".set at \n"
209 ".set reorder \n" :
210 [val] "+m"(*word), [tmp] "=&r"(tmp)
211 : : "memory");
212
213 return tmp != 0; /* normalize to 0 or 1 */
214}
215
216/**
217 * Releases bit lock
218 *
219 * Unconditionally clears bit 31 of the lock word. Note that this is
220 * done non-atomically, as this implementation assumes that the rest
221 * of the bits in the word are protected by the lock.
222 *
223 * @word: word to unlock bit 31 in
224 */
225static inline void cvmx_spinlock_bit_unlock(uint32_t *word)
226{
227 CVMX_SYNCWS;
228 *word &= ~(1UL << 31);
229 CVMX_SYNCWS;
230}
231
232#endif /* __CVMX_SPINLOCK_H__ */
diff --git a/arch/mips/include/asm/octeon/cvmx-sysinfo.h b/arch/mips/include/asm/octeon/cvmx-sysinfo.h
new file mode 100644
index 000000000000..61dd5741afe4
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-sysinfo.h
@@ -0,0 +1,152 @@
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/*
29 * This module provides system/board information obtained by the bootloader.
30 */
31
32#ifndef __CVMX_SYSINFO_H__
33#define __CVMX_SYSINFO_H__
34
35#define OCTEON_SERIAL_LEN 20
36/**
37 * Structure describing application specific information.
38 * __cvmx_app_init() populates this from the cvmx boot descriptor.
39 * This structure is private to simple executive applications, so
40 * no versioning is required.
41 *
42 * This structure must be provided with some fields set in order to
43 * use simple executive functions in other applications (Linux kernel,
44 * u-boot, etc.) The cvmx_sysinfo_minimal_initialize() function is
45 * provided to set the required values in these cases.
46 */
47struct cvmx_sysinfo {
48 /* System wide variables */
49 /* installed DRAM in system, in bytes */
50 uint64_t system_dram_size;
51
52 /* ptr to memory descriptor block */
53 void *phy_mem_desc_ptr;
54
55
56 /* Application image specific variables */
57 /* stack top address (virtual) */
58 uint64_t stack_top;
59 /* heap base address (virtual) */
60 uint64_t heap_base;
61 /* stack size in bytes */
62 uint32_t stack_size;
63 /* heap size in bytes */
64 uint32_t heap_size;
65 /* coremask defining cores running application */
66 uint32_t core_mask;
67 /* Deprecated, use cvmx_coremask_first_core() to select init core */
68 uint32_t init_core;
69
70 /* exception base address, as set by bootloader */
71 uint64_t exception_base_addr;
72
73 /* cpu clock speed in hz */
74 uint32_t cpu_clock_hz;
75
76 /* dram data rate in hz (data rate = 2 * clock rate */
77 uint32_t dram_data_rate_hz;
78
79
80 uint16_t board_type;
81 uint8_t board_rev_major;
82 uint8_t board_rev_minor;
83 uint8_t mac_addr_base[6];
84 uint8_t mac_addr_count;
85 char board_serial_number[OCTEON_SERIAL_LEN];
86 /*
87 * Several boards support compact flash on the Octeon boot
88 * bus. The CF memory spaces may be mapped to different
89 * addresses on different boards. These values will be 0 if
90 * CF is not present. Note that these addresses are physical
91 * addresses, and it is up to the application to use the
92 * proper addressing mode (XKPHYS, KSEG0, etc.)
93 */
94 uint64_t compact_flash_common_base_addr;
95 uint64_t compact_flash_attribute_base_addr;
96 /*
97 * Base address of the LED display (as on EBT3000 board) This
98 * will be 0 if LED display not present. Note that this
99 * address is a physical address, and it is up to the
100 * application to use the proper addressing mode (XKPHYS,
101 * KSEG0, etc.)
102 */
103 uint64_t led_display_base_addr;
104 /* DFA reference clock in hz (if applicable)*/
105 uint32_t dfa_ref_clock_hz;
106 /* configuration flags from bootloader */
107 uint32_t bootloader_config_flags;
108
109 /* Uart number used for console */
110 uint8_t console_uart_num;
111};
112
113/**
114 * This function returns the system/board information as obtained
115 * by the bootloader.
116 *
117 *
118 * Returns Pointer to the boot information structure
119 *
120 */
121
122extern struct cvmx_sysinfo *cvmx_sysinfo_get(void);
123
124/**
125 * This function is used in non-simple executive environments (such as
126 * Linux kernel, u-boot, etc.) to configure the minimal fields that
127 * are required to use simple executive files directly.
128 *
129 * Locking (if required) must be handled outside of this
130 * function
131 *
132 * @phy_mem_desc_ptr: Pointer to global physical memory descriptor
133 * (bootmem descriptor) @board_type: Octeon board
134 * type enumeration
135 *
136 * @board_rev_major:
137 * Board major revision
138 * @board_rev_minor:
139 * Board minor revision
140 * @cpu_clock_hz:
141 * CPU clock freqency in hertz
142 *
143 * Returns 0: Failure
144 * 1: success
145 */
146extern int cvmx_sysinfo_minimal_initialize(void *phy_mem_desc_ptr,
147 uint16_t board_type,
148 uint8_t board_rev_major,
149 uint8_t board_rev_minor,
150 uint32_t cpu_clock_hz);
151
152#endif /* __CVMX_SYSINFO_H__ */
diff --git a/arch/mips/include/asm/octeon/cvmx.h b/arch/mips/include/asm/octeon/cvmx.h
new file mode 100644
index 000000000000..03fddfa3e928
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx.h
@@ -0,0 +1,505 @@
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_H__
29#define __CVMX_H__
30
31#include <linux/kernel.h>
32#include <linux/string.h>
33
34#include "cvmx-asm.h"
35#include "cvmx-packet.h"
36#include "cvmx-sysinfo.h"
37
38#include "cvmx-ciu-defs.h"
39#include "cvmx-gpio-defs.h"
40#include "cvmx-iob-defs.h"
41#include "cvmx-ipd-defs.h"
42#include "cvmx-l2c-defs.h"
43#include "cvmx-l2d-defs.h"
44#include "cvmx-l2t-defs.h"
45#include "cvmx-led-defs.h"
46#include "cvmx-mio-defs.h"
47#include "cvmx-pow-defs.h"
48
49#include "cvmx-bootinfo.h"
50#include "cvmx-bootmem.h"
51#include "cvmx-l2c.h"
52
53#ifndef CVMX_ENABLE_DEBUG_PRINTS
54#define CVMX_ENABLE_DEBUG_PRINTS 1
55#endif
56
57#if CVMX_ENABLE_DEBUG_PRINTS
58#define cvmx_dprintf printk
59#else
60#define cvmx_dprintf(...) {}
61#endif
62
63#define CVMX_MAX_CORES (16)
64#define CVMX_CACHE_LINE_SIZE (128) /* In bytes */
65#define CVMX_CACHE_LINE_MASK (CVMX_CACHE_LINE_SIZE - 1) /* In bytes */
66#define CVMX_CACHE_LINE_ALIGNED __attribute__ ((aligned(CVMX_CACHE_LINE_SIZE)))
67#define CAST64(v) ((long long)(long)(v))
68#define CASTPTR(type, v) ((type *)(long)(v))
69
70/*
71 * Returns processor ID, different Linux and simple exec versions
72 * provided in the cvmx-app-init*.c files.
73 */
74static inline uint32_t cvmx_get_proc_id(void) __attribute__ ((pure));
75static inline uint32_t cvmx_get_proc_id(void)
76{
77 uint32_t id;
78 asm("mfc0 %0, $15,0" : "=r"(id));
79 return id;
80}
81
82/* turn the variable name into a string */
83#define CVMX_TMP_STR(x) CVMX_TMP_STR2(x)
84#define CVMX_TMP_STR2(x) #x
85
86/**
87 * Builds a bit mask given the required size in bits.
88 *
89 * @bits: Number of bits in the mask
90 * Returns The mask
91 */ static inline uint64_t cvmx_build_mask(uint64_t bits)
92{
93 return ~((~0x0ull) << bits);
94}
95
96/**
97 * Builds a memory address for I/O based on the Major and Sub DID.
98 *
99 * @major_did: 5 bit major did
100 * @sub_did: 3 bit sub did
101 * Returns I/O base address
102 */
103static inline uint64_t cvmx_build_io_address(uint64_t major_did,
104 uint64_t sub_did)
105{
106 return (0x1ull << 48) | (major_did << 43) | (sub_did << 40);
107}
108
109/**
110 * Perform mask and shift to place the supplied value into
111 * the supplied bit rage.
112 *
113 * Example: cvmx_build_bits(39,24,value)
114 * <pre>
115 * 6 5 4 3 3 2 1
116 * 3 5 7 9 1 3 5 7 0
117 * +-------+-------+-------+-------+-------+-------+-------+------+
118 * 000000000000000000000000___________value000000000000000000000000
119 * </pre>
120 *
121 * @high_bit: Highest bit value can occupy (inclusive) 0-63
122 * @low_bit: Lowest bit value can occupy inclusive 0-high_bit
123 * @value: Value to use
124 * Returns Value masked and shifted
125 */
126static inline uint64_t cvmx_build_bits(uint64_t high_bit,
127 uint64_t low_bit, uint64_t value)
128{
129 return (value & cvmx_build_mask(high_bit - low_bit + 1)) << low_bit;
130}
131
132enum cvmx_mips_space {
133 CVMX_MIPS_SPACE_XKSEG = 3LL,
134 CVMX_MIPS_SPACE_XKPHYS = 2LL,
135 CVMX_MIPS_SPACE_XSSEG = 1LL,
136 CVMX_MIPS_SPACE_XUSEG = 0LL
137};
138
139/* These macros for use when using 32 bit pointers. */
140#define CVMX_MIPS32_SPACE_KSEG0 1l
141#define CVMX_ADD_SEG32(segment, add) \
142 (((int32_t)segment << 31) | (int32_t)(add))
143
144#define CVMX_IO_SEG CVMX_MIPS_SPACE_XKPHYS
145
146/* These macros simplify the process of creating common IO addresses */
147#define CVMX_ADD_SEG(segment, add) \
148 ((((uint64_t)segment) << 62) | (add))
149#ifndef CVMX_ADD_IO_SEG
150#define CVMX_ADD_IO_SEG(add) CVMX_ADD_SEG(CVMX_IO_SEG, (add))
151#endif
152
153/**
154 * Convert a memory pointer (void*) into a hardware compatable
155 * memory address (uint64_t). Octeon hardware widgets don't
156 * understand logical addresses.
157 *
158 * @ptr: C style memory pointer
159 * Returns Hardware physical address
160 */
161static inline uint64_t cvmx_ptr_to_phys(void *ptr)
162{
163 if (sizeof(void *) == 8) {
164 /*
165 * We're running in 64 bit mode. Normally this means
166 * that we can use 40 bits of address space (the
167 * hardware limit). Unfortunately there is one case
168 * were we need to limit this to 30 bits, sign
169 * extended 32 bit. Although these are 64 bits wide,
170 * only 30 bits can be used.
171 */
172 if ((CAST64(ptr) >> 62) == 3)
173 return CAST64(ptr) & cvmx_build_mask(30);
174 else
175 return CAST64(ptr) & cvmx_build_mask(40);
176 } else {
177 return (long)(ptr) & 0x1fffffff;
178 }
179}
180
181/**
182 * Convert a hardware physical address (uint64_t) into a
183 * memory pointer (void *).
184 *
185 * @physical_address:
186 * Hardware physical address to memory
187 * Returns Pointer to memory
188 */
189static inline void *cvmx_phys_to_ptr(uint64_t physical_address)
190{
191 if (sizeof(void *) == 8) {
192 /* Just set the top bit, avoiding any TLB uglyness */
193 return CASTPTR(void,
194 CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
195 physical_address));
196 } else {
197 return CASTPTR(void,
198 CVMX_ADD_SEG32(CVMX_MIPS32_SPACE_KSEG0,
199 physical_address));
200 }
201}
202
203/* The following #if controls the definition of the macro
204 CVMX_BUILD_WRITE64. This macro is used to build a store operation to
205 a full 64bit address. With a 64bit ABI, this can be done with a simple
206 pointer access. 32bit ABIs require more complicated assembly */
207
208/* We have a full 64bit ABI. Writing to a 64bit address can be done with
209 a simple volatile pointer */
210#define CVMX_BUILD_WRITE64(TYPE, ST) \
211static inline void cvmx_write64_##TYPE(uint64_t addr, TYPE##_t val) \
212{ \
213 *CASTPTR(volatile TYPE##_t, addr) = val; \
214}
215
216
217/* The following #if controls the definition of the macro
218 CVMX_BUILD_READ64. This macro is used to build a load operation from
219 a full 64bit address. With a 64bit ABI, this can be done with a simple
220 pointer access. 32bit ABIs require more complicated assembly */
221
222/* We have a full 64bit ABI. Writing to a 64bit address can be done with
223 a simple volatile pointer */
224#define CVMX_BUILD_READ64(TYPE, LT) \
225static inline TYPE##_t cvmx_read64_##TYPE(uint64_t addr) \
226{ \
227 return *CASTPTR(volatile TYPE##_t, addr); \
228}
229
230
231/* The following defines 8 functions for writing to a 64bit address. Each
232 takes two arguments, the address and the value to write.
233 cvmx_write64_int64 cvmx_write64_uint64
234 cvmx_write64_int32 cvmx_write64_uint32
235 cvmx_write64_int16 cvmx_write64_uint16
236 cvmx_write64_int8 cvmx_write64_uint8 */
237CVMX_BUILD_WRITE64(int64, "sd");
238CVMX_BUILD_WRITE64(int32, "sw");
239CVMX_BUILD_WRITE64(int16, "sh");
240CVMX_BUILD_WRITE64(int8, "sb");
241CVMX_BUILD_WRITE64(uint64, "sd");
242CVMX_BUILD_WRITE64(uint32, "sw");
243CVMX_BUILD_WRITE64(uint16, "sh");
244CVMX_BUILD_WRITE64(uint8, "sb");
245#define cvmx_write64 cvmx_write64_uint64
246
247/* The following defines 8 functions for reading from a 64bit address. Each
248 takes the address as the only argument
249 cvmx_read64_int64 cvmx_read64_uint64
250 cvmx_read64_int32 cvmx_read64_uint32
251 cvmx_read64_int16 cvmx_read64_uint16
252 cvmx_read64_int8 cvmx_read64_uint8 */
253CVMX_BUILD_READ64(int64, "ld");
254CVMX_BUILD_READ64(int32, "lw");
255CVMX_BUILD_READ64(int16, "lh");
256CVMX_BUILD_READ64(int8, "lb");
257CVMX_BUILD_READ64(uint64, "ld");
258CVMX_BUILD_READ64(uint32, "lw");
259CVMX_BUILD_READ64(uint16, "lhu");
260CVMX_BUILD_READ64(uint8, "lbu");
261#define cvmx_read64 cvmx_read64_uint64
262
263
264static inline void cvmx_write_csr(uint64_t csr_addr, uint64_t val)
265{
266 cvmx_write64(csr_addr, val);
267
268 /*
269 * Perform an immediate read after every write to an RSL
270 * register to force the write to complete. It doesn't matter
271 * what RSL read we do, so we choose CVMX_MIO_BOOT_BIST_STAT
272 * because it is fast and harmless.
273 */
274 if ((csr_addr >> 40) == (0x800118))
275 cvmx_read64(CVMX_MIO_BOOT_BIST_STAT);
276}
277
278static inline void cvmx_write_io(uint64_t io_addr, uint64_t val)
279{
280 cvmx_write64(io_addr, val);
281
282}
283
284static inline uint64_t cvmx_read_csr(uint64_t csr_addr)
285{
286 uint64_t val = cvmx_read64(csr_addr);
287 return val;
288}
289
290
291static inline void cvmx_send_single(uint64_t data)
292{
293 const uint64_t CVMX_IOBDMA_SENDSINGLE = 0xffffffffffffa200ull;
294 cvmx_write64(CVMX_IOBDMA_SENDSINGLE, data);
295}
296
297static inline void cvmx_read_csr_async(uint64_t scraddr, uint64_t csr_addr)
298{
299 union {
300 uint64_t u64;
301 struct {
302 uint64_t scraddr:8;
303 uint64_t len:8;
304 uint64_t addr:48;
305 } s;
306 } addr;
307 addr.u64 = csr_addr;
308 addr.s.scraddr = scraddr >> 3;
309 addr.s.len = 1;
310 cvmx_send_single(addr.u64);
311}
312
313/* Return true if Octeon is CN38XX pass 1 */
314static inline int cvmx_octeon_is_pass1(void)
315{
316#if OCTEON_IS_COMMON_BINARY()
317 return 0; /* Pass 1 isn't supported for common binaries */
318#else
319/* Now that we know we're built for a specific model, only check CN38XX */
320#if OCTEON_IS_MODEL(OCTEON_CN38XX)
321 return cvmx_get_proc_id() == OCTEON_CN38XX_PASS1;
322#else
323 return 0; /* Built for non CN38XX chip, we're not CN38XX pass1 */
324#endif
325#endif
326}
327
328static inline unsigned int cvmx_get_core_num(void)
329{
330 unsigned int core_num;
331 CVMX_RDHWRNV(core_num, 0);
332 return core_num;
333}
334
335/**
336 * Returns the number of bits set in the provided value.
337 * Simple wrapper for POP instruction.
338 *
339 * @val: 32 bit value to count set bits in
340 *
341 * Returns Number of bits set
342 */
343static inline uint32_t cvmx_pop(uint32_t val)
344{
345 uint32_t pop;
346 CVMX_POP(pop, val);
347 return pop;
348}
349
350/**
351 * Returns the number of bits set in the provided value.
352 * Simple wrapper for DPOP instruction.
353 *
354 * @val: 64 bit value to count set bits in
355 *
356 * Returns Number of bits set
357 */
358static inline int cvmx_dpop(uint64_t val)
359{
360 int pop;
361 CVMX_DPOP(pop, val);
362 return pop;
363}
364
365/**
366 * Provide current cycle counter as a return value
367 *
368 * Returns current cycle counter
369 */
370
371static inline uint64_t cvmx_get_cycle(void)
372{
373 uint64_t cycle;
374 CVMX_RDHWR(cycle, 31);
375 return cycle;
376}
377
378/**
379 * Reads a chip global cycle counter. This counts CPU cycles since
380 * chip reset. The counter is 64 bit.
381 * This register does not exist on CN38XX pass 1 silicion
382 *
383 * Returns Global chip cycle count since chip reset.
384 */
385static inline uint64_t cvmx_get_cycle_global(void)
386{
387 if (cvmx_octeon_is_pass1())
388 return 0;
389 else
390 return cvmx_read64(CVMX_IPD_CLK_COUNT);
391}
392
393/**
394 * This macro spins on a field waiting for it to reach a value. It
395 * is common in code to need to wait for a specific field in a CSR
396 * to match a specific value. Conceptually this macro expands to:
397 *
398 * 1) read csr at "address" with a csr typedef of "type"
399 * 2) Check if ("type".s."field" "op" "value")
400 * 3) If #2 isn't true loop to #1 unless too much time has passed.
401 */
402#define CVMX_WAIT_FOR_FIELD64(address, type, field, op, value, timeout_usec)\
403 ( \
404{ \
405 int result; \
406 do { \
407 uint64_t done = cvmx_get_cycle() + (uint64_t)timeout_usec * \
408 cvmx_sysinfo_get()->cpu_clock_hz / 1000000; \
409 type c; \
410 while (1) { \
411 c.u64 = cvmx_read_csr(address); \
412 if ((c.s.field) op(value)) { \
413 result = 0; \
414 break; \
415 } else if (cvmx_get_cycle() > done) { \
416 result = -1; \
417 break; \
418 } else \
419 cvmx_wait(100); \
420 } \
421 } while (0); \
422 result; \
423})
424
425/***************************************************************************/
426
427static inline void cvmx_reset_octeon(void)
428{
429 union cvmx_ciu_soft_rst ciu_soft_rst;
430 ciu_soft_rst.u64 = 0;
431 ciu_soft_rst.s.soft_rst = 1;
432 cvmx_write_csr(CVMX_CIU_SOFT_RST, ciu_soft_rst.u64);
433}
434
435/* Return the number of cores available in the chip */
436static inline uint32_t cvmx_octeon_num_cores(void)
437{
438 uint32_t ciu_fuse = (uint32_t) cvmx_read_csr(CVMX_CIU_FUSE) & 0xffff;
439 return cvmx_pop(ciu_fuse);
440}
441
442/**
443 * Read a byte of fuse data
444 * @byte_addr: address to read
445 *
446 * Returns fuse value: 0 or 1
447 */
448static uint8_t cvmx_fuse_read_byte(int byte_addr)
449{
450 union cvmx_mio_fus_rcmd read_cmd;
451
452 read_cmd.u64 = 0;
453 read_cmd.s.addr = byte_addr;
454 read_cmd.s.pend = 1;
455 cvmx_write_csr(CVMX_MIO_FUS_RCMD, read_cmd.u64);
456 while ((read_cmd.u64 = cvmx_read_csr(CVMX_MIO_FUS_RCMD))
457 && read_cmd.s.pend)
458 ;
459 return read_cmd.s.dat;
460}
461
462/**
463 * Read a single fuse bit
464 *
465 * @fuse: Fuse number (0-1024)
466 *
467 * Returns fuse value: 0 or 1
468 */
469static inline int cvmx_fuse_read(int fuse)
470{
471 return (cvmx_fuse_read_byte(fuse >> 3) >> (fuse & 0x7)) & 1;
472}
473
474static inline int cvmx_octeon_model_CN36XX(void)
475{
476 return OCTEON_IS_MODEL(OCTEON_CN38XX)
477 && !cvmx_octeon_is_pass1()
478 && cvmx_fuse_read(264);
479}
480
481static inline int cvmx_octeon_zip_present(void)
482{
483 return octeon_has_feature(OCTEON_FEATURE_ZIP);
484}
485
486static inline int cvmx_octeon_dfa_present(void)
487{
488 if (!OCTEON_IS_MODEL(OCTEON_CN38XX)
489 && !OCTEON_IS_MODEL(OCTEON_CN31XX)
490 && !OCTEON_IS_MODEL(OCTEON_CN58XX))
491 return 0;
492 else if (OCTEON_IS_MODEL(OCTEON_CN3020))
493 return 0;
494 else if (cvmx_octeon_is_pass1())
495 return 1;
496 else
497 return !cvmx_fuse_read(120);
498}
499
500static inline int cvmx_octeon_crypto_present(void)
501{
502 return octeon_has_feature(OCTEON_FEATURE_CRYPTO);
503}
504
505#endif /* __CVMX_H__ */
diff --git a/arch/mips/include/asm/octeon/octeon-feature.h b/arch/mips/include/asm/octeon/octeon-feature.h
new file mode 100644
index 000000000000..04fac684069c
--- /dev/null
+++ b/arch/mips/include/asm/octeon/octeon-feature.h
@@ -0,0 +1,119 @@
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/*
29 * File defining checks for different Octeon features.
30 */
31
32#ifndef __OCTEON_FEATURE_H__
33#define __OCTEON_FEATURE_H__
34
35enum octeon_feature {
36 /*
37 * Octeon models in the CN5XXX family and higher support
38 * atomic add instructions to memory (saa/saad).
39 */
40 OCTEON_FEATURE_SAAD,
41 /* Does this Octeon support the ZIP offload engine? */
42 OCTEON_FEATURE_ZIP,
43 /* Does this Octeon support crypto acceleration using COP2? */
44 OCTEON_FEATURE_CRYPTO,
45 /* Does this Octeon support PCI express? */
46 OCTEON_FEATURE_PCIE,
47 /* Some Octeon models support internal memory for storing
48 * cryptographic keys */
49 OCTEON_FEATURE_KEY_MEMORY,
50 /* Octeon has a LED controller for banks of external LEDs */
51 OCTEON_FEATURE_LED_CONTROLLER,
52 /* Octeon has a trace buffer */
53 OCTEON_FEATURE_TRA,
54 /* Octeon has a management port */
55 OCTEON_FEATURE_MGMT_PORT,
56 /* Octeon has a raid unit */
57 OCTEON_FEATURE_RAID,
58 /* Octeon has a builtin USB */
59 OCTEON_FEATURE_USB,
60};
61
62static inline int cvmx_fuse_read(int fuse);
63
64/**
65 * Determine if the current Octeon supports a specific feature. These
66 * checks have been optimized to be fairly quick, but they should still
67 * be kept out of fast path code.
68 *
69 * @feature: Feature to check for. This should always be a constant so the
70 * compiler can remove the switch statement through optimization.
71 *
72 * Returns Non zero if the feature exists. Zero if the feature does not
73 * exist.
74 */
75static inline int octeon_has_feature(enum octeon_feature feature)
76{
77 switch (feature) {
78 case OCTEON_FEATURE_SAAD:
79 return !OCTEON_IS_MODEL(OCTEON_CN3XXX);
80
81 case OCTEON_FEATURE_ZIP:
82 if (OCTEON_IS_MODEL(OCTEON_CN30XX)
83 || OCTEON_IS_MODEL(OCTEON_CN50XX)
84 || OCTEON_IS_MODEL(OCTEON_CN52XX))
85 return 0;
86 else if (OCTEON_IS_MODEL(OCTEON_CN38XX_PASS1))
87 return 1;
88 else
89 return !cvmx_fuse_read(121);
90
91 case OCTEON_FEATURE_CRYPTO:
92 return !cvmx_fuse_read(90);
93
94 case OCTEON_FEATURE_PCIE:
95 return OCTEON_IS_MODEL(OCTEON_CN56XX)
96 || OCTEON_IS_MODEL(OCTEON_CN52XX);
97
98 case OCTEON_FEATURE_KEY_MEMORY:
99 case OCTEON_FEATURE_LED_CONTROLLER:
100 return OCTEON_IS_MODEL(OCTEON_CN38XX)
101 || OCTEON_IS_MODEL(OCTEON_CN58XX)
102 || OCTEON_IS_MODEL(OCTEON_CN56XX);
103 case OCTEON_FEATURE_TRA:
104 return !(OCTEON_IS_MODEL(OCTEON_CN30XX)
105 || OCTEON_IS_MODEL(OCTEON_CN50XX));
106 case OCTEON_FEATURE_MGMT_PORT:
107 return OCTEON_IS_MODEL(OCTEON_CN56XX)
108 || OCTEON_IS_MODEL(OCTEON_CN52XX);
109 case OCTEON_FEATURE_RAID:
110 return OCTEON_IS_MODEL(OCTEON_CN56XX)
111 || OCTEON_IS_MODEL(OCTEON_CN52XX);
112 case OCTEON_FEATURE_USB:
113 return !(OCTEON_IS_MODEL(OCTEON_CN38XX)
114 || OCTEON_IS_MODEL(OCTEON_CN58XX));
115 }
116 return 0;
117}
118
119#endif /* __OCTEON_FEATURE_H__ */
diff --git a/arch/mips/include/asm/octeon/octeon-model.h b/arch/mips/include/asm/octeon/octeon-model.h
new file mode 100644
index 000000000000..cf50336eca2e
--- /dev/null
+++ b/arch/mips/include/asm/octeon/octeon-model.h
@@ -0,0 +1,321 @@
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/*
29 *
30 * File defining different Octeon model IDs and macros to
31 * compare them.
32 *
33 */
34
35#ifndef __OCTEON_MODEL_H__
36#define __OCTEON_MODEL_H__
37
38/* NOTE: These must match what is checked in common-config.mk */
39/* Defines to represent the different versions of Octeon. */
40
41/*
42 * IMPORTANT: When the default pass is updated for an Octeon Model,
43 * the corresponding change must also be made in the oct-sim script.
44 */
45
46/*
47 * The defines below should be used with the OCTEON_IS_MODEL() macro
48 * to determine what model of chip the software is running on. Models
49 * ending in 'XX' match multiple models (families), while specific
50 * models match only that model. If a pass (revision) is specified,
51 * then only that revision will be matched. Care should be taken when
52 * checking for both specific models and families that the specific
53 * models are checked for first. While these defines are similar to
54 * the processor ID, they are not intended to be used by anything
55 * other that the OCTEON_IS_MODEL framework, and the values are
56 * subject to change at anytime without notice.
57 *
58 * NOTE: only the OCTEON_IS_MODEL() macro/function and the OCTEON_CN*
59 * macros should be used outside of this file. All other macros are
60 * for internal use only, and may change without notice.
61 */
62
63/* Flag bits in top byte */
64/* Ignores revision in model checks */
65#define OM_IGNORE_REVISION 0x01000000
66/* Check submodels */
67#define OM_CHECK_SUBMODEL 0x02000000
68/* Match all models previous than the one specified */
69#define OM_MATCH_PREVIOUS_MODELS 0x04000000
70/* Ignores the minor revison on newer parts */
71#define OM_IGNORE_MINOR_REVISION 0x08000000
72#define OM_FLAG_MASK 0xff000000
73
74/*
75 * CN5XXX models with new revision encoding
76 */
77#define OCTEON_CN58XX_PASS1_0 0x000d0300
78#define OCTEON_CN58XX_PASS1_1 0x000d0301
79#define OCTEON_CN58XX_PASS1_2 0x000d0303
80#define OCTEON_CN58XX_PASS2_0 0x000d0308
81#define OCTEON_CN58XX_PASS2_1 0x000d0309
82#define OCTEON_CN58XX_PASS2_2 0x000d030a
83#define OCTEON_CN58XX_PASS2_3 0x000d030b
84
85#define OCTEON_CN58XX (OCTEON_CN58XX_PASS1_0 | OM_IGNORE_REVISION)
86#define OCTEON_CN58XX_PASS1_X (OCTEON_CN58XX_PASS1_0 \
87 | OM_IGNORE_MINOR_REVISION)
88#define OCTEON_CN58XX_PASS2_X (OCTEON_CN58XX_PASS2_0 \
89 | OM_IGNORE_MINOR_REVISION)
90#define OCTEON_CN58XX_PASS1 OCTEON_CN58XX_PASS1_X
91#define OCTEON_CN58XX_PASS2 OCTEON_CN58XX_PASS2_X
92
93#define OCTEON_CN56XX_PASS1_0 0x000d0400
94#define OCTEON_CN56XX_PASS1_1 0x000d0401
95#define OCTEON_CN56XX_PASS2_0 0x000d0408
96#define OCTEON_CN56XX_PASS2_1 0x000d0409
97
98#define OCTEON_CN56XX (OCTEON_CN56XX_PASS2_0 | OM_IGNORE_REVISION)
99#define OCTEON_CN56XX_PASS1_X (OCTEON_CN56XX_PASS1_0 \
100 | OM_IGNORE_MINOR_REVISION)
101#define OCTEON_CN56XX_PASS2_X (OCTEON_CN56XX_PASS2_0 \
102 | OM_IGNORE_MINOR_REVISION)
103#define OCTEON_CN56XX_PASS1 OCTEON_CN56XX_PASS1_X
104#define OCTEON_CN56XX_PASS2 OCTEON_CN56XX_PASS2_X
105
106#define OCTEON_CN57XX OCTEON_CN56XX
107#define OCTEON_CN57XX_PASS1 OCTEON_CN56XX_PASS1
108#define OCTEON_CN57XX_PASS2 OCTEON_CN56XX_PASS2
109
110#define OCTEON_CN55XX OCTEON_CN56XX
111#define OCTEON_CN55XX_PASS1 OCTEON_CN56XX_PASS1
112#define OCTEON_CN55XX_PASS2 OCTEON_CN56XX_PASS2
113
114#define OCTEON_CN54XX OCTEON_CN56XX
115#define OCTEON_CN54XX_PASS1 OCTEON_CN56XX_PASS1
116#define OCTEON_CN54XX_PASS2 OCTEON_CN56XX_PASS2
117
118#define OCTEON_CN50XX_PASS1_0 0x000d0600
119
120#define OCTEON_CN50XX (OCTEON_CN50XX_PASS1_0 | OM_IGNORE_REVISION)
121#define OCTEON_CN50XX_PASS1_X (OCTEON_CN50XX_PASS1_0 \
122 | OM_IGNORE_MINOR_REVISION)
123#define OCTEON_CN50XX_PASS1 OCTEON_CN50XX_PASS1_X
124
125/*
126 * NOTE: Octeon CN5000F model is not identifiable using the
127 * OCTEON_IS_MODEL() functions, but are treated as CN50XX.
128 */
129
130#define OCTEON_CN52XX_PASS1_0 0x000d0700
131#define OCTEON_CN52XX_PASS2_0 0x000d0708
132
133#define OCTEON_CN52XX (OCTEON_CN52XX_PASS2_0 | OM_IGNORE_REVISION)
134#define OCTEON_CN52XX_PASS1_X (OCTEON_CN52XX_PASS1_0 \
135 | OM_IGNORE_MINOR_REVISION)
136#define OCTEON_CN52XX_PASS2_X (OCTEON_CN52XX_PASS2_0 \
137 | OM_IGNORE_MINOR_REVISION)
138#define OCTEON_CN52XX_PASS1 OCTEON_CN52XX_PASS1_X
139#define OCTEON_CN52XX_PASS2 OCTEON_CN52XX_PASS2_X
140
141/*
142 * CN3XXX models with old revision enconding
143 */
144#define OCTEON_CN38XX_PASS1 0x000d0000
145#define OCTEON_CN38XX_PASS2 0x000d0001
146#define OCTEON_CN38XX_PASS3 0x000d0003
147#define OCTEON_CN38XX (OCTEON_CN38XX_PASS3 | OM_IGNORE_REVISION)
148
149#define OCTEON_CN36XX OCTEON_CN38XX
150#define OCTEON_CN36XX_PASS2 OCTEON_CN38XX_PASS2
151#define OCTEON_CN36XX_PASS3 OCTEON_CN38XX_PASS3
152
153/* The OCTEON_CN31XX matches CN31XX models and the CN3020 */
154#define OCTEON_CN31XX_PASS1 0x000d0100
155#define OCTEON_CN31XX_PASS1_1 0x000d0102
156#define OCTEON_CN31XX (OCTEON_CN31XX_PASS1 | OM_IGNORE_REVISION)
157
158/*
159 * This model is only used for internal checks, it is not a valid
160 * model for the OCTEON_MODEL environment variable. This matches the
161 * CN3010 and CN3005 but NOT the CN3020.
162 */
163#define OCTEON_CN30XX_PASS1 0x000d0200
164#define OCTEON_CN30XX_PASS1_1 0x000d0202
165#define OCTEON_CN30XX (OCTEON_CN30XX_PASS1 | OM_IGNORE_REVISION)
166
167#define OCTEON_CN3005_PASS1 (0x000d0210 | OM_CHECK_SUBMODEL)
168#define OCTEON_CN3005_PASS1_0 (0x000d0210 | OM_CHECK_SUBMODEL)
169#define OCTEON_CN3005_PASS1_1 (0x000d0212 | OM_CHECK_SUBMODEL)
170#define OCTEON_CN3005 (OCTEON_CN3005_PASS1 | OM_IGNORE_REVISION \
171 | OM_CHECK_SUBMODEL)
172
173#define OCTEON_CN3010_PASS1 (0x000d0200 | OM_CHECK_SUBMODEL)
174#define OCTEON_CN3010_PASS1_0 (0x000d0200 | OM_CHECK_SUBMODEL)
175#define OCTEON_CN3010_PASS1_1 (0x000d0202 | OM_CHECK_SUBMODEL)
176#define OCTEON_CN3010 (OCTEON_CN3010_PASS1 | OM_IGNORE_REVISION \
177 | OM_CHECK_SUBMODEL)
178
179#define OCTEON_CN3020_PASS1 (0x000d0110 | OM_CHECK_SUBMODEL)
180#define OCTEON_CN3020_PASS1_0 (0x000d0110 | OM_CHECK_SUBMODEL)
181#define OCTEON_CN3020_PASS1_1 (0x000d0112 | OM_CHECK_SUBMODEL)
182#define OCTEON_CN3020 (OCTEON_CN3020_PASS1 | OM_IGNORE_REVISION \
183 | OM_CHECK_SUBMODEL)
184
185
186
187/* This matches the complete family of CN3xxx CPUs, and not subsequent models */
188#define OCTEON_CN3XXX (OCTEON_CN58XX_PASS1_0 \
189 | OM_MATCH_PREVIOUS_MODELS \
190 | OM_IGNORE_REVISION)
191
192/* The revision byte (low byte) has two different encodings.
193 * CN3XXX:
194 *
195 * bits
196 * <7:5>: reserved (0)
197 * <4>: alternate package
198 * <3:0>: revision
199 *
200 * CN5XXX:
201 *
202 * bits
203 * <7>: reserved (0)
204 * <6>: alternate package
205 * <5:3>: major revision
206 * <2:0>: minor revision
207 *
208 */
209
210/* Masks used for the various types of model/family/revision matching */
211#define OCTEON_38XX_FAMILY_MASK 0x00ffff00
212#define OCTEON_38XX_FAMILY_REV_MASK 0x00ffff0f
213#define OCTEON_38XX_MODEL_MASK 0x00ffff10
214#define OCTEON_38XX_MODEL_REV_MASK (OCTEON_38XX_FAMILY_REV_MASK \
215 | OCTEON_38XX_MODEL_MASK)
216
217/* CN5XXX and later use different layout of bits in the revision ID field */
218#define OCTEON_58XX_FAMILY_MASK OCTEON_38XX_FAMILY_MASK
219#define OCTEON_58XX_FAMILY_REV_MASK 0x00ffff3f
220#define OCTEON_58XX_MODEL_MASK 0x00ffffc0
221#define OCTEON_58XX_MODEL_REV_MASK (OCTEON_58XX_FAMILY_REV_MASK \
222 | OCTEON_58XX_MODEL_MASK)
223#define OCTEON_58XX_MODEL_MINOR_REV_MASK (OCTEON_58XX_MODEL_REV_MASK \
224 & 0x00fffff8)
225
226#define __OCTEON_MATCH_MASK__(x, y, z) (((x) & (z)) == ((y) & (z)))
227
228/* NOTE: This is for internal (to this file) use only. */
229static inline int __OCTEON_IS_MODEL_COMPILE__(uint32_t arg_model,
230 uint32_t chip_model)
231{
232 uint32_t rev_and_sub = OM_IGNORE_REVISION | OM_CHECK_SUBMODEL;
233
234 if ((arg_model & OCTEON_38XX_FAMILY_MASK) < OCTEON_CN58XX_PASS1_0) {
235 if (((arg_model & OM_FLAG_MASK) == rev_and_sub) &&
236 __OCTEON_MATCH_MASK__(chip_model, arg_model,
237 OCTEON_38XX_MODEL_MASK))
238 return 1;
239 if (((arg_model & OM_FLAG_MASK) == 0) &&
240 __OCTEON_MATCH_MASK__(chip_model, arg_model,
241 OCTEON_38XX_FAMILY_REV_MASK))
242 return 1;
243 if (((arg_model & OM_FLAG_MASK) == OM_IGNORE_REVISION) &&
244 __OCTEON_MATCH_MASK__(chip_model, arg_model,
245 OCTEON_38XX_FAMILY_MASK))
246 return 1;
247 if (((arg_model & OM_FLAG_MASK) == OM_CHECK_SUBMODEL) &&
248 __OCTEON_MATCH_MASK__((chip_model), (arg_model),
249 OCTEON_38XX_MODEL_REV_MASK))
250 return 1;
251 if ((arg_model & OM_MATCH_PREVIOUS_MODELS) &&
252 ((chip_model & OCTEON_38XX_MODEL_MASK) <
253 (arg_model & OCTEON_38XX_MODEL_MASK)))
254 return 1;
255 } else {
256 if (((arg_model & OM_FLAG_MASK) == rev_and_sub) &&
257 __OCTEON_MATCH_MASK__((chip_model), (arg_model),
258 OCTEON_58XX_MODEL_MASK))
259 return 1;
260 if (((arg_model & OM_FLAG_MASK) == 0) &&
261 __OCTEON_MATCH_MASK__((chip_model), (arg_model),
262 OCTEON_58XX_FAMILY_REV_MASK))
263 return 1;
264 if (((arg_model & OM_FLAG_MASK) == OM_IGNORE_MINOR_REVISION) &&
265 __OCTEON_MATCH_MASK__((chip_model), (arg_model),
266 OCTEON_58XX_MODEL_MINOR_REV_MASK))
267 return 1;
268 if (((arg_model & OM_FLAG_MASK) == OM_IGNORE_REVISION) &&
269 __OCTEON_MATCH_MASK__((chip_model), (arg_model),
270 OCTEON_58XX_FAMILY_MASK))
271 return 1;
272 if (((arg_model & OM_FLAG_MASK) == OM_CHECK_SUBMODEL) &&
273 __OCTEON_MATCH_MASK__((chip_model), (arg_model),
274 OCTEON_58XX_MODEL_REV_MASK))
275 return 1;
276 if ((arg_model & OM_MATCH_PREVIOUS_MODELS) &&
277 ((chip_model & OCTEON_58XX_MODEL_MASK) <
278 (arg_model & OCTEON_58XX_MODEL_MASK)))
279 return 1;
280 }
281 return 0;
282}
283
284/* forward declarations */
285static inline uint32_t cvmx_get_proc_id(void) __attribute__ ((pure));
286static inline uint64_t cvmx_read_csr(uint64_t csr_addr);
287
288/* NOTE: This for internal use only!!!!! */
289static inline int __octeon_is_model_runtime__(uint32_t model)
290{
291 uint32_t cpuid = cvmx_get_proc_id();
292
293 /*
294 * Check for special case of mismarked 3005 samples. We only
295 * need to check if the sub model isn't being ignored.
296 */
297 if ((model & OM_CHECK_SUBMODEL) == OM_CHECK_SUBMODEL) {
298 if (cpuid == OCTEON_CN3010_PASS1 \
299 && (cvmx_read_csr(0x80011800800007B8ull) & (1ull << 34)))
300 cpuid |= 0x10;
301 }
302 return __OCTEON_IS_MODEL_COMPILE__(model, cpuid);
303}
304
305/*
306 * The OCTEON_IS_MODEL macro should be used for all Octeon model
307 * checking done in a program. This should be kept runtime if at all
308 * possible. Any compile time (#if OCTEON_IS_MODEL) usage must be
309 * condtionalized with OCTEON_IS_COMMON_BINARY() if runtime checking
310 * support is required.
311 */
312#define OCTEON_IS_MODEL(x) __octeon_is_model_runtime__(x)
313#define OCTEON_IS_COMMON_BINARY() 1
314#undef OCTEON_MODEL
315
316const char *octeon_model_get_string(uint32_t chip_id);
317const char *octeon_model_get_string_buffer(uint32_t chip_id, char *buffer);
318
319#include "octeon-feature.h"
320
321#endif /* __OCTEON_MODEL_H__ */
diff --git a/arch/mips/include/asm/octeon/octeon.h b/arch/mips/include/asm/octeon/octeon.h
new file mode 100644
index 000000000000..edc676084cda
--- /dev/null
+++ b/arch/mips/include/asm/octeon/octeon.h
@@ -0,0 +1,248 @@
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-2008 Cavium Networks
7 */
8#ifndef __ASM_OCTEON_OCTEON_H
9#define __ASM_OCTEON_OCTEON_H
10
11#include "cvmx.h"
12
13extern uint64_t octeon_bootmem_alloc_range_phys(uint64_t size,
14 uint64_t alignment,
15 uint64_t min_addr,
16 uint64_t max_addr,
17 int do_locking);
18extern void *octeon_bootmem_alloc(uint64_t size, uint64_t alignment,
19 int do_locking);
20extern void *octeon_bootmem_alloc_range(uint64_t size, uint64_t alignment,
21 uint64_t min_addr, uint64_t max_addr,
22 int do_locking);
23extern void *octeon_bootmem_alloc_named(uint64_t size, uint64_t alignment,
24 char *name);
25extern void *octeon_bootmem_alloc_named_range(uint64_t size, uint64_t min_addr,
26 uint64_t max_addr, uint64_t align,
27 char *name);
28extern void *octeon_bootmem_alloc_named_address(uint64_t size, uint64_t address,
29 char *name);
30extern int octeon_bootmem_free_named(char *name);
31extern void octeon_bootmem_lock(void);
32extern void octeon_bootmem_unlock(void);
33
34extern int octeon_is_simulation(void);
35extern int octeon_is_pci_host(void);
36extern int octeon_usb_is_ref_clk(void);
37extern uint64_t octeon_get_clock_rate(void);
38extern const char *octeon_board_type_string(void);
39extern const char *octeon_get_pci_interrupts(void);
40extern int octeon_get_southbridge_interrupt(void);
41extern int octeon_get_boot_coremask(void);
42extern int octeon_get_boot_num_arguments(void);
43extern const char *octeon_get_boot_argument(int arg);
44extern void octeon_hal_setup_reserved32(void);
45extern void octeon_user_io_init(void);
46struct octeon_cop2_state;
47extern unsigned long octeon_crypto_enable(struct octeon_cop2_state *state);
48extern void octeon_crypto_disable(struct octeon_cop2_state *state,
49 unsigned long flags);
50
51extern void octeon_init_cvmcount(void);
52
53#define OCTEON_ARGV_MAX_ARGS 64
54#define OCTOEN_SERIAL_LEN 20
55
56struct octeon_boot_descriptor {
57 /* Start of block referenced by assembly code - do not change! */
58 uint32_t desc_version;
59 uint32_t desc_size;
60 uint64_t stack_top;
61 uint64_t heap_base;
62 uint64_t heap_end;
63 /* Only used by bootloader */
64 uint64_t entry_point;
65 uint64_t desc_vaddr;
66 /* End of This block referenced by assembly code - do not change! */
67 uint32_t exception_base_addr;
68 uint32_t stack_size;
69 uint32_t heap_size;
70 /* Argc count for application. */
71 uint32_t argc;
72 uint32_t argv[OCTEON_ARGV_MAX_ARGS];
73
74#define BOOT_FLAG_INIT_CORE (1 << 0)
75#define OCTEON_BL_FLAG_DEBUG (1 << 1)
76#define OCTEON_BL_FLAG_NO_MAGIC (1 << 2)
77 /* If set, use uart1 for console */
78#define OCTEON_BL_FLAG_CONSOLE_UART1 (1 << 3)
79 /* If set, use PCI console */
80#define OCTEON_BL_FLAG_CONSOLE_PCI (1 << 4)
81 /* Call exit on break on serial port */
82#define OCTEON_BL_FLAG_BREAK (1 << 5)
83
84 uint32_t flags;
85 uint32_t core_mask;
86 /* DRAM size in megabyes. */
87 uint32_t dram_size;
88 /* physical address of free memory descriptor block. */
89 uint32_t phy_mem_desc_addr;
90 /* used to pass flags from app to debugger. */
91 uint32_t debugger_flags_base_addr;
92 /* CPU clock speed, in hz. */
93 uint32_t eclock_hz;
94 /* DRAM clock speed, in hz. */
95 uint32_t dclock_hz;
96 /* SPI4 clock in hz. */
97 uint32_t spi_clock_hz;
98 uint16_t board_type;
99 uint8_t board_rev_major;
100 uint8_t board_rev_minor;
101 uint16_t chip_type;
102 uint8_t chip_rev_major;
103 uint8_t chip_rev_minor;
104 char board_serial_number[OCTOEN_SERIAL_LEN];
105 uint8_t mac_addr_base[6];
106 uint8_t mac_addr_count;
107 uint64_t cvmx_desc_vaddr;
108};
109
110union octeon_cvmemctl {
111 uint64_t u64;
112 struct {
113 /* RO 1 = BIST fail, 0 = BIST pass */
114 uint64_t tlbbist:1;
115 /* RO 1 = BIST fail, 0 = BIST pass */
116 uint64_t l1cbist:1;
117 /* RO 1 = BIST fail, 0 = BIST pass */
118 uint64_t l1dbist:1;
119 /* RO 1 = BIST fail, 0 = BIST pass */
120 uint64_t dcmbist:1;
121 /* RO 1 = BIST fail, 0 = BIST pass */
122 uint64_t ptgbist:1;
123 /* RO 1 = BIST fail, 0 = BIST pass */
124 uint64_t wbfbist:1;
125 /* Reserved */
126 uint64_t reserved:22;
127 /* R/W If set, marked write-buffer entries time out
128 * the same as as other entries; if clear, marked
129 * write-buffer entries use the maximum timeout. */
130 uint64_t dismarkwblongto:1;
131 /* R/W If set, a merged store does not clear the
132 * write-buffer entry timeout state. */
133 uint64_t dismrgclrwbto:1;
134 /* R/W Two bits that are the MSBs of the resultant
135 * CVMSEG LM word location for an IOBDMA. The other 8
136 * bits come from the SCRADDR field of the IOBDMA. */
137 uint64_t iobdmascrmsb:2;
138 /* R/W If set, SYNCWS and SYNCS only order marked
139 * stores; if clear, SYNCWS and SYNCS only order
140 * unmarked stores. SYNCWSMARKED has no effect when
141 * DISSYNCWS is set. */
142 uint64_t syncwsmarked:1;
143 /* R/W If set, SYNCWS acts as SYNCW and SYNCS acts as
144 * SYNC. */
145 uint64_t dissyncws:1;
146 /* R/W If set, no stall happens on write buffer
147 * full. */
148 uint64_t diswbfst:1;
149 /* R/W If set (and SX set), supervisor-level
150 * loads/stores can use XKPHYS addresses with
151 * VA<48>==0 */
152 uint64_t xkmemenas:1;
153 /* R/W If set (and UX set), user-level loads/stores
154 * can use XKPHYS addresses with VA<48>==0 */
155 uint64_t xkmemenau:1;
156 /* R/W If set (and SX set), supervisor-level
157 * loads/stores can use XKPHYS addresses with
158 * VA<48>==1 */
159 uint64_t xkioenas:1;
160 /* R/W If set (and UX set), user-level loads/stores
161 * can use XKPHYS addresses with VA<48>==1 */
162 uint64_t xkioenau:1;
163 /* R/W If set, all stores act as SYNCW (NOMERGE must
164 * be set when this is set) RW, reset to 0. */
165 uint64_t allsyncw:1;
166 /* R/W If set, no stores merge, and all stores reach
167 * the coherent bus in order. */
168 uint64_t nomerge:1;
169 /* R/W Selects the bit in the counter used for DID
170 * time-outs 0 = 231, 1 = 230, 2 = 229, 3 =
171 * 214. Actual time-out is between 1x and 2x this
172 * interval. For example, with DIDTTO=3, expiration
173 * interval is between 16K and 32K. */
174 uint64_t didtto:2;
175 /* R/W If set, the (mem) CSR clock never turns off. */
176 uint64_t csrckalwys:1;
177 /* R/W If set, mclk never turns off. */
178 uint64_t mclkalwys:1;
179 /* R/W Selects the bit in the counter used for write
180 * buffer flush time-outs (WBFLT+11) is the bit
181 * position in an internal counter used to determine
182 * expiration. The write buffer expires between 1x and
183 * 2x this interval. For example, with WBFLT = 0, a
184 * write buffer expires between 2K and 4K cycles after
185 * the write buffer entry is allocated. */
186 uint64_t wbfltime:3;
187 /* R/W If set, do not put Istream in the L2 cache. */
188 uint64_t istrnol2:1;
189 /* R/W The write buffer threshold. */
190 uint64_t wbthresh:4;
191 /* Reserved */
192 uint64_t reserved2:2;
193 /* R/W If set, CVMSEG is available for loads/stores in
194 * kernel/debug mode. */
195 uint64_t cvmsegenak:1;
196 /* R/W If set, CVMSEG is available for loads/stores in
197 * supervisor mode. */
198 uint64_t cvmsegenas:1;
199 /* R/W If set, CVMSEG is available for loads/stores in
200 * user mode. */
201 uint64_t cvmsegenau:1;
202 /* R/W Size of local memory in cache blocks, 54 (6912
203 * bytes) is max legal value. */
204 uint64_t lmemsz:6;
205 } s;
206};
207
208struct octeon_cf_data {
209 unsigned long base_region_bias;
210 unsigned int base_region; /* The chip select region used by CF */
211 int is16bit; /* 0 - 8bit, !0 - 16bit */
212 int dma_engine; /* -1 for no DMA */
213};
214
215extern void octeon_write_lcd(const char *s);
216extern void octeon_check_cpu_bist(void);
217extern int octeon_get_boot_debug_flag(void);
218extern int octeon_get_boot_uart(void);
219
220struct uart_port;
221extern unsigned int octeon_serial_in(struct uart_port *, int);
222extern void octeon_serial_out(struct uart_port *, int, int);
223
224/**
225 * Write a 32bit value to the Octeon NPI register space
226 *
227 * @address: Address to write to
228 * @val: Value to write
229 */
230static inline void octeon_npi_write32(uint64_t address, uint32_t val)
231{
232 cvmx_write64_uint32(address ^ 4, val);
233 cvmx_read64_uint32(address ^ 4);
234}
235
236
237/**
238 * Read a 32bit value from the Octeon NPI register space
239 *
240 * @address: Address to read
241 * Returns The result
242 */
243static inline uint32_t octeon_npi_read32(uint64_t address)
244{
245 return cvmx_read64_uint32(address ^ 4);
246}
247
248#endif /* __ASM_OCTEON_OCTEON_H */
diff --git a/arch/mips/include/asm/processor.h b/arch/mips/include/asm/processor.h
index 18ee58e39445..0f926aa0cb47 100644
--- a/arch/mips/include/asm/processor.h
+++ b/arch/mips/include/asm/processor.h
@@ -118,6 +118,60 @@ union mips_watch_reg_state {
118 struct mips3264_watch_reg_state mips3264; 118 struct mips3264_watch_reg_state mips3264;
119}; 119};
120 120
121#ifdef CONFIG_CPU_CAVIUM_OCTEON
122
123struct octeon_cop2_state {
124 /* DMFC2 rt, 0x0201 */
125 unsigned long cop2_crc_iv;
126 /* DMFC2 rt, 0x0202 (Set with DMTC2 rt, 0x1202) */
127 unsigned long cop2_crc_length;
128 /* DMFC2 rt, 0x0200 (set with DMTC2 rt, 0x4200) */
129 unsigned long cop2_crc_poly;
130 /* DMFC2 rt, 0x0402; DMFC2 rt, 0x040A */
131 unsigned long cop2_llm_dat[2];
132 /* DMFC2 rt, 0x0084 */
133 unsigned long cop2_3des_iv;
134 /* DMFC2 rt, 0x0080; DMFC2 rt, 0x0081; DMFC2 rt, 0x0082 */
135 unsigned long cop2_3des_key[3];
136 /* DMFC2 rt, 0x0088 (Set with DMTC2 rt, 0x0098) */
137 unsigned long cop2_3des_result;
138 /* DMFC2 rt, 0x0111 (FIXME: Read Pass1 Errata) */
139 unsigned long cop2_aes_inp0;
140 /* DMFC2 rt, 0x0102; DMFC2 rt, 0x0103 */
141 unsigned long cop2_aes_iv[2];
142 /* DMFC2 rt, 0x0104; DMFC2 rt, 0x0105; DMFC2 rt, 0x0106; DMFC2
143 * rt, 0x0107 */
144 unsigned long cop2_aes_key[4];
145 /* DMFC2 rt, 0x0110 */
146 unsigned long cop2_aes_keylen;
147 /* DMFC2 rt, 0x0100; DMFC2 rt, 0x0101 */
148 unsigned long cop2_aes_result[2];
149 /* DMFC2 rt, 0x0240; DMFC2 rt, 0x0241; DMFC2 rt, 0x0242; DMFC2
150 * rt, 0x0243; DMFC2 rt, 0x0244; DMFC2 rt, 0x0245; DMFC2 rt,
151 * 0x0246; DMFC2 rt, 0x0247; DMFC2 rt, 0x0248; DMFC2 rt,
152 * 0x0249; DMFC2 rt, 0x024A; DMFC2 rt, 0x024B; DMFC2 rt,
153 * 0x024C; DMFC2 rt, 0x024D; DMFC2 rt, 0x024E - Pass2 */
154 unsigned long cop2_hsh_datw[15];
155 /* DMFC2 rt, 0x0250; DMFC2 rt, 0x0251; DMFC2 rt, 0x0252; DMFC2
156 * rt, 0x0253; DMFC2 rt, 0x0254; DMFC2 rt, 0x0255; DMFC2 rt,
157 * 0x0256; DMFC2 rt, 0x0257 - Pass2 */
158 unsigned long cop2_hsh_ivw[8];
159 /* DMFC2 rt, 0x0258; DMFC2 rt, 0x0259 - Pass2 */
160 unsigned long cop2_gfm_mult[2];
161 /* DMFC2 rt, 0x025E - Pass2 */
162 unsigned long cop2_gfm_poly;
163 /* DMFC2 rt, 0x025A; DMFC2 rt, 0x025B - Pass2 */
164 unsigned long cop2_gfm_result[2];
165};
166#define INIT_OCTEON_COP2 {0,}
167
168struct octeon_cvmseg_state {
169 unsigned long cvmseg[CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE]
170 [cpu_dcache_line_size() / sizeof(unsigned long)];
171};
172
173#endif
174
121typedef struct { 175typedef struct {
122 unsigned long seg; 176 unsigned long seg;
123} mm_segment_t; 177} mm_segment_t;
@@ -160,6 +214,10 @@ struct thread_struct {
160 unsigned long trap_no; 214 unsigned long trap_no;
161 unsigned long irix_trampoline; /* Wheee... */ 215 unsigned long irix_trampoline; /* Wheee... */
162 unsigned long irix_oldctx; 216 unsigned long irix_oldctx;
217#ifdef CONFIG_CPU_CAVIUM_OCTEON
218 struct octeon_cop2_state cp2 __attribute__ ((__aligned__(128)));
219 struct octeon_cvmseg_state cvmseg __attribute__ ((__aligned__(128)));
220#endif
163 struct mips_abi *abi; 221 struct mips_abi *abi;
164}; 222};
165 223
@@ -171,6 +229,13 @@ struct thread_struct {
171#define FPAFF_INIT 229#define FPAFF_INIT
172#endif /* CONFIG_MIPS_MT_FPAFF */ 230#endif /* CONFIG_MIPS_MT_FPAFF */
173 231
232#ifdef CONFIG_CPU_CAVIUM_OCTEON
233#define OCTEON_INIT \
234 .cp2 = INIT_OCTEON_COP2,
235#else
236#define OCTEON_INIT
237#endif /* CONFIG_CPU_CAVIUM_OCTEON */
238
174#define INIT_THREAD { \ 239#define INIT_THREAD { \
175 /* \ 240 /* \
176 * Saved main processor registers \ 241 * Saved main processor registers \
@@ -221,6 +286,10 @@ struct thread_struct {
221 .trap_no = 0, \ 286 .trap_no = 0, \
222 .irix_trampoline = 0, \ 287 .irix_trampoline = 0, \
223 .irix_oldctx = 0, \ 288 .irix_oldctx = 0, \
289 /* \
290 * Cavium Octeon specifics (null if not Octeon) \
291 */ \
292 OCTEON_INIT \
224} 293}
225 294
226struct task_struct; 295struct task_struct;
diff --git a/arch/mips/include/asm/ptrace.h b/arch/mips/include/asm/ptrace.h
index c2c8bac43307..ce47118e52b7 100644
--- a/arch/mips/include/asm/ptrace.h
+++ b/arch/mips/include/asm/ptrace.h
@@ -48,6 +48,10 @@ struct pt_regs {
48#ifdef CONFIG_MIPS_MT_SMTC 48#ifdef CONFIG_MIPS_MT_SMTC
49 unsigned long cp0_tcstatus; 49 unsigned long cp0_tcstatus;
50#endif /* CONFIG_MIPS_MT_SMTC */ 50#endif /* CONFIG_MIPS_MT_SMTC */
51#ifdef CONFIG_CPU_CAVIUM_OCTEON
52 unsigned long long mpl[3]; /* MTM{0,1,2} */
53 unsigned long long mtp[3]; /* MTP{0,1,2} */
54#endif
51} __attribute__ ((aligned (8))); 55} __attribute__ ((aligned (8)));
52 56
53/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ 57/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
@@ -101,7 +105,7 @@ struct pt_watch_regs {
101 enum pt_watch_style style; 105 enum pt_watch_style style;
102 union { 106 union {
103 struct mips32_watch_regs mips32; 107 struct mips32_watch_regs mips32;
104 struct mips32_watch_regs mips64; 108 struct mips64_watch_regs mips64;
105 }; 109 };
106}; 110};
107 111
diff --git a/arch/mips/include/asm/seccomp.h b/arch/mips/include/asm/seccomp.h
index 36ed44070256..a6772e9507f5 100644
--- a/arch/mips/include/asm/seccomp.h
+++ b/arch/mips/include/asm/seccomp.h
@@ -1,6 +1,5 @@
1#ifndef __ASM_SECCOMP_H 1#ifndef __ASM_SECCOMP_H
2 2
3#include <linux/thread_info.h>
4#include <linux/unistd.h> 3#include <linux/unistd.h>
5 4
6#define __NR_seccomp_read __NR_read 5#define __NR_seccomp_read __NR_read
diff --git a/arch/mips/include/asm/sigcontext.h b/arch/mips/include/asm/sigcontext.h
index 9ce0607d7a4e..9e89cf99d4e4 100644
--- a/arch/mips/include/asm/sigcontext.h
+++ b/arch/mips/include/asm/sigcontext.h
@@ -9,6 +9,7 @@
9#ifndef _ASM_SIGCONTEXT_H 9#ifndef _ASM_SIGCONTEXT_H
10#define _ASM_SIGCONTEXT_H 10#define _ASM_SIGCONTEXT_H
11 11
12#include <linux/types.h>
12#include <asm/sgidefs.h> 13#include <asm/sgidefs.h>
13 14
14#if _MIPS_SIM == _MIPS_SIM_ABI32 15#if _MIPS_SIM == _MIPS_SIM_ABI32
diff --git a/arch/mips/include/asm/smp.h b/arch/mips/include/asm/smp.h
index 86557b5d1b3f..40e5ef1d4d26 100644
--- a/arch/mips/include/asm/smp.h
+++ b/arch/mips/include/asm/smp.h
@@ -37,6 +37,9 @@ extern int __cpu_logical_map[NR_CPUS];
37 37
38#define SMP_RESCHEDULE_YOURSELF 0x1 /* XXX braindead */ 38#define SMP_RESCHEDULE_YOURSELF 0x1 /* XXX braindead */
39#define SMP_CALL_FUNCTION 0x2 39#define SMP_CALL_FUNCTION 0x2
40/* Octeon - Tell another core to flush its icache */
41#define SMP_ICACHE_FLUSH 0x4
42
40 43
41extern void asmlinkage smp_bootstrap(void); 44extern void asmlinkage smp_bootstrap(void);
42 45
diff --git a/arch/mips/include/asm/spinlock.h b/arch/mips/include/asm/spinlock.h
index 1a1f320c30d8..0884947ebe27 100644
--- a/arch/mips/include/asm/spinlock.h
+++ b/arch/mips/include/asm/spinlock.h
@@ -51,6 +51,7 @@ static inline int __raw_spin_is_contended(raw_spinlock_t *lock)
51 51
52 return (((counters >> 14) - counters) & 0x1fff) > 1; 52 return (((counters >> 14) - counters) & 0x1fff) > 1;
53} 53}
54#define __raw_spin_is_contended __raw_spin_is_contended
54 55
55static inline void __raw_spin_lock(raw_spinlock_t *lock) 56static inline void __raw_spin_lock(raw_spinlock_t *lock)
56{ 57{
diff --git a/arch/mips/include/asm/stackframe.h b/arch/mips/include/asm/stackframe.h
index 4c37c4e5f72e..db0fa7b5aeaf 100644
--- a/arch/mips/include/asm/stackframe.h
+++ b/arch/mips/include/asm/stackframe.h
@@ -194,6 +194,19 @@
194 LONG_S $31, PT_R31(sp) 194 LONG_S $31, PT_R31(sp)
195 ori $28, sp, _THREAD_MASK 195 ori $28, sp, _THREAD_MASK
196 xori $28, _THREAD_MASK 196 xori $28, _THREAD_MASK
197#ifdef CONFIG_CPU_CAVIUM_OCTEON
198 .set mips64
199 pref 0, 0($28) /* Prefetch the current pointer */
200 pref 0, PT_R31(sp) /* Prefetch the $31(ra) */
201 /* The Octeon multiplier state is affected by general multiply
202 instructions. It must be saved before and kernel code might
203 corrupt it */
204 jal octeon_mult_save
205 LONG_L v1, 0($28) /* Load the current pointer */
206 /* Restore $31(ra) that was changed by the jal */
207 LONG_L ra, PT_R31(sp)
208 pref 0, 0(v1) /* Prefetch the current thread */
209#endif
197 .set pop 210 .set pop
198 .endm 211 .endm
199 212
@@ -324,6 +337,10 @@
324 DVPE 5 # dvpe a1 337 DVPE 5 # dvpe a1
325 jal mips_ihb 338 jal mips_ihb
326#endif /* CONFIG_MIPS_MT_SMTC */ 339#endif /* CONFIG_MIPS_MT_SMTC */
340#ifdef CONFIG_CPU_CAVIUM_OCTEON
341 /* Restore the Octeon multiplier state */
342 jal octeon_mult_restore
343#endif
327 mfc0 a0, CP0_STATUS 344 mfc0 a0, CP0_STATUS
328 ori a0, STATMASK 345 ori a0, STATMASK
329 xori a0, STATMASK 346 xori a0, STATMASK
diff --git a/arch/mips/include/asm/swab.h b/arch/mips/include/asm/swab.h
index 88f1f7d555cb..99993c0d6c12 100644
--- a/arch/mips/include/asm/swab.h
+++ b/arch/mips/include/asm/swab.h
@@ -9,7 +9,7 @@
9#define _ASM_SWAB_H 9#define _ASM_SWAB_H
10 10
11#include <linux/compiler.h> 11#include <linux/compiler.h>
12#include <asm/types.h> 12#include <linux/types.h>
13 13
14#define __SWAB_64_THRU_32__ 14#define __SWAB_64_THRU_32__
15 15
diff --git a/arch/mips/include/asm/termios.h b/arch/mips/include/asm/termios.h
index a275661fa7e1..8f77f774a2a0 100644
--- a/arch/mips/include/asm/termios.h
+++ b/arch/mips/include/asm/termios.h
@@ -9,6 +9,7 @@
9#ifndef _ASM_TERMIOS_H 9#ifndef _ASM_TERMIOS_H
10#define _ASM_TERMIOS_H 10#define _ASM_TERMIOS_H
11 11
12#include <linux/errno.h>
12#include <asm/termbits.h> 13#include <asm/termbits.h>
13#include <asm/ioctls.h> 14#include <asm/ioctls.h>
14 15
@@ -94,38 +95,81 @@ struct termio {
94/* 95/*
95 * Translate a "termio" structure into a "termios". Ugh. 96 * Translate a "termio" structure into a "termios". Ugh.
96 */ 97 */
97#define user_termio_to_kernel_termios(termios, termio) \ 98static inline int user_termio_to_kernel_termios(struct ktermios *termios,
98({ \ 99 struct termio __user *termio)
99 unsigned short tmp; \ 100{
100 get_user(tmp, &(termio)->c_iflag); \ 101 unsigned short iflag, oflag, cflag, lflag;
101 (termios)->c_iflag = (0xffff0000 & ((termios)->c_iflag)) | tmp; \ 102 unsigned int err;
102 get_user(tmp, &(termio)->c_oflag); \ 103
103 (termios)->c_oflag = (0xffff0000 & ((termios)->c_oflag)) | tmp; \ 104 if (!access_ok(VERIFY_READ, termio, sizeof(struct termio)))
104 get_user(tmp, &(termio)->c_cflag); \ 105 return -EFAULT;
105 (termios)->c_cflag = (0xffff0000 & ((termios)->c_cflag)) | tmp; \ 106
106 get_user(tmp, &(termio)->c_lflag); \ 107 err = __get_user(iflag, &termio->c_iflag);
107 (termios)->c_lflag = (0xffff0000 & ((termios)->c_lflag)) | tmp; \ 108 termios->c_iflag = (termios->c_iflag & 0xffff0000) | iflag;
108 get_user((termios)->c_line, &(termio)->c_line); \ 109 err |=__get_user(oflag, &termio->c_oflag);
109 copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \ 110 termios->c_oflag = (termios->c_oflag & 0xffff0000) | oflag;
110}) 111 err |=__get_user(cflag, &termio->c_cflag);
112 termios->c_cflag = (termios->c_cflag & 0xffff0000) | cflag;
113 err |=__get_user(lflag, &termio->c_lflag);
114 termios->c_lflag = (termios->c_lflag & 0xffff0000) | lflag;
115 err |=__get_user(termios->c_line, &termio->c_line);
116 if (err)
117 return -EFAULT;
118
119 if (__copy_from_user(termios->c_cc, termio->c_cc, NCC))
120 return -EFAULT;
121
122 return 0;
123}
111 124
112/* 125/*
113 * Translate a "termios" structure into a "termio". Ugh. 126 * Translate a "termios" structure into a "termio". Ugh.
114 */ 127 */
115#define kernel_termios_to_user_termio(termio, termios) \ 128static inline int kernel_termios_to_user_termio(struct termio __user *termio,
116({ \ 129 struct ktermios *termios)
117 put_user((termios)->c_iflag, &(termio)->c_iflag); \ 130{
118 put_user((termios)->c_oflag, &(termio)->c_oflag); \ 131 int err;
119 put_user((termios)->c_cflag, &(termio)->c_cflag); \ 132
120 put_user((termios)->c_lflag, &(termio)->c_lflag); \ 133 if (!access_ok(VERIFY_WRITE, termio, sizeof(struct termio)))
121 put_user((termios)->c_line, &(termio)->c_line); \ 134 return -EFAULT;
122 copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ 135
123}) 136 err = __put_user(termios->c_iflag, &termio->c_iflag);
124 137 err |= __put_user(termios->c_oflag, &termio->c_oflag);
125#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2)) 138 err |= __put_user(termios->c_cflag, &termio->c_cflag);
126#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2)) 139 err |= __put_user(termios->c_lflag, &termio->c_lflag);
127#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios)) 140 err |= __put_user(termios->c_line, &termio->c_line);
128#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios)) 141 if (err)
142 return -EFAULT;
143
144 if (__copy_to_user(termio->c_cc, termios->c_cc, NCC))
145 return -EFAULT;
146
147 return 0;
148}
149
150static inline int user_termios_to_kernel_termios(struct ktermios __user *k,
151 struct termios2 *u)
152{
153 return copy_from_user(k, u, sizeof(struct termios2)) ? -EFAULT : 0;
154}
155
156static inline int kernel_termios_to_user_termios(struct termios2 __user *u,
157 struct ktermios *k)
158{
159 return copy_to_user(u, k, sizeof(struct termios2)) ? -EFAULT : 0;
160}
161
162static inline int user_termios_to_kernel_termios_1(struct ktermios *k,
163 struct termios __user *u)
164{
165 return copy_from_user(k, u, sizeof(struct termios)) ? -EFAULT : 0;
166}
167
168static inline int kernel_termios_to_user_termios_1(struct termios __user *u,
169 struct ktermios *k)
170{
171 return copy_to_user(u, k, sizeof(struct termios)) ? -EFAULT : 0;
172}
129 173
130#endif /* defined(__KERNEL__) */ 174#endif /* defined(__KERNEL__) */
131 175
diff --git a/arch/mips/include/asm/time.h b/arch/mips/include/asm/time.h
index 9601ea950542..38a30d2ee959 100644
--- a/arch/mips/include/asm/time.h
+++ b/arch/mips/include/asm/time.h
@@ -50,27 +50,35 @@ extern int (*perf_irq)(void);
50/* 50/*
51 * Initialize the calling CPU's compare interrupt as clockevent device 51 * Initialize the calling CPU's compare interrupt as clockevent device
52 */ 52 */
53#ifdef CONFIG_CEVT_R4K 53#ifdef CONFIG_CEVT_R4K_LIB
54extern int mips_clockevent_init(void);
55extern unsigned int __weak get_c0_compare_int(void); 54extern unsigned int __weak get_c0_compare_int(void);
56#else 55extern int r4k_clockevent_init(void);
56#endif
57
57static inline int mips_clockevent_init(void) 58static inline int mips_clockevent_init(void)
58{ 59{
60#ifdef CONFIG_CEVT_R4K
61 return r4k_clockevent_init();
62#else
59 return -ENXIO; 63 return -ENXIO;
60}
61#endif 64#endif
65}
62 66
63/* 67/*
64 * Initialize the count register as a clocksource 68 * Initialize the count register as a clocksource
65 */ 69 */
66#ifdef CONFIG_CSRC_R4K 70#ifdef CONFIG_CSRC_R4K_LIB
67extern int init_mips_clocksource(void); 71extern int init_r4k_clocksource(void);
68#else 72#endif
73
69static inline int init_mips_clocksource(void) 74static inline int init_mips_clocksource(void)
70{ 75{
76#ifdef CONFIG_CSRC_R4K
77 return init_r4k_clocksource();
78#else
71 return 0; 79 return 0;
72}
73#endif 80#endif
81}
74 82
75extern void clocksource_set_clock(struct clocksource *cs, unsigned int clock); 83extern void clocksource_set_clock(struct clocksource *cs, unsigned int clock);
76extern void clockevent_set_clock(struct clock_event_device *cd, 84extern void clockevent_set_clock(struct clock_event_device *cd,
diff --git a/arch/mips/include/asm/txx9/tx4939.h b/arch/mips/include/asm/txx9/tx4939.h
index 88badb423010..964ef7ede268 100644
--- a/arch/mips/include/asm/txx9/tx4939.h
+++ b/arch/mips/include/asm/txx9/tx4939.h
@@ -541,5 +541,6 @@ void tx4939_irq_init(void);
541int tx4939_irq(void); 541int tx4939_irq(void);
542void tx4939_mtd_init(int ch); 542void tx4939_mtd_init(int ch);
543void tx4939_ata_init(void); 543void tx4939_ata_init(void);
544void tx4939_rtc_init(void);
544 545
545#endif /* __ASM_TXX9_TX4939_H */ 546#endif /* __ASM_TXX9_TX4939_H */
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
index b1372c27f136..e96122159928 100644
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
@@ -9,7 +9,7 @@ obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \
9 time.o topology.o traps.o unaligned.o watch.o 9 time.o topology.o traps.o unaligned.o watch.o
10 10
11obj-$(CONFIG_CEVT_BCM1480) += cevt-bcm1480.o 11obj-$(CONFIG_CEVT_BCM1480) += cevt-bcm1480.o
12obj-$(CONFIG_CEVT_R4K) += cevt-r4k.o 12obj-$(CONFIG_CEVT_R4K_LIB) += cevt-r4k.o
13obj-$(CONFIG_MIPS_MT_SMTC) += cevt-smtc.o 13obj-$(CONFIG_MIPS_MT_SMTC) += cevt-smtc.o
14obj-$(CONFIG_CEVT_DS1287) += cevt-ds1287.o 14obj-$(CONFIG_CEVT_DS1287) += cevt-ds1287.o
15obj-$(CONFIG_CEVT_GT641XX) += cevt-gt641xx.o 15obj-$(CONFIG_CEVT_GT641XX) += cevt-gt641xx.o
@@ -17,7 +17,7 @@ obj-$(CONFIG_CEVT_SB1250) += cevt-sb1250.o
17obj-$(CONFIG_CEVT_TXX9) += cevt-txx9.o 17obj-$(CONFIG_CEVT_TXX9) += cevt-txx9.o
18obj-$(CONFIG_CSRC_BCM1480) += csrc-bcm1480.o 18obj-$(CONFIG_CSRC_BCM1480) += csrc-bcm1480.o
19obj-$(CONFIG_CSRC_IOASIC) += csrc-ioasic.o 19obj-$(CONFIG_CSRC_IOASIC) += csrc-ioasic.o
20obj-$(CONFIG_CSRC_R4K) += csrc-r4k.o 20obj-$(CONFIG_CSRC_R4K_LIB) += csrc-r4k.o
21obj-$(CONFIG_CSRC_SB1250) += csrc-sb1250.o 21obj-$(CONFIG_CSRC_SB1250) += csrc-sb1250.o
22obj-$(CONFIG_SYNC_R4K) += sync-r4k.o 22obj-$(CONFIG_SYNC_R4K) += sync-r4k.o
23 23
@@ -43,6 +43,7 @@ obj-$(CONFIG_CPU_SB1) += r4k_fpu.o r4k_switch.o
43obj-$(CONFIG_CPU_TX39XX) += r2300_fpu.o r2300_switch.o 43obj-$(CONFIG_CPU_TX39XX) += r2300_fpu.o r2300_switch.o
44obj-$(CONFIG_CPU_TX49XX) += r4k_fpu.o r4k_switch.o 44obj-$(CONFIG_CPU_TX49XX) += r4k_fpu.o r4k_switch.o
45obj-$(CONFIG_CPU_VR41XX) += r4k_fpu.o r4k_switch.o 45obj-$(CONFIG_CPU_VR41XX) += r4k_fpu.o r4k_switch.o
46obj-$(CONFIG_CPU_CAVIUM_OCTEON) += octeon_switch.o
46 47
47obj-$(CONFIG_SMP) += smp.o 48obj-$(CONFIG_SMP) += smp.o
48obj-$(CONFIG_SMP_UP) += smp-up.o 49obj-$(CONFIG_SMP_UP) += smp-up.o
diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c
index 72942226fcdd..c901c22d7ad0 100644
--- a/arch/mips/kernel/asm-offsets.c
+++ b/arch/mips/kernel/asm-offsets.c
@@ -64,6 +64,10 @@ void output_ptreg_defines(void)
64#ifdef CONFIG_MIPS_MT_SMTC 64#ifdef CONFIG_MIPS_MT_SMTC
65 OFFSET(PT_TCSTATUS, pt_regs, cp0_tcstatus); 65 OFFSET(PT_TCSTATUS, pt_regs, cp0_tcstatus);
66#endif /* CONFIG_MIPS_MT_SMTC */ 66#endif /* CONFIG_MIPS_MT_SMTC */
67#ifdef CONFIG_CPU_CAVIUM_OCTEON
68 OFFSET(PT_MPL, pt_regs, mpl);
69 OFFSET(PT_MTP, pt_regs, mtp);
70#endif /* CONFIG_CPU_CAVIUM_OCTEON */
67 DEFINE(PT_SIZE, sizeof(struct pt_regs)); 71 DEFINE(PT_SIZE, sizeof(struct pt_regs));
68 BLANK(); 72 BLANK();
69} 73}
@@ -295,3 +299,30 @@ void output_irq_cpustat_t_defines(void)
295 DEFINE(IC_IRQ_CPUSTAT_T, sizeof(irq_cpustat_t)); 299 DEFINE(IC_IRQ_CPUSTAT_T, sizeof(irq_cpustat_t));
296 BLANK(); 300 BLANK();
297} 301}
302
303#ifdef CONFIG_CPU_CAVIUM_OCTEON
304void output_octeon_cop2_state_defines(void)
305{
306 COMMENT("Octeon specific octeon_cop2_state offsets.");
307 OFFSET(OCTEON_CP2_CRC_IV, octeon_cop2_state, cop2_crc_iv);
308 OFFSET(OCTEON_CP2_CRC_LENGTH, octeon_cop2_state, cop2_crc_length);
309 OFFSET(OCTEON_CP2_CRC_POLY, octeon_cop2_state, cop2_crc_poly);
310 OFFSET(OCTEON_CP2_LLM_DAT, octeon_cop2_state, cop2_llm_dat);
311 OFFSET(OCTEON_CP2_3DES_IV, octeon_cop2_state, cop2_3des_iv);
312 OFFSET(OCTEON_CP2_3DES_KEY, octeon_cop2_state, cop2_3des_key);
313 OFFSET(OCTEON_CP2_3DES_RESULT, octeon_cop2_state, cop2_3des_result);
314 OFFSET(OCTEON_CP2_AES_INP0, octeon_cop2_state, cop2_aes_inp0);
315 OFFSET(OCTEON_CP2_AES_IV, octeon_cop2_state, cop2_aes_iv);
316 OFFSET(OCTEON_CP2_AES_KEY, octeon_cop2_state, cop2_aes_key);
317 OFFSET(OCTEON_CP2_AES_KEYLEN, octeon_cop2_state, cop2_aes_keylen);
318 OFFSET(OCTEON_CP2_AES_RESULT, octeon_cop2_state, cop2_aes_result);
319 OFFSET(OCTEON_CP2_GFM_MULT, octeon_cop2_state, cop2_gfm_mult);
320 OFFSET(OCTEON_CP2_GFM_POLY, octeon_cop2_state, cop2_gfm_poly);
321 OFFSET(OCTEON_CP2_GFM_RESULT, octeon_cop2_state, cop2_gfm_result);
322 OFFSET(OCTEON_CP2_HSH_DATW, octeon_cop2_state, cop2_hsh_datw);
323 OFFSET(OCTEON_CP2_HSH_IVW, octeon_cop2_state, cop2_hsh_ivw);
324 OFFSET(THREAD_CP2, task_struct, thread.cp2);
325 OFFSET(THREAD_CVMSEG, task_struct, thread.cvmseg.cvmseg);
326 BLANK();
327}
328#endif
diff --git a/arch/mips/kernel/branch.c b/arch/mips/kernel/branch.c
index 6b5df8bfab85..0176ed015c89 100644
--- a/arch/mips/kernel/branch.c
+++ b/arch/mips/kernel/branch.c
@@ -205,6 +205,39 @@ int __compute_return_epc(struct pt_regs *regs)
205 break; 205 break;
206 } 206 }
207 break; 207 break;
208#ifdef CONFIG_CPU_CAVIUM_OCTEON
209 case lwc2_op: /* This is bbit0 on Octeon */
210 if ((regs->regs[insn.i_format.rs] & (1ull<<insn.i_format.rt))
211 == 0)
212 epc = epc + 4 + (insn.i_format.simmediate << 2);
213 else
214 epc += 8;
215 regs->cp0_epc = epc;
216 break;
217 case ldc2_op: /* This is bbit032 on Octeon */
218 if ((regs->regs[insn.i_format.rs] &
219 (1ull<<(insn.i_format.rt+32))) == 0)
220 epc = epc + 4 + (insn.i_format.simmediate << 2);
221 else
222 epc += 8;
223 regs->cp0_epc = epc;
224 break;
225 case swc2_op: /* This is bbit1 on Octeon */
226 if (regs->regs[insn.i_format.rs] & (1ull<<insn.i_format.rt))
227 epc = epc + 4 + (insn.i_format.simmediate << 2);
228 else
229 epc += 8;
230 regs->cp0_epc = epc;
231 break;
232 case sdc2_op: /* This is bbit132 on Octeon */
233 if (regs->regs[insn.i_format.rs] &
234 (1ull<<(insn.i_format.rt+32)))
235 epc = epc + 4 + (insn.i_format.simmediate << 2);
236 else
237 epc += 8;
238 regs->cp0_epc = epc;
239 break;
240#endif
208 } 241 }
209 242
210 return 0; 243 return 0;
diff --git a/arch/mips/kernel/cevt-r4k.c b/arch/mips/kernel/cevt-r4k.c
index e1ec83b68031..0015e442572b 100644
--- a/arch/mips/kernel/cevt-r4k.c
+++ b/arch/mips/kernel/cevt-r4k.c
@@ -160,7 +160,7 @@ int c0_compare_int_usable(void)
160 160
161#ifndef CONFIG_MIPS_MT_SMTC 161#ifndef CONFIG_MIPS_MT_SMTC
162 162
163int __cpuinit mips_clockevent_init(void) 163int __cpuinit r4k_clockevent_init(void)
164{ 164{
165 uint64_t mips_freq = mips_hpt_frequency; 165 uint64_t mips_freq = mips_hpt_frequency;
166 unsigned int cpu = smp_processor_id(); 166 unsigned int cpu = smp_processor_id();
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index c9207b5fd923..a7162a4484cf 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -96,6 +96,9 @@ int allow_au1k_wait;
96 96
97static void au1k_wait(void) 97static void au1k_wait(void)
98{ 98{
99 if (!allow_au1k_wait)
100 return;
101
99 /* using the wait instruction makes CP0 counter unusable */ 102 /* using the wait instruction makes CP0 counter unusable */
100 __asm__(" .set mips3 \n" 103 __asm__(" .set mips3 \n"
101 " cache 0x14, 0(%0) \n" 104 " cache 0x14, 0(%0) \n"
@@ -154,6 +157,7 @@ void __init check_wait(void)
154 case CPU_25KF: 157 case CPU_25KF:
155 case CPU_PR4450: 158 case CPU_PR4450:
156 case CPU_BCM3302: 159 case CPU_BCM3302:
160 case CPU_CAVIUM_OCTEON:
157 cpu_wait = r4k_wait; 161 cpu_wait = r4k_wait;
158 break; 162 break;
159 163
@@ -185,8 +189,7 @@ void __init check_wait(void)
185 case CPU_AU1200: 189 case CPU_AU1200:
186 case CPU_AU1210: 190 case CPU_AU1210:
187 case CPU_AU1250: 191 case CPU_AU1250:
188 if (allow_au1k_wait) 192 cpu_wait = au1k_wait;
189 cpu_wait = au1k_wait;
190 break; 193 break;
191 case CPU_20KC: 194 case CPU_20KC:
192 /* 195 /*
@@ -875,6 +878,27 @@ static inline void cpu_probe_broadcom(struct cpuinfo_mips *c, unsigned int cpu)
875 } 878 }
876} 879}
877 880
881static inline void cpu_probe_cavium(struct cpuinfo_mips *c, unsigned int cpu)
882{
883 decode_configs(c);
884 switch (c->processor_id & 0xff00) {
885 case PRID_IMP_CAVIUM_CN38XX:
886 case PRID_IMP_CAVIUM_CN31XX:
887 case PRID_IMP_CAVIUM_CN30XX:
888 case PRID_IMP_CAVIUM_CN58XX:
889 case PRID_IMP_CAVIUM_CN56XX:
890 case PRID_IMP_CAVIUM_CN50XX:
891 case PRID_IMP_CAVIUM_CN52XX:
892 c->cputype = CPU_CAVIUM_OCTEON;
893 __cpu_name[cpu] = "Cavium Octeon";
894 break;
895 default:
896 printk(KERN_INFO "Unknown Octeon chip!\n");
897 c->cputype = CPU_UNKNOWN;
898 break;
899 }
900}
901
878const char *__cpu_name[NR_CPUS]; 902const char *__cpu_name[NR_CPUS];
879 903
880__cpuinit void cpu_probe(void) 904__cpuinit void cpu_probe(void)
@@ -909,6 +933,9 @@ __cpuinit void cpu_probe(void)
909 case PRID_COMP_NXP: 933 case PRID_COMP_NXP:
910 cpu_probe_nxp(c, cpu); 934 cpu_probe_nxp(c, cpu);
911 break; 935 break;
936 case PRID_COMP_CAVIUM:
937 cpu_probe_cavium(c, cpu);
938 break;
912 } 939 }
913 940
914 BUG_ON(!__cpu_name[cpu]); 941 BUG_ON(!__cpu_name[cpu]);
diff --git a/arch/mips/kernel/csrc-r4k.c b/arch/mips/kernel/csrc-r4k.c
index 74fb74583b4e..f1a2893931ed 100644
--- a/arch/mips/kernel/csrc-r4k.c
+++ b/arch/mips/kernel/csrc-r4k.c
@@ -22,7 +22,7 @@ static struct clocksource clocksource_mips = {
22 .flags = CLOCK_SOURCE_IS_CONTINUOUS, 22 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
23}; 23};
24 24
25int __init init_mips_clocksource(void) 25int __init init_r4k_clocksource(void)
26{ 26{
27 if (!cpu_has_counter || !mips_hpt_frequency) 27 if (!cpu_has_counter || !mips_hpt_frequency)
28 return -ENXIO; 28 return -ENXIO;
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S
index 757d48f0d80f..8882e5766f27 100644
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
@@ -385,10 +385,14 @@ NESTED(nmi_handler, PT_SIZE, sp)
385 .endm 385 .endm
386 386
387 .macro __build_clear_fpe 387 .macro __build_clear_fpe
388 .set push
389 /* gas fails to assemble cfc1 for some archs (octeon).*/ \
390 .set mips1
388 cfc1 a1, fcr31 391 cfc1 a1, fcr31
389 li a2, ~(0x3f << 12) 392 li a2, ~(0x3f << 12)
390 and a2, a1 393 and a2, a1
391 ctc1 a2, fcr31 394 ctc1 a2, fcr31
395 .set pop
392 TRACE_IRQS_ON 396 TRACE_IRQS_ON
393 STI 397 STI
394 .endm 398 .endm
@@ -454,7 +458,11 @@ NESTED(nmi_handler, PT_SIZE, sp)
454 BUILD_HANDLER fpe fpe fpe silent /* #15 */ 458 BUILD_HANDLER fpe fpe fpe silent /* #15 */
455 BUILD_HANDLER mdmx mdmx sti silent /* #22 */ 459 BUILD_HANDLER mdmx mdmx sti silent /* #22 */
456#ifdef CONFIG_HARDWARE_WATCHPOINTS 460#ifdef CONFIG_HARDWARE_WATCHPOINTS
457 BUILD_HANDLER watch watch sti silent /* #23 */ 461 /*
462 * For watch, interrupts will be enabled after the watch
463 * registers are read.
464 */
465 BUILD_HANDLER watch watch cli silent /* #23 */
458#else 466#else
459 BUILD_HANDLER watch watch sti verbose /* #23 */ 467 BUILD_HANDLER watch watch sti verbose /* #23 */
460#endif 468#endif
diff --git a/arch/mips/kernel/irq-gic.c b/arch/mips/kernel/irq-gic.c
index 494a49a317e9..87deb8f6c458 100644
--- a/arch/mips/kernel/irq-gic.c
+++ b/arch/mips/kernel/irq-gic.c
@@ -187,7 +187,7 @@ static void gic_set_affinity(unsigned int irq, const struct cpumask *cpumask)
187 set_bit(irq, pcpu_masks[first_cpu(tmp)].pcpu_mask); 187 set_bit(irq, pcpu_masks[first_cpu(tmp)].pcpu_mask);
188 188
189 } 189 }
190 irq_desc[irq].affinity = *cpumask; 190 cpumask_copy(irq_desc[irq].affinity, cpumask);
191 spin_unlock_irqrestore(&gic_lock, flags); 191 spin_unlock_irqrestore(&gic_lock, flags);
192 192
193} 193}
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
index aa2c55e3b55f..2f8452b404c7 100644
--- a/arch/mips/kernel/linux32.c
+++ b/arch/mips/kernel/linux32.c
@@ -32,6 +32,7 @@
32#include <linux/module.h> 32#include <linux/module.h>
33#include <linux/binfmts.h> 33#include <linux/binfmts.h>
34#include <linux/security.h> 34#include <linux/security.h>
35#include <linux/syscalls.h>
35#include <linux/compat.h> 36#include <linux/compat.h>
36#include <linux/vfs.h> 37#include <linux/vfs.h>
37#include <linux/ipc.h> 38#include <linux/ipc.h>
@@ -63,9 +64,9 @@
63#define merge_64(r1, r2) ((((r2) & 0xffffffffUL) << 32) + ((r1) & 0xffffffffUL)) 64#define merge_64(r1, r2) ((((r2) & 0xffffffffUL) << 32) + ((r1) & 0xffffffffUL))
64#endif 65#endif
65 66
66asmlinkage unsigned long 67SYSCALL_DEFINE6(32_mmap2, unsigned long, addr, unsigned long, len,
67sys32_mmap2(unsigned long addr, unsigned long len, unsigned long prot, 68 unsigned long, prot, unsigned long, flags, unsigned long, fd,
68 unsigned long flags, unsigned long fd, unsigned long pgoff) 69 unsigned long, pgoff)
69{ 70{
70 struct file * file = NULL; 71 struct file * file = NULL;
71 unsigned long error; 72 unsigned long error;
@@ -121,21 +122,21 @@ struct rlimit32 {
121 int rlim_max; 122 int rlim_max;
122}; 123};
123 124
124asmlinkage long sys32_truncate64(const char __user * path, 125SYSCALL_DEFINE4(32_truncate64, const char __user *, path,
125 unsigned long __dummy, int a2, int a3) 126 unsigned long, __dummy, unsigned long, a2, unsigned long, a3)
126{ 127{
127 return sys_truncate(path, merge_64(a2, a3)); 128 return sys_truncate(path, merge_64(a2, a3));
128} 129}
129 130
130asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy, 131SYSCALL_DEFINE4(32_ftruncate64, unsigned long, fd, unsigned long, __dummy,
131 int a2, int a3) 132 unsigned long, a2, unsigned long, a3)
132{ 133{
133 return sys_ftruncate(fd, merge_64(a2, a3)); 134 return sys_ftruncate(fd, merge_64(a2, a3));
134} 135}
135 136
136asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high, 137SYSCALL_DEFINE5(32_llseek, unsigned long, fd, unsigned long, offset_high,
137 unsigned int offset_low, loff_t __user * result, 138 unsigned long, offset_low, loff_t __user *, result,
138 unsigned int origin) 139 unsigned long, origin)
139{ 140{
140 return sys_llseek(fd, offset_high, offset_low, result, origin); 141 return sys_llseek(fd, offset_high, offset_low, result, origin);
141} 142}
@@ -144,20 +145,20 @@ asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high,
144 lseek back to original location. They fail just like lseek does on 145 lseek back to original location. They fail just like lseek does on
145 non-seekable files. */ 146 non-seekable files. */
146 147
147asmlinkage ssize_t sys32_pread(unsigned int fd, char __user * buf, 148SYSCALL_DEFINE6(32_pread, unsigned long, fd, char __user *, buf, size_t, count,
148 size_t count, u32 unused, u64 a4, u64 a5) 149 unsigned long, unused, unsigned long, a4, unsigned long, a5)
149{ 150{
150 return sys_pread64(fd, buf, count, merge_64(a4, a5)); 151 return sys_pread64(fd, buf, count, merge_64(a4, a5));
151} 152}
152 153
153asmlinkage ssize_t sys32_pwrite(unsigned int fd, const char __user * buf, 154SYSCALL_DEFINE6(32_pwrite, unsigned int, fd, const char __user *, buf,
154 size_t count, u32 unused, u64 a4, u64 a5) 155 size_t, count, u32, unused, u64, a4, u64, a5)
155{ 156{
156 return sys_pwrite64(fd, buf, count, merge_64(a4, a5)); 157 return sys_pwrite64(fd, buf, count, merge_64(a4, a5));
157} 158}
158 159
159asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid, 160SYSCALL_DEFINE2(32_sched_rr_get_interval, compat_pid_t, pid,
160 struct compat_timespec __user *interval) 161 struct compat_timespec __user *, interval)
161{ 162{
162 struct timespec t; 163 struct timespec t;
163 int ret; 164 int ret;
@@ -174,8 +175,8 @@ asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid,
174 175
175#ifdef CONFIG_SYSVIPC 176#ifdef CONFIG_SYSVIPC
176 177
177asmlinkage long 178SYSCALL_DEFINE6(32_ipc, u32, call, long, first, long, second, long, third,
178sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) 179 unsigned long, ptr, unsigned long, fifth)
179{ 180{
180 int version, err; 181 int version, err;
181 182
@@ -233,8 +234,8 @@ sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth)
233 234
234#else 235#else
235 236
236asmlinkage long 237SYSCALL_DEFINE6(32_ipc, u32, call, int, first, int, second, int, third,
237sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) 238 u32, ptr, u32 fifth)
238{ 239{
239 return -ENOSYS; 240 return -ENOSYS;
240} 241}
@@ -242,7 +243,7 @@ sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth)
242#endif /* CONFIG_SYSVIPC */ 243#endif /* CONFIG_SYSVIPC */
243 244
244#ifdef CONFIG_MIPS32_N32 245#ifdef CONFIG_MIPS32_N32
245asmlinkage long sysn32_semctl(int semid, int semnum, int cmd, u32 arg) 246SYSCALL_DEFINE4(n32_semctl, int, semid, int, semnum, int, cmd, u32, arg)
246{ 247{
247 /* compat_sys_semctl expects a pointer to union semun */ 248 /* compat_sys_semctl expects a pointer to union semun */
248 u32 __user *uptr = compat_alloc_user_space(sizeof(u32)); 249 u32 __user *uptr = compat_alloc_user_space(sizeof(u32));
@@ -251,13 +252,14 @@ asmlinkage long sysn32_semctl(int semid, int semnum, int cmd, u32 arg)
251 return compat_sys_semctl(semid, semnum, cmd, uptr); 252 return compat_sys_semctl(semid, semnum, cmd, uptr);
252} 253}
253 254
254asmlinkage long sysn32_msgsnd(int msqid, u32 msgp, unsigned msgsz, int msgflg) 255SYSCALL_DEFINE4(n32_msgsnd, int, msqid, u32, msgp, unsigned int, msgsz,
256 int, msgflg)
255{ 257{
256 return compat_sys_msgsnd(msqid, msgsz, msgflg, compat_ptr(msgp)); 258 return compat_sys_msgsnd(msqid, msgsz, msgflg, compat_ptr(msgp));
257} 259}
258 260
259asmlinkage long sysn32_msgrcv(int msqid, u32 msgp, size_t msgsz, int msgtyp, 261SYSCALL_DEFINE5(n32_msgrcv, int, msqid, u32, msgp, size_t, msgsz,
260 int msgflg) 262 int, msgtyp, int, msgflg)
261{ 263{
262 return compat_sys_msgrcv(msqid, msgsz, msgtyp, msgflg, IPC_64, 264 return compat_sys_msgrcv(msqid, msgsz, msgtyp, msgflg, IPC_64,
263 compat_ptr(msgp)); 265 compat_ptr(msgp));
@@ -277,7 +279,7 @@ struct sysctl_args32
277 279
278#ifdef CONFIG_SYSCTL_SYSCALL 280#ifdef CONFIG_SYSCTL_SYSCALL
279 281
280asmlinkage long sys32_sysctl(struct sysctl_args32 __user *args) 282SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args)
281{ 283{
282 struct sysctl_args32 tmp; 284 struct sysctl_args32 tmp;
283 int error; 285 int error;
@@ -316,9 +318,16 @@ asmlinkage long sys32_sysctl(struct sysctl_args32 __user *args)
316 return error; 318 return error;
317} 319}
318 320
321#else
322
323SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args)
324{
325 return -ENOSYS;
326}
327
319#endif /* CONFIG_SYSCTL_SYSCALL */ 328#endif /* CONFIG_SYSCTL_SYSCALL */
320 329
321asmlinkage long sys32_newuname(struct new_utsname __user * name) 330SYSCALL_DEFINE1(32_newuname, struct new_utsname __user *, name)
322{ 331{
323 int ret = 0; 332 int ret = 0;
324 333
@@ -334,7 +343,7 @@ asmlinkage long sys32_newuname(struct new_utsname __user * name)
334 return ret; 343 return ret;
335} 344}
336 345
337asmlinkage int sys32_personality(unsigned long personality) 346SYSCALL_DEFINE1(32_personality, unsigned long, personality)
338{ 347{
339 int ret; 348 int ret;
340 personality &= 0xffffffff; 349 personality &= 0xffffffff;
@@ -357,7 +366,7 @@ struct ustat32 {
357 366
358extern asmlinkage long sys_ustat(dev_t dev, struct ustat __user * ubuf); 367extern asmlinkage long sys_ustat(dev_t dev, struct ustat __user * ubuf);
359 368
360asmlinkage int sys32_ustat(dev_t dev, struct ustat32 __user * ubuf32) 369SYSCALL_DEFINE2(32_ustat, dev_t, dev, struct ustat32 __user *, ubuf32)
361{ 370{
362 int err; 371 int err;
363 struct ustat tmp; 372 struct ustat tmp;
@@ -381,8 +390,8 @@ out:
381 return err; 390 return err;
382} 391}
383 392
384asmlinkage int sys32_sendfile(int out_fd, int in_fd, compat_off_t __user *offset, 393SYSCALL_DEFINE4(32_sendfile, long, out_fd, long, in_fd,
385 s32 count) 394 compat_off_t __user *, offset, s32, count)
386{ 395{
387 mm_segment_t old_fs = get_fs(); 396 mm_segment_t old_fs = get_fs();
388 int ret; 397 int ret;
diff --git a/arch/mips/kernel/mips-mt-fpaff.c b/arch/mips/kernel/mips-mt-fpaff.c
index 5e77a3a21f98..42461310b185 100644
--- a/arch/mips/kernel/mips-mt-fpaff.c
+++ b/arch/mips/kernel/mips-mt-fpaff.c
@@ -79,7 +79,8 @@ asmlinkage long mipsmt_sys_sched_setaffinity(pid_t pid, unsigned int len,
79 79
80 euid = current_euid(); 80 euid = current_euid();
81 retval = -EPERM; 81 retval = -EPERM;
82 if (euid != p->euid && euid != p->uid && !capable(CAP_SYS_NICE)) { 82 if (euid != p->cred->euid && euid != p->cred->uid &&
83 !capable(CAP_SYS_NICE)) {
83 read_unlock(&tasklist_lock); 84 read_unlock(&tasklist_lock);
84 goto out_unlock; 85 goto out_unlock;
85 } 86 }
diff --git a/arch/mips/kernel/octeon_switch.S b/arch/mips/kernel/octeon_switch.S
new file mode 100644
index 000000000000..d52389672b06
--- /dev/null
+++ b/arch/mips/kernel/octeon_switch.S
@@ -0,0 +1,506 @@
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, 1996, 1998, 1999, 2002, 2003 Ralf Baechle
7 * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
8 * Copyright (C) 1994, 1995, 1996, by Andreas Busse
9 * Copyright (C) 1999 Silicon Graphics, Inc.
10 * Copyright (C) 2000 MIPS Technologies, Inc.
11 * written by Carsten Langgaard, carstenl@mips.com
12 */
13#include <asm/asm.h>
14#include <asm/cachectl.h>
15#include <asm/fpregdef.h>
16#include <asm/mipsregs.h>
17#include <asm/asm-offsets.h>
18#include <asm/page.h>
19#include <asm/pgtable-bits.h>
20#include <asm/regdef.h>
21#include <asm/stackframe.h>
22#include <asm/thread_info.h>
23
24#include <asm/asmmacro.h>
25
26/*
27 * Offset to the current process status flags, the first 32 bytes of the
28 * stack are not used.
29 */
30#define ST_OFF (_THREAD_SIZE - 32 - PT_SIZE + PT_STATUS)
31
32/*
33 * task_struct *resume(task_struct *prev, task_struct *next,
34 * struct thread_info *next_ti)
35 */
36 .align 7
37 LEAF(resume)
38 .set arch=octeon
39#ifndef CONFIG_CPU_HAS_LLSC
40 sw zero, ll_bit
41#endif
42 mfc0 t1, CP0_STATUS
43 LONG_S t1, THREAD_STATUS(a0)
44 cpu_save_nonscratch a0
45 LONG_S ra, THREAD_REG31(a0)
46
47 /* check if we need to save COP2 registers */
48 PTR_L t2, TASK_THREAD_INFO(a0)
49 LONG_L t0, ST_OFF(t2)
50 bbit0 t0, 30, 1f
51
52 /* Disable COP2 in the stored process state */
53 li t1, ST0_CU2
54 xor t0, t1
55 LONG_S t0, ST_OFF(t2)
56
57 /* Enable COP2 so we can save it */
58 mfc0 t0, CP0_STATUS
59 or t0, t1
60 mtc0 t0, CP0_STATUS
61
62 /* Save COP2 */
63 daddu a0, THREAD_CP2
64 jal octeon_cop2_save
65 dsubu a0, THREAD_CP2
66
67 /* Disable COP2 now that we are done */
68 mfc0 t0, CP0_STATUS
69 li t1, ST0_CU2
70 xor t0, t1
71 mtc0 t0, CP0_STATUS
72
731:
74#if CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE > 0
75 /* Check if we need to store CVMSEG state */
76 mfc0 t0, $11,7 /* CvmMemCtl */
77 bbit0 t0, 6, 3f /* Is user access enabled? */
78
79 /* Store the CVMSEG state */
80 /* Extract the size of CVMSEG */
81 andi t0, 0x3f
82 /* Multiply * (cache line size/sizeof(long)/2) */
83 sll t0, 7-LONGLOG-1
84 li t1, -32768 /* Base address of CVMSEG */
85 LONG_ADDI t2, a0, THREAD_CVMSEG /* Where to store CVMSEG to */
86 synciobdma
872:
88 .set noreorder
89 LONG_L t8, 0(t1) /* Load from CVMSEG */
90 subu t0, 1 /* Decrement loop var */
91 LONG_L t9, LONGSIZE(t1)/* Load from CVMSEG */
92 LONG_ADDU t1, LONGSIZE*2 /* Increment loc in CVMSEG */
93 LONG_S t8, 0(t2) /* Store CVMSEG to thread storage */
94 LONG_ADDU t2, LONGSIZE*2 /* Increment loc in thread storage */
95 bnez t0, 2b /* Loop until we've copied it all */
96 LONG_S t9, -LONGSIZE(t2)/* Store CVMSEG to thread storage */
97 .set reorder
98
99 /* Disable access to CVMSEG */
100 mfc0 t0, $11,7 /* CvmMemCtl */
101 xori t0, t0, 0x40 /* Bit 6 is CVMSEG user enable */
102 mtc0 t0, $11,7 /* CvmMemCtl */
103#endif
1043:
105 /*
106 * The order of restoring the registers takes care of the race
107 * updating $28, $29 and kernelsp without disabling ints.
108 */
109 move $28, a2
110 cpu_restore_nonscratch a1
111
112#if (_THREAD_SIZE - 32) < 0x8000
113 PTR_ADDIU t0, $28, _THREAD_SIZE - 32
114#else
115 PTR_LI t0, _THREAD_SIZE - 32
116 PTR_ADDU t0, $28
117#endif
118 set_saved_sp t0, t1, t2
119
120 mfc0 t1, CP0_STATUS /* Do we really need this? */
121 li a3, 0xff01
122 and t1, a3
123 LONG_L a2, THREAD_STATUS(a1)
124 nor a3, $0, a3
125 and a2, a3
126 or a2, t1
127 mtc0 a2, CP0_STATUS
128 move v0, a0
129 jr ra
130 END(resume)
131
132/*
133 * void octeon_cop2_save(struct octeon_cop2_state *a0)
134 */
135 .align 7
136 LEAF(octeon_cop2_save)
137
138 dmfc0 t9, $9,7 /* CvmCtl register. */
139
140 /* Save the COP2 CRC state */
141 dmfc2 t0, 0x0201
142 dmfc2 t1, 0x0202
143 dmfc2 t2, 0x0200
144 sd t0, OCTEON_CP2_CRC_IV(a0)
145 sd t1, OCTEON_CP2_CRC_LENGTH(a0)
146 sd t2, OCTEON_CP2_CRC_POLY(a0)
147 /* Skip next instructions if CvmCtl[NODFA_CP2] set */
148 bbit1 t9, 28, 1f
149
150 /* Save the LLM state */
151 dmfc2 t0, 0x0402
152 dmfc2 t1, 0x040A
153 sd t0, OCTEON_CP2_LLM_DAT(a0)
154 sd t1, OCTEON_CP2_LLM_DAT+8(a0)
155
1561: bbit1 t9, 26, 3f /* done if CvmCtl[NOCRYPTO] set */
157
158 /* Save the COP2 crypto state */
159 /* this part is mostly common to both pass 1 and later revisions */
160 dmfc2 t0, 0x0084
161 dmfc2 t1, 0x0080
162 dmfc2 t2, 0x0081
163 dmfc2 t3, 0x0082
164 sd t0, OCTEON_CP2_3DES_IV(a0)
165 dmfc2 t0, 0x0088
166 sd t1, OCTEON_CP2_3DES_KEY(a0)
167 dmfc2 t1, 0x0111 /* only necessary for pass 1 */
168 sd t2, OCTEON_CP2_3DES_KEY+8(a0)
169 dmfc2 t2, 0x0102
170 sd t3, OCTEON_CP2_3DES_KEY+16(a0)
171 dmfc2 t3, 0x0103
172 sd t0, OCTEON_CP2_3DES_RESULT(a0)
173 dmfc2 t0, 0x0104
174 sd t1, OCTEON_CP2_AES_INP0(a0) /* only necessary for pass 1 */
175 dmfc2 t1, 0x0105
176 sd t2, OCTEON_CP2_AES_IV(a0)
177 dmfc2 t2, 0x0106
178 sd t3, OCTEON_CP2_AES_IV+8(a0)
179 dmfc2 t3, 0x0107
180 sd t0, OCTEON_CP2_AES_KEY(a0)
181 dmfc2 t0, 0x0110
182 sd t1, OCTEON_CP2_AES_KEY+8(a0)
183 dmfc2 t1, 0x0100
184 sd t2, OCTEON_CP2_AES_KEY+16(a0)
185 dmfc2 t2, 0x0101
186 sd t3, OCTEON_CP2_AES_KEY+24(a0)
187 mfc0 t3, $15,0 /* Get the processor ID register */
188 sd t0, OCTEON_CP2_AES_KEYLEN(a0)
189 li t0, 0x000d0000 /* This is the processor ID of Octeon Pass1 */
190 sd t1, OCTEON_CP2_AES_RESULT(a0)
191 sd t2, OCTEON_CP2_AES_RESULT+8(a0)
192 /* Skip to the Pass1 version of the remainder of the COP2 state */
193 beq t3, t0, 2f
194
195 /* the non-pass1 state when !CvmCtl[NOCRYPTO] */
196 dmfc2 t1, 0x0240
197 dmfc2 t2, 0x0241
198 dmfc2 t3, 0x0242
199 dmfc2 t0, 0x0243
200 sd t1, OCTEON_CP2_HSH_DATW(a0)
201 dmfc2 t1, 0x0244
202 sd t2, OCTEON_CP2_HSH_DATW+8(a0)
203 dmfc2 t2, 0x0245
204 sd t3, OCTEON_CP2_HSH_DATW+16(a0)
205 dmfc2 t3, 0x0246
206 sd t0, OCTEON_CP2_HSH_DATW+24(a0)
207 dmfc2 t0, 0x0247
208 sd t1, OCTEON_CP2_HSH_DATW+32(a0)
209 dmfc2 t1, 0x0248
210 sd t2, OCTEON_CP2_HSH_DATW+40(a0)
211 dmfc2 t2, 0x0249
212 sd t3, OCTEON_CP2_HSH_DATW+48(a0)
213 dmfc2 t3, 0x024A
214 sd t0, OCTEON_CP2_HSH_DATW+56(a0)
215 dmfc2 t0, 0x024B
216 sd t1, OCTEON_CP2_HSH_DATW+64(a0)
217 dmfc2 t1, 0x024C
218 sd t2, OCTEON_CP2_HSH_DATW+72(a0)
219 dmfc2 t2, 0x024D
220 sd t3, OCTEON_CP2_HSH_DATW+80(a0)
221 dmfc2 t3, 0x024E
222 sd t0, OCTEON_CP2_HSH_DATW+88(a0)
223 dmfc2 t0, 0x0250
224 sd t1, OCTEON_CP2_HSH_DATW+96(a0)
225 dmfc2 t1, 0x0251
226 sd t2, OCTEON_CP2_HSH_DATW+104(a0)
227 dmfc2 t2, 0x0252
228 sd t3, OCTEON_CP2_HSH_DATW+112(a0)
229 dmfc2 t3, 0x0253
230 sd t0, OCTEON_CP2_HSH_IVW(a0)
231 dmfc2 t0, 0x0254
232 sd t1, OCTEON_CP2_HSH_IVW+8(a0)
233 dmfc2 t1, 0x0255
234 sd t2, OCTEON_CP2_HSH_IVW+16(a0)
235 dmfc2 t2, 0x0256
236 sd t3, OCTEON_CP2_HSH_IVW+24(a0)
237 dmfc2 t3, 0x0257
238 sd t0, OCTEON_CP2_HSH_IVW+32(a0)
239 dmfc2 t0, 0x0258
240 sd t1, OCTEON_CP2_HSH_IVW+40(a0)
241 dmfc2 t1, 0x0259
242 sd t2, OCTEON_CP2_HSH_IVW+48(a0)
243 dmfc2 t2, 0x025E
244 sd t3, OCTEON_CP2_HSH_IVW+56(a0)
245 dmfc2 t3, 0x025A
246 sd t0, OCTEON_CP2_GFM_MULT(a0)
247 dmfc2 t0, 0x025B
248 sd t1, OCTEON_CP2_GFM_MULT+8(a0)
249 sd t2, OCTEON_CP2_GFM_POLY(a0)
250 sd t3, OCTEON_CP2_GFM_RESULT(a0)
251 sd t0, OCTEON_CP2_GFM_RESULT+8(a0)
252 jr ra
253
2542: /* pass 1 special stuff when !CvmCtl[NOCRYPTO] */
255 dmfc2 t3, 0x0040
256 dmfc2 t0, 0x0041
257 dmfc2 t1, 0x0042
258 dmfc2 t2, 0x0043
259 sd t3, OCTEON_CP2_HSH_DATW(a0)
260 dmfc2 t3, 0x0044
261 sd t0, OCTEON_CP2_HSH_DATW+8(a0)
262 dmfc2 t0, 0x0045
263 sd t1, OCTEON_CP2_HSH_DATW+16(a0)
264 dmfc2 t1, 0x0046
265 sd t2, OCTEON_CP2_HSH_DATW+24(a0)
266 dmfc2 t2, 0x0048
267 sd t3, OCTEON_CP2_HSH_DATW+32(a0)
268 dmfc2 t3, 0x0049
269 sd t0, OCTEON_CP2_HSH_DATW+40(a0)
270 dmfc2 t0, 0x004A
271 sd t1, OCTEON_CP2_HSH_DATW+48(a0)
272 sd t2, OCTEON_CP2_HSH_IVW(a0)
273 sd t3, OCTEON_CP2_HSH_IVW+8(a0)
274 sd t0, OCTEON_CP2_HSH_IVW+16(a0)
275
2763: /* pass 1 or CvmCtl[NOCRYPTO] set */
277 jr ra
278 END(octeon_cop2_save)
279
280/*
281 * void octeon_cop2_restore(struct octeon_cop2_state *a0)
282 */
283 .align 7
284 .set push
285 .set noreorder
286 LEAF(octeon_cop2_restore)
287 /* First cache line was prefetched before the call */
288 pref 4, 128(a0)
289 dmfc0 t9, $9,7 /* CvmCtl register. */
290
291 pref 4, 256(a0)
292 ld t0, OCTEON_CP2_CRC_IV(a0)
293 pref 4, 384(a0)
294 ld t1, OCTEON_CP2_CRC_LENGTH(a0)
295 ld t2, OCTEON_CP2_CRC_POLY(a0)
296
297 /* Restore the COP2 CRC state */
298 dmtc2 t0, 0x0201
299 dmtc2 t1, 0x1202
300 bbit1 t9, 28, 2f /* Skip LLM if CvmCtl[NODFA_CP2] is set */
301 dmtc2 t2, 0x4200
302
303 /* Restore the LLM state */
304 ld t0, OCTEON_CP2_LLM_DAT(a0)
305 ld t1, OCTEON_CP2_LLM_DAT+8(a0)
306 dmtc2 t0, 0x0402
307 dmtc2 t1, 0x040A
308
3092:
310 bbit1 t9, 26, done_restore /* done if CvmCtl[NOCRYPTO] set */
311 nop
312
313 /* Restore the COP2 crypto state common to pass 1 and pass 2 */
314 ld t0, OCTEON_CP2_3DES_IV(a0)
315 ld t1, OCTEON_CP2_3DES_KEY(a0)
316 ld t2, OCTEON_CP2_3DES_KEY+8(a0)
317 dmtc2 t0, 0x0084
318 ld t0, OCTEON_CP2_3DES_KEY+16(a0)
319 dmtc2 t1, 0x0080
320 ld t1, OCTEON_CP2_3DES_RESULT(a0)
321 dmtc2 t2, 0x0081
322 ld t2, OCTEON_CP2_AES_INP0(a0) /* only really needed for pass 1 */
323 dmtc2 t0, 0x0082
324 ld t0, OCTEON_CP2_AES_IV(a0)
325 dmtc2 t1, 0x0098
326 ld t1, OCTEON_CP2_AES_IV+8(a0)
327 dmtc2 t2, 0x010A /* only really needed for pass 1 */
328 ld t2, OCTEON_CP2_AES_KEY(a0)
329 dmtc2 t0, 0x0102
330 ld t0, OCTEON_CP2_AES_KEY+8(a0)
331 dmtc2 t1, 0x0103
332 ld t1, OCTEON_CP2_AES_KEY+16(a0)
333 dmtc2 t2, 0x0104
334 ld t2, OCTEON_CP2_AES_KEY+24(a0)
335 dmtc2 t0, 0x0105
336 ld t0, OCTEON_CP2_AES_KEYLEN(a0)
337 dmtc2 t1, 0x0106
338 ld t1, OCTEON_CP2_AES_RESULT(a0)
339 dmtc2 t2, 0x0107
340 ld t2, OCTEON_CP2_AES_RESULT+8(a0)
341 mfc0 t3, $15,0 /* Get the processor ID register */
342 dmtc2 t0, 0x0110
343 li t0, 0x000d0000 /* This is the processor ID of Octeon Pass1 */
344 dmtc2 t1, 0x0100
345 bne t0, t3, 3f /* Skip the next stuff for non-pass1 */
346 dmtc2 t2, 0x0101
347
348 /* this code is specific for pass 1 */
349 ld t0, OCTEON_CP2_HSH_DATW(a0)
350 ld t1, OCTEON_CP2_HSH_DATW+8(a0)
351 ld t2, OCTEON_CP2_HSH_DATW+16(a0)
352 dmtc2 t0, 0x0040
353 ld t0, OCTEON_CP2_HSH_DATW+24(a0)
354 dmtc2 t1, 0x0041
355 ld t1, OCTEON_CP2_HSH_DATW+32(a0)
356 dmtc2 t2, 0x0042
357 ld t2, OCTEON_CP2_HSH_DATW+40(a0)
358 dmtc2 t0, 0x0043
359 ld t0, OCTEON_CP2_HSH_DATW+48(a0)
360 dmtc2 t1, 0x0044
361 ld t1, OCTEON_CP2_HSH_IVW(a0)
362 dmtc2 t2, 0x0045
363 ld t2, OCTEON_CP2_HSH_IVW+8(a0)
364 dmtc2 t0, 0x0046
365 ld t0, OCTEON_CP2_HSH_IVW+16(a0)
366 dmtc2 t1, 0x0048
367 dmtc2 t2, 0x0049
368 b done_restore /* unconditional branch */
369 dmtc2 t0, 0x004A
370
3713: /* this is post-pass1 code */
372 ld t2, OCTEON_CP2_HSH_DATW(a0)
373 ld t0, OCTEON_CP2_HSH_DATW+8(a0)
374 ld t1, OCTEON_CP2_HSH_DATW+16(a0)
375 dmtc2 t2, 0x0240
376 ld t2, OCTEON_CP2_HSH_DATW+24(a0)
377 dmtc2 t0, 0x0241
378 ld t0, OCTEON_CP2_HSH_DATW+32(a0)
379 dmtc2 t1, 0x0242
380 ld t1, OCTEON_CP2_HSH_DATW+40(a0)
381 dmtc2 t2, 0x0243
382 ld t2, OCTEON_CP2_HSH_DATW+48(a0)
383 dmtc2 t0, 0x0244
384 ld t0, OCTEON_CP2_HSH_DATW+56(a0)
385 dmtc2 t1, 0x0245
386 ld t1, OCTEON_CP2_HSH_DATW+64(a0)
387 dmtc2 t2, 0x0246
388 ld t2, OCTEON_CP2_HSH_DATW+72(a0)
389 dmtc2 t0, 0x0247
390 ld t0, OCTEON_CP2_HSH_DATW+80(a0)
391 dmtc2 t1, 0x0248
392 ld t1, OCTEON_CP2_HSH_DATW+88(a0)
393 dmtc2 t2, 0x0249
394 ld t2, OCTEON_CP2_HSH_DATW+96(a0)
395 dmtc2 t0, 0x024A
396 ld t0, OCTEON_CP2_HSH_DATW+104(a0)
397 dmtc2 t1, 0x024B
398 ld t1, OCTEON_CP2_HSH_DATW+112(a0)
399 dmtc2 t2, 0x024C
400 ld t2, OCTEON_CP2_HSH_IVW(a0)
401 dmtc2 t0, 0x024D
402 ld t0, OCTEON_CP2_HSH_IVW+8(a0)
403 dmtc2 t1, 0x024E
404 ld t1, OCTEON_CP2_HSH_IVW+16(a0)
405 dmtc2 t2, 0x0250
406 ld t2, OCTEON_CP2_HSH_IVW+24(a0)
407 dmtc2 t0, 0x0251
408 ld t0, OCTEON_CP2_HSH_IVW+32(a0)
409 dmtc2 t1, 0x0252
410 ld t1, OCTEON_CP2_HSH_IVW+40(a0)
411 dmtc2 t2, 0x0253
412 ld t2, OCTEON_CP2_HSH_IVW+48(a0)
413 dmtc2 t0, 0x0254
414 ld t0, OCTEON_CP2_HSH_IVW+56(a0)
415 dmtc2 t1, 0x0255
416 ld t1, OCTEON_CP2_GFM_MULT(a0)
417 dmtc2 t2, 0x0256
418 ld t2, OCTEON_CP2_GFM_MULT+8(a0)
419 dmtc2 t0, 0x0257
420 ld t0, OCTEON_CP2_GFM_POLY(a0)
421 dmtc2 t1, 0x0258
422 ld t1, OCTEON_CP2_GFM_RESULT(a0)
423 dmtc2 t2, 0x0259
424 ld t2, OCTEON_CP2_GFM_RESULT+8(a0)
425 dmtc2 t0, 0x025E
426 dmtc2 t1, 0x025A
427 dmtc2 t2, 0x025B
428
429done_restore:
430 jr ra
431 nop
432 END(octeon_cop2_restore)
433 .set pop
434
435/*
436 * void octeon_mult_save()
437 * sp is assumed to point to a struct pt_regs
438 *
439 * NOTE: This is called in SAVE_SOME in stackframe.h. It can only
440 * safely modify k0 and k1.
441 */
442 .align 7
443 .set push
444 .set noreorder
445 LEAF(octeon_mult_save)
446 dmfc0 k0, $9,7 /* CvmCtl register. */
447 bbit1 k0, 27, 1f /* Skip CvmCtl[NOMUL] */
448 nop
449
450 /* Save the multiplier state */
451 v3mulu k0, $0, $0
452 v3mulu k1, $0, $0
453 sd k0, PT_MTP(sp) /* PT_MTP has P0 */
454 v3mulu k0, $0, $0
455 sd k1, PT_MTP+8(sp) /* PT_MTP+8 has P1 */
456 ori k1, $0, 1
457 v3mulu k1, k1, $0
458 sd k0, PT_MTP+16(sp) /* PT_MTP+16 has P2 */
459 v3mulu k0, $0, $0
460 sd k1, PT_MPL(sp) /* PT_MPL has MPL0 */
461 v3mulu k1, $0, $0
462 sd k0, PT_MPL+8(sp) /* PT_MPL+8 has MPL1 */
463 jr ra
464 sd k1, PT_MPL+16(sp) /* PT_MPL+16 has MPL2 */
465
4661: /* Resume here if CvmCtl[NOMUL] */
467 jr ra
468 END(octeon_mult_save)
469 .set pop
470
471/*
472 * void octeon_mult_restore()
473 * sp is assumed to point to a struct pt_regs
474 *
475 * NOTE: This is called in RESTORE_SOME in stackframe.h.
476 */
477 .align 7
478 .set push
479 .set noreorder
480 LEAF(octeon_mult_restore)
481 dmfc0 k1, $9,7 /* CvmCtl register. */
482 ld v0, PT_MPL(sp) /* MPL0 */
483 ld v1, PT_MPL+8(sp) /* MPL1 */
484 ld k0, PT_MPL+16(sp) /* MPL2 */
485 bbit1 k1, 27, 1f /* Skip CvmCtl[NOMUL] */
486 /* Normally falls through, so no time wasted here */
487 nop
488
489 /* Restore the multiplier state */
490 ld k1, PT_MTP+16(sp) /* P2 */
491 MTM0 v0 /* MPL0 */
492 ld v0, PT_MTP+8(sp) /* P1 */
493 MTM1 v1 /* MPL1 */
494 ld v1, PT_MTP(sp) /* P0 */
495 MTM2 k0 /* MPL2 */
496 MTP2 k1 /* P2 */
497 MTP1 v0 /* P1 */
498 jr ra
499 MTP0 v1 /* P0 */
500
5011: /* Resume here if CvmCtl[NOMUL] */
502 jr ra
503 nop
504 END(octeon_mult_restore)
505 .set pop
506
diff --git a/arch/mips/kernel/ptrace32.c b/arch/mips/kernel/ptrace32.c
index 1ca34104e593..c4f9ac17474a 100644
--- a/arch/mips/kernel/ptrace32.c
+++ b/arch/mips/kernel/ptrace32.c
@@ -49,19 +49,6 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
49 int ret; 49 int ret;
50 50
51 switch (request) { 51 switch (request) {
52 /* when I and D space are separate, these will need to be fixed. */
53 case PTRACE_PEEKTEXT: /* read word at location addr. */
54 case PTRACE_PEEKDATA: {
55 unsigned int tmp;
56 int copied;
57
58 copied = access_process_vm(child, addr, &tmp, sizeof(tmp), 0);
59 ret = -EIO;
60 if (copied != sizeof(tmp))
61 break;
62 ret = put_user(tmp, (unsigned int __user *) (unsigned long) data);
63 break;
64 }
65 52
66 /* 53 /*
67 * Read 4 bytes of the other process' storage 54 * Read 4 bytes of the other process' storage
@@ -208,16 +195,6 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
208 break; 195 break;
209 } 196 }
210 197
211 /* when I and D space are separate, this will have to be fixed. */
212 case PTRACE_POKETEXT: /* write the word at location addr. */
213 case PTRACE_POKEDATA:
214 ret = 0;
215 if (access_process_vm(child, addr, &data, sizeof(data), 1)
216 == sizeof(data))
217 break;
218 ret = -EIO;
219 break;
220
221 /* 198 /*
222 * Write 4 bytes into the other process' storage 199 * Write 4 bytes into the other process' storage
223 * data is the 4 bytes that the user wants written 200 * data is the 4 bytes that the user wants written
@@ -332,50 +309,11 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
332 ret = ptrace_setfpregs(child, (__u32 __user *) (__u64) data); 309 ret = ptrace_setfpregs(child, (__u32 __user *) (__u64) data);
333 break; 310 break;
334 311
335 case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */
336 case PTRACE_CONT: { /* restart after signal. */
337 ret = -EIO;
338 if (!valid_signal(data))
339 break;
340 if (request == PTRACE_SYSCALL) {
341 set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
342 }
343 else {
344 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
345 }
346 child->exit_code = data;
347 wake_up_process(child);
348 ret = 0;
349 break;
350 }
351
352 /*
353 * make the child exit. Best I can do is send it a sigkill.
354 * perhaps it should be put in the status that it wants to
355 * exit.
356 */
357 case PTRACE_KILL:
358 ret = 0;
359 if (child->exit_state == EXIT_ZOMBIE) /* already dead */
360 break;
361 child->exit_code = SIGKILL;
362 wake_up_process(child);
363 break;
364
365 case PTRACE_GET_THREAD_AREA: 312 case PTRACE_GET_THREAD_AREA:
366 ret = put_user(task_thread_info(child)->tp_value, 313 ret = put_user(task_thread_info(child)->tp_value,
367 (unsigned int __user *) (unsigned long) data); 314 (unsigned int __user *) (unsigned long) data);
368 break; 315 break;
369 316
370 case PTRACE_DETACH: /* detach a process that was attached. */
371 ret = ptrace_detach(child, data);
372 break;
373
374 case PTRACE_GETEVENTMSG:
375 ret = put_user(child->ptrace_message,
376 (unsigned int __user *) (unsigned long) data);
377 break;
378
379 case PTRACE_GET_THREAD_AREA_3264: 317 case PTRACE_GET_THREAD_AREA_3264:
380 ret = put_user(task_thread_info(child)->tp_value, 318 ret = put_user(task_thread_info(child)->tp_value,
381 (unsigned long __user *) (unsigned long) data); 319 (unsigned long __user *) (unsigned long) data);
@@ -392,7 +330,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
392 break; 330 break;
393 331
394 default: 332 default:
395 ret = ptrace_request(child, request, addr, data); 333 ret = compat_ptrace_request(child, request, addr, data);
396 break; 334 break;
397 } 335 }
398out: 336out:
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index d0916a55cd77..9ab70c3b5be6 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -398,8 +398,8 @@ einval: li v0, -ENOSYS
398 sys sys_uselib 1 398 sys sys_uselib 1
399 sys sys_swapon 2 399 sys sys_swapon 2
400 sys sys_reboot 3 400 sys sys_reboot 3
401 sys old_readdir 3 401 sys sys_old_readdir 3
402 sys old_mmap 6 /* 4090 */ 402 sys sys_mips_mmap 6 /* 4090 */
403 sys sys_munmap 2 403 sys sys_munmap 2
404 sys sys_truncate 2 404 sys sys_truncate 2
405 sys sys_ftruncate 2 405 sys sys_ftruncate 2
@@ -519,7 +519,7 @@ einval: li v0, -ENOSYS
519 sys sys_sendfile 4 519 sys sys_sendfile 4
520 sys sys_ni_syscall 0 520 sys sys_ni_syscall 0
521 sys sys_ni_syscall 0 521 sys sys_ni_syscall 0
522 sys sys_mmap2 6 /* 4210 */ 522 sys sys_mips_mmap2 6 /* 4210 */
523 sys sys_truncate64 4 523 sys sys_truncate64 4
524 sys sys_ftruncate64 4 524 sys sys_ftruncate64 4
525 sys sys_stat64 2 525 sys sys_stat64 2
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
index a9e171618994..9b4698667154 100644
--- a/arch/mips/kernel/scall64-64.S
+++ b/arch/mips/kernel/scall64-64.S
@@ -207,7 +207,7 @@ sys_call_table:
207 PTR sys_newlstat 207 PTR sys_newlstat
208 PTR sys_poll 208 PTR sys_poll
209 PTR sys_lseek 209 PTR sys_lseek
210 PTR old_mmap 210 PTR sys_mips_mmap
211 PTR sys_mprotect /* 5010 */ 211 PTR sys_mprotect /* 5010 */
212 PTR sys_munmap 212 PTR sys_munmap
213 PTR sys_brk 213 PTR sys_brk
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index 30f3b6317a83..7438e92f8a01 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -129,12 +129,12 @@ EXPORT(sysn32_call_table)
129 PTR sys_newlstat 129 PTR sys_newlstat
130 PTR sys_poll 130 PTR sys_poll
131 PTR sys_lseek 131 PTR sys_lseek
132 PTR old_mmap 132 PTR sys_mips_mmap
133 PTR sys_mprotect /* 6010 */ 133 PTR sys_mprotect /* 6010 */
134 PTR sys_munmap 134 PTR sys_munmap
135 PTR sys_brk 135 PTR sys_brk
136 PTR sys32_rt_sigaction 136 PTR sys_32_rt_sigaction
137 PTR sys32_rt_sigprocmask 137 PTR sys_32_rt_sigprocmask
138 PTR compat_sys_ioctl /* 6015 */ 138 PTR compat_sys_ioctl /* 6015 */
139 PTR sys_pread64 139 PTR sys_pread64
140 PTR sys_pwrite64 140 PTR sys_pwrite64
@@ -159,7 +159,7 @@ EXPORT(sysn32_call_table)
159 PTR compat_sys_setitimer 159 PTR compat_sys_setitimer
160 PTR sys_alarm 160 PTR sys_alarm
161 PTR sys_getpid 161 PTR sys_getpid
162 PTR sys32_sendfile 162 PTR sys_32_sendfile
163 PTR sys_socket /* 6040 */ 163 PTR sys_socket /* 6040 */
164 PTR sys_connect 164 PTR sys_connect
165 PTR sys_accept 165 PTR sys_accept
@@ -181,14 +181,14 @@ 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 sys32_newuname 184 PTR sys_32_newuname
185 PTR sys_semget 185 PTR sys_semget
186 PTR sys_semop 186 PTR sys_semop
187 PTR sysn32_semctl 187 PTR sys_n32_semctl
188 PTR sys_shmdt /* 6065 */ 188 PTR sys_shmdt /* 6065 */
189 PTR sys_msgget 189 PTR sys_msgget
190 PTR sysn32_msgsnd 190 PTR sys_n32_msgsnd
191 PTR sysn32_msgrcv 191 PTR sys_n32_msgrcv
192 PTR compat_sys_msgctl 192 PTR compat_sys_msgctl
193 PTR compat_sys_fcntl /* 6070 */ 193 PTR compat_sys_fcntl /* 6070 */
194 PTR sys_flock 194 PTR sys_flock
@@ -245,15 +245,15 @@ EXPORT(sysn32_call_table)
245 PTR sys_getsid 245 PTR sys_getsid
246 PTR sys_capget 246 PTR sys_capget
247 PTR sys_capset 247 PTR sys_capset
248 PTR sys32_rt_sigpending /* 6125 */ 248 PTR sys_32_rt_sigpending /* 6125 */
249 PTR compat_sys_rt_sigtimedwait 249 PTR compat_sys_rt_sigtimedwait
250 PTR sys32_rt_sigqueueinfo 250 PTR sys_32_rt_sigqueueinfo
251 PTR sysn32_rt_sigsuspend 251 PTR sysn32_rt_sigsuspend
252 PTR sys32_sigaltstack 252 PTR sys32_sigaltstack
253 PTR compat_sys_utime /* 6130 */ 253 PTR compat_sys_utime /* 6130 */
254 PTR sys_mknod 254 PTR sys_mknod
255 PTR sys32_personality 255 PTR sys_32_personality
256 PTR sys32_ustat 256 PTR sys_32_ustat
257 PTR compat_sys_statfs 257 PTR compat_sys_statfs
258 PTR compat_sys_fstatfs /* 6135 */ 258 PTR compat_sys_fstatfs /* 6135 */
259 PTR sys_sysfs 259 PTR sys_sysfs
@@ -265,14 +265,14 @@ EXPORT(sysn32_call_table)
265 PTR sys_sched_getscheduler 265 PTR sys_sched_getscheduler
266 PTR sys_sched_get_priority_max 266 PTR sys_sched_get_priority_max
267 PTR sys_sched_get_priority_min 267 PTR sys_sched_get_priority_min
268 PTR sys32_sched_rr_get_interval /* 6145 */ 268 PTR sys_32_sched_rr_get_interval /* 6145 */
269 PTR sys_mlock 269 PTR sys_mlock
270 PTR sys_munlock 270 PTR sys_munlock
271 PTR sys_mlockall 271 PTR sys_mlockall
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 sys32_sysctl 275 PTR sys_32_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 */
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index fefef4af8595..b0fef4ff9827 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -265,12 +265,12 @@ sys_call_table:
265 PTR sys_olduname 265 PTR sys_olduname
266 PTR sys_umask /* 4060 */ 266 PTR sys_umask /* 4060 */
267 PTR sys_chroot 267 PTR sys_chroot
268 PTR sys32_ustat 268 PTR sys_32_ustat
269 PTR sys_dup2 269 PTR sys_dup2
270 PTR sys_getppid 270 PTR sys_getppid
271 PTR sys_getpgrp /* 4065 */ 271 PTR sys_getpgrp /* 4065 */
272 PTR sys_setsid 272 PTR sys_setsid
273 PTR sys32_sigaction 273 PTR sys_32_sigaction
274 PTR sys_sgetmask 274 PTR sys_sgetmask
275 PTR sys_ssetmask 275 PTR sys_ssetmask
276 PTR sys_setreuid /* 4070 */ 276 PTR sys_setreuid /* 4070 */
@@ -293,7 +293,7 @@ sys_call_table:
293 PTR sys_swapon 293 PTR sys_swapon
294 PTR sys_reboot 294 PTR sys_reboot
295 PTR compat_sys_old_readdir 295 PTR compat_sys_old_readdir
296 PTR old_mmap /* 4090 */ 296 PTR sys_mips_mmap /* 4090 */
297 PTR sys_munmap 297 PTR sys_munmap
298 PTR sys_truncate 298 PTR sys_truncate
299 PTR sys_ftruncate 299 PTR sys_ftruncate
@@ -320,12 +320,12 @@ sys_call_table:
320 PTR compat_sys_wait4 320 PTR compat_sys_wait4
321 PTR sys_swapoff /* 4115 */ 321 PTR sys_swapoff /* 4115 */
322 PTR compat_sys_sysinfo 322 PTR compat_sys_sysinfo
323 PTR sys32_ipc 323 PTR sys_32_ipc
324 PTR sys_fsync 324 PTR sys_fsync
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 sys32_newuname 328 PTR sys_32_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 */
@@ -339,11 +339,11 @@ sys_call_table:
339 PTR sys_fchdir 339 PTR sys_fchdir
340 PTR sys_bdflush 340 PTR sys_bdflush
341 PTR sys_sysfs /* 4135 */ 341 PTR sys_sysfs /* 4135 */
342 PTR sys32_personality 342 PTR sys_32_personality
343 PTR sys_ni_syscall /* for afs_syscall */ 343 PTR sys_ni_syscall /* for afs_syscall */
344 PTR sys_setfsuid 344 PTR sys_setfsuid
345 PTR sys_setfsgid 345 PTR sys_setfsgid
346 PTR sys32_llseek /* 4140 */ 346 PTR sys_32_llseek /* 4140 */
347 PTR compat_sys_getdents 347 PTR compat_sys_getdents
348 PTR compat_sys_select 348 PTR compat_sys_select
349 PTR sys_flock 349 PTR sys_flock
@@ -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 sys32_sysctl 359 PTR sys_32_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
@@ -368,7 +368,7 @@ sys_call_table:
368 PTR sys_sched_yield 368 PTR sys_sched_yield
369 PTR sys_sched_get_priority_max 369 PTR sys_sched_get_priority_max
370 PTR sys_sched_get_priority_min 370 PTR sys_sched_get_priority_min
371 PTR sys32_sched_rr_get_interval /* 4165 */ 371 PTR sys_32_sched_rr_get_interval /* 4165 */
372 PTR compat_sys_nanosleep 372 PTR compat_sys_nanosleep
373 PTR sys_mremap 373 PTR sys_mremap
374 PTR sys_accept 374 PTR sys_accept
@@ -397,25 +397,25 @@ sys_call_table:
397 PTR sys_getresgid 397 PTR sys_getresgid
398 PTR sys_prctl 398 PTR sys_prctl
399 PTR sys32_rt_sigreturn 399 PTR sys32_rt_sigreturn
400 PTR sys32_rt_sigaction 400 PTR sys_32_rt_sigaction
401 PTR sys32_rt_sigprocmask /* 4195 */ 401 PTR sys_32_rt_sigprocmask /* 4195 */
402 PTR sys32_rt_sigpending 402 PTR sys_32_rt_sigpending
403 PTR compat_sys_rt_sigtimedwait 403 PTR compat_sys_rt_sigtimedwait
404 PTR sys32_rt_sigqueueinfo 404 PTR sys_32_rt_sigqueueinfo
405 PTR sys32_rt_sigsuspend 405 PTR sys32_rt_sigsuspend
406 PTR sys32_pread /* 4200 */ 406 PTR sys_32_pread /* 4200 */
407 PTR sys32_pwrite 407 PTR sys_32_pwrite
408 PTR sys_chown 408 PTR sys_chown
409 PTR sys_getcwd 409 PTR sys_getcwd
410 PTR sys_capget 410 PTR sys_capget
411 PTR sys_capset /* 4205 */ 411 PTR sys_capset /* 4205 */
412 PTR sys32_sigaltstack 412 PTR sys32_sigaltstack
413 PTR sys32_sendfile 413 PTR sys_32_sendfile
414 PTR sys_ni_syscall 414 PTR sys_ni_syscall
415 PTR sys_ni_syscall 415 PTR sys_ni_syscall
416 PTR sys32_mmap2 /* 4210 */ 416 PTR sys_mips_mmap2 /* 4210 */
417 PTR sys32_truncate64 417 PTR sys_32_truncate64
418 PTR sys32_ftruncate64 418 PTR sys_32_ftruncate64
419 PTR sys_newstat 419 PTR sys_newstat
420 PTR sys_newlstat 420 PTR sys_newlstat
421 PTR sys_newfstat /* 4215 */ 421 PTR sys_newfstat /* 4215 */
@@ -481,7 +481,7 @@ sys_call_table:
481 PTR compat_sys_mq_notify /* 4275 */ 481 PTR compat_sys_mq_notify /* 4275 */
482 PTR compat_sys_mq_getsetattr 482 PTR compat_sys_mq_getsetattr
483 PTR sys_ni_syscall /* sys_vserver */ 483 PTR sys_ni_syscall /* sys_vserver */
484 PTR sys32_waitid 484 PTR sys_32_waitid
485 PTR sys_ni_syscall /* available, was setaltroot */ 485 PTR sys_ni_syscall /* available, was setaltroot */
486 PTR sys_add_key /* 4280 */ 486 PTR sys_add_key /* 4280 */
487 PTR sys_request_key 487 PTR sys_request_key
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c
index a4e106c56ab5..830c5ef9932b 100644
--- a/arch/mips/kernel/signal.c
+++ b/arch/mips/kernel/signal.c
@@ -19,6 +19,7 @@
19#include <linux/ptrace.h> 19#include <linux/ptrace.h>
20#include <linux/unistd.h> 20#include <linux/unistd.h>
21#include <linux/compiler.h> 21#include <linux/compiler.h>
22#include <linux/syscalls.h>
22#include <linux/uaccess.h> 23#include <linux/uaccess.h>
23 24
24#include <asm/abi.h> 25#include <asm/abi.h>
@@ -338,8 +339,8 @@ asmlinkage int sys_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
338} 339}
339 340
340#ifdef CONFIG_TRAD_SIGNALS 341#ifdef CONFIG_TRAD_SIGNALS
341asmlinkage int sys_sigaction(int sig, const struct sigaction __user *act, 342SYSCALL_DEFINE3(sigaction, int, sig, const struct sigaction __user *, act,
342 struct sigaction __user *oact) 343 struct sigaction __user *, oact)
343{ 344{
344 struct k_sigaction new_ka, old_ka; 345 struct k_sigaction new_ka, old_ka;
345 int ret; 346 int ret;
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c
index 652709b353ad..2e74075ac0ca 100644
--- a/arch/mips/kernel/signal32.c
+++ b/arch/mips/kernel/signal32.c
@@ -349,8 +349,8 @@ asmlinkage int sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
349 return -ERESTARTNOHAND; 349 return -ERESTARTNOHAND;
350} 350}
351 351
352asmlinkage int sys32_sigaction(int sig, const struct sigaction32 __user *act, 352SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act,
353 struct sigaction32 __user *oact) 353 struct sigaction32 __user *, oact)
354{ 354{
355 struct k_sigaction new_ka, old_ka; 355 struct k_sigaction new_ka, old_ka;
356 int ret; 356 int ret;
@@ -704,9 +704,9 @@ struct mips_abi mips_abi_32 = {
704 .restart = __NR_O32_restart_syscall 704 .restart = __NR_O32_restart_syscall
705}; 705};
706 706
707asmlinkage int sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, 707SYSCALL_DEFINE4(32_rt_sigaction, int, sig,
708 struct sigaction32 __user *oact, 708 const struct sigaction32 __user *, act,
709 unsigned int sigsetsize) 709 struct sigaction32 __user *, oact, unsigned int, sigsetsize)
710{ 710{
711 struct k_sigaction new_sa, old_sa; 711 struct k_sigaction new_sa, old_sa;
712 int ret = -EINVAL; 712 int ret = -EINVAL;
@@ -748,8 +748,8 @@ out:
748 return ret; 748 return ret;
749} 749}
750 750
751asmlinkage int sys32_rt_sigprocmask(int how, compat_sigset_t __user *set, 751SYSCALL_DEFINE4(32_rt_sigprocmask, int, how, compat_sigset_t __user *, set,
752 compat_sigset_t __user *oset, unsigned int sigsetsize) 752 compat_sigset_t __user *, oset, unsigned int, sigsetsize)
753{ 753{
754 sigset_t old_set, new_set; 754 sigset_t old_set, new_set;
755 int ret; 755 int ret;
@@ -770,8 +770,8 @@ asmlinkage int sys32_rt_sigprocmask(int how, compat_sigset_t __user *set,
770 return ret; 770 return ret;
771} 771}
772 772
773asmlinkage int sys32_rt_sigpending(compat_sigset_t __user *uset, 773SYSCALL_DEFINE2(32_rt_sigpending, compat_sigset_t __user *, uset,
774 unsigned int sigsetsize) 774 unsigned int, sigsetsize)
775{ 775{
776 int ret; 776 int ret;
777 sigset_t set; 777 sigset_t set;
@@ -787,7 +787,8 @@ asmlinkage int sys32_rt_sigpending(compat_sigset_t __user *uset,
787 return ret; 787 return ret;
788} 788}
789 789
790asmlinkage int sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo) 790SYSCALL_DEFINE3(32_rt_sigqueueinfo, int, pid, int, sig,
791 compat_siginfo_t __user *, uinfo)
791{ 792{
792 siginfo_t info; 793 siginfo_t info;
793 int ret; 794 int ret;
@@ -802,10 +803,9 @@ asmlinkage int sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *
802 return ret; 803 return ret;
803} 804}
804 805
805asmlinkage long 806SYSCALL_DEFINE5(32_waitid, int, which, compat_pid_t, pid,
806sys32_waitid(int which, compat_pid_t pid, 807 compat_siginfo_t __user *, uinfo, int, options,
807 compat_siginfo_t __user *uinfo, int options, 808 struct compat_rusage __user *, uru)
808 struct compat_rusage __user *uru)
809{ 809{
810 siginfo_t info; 810 siginfo_t info;
811 struct rusage ru; 811 struct rusage ru;
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c
index b6cca01ff82b..5f5af7d4c890 100644
--- a/arch/mips/kernel/smtc.c
+++ b/arch/mips/kernel/smtc.c
@@ -686,7 +686,7 @@ void smtc_forward_irq(unsigned int irq)
686 * and efficiency, we just pick the easiest one to find. 686 * and efficiency, we just pick the easiest one to find.
687 */ 687 */
688 688
689 target = first_cpu(irq_desc[irq].affinity); 689 target = cpumask_first(irq_desc[irq].affinity);
690 690
691 /* 691 /*
692 * We depend on the platform code to have correctly processed 692 * We depend on the platform code to have correctly processed
@@ -921,11 +921,13 @@ void ipi_decode(struct smtc_ipi *pipi)
921 struct clock_event_device *cd; 921 struct clock_event_device *cd;
922 void *arg_copy = pipi->arg; 922 void *arg_copy = pipi->arg;
923 int type_copy = pipi->type; 923 int type_copy = pipi->type;
924 int irq = MIPS_CPU_IRQ_BASE + 1;
925
924 smtc_ipi_nq(&freeIPIq, pipi); 926 smtc_ipi_nq(&freeIPIq, pipi);
925 switch (type_copy) { 927 switch (type_copy) {
926 case SMTC_CLOCK_TICK: 928 case SMTC_CLOCK_TICK:
927 irq_enter(); 929 irq_enter();
928 kstat_this_cpu.irqs[MIPS_CPU_IRQ_BASE + 1]++; 930 kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq));
929 cd = &per_cpu(mips_clockevent_device, cpu); 931 cd = &per_cpu(mips_clockevent_device, cpu);
930 cd->event_handler(cd); 932 cd->event_handler(cd);
931 irq_exit(); 933 irq_exit();
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c
index 37970d9b2186..8cf384644040 100644
--- a/arch/mips/kernel/syscall.c
+++ b/arch/mips/kernel/syscall.c
@@ -152,9 +152,9 @@ out:
152 return error; 152 return error;
153} 153}
154 154
155asmlinkage unsigned long 155SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len,
156old_mmap(unsigned long addr, unsigned long len, int prot, 156 unsigned long, prot, unsigned long, flags, unsigned long,
157 int flags, int fd, off_t offset) 157 fd, off_t, offset)
158{ 158{
159 unsigned long result; 159 unsigned long result;
160 160
@@ -168,9 +168,9 @@ out:
168 return result; 168 return result;
169} 169}
170 170
171asmlinkage unsigned long 171SYSCALL_DEFINE6(mips_mmap2, unsigned long, addr, unsigned long, len,
172sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, 172 unsigned long, prot, unsigned long, flags, unsigned long, fd,
173 unsigned long flags, unsigned long fd, unsigned long pgoff) 173 unsigned long, pgoff)
174{ 174{
175 if (pgoff & (~PAGE_MASK >> 12)) 175 if (pgoff & (~PAGE_MASK >> 12))
176 return -EINVAL; 176 return -EINVAL;
@@ -240,7 +240,7 @@ out:
240/* 240/*
241 * Compacrapability ... 241 * Compacrapability ...
242 */ 242 */
243asmlinkage int sys_uname(struct old_utsname __user * name) 243SYSCALL_DEFINE1(uname, struct old_utsname __user *, name)
244{ 244{
245 if (name && !copy_to_user(name, utsname(), sizeof (*name))) 245 if (name && !copy_to_user(name, utsname(), sizeof (*name)))
246 return 0; 246 return 0;
@@ -250,7 +250,7 @@ asmlinkage int sys_uname(struct old_utsname __user * name)
250/* 250/*
251 * Compacrapability ... 251 * Compacrapability ...
252 */ 252 */
253asmlinkage int sys_olduname(struct oldold_utsname __user * name) 253SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
254{ 254{
255 int error; 255 int error;
256 256
@@ -279,7 +279,7 @@ asmlinkage int sys_olduname(struct oldold_utsname __user * name)
279 return error; 279 return error;
280} 280}
281 281
282asmlinkage int sys_set_thread_area(unsigned long addr) 282SYSCALL_DEFINE1(set_thread_area, unsigned long, addr)
283{ 283{
284 struct thread_info *ti = task_thread_info(current); 284 struct thread_info *ti = task_thread_info(current);
285 285
@@ -290,7 +290,7 @@ asmlinkage int sys_set_thread_area(unsigned long addr)
290 return 0; 290 return 0;
291} 291}
292 292
293asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3) 293asmlinkage int _sys_sysmips(long cmd, long arg1, long arg2, long arg3)
294{ 294{
295 switch (cmd) { 295 switch (cmd) {
296 case MIPS_ATOMIC_SET: 296 case MIPS_ATOMIC_SET:
@@ -325,8 +325,8 @@ asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3)
325 * 325 *
326 * This is really horribly ugly. 326 * This is really horribly ugly.
327 */ 327 */
328asmlinkage int sys_ipc(unsigned int call, int first, int second, 328SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, int, second,
329 unsigned long third, void __user *ptr, long fifth) 329 unsigned long, third, void __user *, ptr, long, fifth)
330{ 330{
331 int version, ret; 331 int version, ret;
332 332
@@ -411,7 +411,7 @@ asmlinkage int sys_ipc(unsigned int call, int first, int second,
411/* 411/*
412 * No implemented yet ... 412 * No implemented yet ...
413 */ 413 */
414asmlinkage int sys_cachectl(char *addr, int nbytes, int op) 414SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op)
415{ 415{
416 return -ENOSYS; 416 return -ENOSYS;
417} 417}
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 353056110f2b..b2d7041341b8 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -47,6 +47,7 @@
47#include <asm/mmu_context.h> 47#include <asm/mmu_context.h>
48#include <asm/types.h> 48#include <asm/types.h>
49#include <asm/stacktrace.h> 49#include <asm/stacktrace.h>
50#include <asm/irq.h>
50 51
51extern void check_wait(void); 52extern void check_wait(void);
52extern asmlinkage void r4k_wait(void); 53extern asmlinkage void r4k_wait(void);
@@ -78,6 +79,10 @@ extern asmlinkage void handle_reserved(void);
78extern int fpu_emulator_cop1Handler(struct pt_regs *xcp, 79extern int fpu_emulator_cop1Handler(struct pt_regs *xcp,
79 struct mips_fpu_struct *ctx, int has_fpu); 80 struct mips_fpu_struct *ctx, int has_fpu);
80 81
82#ifdef CONFIG_CPU_CAVIUM_OCTEON
83extern asmlinkage void octeon_cop2_restore(struct octeon_cop2_state *task);
84#endif
85
81void (*board_be_init)(void); 86void (*board_be_init)(void);
82int (*board_be_handler)(struct pt_regs *regs, int is_fixup); 87int (*board_be_handler)(struct pt_regs *regs, int is_fixup);
83void (*board_nmi_handler_setup)(void); 88void (*board_nmi_handler_setup)(void);
@@ -860,6 +865,7 @@ asmlinkage void do_cpu(struct pt_regs *regs)
860 unsigned int opcode; 865 unsigned int opcode;
861 unsigned int cpid; 866 unsigned int cpid;
862 int status; 867 int status;
868 unsigned long __maybe_unused flags;
863 869
864 die_if_kernel("do_cpu invoked from kernel context!", regs); 870 die_if_kernel("do_cpu invoked from kernel context!", regs);
865 871
@@ -915,6 +921,17 @@ asmlinkage void do_cpu(struct pt_regs *regs)
915 return; 921 return;
916 922
917 case 2: 923 case 2:
924#ifdef CONFIG_CPU_CAVIUM_OCTEON
925 prefetch(&current->thread.cp2);
926 local_irq_save(flags);
927 KSTK_STATUS(current) |= ST0_CU2;
928 status = read_c0_status();
929 write_c0_status(status | ST0_CU2);
930 octeon_cop2_restore(&(current->thread.cp2));
931 write_c0_status(status & ~ST0_CU2);
932 local_irq_restore(flags);
933 return;
934#endif
918 case 3: 935 case 3:
919 break; 936 break;
920 } 937 }
@@ -927,6 +944,9 @@ asmlinkage void do_mdmx(struct pt_regs *regs)
927 force_sig(SIGILL, current); 944 force_sig(SIGILL, current);
928} 945}
929 946
947/*
948 * Called with interrupts disabled.
949 */
930asmlinkage void do_watch(struct pt_regs *regs) 950asmlinkage void do_watch(struct pt_regs *regs)
931{ 951{
932 u32 cause; 952 u32 cause;
@@ -946,9 +966,12 @@ asmlinkage void do_watch(struct pt_regs *regs)
946 */ 966 */
947 if (test_tsk_thread_flag(current, TIF_LOAD_WATCH)) { 967 if (test_tsk_thread_flag(current, TIF_LOAD_WATCH)) {
948 mips_read_watch_registers(); 968 mips_read_watch_registers();
969 local_irq_enable();
949 force_sig(SIGTRAP, current); 970 force_sig(SIGTRAP, current);
950 } else 971 } else {
951 mips_clear_watch_registers(); 972 mips_clear_watch_registers();
973 local_irq_enable();
974 }
952} 975}
953 976
954asmlinkage void do_mcheck(struct pt_regs *regs) 977asmlinkage void do_mcheck(struct pt_regs *regs)
@@ -1488,6 +1511,10 @@ void __cpuinit per_cpu_trap_init(void)
1488 write_c0_hwrena(enable); 1511 write_c0_hwrena(enable);
1489 } 1512 }
1490 1513
1514#ifdef CONFIG_CPU_CAVIUM_OCTEON
1515 write_c0_hwrena(0xc000000f); /* Octeon has register 30 and 31 */
1516#endif
1517
1491#ifdef CONFIG_MIPS_MT_SMTC 1518#ifdef CONFIG_MIPS_MT_SMTC
1492 if (!secondaryTC) { 1519 if (!secondaryTC) {
1493#endif /* CONFIG_MIPS_MT_SMTC */ 1520#endif /* CONFIG_MIPS_MT_SMTC */
@@ -1561,7 +1588,11 @@ void __init set_handler(unsigned long offset, void *addr, unsigned long size)
1561static char panic_null_cerr[] __cpuinitdata = 1588static char panic_null_cerr[] __cpuinitdata =
1562 "Trying to set NULL cache error exception handler"; 1589 "Trying to set NULL cache error exception handler";
1563 1590
1564/* Install uncached CPU exception handler */ 1591/*
1592 * Install uncached CPU exception handler.
1593 * This is suitable only for the cache error exception which is the only
1594 * exception handler that is being run uncached.
1595 */
1565void __cpuinit set_uncached_handler(unsigned long offset, void *addr, 1596void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
1566 unsigned long size) 1597 unsigned long size)
1567{ 1598{
@@ -1572,7 +1603,7 @@ void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
1572 unsigned long uncached_ebase = TO_UNCAC(ebase); 1603 unsigned long uncached_ebase = TO_UNCAC(ebase);
1573#endif 1604#endif
1574 if (cpu_has_mips_r2) 1605 if (cpu_has_mips_r2)
1575 ebase += (read_c0_ebase() & 0x3ffff000); 1606 uncached_ebase += (read_c0_ebase() & 0x3ffff000);
1576 1607
1577 if (!addr) 1608 if (!addr)
1578 panic(panic_null_cerr); 1609 panic(panic_null_cerr);
diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile
index dbcf6511b74e..c13c7ad2cdae 100644
--- a/arch/mips/lib/Makefile
+++ b/arch/mips/lib/Makefile
@@ -27,6 +27,7 @@ obj-$(CONFIG_CPU_SB1) += dump_tlb.o
27obj-$(CONFIG_CPU_TX39XX) += r3k_dump_tlb.o 27obj-$(CONFIG_CPU_TX39XX) += r3k_dump_tlb.o
28obj-$(CONFIG_CPU_TX49XX) += dump_tlb.o 28obj-$(CONFIG_CPU_TX49XX) += dump_tlb.o
29obj-$(CONFIG_CPU_VR41XX) += dump_tlb.o 29obj-$(CONFIG_CPU_VR41XX) += dump_tlb.o
30obj-$(CONFIG_CPU_CAVIUM_OCTEON) += dump_tlb.o
30 31
31# libgcc-style stuff needed in the kernel 32# libgcc-style stuff needed in the kernel
32obj-y += ashldi3.o ashrdi3.o cmpdi2.o lshrdi3.o ucmpdi2.o 33obj-y += ashldi3.o ashrdi3.o cmpdi2.o lshrdi3.o ucmpdi2.o
diff --git a/arch/mips/lib/memcpy-inatomic.S b/arch/mips/lib/memcpy-inatomic.S
index 736d0fb56a94..68853a038d3f 100644
--- a/arch/mips/lib/memcpy-inatomic.S
+++ b/arch/mips/lib/memcpy-inatomic.S
@@ -21,7 +21,7 @@
21 * end of memory on some systems. It's also a seriously bad idea on non 21 * end of memory on some systems. It's also a seriously bad idea on non
22 * dma-coherent systems. 22 * dma-coherent systems.
23 */ 23 */
24#if !defined(CONFIG_DMA_COHERENT) || !defined(CONFIG_DMA_IP27) 24#ifdef CONFIG_DMA_NONCOHERENT
25#undef CONFIG_CPU_HAS_PREFETCH 25#undef CONFIG_CPU_HAS_PREFETCH
26#endif 26#endif
27#ifdef CONFIG_MIPS_MALTA 27#ifdef CONFIG_MIPS_MALTA
diff --git a/arch/mips/lib/memcpy.S b/arch/mips/lib/memcpy.S
index c06cccf60bec..56a1f85a1ce8 100644
--- a/arch/mips/lib/memcpy.S
+++ b/arch/mips/lib/memcpy.S
@@ -21,7 +21,7 @@
21 * end of memory on some systems. It's also a seriously bad idea on non 21 * end of memory on some systems. It's also a seriously bad idea on non
22 * dma-coherent systems. 22 * dma-coherent systems.
23 */ 23 */
24#if !defined(CONFIG_DMA_COHERENT) || !defined(CONFIG_DMA_IP27) 24#ifdef CONFIG_DMA_NONCOHERENT
25#undef CONFIG_CPU_HAS_PREFETCH 25#undef CONFIG_CPU_HAS_PREFETCH
26#endif 26#endif
27#ifdef CONFIG_MIPS_MALTA 27#ifdef CONFIG_MIPS_MALTA
diff --git a/arch/mips/mm/Makefile b/arch/mips/mm/Makefile
index 95ba32b5b720..d7ec95522292 100644
--- a/arch/mips/mm/Makefile
+++ b/arch/mips/mm/Makefile
@@ -27,6 +27,7 @@ obj-$(CONFIG_CPU_SB1) += c-r4k.o cerr-sb1.o cex-sb1.o tlb-r4k.o
27obj-$(CONFIG_CPU_TX39XX) += c-tx39.o tlb-r3k.o 27obj-$(CONFIG_CPU_TX39XX) += c-tx39.o tlb-r3k.o
28obj-$(CONFIG_CPU_TX49XX) += c-r4k.o cex-gen.o tlb-r4k.o 28obj-$(CONFIG_CPU_TX49XX) += c-r4k.o cex-gen.o tlb-r4k.o
29obj-$(CONFIG_CPU_VR41XX) += c-r4k.o cex-gen.o tlb-r4k.o 29obj-$(CONFIG_CPU_VR41XX) += c-r4k.o cex-gen.o tlb-r4k.o
30obj-$(CONFIG_CPU_CAVIUM_OCTEON) += c-octeon.o cex-oct.o tlb-r4k.o
30 31
31obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o 32obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o
32obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o 33obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o
diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c
new file mode 100644
index 000000000000..44d01a0a8490
--- /dev/null
+++ b/arch/mips/mm/c-octeon.c
@@ -0,0 +1,307 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2005-2007 Cavium Networks
7 */
8#include <linux/init.h>
9#include <linux/kernel.h>
10#include <linux/sched.h>
11#include <linux/mm.h>
12#include <linux/bitops.h>
13#include <linux/cpu.h>
14#include <linux/io.h>
15
16#include <asm/bcache.h>
17#include <asm/bootinfo.h>
18#include <asm/cacheops.h>
19#include <asm/cpu-features.h>
20#include <asm/page.h>
21#include <asm/pgtable.h>
22#include <asm/r4kcache.h>
23#include <asm/system.h>
24#include <asm/mmu_context.h>
25#include <asm/war.h>
26
27#include <asm/octeon/octeon.h>
28
29unsigned long long cache_err_dcache[NR_CPUS];
30
31/**
32 * Octeon automatically flushes the dcache on tlb changes, so
33 * from Linux's viewpoint it acts much like a physically
34 * tagged cache. No flushing is needed
35 *
36 */
37static void octeon_flush_data_cache_page(unsigned long addr)
38{
39 /* Nothing to do */
40}
41
42static inline void octeon_local_flush_icache(void)
43{
44 asm volatile ("synci 0($0)");
45}
46
47/*
48 * Flush local I-cache for the specified range.
49 */
50static void local_octeon_flush_icache_range(unsigned long start,
51 unsigned long end)
52{
53 octeon_local_flush_icache();
54}
55
56/**
57 * Flush caches as necessary for all cores affected by a
58 * vma. If no vma is supplied, all cores are flushed.
59 *
60 * @vma: VMA to flush or NULL to flush all icaches.
61 */
62static void octeon_flush_icache_all_cores(struct vm_area_struct *vma)
63{
64 extern void octeon_send_ipi_single(int cpu, unsigned int action);
65#ifdef CONFIG_SMP
66 int cpu;
67 cpumask_t mask;
68#endif
69
70 mb();
71 octeon_local_flush_icache();
72#ifdef CONFIG_SMP
73 preempt_disable();
74 cpu = smp_processor_id();
75
76 /*
77 * If we have a vma structure, we only need to worry about
78 * cores it has been used on
79 */
80 if (vma)
81 mask = vma->vm_mm->cpu_vm_mask;
82 else
83 mask = cpu_online_map;
84 cpu_clear(cpu, mask);
85 for_each_cpu_mask(cpu, mask)
86 octeon_send_ipi_single(cpu, SMP_ICACHE_FLUSH);
87
88 preempt_enable();
89#endif
90}
91
92
93/**
94 * Called to flush the icache on all cores
95 */
96static void octeon_flush_icache_all(void)
97{
98 octeon_flush_icache_all_cores(NULL);
99}
100
101
102/**
103 * Called to flush all memory associated with a memory
104 * context.
105 *
106 * @mm: Memory context to flush
107 */
108static void octeon_flush_cache_mm(struct mm_struct *mm)
109{
110 /*
111 * According to the R4K version of this file, CPUs without
112 * dcache aliases don't need to do anything here
113 */
114}
115
116
117/**
118 * Flush a range of kernel addresses out of the icache
119 *
120 */
121static void octeon_flush_icache_range(unsigned long start, unsigned long end)
122{
123 octeon_flush_icache_all_cores(NULL);
124}
125
126
127/**
128 * Flush the icache for a trampoline. These are used for interrupt
129 * and exception hooking.
130 *
131 * @addr: Address to flush
132 */
133static void octeon_flush_cache_sigtramp(unsigned long addr)
134{
135 struct vm_area_struct *vma;
136
137 vma = find_vma(current->mm, addr);
138 octeon_flush_icache_all_cores(vma);
139}
140
141
142/**
143 * Flush a range out of a vma
144 *
145 * @vma: VMA to flush
146 * @start:
147 * @end:
148 */
149static void octeon_flush_cache_range(struct vm_area_struct *vma,
150 unsigned long start, unsigned long end)
151{
152 if (vma->vm_flags & VM_EXEC)
153 octeon_flush_icache_all_cores(vma);
154}
155
156
157/**
158 * Flush a specific page of a vma
159 *
160 * @vma: VMA to flush page for
161 * @page: Page to flush
162 * @pfn:
163 */
164static void octeon_flush_cache_page(struct vm_area_struct *vma,
165 unsigned long page, unsigned long pfn)
166{
167 if (vma->vm_flags & VM_EXEC)
168 octeon_flush_icache_all_cores(vma);
169}
170
171
172/**
173 * Probe Octeon's caches
174 *
175 */
176static void __devinit probe_octeon(void)
177{
178 unsigned long icache_size;
179 unsigned long dcache_size;
180 unsigned int config1;
181 struct cpuinfo_mips *c = &current_cpu_data;
182
183 switch (c->cputype) {
184 case CPU_CAVIUM_OCTEON:
185 config1 = read_c0_config1();
186 c->icache.linesz = 2 << ((config1 >> 19) & 7);
187 c->icache.sets = 64 << ((config1 >> 22) & 7);
188 c->icache.ways = 1 + ((config1 >> 16) & 7);
189 c->icache.flags |= MIPS_CACHE_VTAG;
190 icache_size =
191 c->icache.sets * c->icache.ways * c->icache.linesz;
192 c->icache.waybit = ffs(icache_size / c->icache.ways) - 1;
193 c->dcache.linesz = 128;
194 if (OCTEON_IS_MODEL(OCTEON_CN3XXX))
195 c->dcache.sets = 1; /* CN3XXX has one Dcache set */
196 else
197 c->dcache.sets = 2; /* CN5XXX has two Dcache sets */
198 c->dcache.ways = 64;
199 dcache_size =
200 c->dcache.sets * c->dcache.ways * c->dcache.linesz;
201 c->dcache.waybit = ffs(dcache_size / c->dcache.ways) - 1;
202 c->options |= MIPS_CPU_PREFETCH;
203 break;
204
205 default:
206 panic("Unsupported Cavium Networks CPU type\n");
207 break;
208 }
209
210 /* compute a couple of other cache variables */
211 c->icache.waysize = icache_size / c->icache.ways;
212 c->dcache.waysize = dcache_size / c->dcache.ways;
213
214 c->icache.sets = icache_size / (c->icache.linesz * c->icache.ways);
215 c->dcache.sets = dcache_size / (c->dcache.linesz * c->dcache.ways);
216
217 if (smp_processor_id() == 0) {
218 pr_notice("Primary instruction cache %ldkB, %s, %d way, "
219 "%d sets, linesize %d bytes.\n",
220 icache_size >> 10,
221 cpu_has_vtag_icache ?
222 "virtually tagged" : "physically tagged",
223 c->icache.ways, c->icache.sets, c->icache.linesz);
224
225 pr_notice("Primary data cache %ldkB, %d-way, %d sets, "
226 "linesize %d bytes.\n",
227 dcache_size >> 10, c->dcache.ways,
228 c->dcache.sets, c->dcache.linesz);
229 }
230}
231
232
233/**
234 * Setup the Octeon cache flush routines
235 *
236 */
237void __devinit octeon_cache_init(void)
238{
239 extern unsigned long ebase;
240 extern char except_vec2_octeon;
241
242 memcpy((void *)(ebase + 0x100), &except_vec2_octeon, 0x80);
243 octeon_flush_cache_sigtramp(ebase + 0x100);
244
245 probe_octeon();
246
247 shm_align_mask = PAGE_SIZE - 1;
248
249 flush_cache_all = octeon_flush_icache_all;
250 __flush_cache_all = octeon_flush_icache_all;
251 flush_cache_mm = octeon_flush_cache_mm;
252 flush_cache_page = octeon_flush_cache_page;
253 flush_cache_range = octeon_flush_cache_range;
254 flush_cache_sigtramp = octeon_flush_cache_sigtramp;
255 flush_icache_all = octeon_flush_icache_all;
256 flush_data_cache_page = octeon_flush_data_cache_page;
257 flush_icache_range = octeon_flush_icache_range;
258 local_flush_icache_range = local_octeon_flush_icache_range;
259
260 build_clear_page();
261 build_copy_page();
262}
263
264/**
265 * Handle a cache error exception
266 */
267
268static void cache_parity_error_octeon(int non_recoverable)
269{
270 unsigned long coreid = cvmx_get_core_num();
271 uint64_t icache_err = read_octeon_c0_icacheerr();
272
273 pr_err("Cache error exception:\n");
274 pr_err("cp0_errorepc == %lx\n", read_c0_errorepc());
275 if (icache_err & 1) {
276 pr_err("CacheErr (Icache) == %llx\n",
277 (unsigned long long)icache_err);
278 write_octeon_c0_icacheerr(0);
279 }
280 if (cache_err_dcache[coreid] & 1) {
281 pr_err("CacheErr (Dcache) == %llx\n",
282 (unsigned long long)cache_err_dcache[coreid]);
283 cache_err_dcache[coreid] = 0;
284 }
285
286 if (non_recoverable)
287 panic("Can't handle cache error: nested exception");
288}
289
290/**
291 * Called when the the exception is not recoverable
292 */
293
294asmlinkage void cache_parity_error_octeon_recoverable(void)
295{
296 cache_parity_error_octeon(0);
297}
298
299/**
300 * Called when the the exception is recoverable
301 */
302
303asmlinkage void cache_parity_error_octeon_non_recoverable(void)
304{
305 cache_parity_error_octeon(1);
306}
307
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 6e99665ae860..c43f4b26a690 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -618,15 +618,35 @@ static void r4k_dma_cache_inv(unsigned long addr, unsigned long size)
618 if (cpu_has_inclusive_pcaches) { 618 if (cpu_has_inclusive_pcaches) {
619 if (size >= scache_size) 619 if (size >= scache_size)
620 r4k_blast_scache(); 620 r4k_blast_scache();
621 else 621 else {
622 unsigned long lsize = cpu_scache_line_size();
623 unsigned long almask = ~(lsize - 1);
624
625 /*
626 * There is no clearly documented alignment requirement
627 * for the cache instruction on MIPS processors and
628 * some processors, among them the RM5200 and RM7000
629 * QED processors will throw an address error for cache
630 * hit ops with insufficient alignment. Solved by
631 * aligning the address to cache line size.
632 */
633 cache_op(Hit_Writeback_Inv_SD, addr & almask);
634 cache_op(Hit_Writeback_Inv_SD,
635 (addr + size - 1) & almask);
622 blast_inv_scache_range(addr, addr + size); 636 blast_inv_scache_range(addr, addr + size);
637 }
623 return; 638 return;
624 } 639 }
625 640
626 if (cpu_has_safe_index_cacheops && size >= dcache_size) { 641 if (cpu_has_safe_index_cacheops && size >= dcache_size) {
627 r4k_blast_dcache(); 642 r4k_blast_dcache();
628 } else { 643 } else {
644 unsigned long lsize = cpu_dcache_line_size();
645 unsigned long almask = ~(lsize - 1);
646
629 R4600_HIT_CACHEOP_WAR_IMPL; 647 R4600_HIT_CACHEOP_WAR_IMPL;
648 cache_op(Hit_Writeback_Inv_D, addr & almask);
649 cache_op(Hit_Writeback_Inv_D, (addr + size - 1) & almask);
630 blast_inv_dcache_range(addr, addr + size); 650 blast_inv_dcache_range(addr, addr + size);
631 } 651 }
632 652
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
index 1eb7c71e3d6a..694d51f523d1 100644
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -13,6 +13,7 @@
13#include <linux/linkage.h> 13#include <linux/linkage.h>
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/sched.h> 15#include <linux/sched.h>
16#include <linux/syscalls.h>
16#include <linux/mm.h> 17#include <linux/mm.h>
17 18
18#include <asm/cacheflush.h> 19#include <asm/cacheflush.h>
@@ -58,8 +59,8 @@ EXPORT_SYMBOL(_dma_cache_wback_inv);
58 * We could optimize the case where the cache argument is not BCACHE but 59 * We could optimize the case where the cache argument is not BCACHE but
59 * that seems very atypical use ... 60 * that seems very atypical use ...
60 */ 61 */
61asmlinkage int sys_cacheflush(unsigned long addr, 62SYSCALL_DEFINE3(cacheflush, unsigned long, addr, unsigned long, bytes,
62 unsigned long bytes, unsigned int cache) 63 unsigned int, cache)
63{ 64{
64 if (bytes == 0) 65 if (bytes == 0)
65 return 0; 66 return 0;
@@ -182,6 +183,12 @@ void __devinit cpu_cache_init(void)
182 tx39_cache_init(); 183 tx39_cache_init();
183 } 184 }
184 185
186 if (cpu_has_octeon_cache) {
187 extern void __weak octeon_cache_init(void);
188
189 octeon_cache_init();
190 }
191
185 setup_protection_map(); 192 setup_protection_map();
186} 193}
187 194
diff --git a/arch/mips/mm/cex-oct.S b/arch/mips/mm/cex-oct.S
new file mode 100644
index 000000000000..3db8553fcd34
--- /dev/null
+++ b/arch/mips/mm/cex-oct.S
@@ -0,0 +1,70 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2006 Cavium Networks
7 * Cache error handler
8 */
9
10#include <asm/asm.h>
11#include <asm/regdef.h>
12#include <asm/mipsregs.h>
13#include <asm/stackframe.h>
14
15/*
16 * Handle cache error. Indicate to the second level handler whether
17 * the exception is recoverable.
18 */
19 LEAF(except_vec2_octeon)
20
21 .set push
22 .set mips64r2
23 .set noreorder
24 .set noat
25
26
27 /* due to an errata we need to read the COP0 CacheErr (Dcache)
28 * before any cache/DRAM access */
29
30 rdhwr k0, $0 /* get core_id */
31 PTR_LA k1, cache_err_dcache
32 sll k0, k0, 3
33 PTR_ADDU k1, k0, k1 /* k1 = &cache_err_dcache[core_id] */
34
35 dmfc0 k0, CP0_CACHEERR, 1
36 sd k0, (k1)
37 dmtc0 $0, CP0_CACHEERR, 1
38
39 /* check whether this is a nested exception */
40 mfc0 k1, CP0_STATUS
41 andi k1, k1, ST0_EXL
42 beqz k1, 1f
43 nop
44 j cache_parity_error_octeon_non_recoverable
45 nop
46
47 /* exception is recoverable */
481: j handle_cache_err
49 nop
50
51 .set pop
52 END(except_vec2_octeon)
53
54 /* We need to jump to handle_cache_err so that the previous handler
55 * can fit within 0x80 bytes. We also move from 0xFFFFFFFFAXXXXXXX
56 * space (uncached) to the 0xFFFFFFFF8XXXXXXX space (cached). */
57 LEAF(handle_cache_err)
58 .set push
59 .set noreorder
60 .set noat
61
62 SAVE_ALL
63 KMODE
64 jal cache_parity_error_octeon_recoverable
65 nop
66 j ret_from_exception
67 nop
68
69 .set pop
70 END(handle_cache_err)
diff --git a/arch/mips/mm/dma-default.c b/arch/mips/mm/dma-default.c
index e6708b3ad343..546e6977d4ff 100644
--- a/arch/mips/mm/dma-default.c
+++ b/arch/mips/mm/dma-default.c
@@ -111,7 +111,7 @@ EXPORT_SYMBOL(dma_alloc_coherent);
111void dma_free_noncoherent(struct device *dev, size_t size, void *vaddr, 111void dma_free_noncoherent(struct device *dev, size_t size, void *vaddr,
112 dma_addr_t dma_handle) 112 dma_addr_t dma_handle)
113{ 113{
114 plat_unmap_dma_mem(dma_handle); 114 plat_unmap_dma_mem(dev, dma_handle);
115 free_pages((unsigned long) vaddr, get_order(size)); 115 free_pages((unsigned long) vaddr, get_order(size));
116} 116}
117 117
@@ -122,7 +122,7 @@ void dma_free_coherent(struct device *dev, size_t size, void *vaddr,
122{ 122{
123 unsigned long addr = (unsigned long) vaddr; 123 unsigned long addr = (unsigned long) vaddr;
124 124
125 plat_unmap_dma_mem(dma_handle); 125 plat_unmap_dma_mem(dev, dma_handle);
126 126
127 if (!plat_device_is_coherent(dev)) 127 if (!plat_device_is_coherent(dev))
128 addr = CAC_ADDR(addr); 128 addr = CAC_ADDR(addr);
@@ -173,7 +173,7 @@ void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
173 __dma_sync(dma_addr_to_virt(dma_addr), size, 173 __dma_sync(dma_addr_to_virt(dma_addr), size,
174 direction); 174 direction);
175 175
176 plat_unmap_dma_mem(dma_addr); 176 plat_unmap_dma_mem(dev, dma_addr);
177} 177}
178 178
179EXPORT_SYMBOL(dma_unmap_single); 179EXPORT_SYMBOL(dma_unmap_single);
@@ -229,7 +229,7 @@ void dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
229 dma_cache_wback_inv(addr, size); 229 dma_cache_wback_inv(addr, size);
230 } 230 }
231 231
232 plat_unmap_dma_mem(dma_address); 232 plat_unmap_dma_mem(dev, dma_address);
233} 233}
234 234
235EXPORT_SYMBOL(dma_unmap_page); 235EXPORT_SYMBOL(dma_unmap_page);
@@ -249,7 +249,7 @@ void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
249 if (addr) 249 if (addr)
250 __dma_sync(addr, sg->length, direction); 250 __dma_sync(addr, sg->length, direction);
251 } 251 }
252 plat_unmap_dma_mem(sg->dma_address); 252 plat_unmap_dma_mem(dev, sg->dma_address);
253 } 253 }
254} 254}
255 255
@@ -275,6 +275,7 @@ void dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle,
275{ 275{
276 BUG_ON(direction == DMA_NONE); 276 BUG_ON(direction == DMA_NONE);
277 277
278 plat_extra_sync_for_device(dev);
278 if (!plat_device_is_coherent(dev)) { 279 if (!plat_device_is_coherent(dev)) {
279 unsigned long addr; 280 unsigned long addr;
280 281
@@ -305,6 +306,7 @@ void dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_handle,
305{ 306{
306 BUG_ON(direction == DMA_NONE); 307 BUG_ON(direction == DMA_NONE);
307 308
309 plat_extra_sync_for_device(dev);
308 if (!plat_device_is_coherent(dev)) { 310 if (!plat_device_is_coherent(dev)) {
309 unsigned long addr; 311 unsigned long addr;
310 312
@@ -351,22 +353,14 @@ EXPORT_SYMBOL(dma_sync_sg_for_device);
351 353
352int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) 354int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
353{ 355{
354 return 0; 356 return plat_dma_mapping_error(dev, dma_addr);
355} 357}
356 358
357EXPORT_SYMBOL(dma_mapping_error); 359EXPORT_SYMBOL(dma_mapping_error);
358 360
359int dma_supported(struct device *dev, u64 mask) 361int dma_supported(struct device *dev, u64 mask)
360{ 362{
361 /* 363 return plat_dma_supported(dev, mask);
362 * we fall back to GFP_DMA when the mask isn't all 1s,
363 * so we can't guarantee allocations that must be
364 * within a tighter range than GFP_DMA..
365 */
366 if (mask < DMA_BIT_MASK(24))
367 return 0;
368
369 return 1;
370} 364}
371 365
372EXPORT_SYMBOL(dma_supported); 366EXPORT_SYMBOL(dma_supported);
@@ -383,6 +377,7 @@ void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
383{ 377{
384 BUG_ON(direction == DMA_NONE); 378 BUG_ON(direction == DMA_NONE);
385 379
380 plat_extra_sync_for_device(dev);
386 if (!plat_device_is_coherent(dev)) 381 if (!plat_device_is_coherent(dev))
387 __dma_sync((unsigned long)vaddr, size, direction); 382 __dma_sync((unsigned long)vaddr, size, direction);
388} 383}
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index fa636fc6b7b9..55767ad9f00e 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -97,7 +97,6 @@ good_area:
97 goto bad_area; 97 goto bad_area;
98 } 98 }
99 99
100survive:
101 /* 100 /*
102 * If for any reason at all we couldn't handle the fault, 101 * If for any reason at all we couldn't handle the fault,
103 * make sure we exit gracefully rather than endlessly redo 102 * make sure we exit gracefully rather than endlessly redo
@@ -167,21 +166,13 @@ no_context:
167 field, regs->regs[31]); 166 field, regs->regs[31]);
168 die("Oops", regs); 167 die("Oops", regs);
169 168
170/*
171 * We ran out of memory, or some other thing happened to us that made
172 * us unable to handle the page fault gracefully.
173 */
174out_of_memory: 169out_of_memory:
175 up_read(&mm->mmap_sem); 170 /*
176 if (is_global_init(tsk)) { 171 * We ran out of memory, call the OOM killer, and return the userspace
177 yield(); 172 * (which will retry the fault, or kill us if we got oom-killed).
178 down_read(&mm->mmap_sem); 173 */
179 goto survive; 174 pagefault_out_of_memory();
180 } 175 return;
181 printk("VM: killing process %s\n", tsk->comm);
182 if (user_mode(regs))
183 do_group_exit(SIGKILL);
184 goto no_context;
185 176
186do_sigbus: 177do_sigbus:
187 up_read(&mm->mmap_sem); 178 up_read(&mm->mmap_sem);
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c
index 5ce2fa745626..9619f66e531e 100644
--- a/arch/mips/mm/tlb-r4k.c
+++ b/arch/mips/mm/tlb-r4k.c
@@ -478,7 +478,10 @@ void __cpuinit tlb_init(void)
478 probe_tlb(config); 478 probe_tlb(config);
479 write_c0_pagemask(PM_DEFAULT_MASK); 479 write_c0_pagemask(PM_DEFAULT_MASK);
480 write_c0_wired(0); 480 write_c0_wired(0);
481 write_c0_framemask(0); 481 if (current_cpu_type() == CPU_R10000 ||
482 current_cpu_type() == CPU_R12000 ||
483 current_cpu_type() == CPU_R14000)
484 write_c0_framemask(0);
482 temp_tlb_entry = current_cpu_data.tlbsize - 1; 485 temp_tlb_entry = current_cpu_data.tlbsize - 1;
483 486
484 /* From this point on the ARC firmware is dead. */ 487 /* From this point on the ARC firmware is dead. */
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index 979cf9197282..42942038d0fd 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -317,6 +317,7 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l,
317 case CPU_BCM3302: 317 case CPU_BCM3302:
318 case CPU_BCM4710: 318 case CPU_BCM4710:
319 case CPU_LOONGSON2: 319 case CPU_LOONGSON2:
320 case CPU_CAVIUM_OCTEON:
320 if (m4kc_tlbp_war()) 321 if (m4kc_tlbp_war())
321 uasm_i_nop(p); 322 uasm_i_nop(p);
322 tlbw(p); 323 tlbw(p);
diff --git a/arch/mips/mti-malta/malta-smtc.c b/arch/mips/mti-malta/malta-smtc.c
index aabd7274507b..5ba31888fefb 100644
--- a/arch/mips/mti-malta/malta-smtc.c
+++ b/arch/mips/mti-malta/malta-smtc.c
@@ -116,7 +116,7 @@ struct plat_smp_ops msmtc_smp_ops = {
116 116
117void plat_set_irq_affinity(unsigned int irq, const struct cpumask *affinity) 117void plat_set_irq_affinity(unsigned int irq, const struct cpumask *affinity)
118{ 118{
119 cpumask_t tmask = *affinity; 119 cpumask_t tmask;
120 int cpu = 0; 120 int cpu = 0;
121 void smtc_set_irq_affinity(unsigned int irq, cpumask_t aff); 121 void smtc_set_irq_affinity(unsigned int irq, cpumask_t aff);
122 122
@@ -139,11 +139,12 @@ void plat_set_irq_affinity(unsigned int irq, const struct cpumask *affinity)
139 * be made to forward to an offline "CPU". 139 * be made to forward to an offline "CPU".
140 */ 140 */
141 141
142 cpumask_copy(&tmask, affinity);
142 for_each_cpu(cpu, affinity) { 143 for_each_cpu(cpu, affinity) {
143 if ((cpu_data[cpu].vpe_id != 0) || !cpu_online(cpu)) 144 if ((cpu_data[cpu].vpe_id != 0) || !cpu_online(cpu))
144 cpu_clear(cpu, tmask); 145 cpu_clear(cpu, tmask);
145 } 146 }
146 irq_desc[irq].affinity = tmask; 147 cpumask_copy(irq_desc[irq].affinity, &tmask);
147 148
148 if (cpus_empty(tmask)) 149 if (cpus_empty(tmask))
149 /* 150 /*
diff --git a/arch/mips/pci/pci-rc32434.c b/arch/mips/pci/pci-rc32434.c
index 1c2821e2f494..71f7d27b0d4c 100644
--- a/arch/mips/pci/pci-rc32434.c
+++ b/arch/mips/pci/pci-rc32434.c
@@ -205,6 +205,8 @@ static int __init rc32434_pcibridge_init(void)
205 205
206static int __init rc32434_pci_init(void) 206static int __init rc32434_pci_init(void)
207{ 207{
208 void __iomem *io_map_base;
209
208 pr_info("PCI: Initializing PCI\n"); 210 pr_info("PCI: Initializing PCI\n");
209 211
210 ioport_resource.start = rc32434_res_pci_io1.start; 212 ioport_resource.start = rc32434_res_pci_io1.start;
@@ -212,6 +214,15 @@ static int __init rc32434_pci_init(void)
212 214
213 rc32434_pcibridge_init(); 215 rc32434_pcibridge_init();
214 216
217 io_map_base = ioremap(rc32434_res_pci_io1.start,
218 rc32434_res_pci_io1.end - rc32434_res_pci_io1.start + 1);
219
220 if (!io_map_base)
221 return -ENOMEM;
222
223 rc32434_controller.io_map_base =
224 (unsigned long)io_map_base - rc32434_res_pci_io1.start;
225
215 register_pci_controller(&rc32434_controller); 226 register_pci_controller(&rc32434_controller);
216 rc32434_sync(); 227 rc32434_sync();
217 228
diff --git a/arch/mips/rb532/devices.c b/arch/mips/rb532/devices.c
index c1c29181bd46..4a5f05b662ae 100644
--- a/arch/mips/rb532/devices.c
+++ b/arch/mips/rb532/devices.c
@@ -24,6 +24,7 @@
24#include <linux/mtd/partitions.h> 24#include <linux/mtd/partitions.h>
25#include <linux/gpio_keys.h> 25#include <linux/gpio_keys.h>
26#include <linux/input.h> 26#include <linux/input.h>
27#include <linux/serial_8250.h>
27 28
28#include <asm/bootinfo.h> 29#include <asm/bootinfo.h>
29 30
@@ -39,6 +40,29 @@
39#define ETH0_RX_DMA_ADDR (DMA0_BASE_ADDR + 0 * DMA_CHAN_OFFSET) 40#define ETH0_RX_DMA_ADDR (DMA0_BASE_ADDR + 0 * DMA_CHAN_OFFSET)
40#define ETH0_TX_DMA_ADDR (DMA0_BASE_ADDR + 1 * DMA_CHAN_OFFSET) 41#define ETH0_TX_DMA_ADDR (DMA0_BASE_ADDR + 1 * DMA_CHAN_OFFSET)
41 42
43extern unsigned int idt_cpu_freq;
44
45static struct mpmc_device dev3;
46
47void set_latch_u5(unsigned char or_mask, unsigned char nand_mask)
48{
49 unsigned long flags;
50
51 spin_lock_irqsave(&dev3.lock, flags);
52
53 dev3.state = (dev3.state | or_mask) & ~nand_mask;
54 writeb(dev3.state, dev3.base);
55
56 spin_unlock_irqrestore(&dev3.lock, flags);
57}
58EXPORT_SYMBOL(set_latch_u5);
59
60unsigned char get_latch_u5(void)
61{
62 return dev3.state;
63}
64EXPORT_SYMBOL(get_latch_u5);
65
42static struct resource korina_dev0_res[] = { 66static struct resource korina_dev0_res[] = {
43 { 67 {
44 .name = "korina_regs", 68 .name = "korina_regs",
@@ -86,7 +110,7 @@ static struct korina_device korina_dev0_data = {
86static struct platform_device korina_dev0 = { 110static struct platform_device korina_dev0 = {
87 .id = -1, 111 .id = -1,
88 .name = "korina", 112 .name = "korina",
89 .dev.platform_data = &korina_dev0_data, 113 .dev.driver_data = &korina_dev0_data,
90 .resource = korina_dev0_res, 114 .resource = korina_dev0_res,
91 .num_resources = ARRAY_SIZE(korina_dev0_res), 115 .num_resources = ARRAY_SIZE(korina_dev0_res),
92}; 116};
@@ -214,12 +238,32 @@ static struct platform_device rb532_wdt = {
214 .num_resources = ARRAY_SIZE(rb532_wdt_res), 238 .num_resources = ARRAY_SIZE(rb532_wdt_res),
215}; 239};
216 240
241static struct plat_serial8250_port rb532_uart_res[] = {
242 {
243 .membase = (char *)KSEG1ADDR(REGBASE + UART0BASE),
244 .irq = UART0_IRQ,
245 .regshift = 2,
246 .iotype = UPIO_MEM,
247 .flags = UPF_BOOT_AUTOCONF,
248 },
249 {
250 .flags = 0,
251 }
252};
253
254static struct platform_device rb532_uart = {
255 .name = "serial8250",
256 .id = PLAT8250_DEV_PLATFORM,
257 .dev.platform_data = &rb532_uart_res,
258};
259
217static struct platform_device *rb532_devs[] = { 260static struct platform_device *rb532_devs[] = {
218 &korina_dev0, 261 &korina_dev0,
219 &nand_slot0, 262 &nand_slot0,
220 &cf_slot0, 263 &cf_slot0,
221 &rb532_led, 264 &rb532_led,
222 &rb532_button, 265 &rb532_button,
266 &rb532_uart,
223 &rb532_wdt 267 &rb532_wdt
224}; 268};
225 269
@@ -291,9 +335,20 @@ static int __init plat_setup_devices(void)
291 nand_slot0_res[0].start = readl(IDT434_REG_BASE + DEV2BASE); 335 nand_slot0_res[0].start = readl(IDT434_REG_BASE + DEV2BASE);
292 nand_slot0_res[0].end = nand_slot0_res[0].start + 0x1000; 336 nand_slot0_res[0].end = nand_slot0_res[0].start + 0x1000;
293 337
338 /* Read and map device controller 3 */
339 dev3.base = ioremap_nocache(readl(IDT434_REG_BASE + DEV3BASE), 1);
340
341 if (!dev3.base) {
342 printk(KERN_ERR "rb532: cannot remap device controller 3\n");
343 return -ENXIO;
344 }
345
294 /* Initialise the NAND device */ 346 /* Initialise the NAND device */
295 rb532_nand_setup(); 347 rb532_nand_setup();
296 348
349 /* set the uart clock to the current cpu frequency */
350 rb532_uart_res[0].uartclk = idt_cpu_freq;
351
297 return platform_add_devices(rb532_devs, ARRAY_SIZE(rb532_devs)); 352 return platform_add_devices(rb532_devs, ARRAY_SIZE(rb532_devs));
298} 353}
299 354
diff --git a/arch/mips/rb532/gpio.c b/arch/mips/rb532/gpio.c
index 0e84c8ab6a39..37de05d595e7 100644
--- a/arch/mips/rb532/gpio.c
+++ b/arch/mips/rb532/gpio.c
@@ -41,8 +41,6 @@ struct rb532_gpio_chip {
41 void __iomem *regbase; 41 void __iomem *regbase;
42}; 42};
43 43
44struct mpmc_device dev3;
45
46static struct resource rb532_gpio_reg0_res[] = { 44static struct resource rb532_gpio_reg0_res[] = {
47 { 45 {
48 .name = "gpio_reg0", 46 .name = "gpio_reg0",
@@ -52,61 +50,6 @@ static struct resource rb532_gpio_reg0_res[] = {
52 } 50 }
53}; 51};
54 52
55static struct resource rb532_dev3_ctl_res[] = {
56 {
57 .name = "dev3_ctl",
58 .start = REGBASE + DEV3BASE,
59 .end = REGBASE + DEV3BASE + sizeof(struct dev_reg) - 1,
60 .flags = IORESOURCE_MEM,
61 }
62};
63
64void set_434_reg(unsigned reg_offs, unsigned bit, unsigned len, unsigned val)
65{
66 unsigned long flags;
67 unsigned data;
68 unsigned i = 0;
69
70 spin_lock_irqsave(&dev3.lock, flags);
71
72 data = readl(IDT434_REG_BASE + reg_offs);
73 for (i = 0; i != len; ++i) {
74 if (val & (1 << i))
75 data |= (1 << (i + bit));
76 else
77 data &= ~(1 << (i + bit));
78 }
79 writel(data, (IDT434_REG_BASE + reg_offs));
80
81 spin_unlock_irqrestore(&dev3.lock, flags);
82}
83EXPORT_SYMBOL(set_434_reg);
84
85unsigned get_434_reg(unsigned reg_offs)
86{
87 return readl(IDT434_REG_BASE + reg_offs);
88}
89EXPORT_SYMBOL(get_434_reg);
90
91void set_latch_u5(unsigned char or_mask, unsigned char nand_mask)
92{
93 unsigned long flags;
94
95 spin_lock_irqsave(&dev3.lock, flags);
96
97 dev3.state = (dev3.state | or_mask) & ~nand_mask;
98 writel(dev3.state, &dev3.base);
99
100 spin_unlock_irqrestore(&dev3.lock, flags);
101}
102EXPORT_SYMBOL(set_latch_u5);
103
104unsigned char get_latch_u5(void)
105{
106 return dev3.state;
107}
108EXPORT_SYMBOL(get_latch_u5);
109
110/* rb532_set_bit - sanely set a bit 53/* rb532_set_bit - sanely set a bit
111 * 54 *
112 * bitval: new value for the bit 55 * bitval: new value for the bit
@@ -119,13 +62,11 @@ static inline void rb532_set_bit(unsigned bitval,
119 unsigned long flags; 62 unsigned long flags;
120 u32 val; 63 u32 val;
121 64
122 bitval = !!bitval; /* map parameter to {0,1} */
123
124 local_irq_save(flags); 65 local_irq_save(flags);
125 66
126 val = readl(ioaddr); 67 val = readl(ioaddr);
127 val &= ~( ~bitval << offset ); /* unset bit if bitval == 0 */ 68 val &= ~(!bitval << offset); /* unset bit if bitval == 0 */
128 val |= ( bitval << offset ); /* set bit if bitval == 1 */ 69 val |= (!!bitval << offset); /* set bit if bitval == 1 */
129 writel(val, ioaddr); 70 writel(val, ioaddr);
130 71
131 local_irq_restore(flags); 72 local_irq_restore(flags);
@@ -171,8 +112,8 @@ static int rb532_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
171 112
172 gpch = container_of(chip, struct rb532_gpio_chip, chip); 113 gpch = container_of(chip, struct rb532_gpio_chip, chip);
173 114
174 if (rb532_get_bit(offset, gpch->regbase + GPIOFUNC)) 115 /* disable alternate function in case it's set */
175 return 1; /* alternate function, GPIOCFG is ignored */ 116 rb532_set_bit(0, offset, gpch->regbase + GPIOFUNC);
176 117
177 rb532_set_bit(0, offset, gpch->regbase + GPIOCFG); 118 rb532_set_bit(0, offset, gpch->regbase + GPIOCFG);
178 return 0; 119 return 0;
@@ -188,8 +129,8 @@ static int rb532_gpio_direction_output(struct gpio_chip *chip,
188 129
189 gpch = container_of(chip, struct rb532_gpio_chip, chip); 130 gpch = container_of(chip, struct rb532_gpio_chip, chip);
190 131
191 if (rb532_get_bit(offset, gpch->regbase + GPIOFUNC)) 132 /* disable alternate function in case it's set */
192 return 1; /* alternate function, GPIOCFG is ignored */ 133 rb532_set_bit(0, offset, gpch->regbase + GPIOFUNC);
193 134
194 /* set the initial output value */ 135 /* set the initial output value */
195 rb532_set_bit(value, offset, gpch->regbase + GPIOD); 136 rb532_set_bit(value, offset, gpch->regbase + GPIOD);
@@ -233,10 +174,11 @@ EXPORT_SYMBOL(rb532_gpio_set_istat);
233/* 174/*
234 * Configure GPIO alternate function 175 * Configure GPIO alternate function
235 */ 176 */
236static void rb532_gpio_set_func(int bit, unsigned gpio) 177void rb532_gpio_set_func(unsigned gpio)
237{ 178{
238 rb532_set_bit(bit, gpio, rb532_gpio_chip->regbase + GPIOFUNC); 179 rb532_set_bit(1, gpio, rb532_gpio_chip->regbase + GPIOFUNC);
239} 180}
181EXPORT_SYMBOL(rb532_gpio_set_func);
240 182
241int __init rb532_gpio_init(void) 183int __init rb532_gpio_init(void)
242{ 184{
@@ -253,20 +195,6 @@ int __init rb532_gpio_init(void)
253 /* Register our GPIO chip */ 195 /* Register our GPIO chip */
254 gpiochip_add(&rb532_gpio_chip->chip); 196 gpiochip_add(&rb532_gpio_chip->chip);
255 197
256 r = rb532_dev3_ctl_res;
257 dev3.base = ioremap_nocache(r->start, r->end - r->start);
258
259 if (!dev3.base) {
260 printk(KERN_ERR "rb532: cannot remap device controller 3\n");
261 return -ENXIO;
262 }
263
264 /* configure CF_GPIO_NUM as CFRDY IRQ source */
265 rb532_gpio_set_func(0, CF_GPIO_NUM);
266 rb532_gpio_direction_input(&rb532_gpio_chip->chip, CF_GPIO_NUM);
267 rb532_gpio_set_ilevel(1, CF_GPIO_NUM);
268 rb532_gpio_set_istat(0, CF_GPIO_NUM);
269
270 return 0; 198 return 0;
271} 199}
272arch_initcall(rb532_gpio_init); 200arch_initcall(rb532_gpio_init);
diff --git a/arch/mips/rb532/irq.c b/arch/mips/rb532/irq.c
index 549b46d2fcee..53eeb5e7bc5b 100644
--- a/arch/mips/rb532/irq.c
+++ b/arch/mips/rb532/irq.c
@@ -46,6 +46,7 @@
46#include <asm/system.h> 46#include <asm/system.h>
47 47
48#include <asm/mach-rc32434/irq.h> 48#include <asm/mach-rc32434/irq.h>
49#include <asm/mach-rc32434/gpio.h>
49 50
50struct intr_group { 51struct intr_group {
51 u32 mask; /* mask of valid bits in pending/mask registers */ 52 u32 mask; /* mask of valid bits in pending/mask registers */
@@ -150,6 +151,9 @@ static void rb532_disable_irq(unsigned int irq_nr)
150 mask |= intr_bit; 151 mask |= intr_bit;
151 WRITE_MASK(addr, mask); 152 WRITE_MASK(addr, mask);
152 153
154 if (group == GPIO_MAPPED_IRQ_GROUP)
155 rb532_gpio_set_istat(0, irq_nr - GPIO_MAPPED_IRQ_BASE);
156
153 /* 157 /*
154 * if there are no more interrupts enabled in this 158 * if there are no more interrupts enabled in this
155 * group, disable corresponding IP 159 * group, disable corresponding IP
@@ -165,12 +169,35 @@ static void rb532_mask_and_ack_irq(unsigned int irq_nr)
165 ack_local_irq(group_to_ip(irq_to_group(irq_nr))); 169 ack_local_irq(group_to_ip(irq_to_group(irq_nr)));
166} 170}
167 171
172static int rb532_set_type(unsigned int irq_nr, unsigned type)
173{
174 int gpio = irq_nr - GPIO_MAPPED_IRQ_BASE;
175 int group = irq_to_group(irq_nr);
176
177 if (group != GPIO_MAPPED_IRQ_GROUP)
178 return (type == IRQ_TYPE_LEVEL_HIGH) ? 0 : -EINVAL;
179
180 switch (type) {
181 case IRQ_TYPE_LEVEL_HIGH:
182 rb532_gpio_set_ilevel(1, gpio);
183 break;
184 case IRQ_TYPE_LEVEL_LOW:
185 rb532_gpio_set_ilevel(0, gpio);
186 break;
187 default:
188 return -EINVAL;
189 }
190
191 return 0;
192}
193
168static struct irq_chip rc32434_irq_type = { 194static struct irq_chip rc32434_irq_type = {
169 .name = "RB532", 195 .name = "RB532",
170 .ack = rb532_disable_irq, 196 .ack = rb532_disable_irq,
171 .mask = rb532_disable_irq, 197 .mask = rb532_disable_irq,
172 .mask_ack = rb532_mask_and_ack_irq, 198 .mask_ack = rb532_mask_and_ack_irq,
173 .unmask = rb532_enable_irq, 199 .unmask = rb532_enable_irq,
200 .set_type = rb532_set_type,
174}; 201};
175 202
176void __init arch_init_irq(void) 203void __init arch_init_irq(void)
diff --git a/arch/mips/rb532/serial.c b/arch/mips/rb532/serial.c
index 3e0d7ec3a579..00ed19f0bdb5 100644
--- a/arch/mips/rb532/serial.c
+++ b/arch/mips/rb532/serial.c
@@ -36,7 +36,7 @@
36extern unsigned int idt_cpu_freq; 36extern unsigned int idt_cpu_freq;
37 37
38static struct uart_port rb532_uart = { 38static struct uart_port rb532_uart = {
39 .type = PORT_16550A, 39 .flags = UPF_BOOT_AUTOCONF,
40 .line = 0, 40 .line = 0,
41 .irq = UART0_IRQ, 41 .irq = UART0_IRQ,
42 .iotype = UPIO_MEM, 42 .iotype = UPIO_MEM,
diff --git a/arch/mips/sgi-ip22/ip22-int.c b/arch/mips/sgi-ip22/ip22-int.c
index f8b18af141a1..0ecd5fe9486e 100644
--- a/arch/mips/sgi-ip22/ip22-int.c
+++ b/arch/mips/sgi-ip22/ip22-int.c
@@ -155,7 +155,7 @@ static void indy_buserror_irq(void)
155 int irq = SGI_BUSERR_IRQ; 155 int irq = SGI_BUSERR_IRQ;
156 156
157 irq_enter(); 157 irq_enter();
158 kstat_this_cpu.irqs[irq]++; 158 kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq));
159 ip22_be_interrupt(irq); 159 ip22_be_interrupt(irq);
160 irq_exit(); 160 irq_exit();
161} 161}
diff --git a/arch/mips/sgi-ip22/ip22-time.c b/arch/mips/sgi-ip22/ip22-time.c
index 3dcb27ec0c53..c8f7d2328b24 100644
--- a/arch/mips/sgi-ip22/ip22-time.c
+++ b/arch/mips/sgi-ip22/ip22-time.c
@@ -122,7 +122,7 @@ void indy_8254timer_irq(void)
122 char c; 122 char c;
123 123
124 irq_enter(); 124 irq_enter();
125 kstat_this_cpu.irqs[irq]++; 125 kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq));
126 printk(KERN_ALERT "Oops, got 8254 interrupt.\n"); 126 printk(KERN_ALERT "Oops, got 8254 interrupt.\n");
127 ArcRead(0, &c, 1, &cnt); 127 ArcRead(0, &c, 1, &cnt);
128 ArcEnterInteractiveMode(); 128 ArcEnterInteractiveMode();
diff --git a/arch/mips/sibyte/bcm1480/smp.c b/arch/mips/sibyte/bcm1480/smp.c
index dddfda8e8294..314691648c97 100644
--- a/arch/mips/sibyte/bcm1480/smp.c
+++ b/arch/mips/sibyte/bcm1480/smp.c
@@ -178,9 +178,10 @@ struct plat_smp_ops bcm1480_smp_ops = {
178void bcm1480_mailbox_interrupt(void) 178void bcm1480_mailbox_interrupt(void)
179{ 179{
180 int cpu = smp_processor_id(); 180 int cpu = smp_processor_id();
181 int irq = K_BCM1480_INT_MBOX_0_0;
181 unsigned int action; 182 unsigned int action;
182 183
183 kstat_this_cpu.irqs[K_BCM1480_INT_MBOX_0_0]++; 184 kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq));
184 /* Load the mailbox register to figure out what we're supposed to do */ 185 /* Load the mailbox register to figure out what we're supposed to do */
185 action = (__raw_readq(mailbox_0_regs[cpu]) >> 48) & 0xffff; 186 action = (__raw_readq(mailbox_0_regs[cpu]) >> 48) & 0xffff;
186 187
diff --git a/arch/mips/sibyte/sb1250/smp.c b/arch/mips/sibyte/sb1250/smp.c
index 5950a288a7da..cad14003b84f 100644
--- a/arch/mips/sibyte/sb1250/smp.c
+++ b/arch/mips/sibyte/sb1250/smp.c
@@ -166,9 +166,10 @@ struct plat_smp_ops sb_smp_ops = {
166void sb1250_mailbox_interrupt(void) 166void sb1250_mailbox_interrupt(void)
167{ 167{
168 int cpu = smp_processor_id(); 168 int cpu = smp_processor_id();
169 int irq = K_INT_MBOX_0;
169 unsigned int action; 170 unsigned int action;
170 171
171 kstat_this_cpu.irqs[K_INT_MBOX_0]++; 172 kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq));
172 /* Load the mailbox register to figure out what we're supposed to do */ 173 /* Load the mailbox register to figure out what we're supposed to do */
173 action = (____raw_readq(mailbox_regs[cpu]) >> 48) & 0xffff; 174 action = (____raw_readq(mailbox_regs[cpu]) >> 48) & 0xffff;
174 175
diff --git a/arch/mips/txx9/generic/setup_tx4939.c b/arch/mips/txx9/generic/setup_tx4939.c
index 6c0049a5bbc1..55440967b3a8 100644
--- a/arch/mips/txx9/generic/setup_tx4939.c
+++ b/arch/mips/txx9/generic/setup_tx4939.c
@@ -435,6 +435,28 @@ void __init tx4939_ata_init(void)
435 platform_device_register(&ata1_dev); 435 platform_device_register(&ata1_dev);
436} 436}
437 437
438void __init tx4939_rtc_init(void)
439{
440 static struct resource res[] = {
441 {
442 .start = TX4939_RTC_REG & 0xfffffffffULL,
443 .end = (TX4939_RTC_REG & 0xfffffffffULL) + 0x100 - 1,
444 .flags = IORESOURCE_MEM,
445 }, {
446 .start = TXX9_IRQ_BASE + TX4939_IR_RTC,
447 .flags = IORESOURCE_IRQ,
448 },
449 };
450 static struct platform_device rtc_dev = {
451 .name = "tx4939rtc",
452 .id = -1,
453 .num_resources = ARRAY_SIZE(res),
454 .resource = res,
455 };
456
457 platform_device_register(&rtc_dev);
458}
459
438static void __init tx4939_stop_unused_modules(void) 460static void __init tx4939_stop_unused_modules(void)
439{ 461{
440 __u64 pcfg, rst = 0, ckd = 0; 462 __u64 pcfg, rst = 0, ckd = 0;
diff --git a/arch/mips/txx9/rbtx4939/setup.c b/arch/mips/txx9/rbtx4939/setup.c
index 98fbd9391bf8..656603b85b71 100644
--- a/arch/mips/txx9/rbtx4939/setup.c
+++ b/arch/mips/txx9/rbtx4939/setup.c
@@ -336,6 +336,7 @@ static void __init rbtx4939_device_init(void)
336 rbtx4939_led_setup(); 336 rbtx4939_led_setup();
337 tx4939_wdt_init(); 337 tx4939_wdt_init();
338 tx4939_ata_init(); 338 tx4939_ata_init();
339 tx4939_rtc_init();
339} 340}
340 341
341static void __init rbtx4939_setup(void) 342static void __init rbtx4939_setup(void)
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig
index 9a9f43358879..41d16822e616 100644
--- a/arch/mn10300/Kconfig
+++ b/arch/mn10300/Kconfig
@@ -7,6 +7,7 @@ mainmenu "Linux Kernel Configuration"
7 7
8config MN10300 8config MN10300
9 def_bool y 9 def_bool y
10 select HAVE_OPROFILE
10 11
11config AM33 12config AM33
12 def_bool y 13 def_bool y
diff --git a/arch/mn10300/kernel/entry.S b/arch/mn10300/kernel/entry.S
index 62fba8aa9b6e..ceeaaaa359e2 100644
--- a/arch/mn10300/kernel/entry.S
+++ b/arch/mn10300/kernel/entry.S
@@ -478,7 +478,7 @@ ENTRY(sys_call_table)
478 .long sys_uselib 478 .long sys_uselib
479 .long sys_swapon 479 .long sys_swapon
480 .long sys_reboot 480 .long sys_reboot
481 .long old_readdir 481 .long sys_old_readdir
482 .long old_mmap /* 90 */ 482 .long old_mmap /* 90 */
483 .long sys_munmap 483 .long sys_munmap
484 .long sys_truncate 484 .long sys_truncate
diff --git a/arch/mn10300/kernel/mn10300-watchdog.c b/arch/mn10300/kernel/mn10300-watchdog.c
index 10811e981d20..2e370d88a87a 100644
--- a/arch/mn10300/kernel/mn10300-watchdog.c
+++ b/arch/mn10300/kernel/mn10300-watchdog.c
@@ -130,6 +130,7 @@ void watchdog_interrupt(struct pt_regs *regs, enum exception_code excep)
130 * the stack NMI-atomically, it's safe to use smp_processor_id(). 130 * the stack NMI-atomically, it's safe to use smp_processor_id().
131 */ 131 */
132 int sum, cpu = smp_processor_id(); 132 int sum, cpu = smp_processor_id();
133 int irq = NMIIRQ;
133 u8 wdt, tmp; 134 u8 wdt, tmp;
134 135
135 wdt = WDCTR & ~WDCTR_WDCNE; 136 wdt = WDCTR & ~WDCTR_WDCNE;
@@ -138,7 +139,7 @@ void watchdog_interrupt(struct pt_regs *regs, enum exception_code excep)
138 NMICR = NMICR_WDIF; 139 NMICR = NMICR_WDIF;
139 140
140 nmi_count(cpu)++; 141 nmi_count(cpu)++;
141 kstat_this_cpu.irqs[NMIIRQ]++; 142 kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq));
142 sum = irq_stat[cpu].__irq_count; 143 sum = irq_stat[cpu].__irq_count;
143 144
144 if (last_irq_sums[cpu] == sum) { 145 if (last_irq_sums[cpu] == sum) {
diff --git a/arch/mn10300/unit-asb2305/pci.c b/arch/mn10300/unit-asb2305/pci.c
index 1a86425fec42..07dbbcda3b2e 100644
--- a/arch/mn10300/unit-asb2305/pci.c
+++ b/arch/mn10300/unit-asb2305/pci.c
@@ -173,7 +173,7 @@ static int pci_ampci_write_config_byte(struct pci_bus *bus, unsigned int devfn,
173 BRIDGEREGB(where) = value; 173 BRIDGEREGB(where) = value;
174 } else { 174 } else {
175 if (bus->number == 0 && 175 if (bus->number == 0 &&
176 (devfn == PCI_DEVFN(2, 0) && devfn == PCI_DEVFN(3, 0)) 176 (devfn == PCI_DEVFN(2, 0) || devfn == PCI_DEVFN(3, 0))
177 ) 177 )
178 __pcidebug("<= %02x", bus, devfn, where, value); 178 __pcidebug("<= %02x", bus, devfn, where, value);
179 CONFIG_ADDRESS = CONFIG_CMD(bus, devfn, where); 179 CONFIG_ADDRESS = CONFIG_CMD(bus, devfn, where);
diff --git a/arch/parisc/include/asm/Kbuild b/arch/parisc/include/asm/Kbuild
index 2121d99f8364..f88b252e419c 100644
--- a/arch/parisc/include/asm/Kbuild
+++ b/arch/parisc/include/asm/Kbuild
@@ -1,4 +1,3 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2
3unifdef-y += pdc.h 3unifdef-y += pdc.h
4unifdef-y += swab.h
diff --git a/arch/parisc/include/asm/byteorder.h b/arch/parisc/include/asm/byteorder.h
index da66029c4cb2..58af2c5f5d61 100644
--- a/arch/parisc/include/asm/byteorder.h
+++ b/arch/parisc/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _PARISC_BYTEORDER_H 1#ifndef _PARISC_BYTEORDER_H
2#define _PARISC_BYTEORDER_H 2#define _PARISC_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/big_endian.h> 4#include <linux/byteorder/big_endian.h>
6 5
7#endif /* _PARISC_BYTEORDER_H */ 6#endif /* _PARISC_BYTEORDER_H */
diff --git a/arch/parisc/include/asm/dma-mapping.h b/arch/parisc/include/asm/dma-mapping.h
index 53af696f23d2..da6943380908 100644
--- a/arch/parisc/include/asm/dma-mapping.h
+++ b/arch/parisc/include/asm/dma-mapping.h
@@ -5,7 +5,7 @@
5#include <asm/cacheflush.h> 5#include <asm/cacheflush.h>
6#include <asm/scatterlist.h> 6#include <asm/scatterlist.h>
7 7
8/* See Documentation/DMA-mapping.txt */ 8/* See Documentation/PCI/PCI-DMA-mapping.txt */
9struct hppa_dma_ops { 9struct hppa_dma_ops {
10 int (*dma_supported)(struct device *dev, u64 mask); 10 int (*dma_supported)(struct device *dev, u64 mask);
11 void *(*alloc_consistent)(struct device *dev, size_t size, dma_addr_t *iova, gfp_t flag); 11 void *(*alloc_consistent)(struct device *dev, size_t size, dma_addr_t *iova, gfp_t flag);
diff --git a/arch/parisc/include/asm/pdc.h b/arch/parisc/include/asm/pdc.h
index c584b00c6074..430f1aeea0b8 100644
--- a/arch/parisc/include/asm/pdc.h
+++ b/arch/parisc/include/asm/pdc.h
@@ -336,10 +336,11 @@
336#define NUM_PDC_RESULT 32 336#define NUM_PDC_RESULT 32
337 337
338#if !defined(__ASSEMBLY__) 338#if !defined(__ASSEMBLY__)
339#ifdef __KERNEL__
340 339
341#include <linux/types.h> 340#include <linux/types.h>
342 341
342#ifdef __KERNEL__
343
343extern int pdc_type; 344extern int pdc_type;
344 345
345/* Values for pdc_type */ 346/* Values for pdc_type */
diff --git a/arch/parisc/include/asm/swab.h b/arch/parisc/include/asm/swab.h
index 3ff16c5a3358..e78403b129ef 100644
--- a/arch/parisc/include/asm/swab.h
+++ b/arch/parisc/include/asm/swab.h
@@ -1,7 +1,7 @@
1#ifndef _PARISC_SWAB_H 1#ifndef _PARISC_SWAB_H
2#define _PARISC_SWAB_H 2#define _PARISC_SWAB_H
3 3
4#include <asm/types.h> 4#include <linux/types.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
6 6
7#define __SWAB_64_THRU_32__ 7#define __SWAB_64_THRU_32__
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c
index ac2c822928c7..49482806863f 100644
--- a/arch/parisc/kernel/irq.c
+++ b/arch/parisc/kernel/irq.c
@@ -120,7 +120,7 @@ int cpu_check_affinity(unsigned int irq, cpumask_t *dest)
120 if (CHECK_IRQ_PER_CPU(irq)) { 120 if (CHECK_IRQ_PER_CPU(irq)) {
121 /* Bad linux design decision. The mask has already 121 /* Bad linux design decision. The mask has already
122 * been set; we must reset it */ 122 * been set; we must reset it */
123 irq_desc[irq].affinity = CPU_MASK_ALL; 123 cpumask_setall(irq_desc[irq].affinity);
124 return -EINVAL; 124 return -EINVAL;
125 } 125 }
126 126
@@ -136,7 +136,7 @@ static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest)
136 if (cpu_check_affinity(irq, dest)) 136 if (cpu_check_affinity(irq, dest))
137 return; 137 return;
138 138
139 irq_desc[irq].affinity = *dest; 139 cpumask_copy(irq_desc[irq].affinity, dest);
140} 140}
141#endif 141#endif
142 142
@@ -295,7 +295,7 @@ int txn_alloc_irq(unsigned int bits_wide)
295unsigned long txn_affinity_addr(unsigned int irq, int cpu) 295unsigned long txn_affinity_addr(unsigned int irq, int cpu)
296{ 296{
297#ifdef CONFIG_SMP 297#ifdef CONFIG_SMP
298 irq_desc[irq].affinity = cpumask_of_cpu(cpu); 298 cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu));
299#endif 299#endif
300 300
301 return per_cpu(cpu_data, cpu).txn_addr; 301 return per_cpu(cpu_data, cpu).txn_addr;
@@ -352,7 +352,7 @@ void do_cpu_irq_mask(struct pt_regs *regs)
352 irq = eirr_to_irq(eirr_val); 352 irq = eirr_to_irq(eirr_val);
353 353
354#ifdef CONFIG_SMP 354#ifdef CONFIG_SMP
355 dest = irq_desc[irq].affinity; 355 cpumask_copy(&dest, irq_desc[irq].affinity);
356 if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) && 356 if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) &&
357 !cpu_isset(smp_processor_id(), dest)) { 357 !cpu_isset(smp_processor_id(), dest)) {
358 int cpu = first_cpu(dest); 358 int cpu = first_cpu(dest);
diff --git a/arch/parisc/kernel/pci-dma.c b/arch/parisc/kernel/pci-dma.c
index ccd61b9567a6..df47895db828 100644
--- a/arch/parisc/kernel/pci-dma.c
+++ b/arch/parisc/kernel/pci-dma.c
@@ -2,7 +2,7 @@
2** PARISC 1.1 Dynamic DMA mapping support. 2** PARISC 1.1 Dynamic DMA mapping support.
3** This implementation is for PA-RISC platforms that do not support 3** This implementation is for PA-RISC platforms that do not support
4** I/O TLBs (aka DMA address translation hardware). 4** I/O TLBs (aka DMA address translation hardware).
5** See Documentation/DMA-mapping.txt for interface definitions. 5** See Documentation/PCI/PCI-DMA-mapping.txt for interface definitions.
6** 6**
7** (c) Copyright 1999,2000 Hewlett-Packard Company 7** (c) Copyright 1999,2000 Hewlett-Packard Company
8** (c) Copyright 2000 Grant Grundler 8** (c) Copyright 2000 Grant Grundler
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 84b861316ce7..74cc312c347c 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -123,6 +123,7 @@ config PPC
123 select HAVE_DMA_ATTRS if PPC64 123 select HAVE_DMA_ATTRS if PPC64
124 select USE_GENERIC_SMP_HELPERS if SMP 124 select USE_GENERIC_SMP_HELPERS if SMP
125 select HAVE_OPROFILE 125 select HAVE_OPROFILE
126 select HAVE_SYSCALL_WRAPPERS if PPC64
126 127
127config EARLY_PRINTK 128config EARLY_PRINTK
128 bool 129 bool
@@ -875,10 +876,6 @@ source "drivers/Kconfig"
875 876
876source "fs/Kconfig" 877source "fs/Kconfig"
877 878
878# XXX source "arch/ppc/8xx_io/Kconfig"
879
880# XXX source "arch/ppc/8260_io/Kconfig"
881
882source "arch/powerpc/sysdev/qe_lib/Kconfig" 879source "arch/powerpc/sysdev/qe_lib/Kconfig"
883 880
884source "lib/Kconfig" 881source "lib/Kconfig"
diff --git a/arch/powerpc/boot/cuboot-warp.c b/arch/powerpc/boot/cuboot-warp.c
index 21780210057d..806df693fea6 100644
--- a/arch/powerpc/boot/cuboot-warp.c
+++ b/arch/powerpc/boot/cuboot-warp.c
@@ -18,57 +18,14 @@
18 18
19static bd_t bd; 19static bd_t bd;
20 20
21static void warp_fixup_one_nor(u32 from, u32 to)
22{
23 void *devp;
24 char name[50];
25 u32 v[2];
26
27 sprintf(name, "/plb/opb/ebc/nor_flash@0,0/partition@%x", from);
28
29 devp = finddevice(name);
30 if (!devp)
31 return;
32
33 if (getprop(devp, "reg", v, sizeof(v)) == sizeof(v)) {
34 v[0] = to;
35 setprop(devp, "reg", v, sizeof(v));
36
37 printf("NOR 64M fixup %x -> %x\r\n", from, to);
38 }
39}
40
41
42static void warp_fixups(void) 21static void warp_fixups(void)
43{ 22{
44 ibm440ep_fixup_clocks(66000000, 11059200, 50000000); 23 ibm440ep_fixup_clocks(66000000, 11059200, 50000000);
45 ibm4xx_sdram_fixup_memsize(); 24 ibm4xx_sdram_fixup_memsize();
46 ibm4xx_fixup_ebc_ranges("/plb/opb/ebc"); 25 ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
47 dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr); 26 dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr);
48
49 /* Fixup for 64M flash on Rev A boards. */
50 if (bd.bi_flashsize == 0x4000000) {
51 void *devp;
52 u32 v[3];
53
54 devp = finddevice("/plb/opb/ebc/nor_flash@0,0");
55 if (!devp)
56 return;
57
58 /* Fixup the size */
59 if (getprop(devp, "reg", v, sizeof(v)) == sizeof(v)) {
60 v[2] = bd.bi_flashsize;
61 setprop(devp, "reg", v, sizeof(v));
62 }
63
64 /* Fixup parition offsets */
65 warp_fixup_one_nor(0x300000, 0x3f00000);
66 warp_fixup_one_nor(0x340000, 0x3f40000);
67 warp_fixup_one_nor(0x380000, 0x3f80000);
68 }
69} 27}
70 28
71
72void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, 29void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
73 unsigned long r6, unsigned long r7) 30 unsigned long r6, unsigned long r7)
74{ 31{
diff --git a/arch/powerpc/boot/dts/gef_sbc610.dts b/arch/powerpc/boot/dts/gef_sbc610.dts
index 9708b3423bbd..e78c355c7bac 100644
--- a/arch/powerpc/boot/dts/gef_sbc610.dts
+++ b/arch/powerpc/boot/dts/gef_sbc610.dts
@@ -88,6 +88,21 @@
88 compatible = "gef,fpga-regs"; 88 compatible = "gef,fpga-regs";
89 reg = <0x4 0x0 0x40>; 89 reg = <0x4 0x0 0x40>;
90 }; 90 };
91
92 wdt@4,2000 {
93 compatible = "gef,fpga-wdt";
94 reg = <0x4 0x2000 0x8>;
95 interrupts = <0x1a 0x4>;
96 interrupt-parent = <&gef_pic>;
97 };
98 /* Second watchdog available, driver currently supports one.
99 wdt@4,2010 {
100 compatible = "gef,fpga-wdt";
101 reg = <0x4 0x2010 0x8>;
102 interrupts = <0x1b 0x4>;
103 interrupt-parent = <&gef_pic>;
104 };
105 */
91 gef_pic: pic@4,4000 { 106 gef_pic: pic@4,4000 {
92 #interrupt-cells = <1>; 107 #interrupt-cells = <1>;
93 interrupt-controller; 108 interrupt-controller;
diff --git a/arch/powerpc/boot/dts/haleakala.dts b/arch/powerpc/boot/dts/haleakala.dts
index 513bc43a71af..5b2a4947bf82 100644
--- a/arch/powerpc/boot/dts/haleakala.dts
+++ b/arch/powerpc/boot/dts/haleakala.dts
@@ -89,8 +89,11 @@
89 clock-frequency = <0>; /* Filled in by U-Boot */ 89 clock-frequency = <0>; /* Filled in by U-Boot */
90 90
91 SDRAM0: memory-controller { 91 SDRAM0: memory-controller {
92 compatible = "ibm,sdram-405exr"; 92 compatible = "ibm,sdram-405exr", "ibm,sdram-4xx-ddr2";
93 dcr-reg = <0x010 0x002>; 93 dcr-reg = <0x010 0x002>;
94 interrupt-parent = <&UIC2>;
95 interrupts = <0x5 0x4 /* ECC DED Error */
96 0x6 0x4>; /* ECC SEC Error */
94 }; 97 };
95 98
96 MAL0: mcmal { 99 MAL0: mcmal {
diff --git a/arch/powerpc/boot/dts/kilauea.dts b/arch/powerpc/boot/dts/kilauea.dts
index dececc4b5ff2..2804444812e5 100644
--- a/arch/powerpc/boot/dts/kilauea.dts
+++ b/arch/powerpc/boot/dts/kilauea.dts
@@ -90,8 +90,11 @@
90 clock-frequency = <0>; /* Filled in by U-Boot */ 90 clock-frequency = <0>; /* Filled in by U-Boot */
91 91
92 SDRAM0: memory-controller { 92 SDRAM0: memory-controller {
93 compatible = "ibm,sdram-405ex"; 93 compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2";
94 dcr-reg = <0x010 0x002>; 94 dcr-reg = <0x010 0x002>;
95 interrupt-parent = <&UIC2>;
96 interrupts = <0x5 0x4 /* ECC DED Error */
97 0x6 0x4>; /* ECC SEC Error */
95 }; 98 };
96 99
97 MAL0: mcmal { 100 MAL0: mcmal {
diff --git a/arch/powerpc/boot/dts/makalu.dts b/arch/powerpc/boot/dts/makalu.dts
index 945508c7e7d8..ffc246e72670 100644
--- a/arch/powerpc/boot/dts/makalu.dts
+++ b/arch/powerpc/boot/dts/makalu.dts
@@ -90,8 +90,11 @@
90 clock-frequency = <0>; /* Filled in by U-Boot */ 90 clock-frequency = <0>; /* Filled in by U-Boot */
91 91
92 SDRAM0: memory-controller { 92 SDRAM0: memory-controller {
93 compatible = "ibm,sdram-405ex"; 93 compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2";
94 dcr-reg = <0x010 0x002>; 94 dcr-reg = <0x010 0x002>;
95 interrupt-parent = <&UIC2>;
96 interrupts = <0x5 0x4 /* ECC DED Error */
97 0x6 0x4 /* ECC SEC Error */ >;
95 }; 98 };
96 99
97 MAL0: mcmal { 100 MAL0: mcmal {
diff --git a/arch/powerpc/boot/dts/mpc8313erdb.dts b/arch/powerpc/boot/dts/mpc8313erdb.dts
index d4df8b6857a4..3ebf7ec0484c 100644
--- a/arch/powerpc/boot/dts/mpc8313erdb.dts
+++ b/arch/powerpc/boot/dts/mpc8313erdb.dts
@@ -185,13 +185,14 @@
185 cell-index = <0>; 185 cell-index = <0>;
186 device_type = "network"; 186 device_type = "network";
187 model = "eTSEC"; 187 model = "eTSEC";
188 compatible = "gianfar", "simple-bus"; 188 compatible = "gianfar";
189 reg = <0x24000 0x1000>; 189 reg = <0x24000 0x1000>;
190 local-mac-address = [ 00 00 00 00 00 00 ]; 190 local-mac-address = [ 00 00 00 00 00 00 ];
191 interrupts = <37 0x8 36 0x8 35 0x8>; 191 interrupts = <37 0x8 36 0x8 35 0x8>;
192 interrupt-parent = <&ipic>; 192 interrupt-parent = <&ipic>;
193 tbi-handle = < &tbi0 >; 193 tbi-handle = < &tbi0 >;
194 phy-handle = < &phy1 >; 194 /* Vitesse 7385 isn't on the MDIO bus */
195 fixed-link = <1 1 1000 0 0>;
195 fsl,magic-packet; 196 fsl,magic-packet;
196 197
197 mdio@24520 { 198 mdio@24520 {
@@ -199,12 +200,6 @@
199 #size-cells = <0>; 200 #size-cells = <0>;
200 compatible = "fsl,gianfar-mdio"; 201 compatible = "fsl,gianfar-mdio";
201 reg = <0x24520 0x20>; 202 reg = <0x24520 0x20>;
202 phy1: ethernet-phy@1 {
203 interrupt-parent = <&ipic>;
204 interrupts = <19 0x8>;
205 reg = <0x1>;
206 device_type = "ethernet-phy";
207 };
208 phy4: ethernet-phy@4 { 203 phy4: ethernet-phy@4 {
209 interrupt-parent = <&ipic>; 204 interrupt-parent = <&ipic>;
210 interrupts = <20 0x8>; 205 interrupts = <20 0x8>;
@@ -219,6 +214,8 @@
219 }; 214 };
220 215
221 enet1: ethernet@25000 { 216 enet1: ethernet@25000 {
217 #address-cells = <1>;
218 #size-cells = <1>;
222 cell-index = <1>; 219 cell-index = <1>;
223 device_type = "network"; 220 device_type = "network";
224 model = "eTSEC"; 221 model = "eTSEC";
diff --git a/arch/powerpc/boot/dts/mpc8315erdb.dts b/arch/powerpc/boot/dts/mpc8315erdb.dts
index 072c9b0f8c8e..71784165b77e 100644
--- a/arch/powerpc/boot/dts/mpc8315erdb.dts
+++ b/arch/powerpc/boot/dts/mpc8315erdb.dts
@@ -255,7 +255,7 @@
255 device_type = "serial"; 255 device_type = "serial";
256 compatible = "ns16550"; 256 compatible = "ns16550";
257 reg = <0x4500 0x100>; 257 reg = <0x4500 0x100>;
258 clock-frequency = <0>; 258 clock-frequency = <133333333>;
259 interrupts = <9 0x8>; 259 interrupts = <9 0x8>;
260 interrupt-parent = <&ipic>; 260 interrupt-parent = <&ipic>;
261 }; 261 };
@@ -265,7 +265,7 @@
265 device_type = "serial"; 265 device_type = "serial";
266 compatible = "ns16550"; 266 compatible = "ns16550";
267 reg = <0x4600 0x100>; 267 reg = <0x4600 0x100>;
268 clock-frequency = <0>; 268 clock-frequency = <133333333>;
269 interrupts = <10 0x8>; 269 interrupts = <10 0x8>;
270 interrupt-parent = <&ipic>; 270 interrupt-parent = <&ipic>;
271 }; 271 };
diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts
index b9da42105066..0668d1048779 100644
--- a/arch/powerpc/boot/dts/mpc8544ds.dts
+++ b/arch/powerpc/boot/dts/mpc8544ds.dts
@@ -313,7 +313,7 @@
313 0x1000000 0x0 0x0 0xe1010000 0x0 0x10000>; 313 0x1000000 0x0 0x0 0xe1010000 0x0 0x10000>;
314 clock-frequency = <33333333>; 314 clock-frequency = <33333333>;
315 interrupt-parent = <&mpic>; 315 interrupt-parent = <&mpic>;
316 interrupts = <26 2>; 316 interrupts = <25 2>;
317 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 317 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
318 interrupt-map = < 318 interrupt-map = <
319 /* IDSEL 0x0 */ 319 /* IDSEL 0x0 */
@@ -350,7 +350,7 @@
350 0x1000000 0x0 0x0 0xe1020000 0x0 0x10000>; 350 0x1000000 0x0 0x0 0xe1020000 0x0 0x10000>;
351 clock-frequency = <33333333>; 351 clock-frequency = <33333333>;
352 interrupt-parent = <&mpic>; 352 interrupt-parent = <&mpic>;
353 interrupts = <25 2>; 353 interrupts = <26 2>;
354 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 354 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
355 interrupt-map = < 355 interrupt-map = <
356 /* IDSEL 0x0 */ 356 /* IDSEL 0x0 */
diff --git a/arch/powerpc/boot/dts/mpc8572ds.dts b/arch/powerpc/boot/dts/mpc8572ds.dts
index 21459e161d02..359c3b727420 100644
--- a/arch/powerpc/boot/dts/mpc8572ds.dts
+++ b/arch/powerpc/boot/dts/mpc8572ds.dts
@@ -89,7 +89,7 @@
89 89
90 ramdisk@0 { 90 ramdisk@0 {
91 reg = <0x0 0x03000000>; 91 reg = <0x0 0x03000000>;
92 readl-only; 92 read-only;
93 }; 93 };
94 94
95 diagnostic@3000000 { 95 diagnostic@3000000 {
@@ -724,7 +724,7 @@
724 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x00010000>; 724 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x00010000>;
725 clock-frequency = <33333333>; 725 clock-frequency = <33333333>;
726 interrupt-parent = <&mpic>; 726 interrupt-parent = <&mpic>;
727 interrupts = <26 2>; 727 interrupts = <25 2>;
728 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 728 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
729 interrupt-map = < 729 interrupt-map = <
730 /* IDSEL 0x0 */ 730 /* IDSEL 0x0 */
@@ -761,7 +761,7 @@
761 0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x00010000>; 761 0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x00010000>;
762 clock-frequency = <33333333>; 762 clock-frequency = <33333333>;
763 interrupt-parent = <&mpic>; 763 interrupt-parent = <&mpic>;
764 interrupts = <27 2>; 764 interrupts = <26 2>;
765 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 765 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
766 interrupt-map = < 766 interrupt-map = <
767 /* IDSEL 0x0 */ 767 /* IDSEL 0x0 */
diff --git a/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts b/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts
index c114c4ee9931..fd462efa9e61 100644
--- a/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts
+++ b/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts
@@ -457,7 +457,7 @@
457 0x1000000 0x0 0x0 0xffc10000 0x0 0x10000>; 457 0x1000000 0x0 0x0 0xffc10000 0x0 0x10000>;
458 clock-frequency = <33333333>; 458 clock-frequency = <33333333>;
459 interrupt-parent = <&mpic>; 459 interrupt-parent = <&mpic>;
460 interrupts = <26 2>; 460 interrupts = <25 2>;
461 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 461 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
462 interrupt-map = < 462 interrupt-map = <
463 /* IDSEL 0x0 */ 463 /* IDSEL 0x0 */
diff --git a/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts b/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts
index 04ecda18d206..e35230f2ac93 100644
--- a/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts
+++ b/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts
@@ -208,7 +208,7 @@
208 0x1000000 0x0 0x0 0xffc20000 0x0 0x10000>; 208 0x1000000 0x0 0x0 0xffc20000 0x0 0x10000>;
209 clock-frequency = <33333333>; 209 clock-frequency = <33333333>;
210 interrupt-parent = <&mpic>; 210 interrupt-parent = <&mpic>;
211 interrupts = <27 2>; 211 interrupts = <26 2>;
212 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 212 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
213 interrupt-map = < 213 interrupt-map = <
214 /* IDSEL 0x0 */ 214 /* IDSEL 0x0 */
diff --git a/arch/powerpc/boot/dts/warp.dts b/arch/powerpc/boot/dts/warp.dts
index f4e4ba69eef7..7e183ff9a317 100644
--- a/arch/powerpc/boot/dts/warp.dts
+++ b/arch/powerpc/boot/dts/warp.dts
@@ -149,12 +149,17 @@
149 reg = <0x00000002 0x00004000 0x00000A00>; 149 reg = <0x00000002 0x00004000 0x00000A00>;
150 }; 150 };
151 151
152 nor_flash@0,0 { 152 nor@0,0 {
153 compatible = "amd,s29gl032a", "cfi-flash"; 153 compatible = "amd,s29gl032a", "cfi-flash";
154 bank-width = <2>; 154 bank-width = <2>;
155 reg = <0x00000000 0x00000000 0x00400000>; 155 reg = <0x00000000 0x00000000 0x00400000>;
156 #address-cells = <1>; 156 #address-cells = <1>;
157 #size-cells = <1>; 157 #size-cells = <1>;
158
159 partition@0 {
160 label = "splash";
161 reg = <0x00000000 0x00020000>;
162 };
158 partition@300000 { 163 partition@300000 {
159 label = "fpga"; 164 label = "fpga";
160 reg = <0x0300000 0x00040000>; 165 reg = <0x0300000 0x00040000>;
@@ -168,6 +173,41 @@
168 reg = <0x0380000 0x00080000>; 173 reg = <0x0380000 0x00080000>;
169 }; 174 };
170 }; 175 };
176
177 ndfc@1,0 {
178 compatible = "ibm,ndfc";
179 reg = <0x00000001 0x00000000 0x00002000>;
180 ccr = <0x00001000>;
181 bank-settings = <0x80002222>;
182 #address-cells = <1>;
183 #size-cells = <1>;
184
185 nand {
186 #address-cells = <1>;
187 #size-cells = <1>;
188
189 partition@0 {
190 label = "kernel";
191 reg = <0x00000000 0x00200000>;
192 };
193 partition@200000 {
194 label = "root";
195 reg = <0x00200000 0x03E00000>;
196 };
197 partition@40000000 {
198 label = "persistent";
199 reg = <0x04000000 0x04000000>;
200 };
201 partition@80000000 {
202 label = "persistent1";
203 reg = <0x08000000 0x04000000>;
204 };
205 partition@C0000000 {
206 label = "persistent2";
207 reg = <0x0C000000 0x04000000>;
208 };
209 };
210 };
171 }; 211 };
172 212
173 UART0: serial@ef600300 { 213 UART0: serial@ef600300 {
diff --git a/arch/powerpc/configs/40x/acadia_defconfig b/arch/powerpc/configs/40x/acadia_defconfig
index 25572cc837ca..a32ec8d323a0 100644
--- a/arch/powerpc/configs/40x/acadia_defconfig
+++ b/arch/powerpc/configs/40x/acadia_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:18 2008 4# Tue Jan 20 08:17:46 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_FAIR_GROUP_SCHED is not set
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155# CONFIG_PPC4xx_PCI_EXPRESS is not set 157# CONFIG_PPC4xx_PCI_EXPRESS is not set
156 158
@@ -182,6 +184,7 @@ CONFIG_405EZ=y
182# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
187# CONFIG_SIMPLE_GPIO is not set
185 188
186# 189#
187# Kernel options 190# Kernel options
@@ -205,6 +208,7 @@ CONFIG_BINFMT_ELF=y
205# CONFIG_BINFMT_MISC is not set 208# CONFIG_BINFMT_MISC is not set
206# CONFIG_MATH_EMULATION is not set 209# CONFIG_MATH_EMULATION is not set
207# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
211CONFIG_PPC_NEED_DMA_SYNC_OPS=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
209CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -219,12 +223,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
221CONFIG_MIGRATION=y 225CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set
223# CONFIG_PHYS_ADDR_T_64BIT is not set 226# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 230CONFIG_UNEVICTABLE_LRU=y
231CONFIG_PPC_4K_PAGES=y
232# CONFIG_PPC_16K_PAGES is not set
233# CONFIG_PPC_64K_PAGES is not set
228CONFIG_FORCE_MAX_ZONEORDER=11 234CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 235CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 236# CONFIG_CMDLINE_BOOL is not set
@@ -248,6 +254,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
248# CONFIG_PCI_MSI is not set 254# CONFIG_PCI_MSI is not set
249CONFIG_PCI_LEGACY=y 255CONFIG_PCI_LEGACY=y
250# CONFIG_PCI_DEBUG is not set 256# CONFIG_PCI_DEBUG is not set
257# CONFIG_PCI_STUB is not set
251# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
252# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
253# CONFIG_HAS_RAPIDIO is not set 260# CONFIG_HAS_RAPIDIO is not set
@@ -272,6 +279,7 @@ CONFIG_NET=y
272# 279#
273# Networking options 280# Networking options
274# 281#
282CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 283CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 284# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 285CONFIG_UNIX=y
@@ -322,6 +330,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
322# CONFIG_ECONET is not set 330# CONFIG_ECONET is not set
323# CONFIG_WAN_ROUTER is not set 331# CONFIG_WAN_ROUTER is not set
324# CONFIG_NET_SCHED is not set 332# CONFIG_NET_SCHED is not set
333# CONFIG_DCB is not set
325 334
326# 335#
327# Network testing 336# Network testing
@@ -334,6 +343,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_AF_RXRPC is not set 343# CONFIG_AF_RXRPC is not set
335# CONFIG_PHONET is not set 344# CONFIG_PHONET is not set
336# CONFIG_WIRELESS is not set 345# CONFIG_WIRELESS is not set
346# CONFIG_WIMAX is not set
337# CONFIG_RFKILL is not set 347# CONFIG_RFKILL is not set
338# CONFIG_NET_9P is not set 348# CONFIG_NET_9P is not set
339 349
@@ -359,6 +369,7 @@ CONFIG_MTD=y
359# CONFIG_MTD_DEBUG is not set 369# CONFIG_MTD_DEBUG is not set
360# CONFIG_MTD_CONCAT is not set 370# CONFIG_MTD_CONCAT is not set
361CONFIG_MTD_PARTITIONS=y 371CONFIG_MTD_PARTITIONS=y
372# CONFIG_MTD_TESTS is not set
362# CONFIG_MTD_REDBOOT_PARTS is not set 373# CONFIG_MTD_REDBOOT_PARTS is not set
363CONFIG_MTD_CMDLINE_PARTS=y 374CONFIG_MTD_CMDLINE_PARTS=y
364CONFIG_MTD_OF_PARTS=y 375CONFIG_MTD_OF_PARTS=y
@@ -431,6 +442,12 @@ CONFIG_MTD_PHYSMAP_OF=y
431# CONFIG_MTD_ONENAND is not set 442# CONFIG_MTD_ONENAND is not set
432 443
433# 444#
445# LPDDR flash memory drivers
446#
447# CONFIG_MTD_LPDDR is not set
448# CONFIG_MTD_QINFO_PROBE is not set
449
450#
434# UBI - Unsorted block images 451# UBI - Unsorted block images
435# 452#
436# CONFIG_MTD_UBI is not set 453# CONFIG_MTD_UBI is not set
@@ -524,6 +541,10 @@ CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR=y
524# CONFIG_WLAN_PRE80211 is not set 541# CONFIG_WLAN_PRE80211 is not set
525# CONFIG_WLAN_80211 is not set 542# CONFIG_WLAN_80211 is not set
526# CONFIG_IWLWIFI_LEDS is not set 543# CONFIG_IWLWIFI_LEDS is not set
544
545#
546# Enable WiMAX (Networking options) to see the WiMAX drivers
547#
527# CONFIG_WAN is not set 548# CONFIG_WAN is not set
528# CONFIG_FDDI is not set 549# CONFIG_FDDI is not set
529# CONFIG_HIPPI is not set 550# CONFIG_HIPPI is not set
@@ -576,9 +597,12 @@ CONFIG_SERIAL_CORE=y
576CONFIG_SERIAL_CORE_CONSOLE=y 597CONFIG_SERIAL_CORE_CONSOLE=y
577# CONFIG_SERIAL_JSM is not set 598# CONFIG_SERIAL_JSM is not set
578CONFIG_SERIAL_OF_PLATFORM=y 599CONFIG_SERIAL_OF_PLATFORM=y
600# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
579CONFIG_UNIX98_PTYS=y 601CONFIG_UNIX98_PTYS=y
602# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
580CONFIG_LEGACY_PTYS=y 603CONFIG_LEGACY_PTYS=y
581CONFIG_LEGACY_PTY_COUNT=256 604CONFIG_LEGACY_PTY_COUNT=256
605# CONFIG_HVC_UDBG is not set
582# CONFIG_IPMI_HANDLER is not set 606# CONFIG_IPMI_HANDLER is not set
583# CONFIG_HW_RANDOM is not set 607# CONFIG_HW_RANDOM is not set
584# CONFIG_NVRAM is not set 608# CONFIG_NVRAM is not set
@@ -597,11 +621,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
597# CONFIG_HWMON is not set 621# CONFIG_HWMON is not set
598CONFIG_THERMAL=y 622CONFIG_THERMAL=y
599# CONFIG_WATCHDOG is not set 623# CONFIG_WATCHDOG is not set
624CONFIG_SSB_POSSIBLE=y
600 625
601# 626#
602# Sonics Silicon Backplane 627# Sonics Silicon Backplane
603# 628#
604CONFIG_SSB_POSSIBLE=y
605# CONFIG_SSB is not set 629# CONFIG_SSB is not set
606 630
607# 631#
@@ -611,7 +635,7 @@ CONFIG_SSB_POSSIBLE=y
611# CONFIG_MFD_SM501 is not set 635# CONFIG_MFD_SM501 is not set
612# CONFIG_HTC_PASIC3 is not set 636# CONFIG_HTC_PASIC3 is not set
613# CONFIG_MFD_TMIO is not set 637# CONFIG_MFD_TMIO is not set
614# CONFIG_MFD_WM8400 is not set 638# CONFIG_REGULATOR is not set
615 639
616# 640#
617# Multimedia devices 641# Multimedia devices
@@ -670,7 +694,9 @@ CONFIG_EXT2_FS=y
670# CONFIG_FS_POSIX_ACL is not set 694# CONFIG_FS_POSIX_ACL is not set
671CONFIG_FILE_LOCKING=y 695CONFIG_FILE_LOCKING=y
672# CONFIG_XFS_FS is not set 696# CONFIG_XFS_FS is not set
697# CONFIG_GFS2_FS is not set
673# CONFIG_OCFS2_FS is not set 698# CONFIG_OCFS2_FS is not set
699# CONFIG_BTRFS_FS is not set
674CONFIG_DNOTIFY=y 700CONFIG_DNOTIFY=y
675CONFIG_INOTIFY=y 701CONFIG_INOTIFY=y
676CONFIG_INOTIFY_USER=y 702CONFIG_INOTIFY_USER=y
@@ -704,10 +730,7 @@ CONFIG_TMPFS=y
704# CONFIG_TMPFS_POSIX_ACL is not set 730# CONFIG_TMPFS_POSIX_ACL is not set
705# CONFIG_HUGETLB_PAGE is not set 731# CONFIG_HUGETLB_PAGE is not set
706# CONFIG_CONFIGFS_FS is not set 732# CONFIG_CONFIGFS_FS is not set
707 733CONFIG_MISC_FILESYSTEMS=y
708#
709# Miscellaneous filesystems
710#
711# CONFIG_ADFS_FS is not set 734# CONFIG_ADFS_FS is not set
712# CONFIG_AFFS_FS is not set 735# CONFIG_AFFS_FS is not set
713# CONFIG_HFS_FS is not set 736# CONFIG_HFS_FS is not set
@@ -717,6 +740,7 @@ CONFIG_TMPFS=y
717# CONFIG_EFS_FS is not set 740# CONFIG_EFS_FS is not set
718# CONFIG_JFFS2_FS is not set 741# CONFIG_JFFS2_FS is not set
719CONFIG_CRAMFS=y 742CONFIG_CRAMFS=y
743# CONFIG_SQUASHFS is not set
720# CONFIG_VXFS_FS is not set 744# CONFIG_VXFS_FS is not set
721# CONFIG_MINIX_FS is not set 745# CONFIG_MINIX_FS is not set
722# CONFIG_OMFS_FS is not set 746# CONFIG_OMFS_FS is not set
@@ -757,6 +781,7 @@ CONFIG_MSDOS_PARTITION=y
757# Library routines 781# Library routines
758# 782#
759CONFIG_BITREVERSE=y 783CONFIG_BITREVERSE=y
784CONFIG_GENERIC_FIND_LAST_BIT=y
760# CONFIG_CRC_CCITT is not set 785# CONFIG_CRC_CCITT is not set
761# CONFIG_CRC16 is not set 786# CONFIG_CRC16 is not set
762# CONFIG_CRC_T10DIF is not set 787# CONFIG_CRC_T10DIF is not set
@@ -807,6 +832,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
807# CONFIG_DEBUG_MEMORY_INIT is not set 832# CONFIG_DEBUG_MEMORY_INIT is not set
808# CONFIG_DEBUG_LIST is not set 833# CONFIG_DEBUG_LIST is not set
809# CONFIG_DEBUG_SG is not set 834# CONFIG_DEBUG_SG is not set
835# CONFIG_DEBUG_NOTIFIERS is not set
810# CONFIG_BOOT_PRINTK_DELAY is not set 836# CONFIG_BOOT_PRINTK_DELAY is not set
811# CONFIG_RCU_TORTURE_TEST is not set 837# CONFIG_RCU_TORTURE_TEST is not set
812# CONFIG_RCU_CPU_STALL_DETECTOR is not set 838# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -815,18 +841,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
815# CONFIG_FAULT_INJECTION is not set 841# CONFIG_FAULT_INJECTION is not set
816# CONFIG_LATENCYTOP is not set 842# CONFIG_LATENCYTOP is not set
817CONFIG_SYSCTL_SYSCALL_CHECK=y 843CONFIG_SYSCTL_SYSCALL_CHECK=y
818CONFIG_NOP_TRACER=y 844CONFIG_HAVE_FUNCTION_TRACER=y
819CONFIG_HAVE_FTRACE=y
820CONFIG_HAVE_DYNAMIC_FTRACE=y 845CONFIG_HAVE_DYNAMIC_FTRACE=y
821# CONFIG_FTRACE is not set 846CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
847
848#
849# Tracers
850#
851# CONFIG_FUNCTION_TRACER is not set
822# CONFIG_SCHED_TRACER is not set 852# CONFIG_SCHED_TRACER is not set
823# CONFIG_CONTEXT_SWITCH_TRACER is not set 853# CONFIG_CONTEXT_SWITCH_TRACER is not set
824# CONFIG_BOOT_TRACER is not set 854# CONFIG_BOOT_TRACER is not set
855# CONFIG_TRACE_BRANCH_PROFILING is not set
825# CONFIG_STACK_TRACER is not set 856# CONFIG_STACK_TRACER is not set
826# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 857# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
827# CONFIG_SAMPLES is not set 858# CONFIG_SAMPLES is not set
828CONFIG_HAVE_ARCH_KGDB=y 859CONFIG_HAVE_ARCH_KGDB=y
829# CONFIG_KGDB is not set 860# CONFIG_KGDB is not set
861CONFIG_PRINT_STACK_DEPTH=64
830# CONFIG_DEBUG_STACKOVERFLOW is not set 862# CONFIG_DEBUG_STACKOVERFLOW is not set
831# CONFIG_DEBUG_STACK_USAGE is not set 863# CONFIG_DEBUG_STACK_USAGE is not set
832# CONFIG_DEBUG_PAGEALLOC is not set 864# CONFIG_DEBUG_PAGEALLOC is not set
@@ -853,11 +885,15 @@ CONFIG_CRYPTO=y
853# 885#
854# CONFIG_CRYPTO_FIPS is not set 886# CONFIG_CRYPTO_FIPS is not set
855CONFIG_CRYPTO_ALGAPI=y 887CONFIG_CRYPTO_ALGAPI=y
856CONFIG_CRYPTO_AEAD=y 888CONFIG_CRYPTO_ALGAPI2=y
889CONFIG_CRYPTO_AEAD2=y
857CONFIG_CRYPTO_BLKCIPHER=y 890CONFIG_CRYPTO_BLKCIPHER=y
891CONFIG_CRYPTO_BLKCIPHER2=y
858CONFIG_CRYPTO_HASH=y 892CONFIG_CRYPTO_HASH=y
859CONFIG_CRYPTO_RNG=y 893CONFIG_CRYPTO_HASH2=y
894CONFIG_CRYPTO_RNG2=y
860CONFIG_CRYPTO_MANAGER=y 895CONFIG_CRYPTO_MANAGER=y
896CONFIG_CRYPTO_MANAGER2=y
861# CONFIG_CRYPTO_GF128MUL is not set 897# CONFIG_CRYPTO_GF128MUL is not set
862# CONFIG_CRYPTO_NULL is not set 898# CONFIG_CRYPTO_NULL is not set
863# CONFIG_CRYPTO_CRYPTD is not set 899# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/ep405_defconfig b/arch/powerpc/configs/40x/ep405_defconfig
index b80ba7aa3129..4e9d85f39da0 100644
--- a/arch/powerpc/configs/40x/ep405_defconfig
+++ b/arch/powerpc/configs/40x/ep405_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:20 2008 4# Tue Jan 20 08:17:48 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155# CONFIG_PPC4xx_PCI_EXPRESS is not set 157# CONFIG_PPC4xx_PCI_EXPRESS is not set
156 158
@@ -184,6 +186,7 @@ CONFIG_IBM405_ERR51=y
184# CONFIG_GENERIC_IOMAP is not set 186# CONFIG_GENERIC_IOMAP is not set
185# CONFIG_CPU_FREQ is not set 187# CONFIG_CPU_FREQ is not set
186# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
189# CONFIG_SIMPLE_GPIO is not set
187 190
188# 191#
189# Kernel options 192# Kernel options
@@ -207,6 +210,7 @@ CONFIG_BINFMT_ELF=y
207# CONFIG_BINFMT_MISC is not set 210# CONFIG_BINFMT_MISC is not set
208# CONFIG_MATH_EMULATION is not set 211# CONFIG_MATH_EMULATION is not set
209# CONFIG_IOMMU_HELPER is not set 212# CONFIG_IOMMU_HELPER is not set
213CONFIG_PPC_NEED_DMA_SYNC_OPS=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
211CONFIG_ARCH_HAS_WALK_MEMORY=y 215CONFIG_ARCH_HAS_WALK_MEMORY=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -221,12 +225,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
221CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
222CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
223CONFIG_MIGRATION=y 227CONFIG_MIGRATION=y
224# CONFIG_RESOURCES_64BIT is not set
225# CONFIG_PHYS_ADDR_T_64BIT is not set 228# CONFIG_PHYS_ADDR_T_64BIT is not set
226CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
227CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
228CONFIG_VIRT_TO_BUS=y 231CONFIG_VIRT_TO_BUS=y
229CONFIG_UNEVICTABLE_LRU=y 232CONFIG_UNEVICTABLE_LRU=y
233CONFIG_PPC_4K_PAGES=y
234# CONFIG_PPC_16K_PAGES is not set
235# CONFIG_PPC_64K_PAGES is not set
230CONFIG_FORCE_MAX_ZONEORDER=11 236CONFIG_FORCE_MAX_ZONEORDER=11
231CONFIG_PROC_DEVICETREE=y 237CONFIG_PROC_DEVICETREE=y
232# CONFIG_CMDLINE_BOOL is not set 238# CONFIG_CMDLINE_BOOL is not set
@@ -250,6 +256,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
250# CONFIG_PCI_MSI is not set 256# CONFIG_PCI_MSI is not set
251CONFIG_PCI_LEGACY=y 257CONFIG_PCI_LEGACY=y
252# CONFIG_PCI_DEBUG is not set 258# CONFIG_PCI_DEBUG is not set
259# CONFIG_PCI_STUB is not set
253# CONFIG_PCCARD is not set 260# CONFIG_PCCARD is not set
254# CONFIG_HOTPLUG_PCI is not set 261# CONFIG_HOTPLUG_PCI is not set
255# CONFIG_HAS_RAPIDIO is not set 262# CONFIG_HAS_RAPIDIO is not set
@@ -274,6 +281,7 @@ CONFIG_NET=y
274# 281#
275# Networking options 282# Networking options
276# 283#
284CONFIG_COMPAT_NET_DEV_OPS=y
277CONFIG_PACKET=y 285CONFIG_PACKET=y
278# CONFIG_PACKET_MMAP is not set 286# CONFIG_PACKET_MMAP is not set
279CONFIG_UNIX=y 287CONFIG_UNIX=y
@@ -324,6 +332,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_ECONET is not set 332# CONFIG_ECONET is not set
325# CONFIG_WAN_ROUTER is not set 333# CONFIG_WAN_ROUTER is not set
326# CONFIG_NET_SCHED is not set 334# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set
327 336
328# 337#
329# Network testing 338# Network testing
@@ -336,6 +345,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_AF_RXRPC is not set 345# CONFIG_AF_RXRPC is not set
337# CONFIG_PHONET is not set 346# CONFIG_PHONET is not set
338# CONFIG_WIRELESS is not set 347# CONFIG_WIRELESS is not set
348# CONFIG_WIMAX is not set
339# CONFIG_RFKILL is not set 349# CONFIG_RFKILL is not set
340# CONFIG_NET_9P is not set 350# CONFIG_NET_9P is not set
341 351
@@ -361,6 +371,7 @@ CONFIG_MTD=y
361# CONFIG_MTD_DEBUG is not set 371# CONFIG_MTD_DEBUG is not set
362# CONFIG_MTD_CONCAT is not set 372# CONFIG_MTD_CONCAT is not set
363CONFIG_MTD_PARTITIONS=y 373CONFIG_MTD_PARTITIONS=y
374# CONFIG_MTD_TESTS is not set
364# CONFIG_MTD_REDBOOT_PARTS is not set 375# CONFIG_MTD_REDBOOT_PARTS is not set
365CONFIG_MTD_CMDLINE_PARTS=y 376CONFIG_MTD_CMDLINE_PARTS=y
366CONFIG_MTD_OF_PARTS=y 377CONFIG_MTD_OF_PARTS=y
@@ -433,6 +444,12 @@ CONFIG_MTD_PHYSMAP_OF=y
433# CONFIG_MTD_ONENAND is not set 444# CONFIG_MTD_ONENAND is not set
434 445
435# 446#
447# LPDDR flash memory drivers
448#
449# CONFIG_MTD_LPDDR is not set
450# CONFIG_MTD_QINFO_PROBE is not set
451
452#
436# UBI - Unsorted block images 453# UBI - Unsorted block images
437# 454#
438# CONFIG_MTD_UBI is not set 455# CONFIG_MTD_UBI is not set
@@ -464,6 +481,7 @@ CONFIG_MISC_DEVICES=y
464# CONFIG_TIFM_CORE is not set 481# CONFIG_TIFM_CORE is not set
465# CONFIG_ENCLOSURE_SERVICES is not set 482# CONFIG_ENCLOSURE_SERVICES is not set
466# CONFIG_HP_ILO is not set 483# CONFIG_HP_ILO is not set
484# CONFIG_C2PORT is not set
467CONFIG_HAVE_IDE=y 485CONFIG_HAVE_IDE=y
468# CONFIG_IDE is not set 486# CONFIG_IDE is not set
469 487
@@ -546,6 +564,7 @@ CONFIG_NETDEV_1000=y
546# CONFIG_JME is not set 564# CONFIG_JME is not set
547CONFIG_NETDEV_10000=y 565CONFIG_NETDEV_10000=y
548# CONFIG_CHELSIO_T1 is not set 566# CONFIG_CHELSIO_T1 is not set
567CONFIG_CHELSIO_T3_DEPENDS=y
549# CONFIG_CHELSIO_T3 is not set 568# CONFIG_CHELSIO_T3 is not set
550# CONFIG_ENIC is not set 569# CONFIG_ENIC is not set
551# CONFIG_IXGBE is not set 570# CONFIG_IXGBE is not set
@@ -570,6 +589,10 @@ CONFIG_NETDEV_10000=y
570# CONFIG_IWLWIFI_LEDS is not set 589# CONFIG_IWLWIFI_LEDS is not set
571 590
572# 591#
592# Enable WiMAX (Networking options) to see the WiMAX drivers
593#
594
595#
573# USB Network Adapters 596# USB Network Adapters
574# 597#
575# CONFIG_USB_CATC is not set 598# CONFIG_USB_CATC is not set
@@ -629,9 +652,12 @@ CONFIG_SERIAL_CORE=y
629CONFIG_SERIAL_CORE_CONSOLE=y 652CONFIG_SERIAL_CORE_CONSOLE=y
630# CONFIG_SERIAL_JSM is not set 653# CONFIG_SERIAL_JSM is not set
631CONFIG_SERIAL_OF_PLATFORM=y 654CONFIG_SERIAL_OF_PLATFORM=y
655# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
632CONFIG_UNIX98_PTYS=y 656CONFIG_UNIX98_PTYS=y
657# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
633CONFIG_LEGACY_PTYS=y 658CONFIG_LEGACY_PTYS=y
634CONFIG_LEGACY_PTY_COUNT=256 659CONFIG_LEGACY_PTY_COUNT=256
660# CONFIG_HVC_UDBG is not set
635# CONFIG_IPMI_HANDLER is not set 661# CONFIG_IPMI_HANDLER is not set
636# CONFIG_HW_RANDOM is not set 662# CONFIG_HW_RANDOM is not set
637# CONFIG_NVRAM is not set 663# CONFIG_NVRAM is not set
@@ -650,11 +676,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
650# CONFIG_HWMON is not set 676# CONFIG_HWMON is not set
651CONFIG_THERMAL=y 677CONFIG_THERMAL=y
652# CONFIG_WATCHDOG is not set 678# CONFIG_WATCHDOG is not set
679CONFIG_SSB_POSSIBLE=y
653 680
654# 681#
655# Sonics Silicon Backplane 682# Sonics Silicon Backplane
656# 683#
657CONFIG_SSB_POSSIBLE=y
658# CONFIG_SSB is not set 684# CONFIG_SSB is not set
659 685
660# 686#
@@ -664,7 +690,7 @@ CONFIG_SSB_POSSIBLE=y
664# CONFIG_MFD_SM501 is not set 690# CONFIG_MFD_SM501 is not set
665# CONFIG_HTC_PASIC3 is not set 691# CONFIG_HTC_PASIC3 is not set
666# CONFIG_MFD_TMIO is not set 692# CONFIG_MFD_TMIO is not set
667# CONFIG_MFD_WM8400 is not set 693# CONFIG_REGULATOR is not set
668 694
669# 695#
670# Multimedia devices 696# Multimedia devices
@@ -723,6 +749,7 @@ CONFIG_USB_MON=y
723# 749#
724# CONFIG_USB_C67X00_HCD is not set 750# CONFIG_USB_C67X00_HCD is not set
725# CONFIG_USB_EHCI_HCD is not set 751# CONFIG_USB_EHCI_HCD is not set
752# CONFIG_USB_OXU210HP_HCD is not set
726# CONFIG_USB_ISP116X_HCD is not set 753# CONFIG_USB_ISP116X_HCD is not set
727# CONFIG_USB_ISP1760_HCD is not set 754# CONFIG_USB_ISP1760_HCD is not set
728CONFIG_USB_OHCI_HCD=y 755CONFIG_USB_OHCI_HCD=y
@@ -748,11 +775,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
748# CONFIG_USB_TMC is not set 775# CONFIG_USB_TMC is not set
749 776
750# 777#
751# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 778# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
752# 779#
753 780
754# 781#
755# may also be needed; see USB_STORAGE Help for more information 782# see USB_STORAGE Help for more information
756# 783#
757# CONFIG_USB_LIBUSUAL is not set 784# CONFIG_USB_LIBUSUAL is not set
758 785
@@ -791,6 +818,10 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
791# CONFIG_USB_ISIGHTFW is not set 818# CONFIG_USB_ISIGHTFW is not set
792# CONFIG_USB_VST is not set 819# CONFIG_USB_VST is not set
793# CONFIG_USB_GADGET is not set 820# CONFIG_USB_GADGET is not set
821
822#
823# OTG and related infrastructure
824#
794# CONFIG_UWB is not set 825# CONFIG_UWB is not set
795# CONFIG_MMC is not set 826# CONFIG_MMC is not set
796# CONFIG_MEMSTICK is not set 827# CONFIG_MEMSTICK is not set
@@ -816,7 +847,9 @@ CONFIG_EXT2_FS=y
816# CONFIG_FS_POSIX_ACL is not set 847# CONFIG_FS_POSIX_ACL is not set
817CONFIG_FILE_LOCKING=y 848CONFIG_FILE_LOCKING=y
818# CONFIG_XFS_FS is not set 849# CONFIG_XFS_FS is not set
850# CONFIG_GFS2_FS is not set
819# CONFIG_OCFS2_FS is not set 851# CONFIG_OCFS2_FS is not set
852# CONFIG_BTRFS_FS is not set
820CONFIG_DNOTIFY=y 853CONFIG_DNOTIFY=y
821CONFIG_INOTIFY=y 854CONFIG_INOTIFY=y
822CONFIG_INOTIFY_USER=y 855CONFIG_INOTIFY_USER=y
@@ -850,10 +883,7 @@ CONFIG_TMPFS=y
850# CONFIG_TMPFS_POSIX_ACL is not set 883# CONFIG_TMPFS_POSIX_ACL is not set
851# CONFIG_HUGETLB_PAGE is not set 884# CONFIG_HUGETLB_PAGE is not set
852# CONFIG_CONFIGFS_FS is not set 885# CONFIG_CONFIGFS_FS is not set
853 886CONFIG_MISC_FILESYSTEMS=y
854#
855# Miscellaneous filesystems
856#
857# CONFIG_ADFS_FS is not set 887# CONFIG_ADFS_FS is not set
858# CONFIG_AFFS_FS is not set 888# CONFIG_AFFS_FS is not set
859# CONFIG_HFS_FS is not set 889# CONFIG_HFS_FS is not set
@@ -863,6 +893,7 @@ CONFIG_TMPFS=y
863# CONFIG_EFS_FS is not set 893# CONFIG_EFS_FS is not set
864# CONFIG_JFFS2_FS is not set 894# CONFIG_JFFS2_FS is not set
865CONFIG_CRAMFS=y 895CONFIG_CRAMFS=y
896# CONFIG_SQUASHFS is not set
866# CONFIG_VXFS_FS is not set 897# CONFIG_VXFS_FS is not set
867# CONFIG_MINIX_FS is not set 898# CONFIG_MINIX_FS is not set
868# CONFIG_OMFS_FS is not set 899# CONFIG_OMFS_FS is not set
@@ -903,6 +934,7 @@ CONFIG_MSDOS_PARTITION=y
903# Library routines 934# Library routines
904# 935#
905CONFIG_BITREVERSE=y 936CONFIG_BITREVERSE=y
937CONFIG_GENERIC_FIND_LAST_BIT=y
906# CONFIG_CRC_CCITT is not set 938# CONFIG_CRC_CCITT is not set
907# CONFIG_CRC16 is not set 939# CONFIG_CRC16 is not set
908# CONFIG_CRC_T10DIF is not set 940# CONFIG_CRC_T10DIF is not set
@@ -953,6 +985,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
953# CONFIG_DEBUG_MEMORY_INIT is not set 985# CONFIG_DEBUG_MEMORY_INIT is not set
954# CONFIG_DEBUG_LIST is not set 986# CONFIG_DEBUG_LIST is not set
955# CONFIG_DEBUG_SG is not set 987# CONFIG_DEBUG_SG is not set
988# CONFIG_DEBUG_NOTIFIERS is not set
956# CONFIG_BOOT_PRINTK_DELAY is not set 989# CONFIG_BOOT_PRINTK_DELAY is not set
957# CONFIG_RCU_TORTURE_TEST is not set 990# CONFIG_RCU_TORTURE_TEST is not set
958# CONFIG_RCU_CPU_STALL_DETECTOR is not set 991# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -961,18 +994,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
961# CONFIG_FAULT_INJECTION is not set 994# CONFIG_FAULT_INJECTION is not set
962# CONFIG_LATENCYTOP is not set 995# CONFIG_LATENCYTOP is not set
963CONFIG_SYSCTL_SYSCALL_CHECK=y 996CONFIG_SYSCTL_SYSCALL_CHECK=y
964CONFIG_NOP_TRACER=y 997CONFIG_HAVE_FUNCTION_TRACER=y
965CONFIG_HAVE_FTRACE=y
966CONFIG_HAVE_DYNAMIC_FTRACE=y 998CONFIG_HAVE_DYNAMIC_FTRACE=y
967# CONFIG_FTRACE is not set 999CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1000
1001#
1002# Tracers
1003#
1004# CONFIG_FUNCTION_TRACER is not set
968# CONFIG_SCHED_TRACER is not set 1005# CONFIG_SCHED_TRACER is not set
969# CONFIG_CONTEXT_SWITCH_TRACER is not set 1006# CONFIG_CONTEXT_SWITCH_TRACER is not set
970# CONFIG_BOOT_TRACER is not set 1007# CONFIG_BOOT_TRACER is not set
1008# CONFIG_TRACE_BRANCH_PROFILING is not set
971# CONFIG_STACK_TRACER is not set 1009# CONFIG_STACK_TRACER is not set
972# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1010# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
973# CONFIG_SAMPLES is not set 1011# CONFIG_SAMPLES is not set
974CONFIG_HAVE_ARCH_KGDB=y 1012CONFIG_HAVE_ARCH_KGDB=y
975# CONFIG_KGDB is not set 1013# CONFIG_KGDB is not set
1014CONFIG_PRINT_STACK_DEPTH=64
976# CONFIG_DEBUG_STACKOVERFLOW is not set 1015# CONFIG_DEBUG_STACKOVERFLOW is not set
977# CONFIG_DEBUG_STACK_USAGE is not set 1016# CONFIG_DEBUG_STACK_USAGE is not set
978# CONFIG_DEBUG_PAGEALLOC is not set 1017# CONFIG_DEBUG_PAGEALLOC is not set
@@ -999,11 +1038,15 @@ CONFIG_CRYPTO=y
999# 1038#
1000# CONFIG_CRYPTO_FIPS is not set 1039# CONFIG_CRYPTO_FIPS is not set
1001CONFIG_CRYPTO_ALGAPI=y 1040CONFIG_CRYPTO_ALGAPI=y
1002CONFIG_CRYPTO_AEAD=y 1041CONFIG_CRYPTO_ALGAPI2=y
1042CONFIG_CRYPTO_AEAD2=y
1003CONFIG_CRYPTO_BLKCIPHER=y 1043CONFIG_CRYPTO_BLKCIPHER=y
1044CONFIG_CRYPTO_BLKCIPHER2=y
1004CONFIG_CRYPTO_HASH=y 1045CONFIG_CRYPTO_HASH=y
1005CONFIG_CRYPTO_RNG=y 1046CONFIG_CRYPTO_HASH2=y
1047CONFIG_CRYPTO_RNG2=y
1006CONFIG_CRYPTO_MANAGER=y 1048CONFIG_CRYPTO_MANAGER=y
1049CONFIG_CRYPTO_MANAGER2=y
1007# CONFIG_CRYPTO_GF128MUL is not set 1050# CONFIG_CRYPTO_GF128MUL is not set
1008# CONFIG_CRYPTO_NULL is not set 1051# CONFIG_CRYPTO_NULL is not set
1009# CONFIG_CRYPTO_CRYPTD is not set 1052# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/hcu4_defconfig b/arch/powerpc/configs/40x/hcu4_defconfig
index 45dcb824503f..8c019d79bf2a 100644
--- a/arch/powerpc/configs/40x/hcu4_defconfig
+++ b/arch/powerpc/configs/40x/hcu4_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:22 2008 4# Tue Jan 20 08:17:50 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155# CONFIG_PPC4xx_PCI_EXPRESS is not set 157# CONFIG_PPC4xx_PCI_EXPRESS is not set
156 158
@@ -182,6 +184,7 @@ CONFIG_405GPR=y
182# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
187# CONFIG_SIMPLE_GPIO is not set
185 188
186# 189#
187# Kernel options 190# Kernel options
@@ -205,6 +208,7 @@ CONFIG_BINFMT_ELF=y
205# CONFIG_BINFMT_MISC is not set 208# CONFIG_BINFMT_MISC is not set
206# CONFIG_MATH_EMULATION is not set 209# CONFIG_MATH_EMULATION is not set
207# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
211CONFIG_PPC_NEED_DMA_SYNC_OPS=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
209CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -219,12 +223,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
221CONFIG_MIGRATION=y 225CONFIG_MIGRATION=y
222CONFIG_RESOURCES_64BIT=y
223# CONFIG_PHYS_ADDR_T_64BIT is not set 226# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 230CONFIG_UNEVICTABLE_LRU=y
231CONFIG_PPC_4K_PAGES=y
232# CONFIG_PPC_16K_PAGES is not set
233# CONFIG_PPC_64K_PAGES is not set
228CONFIG_FORCE_MAX_ZONEORDER=11 234CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 235CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 236# CONFIG_CMDLINE_BOOL is not set
@@ -248,6 +254,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
248# CONFIG_PCI_MSI is not set 254# CONFIG_PCI_MSI is not set
249# CONFIG_PCI_LEGACY is not set 255# CONFIG_PCI_LEGACY is not set
250# CONFIG_PCI_DEBUG is not set 256# CONFIG_PCI_DEBUG is not set
257# CONFIG_PCI_STUB is not set
251# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
252# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
253# CONFIG_HAS_RAPIDIO is not set 260# CONFIG_HAS_RAPIDIO is not set
@@ -272,6 +279,7 @@ CONFIG_NET=y
272# 279#
273# Networking options 280# Networking options
274# 281#
282CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 283CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 284# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 285CONFIG_UNIX=y
@@ -322,6 +330,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
322# CONFIG_ECONET is not set 330# CONFIG_ECONET is not set
323# CONFIG_WAN_ROUTER is not set 331# CONFIG_WAN_ROUTER is not set
324# CONFIG_NET_SCHED is not set 332# CONFIG_NET_SCHED is not set
333# CONFIG_DCB is not set
325 334
326# 335#
327# Network testing 336# Network testing
@@ -334,6 +343,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_AF_RXRPC is not set 343# CONFIG_AF_RXRPC is not set
335# CONFIG_PHONET is not set 344# CONFIG_PHONET is not set
336# CONFIG_WIRELESS is not set 345# CONFIG_WIRELESS is not set
346# CONFIG_WIMAX is not set
337# CONFIG_RFKILL is not set 347# CONFIG_RFKILL is not set
338# CONFIG_NET_9P is not set 348# CONFIG_NET_9P is not set
339 349
@@ -359,6 +369,7 @@ CONFIG_MTD=y
359# CONFIG_MTD_DEBUG is not set 369# CONFIG_MTD_DEBUG is not set
360# CONFIG_MTD_CONCAT is not set 370# CONFIG_MTD_CONCAT is not set
361CONFIG_MTD_PARTITIONS=y 371CONFIG_MTD_PARTITIONS=y
372# CONFIG_MTD_TESTS is not set
362# CONFIG_MTD_REDBOOT_PARTS is not set 373# CONFIG_MTD_REDBOOT_PARTS is not set
363CONFIG_MTD_CMDLINE_PARTS=y 374CONFIG_MTD_CMDLINE_PARTS=y
364CONFIG_MTD_OF_PARTS=y 375CONFIG_MTD_OF_PARTS=y
@@ -431,6 +442,12 @@ CONFIG_MTD_PHYSMAP_OF=y
431# CONFIG_MTD_ONENAND is not set 442# CONFIG_MTD_ONENAND is not set
432 443
433# 444#
445# LPDDR flash memory drivers
446#
447# CONFIG_MTD_LPDDR is not set
448# CONFIG_MTD_QINFO_PROBE is not set
449
450#
434# UBI - Unsorted block images 451# UBI - Unsorted block images
435# 452#
436# CONFIG_MTD_UBI is not set 453# CONFIG_MTD_UBI is not set
@@ -461,6 +478,7 @@ CONFIG_MISC_DEVICES=y
461# CONFIG_TIFM_CORE is not set 478# CONFIG_TIFM_CORE is not set
462# CONFIG_ENCLOSURE_SERVICES is not set 479# CONFIG_ENCLOSURE_SERVICES is not set
463# CONFIG_HP_ILO is not set 480# CONFIG_HP_ILO is not set
481# CONFIG_C2PORT is not set
464CONFIG_HAVE_IDE=y 482CONFIG_HAVE_IDE=y
465# CONFIG_IDE is not set 483# CONFIG_IDE is not set
466 484
@@ -543,6 +561,7 @@ CONFIG_NETDEV_1000=y
543# CONFIG_JME is not set 561# CONFIG_JME is not set
544CONFIG_NETDEV_10000=y 562CONFIG_NETDEV_10000=y
545# CONFIG_CHELSIO_T1 is not set 563# CONFIG_CHELSIO_T1 is not set
564CONFIG_CHELSIO_T3_DEPENDS=y
546# CONFIG_CHELSIO_T3 is not set 565# CONFIG_CHELSIO_T3 is not set
547# CONFIG_ENIC is not set 566# CONFIG_ENIC is not set
548# CONFIG_IXGBE is not set 567# CONFIG_IXGBE is not set
@@ -565,6 +584,10 @@ CONFIG_NETDEV_10000=y
565# CONFIG_WLAN_PRE80211 is not set 584# CONFIG_WLAN_PRE80211 is not set
566# CONFIG_WLAN_80211 is not set 585# CONFIG_WLAN_80211 is not set
567# CONFIG_IWLWIFI_LEDS is not set 586# CONFIG_IWLWIFI_LEDS is not set
587
588#
589# Enable WiMAX (Networking options) to see the WiMAX drivers
590#
568# CONFIG_WAN is not set 591# CONFIG_WAN is not set
569# CONFIG_FDDI is not set 592# CONFIG_FDDI is not set
570# CONFIG_HIPPI is not set 593# CONFIG_HIPPI is not set
@@ -617,9 +640,12 @@ CONFIG_SERIAL_CORE=y
617CONFIG_SERIAL_CORE_CONSOLE=y 640CONFIG_SERIAL_CORE_CONSOLE=y
618# CONFIG_SERIAL_JSM is not set 641# CONFIG_SERIAL_JSM is not set
619CONFIG_SERIAL_OF_PLATFORM=y 642CONFIG_SERIAL_OF_PLATFORM=y
643# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
620CONFIG_UNIX98_PTYS=y 644CONFIG_UNIX98_PTYS=y
645# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
621CONFIG_LEGACY_PTYS=y 646CONFIG_LEGACY_PTYS=y
622CONFIG_LEGACY_PTY_COUNT=256 647CONFIG_LEGACY_PTY_COUNT=256
648# CONFIG_HVC_UDBG is not set
623# CONFIG_IPMI_HANDLER is not set 649# CONFIG_IPMI_HANDLER is not set
624# CONFIG_HW_RANDOM is not set 650# CONFIG_HW_RANDOM is not set
625# CONFIG_NVRAM is not set 651# CONFIG_NVRAM is not set
@@ -639,11 +665,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
639# CONFIG_THERMAL is not set 665# CONFIG_THERMAL is not set
640# CONFIG_THERMAL_HWMON is not set 666# CONFIG_THERMAL_HWMON is not set
641# CONFIG_WATCHDOG is not set 667# CONFIG_WATCHDOG is not set
668CONFIG_SSB_POSSIBLE=y
642 669
643# 670#
644# Sonics Silicon Backplane 671# Sonics Silicon Backplane
645# 672#
646CONFIG_SSB_POSSIBLE=y
647# CONFIG_SSB is not set 673# CONFIG_SSB is not set
648 674
649# 675#
@@ -653,7 +679,7 @@ CONFIG_SSB_POSSIBLE=y
653# CONFIG_MFD_SM501 is not set 679# CONFIG_MFD_SM501 is not set
654# CONFIG_HTC_PASIC3 is not set 680# CONFIG_HTC_PASIC3 is not set
655# CONFIG_MFD_TMIO is not set 681# CONFIG_MFD_TMIO is not set
656# CONFIG_MFD_WM8400 is not set 682# CONFIG_REGULATOR is not set
657 683
658# 684#
659# Multimedia devices 685# Multimedia devices
@@ -712,7 +738,9 @@ CONFIG_EXT2_FS=y
712# CONFIG_FS_POSIX_ACL is not set 738# CONFIG_FS_POSIX_ACL is not set
713CONFIG_FILE_LOCKING=y 739CONFIG_FILE_LOCKING=y
714# CONFIG_XFS_FS is not set 740# CONFIG_XFS_FS is not set
741# CONFIG_GFS2_FS is not set
715# CONFIG_OCFS2_FS is not set 742# CONFIG_OCFS2_FS is not set
743# CONFIG_BTRFS_FS is not set
716CONFIG_DNOTIFY=y 744CONFIG_DNOTIFY=y
717CONFIG_INOTIFY=y 745CONFIG_INOTIFY=y
718CONFIG_INOTIFY_USER=y 746CONFIG_INOTIFY_USER=y
@@ -746,10 +774,7 @@ CONFIG_TMPFS=y
746# CONFIG_TMPFS_POSIX_ACL is not set 774# CONFIG_TMPFS_POSIX_ACL is not set
747# CONFIG_HUGETLB_PAGE is not set 775# CONFIG_HUGETLB_PAGE is not set
748# CONFIG_CONFIGFS_FS is not set 776# CONFIG_CONFIGFS_FS is not set
749 777CONFIG_MISC_FILESYSTEMS=y
750#
751# Miscellaneous filesystems
752#
753# CONFIG_ADFS_FS is not set 778# CONFIG_ADFS_FS is not set
754# CONFIG_AFFS_FS is not set 779# CONFIG_AFFS_FS is not set
755# CONFIG_HFS_FS is not set 780# CONFIG_HFS_FS is not set
@@ -759,6 +784,7 @@ CONFIG_TMPFS=y
759# CONFIG_EFS_FS is not set 784# CONFIG_EFS_FS is not set
760# CONFIG_JFFS2_FS is not set 785# CONFIG_JFFS2_FS is not set
761CONFIG_CRAMFS=y 786CONFIG_CRAMFS=y
787# CONFIG_SQUASHFS is not set
762# CONFIG_VXFS_FS is not set 788# CONFIG_VXFS_FS is not set
763# CONFIG_MINIX_FS is not set 789# CONFIG_MINIX_FS is not set
764# CONFIG_OMFS_FS is not set 790# CONFIG_OMFS_FS is not set
@@ -799,6 +825,7 @@ CONFIG_MSDOS_PARTITION=y
799# Library routines 825# Library routines
800# 826#
801CONFIG_BITREVERSE=y 827CONFIG_BITREVERSE=y
828CONFIG_GENERIC_FIND_LAST_BIT=y
802# CONFIG_CRC_CCITT is not set 829# CONFIG_CRC_CCITT is not set
803# CONFIG_CRC16 is not set 830# CONFIG_CRC16 is not set
804# CONFIG_CRC_T10DIF is not set 831# CONFIG_CRC_T10DIF is not set
@@ -849,6 +876,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
849# CONFIG_DEBUG_MEMORY_INIT is not set 876# CONFIG_DEBUG_MEMORY_INIT is not set
850# CONFIG_DEBUG_LIST is not set 877# CONFIG_DEBUG_LIST is not set
851# CONFIG_DEBUG_SG is not set 878# CONFIG_DEBUG_SG is not set
879# CONFIG_DEBUG_NOTIFIERS is not set
852# CONFIG_BOOT_PRINTK_DELAY is not set 880# CONFIG_BOOT_PRINTK_DELAY is not set
853# CONFIG_RCU_TORTURE_TEST is not set 881# CONFIG_RCU_TORTURE_TEST is not set
854# CONFIG_RCU_CPU_STALL_DETECTOR is not set 882# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -857,18 +885,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
857# CONFIG_FAULT_INJECTION is not set 885# CONFIG_FAULT_INJECTION is not set
858# CONFIG_LATENCYTOP is not set 886# CONFIG_LATENCYTOP is not set
859CONFIG_SYSCTL_SYSCALL_CHECK=y 887CONFIG_SYSCTL_SYSCALL_CHECK=y
860CONFIG_NOP_TRACER=y 888CONFIG_HAVE_FUNCTION_TRACER=y
861CONFIG_HAVE_FTRACE=y
862CONFIG_HAVE_DYNAMIC_FTRACE=y 889CONFIG_HAVE_DYNAMIC_FTRACE=y
863# CONFIG_FTRACE is not set 890CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
891
892#
893# Tracers
894#
895# CONFIG_FUNCTION_TRACER is not set
864# CONFIG_SCHED_TRACER is not set 896# CONFIG_SCHED_TRACER is not set
865# CONFIG_CONTEXT_SWITCH_TRACER is not set 897# CONFIG_CONTEXT_SWITCH_TRACER is not set
866# CONFIG_BOOT_TRACER is not set 898# CONFIG_BOOT_TRACER is not set
899# CONFIG_TRACE_BRANCH_PROFILING is not set
867# CONFIG_STACK_TRACER is not set 900# CONFIG_STACK_TRACER is not set
868# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 901# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
869# CONFIG_SAMPLES is not set 902# CONFIG_SAMPLES is not set
870CONFIG_HAVE_ARCH_KGDB=y 903CONFIG_HAVE_ARCH_KGDB=y
871# CONFIG_KGDB is not set 904# CONFIG_KGDB is not set
905CONFIG_PRINT_STACK_DEPTH=64
872# CONFIG_DEBUG_STACKOVERFLOW is not set 906# CONFIG_DEBUG_STACKOVERFLOW is not set
873# CONFIG_DEBUG_STACK_USAGE is not set 907# CONFIG_DEBUG_STACK_USAGE is not set
874# CONFIG_DEBUG_PAGEALLOC is not set 908# CONFIG_DEBUG_PAGEALLOC is not set
@@ -895,11 +929,15 @@ CONFIG_CRYPTO=y
895# 929#
896# CONFIG_CRYPTO_FIPS is not set 930# CONFIG_CRYPTO_FIPS is not set
897CONFIG_CRYPTO_ALGAPI=y 931CONFIG_CRYPTO_ALGAPI=y
898CONFIG_CRYPTO_AEAD=y 932CONFIG_CRYPTO_ALGAPI2=y
933CONFIG_CRYPTO_AEAD2=y
899CONFIG_CRYPTO_BLKCIPHER=y 934CONFIG_CRYPTO_BLKCIPHER=y
935CONFIG_CRYPTO_BLKCIPHER2=y
900CONFIG_CRYPTO_HASH=y 936CONFIG_CRYPTO_HASH=y
901CONFIG_CRYPTO_RNG=y 937CONFIG_CRYPTO_HASH2=y
938CONFIG_CRYPTO_RNG2=y
902CONFIG_CRYPTO_MANAGER=y 939CONFIG_CRYPTO_MANAGER=y
940CONFIG_CRYPTO_MANAGER2=y
903# CONFIG_CRYPTO_GF128MUL is not set 941# CONFIG_CRYPTO_GF128MUL is not set
904# CONFIG_CRYPTO_NULL is not set 942# CONFIG_CRYPTO_NULL is not set
905# CONFIG_CRYPTO_CRYPTD is not set 943# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/kilauea_defconfig b/arch/powerpc/configs/40x/kilauea_defconfig
index e2f3695d9d0b..9917a09bad3a 100644
--- a/arch/powerpc/configs/40x/kilauea_defconfig
+++ b/arch/powerpc/configs/40x/kilauea_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:23 2008 4# Tue Jan 20 08:17:52 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_FAIR_GROUP_SCHED is not set
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155CONFIG_PPC4xx_PCI_EXPRESS=y 157CONFIG_PPC4xx_PCI_EXPRESS=y
156 158
@@ -182,6 +184,7 @@ CONFIG_405EX=y
182# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
187# CONFIG_SIMPLE_GPIO is not set
185 188
186# 189#
187# Kernel options 190# Kernel options
@@ -205,6 +208,7 @@ CONFIG_BINFMT_ELF=y
205# CONFIG_BINFMT_MISC is not set 208# CONFIG_BINFMT_MISC is not set
206# CONFIG_MATH_EMULATION is not set 209# CONFIG_MATH_EMULATION is not set
207# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
211CONFIG_PPC_NEED_DMA_SYNC_OPS=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
209CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -219,12 +223,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
221CONFIG_MIGRATION=y 225CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set
223# CONFIG_PHYS_ADDR_T_64BIT is not set 226# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 230CONFIG_UNEVICTABLE_LRU=y
231CONFIG_PPC_4K_PAGES=y
232# CONFIG_PPC_16K_PAGES is not set
233# CONFIG_PPC_64K_PAGES is not set
228CONFIG_FORCE_MAX_ZONEORDER=11 234CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 235CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 236# CONFIG_CMDLINE_BOOL is not set
@@ -248,6 +254,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
248# CONFIG_PCI_MSI is not set 254# CONFIG_PCI_MSI is not set
249CONFIG_PCI_LEGACY=y 255CONFIG_PCI_LEGACY=y
250# CONFIG_PCI_DEBUG is not set 256# CONFIG_PCI_DEBUG is not set
257# CONFIG_PCI_STUB is not set
251# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
252# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
253# CONFIG_HAS_RAPIDIO is not set 260# CONFIG_HAS_RAPIDIO is not set
@@ -272,6 +279,7 @@ CONFIG_NET=y
272# 279#
273# Networking options 280# Networking options
274# 281#
282CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 283CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 284# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 285CONFIG_UNIX=y
@@ -322,6 +330,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
322# CONFIG_ECONET is not set 330# CONFIG_ECONET is not set
323# CONFIG_WAN_ROUTER is not set 331# CONFIG_WAN_ROUTER is not set
324# CONFIG_NET_SCHED is not set 332# CONFIG_NET_SCHED is not set
333# CONFIG_DCB is not set
325 334
326# 335#
327# Network testing 336# Network testing
@@ -334,6 +343,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_AF_RXRPC is not set 343# CONFIG_AF_RXRPC is not set
335# CONFIG_PHONET is not set 344# CONFIG_PHONET is not set
336# CONFIG_WIRELESS is not set 345# CONFIG_WIRELESS is not set
346# CONFIG_WIMAX is not set
337# CONFIG_RFKILL is not set 347# CONFIG_RFKILL is not set
338# CONFIG_NET_9P is not set 348# CONFIG_NET_9P is not set
339 349
@@ -359,6 +369,7 @@ CONFIG_MTD=y
359# CONFIG_MTD_DEBUG is not set 369# CONFIG_MTD_DEBUG is not set
360# CONFIG_MTD_CONCAT is not set 370# CONFIG_MTD_CONCAT is not set
361CONFIG_MTD_PARTITIONS=y 371CONFIG_MTD_PARTITIONS=y
372# CONFIG_MTD_TESTS is not set
362# CONFIG_MTD_REDBOOT_PARTS is not set 373# CONFIG_MTD_REDBOOT_PARTS is not set
363CONFIG_MTD_CMDLINE_PARTS=y 374CONFIG_MTD_CMDLINE_PARTS=y
364CONFIG_MTD_OF_PARTS=y 375CONFIG_MTD_OF_PARTS=y
@@ -431,6 +442,12 @@ CONFIG_MTD_PHYSMAP_OF=y
431# CONFIG_MTD_ONENAND is not set 442# CONFIG_MTD_ONENAND is not set
432 443
433# 444#
445# LPDDR flash memory drivers
446#
447# CONFIG_MTD_LPDDR is not set
448# CONFIG_MTD_QINFO_PROBE is not set
449
450#
434# UBI - Unsorted block images 451# UBI - Unsorted block images
435# 452#
436# CONFIG_MTD_UBI is not set 453# CONFIG_MTD_UBI is not set
@@ -524,6 +541,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
524# CONFIG_WLAN_PRE80211 is not set 541# CONFIG_WLAN_PRE80211 is not set
525# CONFIG_WLAN_80211 is not set 542# CONFIG_WLAN_80211 is not set
526# CONFIG_IWLWIFI_LEDS is not set 543# CONFIG_IWLWIFI_LEDS is not set
544
545#
546# Enable WiMAX (Networking options) to see the WiMAX drivers
547#
527# CONFIG_WAN is not set 548# CONFIG_WAN is not set
528# CONFIG_FDDI is not set 549# CONFIG_FDDI is not set
529# CONFIG_HIPPI is not set 550# CONFIG_HIPPI is not set
@@ -576,9 +597,12 @@ CONFIG_SERIAL_CORE=y
576CONFIG_SERIAL_CORE_CONSOLE=y 597CONFIG_SERIAL_CORE_CONSOLE=y
577# CONFIG_SERIAL_JSM is not set 598# CONFIG_SERIAL_JSM is not set
578CONFIG_SERIAL_OF_PLATFORM=y 599CONFIG_SERIAL_OF_PLATFORM=y
600# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
579CONFIG_UNIX98_PTYS=y 601CONFIG_UNIX98_PTYS=y
602# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
580CONFIG_LEGACY_PTYS=y 603CONFIG_LEGACY_PTYS=y
581CONFIG_LEGACY_PTY_COUNT=256 604CONFIG_LEGACY_PTY_COUNT=256
605# CONFIG_HVC_UDBG is not set
582# CONFIG_IPMI_HANDLER is not set 606# CONFIG_IPMI_HANDLER is not set
583# CONFIG_HW_RANDOM is not set 607# CONFIG_HW_RANDOM is not set
584# CONFIG_NVRAM is not set 608# CONFIG_NVRAM is not set
@@ -597,11 +621,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
597# CONFIG_HWMON is not set 621# CONFIG_HWMON is not set
598CONFIG_THERMAL=y 622CONFIG_THERMAL=y
599# CONFIG_WATCHDOG is not set 623# CONFIG_WATCHDOG is not set
624CONFIG_SSB_POSSIBLE=y
600 625
601# 626#
602# Sonics Silicon Backplane 627# Sonics Silicon Backplane
603# 628#
604CONFIG_SSB_POSSIBLE=y
605# CONFIG_SSB is not set 629# CONFIG_SSB is not set
606 630
607# 631#
@@ -611,7 +635,7 @@ CONFIG_SSB_POSSIBLE=y
611# CONFIG_MFD_SM501 is not set 635# CONFIG_MFD_SM501 is not set
612# CONFIG_HTC_PASIC3 is not set 636# CONFIG_HTC_PASIC3 is not set
613# CONFIG_MFD_TMIO is not set 637# CONFIG_MFD_TMIO is not set
614# CONFIG_MFD_WM8400 is not set 638# CONFIG_REGULATOR is not set
615 639
616# 640#
617# Multimedia devices 641# Multimedia devices
@@ -670,7 +694,9 @@ CONFIG_EXT2_FS=y
670# CONFIG_FS_POSIX_ACL is not set 694# CONFIG_FS_POSIX_ACL is not set
671CONFIG_FILE_LOCKING=y 695CONFIG_FILE_LOCKING=y
672# CONFIG_XFS_FS is not set 696# CONFIG_XFS_FS is not set
697# CONFIG_GFS2_FS is not set
673# CONFIG_OCFS2_FS is not set 698# CONFIG_OCFS2_FS is not set
699# CONFIG_BTRFS_FS is not set
674CONFIG_DNOTIFY=y 700CONFIG_DNOTIFY=y
675CONFIG_INOTIFY=y 701CONFIG_INOTIFY=y
676CONFIG_INOTIFY_USER=y 702CONFIG_INOTIFY_USER=y
@@ -704,10 +730,7 @@ CONFIG_TMPFS=y
704# CONFIG_TMPFS_POSIX_ACL is not set 730# CONFIG_TMPFS_POSIX_ACL is not set
705# CONFIG_HUGETLB_PAGE is not set 731# CONFIG_HUGETLB_PAGE is not set
706# CONFIG_CONFIGFS_FS is not set 732# CONFIG_CONFIGFS_FS is not set
707 733CONFIG_MISC_FILESYSTEMS=y
708#
709# Miscellaneous filesystems
710#
711# CONFIG_ADFS_FS is not set 734# CONFIG_ADFS_FS is not set
712# CONFIG_AFFS_FS is not set 735# CONFIG_AFFS_FS is not set
713# CONFIG_HFS_FS is not set 736# CONFIG_HFS_FS is not set
@@ -717,6 +740,7 @@ CONFIG_TMPFS=y
717# CONFIG_EFS_FS is not set 740# CONFIG_EFS_FS is not set
718# CONFIG_JFFS2_FS is not set 741# CONFIG_JFFS2_FS is not set
719CONFIG_CRAMFS=y 742CONFIG_CRAMFS=y
743# CONFIG_SQUASHFS is not set
720# CONFIG_VXFS_FS is not set 744# CONFIG_VXFS_FS is not set
721# CONFIG_MINIX_FS is not set 745# CONFIG_MINIX_FS is not set
722# CONFIG_OMFS_FS is not set 746# CONFIG_OMFS_FS is not set
@@ -757,6 +781,7 @@ CONFIG_MSDOS_PARTITION=y
757# Library routines 781# Library routines
758# 782#
759CONFIG_BITREVERSE=y 783CONFIG_BITREVERSE=y
784CONFIG_GENERIC_FIND_LAST_BIT=y
760# CONFIG_CRC_CCITT is not set 785# CONFIG_CRC_CCITT is not set
761# CONFIG_CRC16 is not set 786# CONFIG_CRC16 is not set
762# CONFIG_CRC_T10DIF is not set 787# CONFIG_CRC_T10DIF is not set
@@ -807,6 +832,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
807# CONFIG_DEBUG_MEMORY_INIT is not set 832# CONFIG_DEBUG_MEMORY_INIT is not set
808# CONFIG_DEBUG_LIST is not set 833# CONFIG_DEBUG_LIST is not set
809# CONFIG_DEBUG_SG is not set 834# CONFIG_DEBUG_SG is not set
835# CONFIG_DEBUG_NOTIFIERS is not set
810# CONFIG_BOOT_PRINTK_DELAY is not set 836# CONFIG_BOOT_PRINTK_DELAY is not set
811# CONFIG_RCU_TORTURE_TEST is not set 837# CONFIG_RCU_TORTURE_TEST is not set
812# CONFIG_RCU_CPU_STALL_DETECTOR is not set 838# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -815,18 +841,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
815# CONFIG_FAULT_INJECTION is not set 841# CONFIG_FAULT_INJECTION is not set
816# CONFIG_LATENCYTOP is not set 842# CONFIG_LATENCYTOP is not set
817CONFIG_SYSCTL_SYSCALL_CHECK=y 843CONFIG_SYSCTL_SYSCALL_CHECK=y
818CONFIG_NOP_TRACER=y 844CONFIG_HAVE_FUNCTION_TRACER=y
819CONFIG_HAVE_FTRACE=y
820CONFIG_HAVE_DYNAMIC_FTRACE=y 845CONFIG_HAVE_DYNAMIC_FTRACE=y
821# CONFIG_FTRACE is not set 846CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
847
848#
849# Tracers
850#
851# CONFIG_FUNCTION_TRACER is not set
822# CONFIG_SCHED_TRACER is not set 852# CONFIG_SCHED_TRACER is not set
823# CONFIG_CONTEXT_SWITCH_TRACER is not set 853# CONFIG_CONTEXT_SWITCH_TRACER is not set
824# CONFIG_BOOT_TRACER is not set 854# CONFIG_BOOT_TRACER is not set
855# CONFIG_TRACE_BRANCH_PROFILING is not set
825# CONFIG_STACK_TRACER is not set 856# CONFIG_STACK_TRACER is not set
826# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 857# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
827# CONFIG_SAMPLES is not set 858# CONFIG_SAMPLES is not set
828CONFIG_HAVE_ARCH_KGDB=y 859CONFIG_HAVE_ARCH_KGDB=y
829# CONFIG_KGDB is not set 860# CONFIG_KGDB is not set
861CONFIG_PRINT_STACK_DEPTH=64
830# CONFIG_DEBUG_STACKOVERFLOW is not set 862# CONFIG_DEBUG_STACKOVERFLOW is not set
831# CONFIG_DEBUG_STACK_USAGE is not set 863# CONFIG_DEBUG_STACK_USAGE is not set
832# CONFIG_DEBUG_PAGEALLOC is not set 864# CONFIG_DEBUG_PAGEALLOC is not set
@@ -853,11 +885,15 @@ CONFIG_CRYPTO=y
853# 885#
854# CONFIG_CRYPTO_FIPS is not set 886# CONFIG_CRYPTO_FIPS is not set
855CONFIG_CRYPTO_ALGAPI=y 887CONFIG_CRYPTO_ALGAPI=y
856CONFIG_CRYPTO_AEAD=y 888CONFIG_CRYPTO_ALGAPI2=y
889CONFIG_CRYPTO_AEAD2=y
857CONFIG_CRYPTO_BLKCIPHER=y 890CONFIG_CRYPTO_BLKCIPHER=y
891CONFIG_CRYPTO_BLKCIPHER2=y
858CONFIG_CRYPTO_HASH=y 892CONFIG_CRYPTO_HASH=y
859CONFIG_CRYPTO_RNG=y 893CONFIG_CRYPTO_HASH2=y
894CONFIG_CRYPTO_RNG2=y
860CONFIG_CRYPTO_MANAGER=y 895CONFIG_CRYPTO_MANAGER=y
896CONFIG_CRYPTO_MANAGER2=y
861# CONFIG_CRYPTO_GF128MUL is not set 897# CONFIG_CRYPTO_GF128MUL is not set
862# CONFIG_CRYPTO_NULL is not set 898# CONFIG_CRYPTO_NULL is not set
863# CONFIG_CRYPTO_CRYPTD is not set 899# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/makalu_defconfig b/arch/powerpc/configs/40x/makalu_defconfig
index 413c778ecd7c..58bf2ac2e0dd 100644
--- a/arch/powerpc/configs/40x/makalu_defconfig
+++ b/arch/powerpc/configs/40x/makalu_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:25 2008 4# Tue Jan 20 08:17:53 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_FAIR_GROUP_SCHED is not set
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155CONFIG_PPC4xx_PCI_EXPRESS=y 157CONFIG_PPC4xx_PCI_EXPRESS=y
156 158
@@ -182,6 +184,7 @@ CONFIG_405EX=y
182# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
187# CONFIG_SIMPLE_GPIO is not set
185 188
186# 189#
187# Kernel options 190# Kernel options
@@ -205,6 +208,7 @@ CONFIG_BINFMT_ELF=y
205# CONFIG_BINFMT_MISC is not set 208# CONFIG_BINFMT_MISC is not set
206# CONFIG_MATH_EMULATION is not set 209# CONFIG_MATH_EMULATION is not set
207# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
211CONFIG_PPC_NEED_DMA_SYNC_OPS=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
209CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -219,12 +223,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
221CONFIG_MIGRATION=y 225CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set
223# CONFIG_PHYS_ADDR_T_64BIT is not set 226# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 230CONFIG_UNEVICTABLE_LRU=y
231CONFIG_PPC_4K_PAGES=y
232# CONFIG_PPC_16K_PAGES is not set
233# CONFIG_PPC_64K_PAGES is not set
228CONFIG_FORCE_MAX_ZONEORDER=11 234CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 235CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 236# CONFIG_CMDLINE_BOOL is not set
@@ -248,6 +254,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
248# CONFIG_PCI_MSI is not set 254# CONFIG_PCI_MSI is not set
249CONFIG_PCI_LEGACY=y 255CONFIG_PCI_LEGACY=y
250# CONFIG_PCI_DEBUG is not set 256# CONFIG_PCI_DEBUG is not set
257# CONFIG_PCI_STUB is not set
251# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
252# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
253# CONFIG_HAS_RAPIDIO is not set 260# CONFIG_HAS_RAPIDIO is not set
@@ -272,6 +279,7 @@ CONFIG_NET=y
272# 279#
273# Networking options 280# Networking options
274# 281#
282CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 283CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 284# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 285CONFIG_UNIX=y
@@ -322,6 +330,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
322# CONFIG_ECONET is not set 330# CONFIG_ECONET is not set
323# CONFIG_WAN_ROUTER is not set 331# CONFIG_WAN_ROUTER is not set
324# CONFIG_NET_SCHED is not set 332# CONFIG_NET_SCHED is not set
333# CONFIG_DCB is not set
325 334
326# 335#
327# Network testing 336# Network testing
@@ -334,6 +343,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_AF_RXRPC is not set 343# CONFIG_AF_RXRPC is not set
335# CONFIG_PHONET is not set 344# CONFIG_PHONET is not set
336# CONFIG_WIRELESS is not set 345# CONFIG_WIRELESS is not set
346# CONFIG_WIMAX is not set
337# CONFIG_RFKILL is not set 347# CONFIG_RFKILL is not set
338# CONFIG_NET_9P is not set 348# CONFIG_NET_9P is not set
339 349
@@ -359,6 +369,7 @@ CONFIG_MTD=y
359# CONFIG_MTD_DEBUG is not set 369# CONFIG_MTD_DEBUG is not set
360# CONFIG_MTD_CONCAT is not set 370# CONFIG_MTD_CONCAT is not set
361CONFIG_MTD_PARTITIONS=y 371CONFIG_MTD_PARTITIONS=y
372# CONFIG_MTD_TESTS is not set
362# CONFIG_MTD_REDBOOT_PARTS is not set 373# CONFIG_MTD_REDBOOT_PARTS is not set
363CONFIG_MTD_CMDLINE_PARTS=y 374CONFIG_MTD_CMDLINE_PARTS=y
364CONFIG_MTD_OF_PARTS=y 375CONFIG_MTD_OF_PARTS=y
@@ -431,6 +442,12 @@ CONFIG_MTD_PHYSMAP_OF=y
431# CONFIG_MTD_ONENAND is not set 442# CONFIG_MTD_ONENAND is not set
432 443
433# 444#
445# LPDDR flash memory drivers
446#
447# CONFIG_MTD_LPDDR is not set
448# CONFIG_MTD_QINFO_PROBE is not set
449
450#
434# UBI - Unsorted block images 451# UBI - Unsorted block images
435# 452#
436# CONFIG_MTD_UBI is not set 453# CONFIG_MTD_UBI is not set
@@ -524,6 +541,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
524# CONFIG_WLAN_PRE80211 is not set 541# CONFIG_WLAN_PRE80211 is not set
525# CONFIG_WLAN_80211 is not set 542# CONFIG_WLAN_80211 is not set
526# CONFIG_IWLWIFI_LEDS is not set 543# CONFIG_IWLWIFI_LEDS is not set
544
545#
546# Enable WiMAX (Networking options) to see the WiMAX drivers
547#
527# CONFIG_WAN is not set 548# CONFIG_WAN is not set
528# CONFIG_FDDI is not set 549# CONFIG_FDDI is not set
529# CONFIG_HIPPI is not set 550# CONFIG_HIPPI is not set
@@ -576,9 +597,12 @@ CONFIG_SERIAL_CORE=y
576CONFIG_SERIAL_CORE_CONSOLE=y 597CONFIG_SERIAL_CORE_CONSOLE=y
577# CONFIG_SERIAL_JSM is not set 598# CONFIG_SERIAL_JSM is not set
578CONFIG_SERIAL_OF_PLATFORM=y 599CONFIG_SERIAL_OF_PLATFORM=y
600# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
579CONFIG_UNIX98_PTYS=y 601CONFIG_UNIX98_PTYS=y
602# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
580CONFIG_LEGACY_PTYS=y 603CONFIG_LEGACY_PTYS=y
581CONFIG_LEGACY_PTY_COUNT=256 604CONFIG_LEGACY_PTY_COUNT=256
605# CONFIG_HVC_UDBG is not set
582# CONFIG_IPMI_HANDLER is not set 606# CONFIG_IPMI_HANDLER is not set
583# CONFIG_HW_RANDOM is not set 607# CONFIG_HW_RANDOM is not set
584# CONFIG_NVRAM is not set 608# CONFIG_NVRAM is not set
@@ -597,11 +621,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
597# CONFIG_HWMON is not set 621# CONFIG_HWMON is not set
598CONFIG_THERMAL=y 622CONFIG_THERMAL=y
599# CONFIG_WATCHDOG is not set 623# CONFIG_WATCHDOG is not set
624CONFIG_SSB_POSSIBLE=y
600 625
601# 626#
602# Sonics Silicon Backplane 627# Sonics Silicon Backplane
603# 628#
604CONFIG_SSB_POSSIBLE=y
605# CONFIG_SSB is not set 629# CONFIG_SSB is not set
606 630
607# 631#
@@ -611,7 +635,7 @@ CONFIG_SSB_POSSIBLE=y
611# CONFIG_MFD_SM501 is not set 635# CONFIG_MFD_SM501 is not set
612# CONFIG_HTC_PASIC3 is not set 636# CONFIG_HTC_PASIC3 is not set
613# CONFIG_MFD_TMIO is not set 637# CONFIG_MFD_TMIO is not set
614# CONFIG_MFD_WM8400 is not set 638# CONFIG_REGULATOR is not set
615 639
616# 640#
617# Multimedia devices 641# Multimedia devices
@@ -670,7 +694,9 @@ CONFIG_EXT2_FS=y
670# CONFIG_FS_POSIX_ACL is not set 694# CONFIG_FS_POSIX_ACL is not set
671CONFIG_FILE_LOCKING=y 695CONFIG_FILE_LOCKING=y
672# CONFIG_XFS_FS is not set 696# CONFIG_XFS_FS is not set
697# CONFIG_GFS2_FS is not set
673# CONFIG_OCFS2_FS is not set 698# CONFIG_OCFS2_FS is not set
699# CONFIG_BTRFS_FS is not set
674CONFIG_DNOTIFY=y 700CONFIG_DNOTIFY=y
675CONFIG_INOTIFY=y 701CONFIG_INOTIFY=y
676CONFIG_INOTIFY_USER=y 702CONFIG_INOTIFY_USER=y
@@ -704,10 +730,7 @@ CONFIG_TMPFS=y
704# CONFIG_TMPFS_POSIX_ACL is not set 730# CONFIG_TMPFS_POSIX_ACL is not set
705# CONFIG_HUGETLB_PAGE is not set 731# CONFIG_HUGETLB_PAGE is not set
706# CONFIG_CONFIGFS_FS is not set 732# CONFIG_CONFIGFS_FS is not set
707 733CONFIG_MISC_FILESYSTEMS=y
708#
709# Miscellaneous filesystems
710#
711# CONFIG_ADFS_FS is not set 734# CONFIG_ADFS_FS is not set
712# CONFIG_AFFS_FS is not set 735# CONFIG_AFFS_FS is not set
713# CONFIG_HFS_FS is not set 736# CONFIG_HFS_FS is not set
@@ -717,6 +740,7 @@ CONFIG_TMPFS=y
717# CONFIG_EFS_FS is not set 740# CONFIG_EFS_FS is not set
718# CONFIG_JFFS2_FS is not set 741# CONFIG_JFFS2_FS is not set
719CONFIG_CRAMFS=y 742CONFIG_CRAMFS=y
743# CONFIG_SQUASHFS is not set
720# CONFIG_VXFS_FS is not set 744# CONFIG_VXFS_FS is not set
721# CONFIG_MINIX_FS is not set 745# CONFIG_MINIX_FS is not set
722# CONFIG_OMFS_FS is not set 746# CONFIG_OMFS_FS is not set
@@ -757,6 +781,7 @@ CONFIG_MSDOS_PARTITION=y
757# Library routines 781# Library routines
758# 782#
759CONFIG_BITREVERSE=y 783CONFIG_BITREVERSE=y
784CONFIG_GENERIC_FIND_LAST_BIT=y
760# CONFIG_CRC_CCITT is not set 785# CONFIG_CRC_CCITT is not set
761# CONFIG_CRC16 is not set 786# CONFIG_CRC16 is not set
762# CONFIG_CRC_T10DIF is not set 787# CONFIG_CRC_T10DIF is not set
@@ -807,6 +832,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
807# CONFIG_DEBUG_MEMORY_INIT is not set 832# CONFIG_DEBUG_MEMORY_INIT is not set
808# CONFIG_DEBUG_LIST is not set 833# CONFIG_DEBUG_LIST is not set
809# CONFIG_DEBUG_SG is not set 834# CONFIG_DEBUG_SG is not set
835# CONFIG_DEBUG_NOTIFIERS is not set
810# CONFIG_BOOT_PRINTK_DELAY is not set 836# CONFIG_BOOT_PRINTK_DELAY is not set
811# CONFIG_RCU_TORTURE_TEST is not set 837# CONFIG_RCU_TORTURE_TEST is not set
812# CONFIG_RCU_CPU_STALL_DETECTOR is not set 838# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -815,18 +841,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
815# CONFIG_FAULT_INJECTION is not set 841# CONFIG_FAULT_INJECTION is not set
816# CONFIG_LATENCYTOP is not set 842# CONFIG_LATENCYTOP is not set
817CONFIG_SYSCTL_SYSCALL_CHECK=y 843CONFIG_SYSCTL_SYSCALL_CHECK=y
818CONFIG_NOP_TRACER=y 844CONFIG_HAVE_FUNCTION_TRACER=y
819CONFIG_HAVE_FTRACE=y
820CONFIG_HAVE_DYNAMIC_FTRACE=y 845CONFIG_HAVE_DYNAMIC_FTRACE=y
821# CONFIG_FTRACE is not set 846CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
847
848#
849# Tracers
850#
851# CONFIG_FUNCTION_TRACER is not set
822# CONFIG_SCHED_TRACER is not set 852# CONFIG_SCHED_TRACER is not set
823# CONFIG_CONTEXT_SWITCH_TRACER is not set 853# CONFIG_CONTEXT_SWITCH_TRACER is not set
824# CONFIG_BOOT_TRACER is not set 854# CONFIG_BOOT_TRACER is not set
855# CONFIG_TRACE_BRANCH_PROFILING is not set
825# CONFIG_STACK_TRACER is not set 856# CONFIG_STACK_TRACER is not set
826# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 857# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
827# CONFIG_SAMPLES is not set 858# CONFIG_SAMPLES is not set
828CONFIG_HAVE_ARCH_KGDB=y 859CONFIG_HAVE_ARCH_KGDB=y
829# CONFIG_KGDB is not set 860# CONFIG_KGDB is not set
861CONFIG_PRINT_STACK_DEPTH=64
830# CONFIG_DEBUG_STACKOVERFLOW is not set 862# CONFIG_DEBUG_STACKOVERFLOW is not set
831# CONFIG_DEBUG_STACK_USAGE is not set 863# CONFIG_DEBUG_STACK_USAGE is not set
832# CONFIG_DEBUG_PAGEALLOC is not set 864# CONFIG_DEBUG_PAGEALLOC is not set
@@ -853,11 +885,15 @@ CONFIG_CRYPTO=y
853# 885#
854# CONFIG_CRYPTO_FIPS is not set 886# CONFIG_CRYPTO_FIPS is not set
855CONFIG_CRYPTO_ALGAPI=y 887CONFIG_CRYPTO_ALGAPI=y
856CONFIG_CRYPTO_AEAD=y 888CONFIG_CRYPTO_ALGAPI2=y
889CONFIG_CRYPTO_AEAD2=y
857CONFIG_CRYPTO_BLKCIPHER=y 890CONFIG_CRYPTO_BLKCIPHER=y
891CONFIG_CRYPTO_BLKCIPHER2=y
858CONFIG_CRYPTO_HASH=y 892CONFIG_CRYPTO_HASH=y
859CONFIG_CRYPTO_RNG=y 893CONFIG_CRYPTO_HASH2=y
894CONFIG_CRYPTO_RNG2=y
860CONFIG_CRYPTO_MANAGER=y 895CONFIG_CRYPTO_MANAGER=y
896CONFIG_CRYPTO_MANAGER2=y
861# CONFIG_CRYPTO_GF128MUL is not set 897# CONFIG_CRYPTO_GF128MUL is not set
862# CONFIG_CRYPTO_NULL is not set 898# CONFIG_CRYPTO_NULL is not set
863# CONFIG_CRYPTO_CRYPTD is not set 899# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/virtex_defconfig b/arch/powerpc/configs/40x/virtex_defconfig
index 9a9350ded292..b6888384dd74 100644
--- a/arch/powerpc/configs/40x/virtex_defconfig
+++ b/arch/powerpc/configs/40x/virtex_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Fri Nov 14 10:49:16 2008 4# Tue Jan 20 08:17:55 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -41,7 +42,7 @@ CONFIG_GENERIC_GPIO=y
41CONFIG_PPC=y 42CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y 43CONFIG_EARLY_PRINTK=y
43CONFIG_GENERIC_NVRAM=y 44CONFIG_GENERIC_NVRAM=y
44CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 45CONFIG_SCHED_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y 46CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y 47CONFIG_PPC_OF=y
47CONFIG_OF=y 48CONFIG_OF=y
@@ -74,8 +75,8 @@ CONFIG_POSIX_MQUEUE=y
74CONFIG_IKCONFIG=y 75CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 76CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78# CONFIG_GROUP_SCHED is not set 78# CONFIG_GROUP_SCHED is not set
79# CONFIG_CGROUPS is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y 81CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
@@ -113,7 +114,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 114# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 115# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set 118# CONFIG_KPROBES is not set
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -124,7 +124,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 128CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 129# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +131,9 @@ CONFIG_MODULE_UNLOAD=y
132CONFIG_MODULE_FORCE_UNLOAD=y 131CONFIG_MODULE_FORCE_UNLOAD=y
133CONFIG_MODVERSIONS=y 132CONFIG_MODVERSIONS=y
134# CONFIG_MODULE_SRCVERSION_ALL is not set 133# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 134CONFIG_BLOCK=y
137# CONFIG_LBD is not set 135# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
142 139
@@ -153,6 +150,10 @@ CONFIG_DEFAULT_CFQ=y
153# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="cfq" 151CONFIG_DEFAULT_IOSCHED="cfq"
155CONFIG_CLASSIC_RCU=y 152CONFIG_CLASSIC_RCU=y
153# CONFIG_TREE_RCU is not set
154# CONFIG_PREEMPT_RCU is not set
155# CONFIG_TREE_RCU_TRACE is not set
156# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
157# CONFIG_PPC4xx_PCI_EXPRESS is not set 158# CONFIG_PPC4xx_PCI_EXPRESS is not set
158 159
@@ -188,6 +189,7 @@ CONFIG_IBM405_ERR51=y
188# CONFIG_GENERIC_IOMAP is not set 189# CONFIG_GENERIC_IOMAP is not set
189# CONFIG_CPU_FREQ is not set 190# CONFIG_CPU_FREQ is not set
190# CONFIG_FSL_ULI1575 is not set 191# CONFIG_FSL_ULI1575 is not set
192# CONFIG_SIMPLE_GPIO is not set
191 193
192# 194#
193# Kernel options 195# Kernel options
@@ -205,13 +207,13 @@ CONFIG_HZ=250
205# CONFIG_PREEMPT_NONE is not set 207# CONFIG_PREEMPT_NONE is not set
206# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
207CONFIG_PREEMPT=y 209CONFIG_PREEMPT=y
208# CONFIG_PREEMPT_RCU is not set
209CONFIG_BINFMT_ELF=y 210CONFIG_BINFMT_ELF=y
210# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 211# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
211# CONFIG_HAVE_AOUT is not set 212# CONFIG_HAVE_AOUT is not set
212# CONFIG_BINFMT_MISC is not set 213# CONFIG_BINFMT_MISC is not set
213CONFIG_MATH_EMULATION=y 214CONFIG_MATH_EMULATION=y
214# CONFIG_IOMMU_HELPER is not set 215# CONFIG_IOMMU_HELPER is not set
216CONFIG_PPC_NEED_DMA_SYNC_OPS=y
215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 217CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
216CONFIG_ARCH_HAS_WALK_MEMORY=y 218CONFIG_ARCH_HAS_WALK_MEMORY=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -226,12 +228,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
229CONFIG_RESOURCES_64BIT=y
230# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=1 232CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 233CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 234CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 235CONFIG_UNEVICTABLE_LRU=y
236CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
236CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
237CONFIG_CMDLINE_BOOL=y 241CONFIG_CMDLINE_BOOL=y
@@ -256,6 +260,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
256# CONFIG_PCI_MSI is not set 260# CONFIG_PCI_MSI is not set
257CONFIG_PCI_LEGACY=y 261CONFIG_PCI_LEGACY=y
258# CONFIG_PCI_DEBUG is not set 262# CONFIG_PCI_DEBUG is not set
263# CONFIG_PCI_STUB is not set
259# CONFIG_PCCARD is not set 264# CONFIG_PCCARD is not set
260# CONFIG_HOTPLUG_PCI is not set 265# CONFIG_HOTPLUG_PCI is not set
261# CONFIG_HAS_RAPIDIO is not set 266# CONFIG_HAS_RAPIDIO is not set
@@ -280,6 +285,8 @@ CONFIG_NET=y
280# 285#
281# Networking options 286# Networking options
282# 287#
288# CONFIG_NET_NS is not set
289CONFIG_COMPAT_NET_DEV_OPS=y
283CONFIG_PACKET=y 290CONFIG_PACKET=y
284# CONFIG_PACKET_MMAP is not set 291# CONFIG_PACKET_MMAP is not set
285CONFIG_UNIX=y 292CONFIG_UNIX=y
@@ -423,6 +430,7 @@ CONFIG_IP_NF_MANGLE=m
423# CONFIG_ECONET is not set 430# CONFIG_ECONET is not set
424# CONFIG_WAN_ROUTER is not set 431# CONFIG_WAN_ROUTER is not set
425# CONFIG_NET_SCHED is not set 432# CONFIG_NET_SCHED is not set
433# CONFIG_DCB is not set
426 434
427# 435#
428# Network testing 436# Network testing
@@ -438,8 +446,9 @@ CONFIG_WIRELESS=y
438# CONFIG_CFG80211 is not set 446# CONFIG_CFG80211 is not set
439CONFIG_WIRELESS_OLD_REGULATORY=y 447CONFIG_WIRELESS_OLD_REGULATORY=y
440# CONFIG_WIRELESS_EXT is not set 448# CONFIG_WIRELESS_EXT is not set
449# CONFIG_LIB80211 is not set
441# CONFIG_MAC80211 is not set 450# CONFIG_MAC80211 is not set
442# CONFIG_IEEE80211 is not set 451# CONFIG_WIMAX is not set
443# CONFIG_RFKILL is not set 452# CONFIG_RFKILL is not set
444# CONFIG_NET_9P is not set 453# CONFIG_NET_9P is not set
445 454
@@ -574,6 +583,10 @@ CONFIG_NETDEV_1000=y
574# CONFIG_WLAN_PRE80211 is not set 583# CONFIG_WLAN_PRE80211 is not set
575# CONFIG_WLAN_80211 is not set 584# CONFIG_WLAN_80211 is not set
576# CONFIG_IWLWIFI_LEDS is not set 585# CONFIG_IWLWIFI_LEDS is not set
586
587#
588# Enable WiMAX (Networking options) to see the WiMAX drivers
589#
577# CONFIG_WAN is not set 590# CONFIG_WAN is not set
578# CONFIG_FDDI is not set 591# CONFIG_FDDI is not set
579# CONFIG_HIPPI is not set 592# CONFIG_HIPPI is not set
@@ -674,9 +687,12 @@ CONFIG_SERIAL_CORE=y
674CONFIG_SERIAL_CORE_CONSOLE=y 687CONFIG_SERIAL_CORE_CONSOLE=y
675# CONFIG_SERIAL_JSM is not set 688# CONFIG_SERIAL_JSM is not set
676# CONFIG_SERIAL_OF_PLATFORM is not set 689# CONFIG_SERIAL_OF_PLATFORM is not set
690# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
677CONFIG_UNIX98_PTYS=y 691CONFIG_UNIX98_PTYS=y
692# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
678CONFIG_LEGACY_PTYS=y 693CONFIG_LEGACY_PTYS=y
679CONFIG_LEGACY_PTY_COUNT=256 694CONFIG_LEGACY_PTY_COUNT=256
695# CONFIG_HVC_UDBG is not set
680# CONFIG_IPMI_HANDLER is not set 696# CONFIG_IPMI_HANDLER is not set
681CONFIG_HW_RANDOM=m 697CONFIG_HW_RANDOM=m
682# CONFIG_NVRAM is not set 698# CONFIG_NVRAM is not set
@@ -854,7 +870,6 @@ CONFIG_LOGO_LINUX_CLUT224=y
854# CONFIG_DMADEVICES is not set 870# CONFIG_DMADEVICES is not set
855# CONFIG_UIO is not set 871# CONFIG_UIO is not set
856# CONFIG_STAGING is not set 872# CONFIG_STAGING is not set
857CONFIG_STAGING_EXCLUDE_BUILD=y
858 873
859# 874#
860# File systems 875# File systems
@@ -870,6 +885,7 @@ CONFIG_EXT2_FS=y
870CONFIG_FILE_LOCKING=y 885CONFIG_FILE_LOCKING=y
871# CONFIG_XFS_FS is not set 886# CONFIG_XFS_FS is not set
872# CONFIG_OCFS2_FS is not set 887# CONFIG_OCFS2_FS is not set
888# CONFIG_BTRFS_FS is not set
873CONFIG_DNOTIFY=y 889CONFIG_DNOTIFY=y
874CONFIG_INOTIFY=y 890CONFIG_INOTIFY=y
875CONFIG_INOTIFY_USER=y 891CONFIG_INOTIFY_USER=y
@@ -906,10 +922,7 @@ CONFIG_TMPFS=y
906# CONFIG_TMPFS_POSIX_ACL is not set 922# CONFIG_TMPFS_POSIX_ACL is not set
907# CONFIG_HUGETLB_PAGE is not set 923# CONFIG_HUGETLB_PAGE is not set
908# CONFIG_CONFIGFS_FS is not set 924# CONFIG_CONFIGFS_FS is not set
909 925CONFIG_MISC_FILESYSTEMS=y
910#
911# Miscellaneous filesystems
912#
913# CONFIG_ADFS_FS is not set 926# CONFIG_ADFS_FS is not set
914# CONFIG_AFFS_FS is not set 927# CONFIG_AFFS_FS is not set
915# CONFIG_HFS_FS is not set 928# CONFIG_HFS_FS is not set
@@ -918,6 +931,7 @@ CONFIG_TMPFS=y
918# CONFIG_BFS_FS is not set 931# CONFIG_BFS_FS is not set
919# CONFIG_EFS_FS is not set 932# CONFIG_EFS_FS is not set
920CONFIG_CRAMFS=y 933CONFIG_CRAMFS=y
934# CONFIG_SQUASHFS is not set
921# CONFIG_VXFS_FS is not set 935# CONFIG_VXFS_FS is not set
922# CONFIG_MINIX_FS is not set 936# CONFIG_MINIX_FS is not set
923# CONFIG_OMFS_FS is not set 937# CONFIG_OMFS_FS is not set
@@ -997,6 +1011,7 @@ CONFIG_NLS_UTF8=m
997# Library routines 1011# Library routines
998# 1012#
999CONFIG_BITREVERSE=y 1013CONFIG_BITREVERSE=y
1014CONFIG_GENERIC_FIND_LAST_BIT=y
1000CONFIG_CRC_CCITT=y 1015CONFIG_CRC_CCITT=y
1001# CONFIG_CRC16 is not set 1016# CONFIG_CRC16 is not set
1002# CONFIG_CRC_T10DIF is not set 1017# CONFIG_CRC_T10DIF is not set
@@ -1046,6 +1061,7 @@ CONFIG_DEBUG_INFO=y
1046CONFIG_DEBUG_MEMORY_INIT=y 1061CONFIG_DEBUG_MEMORY_INIT=y
1047# CONFIG_DEBUG_LIST is not set 1062# CONFIG_DEBUG_LIST is not set
1048# CONFIG_DEBUG_SG is not set 1063# CONFIG_DEBUG_SG is not set
1064# CONFIG_DEBUG_NOTIFIERS is not set
1049# CONFIG_BOOT_PRINTK_DELAY is not set 1065# CONFIG_BOOT_PRINTK_DELAY is not set
1050# CONFIG_RCU_TORTURE_TEST is not set 1066# CONFIG_RCU_TORTURE_TEST is not set
1051# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1067# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1055,6 +1071,8 @@ CONFIG_DEBUG_MEMORY_INIT=y
1055# CONFIG_LATENCYTOP is not set 1071# CONFIG_LATENCYTOP is not set
1056CONFIG_SYSCTL_SYSCALL_CHECK=y 1072CONFIG_SYSCTL_SYSCALL_CHECK=y
1057CONFIG_HAVE_FUNCTION_TRACER=y 1073CONFIG_HAVE_FUNCTION_TRACER=y
1074CONFIG_HAVE_DYNAMIC_FTRACE=y
1075CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1058 1076
1059# 1077#
1060# Tracers 1078# Tracers
@@ -1064,11 +1082,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1064# CONFIG_SCHED_TRACER is not set 1082# CONFIG_SCHED_TRACER is not set
1065# CONFIG_CONTEXT_SWITCH_TRACER is not set 1083# CONFIG_CONTEXT_SWITCH_TRACER is not set
1066# CONFIG_BOOT_TRACER is not set 1084# CONFIG_BOOT_TRACER is not set
1085# CONFIG_TRACE_BRANCH_PROFILING is not set
1067# CONFIG_STACK_TRACER is not set 1086# CONFIG_STACK_TRACER is not set
1068# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1087# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1069# CONFIG_SAMPLES is not set 1088# CONFIG_SAMPLES is not set
1070CONFIG_HAVE_ARCH_KGDB=y 1089CONFIG_HAVE_ARCH_KGDB=y
1071# CONFIG_KGDB is not set 1090# CONFIG_KGDB is not set
1091CONFIG_PRINT_STACK_DEPTH=64
1072# CONFIG_DEBUG_STACKOVERFLOW is not set 1092# CONFIG_DEBUG_STACKOVERFLOW is not set
1073# CONFIG_DEBUG_STACK_USAGE is not set 1093# CONFIG_DEBUG_STACK_USAGE is not set
1074# CONFIG_DEBUG_PAGEALLOC is not set 1094# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1094,6 +1114,7 @@ CONFIG_CRYPTO=y
1094# 1114#
1095# CONFIG_CRYPTO_FIPS is not set 1115# CONFIG_CRYPTO_FIPS is not set
1096# CONFIG_CRYPTO_MANAGER is not set 1116# CONFIG_CRYPTO_MANAGER is not set
1117# CONFIG_CRYPTO_MANAGER2 is not set
1097# CONFIG_CRYPTO_GF128MUL is not set 1118# CONFIG_CRYPTO_GF128MUL is not set
1098# CONFIG_CRYPTO_NULL is not set 1119# CONFIG_CRYPTO_NULL is not set
1099# CONFIG_CRYPTO_CRYPTD is not set 1120# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/walnut_defconfig b/arch/powerpc/configs/40x/walnut_defconfig
index 5820e0a4fc55..5ab29dddd21c 100644
--- a/arch/powerpc/configs/40x/walnut_defconfig
+++ b/arch/powerpc/configs/40x/walnut_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:27 2008 4# Tue Jan 20 08:17:57 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155# CONFIG_PPC4xx_PCI_EXPRESS is not set 157# CONFIG_PPC4xx_PCI_EXPRESS is not set
156 158
@@ -185,6 +187,7 @@ CONFIG_IBM405_ERR51=y
185# CONFIG_CPU_FREQ is not set 187# CONFIG_CPU_FREQ is not set
186# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
187CONFIG_OF_RTC=y 189CONFIG_OF_RTC=y
190# CONFIG_SIMPLE_GPIO is not set
188 191
189# 192#
190# Kernel options 193# Kernel options
@@ -208,6 +211,7 @@ CONFIG_BINFMT_ELF=y
208# CONFIG_BINFMT_MISC is not set 211# CONFIG_BINFMT_MISC is not set
209# CONFIG_MATH_EMULATION is not set 212# CONFIG_MATH_EMULATION is not set
210# CONFIG_IOMMU_HELPER is not set 213# CONFIG_IOMMU_HELPER is not set
214CONFIG_PPC_NEED_DMA_SYNC_OPS=y
211CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
212CONFIG_ARCH_HAS_WALK_MEMORY=y 216CONFIG_ARCH_HAS_WALK_MEMORY=y
213CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -222,12 +226,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
225CONFIG_RESOURCES_64BIT=y
226# CONFIG_PHYS_ADDR_T_64BIT is not set 229# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 233CONFIG_UNEVICTABLE_LRU=y
234CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
@@ -251,6 +257,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
251# CONFIG_PCI_MSI is not set 257# CONFIG_PCI_MSI is not set
252# CONFIG_PCI_LEGACY is not set 258# CONFIG_PCI_LEGACY is not set
253# CONFIG_PCI_DEBUG is not set 259# CONFIG_PCI_DEBUG is not set
260# CONFIG_PCI_STUB is not set
254# CONFIG_PCCARD is not set 261# CONFIG_PCCARD is not set
255# CONFIG_HOTPLUG_PCI is not set 262# CONFIG_HOTPLUG_PCI is not set
256# CONFIG_HAS_RAPIDIO is not set 263# CONFIG_HAS_RAPIDIO is not set
@@ -275,6 +282,7 @@ CONFIG_NET=y
275# 282#
276# Networking options 283# Networking options
277# 284#
285CONFIG_COMPAT_NET_DEV_OPS=y
278CONFIG_PACKET=y 286CONFIG_PACKET=y
279# CONFIG_PACKET_MMAP is not set 287# CONFIG_PACKET_MMAP is not set
280CONFIG_UNIX=y 288CONFIG_UNIX=y
@@ -325,6 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
325# CONFIG_ECONET is not set 333# CONFIG_ECONET is not set
326# CONFIG_WAN_ROUTER is not set 334# CONFIG_WAN_ROUTER is not set
327# CONFIG_NET_SCHED is not set 335# CONFIG_NET_SCHED is not set
336# CONFIG_DCB is not set
328 337
329# 338#
330# Network testing 339# Network testing
@@ -337,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
337# CONFIG_AF_RXRPC is not set 346# CONFIG_AF_RXRPC is not set
338# CONFIG_PHONET is not set 347# CONFIG_PHONET is not set
339# CONFIG_WIRELESS is not set 348# CONFIG_WIRELESS is not set
349# CONFIG_WIMAX is not set
340# CONFIG_RFKILL is not set 350# CONFIG_RFKILL is not set
341# CONFIG_NET_9P is not set 351# CONFIG_NET_9P is not set
342 352
@@ -362,6 +372,7 @@ CONFIG_MTD=y
362# CONFIG_MTD_DEBUG is not set 372# CONFIG_MTD_DEBUG is not set
363# CONFIG_MTD_CONCAT is not set 373# CONFIG_MTD_CONCAT is not set
364CONFIG_MTD_PARTITIONS=y 374CONFIG_MTD_PARTITIONS=y
375# CONFIG_MTD_TESTS is not set
365# CONFIG_MTD_REDBOOT_PARTS is not set 376# CONFIG_MTD_REDBOOT_PARTS is not set
366CONFIG_MTD_CMDLINE_PARTS=y 377CONFIG_MTD_CMDLINE_PARTS=y
367CONFIG_MTD_OF_PARTS=y 378CONFIG_MTD_OF_PARTS=y
@@ -434,6 +445,12 @@ CONFIG_MTD_PHYSMAP_OF=y
434# CONFIG_MTD_ONENAND is not set 445# CONFIG_MTD_ONENAND is not set
435 446
436# 447#
448# LPDDR flash memory drivers
449#
450# CONFIG_MTD_LPDDR is not set
451# CONFIG_MTD_QINFO_PROBE is not set
452
453#
437# UBI - Unsorted block images 454# UBI - Unsorted block images
438# 455#
439# CONFIG_MTD_UBI is not set 456# CONFIG_MTD_UBI is not set
@@ -464,6 +481,7 @@ CONFIG_MISC_DEVICES=y
464# CONFIG_TIFM_CORE is not set 481# CONFIG_TIFM_CORE is not set
465# CONFIG_ENCLOSURE_SERVICES is not set 482# CONFIG_ENCLOSURE_SERVICES is not set
466# CONFIG_HP_ILO is not set 483# CONFIG_HP_ILO is not set
484# CONFIG_C2PORT is not set
467CONFIG_HAVE_IDE=y 485CONFIG_HAVE_IDE=y
468# CONFIG_IDE is not set 486# CONFIG_IDE is not set
469 487
@@ -546,6 +564,7 @@ CONFIG_NETDEV_1000=y
546# CONFIG_JME is not set 564# CONFIG_JME is not set
547CONFIG_NETDEV_10000=y 565CONFIG_NETDEV_10000=y
548# CONFIG_CHELSIO_T1 is not set 566# CONFIG_CHELSIO_T1 is not set
567CONFIG_CHELSIO_T3_DEPENDS=y
549# CONFIG_CHELSIO_T3 is not set 568# CONFIG_CHELSIO_T3 is not set
550# CONFIG_ENIC is not set 569# CONFIG_ENIC is not set
551# CONFIG_IXGBE is not set 570# CONFIG_IXGBE is not set
@@ -568,6 +587,10 @@ CONFIG_NETDEV_10000=y
568# CONFIG_WLAN_PRE80211 is not set 587# CONFIG_WLAN_PRE80211 is not set
569# CONFIG_WLAN_80211 is not set 588# CONFIG_WLAN_80211 is not set
570# CONFIG_IWLWIFI_LEDS is not set 589# CONFIG_IWLWIFI_LEDS is not set
590
591#
592# Enable WiMAX (Networking options) to see the WiMAX drivers
593#
571# CONFIG_WAN is not set 594# CONFIG_WAN is not set
572# CONFIG_FDDI is not set 595# CONFIG_FDDI is not set
573# CONFIG_HIPPI is not set 596# CONFIG_HIPPI is not set
@@ -620,9 +643,12 @@ CONFIG_SERIAL_CORE=y
620CONFIG_SERIAL_CORE_CONSOLE=y 643CONFIG_SERIAL_CORE_CONSOLE=y
621# CONFIG_SERIAL_JSM is not set 644# CONFIG_SERIAL_JSM is not set
622CONFIG_SERIAL_OF_PLATFORM=y 645CONFIG_SERIAL_OF_PLATFORM=y
646# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
623CONFIG_UNIX98_PTYS=y 647CONFIG_UNIX98_PTYS=y
648# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
624CONFIG_LEGACY_PTYS=y 649CONFIG_LEGACY_PTYS=y
625CONFIG_LEGACY_PTY_COUNT=256 650CONFIG_LEGACY_PTY_COUNT=256
651# CONFIG_HVC_UDBG is not set
626# CONFIG_IPMI_HANDLER is not set 652# CONFIG_IPMI_HANDLER is not set
627# CONFIG_HW_RANDOM is not set 653# CONFIG_HW_RANDOM is not set
628# CONFIG_NVRAM is not set 654# CONFIG_NVRAM is not set
@@ -641,11 +667,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
641# CONFIG_HWMON is not set 667# CONFIG_HWMON is not set
642CONFIG_THERMAL=y 668CONFIG_THERMAL=y
643# CONFIG_WATCHDOG is not set 669# CONFIG_WATCHDOG is not set
670CONFIG_SSB_POSSIBLE=y
644 671
645# 672#
646# Sonics Silicon Backplane 673# Sonics Silicon Backplane
647# 674#
648CONFIG_SSB_POSSIBLE=y
649# CONFIG_SSB is not set 675# CONFIG_SSB is not set
650 676
651# 677#
@@ -655,7 +681,7 @@ CONFIG_SSB_POSSIBLE=y
655# CONFIG_MFD_SM501 is not set 681# CONFIG_MFD_SM501 is not set
656# CONFIG_HTC_PASIC3 is not set 682# CONFIG_HTC_PASIC3 is not set
657# CONFIG_MFD_TMIO is not set 683# CONFIG_MFD_TMIO is not set
658# CONFIG_MFD_WM8400 is not set 684# CONFIG_REGULATOR is not set
659 685
660# 686#
661# Multimedia devices 687# Multimedia devices
@@ -701,9 +727,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
701# 727#
702 728
703# 729#
704# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 730# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
705# 731#
706# CONFIG_USB_GADGET is not set 732# CONFIG_USB_GADGET is not set
733
734#
735# OTG and related infrastructure
736#
707# CONFIG_UWB is not set 737# CONFIG_UWB is not set
708# CONFIG_MMC is not set 738# CONFIG_MMC is not set
709# CONFIG_MEMSTICK is not set 739# CONFIG_MEMSTICK is not set
@@ -729,7 +759,9 @@ CONFIG_EXT2_FS=y
729# CONFIG_FS_POSIX_ACL is not set 759# CONFIG_FS_POSIX_ACL is not set
730CONFIG_FILE_LOCKING=y 760CONFIG_FILE_LOCKING=y
731# CONFIG_XFS_FS is not set 761# CONFIG_XFS_FS is not set
762# CONFIG_GFS2_FS is not set
732# CONFIG_OCFS2_FS is not set 763# CONFIG_OCFS2_FS is not set
764# CONFIG_BTRFS_FS is not set
733CONFIG_DNOTIFY=y 765CONFIG_DNOTIFY=y
734CONFIG_INOTIFY=y 766CONFIG_INOTIFY=y
735CONFIG_INOTIFY_USER=y 767CONFIG_INOTIFY_USER=y
@@ -763,10 +795,7 @@ CONFIG_TMPFS=y
763# CONFIG_TMPFS_POSIX_ACL is not set 795# CONFIG_TMPFS_POSIX_ACL is not set
764# CONFIG_HUGETLB_PAGE is not set 796# CONFIG_HUGETLB_PAGE is not set
765# CONFIG_CONFIGFS_FS is not set 797# CONFIG_CONFIGFS_FS is not set
766 798CONFIG_MISC_FILESYSTEMS=y
767#
768# Miscellaneous filesystems
769#
770# CONFIG_ADFS_FS is not set 799# CONFIG_ADFS_FS is not set
771# CONFIG_AFFS_FS is not set 800# CONFIG_AFFS_FS is not set
772# CONFIG_HFS_FS is not set 801# CONFIG_HFS_FS is not set
@@ -776,6 +805,7 @@ CONFIG_TMPFS=y
776# CONFIG_EFS_FS is not set 805# CONFIG_EFS_FS is not set
777# CONFIG_JFFS2_FS is not set 806# CONFIG_JFFS2_FS is not set
778CONFIG_CRAMFS=y 807CONFIG_CRAMFS=y
808# CONFIG_SQUASHFS is not set
779# CONFIG_VXFS_FS is not set 809# CONFIG_VXFS_FS is not set
780# CONFIG_MINIX_FS is not set 810# CONFIG_MINIX_FS is not set
781# CONFIG_OMFS_FS is not set 811# CONFIG_OMFS_FS is not set
@@ -816,6 +846,7 @@ CONFIG_MSDOS_PARTITION=y
816# Library routines 846# Library routines
817# 847#
818CONFIG_BITREVERSE=y 848CONFIG_BITREVERSE=y
849CONFIG_GENERIC_FIND_LAST_BIT=y
819# CONFIG_CRC_CCITT is not set 850# CONFIG_CRC_CCITT is not set
820# CONFIG_CRC16 is not set 851# CONFIG_CRC16 is not set
821# CONFIG_CRC_T10DIF is not set 852# CONFIG_CRC_T10DIF is not set
@@ -866,6 +897,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
866# CONFIG_DEBUG_MEMORY_INIT is not set 897# CONFIG_DEBUG_MEMORY_INIT is not set
867# CONFIG_DEBUG_LIST is not set 898# CONFIG_DEBUG_LIST is not set
868# CONFIG_DEBUG_SG is not set 899# CONFIG_DEBUG_SG is not set
900# CONFIG_DEBUG_NOTIFIERS is not set
869# CONFIG_BOOT_PRINTK_DELAY is not set 901# CONFIG_BOOT_PRINTK_DELAY is not set
870# CONFIG_RCU_TORTURE_TEST is not set 902# CONFIG_RCU_TORTURE_TEST is not set
871# CONFIG_RCU_CPU_STALL_DETECTOR is not set 903# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -874,18 +906,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
874# CONFIG_FAULT_INJECTION is not set 906# CONFIG_FAULT_INJECTION is not set
875# CONFIG_LATENCYTOP is not set 907# CONFIG_LATENCYTOP is not set
876CONFIG_SYSCTL_SYSCALL_CHECK=y 908CONFIG_SYSCTL_SYSCALL_CHECK=y
877CONFIG_NOP_TRACER=y 909CONFIG_HAVE_FUNCTION_TRACER=y
878CONFIG_HAVE_FTRACE=y
879CONFIG_HAVE_DYNAMIC_FTRACE=y 910CONFIG_HAVE_DYNAMIC_FTRACE=y
880# CONFIG_FTRACE is not set 911CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
912
913#
914# Tracers
915#
916# CONFIG_FUNCTION_TRACER is not set
881# CONFIG_SCHED_TRACER is not set 917# CONFIG_SCHED_TRACER is not set
882# CONFIG_CONTEXT_SWITCH_TRACER is not set 918# CONFIG_CONTEXT_SWITCH_TRACER is not set
883# CONFIG_BOOT_TRACER is not set 919# CONFIG_BOOT_TRACER is not set
920# CONFIG_TRACE_BRANCH_PROFILING is not set
884# CONFIG_STACK_TRACER is not set 921# CONFIG_STACK_TRACER is not set
885# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 922# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
886# CONFIG_SAMPLES is not set 923# CONFIG_SAMPLES is not set
887CONFIG_HAVE_ARCH_KGDB=y 924CONFIG_HAVE_ARCH_KGDB=y
888# CONFIG_KGDB is not set 925# CONFIG_KGDB is not set
926CONFIG_PRINT_STACK_DEPTH=64
889# CONFIG_DEBUG_STACKOVERFLOW is not set 927# CONFIG_DEBUG_STACKOVERFLOW is not set
890# CONFIG_DEBUG_STACK_USAGE is not set 928# CONFIG_DEBUG_STACK_USAGE is not set
891# CONFIG_DEBUG_PAGEALLOC is not set 929# CONFIG_DEBUG_PAGEALLOC is not set
@@ -912,11 +950,15 @@ CONFIG_CRYPTO=y
912# 950#
913# CONFIG_CRYPTO_FIPS is not set 951# CONFIG_CRYPTO_FIPS is not set
914CONFIG_CRYPTO_ALGAPI=y 952CONFIG_CRYPTO_ALGAPI=y
915CONFIG_CRYPTO_AEAD=y 953CONFIG_CRYPTO_ALGAPI2=y
954CONFIG_CRYPTO_AEAD2=y
916CONFIG_CRYPTO_BLKCIPHER=y 955CONFIG_CRYPTO_BLKCIPHER=y
956CONFIG_CRYPTO_BLKCIPHER2=y
917CONFIG_CRYPTO_HASH=y 957CONFIG_CRYPTO_HASH=y
918CONFIG_CRYPTO_RNG=y 958CONFIG_CRYPTO_HASH2=y
959CONFIG_CRYPTO_RNG2=y
919CONFIG_CRYPTO_MANAGER=y 960CONFIG_CRYPTO_MANAGER=y
961CONFIG_CRYPTO_MANAGER2=y
920# CONFIG_CRYPTO_GF128MUL is not set 962# CONFIG_CRYPTO_GF128MUL is not set
921# CONFIG_CRYPTO_NULL is not set 963# CONFIG_CRYPTO_NULL is not set
922# CONFIG_CRYPTO_CRYPTD is not set 964# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/arches_defconfig b/arch/powerpc/configs/44x/arches_defconfig
index 082158d591c5..1d72b0ac3f25 100644
--- a/arch/powerpc/configs/44x/arches_defconfig
+++ b/arch/powerpc/configs/44x/arches_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:04 2008 4# Tue Jan 20 08:22:31 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -75,8 +76,8 @@ CONFIG_POSIX_MQUEUE=y
75# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79# CONFIG_GROUP_SCHED is not set 79# CONFIG_GROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -111,7 +112,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 112CONFIG_SLUB=y
112# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 116# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 126CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 132CONFIG_BLOCK=y
135CONFIG_LBD=y 133CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
140 137
@@ -151,6 +148,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
155CONFIG_PPC4xx_PCI_EXPRESS=y 156CONFIG_PPC4xx_PCI_EXPRESS=y
156 157
@@ -188,6 +189,7 @@ CONFIG_460EX=y
188# CONFIG_GENERIC_IOMAP is not set 189# CONFIG_GENERIC_IOMAP is not set
189# CONFIG_CPU_FREQ is not set 190# CONFIG_CPU_FREQ is not set
190# CONFIG_FSL_ULI1575 is not set 191# CONFIG_FSL_ULI1575 is not set
192# CONFIG_SIMPLE_GPIO is not set
191 193
192# 194#
193# Kernel options 195# Kernel options
@@ -212,6 +214,7 @@ CONFIG_BINFMT_ELF=y
212# CONFIG_BINFMT_MISC is not set 214# CONFIG_BINFMT_MISC is not set
213# CONFIG_MATH_EMULATION is not set 215# CONFIG_MATH_EMULATION is not set
214# CONFIG_IOMMU_HELPER is not set 216# CONFIG_IOMMU_HELPER is not set
217CONFIG_PPC_NEED_DMA_SYNC_OPS=y
215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
216CONFIG_ARCH_HAS_WALK_MEMORY=y 219CONFIG_ARCH_HAS_WALK_MEMORY=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -226,12 +229,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 231CONFIG_MIGRATION=y
229CONFIG_RESOURCES_64BIT=y
230CONFIG_PHYS_ADDR_T_64BIT=y 232CONFIG_PHYS_ADDR_T_64BIT=y
231CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 235CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 236CONFIG_UNEVICTABLE_LRU=y
237CONFIG_PPC_4K_PAGES=y
238# CONFIG_PPC_16K_PAGES is not set
239# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 240CONFIG_FORCE_MAX_ZONEORDER=11
236CONFIG_PROC_DEVICETREE=y 241CONFIG_PROC_DEVICETREE=y
237CONFIG_CMDLINE_BOOL=y 242CONFIG_CMDLINE_BOOL=y
@@ -255,6 +260,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
255# CONFIG_PCI_MSI is not set 260# CONFIG_PCI_MSI is not set
256CONFIG_PCI_LEGACY=y 261CONFIG_PCI_LEGACY=y
257# CONFIG_PCI_DEBUG is not set 262# CONFIG_PCI_DEBUG is not set
263# CONFIG_PCI_STUB is not set
258# CONFIG_PCCARD is not set 264# CONFIG_PCCARD is not set
259# CONFIG_HOTPLUG_PCI is not set 265# CONFIG_HOTPLUG_PCI is not set
260# CONFIG_HAS_RAPIDIO is not set 266# CONFIG_HAS_RAPIDIO is not set
@@ -279,6 +285,7 @@ CONFIG_NET=y
279# 285#
280# Networking options 286# Networking options
281# 287#
288CONFIG_COMPAT_NET_DEV_OPS=y
282CONFIG_PACKET=y 289CONFIG_PACKET=y
283# CONFIG_PACKET_MMAP is not set 290# CONFIG_PACKET_MMAP is not set
284CONFIG_UNIX=y 291CONFIG_UNIX=y
@@ -329,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
329# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
330# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
331# CONFIG_NET_SCHED is not set 338# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set
332 340
333# 341#
334# Network testing 342# Network testing
@@ -341,6 +349,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
341# CONFIG_AF_RXRPC is not set 349# CONFIG_AF_RXRPC is not set
342# CONFIG_PHONET is not set 350# CONFIG_PHONET is not set
343# CONFIG_WIRELESS is not set 351# CONFIG_WIRELESS is not set
352# CONFIG_WIMAX is not set
344# CONFIG_RFKILL is not set 353# CONFIG_RFKILL is not set
345# CONFIG_NET_9P is not set 354# CONFIG_NET_9P is not set
346 355
@@ -453,6 +462,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
453# CONFIG_WLAN_PRE80211 is not set 462# CONFIG_WLAN_PRE80211 is not set
454# CONFIG_WLAN_80211 is not set 463# CONFIG_WLAN_80211 is not set
455# CONFIG_IWLWIFI_LEDS is not set 464# CONFIG_IWLWIFI_LEDS is not set
465
466#
467# Enable WiMAX (Networking options) to see the WiMAX drivers
468#
456# CONFIG_WAN is not set 469# CONFIG_WAN is not set
457# CONFIG_FDDI is not set 470# CONFIG_FDDI is not set
458# CONFIG_HIPPI is not set 471# CONFIG_HIPPI is not set
@@ -505,9 +518,12 @@ CONFIG_SERIAL_CORE=y
505CONFIG_SERIAL_CORE_CONSOLE=y 518CONFIG_SERIAL_CORE_CONSOLE=y
506# CONFIG_SERIAL_JSM is not set 519# CONFIG_SERIAL_JSM is not set
507CONFIG_SERIAL_OF_PLATFORM=y 520CONFIG_SERIAL_OF_PLATFORM=y
521# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
508CONFIG_UNIX98_PTYS=y 522CONFIG_UNIX98_PTYS=y
523# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
509CONFIG_LEGACY_PTYS=y 524CONFIG_LEGACY_PTYS=y
510CONFIG_LEGACY_PTY_COUNT=256 525CONFIG_LEGACY_PTY_COUNT=256
526# CONFIG_HVC_UDBG is not set
511# CONFIG_IPMI_HANDLER is not set 527# CONFIG_IPMI_HANDLER is not set
512# CONFIG_HW_RANDOM is not set 528# CONFIG_HW_RANDOM is not set
513# CONFIG_NVRAM is not set 529# CONFIG_NVRAM is not set
@@ -527,11 +543,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
527# CONFIG_THERMAL is not set 543# CONFIG_THERMAL is not set
528# CONFIG_THERMAL_HWMON is not set 544# CONFIG_THERMAL_HWMON is not set
529# CONFIG_WATCHDOG is not set 545# CONFIG_WATCHDOG is not set
546CONFIG_SSB_POSSIBLE=y
530 547
531# 548#
532# Sonics Silicon Backplane 549# Sonics Silicon Backplane
533# 550#
534CONFIG_SSB_POSSIBLE=y
535# CONFIG_SSB is not set 551# CONFIG_SSB is not set
536 552
537# 553#
@@ -541,7 +557,7 @@ CONFIG_SSB_POSSIBLE=y
541# CONFIG_MFD_SM501 is not set 557# CONFIG_MFD_SM501 is not set
542# CONFIG_HTC_PASIC3 is not set 558# CONFIG_HTC_PASIC3 is not set
543# CONFIG_MFD_TMIO is not set 559# CONFIG_MFD_TMIO is not set
544# CONFIG_MFD_WM8400 is not set 560# CONFIG_REGULATOR is not set
545 561
546# 562#
547# Multimedia devices 563# Multimedia devices
@@ -600,7 +616,9 @@ CONFIG_EXT2_FS=y
600# CONFIG_FS_POSIX_ACL is not set 616# CONFIG_FS_POSIX_ACL is not set
601CONFIG_FILE_LOCKING=y 617CONFIG_FILE_LOCKING=y
602# CONFIG_XFS_FS is not set 618# CONFIG_XFS_FS is not set
619# CONFIG_GFS2_FS is not set
603# CONFIG_OCFS2_FS is not set 620# CONFIG_OCFS2_FS is not set
621# CONFIG_BTRFS_FS is not set
604CONFIG_DNOTIFY=y 622CONFIG_DNOTIFY=y
605CONFIG_INOTIFY=y 623CONFIG_INOTIFY=y
606CONFIG_INOTIFY_USER=y 624CONFIG_INOTIFY_USER=y
@@ -634,10 +652,7 @@ CONFIG_TMPFS=y
634# CONFIG_TMPFS_POSIX_ACL is not set 652# CONFIG_TMPFS_POSIX_ACL is not set
635# CONFIG_HUGETLB_PAGE is not set 653# CONFIG_HUGETLB_PAGE is not set
636# CONFIG_CONFIGFS_FS is not set 654# CONFIG_CONFIGFS_FS is not set
637 655CONFIG_MISC_FILESYSTEMS=y
638#
639# Miscellaneous filesystems
640#
641# CONFIG_ADFS_FS is not set 656# CONFIG_ADFS_FS is not set
642# CONFIG_AFFS_FS is not set 657# CONFIG_AFFS_FS is not set
643# CONFIG_HFS_FS is not set 658# CONFIG_HFS_FS is not set
@@ -646,6 +661,7 @@ CONFIG_TMPFS=y
646# CONFIG_BFS_FS is not set 661# CONFIG_BFS_FS is not set
647# CONFIG_EFS_FS is not set 662# CONFIG_EFS_FS is not set
648CONFIG_CRAMFS=y 663CONFIG_CRAMFS=y
664# CONFIG_SQUASHFS is not set
649# CONFIG_VXFS_FS is not set 665# CONFIG_VXFS_FS is not set
650# CONFIG_MINIX_FS is not set 666# CONFIG_MINIX_FS is not set
651# CONFIG_OMFS_FS is not set 667# CONFIG_OMFS_FS is not set
@@ -686,6 +702,7 @@ CONFIG_MSDOS_PARTITION=y
686# Library routines 702# Library routines
687# 703#
688CONFIG_BITREVERSE=y 704CONFIG_BITREVERSE=y
705CONFIG_GENERIC_FIND_LAST_BIT=y
689# CONFIG_CRC_CCITT is not set 706# CONFIG_CRC_CCITT is not set
690# CONFIG_CRC16 is not set 707# CONFIG_CRC16 is not set
691# CONFIG_CRC_T10DIF is not set 708# CONFIG_CRC_T10DIF is not set
@@ -736,6 +753,7 @@ CONFIG_SCHED_DEBUG=y
736# CONFIG_DEBUG_MEMORY_INIT is not set 753# CONFIG_DEBUG_MEMORY_INIT is not set
737# CONFIG_DEBUG_LIST is not set 754# CONFIG_DEBUG_LIST is not set
738# CONFIG_DEBUG_SG is not set 755# CONFIG_DEBUG_SG is not set
756# CONFIG_DEBUG_NOTIFIERS is not set
739# CONFIG_BOOT_PRINTK_DELAY is not set 757# CONFIG_BOOT_PRINTK_DELAY is not set
740# CONFIG_RCU_TORTURE_TEST is not set 758# CONFIG_RCU_TORTURE_TEST is not set
741# CONFIG_RCU_CPU_STALL_DETECTOR is not set 759# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -744,18 +762,24 @@ CONFIG_SCHED_DEBUG=y
744# CONFIG_FAULT_INJECTION is not set 762# CONFIG_FAULT_INJECTION is not set
745# CONFIG_LATENCYTOP is not set 763# CONFIG_LATENCYTOP is not set
746CONFIG_SYSCTL_SYSCALL_CHECK=y 764CONFIG_SYSCTL_SYSCALL_CHECK=y
747CONFIG_NOP_TRACER=y 765CONFIG_HAVE_FUNCTION_TRACER=y
748CONFIG_HAVE_FTRACE=y
749CONFIG_HAVE_DYNAMIC_FTRACE=y 766CONFIG_HAVE_DYNAMIC_FTRACE=y
750# CONFIG_FTRACE is not set 767CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
768
769#
770# Tracers
771#
772# CONFIG_FUNCTION_TRACER is not set
751# CONFIG_SCHED_TRACER is not set 773# CONFIG_SCHED_TRACER is not set
752# CONFIG_CONTEXT_SWITCH_TRACER is not set 774# CONFIG_CONTEXT_SWITCH_TRACER is not set
753# CONFIG_BOOT_TRACER is not set 775# CONFIG_BOOT_TRACER is not set
776# CONFIG_TRACE_BRANCH_PROFILING is not set
754# CONFIG_STACK_TRACER is not set 777# CONFIG_STACK_TRACER is not set
755# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 778# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
756# CONFIG_SAMPLES is not set 779# CONFIG_SAMPLES is not set
757CONFIG_HAVE_ARCH_KGDB=y 780CONFIG_HAVE_ARCH_KGDB=y
758# CONFIG_KGDB is not set 781# CONFIG_KGDB is not set
782CONFIG_PRINT_STACK_DEPTH=64
759# CONFIG_DEBUG_STACKOVERFLOW is not set 783# CONFIG_DEBUG_STACKOVERFLOW is not set
760# CONFIG_DEBUG_STACK_USAGE is not set 784# CONFIG_DEBUG_STACK_USAGE is not set
761# CONFIG_DEBUG_PAGEALLOC is not set 785# CONFIG_DEBUG_PAGEALLOC is not set
diff --git a/arch/powerpc/configs/44x/bamboo_defconfig b/arch/powerpc/configs/44x/bamboo_defconfig
index f47c2f3420f6..959bdc43a491 100644
--- a/arch/powerpc/configs/44x/bamboo_defconfig
+++ b/arch/powerpc/configs/44x/bamboo_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:06 2008 4# Tue Jan 20 08:22:33 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -75,12 +76,12 @@ CONFIG_POSIX_MQUEUE=y
75# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 79CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 80CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 81# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 82CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
84# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 85CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 86CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 87# CONFIG_RELAY is not set
@@ -115,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 116CONFIG_SLUB=y
116# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +126,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 130CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 131# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +133,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 133# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 134# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 135# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 136CONFIG_BLOCK=y
139CONFIG_LBD=y 137CONFIG_LBD=y
140# CONFIG_BLK_DEV_IO_TRACE is not set 138# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 140# CONFIG_BLK_DEV_INTEGRITY is not set
144 141
@@ -155,6 +152,10 @@ CONFIG_DEFAULT_AS=y
155# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
157CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_TREE_RCU is not set
156# CONFIG_PREEMPT_RCU is not set
157# CONFIG_TREE_RCU_TRACE is not set
158# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 159# CONFIG_FREEZER is not set
159# CONFIG_PPC4xx_PCI_EXPRESS is not set 160# CONFIG_PPC4xx_PCI_EXPRESS is not set
160 161
@@ -193,6 +194,7 @@ CONFIG_IBM440EP_ERR42=y
193# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
194# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
195# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
197# CONFIG_SIMPLE_GPIO is not set
196 198
197# 199#
198# Kernel options 200# Kernel options
@@ -216,6 +218,7 @@ CONFIG_BINFMT_ELF=y
216# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
217# CONFIG_MATH_EMULATION is not set 219# CONFIG_MATH_EMULATION is not set
218# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
221CONFIG_PPC_NEED_DMA_SYNC_OPS=y
219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
220CONFIG_ARCH_HAS_WALK_MEMORY=y 223CONFIG_ARCH_HAS_WALK_MEMORY=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -230,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
233CONFIG_RESOURCES_64BIT=y
234CONFIG_PHYS_ADDR_T_64BIT=y 236CONFIG_PHYS_ADDR_T_64BIT=y
235CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
237CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
238CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
241CONFIG_CMDLINE_BOOL=y 246CONFIG_CMDLINE_BOOL=y
@@ -259,6 +264,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
259# CONFIG_PCI_MSI is not set 264# CONFIG_PCI_MSI is not set
260CONFIG_PCI_LEGACY=y 265CONFIG_PCI_LEGACY=y
261# CONFIG_PCI_DEBUG is not set 266# CONFIG_PCI_DEBUG is not set
267# CONFIG_PCI_STUB is not set
262# CONFIG_PCCARD is not set 268# CONFIG_PCCARD is not set
263# CONFIG_HOTPLUG_PCI is not set 269# CONFIG_HOTPLUG_PCI is not set
264# CONFIG_HAS_RAPIDIO is not set 270# CONFIG_HAS_RAPIDIO is not set
@@ -283,6 +289,7 @@ CONFIG_NET=y
283# 289#
284# Networking options 290# Networking options
285# 291#
292CONFIG_COMPAT_NET_DEV_OPS=y
286CONFIG_PACKET=y 293CONFIG_PACKET=y
287# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
288CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -333,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_ECONET is not set 340# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 341# CONFIG_WAN_ROUTER is not set
335# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set
336 344
337# 345#
338# Network testing 346# Network testing
@@ -345,6 +353,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_AF_RXRPC is not set 353# CONFIG_AF_RXRPC is not set
346# CONFIG_PHONET is not set 354# CONFIG_PHONET is not set
347# CONFIG_WIRELESS is not set 355# CONFIG_WIRELESS is not set
356# CONFIG_WIMAX is not set
348# CONFIG_RFKILL is not set 357# CONFIG_RFKILL is not set
349# CONFIG_NET_9P is not set 358# CONFIG_NET_9P is not set
350 359
@@ -394,6 +403,7 @@ CONFIG_MISC_DEVICES=y
394# CONFIG_TIFM_CORE is not set 403# CONFIG_TIFM_CORE is not set
395# CONFIG_ENCLOSURE_SERVICES is not set 404# CONFIG_ENCLOSURE_SERVICES is not set
396# CONFIG_HP_ILO is not set 405# CONFIG_HP_ILO is not set
406# CONFIG_C2PORT is not set
397CONFIG_HAVE_IDE=y 407CONFIG_HAVE_IDE=y
398# CONFIG_IDE is not set 408# CONFIG_IDE is not set
399 409
@@ -476,6 +486,7 @@ CONFIG_NETDEV_1000=y
476# CONFIG_JME is not set 486# CONFIG_JME is not set
477CONFIG_NETDEV_10000=y 487CONFIG_NETDEV_10000=y
478# CONFIG_CHELSIO_T1 is not set 488# CONFIG_CHELSIO_T1 is not set
489CONFIG_CHELSIO_T3_DEPENDS=y
479# CONFIG_CHELSIO_T3 is not set 490# CONFIG_CHELSIO_T3 is not set
480# CONFIG_ENIC is not set 491# CONFIG_ENIC is not set
481# CONFIG_IXGBE is not set 492# CONFIG_IXGBE is not set
@@ -498,6 +509,10 @@ CONFIG_NETDEV_10000=y
498# CONFIG_WLAN_PRE80211 is not set 509# CONFIG_WLAN_PRE80211 is not set
499# CONFIG_WLAN_80211 is not set 510# CONFIG_WLAN_80211 is not set
500# CONFIG_IWLWIFI_LEDS is not set 511# CONFIG_IWLWIFI_LEDS is not set
512
513#
514# Enable WiMAX (Networking options) to see the WiMAX drivers
515#
501# CONFIG_WAN is not set 516# CONFIG_WAN is not set
502# CONFIG_FDDI is not set 517# CONFIG_FDDI is not set
503# CONFIG_HIPPI is not set 518# CONFIG_HIPPI is not set
@@ -550,9 +565,12 @@ CONFIG_SERIAL_CORE=y
550CONFIG_SERIAL_CORE_CONSOLE=y 565CONFIG_SERIAL_CORE_CONSOLE=y
551# CONFIG_SERIAL_JSM is not set 566# CONFIG_SERIAL_JSM is not set
552CONFIG_SERIAL_OF_PLATFORM=y 567CONFIG_SERIAL_OF_PLATFORM=y
568# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
553CONFIG_UNIX98_PTYS=y 569CONFIG_UNIX98_PTYS=y
570# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
554CONFIG_LEGACY_PTYS=y 571CONFIG_LEGACY_PTYS=y
555CONFIG_LEGACY_PTY_COUNT=256 572CONFIG_LEGACY_PTY_COUNT=256
573# CONFIG_HVC_UDBG is not set
556# CONFIG_IPMI_HANDLER is not set 574# CONFIG_IPMI_HANDLER is not set
557# CONFIG_HW_RANDOM is not set 575# CONFIG_HW_RANDOM is not set
558# CONFIG_NVRAM is not set 576# CONFIG_NVRAM is not set
@@ -571,11 +589,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
571# CONFIG_HWMON is not set 589# CONFIG_HWMON is not set
572CONFIG_THERMAL=y 590CONFIG_THERMAL=y
573# CONFIG_WATCHDOG is not set 591# CONFIG_WATCHDOG is not set
592CONFIG_SSB_POSSIBLE=y
574 593
575# 594#
576# Sonics Silicon Backplane 595# Sonics Silicon Backplane
577# 596#
578CONFIG_SSB_POSSIBLE=y
579# CONFIG_SSB is not set 597# CONFIG_SSB is not set
580 598
581# 599#
@@ -585,7 +603,7 @@ CONFIG_SSB_POSSIBLE=y
585# CONFIG_MFD_SM501 is not set 603# CONFIG_MFD_SM501 is not set
586# CONFIG_HTC_PASIC3 is not set 604# CONFIG_HTC_PASIC3 is not set
587# CONFIG_MFD_TMIO is not set 605# CONFIG_MFD_TMIO is not set
588# CONFIG_MFD_WM8400 is not set 606# CONFIG_REGULATOR is not set
589 607
590# 608#
591# Multimedia devices 609# Multimedia devices
@@ -631,9 +649,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
631# 649#
632 650
633# 651#
634# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 652# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
635# 653#
636# CONFIG_USB_GADGET is not set 654# CONFIG_USB_GADGET is not set
655
656#
657# OTG and related infrastructure
658#
637# CONFIG_UWB is not set 659# CONFIG_UWB is not set
638# CONFIG_MMC is not set 660# CONFIG_MMC is not set
639# CONFIG_MEMSTICK is not set 661# CONFIG_MEMSTICK is not set
@@ -659,7 +681,9 @@ CONFIG_EXT2_FS=y
659# CONFIG_FS_POSIX_ACL is not set 681# CONFIG_FS_POSIX_ACL is not set
660CONFIG_FILE_LOCKING=y 682CONFIG_FILE_LOCKING=y
661# CONFIG_XFS_FS is not set 683# CONFIG_XFS_FS is not set
684# CONFIG_GFS2_FS is not set
662# CONFIG_OCFS2_FS is not set 685# CONFIG_OCFS2_FS is not set
686# CONFIG_BTRFS_FS is not set
663CONFIG_DNOTIFY=y 687CONFIG_DNOTIFY=y
664CONFIG_INOTIFY=y 688CONFIG_INOTIFY=y
665CONFIG_INOTIFY_USER=y 689CONFIG_INOTIFY_USER=y
@@ -693,10 +717,7 @@ CONFIG_TMPFS=y
693# CONFIG_TMPFS_POSIX_ACL is not set 717# CONFIG_TMPFS_POSIX_ACL is not set
694# CONFIG_HUGETLB_PAGE is not set 718# CONFIG_HUGETLB_PAGE is not set
695# CONFIG_CONFIGFS_FS is not set 719# CONFIG_CONFIGFS_FS is not set
696 720CONFIG_MISC_FILESYSTEMS=y
697#
698# Miscellaneous filesystems
699#
700# CONFIG_ADFS_FS is not set 721# CONFIG_ADFS_FS is not set
701# CONFIG_AFFS_FS is not set 722# CONFIG_AFFS_FS is not set
702# CONFIG_HFS_FS is not set 723# CONFIG_HFS_FS is not set
@@ -705,6 +726,7 @@ CONFIG_TMPFS=y
705# CONFIG_BFS_FS is not set 726# CONFIG_BFS_FS is not set
706# CONFIG_EFS_FS is not set 727# CONFIG_EFS_FS is not set
707CONFIG_CRAMFS=y 728CONFIG_CRAMFS=y
729# CONFIG_SQUASHFS is not set
708# CONFIG_VXFS_FS is not set 730# CONFIG_VXFS_FS is not set
709# CONFIG_MINIX_FS is not set 731# CONFIG_MINIX_FS is not set
710# CONFIG_OMFS_FS is not set 732# CONFIG_OMFS_FS is not set
@@ -745,6 +767,7 @@ CONFIG_MSDOS_PARTITION=y
745# Library routines 767# Library routines
746# 768#
747CONFIG_BITREVERSE=y 769CONFIG_BITREVERSE=y
770CONFIG_GENERIC_FIND_LAST_BIT=y
748# CONFIG_CRC_CCITT is not set 771# CONFIG_CRC_CCITT is not set
749# CONFIG_CRC16 is not set 772# CONFIG_CRC16 is not set
750# CONFIG_CRC_T10DIF is not set 773# CONFIG_CRC_T10DIF is not set
@@ -795,6 +818,7 @@ CONFIG_SCHED_DEBUG=y
795# CONFIG_DEBUG_MEMORY_INIT is not set 818# CONFIG_DEBUG_MEMORY_INIT is not set
796# CONFIG_DEBUG_LIST is not set 819# CONFIG_DEBUG_LIST is not set
797# CONFIG_DEBUG_SG is not set 820# CONFIG_DEBUG_SG is not set
821# CONFIG_DEBUG_NOTIFIERS is not set
798# CONFIG_BOOT_PRINTK_DELAY is not set 822# CONFIG_BOOT_PRINTK_DELAY is not set
799# CONFIG_RCU_TORTURE_TEST is not set 823# CONFIG_RCU_TORTURE_TEST is not set
800# CONFIG_RCU_CPU_STALL_DETECTOR is not set 824# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -803,18 +827,24 @@ CONFIG_SCHED_DEBUG=y
803# CONFIG_FAULT_INJECTION is not set 827# CONFIG_FAULT_INJECTION is not set
804# CONFIG_LATENCYTOP is not set 828# CONFIG_LATENCYTOP is not set
805CONFIG_SYSCTL_SYSCALL_CHECK=y 829CONFIG_SYSCTL_SYSCALL_CHECK=y
806CONFIG_NOP_TRACER=y 830CONFIG_HAVE_FUNCTION_TRACER=y
807CONFIG_HAVE_FTRACE=y
808CONFIG_HAVE_DYNAMIC_FTRACE=y 831CONFIG_HAVE_DYNAMIC_FTRACE=y
809# CONFIG_FTRACE is not set 832CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
833
834#
835# Tracers
836#
837# CONFIG_FUNCTION_TRACER is not set
810# CONFIG_SCHED_TRACER is not set 838# CONFIG_SCHED_TRACER is not set
811# CONFIG_CONTEXT_SWITCH_TRACER is not set 839# CONFIG_CONTEXT_SWITCH_TRACER is not set
812# CONFIG_BOOT_TRACER is not set 840# CONFIG_BOOT_TRACER is not set
841# CONFIG_TRACE_BRANCH_PROFILING is not set
813# CONFIG_STACK_TRACER is not set 842# CONFIG_STACK_TRACER is not set
814# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 843# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
815# CONFIG_SAMPLES is not set 844# CONFIG_SAMPLES is not set
816CONFIG_HAVE_ARCH_KGDB=y 845CONFIG_HAVE_ARCH_KGDB=y
817# CONFIG_KGDB is not set 846# CONFIG_KGDB is not set
847CONFIG_PRINT_STACK_DEPTH=64
818# CONFIG_DEBUG_STACKOVERFLOW is not set 848# CONFIG_DEBUG_STACKOVERFLOW is not set
819# CONFIG_DEBUG_STACK_USAGE is not set 849# CONFIG_DEBUG_STACK_USAGE is not set
820# CONFIG_DEBUG_PAGEALLOC is not set 850# CONFIG_DEBUG_PAGEALLOC is not set
@@ -841,11 +871,15 @@ CONFIG_CRYPTO=y
841# 871#
842# CONFIG_CRYPTO_FIPS is not set 872# CONFIG_CRYPTO_FIPS is not set
843CONFIG_CRYPTO_ALGAPI=y 873CONFIG_CRYPTO_ALGAPI=y
844CONFIG_CRYPTO_AEAD=y 874CONFIG_CRYPTO_ALGAPI2=y
875CONFIG_CRYPTO_AEAD2=y
845CONFIG_CRYPTO_BLKCIPHER=y 876CONFIG_CRYPTO_BLKCIPHER=y
877CONFIG_CRYPTO_BLKCIPHER2=y
846CONFIG_CRYPTO_HASH=y 878CONFIG_CRYPTO_HASH=y
847CONFIG_CRYPTO_RNG=y 879CONFIG_CRYPTO_HASH2=y
880CONFIG_CRYPTO_RNG2=y
848CONFIG_CRYPTO_MANAGER=y 881CONFIG_CRYPTO_MANAGER=y
882CONFIG_CRYPTO_MANAGER2=y
849# CONFIG_CRYPTO_GF128MUL is not set 883# CONFIG_CRYPTO_GF128MUL is not set
850# CONFIG_CRYPTO_NULL is not set 884# CONFIG_CRYPTO_NULL is not set
851# CONFIG_CRYPTO_CRYPTD is not set 885# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/canyonlands_defconfig b/arch/powerpc/configs/44x/canyonlands_defconfig
index 0694756ac759..81cdcc4b9278 100644
--- a/arch/powerpc/configs/44x/canyonlands_defconfig
+++ b/arch/powerpc/configs/44x/canyonlands_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:08 2008 4# Tue Jan 20 08:22:35 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -75,8 +76,8 @@ CONFIG_POSIX_MQUEUE=y
75# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79# CONFIG_GROUP_SCHED is not set 79# CONFIG_GROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -111,7 +112,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 112CONFIG_SLUB=y
112# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 116# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 126CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 132CONFIG_BLOCK=y
135CONFIG_LBD=y 133CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
140 137
@@ -151,6 +148,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
155CONFIG_PPC4xx_PCI_EXPRESS=y 156CONFIG_PPC4xx_PCI_EXPRESS=y
156 157
@@ -188,6 +189,7 @@ CONFIG_460EX=y
188# CONFIG_GENERIC_IOMAP is not set 189# CONFIG_GENERIC_IOMAP is not set
189# CONFIG_CPU_FREQ is not set 190# CONFIG_CPU_FREQ is not set
190# CONFIG_FSL_ULI1575 is not set 191# CONFIG_FSL_ULI1575 is not set
192# CONFIG_SIMPLE_GPIO is not set
191 193
192# 194#
193# Kernel options 195# Kernel options
@@ -212,6 +214,7 @@ CONFIG_BINFMT_ELF=y
212# CONFIG_BINFMT_MISC is not set 214# CONFIG_BINFMT_MISC is not set
213# CONFIG_MATH_EMULATION is not set 215# CONFIG_MATH_EMULATION is not set
214# CONFIG_IOMMU_HELPER is not set 216# CONFIG_IOMMU_HELPER is not set
217CONFIG_PPC_NEED_DMA_SYNC_OPS=y
215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
216CONFIG_ARCH_HAS_WALK_MEMORY=y 219CONFIG_ARCH_HAS_WALK_MEMORY=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -226,12 +229,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 231CONFIG_MIGRATION=y
229CONFIG_RESOURCES_64BIT=y
230CONFIG_PHYS_ADDR_T_64BIT=y 232CONFIG_PHYS_ADDR_T_64BIT=y
231CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 235CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 236CONFIG_UNEVICTABLE_LRU=y
237CONFIG_PPC_4K_PAGES=y
238# CONFIG_PPC_16K_PAGES is not set
239# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 240CONFIG_FORCE_MAX_ZONEORDER=11
236CONFIG_PROC_DEVICETREE=y 241CONFIG_PROC_DEVICETREE=y
237CONFIG_CMDLINE_BOOL=y 242CONFIG_CMDLINE_BOOL=y
@@ -255,6 +260,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
255# CONFIG_PCI_MSI is not set 260# CONFIG_PCI_MSI is not set
256CONFIG_PCI_LEGACY=y 261CONFIG_PCI_LEGACY=y
257# CONFIG_PCI_DEBUG is not set 262# CONFIG_PCI_DEBUG is not set
263# CONFIG_PCI_STUB is not set
258# CONFIG_PCCARD is not set 264# CONFIG_PCCARD is not set
259# CONFIG_HOTPLUG_PCI is not set 265# CONFIG_HOTPLUG_PCI is not set
260# CONFIG_HAS_RAPIDIO is not set 266# CONFIG_HAS_RAPIDIO is not set
@@ -279,6 +285,7 @@ CONFIG_NET=y
279# 285#
280# Networking options 286# Networking options
281# 287#
288CONFIG_COMPAT_NET_DEV_OPS=y
282CONFIG_PACKET=y 289CONFIG_PACKET=y
283# CONFIG_PACKET_MMAP is not set 290# CONFIG_PACKET_MMAP is not set
284CONFIG_UNIX=y 291CONFIG_UNIX=y
@@ -329,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
329# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
330# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
331# CONFIG_NET_SCHED is not set 338# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set
332 340
333# 341#
334# Network testing 342# Network testing
@@ -341,6 +349,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
341# CONFIG_AF_RXRPC is not set 349# CONFIG_AF_RXRPC is not set
342# CONFIG_PHONET is not set 350# CONFIG_PHONET is not set
343# CONFIG_WIRELESS is not set 351# CONFIG_WIRELESS is not set
352# CONFIG_WIMAX is not set
344# CONFIG_RFKILL is not set 353# CONFIG_RFKILL is not set
345# CONFIG_NET_9P is not set 354# CONFIG_NET_9P is not set
346 355
@@ -453,6 +462,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
453# CONFIG_WLAN_PRE80211 is not set 462# CONFIG_WLAN_PRE80211 is not set
454# CONFIG_WLAN_80211 is not set 463# CONFIG_WLAN_80211 is not set
455# CONFIG_IWLWIFI_LEDS is not set 464# CONFIG_IWLWIFI_LEDS is not set
465
466#
467# Enable WiMAX (Networking options) to see the WiMAX drivers
468#
456# CONFIG_WAN is not set 469# CONFIG_WAN is not set
457# CONFIG_FDDI is not set 470# CONFIG_FDDI is not set
458# CONFIG_HIPPI is not set 471# CONFIG_HIPPI is not set
@@ -505,9 +518,12 @@ CONFIG_SERIAL_CORE=y
505CONFIG_SERIAL_CORE_CONSOLE=y 518CONFIG_SERIAL_CORE_CONSOLE=y
506# CONFIG_SERIAL_JSM is not set 519# CONFIG_SERIAL_JSM is not set
507CONFIG_SERIAL_OF_PLATFORM=y 520CONFIG_SERIAL_OF_PLATFORM=y
521# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
508CONFIG_UNIX98_PTYS=y 522CONFIG_UNIX98_PTYS=y
523# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
509CONFIG_LEGACY_PTYS=y 524CONFIG_LEGACY_PTYS=y
510CONFIG_LEGACY_PTY_COUNT=256 525CONFIG_LEGACY_PTY_COUNT=256
526# CONFIG_HVC_UDBG is not set
511# CONFIG_IPMI_HANDLER is not set 527# CONFIG_IPMI_HANDLER is not set
512# CONFIG_HW_RANDOM is not set 528# CONFIG_HW_RANDOM is not set
513# CONFIG_NVRAM is not set 529# CONFIG_NVRAM is not set
@@ -527,11 +543,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
527# CONFIG_THERMAL is not set 543# CONFIG_THERMAL is not set
528# CONFIG_THERMAL_HWMON is not set 544# CONFIG_THERMAL_HWMON is not set
529# CONFIG_WATCHDOG is not set 545# CONFIG_WATCHDOG is not set
546CONFIG_SSB_POSSIBLE=y
530 547
531# 548#
532# Sonics Silicon Backplane 549# Sonics Silicon Backplane
533# 550#
534CONFIG_SSB_POSSIBLE=y
535# CONFIG_SSB is not set 551# CONFIG_SSB is not set
536 552
537# 553#
@@ -541,7 +557,7 @@ CONFIG_SSB_POSSIBLE=y
541# CONFIG_MFD_SM501 is not set 557# CONFIG_MFD_SM501 is not set
542# CONFIG_HTC_PASIC3 is not set 558# CONFIG_HTC_PASIC3 is not set
543# CONFIG_MFD_TMIO is not set 559# CONFIG_MFD_TMIO is not set
544# CONFIG_MFD_WM8400 is not set 560# CONFIG_REGULATOR is not set
545 561
546# 562#
547# Multimedia devices 563# Multimedia devices
@@ -600,7 +616,9 @@ CONFIG_EXT2_FS=y
600# CONFIG_FS_POSIX_ACL is not set 616# CONFIG_FS_POSIX_ACL is not set
601CONFIG_FILE_LOCKING=y 617CONFIG_FILE_LOCKING=y
602# CONFIG_XFS_FS is not set 618# CONFIG_XFS_FS is not set
619# CONFIG_GFS2_FS is not set
603# CONFIG_OCFS2_FS is not set 620# CONFIG_OCFS2_FS is not set
621# CONFIG_BTRFS_FS is not set
604CONFIG_DNOTIFY=y 622CONFIG_DNOTIFY=y
605CONFIG_INOTIFY=y 623CONFIG_INOTIFY=y
606CONFIG_INOTIFY_USER=y 624CONFIG_INOTIFY_USER=y
@@ -634,10 +652,7 @@ CONFIG_TMPFS=y
634# CONFIG_TMPFS_POSIX_ACL is not set 652# CONFIG_TMPFS_POSIX_ACL is not set
635# CONFIG_HUGETLB_PAGE is not set 653# CONFIG_HUGETLB_PAGE is not set
636# CONFIG_CONFIGFS_FS is not set 654# CONFIG_CONFIGFS_FS is not set
637 655CONFIG_MISC_FILESYSTEMS=y
638#
639# Miscellaneous filesystems
640#
641# CONFIG_ADFS_FS is not set 656# CONFIG_ADFS_FS is not set
642# CONFIG_AFFS_FS is not set 657# CONFIG_AFFS_FS is not set
643# CONFIG_HFS_FS is not set 658# CONFIG_HFS_FS is not set
@@ -646,6 +661,7 @@ CONFIG_TMPFS=y
646# CONFIG_BFS_FS is not set 661# CONFIG_BFS_FS is not set
647# CONFIG_EFS_FS is not set 662# CONFIG_EFS_FS is not set
648CONFIG_CRAMFS=y 663CONFIG_CRAMFS=y
664# CONFIG_SQUASHFS is not set
649# CONFIG_VXFS_FS is not set 665# CONFIG_VXFS_FS is not set
650# CONFIG_MINIX_FS is not set 666# CONFIG_MINIX_FS is not set
651# CONFIG_OMFS_FS is not set 667# CONFIG_OMFS_FS is not set
@@ -686,6 +702,7 @@ CONFIG_MSDOS_PARTITION=y
686# Library routines 702# Library routines
687# 703#
688CONFIG_BITREVERSE=y 704CONFIG_BITREVERSE=y
705CONFIG_GENERIC_FIND_LAST_BIT=y
689# CONFIG_CRC_CCITT is not set 706# CONFIG_CRC_CCITT is not set
690# CONFIG_CRC16 is not set 707# CONFIG_CRC16 is not set
691# CONFIG_CRC_T10DIF is not set 708# CONFIG_CRC_T10DIF is not set
@@ -736,6 +753,7 @@ CONFIG_SCHED_DEBUG=y
736# CONFIG_DEBUG_MEMORY_INIT is not set 753# CONFIG_DEBUG_MEMORY_INIT is not set
737# CONFIG_DEBUG_LIST is not set 754# CONFIG_DEBUG_LIST is not set
738# CONFIG_DEBUG_SG is not set 755# CONFIG_DEBUG_SG is not set
756# CONFIG_DEBUG_NOTIFIERS is not set
739# CONFIG_BOOT_PRINTK_DELAY is not set 757# CONFIG_BOOT_PRINTK_DELAY is not set
740# CONFIG_RCU_TORTURE_TEST is not set 758# CONFIG_RCU_TORTURE_TEST is not set
741# CONFIG_RCU_CPU_STALL_DETECTOR is not set 759# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -744,18 +762,24 @@ CONFIG_SCHED_DEBUG=y
744# CONFIG_FAULT_INJECTION is not set 762# CONFIG_FAULT_INJECTION is not set
745# CONFIG_LATENCYTOP is not set 763# CONFIG_LATENCYTOP is not set
746CONFIG_SYSCTL_SYSCALL_CHECK=y 764CONFIG_SYSCTL_SYSCALL_CHECK=y
747CONFIG_NOP_TRACER=y 765CONFIG_HAVE_FUNCTION_TRACER=y
748CONFIG_HAVE_FTRACE=y
749CONFIG_HAVE_DYNAMIC_FTRACE=y 766CONFIG_HAVE_DYNAMIC_FTRACE=y
750# CONFIG_FTRACE is not set 767CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
768
769#
770# Tracers
771#
772# CONFIG_FUNCTION_TRACER is not set
751# CONFIG_SCHED_TRACER is not set 773# CONFIG_SCHED_TRACER is not set
752# CONFIG_CONTEXT_SWITCH_TRACER is not set 774# CONFIG_CONTEXT_SWITCH_TRACER is not set
753# CONFIG_BOOT_TRACER is not set 775# CONFIG_BOOT_TRACER is not set
776# CONFIG_TRACE_BRANCH_PROFILING is not set
754# CONFIG_STACK_TRACER is not set 777# CONFIG_STACK_TRACER is not set
755# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 778# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
756# CONFIG_SAMPLES is not set 779# CONFIG_SAMPLES is not set
757CONFIG_HAVE_ARCH_KGDB=y 780CONFIG_HAVE_ARCH_KGDB=y
758# CONFIG_KGDB is not set 781# CONFIG_KGDB is not set
782CONFIG_PRINT_STACK_DEPTH=64
759# CONFIG_DEBUG_STACKOVERFLOW is not set 783# CONFIG_DEBUG_STACKOVERFLOW is not set
760# CONFIG_DEBUG_STACK_USAGE is not set 784# CONFIG_DEBUG_STACK_USAGE is not set
761# CONFIG_DEBUG_PAGEALLOC is not set 785# CONFIG_DEBUG_PAGEALLOC is not set
diff --git a/arch/powerpc/configs/44x/ebony_defconfig b/arch/powerpc/configs/44x/ebony_defconfig
index c9937578ef7f..be64aa644d15 100644
--- a/arch/powerpc/configs/44x/ebony_defconfig
+++ b/arch/powerpc/configs/44x/ebony_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:09 2008 4# Tue Jan 20 08:22:36 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -18,6 +18,7 @@ CONFIG_4xx=y
18CONFIG_BOOKE=y 18CONFIG_BOOKE=y
19CONFIG_PTE_64BIT=y 19CONFIG_PTE_64BIT=y
20CONFIG_PHYS_64BIT=y 20CONFIG_PHYS_64BIT=y
21CONFIG_PPC_MMU_NOHASH=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
22CONFIG_NOT_COHERENT_CACHE=y 23CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y 24CONFIG_PPC32=y
@@ -43,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 44CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
49CONFIG_OF=y 50CONFIG_OF=y
@@ -74,12 +75,12 @@ CONFIG_POSIX_MQUEUE=y
74# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
75# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
79CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
80# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -92,6 +93,7 @@ CONFIG_EMBEDDED=y
92CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
93CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
94CONFIG_KALLSYMS_ALL=y 95CONFIG_KALLSYMS_ALL=y
96CONFIG_KALLSYMS_STRIP_GENERATED=y
95CONFIG_KALLSYMS_EXTRA_PASS=y 97CONFIG_KALLSYMS_EXTRA_PASS=y
96CONFIG_HOTPLUG=y 98CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 99CONFIG_PRINTK=y
@@ -114,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 116CONFIG_SLUB=y
115# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -125,7 +126,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
130CONFIG_MODULES=y 130CONFIG_MODULES=y
131# CONFIG_MODULE_FORCE_LOAD is not set 131# CONFIG_MODULE_FORCE_LOAD is not set
@@ -133,11 +133,9 @@ CONFIG_MODULE_UNLOAD=y
133# CONFIG_MODULE_FORCE_UNLOAD is not set 133# CONFIG_MODULE_FORCE_UNLOAD is not set
134# CONFIG_MODVERSIONS is not set 134# CONFIG_MODVERSIONS is not set
135# CONFIG_MODULE_SRCVERSION_ALL is not set 135# CONFIG_MODULE_SRCVERSION_ALL is not set
136CONFIG_KMOD=y
137CONFIG_BLOCK=y 136CONFIG_BLOCK=y
138CONFIG_LBD=y 137CONFIG_LBD=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 138# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set 140# CONFIG_BLK_DEV_INTEGRITY is not set
143 141
@@ -154,6 +152,10 @@ CONFIG_DEFAULT_AS=y
154# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
155CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
156CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_TREE_RCU is not set
156# CONFIG_PREEMPT_RCU is not set
157# CONFIG_TREE_RCU_TRACE is not set
158# CONFIG_PREEMPT_RCU_TRACE is not set
157# CONFIG_FREEZER is not set 159# CONFIG_FREEZER is not set
158# CONFIG_PPC4xx_PCI_EXPRESS is not set 160# CONFIG_PPC4xx_PCI_EXPRESS is not set
159 161
@@ -192,6 +194,7 @@ CONFIG_440GP=y
192# CONFIG_CPU_FREQ is not set 194# CONFIG_CPU_FREQ is not set
193# CONFIG_FSL_ULI1575 is not set 195# CONFIG_FSL_ULI1575 is not set
194CONFIG_OF_RTC=y 196CONFIG_OF_RTC=y
197# CONFIG_SIMPLE_GPIO is not set
195 198
196# 199#
197# Kernel options 200# Kernel options
@@ -215,6 +218,7 @@ CONFIG_BINFMT_ELF=y
215# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
216CONFIG_MATH_EMULATION=y 219CONFIG_MATH_EMULATION=y
217# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
221CONFIG_PPC_NEED_DMA_SYNC_OPS=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
219CONFIG_ARCH_HAS_WALK_MEMORY=y 223CONFIG_ARCH_HAS_WALK_MEMORY=y
220CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -229,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
229CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
230CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
232CONFIG_RESOURCES_64BIT=y
233CONFIG_PHYS_ADDR_T_64BIT=y 236CONFIG_PHYS_ADDR_T_64BIT=y
234CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
236CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
237CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
238CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
239CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
240# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -257,6 +263,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
257# CONFIG_PCI_MSI is not set 263# CONFIG_PCI_MSI is not set
258CONFIG_PCI_LEGACY=y 264CONFIG_PCI_LEGACY=y
259# CONFIG_PCI_DEBUG is not set 265# CONFIG_PCI_DEBUG is not set
266# CONFIG_PCI_STUB is not set
260# CONFIG_PCCARD is not set 267# CONFIG_PCCARD is not set
261# CONFIG_HOTPLUG_PCI is not set 268# CONFIG_HOTPLUG_PCI is not set
262# CONFIG_HAS_RAPIDIO is not set 269# CONFIG_HAS_RAPIDIO is not set
@@ -281,6 +288,7 @@ CONFIG_NET=y
281# 288#
282# Networking options 289# Networking options
283# 290#
291CONFIG_COMPAT_NET_DEV_OPS=y
284CONFIG_PACKET=y 292CONFIG_PACKET=y
285# CONFIG_PACKET_MMAP is not set 293# CONFIG_PACKET_MMAP is not set
286CONFIG_UNIX=y 294CONFIG_UNIX=y
@@ -331,6 +339,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_ECONET is not set 339# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set 340# CONFIG_WAN_ROUTER is not set
333# CONFIG_NET_SCHED is not set 341# CONFIG_NET_SCHED is not set
342# CONFIG_DCB is not set
334 343
335# 344#
336# Network testing 345# Network testing
@@ -343,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_AF_RXRPC is not set 352# CONFIG_AF_RXRPC is not set
344# CONFIG_PHONET is not set 353# CONFIG_PHONET is not set
345# CONFIG_WIRELESS is not set 354# CONFIG_WIRELESS is not set
355# CONFIG_WIMAX is not set
346# CONFIG_RFKILL is not set 356# CONFIG_RFKILL is not set
347# CONFIG_NET_9P is not set 357# CONFIG_NET_9P is not set
348 358
@@ -368,6 +378,7 @@ CONFIG_MTD=y
368# CONFIG_MTD_DEBUG is not set 378# CONFIG_MTD_DEBUG is not set
369# CONFIG_MTD_CONCAT is not set 379# CONFIG_MTD_CONCAT is not set
370CONFIG_MTD_PARTITIONS=y 380CONFIG_MTD_PARTITIONS=y
381# CONFIG_MTD_TESTS is not set
371# CONFIG_MTD_REDBOOT_PARTS is not set 382# CONFIG_MTD_REDBOOT_PARTS is not set
372# CONFIG_MTD_CMDLINE_PARTS is not set 383# CONFIG_MTD_CMDLINE_PARTS is not set
373CONFIG_MTD_OF_PARTS=y 384CONFIG_MTD_OF_PARTS=y
@@ -439,6 +450,12 @@ CONFIG_MTD_PHYSMAP_OF=y
439# CONFIG_MTD_ONENAND is not set 450# CONFIG_MTD_ONENAND is not set
440 451
441# 452#
453# LPDDR flash memory drivers
454#
455# CONFIG_MTD_LPDDR is not set
456# CONFIG_MTD_QINFO_PROBE is not set
457
458#
442# UBI - Unsorted block images 459# UBI - Unsorted block images
443# 460#
444# CONFIG_MTD_UBI is not set 461# CONFIG_MTD_UBI is not set
@@ -469,6 +486,7 @@ CONFIG_MISC_DEVICES=y
469# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
470# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
471# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
489# CONFIG_C2PORT is not set
472CONFIG_HAVE_IDE=y 490CONFIG_HAVE_IDE=y
473# CONFIG_IDE is not set 491# CONFIG_IDE is not set
474 492
@@ -551,6 +569,7 @@ CONFIG_NETDEV_1000=y
551# CONFIG_JME is not set 569# CONFIG_JME is not set
552CONFIG_NETDEV_10000=y 570CONFIG_NETDEV_10000=y
553# CONFIG_CHELSIO_T1 is not set 571# CONFIG_CHELSIO_T1 is not set
572CONFIG_CHELSIO_T3_DEPENDS=y
554# CONFIG_CHELSIO_T3 is not set 573# CONFIG_CHELSIO_T3 is not set
555# CONFIG_ENIC is not set 574# CONFIG_ENIC is not set
556# CONFIG_IXGBE is not set 575# CONFIG_IXGBE is not set
@@ -573,6 +592,10 @@ CONFIG_NETDEV_10000=y
573# CONFIG_WLAN_PRE80211 is not set 592# CONFIG_WLAN_PRE80211 is not set
574# CONFIG_WLAN_80211 is not set 593# CONFIG_WLAN_80211 is not set
575# CONFIG_IWLWIFI_LEDS is not set 594# CONFIG_IWLWIFI_LEDS is not set
595
596#
597# Enable WiMAX (Networking options) to see the WiMAX drivers
598#
576# CONFIG_WAN is not set 599# CONFIG_WAN is not set
577# CONFIG_FDDI is not set 600# CONFIG_FDDI is not set
578# CONFIG_HIPPI is not set 601# CONFIG_HIPPI is not set
@@ -625,9 +648,12 @@ CONFIG_SERIAL_CORE=y
625CONFIG_SERIAL_CORE_CONSOLE=y 648CONFIG_SERIAL_CORE_CONSOLE=y
626# CONFIG_SERIAL_JSM is not set 649# CONFIG_SERIAL_JSM is not set
627CONFIG_SERIAL_OF_PLATFORM=y 650CONFIG_SERIAL_OF_PLATFORM=y
651# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
628CONFIG_UNIX98_PTYS=y 652CONFIG_UNIX98_PTYS=y
653# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
629CONFIG_LEGACY_PTYS=y 654CONFIG_LEGACY_PTYS=y
630CONFIG_LEGACY_PTY_COUNT=256 655CONFIG_LEGACY_PTY_COUNT=256
656# CONFIG_HVC_UDBG is not set
631# CONFIG_IPMI_HANDLER is not set 657# CONFIG_IPMI_HANDLER is not set
632# CONFIG_HW_RANDOM is not set 658# CONFIG_HW_RANDOM is not set
633# CONFIG_NVRAM is not set 659# CONFIG_NVRAM is not set
@@ -646,11 +672,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
646# CONFIG_HWMON is not set 672# CONFIG_HWMON is not set
647CONFIG_THERMAL=y 673CONFIG_THERMAL=y
648# CONFIG_WATCHDOG is not set 674# CONFIG_WATCHDOG is not set
675CONFIG_SSB_POSSIBLE=y
649 676
650# 677#
651# Sonics Silicon Backplane 678# Sonics Silicon Backplane
652# 679#
653CONFIG_SSB_POSSIBLE=y
654# CONFIG_SSB is not set 680# CONFIG_SSB is not set
655 681
656# 682#
@@ -660,7 +686,7 @@ CONFIG_SSB_POSSIBLE=y
660# CONFIG_MFD_SM501 is not set 686# CONFIG_MFD_SM501 is not set
661# CONFIG_HTC_PASIC3 is not set 687# CONFIG_HTC_PASIC3 is not set
662# CONFIG_MFD_TMIO is not set 688# CONFIG_MFD_TMIO is not set
663# CONFIG_MFD_WM8400 is not set 689# CONFIG_REGULATOR is not set
664 690
665# 691#
666# Multimedia devices 692# Multimedia devices
@@ -706,9 +732,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
706# 732#
707 733
708# 734#
709# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 735# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
710# 736#
711# CONFIG_USB_GADGET is not set 737# CONFIG_USB_GADGET is not set
738
739#
740# OTG and related infrastructure
741#
712# CONFIG_UWB is not set 742# CONFIG_UWB is not set
713# CONFIG_MMC is not set 743# CONFIG_MMC is not set
714# CONFIG_MEMSTICK is not set 744# CONFIG_MEMSTICK is not set
@@ -734,7 +764,9 @@ CONFIG_EXT2_FS=y
734# CONFIG_FS_POSIX_ACL is not set 764# CONFIG_FS_POSIX_ACL is not set
735CONFIG_FILE_LOCKING=y 765CONFIG_FILE_LOCKING=y
736# CONFIG_XFS_FS is not set 766# CONFIG_XFS_FS is not set
767# CONFIG_GFS2_FS is not set
737# CONFIG_OCFS2_FS is not set 768# CONFIG_OCFS2_FS is not set
769# CONFIG_BTRFS_FS is not set
738CONFIG_DNOTIFY=y 770CONFIG_DNOTIFY=y
739CONFIG_INOTIFY=y 771CONFIG_INOTIFY=y
740CONFIG_INOTIFY_USER=y 772CONFIG_INOTIFY_USER=y
@@ -768,10 +800,7 @@ CONFIG_TMPFS=y
768# CONFIG_TMPFS_POSIX_ACL is not set 800# CONFIG_TMPFS_POSIX_ACL is not set
769# CONFIG_HUGETLB_PAGE is not set 801# CONFIG_HUGETLB_PAGE is not set
770# CONFIG_CONFIGFS_FS is not set 802# CONFIG_CONFIGFS_FS is not set
771 803CONFIG_MISC_FILESYSTEMS=y
772#
773# Miscellaneous filesystems
774#
775# CONFIG_ADFS_FS is not set 804# CONFIG_ADFS_FS is not set
776# CONFIG_AFFS_FS is not set 805# CONFIG_AFFS_FS is not set
777# CONFIG_HFS_FS is not set 806# CONFIG_HFS_FS is not set
@@ -791,6 +820,7 @@ CONFIG_JFFS2_ZLIB=y
791CONFIG_JFFS2_RTIME=y 820CONFIG_JFFS2_RTIME=y
792# CONFIG_JFFS2_RUBIN is not set 821# CONFIG_JFFS2_RUBIN is not set
793CONFIG_CRAMFS=y 822CONFIG_CRAMFS=y
823# CONFIG_SQUASHFS is not set
794# CONFIG_VXFS_FS is not set 824# CONFIG_VXFS_FS is not set
795# CONFIG_MINIX_FS is not set 825# CONFIG_MINIX_FS is not set
796# CONFIG_OMFS_FS is not set 826# CONFIG_OMFS_FS is not set
@@ -831,6 +861,7 @@ CONFIG_MSDOS_PARTITION=y
831# Library routines 861# Library routines
832# 862#
833CONFIG_BITREVERSE=y 863CONFIG_BITREVERSE=y
864CONFIG_GENERIC_FIND_LAST_BIT=y
834# CONFIG_CRC_CCITT is not set 865# CONFIG_CRC_CCITT is not set
835# CONFIG_CRC16 is not set 866# CONFIG_CRC16 is not set
836# CONFIG_CRC_T10DIF is not set 867# CONFIG_CRC_T10DIF is not set
@@ -882,6 +913,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
882# CONFIG_DEBUG_MEMORY_INIT is not set 913# CONFIG_DEBUG_MEMORY_INIT is not set
883# CONFIG_DEBUG_LIST is not set 914# CONFIG_DEBUG_LIST is not set
884# CONFIG_DEBUG_SG is not set 915# CONFIG_DEBUG_SG is not set
916# CONFIG_DEBUG_NOTIFIERS is not set
885# CONFIG_BOOT_PRINTK_DELAY is not set 917# CONFIG_BOOT_PRINTK_DELAY is not set
886# CONFIG_RCU_TORTURE_TEST is not set 918# CONFIG_RCU_TORTURE_TEST is not set
887# CONFIG_RCU_CPU_STALL_DETECTOR is not set 919# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -890,18 +922,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
890# CONFIG_FAULT_INJECTION is not set 922# CONFIG_FAULT_INJECTION is not set
891# CONFIG_LATENCYTOP is not set 923# CONFIG_LATENCYTOP is not set
892CONFIG_SYSCTL_SYSCALL_CHECK=y 924CONFIG_SYSCTL_SYSCALL_CHECK=y
893CONFIG_NOP_TRACER=y 925CONFIG_HAVE_FUNCTION_TRACER=y
894CONFIG_HAVE_FTRACE=y
895CONFIG_HAVE_DYNAMIC_FTRACE=y 926CONFIG_HAVE_DYNAMIC_FTRACE=y
896# CONFIG_FTRACE is not set 927CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
928
929#
930# Tracers
931#
932# CONFIG_FUNCTION_TRACER is not set
897# CONFIG_SCHED_TRACER is not set 933# CONFIG_SCHED_TRACER is not set
898# CONFIG_CONTEXT_SWITCH_TRACER is not set 934# CONFIG_CONTEXT_SWITCH_TRACER is not set
899# CONFIG_BOOT_TRACER is not set 935# CONFIG_BOOT_TRACER is not set
936# CONFIG_TRACE_BRANCH_PROFILING is not set
900# CONFIG_STACK_TRACER is not set 937# CONFIG_STACK_TRACER is not set
901# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 938# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
902# CONFIG_SAMPLES is not set 939# CONFIG_SAMPLES is not set
903CONFIG_HAVE_ARCH_KGDB=y 940CONFIG_HAVE_ARCH_KGDB=y
904# CONFIG_KGDB is not set 941# CONFIG_KGDB is not set
942CONFIG_PRINT_STACK_DEPTH=64
905# CONFIG_DEBUG_STACKOVERFLOW is not set 943# CONFIG_DEBUG_STACKOVERFLOW is not set
906# CONFIG_DEBUG_STACK_USAGE is not set 944# CONFIG_DEBUG_STACK_USAGE is not set
907# CONFIG_DEBUG_PAGEALLOC is not set 945# CONFIG_DEBUG_PAGEALLOC is not set
@@ -928,11 +966,15 @@ CONFIG_CRYPTO=y
928# 966#
929# CONFIG_CRYPTO_FIPS is not set 967# CONFIG_CRYPTO_FIPS is not set
930CONFIG_CRYPTO_ALGAPI=y 968CONFIG_CRYPTO_ALGAPI=y
931CONFIG_CRYPTO_AEAD=y 969CONFIG_CRYPTO_ALGAPI2=y
970CONFIG_CRYPTO_AEAD2=y
932CONFIG_CRYPTO_BLKCIPHER=y 971CONFIG_CRYPTO_BLKCIPHER=y
972CONFIG_CRYPTO_BLKCIPHER2=y
933CONFIG_CRYPTO_HASH=y 973CONFIG_CRYPTO_HASH=y
934CONFIG_CRYPTO_RNG=y 974CONFIG_CRYPTO_HASH2=y
975CONFIG_CRYPTO_RNG2=y
935CONFIG_CRYPTO_MANAGER=y 976CONFIG_CRYPTO_MANAGER=y
977CONFIG_CRYPTO_MANAGER2=y
936# CONFIG_CRYPTO_GF128MUL is not set 978# CONFIG_CRYPTO_GF128MUL is not set
937# CONFIG_CRYPTO_NULL is not set 979# CONFIG_CRYPTO_NULL is not set
938# CONFIG_CRYPTO_CRYPTD is not set 980# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/katmai_defconfig b/arch/powerpc/configs/44x/katmai_defconfig
index e326ee8bd195..f67250b24ec5 100644
--- a/arch/powerpc/configs/44x/katmai_defconfig
+++ b/arch/powerpc/configs/44x/katmai_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:11 2008 4# Tue Jan 20 08:22:38 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -18,6 +18,7 @@ CONFIG_4xx=y
18CONFIG_BOOKE=y 18CONFIG_BOOKE=y
19CONFIG_PTE_64BIT=y 19CONFIG_PTE_64BIT=y
20CONFIG_PHYS_64BIT=y 20CONFIG_PHYS_64BIT=y
21CONFIG_PPC_MMU_NOHASH=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
22CONFIG_NOT_COHERENT_CACHE=y 23CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y 24CONFIG_PPC32=y
@@ -43,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 44CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
49CONFIG_OF=y 50CONFIG_OF=y
@@ -74,8 +75,8 @@ CONFIG_POSIX_MQUEUE=y
74# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
75# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78# CONFIG_GROUP_SCHED is not set 78# CONFIG_GROUP_SCHED is not set
79# CONFIG_CGROUPS is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y 81CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
@@ -110,7 +111,6 @@ CONFIG_SLUB_DEBUG=y
110CONFIG_SLUB=y 111CONFIG_SLUB=y
111# CONFIG_SLOB is not set 112# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 113# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
115# CONFIG_KPROBES is not set 115# CONFIG_KPROBES is not set
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -121,7 +121,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set
125CONFIG_BASE_SMALL=0 124CONFIG_BASE_SMALL=0
126CONFIG_MODULES=y 125CONFIG_MODULES=y
127# CONFIG_MODULE_FORCE_LOAD is not set 126# CONFIG_MODULE_FORCE_LOAD is not set
@@ -129,11 +128,9 @@ CONFIG_MODULE_UNLOAD=y
129# CONFIG_MODULE_FORCE_UNLOAD is not set 128# CONFIG_MODULE_FORCE_UNLOAD is not set
130# CONFIG_MODVERSIONS is not set 129# CONFIG_MODVERSIONS is not set
131# CONFIG_MODULE_SRCVERSION_ALL is not set 130# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_KMOD=y
133CONFIG_BLOCK=y 131CONFIG_BLOCK=y
134CONFIG_LBD=y 132CONFIG_LBD=y
135# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_LSF is not set
137# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
139 136
@@ -150,6 +147,10 @@ CONFIG_DEFAULT_AS=y
150# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
152CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
153# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
154CONFIG_PPC4xx_PCI_EXPRESS=y 155CONFIG_PPC4xx_PCI_EXPRESS=y
155 156
@@ -187,6 +188,7 @@ CONFIG_440SPe=y
187# CONFIG_GENERIC_IOMAP is not set 188# CONFIG_GENERIC_IOMAP is not set
188# CONFIG_CPU_FREQ is not set 189# CONFIG_CPU_FREQ is not set
189# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
191# CONFIG_SIMPLE_GPIO is not set
190 192
191# 193#
192# Kernel options 194# Kernel options
@@ -210,6 +212,7 @@ CONFIG_BINFMT_ELF=y
210# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
211# CONFIG_MATH_EMULATION is not set 213# CONFIG_MATH_EMULATION is not set
212# CONFIG_IOMMU_HELPER is not set 214# CONFIG_IOMMU_HELPER is not set
215CONFIG_PPC_NEED_DMA_SYNC_OPS=y
213CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
214CONFIG_ARCH_HAS_WALK_MEMORY=y 217CONFIG_ARCH_HAS_WALK_MEMORY=y
215CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -224,12 +227,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
224CONFIG_PAGEFLAGS_EXTENDED=y 227CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 228CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y 229CONFIG_MIGRATION=y
227CONFIG_RESOURCES_64BIT=y
228CONFIG_PHYS_ADDR_T_64BIT=y 230CONFIG_PHYS_ADDR_T_64BIT=y
229CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
231CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
232CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set
233CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
234CONFIG_PROC_DEVICETREE=y 239CONFIG_PROC_DEVICETREE=y
235CONFIG_CMDLINE_BOOL=y 240CONFIG_CMDLINE_BOOL=y
@@ -253,6 +258,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_MSI is not set 258# CONFIG_PCI_MSI is not set
254CONFIG_PCI_LEGACY=y 259CONFIG_PCI_LEGACY=y
255# CONFIG_PCI_DEBUG is not set 260# CONFIG_PCI_DEBUG is not set
261# CONFIG_PCI_STUB is not set
256# CONFIG_PCCARD is not set 262# CONFIG_PCCARD is not set
257# CONFIG_HOTPLUG_PCI is not set 263# CONFIG_HOTPLUG_PCI is not set
258# CONFIG_HAS_RAPIDIO is not set 264# CONFIG_HAS_RAPIDIO is not set
@@ -277,6 +283,7 @@ CONFIG_NET=y
277# 283#
278# Networking options 284# Networking options
279# 285#
286CONFIG_COMPAT_NET_DEV_OPS=y
280CONFIG_PACKET=y 287CONFIG_PACKET=y
281# CONFIG_PACKET_MMAP is not set 288# CONFIG_PACKET_MMAP is not set
282CONFIG_UNIX=y 289CONFIG_UNIX=y
@@ -327,6 +334,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
327# CONFIG_ECONET is not set 334# CONFIG_ECONET is not set
328# CONFIG_WAN_ROUTER is not set 335# CONFIG_WAN_ROUTER is not set
329# CONFIG_NET_SCHED is not set 336# CONFIG_NET_SCHED is not set
337# CONFIG_DCB is not set
330 338
331# 339#
332# Network testing 340# Network testing
@@ -339,6 +347,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_AF_RXRPC is not set 347# CONFIG_AF_RXRPC is not set
340# CONFIG_PHONET is not set 348# CONFIG_PHONET is not set
341# CONFIG_WIRELESS is not set 349# CONFIG_WIRELESS is not set
350# CONFIG_WIMAX is not set
342# CONFIG_RFKILL is not set 351# CONFIG_RFKILL is not set
343# CONFIG_NET_9P is not set 352# CONFIG_NET_9P is not set
344 353
@@ -388,6 +397,7 @@ CONFIG_MISC_DEVICES=y
388# CONFIG_TIFM_CORE is not set 397# CONFIG_TIFM_CORE is not set
389# CONFIG_ENCLOSURE_SERVICES is not set 398# CONFIG_ENCLOSURE_SERVICES is not set
390# CONFIG_HP_ILO is not set 399# CONFIG_HP_ILO is not set
400# CONFIG_C2PORT is not set
391CONFIG_HAVE_IDE=y 401CONFIG_HAVE_IDE=y
392# CONFIG_IDE is not set 402# CONFIG_IDE is not set
393 403
@@ -472,6 +482,7 @@ CONFIG_NETDEV_1000=y
472# CONFIG_JME is not set 482# CONFIG_JME is not set
473CONFIG_NETDEV_10000=y 483CONFIG_NETDEV_10000=y
474# CONFIG_CHELSIO_T1 is not set 484# CONFIG_CHELSIO_T1 is not set
485CONFIG_CHELSIO_T3_DEPENDS=y
475# CONFIG_CHELSIO_T3 is not set 486# CONFIG_CHELSIO_T3 is not set
476# CONFIG_ENIC is not set 487# CONFIG_ENIC is not set
477# CONFIG_IXGBE is not set 488# CONFIG_IXGBE is not set
@@ -494,6 +505,10 @@ CONFIG_NETDEV_10000=y
494# CONFIG_WLAN_PRE80211 is not set 505# CONFIG_WLAN_PRE80211 is not set
495# CONFIG_WLAN_80211 is not set 506# CONFIG_WLAN_80211 is not set
496# CONFIG_IWLWIFI_LEDS is not set 507# CONFIG_IWLWIFI_LEDS is not set
508
509#
510# Enable WiMAX (Networking options) to see the WiMAX drivers
511#
497# CONFIG_WAN is not set 512# CONFIG_WAN is not set
498# CONFIG_FDDI is not set 513# CONFIG_FDDI is not set
499# CONFIG_HIPPI is not set 514# CONFIG_HIPPI is not set
@@ -546,9 +561,12 @@ CONFIG_SERIAL_CORE=y
546CONFIG_SERIAL_CORE_CONSOLE=y 561CONFIG_SERIAL_CORE_CONSOLE=y
547# CONFIG_SERIAL_JSM is not set 562# CONFIG_SERIAL_JSM is not set
548CONFIG_SERIAL_OF_PLATFORM=y 563CONFIG_SERIAL_OF_PLATFORM=y
564# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
549CONFIG_UNIX98_PTYS=y 565CONFIG_UNIX98_PTYS=y
566# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
550CONFIG_LEGACY_PTYS=y 567CONFIG_LEGACY_PTYS=y
551CONFIG_LEGACY_PTY_COUNT=256 568CONFIG_LEGACY_PTY_COUNT=256
569# CONFIG_HVC_UDBG is not set
552# CONFIG_IPMI_HANDLER is not set 570# CONFIG_IPMI_HANDLER is not set
553# CONFIG_HW_RANDOM is not set 571# CONFIG_HW_RANDOM is not set
554# CONFIG_NVRAM is not set 572# CONFIG_NVRAM is not set
@@ -568,11 +586,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
568# CONFIG_THERMAL is not set 586# CONFIG_THERMAL is not set
569# CONFIG_THERMAL_HWMON is not set 587# CONFIG_THERMAL_HWMON is not set
570# CONFIG_WATCHDOG is not set 588# CONFIG_WATCHDOG is not set
589CONFIG_SSB_POSSIBLE=y
571 590
572# 591#
573# Sonics Silicon Backplane 592# Sonics Silicon Backplane
574# 593#
575CONFIG_SSB_POSSIBLE=y
576# CONFIG_SSB is not set 594# CONFIG_SSB is not set
577 595
578# 596#
@@ -582,7 +600,7 @@ CONFIG_SSB_POSSIBLE=y
582# CONFIG_MFD_SM501 is not set 600# CONFIG_MFD_SM501 is not set
583# CONFIG_HTC_PASIC3 is not set 601# CONFIG_HTC_PASIC3 is not set
584# CONFIG_MFD_TMIO is not set 602# CONFIG_MFD_TMIO is not set
585# CONFIG_MFD_WM8400 is not set 603# CONFIG_REGULATOR is not set
586 604
587# 605#
588# Multimedia devices 606# Multimedia devices
@@ -628,9 +646,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
628# 646#
629 647
630# 648#
631# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 649# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
632# 650#
633# CONFIG_USB_GADGET is not set 651# CONFIG_USB_GADGET is not set
652
653#
654# OTG and related infrastructure
655#
634# CONFIG_UWB is not set 656# CONFIG_UWB is not set
635# CONFIG_MMC is not set 657# CONFIG_MMC is not set
636# CONFIG_MEMSTICK is not set 658# CONFIG_MEMSTICK is not set
@@ -656,7 +678,9 @@ CONFIG_EXT2_FS=y
656# CONFIG_FS_POSIX_ACL is not set 678# CONFIG_FS_POSIX_ACL is not set
657CONFIG_FILE_LOCKING=y 679CONFIG_FILE_LOCKING=y
658# CONFIG_XFS_FS is not set 680# CONFIG_XFS_FS is not set
681# CONFIG_GFS2_FS is not set
659# CONFIG_OCFS2_FS is not set 682# CONFIG_OCFS2_FS is not set
683# CONFIG_BTRFS_FS is not set
660CONFIG_DNOTIFY=y 684CONFIG_DNOTIFY=y
661CONFIG_INOTIFY=y 685CONFIG_INOTIFY=y
662CONFIG_INOTIFY_USER=y 686CONFIG_INOTIFY_USER=y
@@ -690,10 +714,7 @@ CONFIG_TMPFS=y
690# CONFIG_TMPFS_POSIX_ACL is not set 714# CONFIG_TMPFS_POSIX_ACL is not set
691# CONFIG_HUGETLB_PAGE is not set 715# CONFIG_HUGETLB_PAGE is not set
692# CONFIG_CONFIGFS_FS is not set 716# CONFIG_CONFIGFS_FS is not set
693 717CONFIG_MISC_FILESYSTEMS=y
694#
695# Miscellaneous filesystems
696#
697# CONFIG_ADFS_FS is not set 718# CONFIG_ADFS_FS is not set
698# CONFIG_AFFS_FS is not set 719# CONFIG_AFFS_FS is not set
699# CONFIG_HFS_FS is not set 720# CONFIG_HFS_FS is not set
@@ -702,6 +723,7 @@ CONFIG_TMPFS=y
702# CONFIG_BFS_FS is not set 723# CONFIG_BFS_FS is not set
703# CONFIG_EFS_FS is not set 724# CONFIG_EFS_FS is not set
704CONFIG_CRAMFS=y 725CONFIG_CRAMFS=y
726# CONFIG_SQUASHFS is not set
705# CONFIG_VXFS_FS is not set 727# CONFIG_VXFS_FS is not set
706# CONFIG_MINIX_FS is not set 728# CONFIG_MINIX_FS is not set
707# CONFIG_OMFS_FS is not set 729# CONFIG_OMFS_FS is not set
@@ -742,6 +764,7 @@ CONFIG_MSDOS_PARTITION=y
742# Library routines 764# Library routines
743# 765#
744CONFIG_BITREVERSE=y 766CONFIG_BITREVERSE=y
767CONFIG_GENERIC_FIND_LAST_BIT=y
745# CONFIG_CRC_CCITT is not set 768# CONFIG_CRC_CCITT is not set
746# CONFIG_CRC16 is not set 769# CONFIG_CRC16 is not set
747# CONFIG_CRC_T10DIF is not set 770# CONFIG_CRC_T10DIF is not set
@@ -792,6 +815,7 @@ CONFIG_SCHED_DEBUG=y
792# CONFIG_DEBUG_MEMORY_INIT is not set 815# CONFIG_DEBUG_MEMORY_INIT is not set
793# CONFIG_DEBUG_LIST is not set 816# CONFIG_DEBUG_LIST is not set
794# CONFIG_DEBUG_SG is not set 817# CONFIG_DEBUG_SG is not set
818# CONFIG_DEBUG_NOTIFIERS is not set
795# CONFIG_BOOT_PRINTK_DELAY is not set 819# CONFIG_BOOT_PRINTK_DELAY is not set
796# CONFIG_RCU_TORTURE_TEST is not set 820# CONFIG_RCU_TORTURE_TEST is not set
797# CONFIG_RCU_CPU_STALL_DETECTOR is not set 821# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -800,18 +824,24 @@ CONFIG_SCHED_DEBUG=y
800# CONFIG_FAULT_INJECTION is not set 824# CONFIG_FAULT_INJECTION is not set
801# CONFIG_LATENCYTOP is not set 825# CONFIG_LATENCYTOP is not set
802CONFIG_SYSCTL_SYSCALL_CHECK=y 826CONFIG_SYSCTL_SYSCALL_CHECK=y
803CONFIG_NOP_TRACER=y 827CONFIG_HAVE_FUNCTION_TRACER=y
804CONFIG_HAVE_FTRACE=y
805CONFIG_HAVE_DYNAMIC_FTRACE=y 828CONFIG_HAVE_DYNAMIC_FTRACE=y
806# CONFIG_FTRACE is not set 829CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
830
831#
832# Tracers
833#
834# CONFIG_FUNCTION_TRACER is not set
807# CONFIG_SCHED_TRACER is not set 835# CONFIG_SCHED_TRACER is not set
808# CONFIG_CONTEXT_SWITCH_TRACER is not set 836# CONFIG_CONTEXT_SWITCH_TRACER is not set
809# CONFIG_BOOT_TRACER is not set 837# CONFIG_BOOT_TRACER is not set
838# CONFIG_TRACE_BRANCH_PROFILING is not set
810# CONFIG_STACK_TRACER is not set 839# CONFIG_STACK_TRACER is not set
811# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 840# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
812# CONFIG_SAMPLES is not set 841# CONFIG_SAMPLES is not set
813CONFIG_HAVE_ARCH_KGDB=y 842CONFIG_HAVE_ARCH_KGDB=y
814# CONFIG_KGDB is not set 843# CONFIG_KGDB is not set
844CONFIG_PRINT_STACK_DEPTH=64
815# CONFIG_DEBUG_STACKOVERFLOW is not set 845# CONFIG_DEBUG_STACKOVERFLOW is not set
816# CONFIG_DEBUG_STACK_USAGE is not set 846# CONFIG_DEBUG_STACK_USAGE is not set
817# CONFIG_DEBUG_PAGEALLOC is not set 847# CONFIG_DEBUG_PAGEALLOC is not set
@@ -837,11 +867,15 @@ CONFIG_CRYPTO=y
837# 867#
838# CONFIG_CRYPTO_FIPS is not set 868# CONFIG_CRYPTO_FIPS is not set
839CONFIG_CRYPTO_ALGAPI=y 869CONFIG_CRYPTO_ALGAPI=y
840CONFIG_CRYPTO_AEAD=y 870CONFIG_CRYPTO_ALGAPI2=y
871CONFIG_CRYPTO_AEAD2=y
841CONFIG_CRYPTO_BLKCIPHER=y 872CONFIG_CRYPTO_BLKCIPHER=y
873CONFIG_CRYPTO_BLKCIPHER2=y
842CONFIG_CRYPTO_HASH=y 874CONFIG_CRYPTO_HASH=y
843CONFIG_CRYPTO_RNG=y 875CONFIG_CRYPTO_HASH2=y
876CONFIG_CRYPTO_RNG2=y
844CONFIG_CRYPTO_MANAGER=y 877CONFIG_CRYPTO_MANAGER=y
878CONFIG_CRYPTO_MANAGER2=y
845# CONFIG_CRYPTO_GF128MUL is not set 879# CONFIG_CRYPTO_GF128MUL is not set
846# CONFIG_CRYPTO_NULL is not set 880# CONFIG_CRYPTO_NULL is not set
847# CONFIG_CRYPTO_CRYPTD is not set 881# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/rainier_defconfig b/arch/powerpc/configs/44x/rainier_defconfig
index 927f829e2087..9348c12bd7a6 100644
--- a/arch/powerpc/configs/44x/rainier_defconfig
+++ b/arch/powerpc/configs/44x/rainier_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:13 2008 4# Tue Jan 20 08:22:41 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -18,6 +18,7 @@ CONFIG_4xx=y
18CONFIG_BOOKE=y 18CONFIG_BOOKE=y
19CONFIG_PTE_64BIT=y 19CONFIG_PTE_64BIT=y
20CONFIG_PHYS_64BIT=y 20CONFIG_PHYS_64BIT=y
21CONFIG_PPC_MMU_NOHASH=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
22CONFIG_NOT_COHERENT_CACHE=y 23CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y 24CONFIG_PPC32=y
@@ -43,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 44CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
49CONFIG_OF=y 50CONFIG_OF=y
@@ -74,12 +75,12 @@ CONFIG_POSIX_MQUEUE=y
74# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
75# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
79CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
80# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -114,7 +115,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 115CONFIG_SLUB=y
115# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -125,7 +125,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
130CONFIG_MODULES=y 129CONFIG_MODULES=y
131# CONFIG_MODULE_FORCE_LOAD is not set 130# CONFIG_MODULE_FORCE_LOAD is not set
@@ -133,11 +132,9 @@ CONFIG_MODULE_UNLOAD=y
133# CONFIG_MODULE_FORCE_UNLOAD is not set 132# CONFIG_MODULE_FORCE_UNLOAD is not set
134# CONFIG_MODVERSIONS is not set 133# CONFIG_MODVERSIONS is not set
135# CONFIG_MODULE_SRCVERSION_ALL is not set 134# CONFIG_MODULE_SRCVERSION_ALL is not set
136CONFIG_KMOD=y
137CONFIG_BLOCK=y 135CONFIG_BLOCK=y
138CONFIG_LBD=y 136CONFIG_LBD=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 137# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
143 140
@@ -154,6 +151,10 @@ CONFIG_DEFAULT_AS=y
154# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
155CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
156CONFIG_CLASSIC_RCU=y 153CONFIG_CLASSIC_RCU=y
154# CONFIG_TREE_RCU is not set
155# CONFIG_PREEMPT_RCU is not set
156# CONFIG_TREE_RCU_TRACE is not set
157# CONFIG_PREEMPT_RCU_TRACE is not set
157# CONFIG_FREEZER is not set 158# CONFIG_FREEZER is not set
158# CONFIG_PPC4xx_PCI_EXPRESS is not set 159# CONFIG_PPC4xx_PCI_EXPRESS is not set
159 160
@@ -191,6 +192,7 @@ CONFIG_440GRX=y
191# CONFIG_GENERIC_IOMAP is not set 192# CONFIG_GENERIC_IOMAP is not set
192# CONFIG_CPU_FREQ is not set 193# CONFIG_CPU_FREQ is not set
193# CONFIG_FSL_ULI1575 is not set 194# CONFIG_FSL_ULI1575 is not set
195# CONFIG_SIMPLE_GPIO is not set
194 196
195# 197#
196# Kernel options 198# Kernel options
@@ -214,6 +216,7 @@ CONFIG_BINFMT_ELF=y
214# CONFIG_BINFMT_MISC is not set 216# CONFIG_BINFMT_MISC is not set
215CONFIG_MATH_EMULATION=y 217CONFIG_MATH_EMULATION=y
216# CONFIG_IOMMU_HELPER is not set 218# CONFIG_IOMMU_HELPER is not set
219CONFIG_PPC_NEED_DMA_SYNC_OPS=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
218CONFIG_ARCH_HAS_WALK_MEMORY=y 221CONFIG_ARCH_HAS_WALK_MEMORY=y
219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -228,12 +231,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228CONFIG_PAGEFLAGS_EXTENDED=y 231CONFIG_PAGEFLAGS_EXTENDED=y
229CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
230CONFIG_MIGRATION=y 233CONFIG_MIGRATION=y
231CONFIG_RESOURCES_64BIT=y
232CONFIG_PHYS_ADDR_T_64BIT=y 234CONFIG_PHYS_ADDR_T_64BIT=y
233CONFIG_ZONE_DMA_FLAG=1 235CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 236CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 237CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 238CONFIG_UNEVICTABLE_LRU=y
239CONFIG_PPC_4K_PAGES=y
240# CONFIG_PPC_16K_PAGES is not set
241# CONFIG_PPC_64K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 242CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 243CONFIG_PROC_DEVICETREE=y
239CONFIG_CMDLINE_BOOL=y 244CONFIG_CMDLINE_BOOL=y
@@ -257,6 +262,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
257# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
258CONFIG_PCI_LEGACY=y 263CONFIG_PCI_LEGACY=y
259# CONFIG_PCI_DEBUG is not set 264# CONFIG_PCI_DEBUG is not set
265# CONFIG_PCI_STUB is not set
260# CONFIG_PCCARD is not set 266# CONFIG_PCCARD is not set
261# CONFIG_HOTPLUG_PCI is not set 267# CONFIG_HOTPLUG_PCI is not set
262# CONFIG_HAS_RAPIDIO is not set 268# CONFIG_HAS_RAPIDIO is not set
@@ -281,6 +287,7 @@ CONFIG_NET=y
281# 287#
282# Networking options 288# Networking options
283# 289#
290CONFIG_COMPAT_NET_DEV_OPS=y
284CONFIG_PACKET=y 291CONFIG_PACKET=y
285# CONFIG_PACKET_MMAP is not set 292# CONFIG_PACKET_MMAP is not set
286CONFIG_UNIX=y 293CONFIG_UNIX=y
@@ -331,6 +338,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_ECONET is not set 338# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set 339# CONFIG_WAN_ROUTER is not set
333# CONFIG_NET_SCHED is not set 340# CONFIG_NET_SCHED is not set
341# CONFIG_DCB is not set
334 342
335# 343#
336# Network testing 344# Network testing
@@ -343,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_AF_RXRPC is not set 351# CONFIG_AF_RXRPC is not set
344# CONFIG_PHONET is not set 352# CONFIG_PHONET is not set
345# CONFIG_WIRELESS is not set 353# CONFIG_WIRELESS is not set
354# CONFIG_WIMAX is not set
346# CONFIG_RFKILL is not set 355# CONFIG_RFKILL is not set
347# CONFIG_NET_9P is not set 356# CONFIG_NET_9P is not set
348 357
@@ -368,6 +377,7 @@ CONFIG_MTD=y
368# CONFIG_MTD_DEBUG is not set 377# CONFIG_MTD_DEBUG is not set
369# CONFIG_MTD_CONCAT is not set 378# CONFIG_MTD_CONCAT is not set
370CONFIG_MTD_PARTITIONS=y 379CONFIG_MTD_PARTITIONS=y
380# CONFIG_MTD_TESTS is not set
371# CONFIG_MTD_REDBOOT_PARTS is not set 381# CONFIG_MTD_REDBOOT_PARTS is not set
372CONFIG_MTD_CMDLINE_PARTS=y 382CONFIG_MTD_CMDLINE_PARTS=y
373CONFIG_MTD_OF_PARTS=y 383CONFIG_MTD_OF_PARTS=y
@@ -440,6 +450,12 @@ CONFIG_MTD_PHYSMAP_OF=y
440# CONFIG_MTD_ONENAND is not set 450# CONFIG_MTD_ONENAND is not set
441 451
442# 452#
453# LPDDR flash memory drivers
454#
455# CONFIG_MTD_LPDDR is not set
456# CONFIG_MTD_QINFO_PROBE is not set
457
458#
443# UBI - Unsorted block images 459# UBI - Unsorted block images
444# 460#
445# CONFIG_MTD_UBI is not set 461# CONFIG_MTD_UBI is not set
@@ -470,6 +486,7 @@ CONFIG_MISC_DEVICES=y
470# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
489# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 490CONFIG_HAVE_IDE=y
474# CONFIG_IDE is not set 491# CONFIG_IDE is not set
475 492
@@ -532,6 +549,7 @@ CONFIG_NETDEV_1000=y
532# CONFIG_JME is not set 549# CONFIG_JME is not set
533CONFIG_NETDEV_10000=y 550CONFIG_NETDEV_10000=y
534# CONFIG_CHELSIO_T1 is not set 551# CONFIG_CHELSIO_T1 is not set
552CONFIG_CHELSIO_T3_DEPENDS=y
535# CONFIG_CHELSIO_T3 is not set 553# CONFIG_CHELSIO_T3 is not set
536# CONFIG_ENIC is not set 554# CONFIG_ENIC is not set
537# CONFIG_IXGBE is not set 555# CONFIG_IXGBE is not set
@@ -554,6 +572,10 @@ CONFIG_NETDEV_10000=y
554# CONFIG_WLAN_PRE80211 is not set 572# CONFIG_WLAN_PRE80211 is not set
555# CONFIG_WLAN_80211 is not set 573# CONFIG_WLAN_80211 is not set
556# CONFIG_IWLWIFI_LEDS is not set 574# CONFIG_IWLWIFI_LEDS is not set
575
576#
577# Enable WiMAX (Networking options) to see the WiMAX drivers
578#
557# CONFIG_WAN is not set 579# CONFIG_WAN is not set
558# CONFIG_FDDI is not set 580# CONFIG_FDDI is not set
559# CONFIG_HIPPI is not set 581# CONFIG_HIPPI is not set
@@ -606,9 +628,12 @@ CONFIG_SERIAL_CORE=y
606CONFIG_SERIAL_CORE_CONSOLE=y 628CONFIG_SERIAL_CORE_CONSOLE=y
607# CONFIG_SERIAL_JSM is not set 629# CONFIG_SERIAL_JSM is not set
608CONFIG_SERIAL_OF_PLATFORM=y 630CONFIG_SERIAL_OF_PLATFORM=y
631# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
609CONFIG_UNIX98_PTYS=y 632CONFIG_UNIX98_PTYS=y
633# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
610CONFIG_LEGACY_PTYS=y 634CONFIG_LEGACY_PTYS=y
611CONFIG_LEGACY_PTY_COUNT=256 635CONFIG_LEGACY_PTY_COUNT=256
636# CONFIG_HVC_UDBG is not set
612# CONFIG_IPMI_HANDLER is not set 637# CONFIG_IPMI_HANDLER is not set
613# CONFIG_HW_RANDOM is not set 638# CONFIG_HW_RANDOM is not set
614# CONFIG_NVRAM is not set 639# CONFIG_NVRAM is not set
@@ -627,11 +652,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
627# CONFIG_HWMON is not set 652# CONFIG_HWMON is not set
628CONFIG_THERMAL=y 653CONFIG_THERMAL=y
629# CONFIG_WATCHDOG is not set 654# CONFIG_WATCHDOG is not set
655CONFIG_SSB_POSSIBLE=y
630 656
631# 657#
632# Sonics Silicon Backplane 658# Sonics Silicon Backplane
633# 659#
634CONFIG_SSB_POSSIBLE=y
635# CONFIG_SSB is not set 660# CONFIG_SSB is not set
636 661
637# 662#
@@ -641,7 +666,7 @@ CONFIG_SSB_POSSIBLE=y
641# CONFIG_MFD_SM501 is not set 666# CONFIG_MFD_SM501 is not set
642# CONFIG_HTC_PASIC3 is not set 667# CONFIG_HTC_PASIC3 is not set
643# CONFIG_MFD_TMIO is not set 668# CONFIG_MFD_TMIO is not set
644# CONFIG_MFD_WM8400 is not set 669# CONFIG_REGULATOR is not set
645 670
646# 671#
647# Multimedia devices 672# Multimedia devices
@@ -687,9 +712,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
687# 712#
688 713
689# 714#
690# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 715# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
691# 716#
692# CONFIG_USB_GADGET is not set 717# CONFIG_USB_GADGET is not set
718
719#
720# OTG and related infrastructure
721#
693# CONFIG_UWB is not set 722# CONFIG_UWB is not set
694# CONFIG_MMC is not set 723# CONFIG_MMC is not set
695# CONFIG_MEMSTICK is not set 724# CONFIG_MEMSTICK is not set
@@ -715,7 +744,9 @@ CONFIG_EXT2_FS=y
715# CONFIG_FS_POSIX_ACL is not set 744# CONFIG_FS_POSIX_ACL is not set
716CONFIG_FILE_LOCKING=y 745CONFIG_FILE_LOCKING=y
717# CONFIG_XFS_FS is not set 746# CONFIG_XFS_FS is not set
747# CONFIG_GFS2_FS is not set
718# CONFIG_OCFS2_FS is not set 748# CONFIG_OCFS2_FS is not set
749# CONFIG_BTRFS_FS is not set
719CONFIG_DNOTIFY=y 750CONFIG_DNOTIFY=y
720CONFIG_INOTIFY=y 751CONFIG_INOTIFY=y
721CONFIG_INOTIFY_USER=y 752CONFIG_INOTIFY_USER=y
@@ -749,10 +780,7 @@ CONFIG_TMPFS=y
749# CONFIG_TMPFS_POSIX_ACL is not set 780# CONFIG_TMPFS_POSIX_ACL is not set
750# CONFIG_HUGETLB_PAGE is not set 781# CONFIG_HUGETLB_PAGE is not set
751# CONFIG_CONFIGFS_FS is not set 782# CONFIG_CONFIGFS_FS is not set
752 783CONFIG_MISC_FILESYSTEMS=y
753#
754# Miscellaneous filesystems
755#
756# CONFIG_ADFS_FS is not set 784# CONFIG_ADFS_FS is not set
757# CONFIG_AFFS_FS is not set 785# CONFIG_AFFS_FS is not set
758# CONFIG_HFS_FS is not set 786# CONFIG_HFS_FS is not set
@@ -772,6 +800,7 @@ CONFIG_JFFS2_ZLIB=y
772CONFIG_JFFS2_RTIME=y 800CONFIG_JFFS2_RTIME=y
773# CONFIG_JFFS2_RUBIN is not set 801# CONFIG_JFFS2_RUBIN is not set
774CONFIG_CRAMFS=y 802CONFIG_CRAMFS=y
803# CONFIG_SQUASHFS is not set
775# CONFIG_VXFS_FS is not set 804# CONFIG_VXFS_FS is not set
776# CONFIG_MINIX_FS is not set 805# CONFIG_MINIX_FS is not set
777# CONFIG_OMFS_FS is not set 806# CONFIG_OMFS_FS is not set
@@ -812,6 +841,7 @@ CONFIG_MSDOS_PARTITION=y
812# Library routines 841# Library routines
813# 842#
814CONFIG_BITREVERSE=y 843CONFIG_BITREVERSE=y
844CONFIG_GENERIC_FIND_LAST_BIT=y
815# CONFIG_CRC_CCITT is not set 845# CONFIG_CRC_CCITT is not set
816# CONFIG_CRC16 is not set 846# CONFIG_CRC16 is not set
817# CONFIG_CRC_T10DIF is not set 847# CONFIG_CRC_T10DIF is not set
@@ -863,6 +893,7 @@ CONFIG_SCHED_DEBUG=y
863# CONFIG_DEBUG_MEMORY_INIT is not set 893# CONFIG_DEBUG_MEMORY_INIT is not set
864# CONFIG_DEBUG_LIST is not set 894# CONFIG_DEBUG_LIST is not set
865# CONFIG_DEBUG_SG is not set 895# CONFIG_DEBUG_SG is not set
896# CONFIG_DEBUG_NOTIFIERS is not set
866# CONFIG_BOOT_PRINTK_DELAY is not set 897# CONFIG_BOOT_PRINTK_DELAY is not set
867# CONFIG_RCU_TORTURE_TEST is not set 898# CONFIG_RCU_TORTURE_TEST is not set
868# CONFIG_RCU_CPU_STALL_DETECTOR is not set 899# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -871,18 +902,24 @@ CONFIG_SCHED_DEBUG=y
871# CONFIG_FAULT_INJECTION is not set 902# CONFIG_FAULT_INJECTION is not set
872# CONFIG_LATENCYTOP is not set 903# CONFIG_LATENCYTOP is not set
873CONFIG_SYSCTL_SYSCALL_CHECK=y 904CONFIG_SYSCTL_SYSCALL_CHECK=y
874CONFIG_NOP_TRACER=y 905CONFIG_HAVE_FUNCTION_TRACER=y
875CONFIG_HAVE_FTRACE=y
876CONFIG_HAVE_DYNAMIC_FTRACE=y 906CONFIG_HAVE_DYNAMIC_FTRACE=y
877# CONFIG_FTRACE is not set 907CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
908
909#
910# Tracers
911#
912# CONFIG_FUNCTION_TRACER is not set
878# CONFIG_SCHED_TRACER is not set 913# CONFIG_SCHED_TRACER is not set
879# CONFIG_CONTEXT_SWITCH_TRACER is not set 914# CONFIG_CONTEXT_SWITCH_TRACER is not set
880# CONFIG_BOOT_TRACER is not set 915# CONFIG_BOOT_TRACER is not set
916# CONFIG_TRACE_BRANCH_PROFILING is not set
881# CONFIG_STACK_TRACER is not set 917# CONFIG_STACK_TRACER is not set
882# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 918# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
883# CONFIG_SAMPLES is not set 919# CONFIG_SAMPLES is not set
884CONFIG_HAVE_ARCH_KGDB=y 920CONFIG_HAVE_ARCH_KGDB=y
885# CONFIG_KGDB is not set 921# CONFIG_KGDB is not set
922CONFIG_PRINT_STACK_DEPTH=64
886# CONFIG_DEBUG_STACKOVERFLOW is not set 923# CONFIG_DEBUG_STACKOVERFLOW is not set
887# CONFIG_DEBUG_STACK_USAGE is not set 924# CONFIG_DEBUG_STACK_USAGE is not set
888# CONFIG_DEBUG_PAGEALLOC is not set 925# CONFIG_DEBUG_PAGEALLOC is not set
@@ -922,11 +959,15 @@ CONFIG_CRYPTO=y
922# 959#
923# CONFIG_CRYPTO_FIPS is not set 960# CONFIG_CRYPTO_FIPS is not set
924CONFIG_CRYPTO_ALGAPI=y 961CONFIG_CRYPTO_ALGAPI=y
925CONFIG_CRYPTO_AEAD=y 962CONFIG_CRYPTO_ALGAPI2=y
963CONFIG_CRYPTO_AEAD2=y
926CONFIG_CRYPTO_BLKCIPHER=y 964CONFIG_CRYPTO_BLKCIPHER=y
965CONFIG_CRYPTO_BLKCIPHER2=y
927CONFIG_CRYPTO_HASH=y 966CONFIG_CRYPTO_HASH=y
928CONFIG_CRYPTO_RNG=y 967CONFIG_CRYPTO_HASH2=y
968CONFIG_CRYPTO_RNG2=y
929CONFIG_CRYPTO_MANAGER=y 969CONFIG_CRYPTO_MANAGER=y
970CONFIG_CRYPTO_MANAGER2=y
930# CONFIG_CRYPTO_GF128MUL is not set 971# CONFIG_CRYPTO_GF128MUL is not set
931# CONFIG_CRYPTO_NULL is not set 972# CONFIG_CRYPTO_NULL is not set
932# CONFIG_CRYPTO_CRYPTD is not set 973# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/sam440ep_defconfig b/arch/powerpc/configs/44x/sam440ep_defconfig
index 15f48e03ec2e..70d5c3fa3283 100644
--- a/arch/powerpc/configs/44x/sam440ep_defconfig
+++ b/arch/powerpc/configs/44x/sam440ep_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:15 2008 4# Tue Jan 20 08:22:42 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -76,12 +77,12 @@ CONFIG_POSIX_MQUEUE=y
76CONFIG_IKCONFIG=y 77CONFIG_IKCONFIG=y
77# CONFIG_IKCONFIG_PROC is not set 78# CONFIG_IKCONFIG_PROC is not set
78CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -115,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 116CONFIG_SLUB=y
116# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +126,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 130CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 131# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +133,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 133# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 134# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 135# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 136CONFIG_BLOCK=y
139# CONFIG_LBD is not set 137# CONFIG_LBD is not set
140# CONFIG_BLK_DEV_IO_TRACE is not set 138# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 140# CONFIG_BLK_DEV_INTEGRITY is not set
144 141
@@ -155,6 +152,10 @@ CONFIG_DEFAULT_AS=y
155# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
157CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_TREE_RCU is not set
156# CONFIG_PREEMPT_RCU is not set
157# CONFIG_TREE_RCU_TRACE is not set
158# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 159# CONFIG_FREEZER is not set
159# CONFIG_PPC4xx_PCI_EXPRESS is not set 160# CONFIG_PPC4xx_PCI_EXPRESS is not set
160 161
@@ -193,6 +194,7 @@ CONFIG_IBM440EP_ERR42=y
193# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
194# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
195# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
197# CONFIG_SIMPLE_GPIO is not set
196 198
197# 199#
198# Kernel options 200# Kernel options
@@ -216,6 +218,7 @@ CONFIG_BINFMT_ELF=y
216# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
217# CONFIG_MATH_EMULATION is not set 219# CONFIG_MATH_EMULATION is not set
218# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
221CONFIG_PPC_NEED_DMA_SYNC_OPS=y
219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
220CONFIG_ARCH_HAS_WALK_MEMORY=y 223CONFIG_ARCH_HAS_WALK_MEMORY=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -230,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
233CONFIG_RESOURCES_64BIT=y
234CONFIG_PHYS_ADDR_T_64BIT=y 236CONFIG_PHYS_ADDR_T_64BIT=y
235CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
237CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
238CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
241CONFIG_CMDLINE_BOOL=y 246CONFIG_CMDLINE_BOOL=y
@@ -258,6 +263,7 @@ CONFIG_PCI_SYSCALL=y
258CONFIG_ARCH_SUPPORTS_MSI=y 263CONFIG_ARCH_SUPPORTS_MSI=y
259# CONFIG_PCI_MSI is not set 264# CONFIG_PCI_MSI is not set
260CONFIG_PCI_LEGACY=y 265CONFIG_PCI_LEGACY=y
266# CONFIG_PCI_STUB is not set
261# CONFIG_PCCARD is not set 267# CONFIG_PCCARD is not set
262# CONFIG_HOTPLUG_PCI is not set 268# CONFIG_HOTPLUG_PCI is not set
263# CONFIG_HAS_RAPIDIO is not set 269# CONFIG_HAS_RAPIDIO is not set
@@ -282,6 +288,7 @@ CONFIG_NET=y
282# 288#
283# Networking options 289# Networking options
284# 290#
291CONFIG_COMPAT_NET_DEV_OPS=y
285CONFIG_PACKET=y 292CONFIG_PACKET=y
286# CONFIG_PACKET_MMAP is not set 293# CONFIG_PACKET_MMAP is not set
287CONFIG_UNIX=y 294CONFIG_UNIX=y
@@ -332,6 +339,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_ECONET is not set 339# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 340# CONFIG_WAN_ROUTER is not set
334# CONFIG_NET_SCHED is not set 341# CONFIG_NET_SCHED is not set
342# CONFIG_DCB is not set
335 343
336# 344#
337# Network testing 345# Network testing
@@ -344,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_AF_RXRPC is not set 352# CONFIG_AF_RXRPC is not set
345# CONFIG_PHONET is not set 353# CONFIG_PHONET is not set
346# CONFIG_WIRELESS is not set 354# CONFIG_WIRELESS is not set
355# CONFIG_WIMAX is not set
347# CONFIG_RFKILL is not set 356# CONFIG_RFKILL is not set
348# CONFIG_NET_9P is not set 357# CONFIG_NET_9P is not set
349 358
@@ -551,6 +560,10 @@ CONFIG_IBM_NEW_EMAC_ZMII=y
551# CONFIG_IWLWIFI_LEDS is not set 560# CONFIG_IWLWIFI_LEDS is not set
552 561
553# 562#
563# Enable WiMAX (Networking options) to see the WiMAX drivers
564#
565
566#
554# USB Network Adapters 567# USB Network Adapters
555# 568#
556# CONFIG_USB_CATC is not set 569# CONFIG_USB_CATC is not set
@@ -605,6 +618,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
605CONFIG_MOUSE_PS2_SYNAPTICS=y 618CONFIG_MOUSE_PS2_SYNAPTICS=y
606CONFIG_MOUSE_PS2_LIFEBOOK=y 619CONFIG_MOUSE_PS2_LIFEBOOK=y
607CONFIG_MOUSE_PS2_TRACKPOINT=y 620CONFIG_MOUSE_PS2_TRACKPOINT=y
621# CONFIG_MOUSE_PS2_ELANTECH is not set
608# CONFIG_MOUSE_PS2_TOUCHKIT is not set 622# CONFIG_MOUSE_PS2_TOUCHKIT is not set
609# CONFIG_MOUSE_SERIAL is not set 623# CONFIG_MOUSE_SERIAL is not set
610# CONFIG_MOUSE_APPLETOUCH is not set 624# CONFIG_MOUSE_APPLETOUCH is not set
@@ -661,9 +675,12 @@ CONFIG_SERIAL_CORE=y
661CONFIG_SERIAL_CORE_CONSOLE=y 675CONFIG_SERIAL_CORE_CONSOLE=y
662# CONFIG_SERIAL_JSM is not set 676# CONFIG_SERIAL_JSM is not set
663CONFIG_SERIAL_OF_PLATFORM=y 677CONFIG_SERIAL_OF_PLATFORM=y
678# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
664CONFIG_UNIX98_PTYS=y 679CONFIG_UNIX98_PTYS=y
680# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
665CONFIG_LEGACY_PTYS=y 681CONFIG_LEGACY_PTYS=y
666CONFIG_LEGACY_PTY_COUNT=256 682CONFIG_LEGACY_PTY_COUNT=256
683# CONFIG_HVC_UDBG is not set
667# CONFIG_IPMI_HANDLER is not set 684# CONFIG_IPMI_HANDLER is not set
668# CONFIG_HW_RANDOM is not set 685# CONFIG_HW_RANDOM is not set
669# CONFIG_NVRAM is not set 686# CONFIG_NVRAM is not set
@@ -730,8 +747,8 @@ CONFIG_I2C_IBM_IIC=y
730# Miscellaneous I2C Chip support 747# Miscellaneous I2C Chip support
731# 748#
732# CONFIG_DS1682 is not set 749# CONFIG_DS1682 is not set
733# CONFIG_AT24 is not set 750# CONFIG_EEPROM_AT24 is not set
734# CONFIG_SENSORS_EEPROM is not set 751# CONFIG_EEPROM_LEGACY is not set
735# CONFIG_SENSORS_PCF8574 is not set 752# CONFIG_SENSORS_PCF8574 is not set
736# CONFIG_PCF8575 is not set 753# CONFIG_PCF8575 is not set
737# CONFIG_SENSORS_PCA9539 is not set 754# CONFIG_SENSORS_PCA9539 is not set
@@ -751,11 +768,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
751# CONFIG_THERMAL is not set 768# CONFIG_THERMAL is not set
752# CONFIG_THERMAL_HWMON is not set 769# CONFIG_THERMAL_HWMON is not set
753# CONFIG_WATCHDOG is not set 770# CONFIG_WATCHDOG is not set
771CONFIG_SSB_POSSIBLE=y
754 772
755# 773#
756# Sonics Silicon Backplane 774# Sonics Silicon Backplane
757# 775#
758CONFIG_SSB_POSSIBLE=y
759# CONFIG_SSB is not set 776# CONFIG_SSB is not set
760 777
761# 778#
@@ -764,9 +781,13 @@ CONFIG_SSB_POSSIBLE=y
764# CONFIG_MFD_CORE is not set 781# CONFIG_MFD_CORE is not set
765# CONFIG_MFD_SM501 is not set 782# CONFIG_MFD_SM501 is not set
766# CONFIG_HTC_PASIC3 is not set 783# CONFIG_HTC_PASIC3 is not set
784# CONFIG_TWL4030_CORE is not set
767# CONFIG_MFD_TMIO is not set 785# CONFIG_MFD_TMIO is not set
786# CONFIG_PMIC_DA903X is not set
768# CONFIG_MFD_WM8400 is not set 787# CONFIG_MFD_WM8400 is not set
769# CONFIG_MFD_WM8350_I2C is not set 788# CONFIG_MFD_WM8350_I2C is not set
789# CONFIG_MFD_PCF50633 is not set
790# CONFIG_REGULATOR is not set
770 791
771# 792#
772# Multimedia devices 793# Multimedia devices
@@ -848,12 +869,13 @@ CONFIG_FB_RADEON_BACKLIGHT=y
848# CONFIG_FB_IBM_GXT4500 is not set 869# CONFIG_FB_IBM_GXT4500 is not set
849# CONFIG_FB_VIRTUAL is not set 870# CONFIG_FB_VIRTUAL is not set
850# CONFIG_FB_METRONOME is not set 871# CONFIG_FB_METRONOME is not set
872# CONFIG_FB_MB862XX is not set
851CONFIG_BACKLIGHT_LCD_SUPPORT=y 873CONFIG_BACKLIGHT_LCD_SUPPORT=y
852CONFIG_LCD_CLASS_DEVICE=y 874CONFIG_LCD_CLASS_DEVICE=y
853# CONFIG_LCD_ILI9320 is not set 875# CONFIG_LCD_ILI9320 is not set
854# CONFIG_LCD_PLATFORM is not set 876# CONFIG_LCD_PLATFORM is not set
855CONFIG_BACKLIGHT_CLASS_DEVICE=y 877CONFIG_BACKLIGHT_CLASS_DEVICE=y
856# CONFIG_BACKLIGHT_CORGI is not set 878CONFIG_BACKLIGHT_GENERIC=y
857 879
858# 880#
859# Display device support 881# Display device support
@@ -894,11 +916,9 @@ CONFIG_HID_COMPAT=y
894CONFIG_HID_A4TECH=y 916CONFIG_HID_A4TECH=y
895CONFIG_HID_APPLE=y 917CONFIG_HID_APPLE=y
896CONFIG_HID_BELKIN=y 918CONFIG_HID_BELKIN=y
897CONFIG_HID_BRIGHT=y
898CONFIG_HID_CHERRY=y 919CONFIG_HID_CHERRY=y
899CONFIG_HID_CHICONY=y 920CONFIG_HID_CHICONY=y
900CONFIG_HID_CYPRESS=y 921CONFIG_HID_CYPRESS=y
901CONFIG_HID_DELL=y
902CONFIG_HID_EZKEY=y 922CONFIG_HID_EZKEY=y
903CONFIG_HID_GYRATION=y 923CONFIG_HID_GYRATION=y
904CONFIG_HID_LOGITECH=y 924CONFIG_HID_LOGITECH=y
@@ -906,12 +926,15 @@ CONFIG_HID_LOGITECH=y
906# CONFIG_LOGIRUMBLEPAD2_FF is not set 926# CONFIG_LOGIRUMBLEPAD2_FF is not set
907CONFIG_HID_MICROSOFT=y 927CONFIG_HID_MICROSOFT=y
908CONFIG_HID_MONTEREY=y 928CONFIG_HID_MONTEREY=y
929# CONFIG_HID_NTRIG is not set
909CONFIG_HID_PANTHERLORD=y 930CONFIG_HID_PANTHERLORD=y
910# CONFIG_PANTHERLORD_FF is not set 931# CONFIG_PANTHERLORD_FF is not set
911CONFIG_HID_PETALYNX=y 932CONFIG_HID_PETALYNX=y
912CONFIG_HID_SAMSUNG=y 933CONFIG_HID_SAMSUNG=y
913CONFIG_HID_SONY=y 934CONFIG_HID_SONY=y
914CONFIG_HID_SUNPLUS=y 935CONFIG_HID_SUNPLUS=y
936# CONFIG_GREENASIA_FF is not set
937# CONFIG_HID_TOPSEED is not set
915CONFIG_THRUSTMASTER_FF=m 938CONFIG_THRUSTMASTER_FF=m
916CONFIG_ZEROPLUS_FF=m 939CONFIG_ZEROPLUS_FF=m
917CONFIG_USB_SUPPORT=y 940CONFIG_USB_SUPPORT=y
@@ -943,6 +966,7 @@ CONFIG_USB_EHCI_HCD=m
943# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 966# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
944# CONFIG_USB_EHCI_TT_NEWSCHED is not set 967# CONFIG_USB_EHCI_TT_NEWSCHED is not set
945CONFIG_USB_EHCI_HCD_PPC_OF=y 968CONFIG_USB_EHCI_HCD_PPC_OF=y
969# CONFIG_USB_OXU210HP_HCD is not set
946# CONFIG_USB_ISP116X_HCD is not set 970# CONFIG_USB_ISP116X_HCD is not set
947# CONFIG_USB_ISP1760_HCD is not set 971# CONFIG_USB_ISP1760_HCD is not set
948CONFIG_USB_OHCI_HCD=y 972CONFIG_USB_OHCI_HCD=y
@@ -968,18 +992,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
968# CONFIG_USB_TMC is not set 992# CONFIG_USB_TMC is not set
969 993
970# 994#
971# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 995# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
972# 996#
973 997
974# 998#
975# may also be needed; see USB_STORAGE Help for more information 999# see USB_STORAGE Help for more information
976# 1000#
977CONFIG_USB_STORAGE=m 1001CONFIG_USB_STORAGE=m
978# CONFIG_USB_STORAGE_DEBUG is not set 1002# CONFIG_USB_STORAGE_DEBUG is not set
979# CONFIG_USB_STORAGE_DATAFAB is not set 1003# CONFIG_USB_STORAGE_DATAFAB is not set
980# CONFIG_USB_STORAGE_FREECOM is not set 1004# CONFIG_USB_STORAGE_FREECOM is not set
981# CONFIG_USB_STORAGE_ISD200 is not set 1005# CONFIG_USB_STORAGE_ISD200 is not set
982# CONFIG_USB_STORAGE_DPCM is not set
983# CONFIG_USB_STORAGE_USBAT is not set 1006# CONFIG_USB_STORAGE_USBAT is not set
984# CONFIG_USB_STORAGE_SDDR09 is not set 1007# CONFIG_USB_STORAGE_SDDR09 is not set
985# CONFIG_USB_STORAGE_SDDR55 is not set 1008# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1027,6 +1050,10 @@ CONFIG_USB_STORAGE=m
1027# CONFIG_USB_ISIGHTFW is not set 1050# CONFIG_USB_ISIGHTFW is not set
1028# CONFIG_USB_VST is not set 1051# CONFIG_USB_VST is not set
1029# CONFIG_USB_GADGET is not set 1052# CONFIG_USB_GADGET is not set
1053
1054#
1055# OTG and related infrastructure
1056#
1030# CONFIG_UWB is not set 1057# CONFIG_UWB is not set
1031# CONFIG_MMC is not set 1058# CONFIG_MMC is not set
1032# CONFIG_MEMSTICK is not set 1059# CONFIG_MEMSTICK is not set
@@ -1065,6 +1092,7 @@ CONFIG_RTC_DRV_M41T80=y
1065CONFIG_RTC_DRV_M41T80_WDT=y 1092CONFIG_RTC_DRV_M41T80_WDT=y
1066# CONFIG_RTC_DRV_S35390A is not set 1093# CONFIG_RTC_DRV_S35390A is not set
1067# CONFIG_RTC_DRV_FM3130 is not set 1094# CONFIG_RTC_DRV_FM3130 is not set
1095# CONFIG_RTC_DRV_RX8581 is not set
1068 1096
1069# 1097#
1070# SPI RTC drivers 1098# SPI RTC drivers
@@ -1117,6 +1145,7 @@ CONFIG_FS_POSIX_ACL=y
1117CONFIG_FILE_LOCKING=y 1145CONFIG_FILE_LOCKING=y
1118# CONFIG_XFS_FS is not set 1146# CONFIG_XFS_FS is not set
1119# CONFIG_OCFS2_FS is not set 1147# CONFIG_OCFS2_FS is not set
1148# CONFIG_BTRFS_FS is not set
1120CONFIG_DNOTIFY=y 1149CONFIG_DNOTIFY=y
1121CONFIG_INOTIFY=y 1150CONFIG_INOTIFY=y
1122CONFIG_INOTIFY_USER=y 1151CONFIG_INOTIFY_USER=y
@@ -1156,10 +1185,7 @@ CONFIG_TMPFS=y
1156# CONFIG_TMPFS_POSIX_ACL is not set 1185# CONFIG_TMPFS_POSIX_ACL is not set
1157# CONFIG_HUGETLB_PAGE is not set 1186# CONFIG_HUGETLB_PAGE is not set
1158# CONFIG_CONFIGFS_FS is not set 1187# CONFIG_CONFIGFS_FS is not set
1159 1188CONFIG_MISC_FILESYSTEMS=y
1160#
1161# Miscellaneous filesystems
1162#
1163# CONFIG_ADFS_FS is not set 1189# CONFIG_ADFS_FS is not set
1164CONFIG_AFFS_FS=m 1190CONFIG_AFFS_FS=m
1165# CONFIG_HFS_FS is not set 1191# CONFIG_HFS_FS is not set
@@ -1168,6 +1194,7 @@ CONFIG_AFFS_FS=m
1168# CONFIG_BFS_FS is not set 1194# CONFIG_BFS_FS is not set
1169# CONFIG_EFS_FS is not set 1195# CONFIG_EFS_FS is not set
1170# CONFIG_CRAMFS is not set 1196# CONFIG_CRAMFS is not set
1197# CONFIG_SQUASHFS is not set
1171# CONFIG_VXFS_FS is not set 1198# CONFIG_VXFS_FS is not set
1172# CONFIG_MINIX_FS is not set 1199# CONFIG_MINIX_FS is not set
1173# CONFIG_OMFS_FS is not set 1200# CONFIG_OMFS_FS is not set
@@ -1245,6 +1272,7 @@ CONFIG_NLS_ISO8859_1=y
1245# Library routines 1272# Library routines
1246# 1273#
1247CONFIG_BITREVERSE=y 1274CONFIG_BITREVERSE=y
1275CONFIG_GENERIC_FIND_LAST_BIT=y
1248# CONFIG_CRC_CCITT is not set 1276# CONFIG_CRC_CCITT is not set
1249# CONFIG_CRC16 is not set 1277# CONFIG_CRC16 is not set
1250CONFIG_CRC_T10DIF=y 1278CONFIG_CRC_T10DIF=y
@@ -1278,12 +1306,17 @@ CONFIG_MAGIC_SYSRQ=y
1278# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1306# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1279# CONFIG_LATENCYTOP is not set 1307# CONFIG_LATENCYTOP is not set
1280CONFIG_SYSCTL_SYSCALL_CHECK=y 1308CONFIG_SYSCTL_SYSCALL_CHECK=y
1281CONFIG_NOP_TRACER=y 1309CONFIG_HAVE_FUNCTION_TRACER=y
1282CONFIG_HAVE_FTRACE=y
1283CONFIG_HAVE_DYNAMIC_FTRACE=y 1310CONFIG_HAVE_DYNAMIC_FTRACE=y
1311CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1312
1313#
1314# Tracers
1315#
1284# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1316# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1285# CONFIG_SAMPLES is not set 1317# CONFIG_SAMPLES is not set
1286CONFIG_HAVE_ARCH_KGDB=y 1318CONFIG_HAVE_ARCH_KGDB=y
1319CONFIG_PRINT_STACK_DEPTH=64
1287# CONFIG_IRQSTACKS is not set 1320# CONFIG_IRQSTACKS is not set
1288# CONFIG_PPC_EARLY_DEBUG is not set 1321# CONFIG_PPC_EARLY_DEBUG is not set
1289 1322
diff --git a/arch/powerpc/configs/44x/sequoia_defconfig b/arch/powerpc/configs/44x/sequoia_defconfig
index 562beeaab53d..a921fe3c3711 100644
--- a/arch/powerpc/configs/44x/sequoia_defconfig
+++ b/arch/powerpc/configs/44x/sequoia_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:16 2008 4# Tue Jan 20 08:22:45 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -75,12 +76,12 @@ CONFIG_POSIX_MQUEUE=y
75# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 79CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 80# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 81# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 82CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
84# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 85CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 86CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 87# CONFIG_RELAY is not set
@@ -115,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 116CONFIG_SLUB=y
116# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +126,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 130CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 131# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +133,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 133# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 134# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 135# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 136CONFIG_BLOCK=y
139CONFIG_LBD=y 137CONFIG_LBD=y
140# CONFIG_BLK_DEV_IO_TRACE is not set 138# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 140# CONFIG_BLK_DEV_INTEGRITY is not set
144 141
@@ -155,6 +152,10 @@ CONFIG_DEFAULT_AS=y
155# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
157CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_TREE_RCU is not set
156# CONFIG_PREEMPT_RCU is not set
157# CONFIG_TREE_RCU_TRACE is not set
158# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 159# CONFIG_FREEZER is not set
159# CONFIG_PPC4xx_PCI_EXPRESS is not set 160# CONFIG_PPC4xx_PCI_EXPRESS is not set
160 161
@@ -192,6 +193,7 @@ CONFIG_440EPX=y
192# CONFIG_GENERIC_IOMAP is not set 193# CONFIG_GENERIC_IOMAP is not set
193# CONFIG_CPU_FREQ is not set 194# CONFIG_CPU_FREQ is not set
194# CONFIG_FSL_ULI1575 is not set 195# CONFIG_FSL_ULI1575 is not set
196# CONFIG_SIMPLE_GPIO is not set
195 197
196# 198#
197# Kernel options 199# Kernel options
@@ -216,6 +218,7 @@ CONFIG_BINFMT_ELF=y
216# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
217# CONFIG_MATH_EMULATION is not set 219# CONFIG_MATH_EMULATION is not set
218# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
221CONFIG_PPC_NEED_DMA_SYNC_OPS=y
219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
220CONFIG_ARCH_HAS_WALK_MEMORY=y 223CONFIG_ARCH_HAS_WALK_MEMORY=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -230,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
233CONFIG_RESOURCES_64BIT=y
234CONFIG_PHYS_ADDR_T_64BIT=y 236CONFIG_PHYS_ADDR_T_64BIT=y
235CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
237CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
238CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
241CONFIG_CMDLINE_BOOL=y 246CONFIG_CMDLINE_BOOL=y
@@ -259,6 +264,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
259# CONFIG_PCI_MSI is not set 264# CONFIG_PCI_MSI is not set
260CONFIG_PCI_LEGACY=y 265CONFIG_PCI_LEGACY=y
261# CONFIG_PCI_DEBUG is not set 266# CONFIG_PCI_DEBUG is not set
267# CONFIG_PCI_STUB is not set
262# CONFIG_PCCARD is not set 268# CONFIG_PCCARD is not set
263# CONFIG_HOTPLUG_PCI is not set 269# CONFIG_HOTPLUG_PCI is not set
264# CONFIG_HAS_RAPIDIO is not set 270# CONFIG_HAS_RAPIDIO is not set
@@ -283,6 +289,7 @@ CONFIG_NET=y
283# 289#
284# Networking options 290# Networking options
285# 291#
292CONFIG_COMPAT_NET_DEV_OPS=y
286CONFIG_PACKET=y 293CONFIG_PACKET=y
287# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
288CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -333,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_ECONET is not set 340# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 341# CONFIG_WAN_ROUTER is not set
335# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set
336 344
337# 345#
338# Network testing 346# Network testing
@@ -345,6 +353,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_AF_RXRPC is not set 353# CONFIG_AF_RXRPC is not set
346# CONFIG_PHONET is not set 354# CONFIG_PHONET is not set
347# CONFIG_WIRELESS is not set 355# CONFIG_WIRELESS is not set
356# CONFIG_WIMAX is not set
348# CONFIG_RFKILL is not set 357# CONFIG_RFKILL is not set
349# CONFIG_NET_9P is not set 358# CONFIG_NET_9P is not set
350 359
@@ -370,6 +379,7 @@ CONFIG_MTD=y
370# CONFIG_MTD_DEBUG is not set 379# CONFIG_MTD_DEBUG is not set
371# CONFIG_MTD_CONCAT is not set 380# CONFIG_MTD_CONCAT is not set
372CONFIG_MTD_PARTITIONS=y 381CONFIG_MTD_PARTITIONS=y
382# CONFIG_MTD_TESTS is not set
373# CONFIG_MTD_REDBOOT_PARTS is not set 383# CONFIG_MTD_REDBOOT_PARTS is not set
374CONFIG_MTD_CMDLINE_PARTS=y 384CONFIG_MTD_CMDLINE_PARTS=y
375CONFIG_MTD_OF_PARTS=y 385CONFIG_MTD_OF_PARTS=y
@@ -442,6 +452,12 @@ CONFIG_MTD_PHYSMAP_OF=y
442# CONFIG_MTD_ONENAND is not set 452# CONFIG_MTD_ONENAND is not set
443 453
444# 454#
455# LPDDR flash memory drivers
456#
457# CONFIG_MTD_LPDDR is not set
458# CONFIG_MTD_QINFO_PROBE is not set
459
460#
445# UBI - Unsorted block images 461# UBI - Unsorted block images
446# 462#
447# CONFIG_MTD_UBI is not set 463# CONFIG_MTD_UBI is not set
@@ -472,6 +488,7 @@ CONFIG_MISC_DEVICES=y
472# CONFIG_TIFM_CORE is not set 488# CONFIG_TIFM_CORE is not set
473# CONFIG_ENCLOSURE_SERVICES is not set 489# CONFIG_ENCLOSURE_SERVICES is not set
474# CONFIG_HP_ILO is not set 490# CONFIG_HP_ILO is not set
491# CONFIG_C2PORT is not set
475CONFIG_HAVE_IDE=y 492CONFIG_HAVE_IDE=y
476# CONFIG_IDE is not set 493# CONFIG_IDE is not set
477 494
@@ -554,6 +571,7 @@ CONFIG_NETDEV_1000=y
554# CONFIG_JME is not set 571# CONFIG_JME is not set
555CONFIG_NETDEV_10000=y 572CONFIG_NETDEV_10000=y
556# CONFIG_CHELSIO_T1 is not set 573# CONFIG_CHELSIO_T1 is not set
574CONFIG_CHELSIO_T3_DEPENDS=y
557# CONFIG_CHELSIO_T3 is not set 575# CONFIG_CHELSIO_T3 is not set
558# CONFIG_ENIC is not set 576# CONFIG_ENIC is not set
559# CONFIG_IXGBE is not set 577# CONFIG_IXGBE is not set
@@ -576,6 +594,10 @@ CONFIG_NETDEV_10000=y
576# CONFIG_WLAN_PRE80211 is not set 594# CONFIG_WLAN_PRE80211 is not set
577# CONFIG_WLAN_80211 is not set 595# CONFIG_WLAN_80211 is not set
578# CONFIG_IWLWIFI_LEDS is not set 596# CONFIG_IWLWIFI_LEDS is not set
597
598#
599# Enable WiMAX (Networking options) to see the WiMAX drivers
600#
579# CONFIG_WAN is not set 601# CONFIG_WAN is not set
580# CONFIG_FDDI is not set 602# CONFIG_FDDI is not set
581# CONFIG_HIPPI is not set 603# CONFIG_HIPPI is not set
@@ -628,9 +650,12 @@ CONFIG_SERIAL_CORE=y
628CONFIG_SERIAL_CORE_CONSOLE=y 650CONFIG_SERIAL_CORE_CONSOLE=y
629# CONFIG_SERIAL_JSM is not set 651# CONFIG_SERIAL_JSM is not set
630CONFIG_SERIAL_OF_PLATFORM=y 652CONFIG_SERIAL_OF_PLATFORM=y
653# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
631CONFIG_UNIX98_PTYS=y 654CONFIG_UNIX98_PTYS=y
655# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
632CONFIG_LEGACY_PTYS=y 656CONFIG_LEGACY_PTYS=y
633CONFIG_LEGACY_PTY_COUNT=256 657CONFIG_LEGACY_PTY_COUNT=256
658# CONFIG_HVC_UDBG is not set
634# CONFIG_IPMI_HANDLER is not set 659# CONFIG_IPMI_HANDLER is not set
635# CONFIG_HW_RANDOM is not set 660# CONFIG_HW_RANDOM is not set
636# CONFIG_NVRAM is not set 661# CONFIG_NVRAM is not set
@@ -649,11 +674,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
649# CONFIG_HWMON is not set 674# CONFIG_HWMON is not set
650CONFIG_THERMAL=y 675CONFIG_THERMAL=y
651# CONFIG_WATCHDOG is not set 676# CONFIG_WATCHDOG is not set
677CONFIG_SSB_POSSIBLE=y
652 678
653# 679#
654# Sonics Silicon Backplane 680# Sonics Silicon Backplane
655# 681#
656CONFIG_SSB_POSSIBLE=y
657# CONFIG_SSB is not set 682# CONFIG_SSB is not set
658 683
659# 684#
@@ -663,7 +688,7 @@ CONFIG_SSB_POSSIBLE=y
663# CONFIG_MFD_SM501 is not set 688# CONFIG_MFD_SM501 is not set
664# CONFIG_HTC_PASIC3 is not set 689# CONFIG_HTC_PASIC3 is not set
665# CONFIG_MFD_TMIO is not set 690# CONFIG_MFD_TMIO is not set
666# CONFIG_MFD_WM8400 is not set 691# CONFIG_REGULATOR is not set
667 692
668# 693#
669# Multimedia devices 694# Multimedia devices
@@ -709,9 +734,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
709# 734#
710 735
711# 736#
712# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 737# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
713# 738#
714# CONFIG_USB_GADGET is not set 739# CONFIG_USB_GADGET is not set
740
741#
742# OTG and related infrastructure
743#
715# CONFIG_UWB is not set 744# CONFIG_UWB is not set
716# CONFIG_MMC is not set 745# CONFIG_MMC is not set
717# CONFIG_MEMSTICK is not set 746# CONFIG_MEMSTICK is not set
@@ -737,7 +766,9 @@ CONFIG_EXT2_FS=y
737# CONFIG_FS_POSIX_ACL is not set 766# CONFIG_FS_POSIX_ACL is not set
738CONFIG_FILE_LOCKING=y 767CONFIG_FILE_LOCKING=y
739# CONFIG_XFS_FS is not set 768# CONFIG_XFS_FS is not set
769# CONFIG_GFS2_FS is not set
740# CONFIG_OCFS2_FS is not set 770# CONFIG_OCFS2_FS is not set
771# CONFIG_BTRFS_FS is not set
741CONFIG_DNOTIFY=y 772CONFIG_DNOTIFY=y
742CONFIG_INOTIFY=y 773CONFIG_INOTIFY=y
743CONFIG_INOTIFY_USER=y 774CONFIG_INOTIFY_USER=y
@@ -771,10 +802,7 @@ CONFIG_TMPFS=y
771# CONFIG_TMPFS_POSIX_ACL is not set 802# CONFIG_TMPFS_POSIX_ACL is not set
772# CONFIG_HUGETLB_PAGE is not set 803# CONFIG_HUGETLB_PAGE is not set
773# CONFIG_CONFIGFS_FS is not set 804# CONFIG_CONFIGFS_FS is not set
774 805CONFIG_MISC_FILESYSTEMS=y
775#
776# Miscellaneous filesystems
777#
778# CONFIG_ADFS_FS is not set 806# CONFIG_ADFS_FS is not set
779# CONFIG_AFFS_FS is not set 807# CONFIG_AFFS_FS is not set
780# CONFIG_HFS_FS is not set 808# CONFIG_HFS_FS is not set
@@ -794,6 +822,7 @@ CONFIG_JFFS2_ZLIB=y
794CONFIG_JFFS2_RTIME=y 822CONFIG_JFFS2_RTIME=y
795# CONFIG_JFFS2_RUBIN is not set 823# CONFIG_JFFS2_RUBIN is not set
796CONFIG_CRAMFS=y 824CONFIG_CRAMFS=y
825# CONFIG_SQUASHFS is not set
797# CONFIG_VXFS_FS is not set 826# CONFIG_VXFS_FS is not set
798# CONFIG_MINIX_FS is not set 827# CONFIG_MINIX_FS is not set
799# CONFIG_OMFS_FS is not set 828# CONFIG_OMFS_FS is not set
@@ -834,6 +863,7 @@ CONFIG_MSDOS_PARTITION=y
834# Library routines 863# Library routines
835# 864#
836CONFIG_BITREVERSE=y 865CONFIG_BITREVERSE=y
866CONFIG_GENERIC_FIND_LAST_BIT=y
837# CONFIG_CRC_CCITT is not set 867# CONFIG_CRC_CCITT is not set
838# CONFIG_CRC16 is not set 868# CONFIG_CRC16 is not set
839# CONFIG_CRC_T10DIF is not set 869# CONFIG_CRC_T10DIF is not set
@@ -885,6 +915,7 @@ CONFIG_SCHED_DEBUG=y
885# CONFIG_DEBUG_MEMORY_INIT is not set 915# CONFIG_DEBUG_MEMORY_INIT is not set
886# CONFIG_DEBUG_LIST is not set 916# CONFIG_DEBUG_LIST is not set
887# CONFIG_DEBUG_SG is not set 917# CONFIG_DEBUG_SG is not set
918# CONFIG_DEBUG_NOTIFIERS is not set
888# CONFIG_BOOT_PRINTK_DELAY is not set 919# CONFIG_BOOT_PRINTK_DELAY is not set
889# CONFIG_RCU_TORTURE_TEST is not set 920# CONFIG_RCU_TORTURE_TEST is not set
890# CONFIG_RCU_CPU_STALL_DETECTOR is not set 921# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -893,18 +924,24 @@ CONFIG_SCHED_DEBUG=y
893# CONFIG_FAULT_INJECTION is not set 924# CONFIG_FAULT_INJECTION is not set
894# CONFIG_LATENCYTOP is not set 925# CONFIG_LATENCYTOP is not set
895CONFIG_SYSCTL_SYSCALL_CHECK=y 926CONFIG_SYSCTL_SYSCALL_CHECK=y
896CONFIG_NOP_TRACER=y 927CONFIG_HAVE_FUNCTION_TRACER=y
897CONFIG_HAVE_FTRACE=y
898CONFIG_HAVE_DYNAMIC_FTRACE=y 928CONFIG_HAVE_DYNAMIC_FTRACE=y
899# CONFIG_FTRACE is not set 929CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
930
931#
932# Tracers
933#
934# CONFIG_FUNCTION_TRACER is not set
900# CONFIG_SCHED_TRACER is not set 935# CONFIG_SCHED_TRACER is not set
901# CONFIG_CONTEXT_SWITCH_TRACER is not set 936# CONFIG_CONTEXT_SWITCH_TRACER is not set
902# CONFIG_BOOT_TRACER is not set 937# CONFIG_BOOT_TRACER is not set
938# CONFIG_TRACE_BRANCH_PROFILING is not set
903# CONFIG_STACK_TRACER is not set 939# CONFIG_STACK_TRACER is not set
904# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 940# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
905# CONFIG_SAMPLES is not set 941# CONFIG_SAMPLES is not set
906CONFIG_HAVE_ARCH_KGDB=y 942CONFIG_HAVE_ARCH_KGDB=y
907# CONFIG_KGDB is not set 943# CONFIG_KGDB is not set
944CONFIG_PRINT_STACK_DEPTH=64
908# CONFIG_DEBUG_STACKOVERFLOW is not set 945# CONFIG_DEBUG_STACKOVERFLOW is not set
909# CONFIG_DEBUG_STACK_USAGE is not set 946# CONFIG_DEBUG_STACK_USAGE is not set
910# CONFIG_DEBUG_PAGEALLOC is not set 947# CONFIG_DEBUG_PAGEALLOC is not set
@@ -944,11 +981,15 @@ CONFIG_CRYPTO=y
944# 981#
945# CONFIG_CRYPTO_FIPS is not set 982# CONFIG_CRYPTO_FIPS is not set
946CONFIG_CRYPTO_ALGAPI=y 983CONFIG_CRYPTO_ALGAPI=y
947CONFIG_CRYPTO_AEAD=y 984CONFIG_CRYPTO_ALGAPI2=y
985CONFIG_CRYPTO_AEAD2=y
948CONFIG_CRYPTO_BLKCIPHER=y 986CONFIG_CRYPTO_BLKCIPHER=y
987CONFIG_CRYPTO_BLKCIPHER2=y
949CONFIG_CRYPTO_HASH=y 988CONFIG_CRYPTO_HASH=y
950CONFIG_CRYPTO_RNG=y 989CONFIG_CRYPTO_HASH2=y
990CONFIG_CRYPTO_RNG2=y
951CONFIG_CRYPTO_MANAGER=y 991CONFIG_CRYPTO_MANAGER=y
992CONFIG_CRYPTO_MANAGER2=y
952# CONFIG_CRYPTO_GF128MUL is not set 993# CONFIG_CRYPTO_GF128MUL is not set
953# CONFIG_CRYPTO_NULL is not set 994# CONFIG_CRYPTO_NULL is not set
954# CONFIG_CRYPTO_CRYPTD is not set 995# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/taishan_defconfig b/arch/powerpc/configs/44x/taishan_defconfig
index 427bb6a11be5..826700872d26 100644
--- a/arch/powerpc/configs/44x/taishan_defconfig
+++ b/arch/powerpc/configs/44x/taishan_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:18 2008 4# Tue Jan 20 08:22:47 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -18,6 +18,7 @@ CONFIG_4xx=y
18CONFIG_BOOKE=y 18CONFIG_BOOKE=y
19CONFIG_PTE_64BIT=y 19CONFIG_PTE_64BIT=y
20CONFIG_PHYS_64BIT=y 20CONFIG_PHYS_64BIT=y
21CONFIG_PPC_MMU_NOHASH=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
22CONFIG_NOT_COHERENT_CACHE=y 23CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y 24CONFIG_PPC32=y
@@ -43,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 44CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
49CONFIG_OF=y 50CONFIG_OF=y
@@ -74,12 +75,12 @@ CONFIG_POSIX_MQUEUE=y
74# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
75# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
79CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
80# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -114,7 +115,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 115CONFIG_SLUB=y
115# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -125,7 +125,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
130CONFIG_MODULES=y 129CONFIG_MODULES=y
131# CONFIG_MODULE_FORCE_LOAD is not set 130# CONFIG_MODULE_FORCE_LOAD is not set
@@ -133,11 +132,9 @@ CONFIG_MODULE_UNLOAD=y
133# CONFIG_MODULE_FORCE_UNLOAD is not set 132# CONFIG_MODULE_FORCE_UNLOAD is not set
134# CONFIG_MODVERSIONS is not set 133# CONFIG_MODVERSIONS is not set
135# CONFIG_MODULE_SRCVERSION_ALL is not set 134# CONFIG_MODULE_SRCVERSION_ALL is not set
136CONFIG_KMOD=y
137CONFIG_BLOCK=y 135CONFIG_BLOCK=y
138CONFIG_LBD=y 136CONFIG_LBD=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 137# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
143 140
@@ -154,6 +151,10 @@ CONFIG_DEFAULT_AS=y
154# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
155CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
156CONFIG_CLASSIC_RCU=y 153CONFIG_CLASSIC_RCU=y
154# CONFIG_TREE_RCU is not set
155# CONFIG_PREEMPT_RCU is not set
156# CONFIG_TREE_RCU_TRACE is not set
157# CONFIG_PREEMPT_RCU_TRACE is not set
157# CONFIG_FREEZER is not set 158# CONFIG_FREEZER is not set
158# CONFIG_PPC4xx_PCI_EXPRESS is not set 159# CONFIG_PPC4xx_PCI_EXPRESS is not set
159 160
@@ -191,6 +192,7 @@ CONFIG_440GX=y
191# CONFIG_GENERIC_IOMAP is not set 192# CONFIG_GENERIC_IOMAP is not set
192# CONFIG_CPU_FREQ is not set 193# CONFIG_CPU_FREQ is not set
193# CONFIG_FSL_ULI1575 is not set 194# CONFIG_FSL_ULI1575 is not set
195# CONFIG_SIMPLE_GPIO is not set
194 196
195# 197#
196# Kernel options 198# Kernel options
@@ -214,6 +216,7 @@ CONFIG_BINFMT_ELF=y
214# CONFIG_BINFMT_MISC is not set 216# CONFIG_BINFMT_MISC is not set
215# CONFIG_MATH_EMULATION is not set 217# CONFIG_MATH_EMULATION is not set
216# CONFIG_IOMMU_HELPER is not set 218# CONFIG_IOMMU_HELPER is not set
219CONFIG_PPC_NEED_DMA_SYNC_OPS=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
218CONFIG_ARCH_HAS_WALK_MEMORY=y 221CONFIG_ARCH_HAS_WALK_MEMORY=y
219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -228,12 +231,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228CONFIG_PAGEFLAGS_EXTENDED=y 231CONFIG_PAGEFLAGS_EXTENDED=y
229CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
230CONFIG_MIGRATION=y 233CONFIG_MIGRATION=y
231CONFIG_RESOURCES_64BIT=y
232CONFIG_PHYS_ADDR_T_64BIT=y 234CONFIG_PHYS_ADDR_T_64BIT=y
233CONFIG_ZONE_DMA_FLAG=1 235CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 236CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 237CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 238CONFIG_UNEVICTABLE_LRU=y
239CONFIG_PPC_4K_PAGES=y
240# CONFIG_PPC_16K_PAGES is not set
241# CONFIG_PPC_64K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 242CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 243CONFIG_PROC_DEVICETREE=y
239CONFIG_CMDLINE_BOOL=y 244CONFIG_CMDLINE_BOOL=y
@@ -257,6 +262,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
257# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
258CONFIG_PCI_LEGACY=y 263CONFIG_PCI_LEGACY=y
259# CONFIG_PCI_DEBUG is not set 264# CONFIG_PCI_DEBUG is not set
265# CONFIG_PCI_STUB is not set
260# CONFIG_PCCARD is not set 266# CONFIG_PCCARD is not set
261# CONFIG_HOTPLUG_PCI is not set 267# CONFIG_HOTPLUG_PCI is not set
262# CONFIG_HAS_RAPIDIO is not set 268# CONFIG_HAS_RAPIDIO is not set
@@ -281,6 +287,7 @@ CONFIG_NET=y
281# 287#
282# Networking options 288# Networking options
283# 289#
290CONFIG_COMPAT_NET_DEV_OPS=y
284CONFIG_PACKET=y 291CONFIG_PACKET=y
285# CONFIG_PACKET_MMAP is not set 292# CONFIG_PACKET_MMAP is not set
286CONFIG_UNIX=y 293CONFIG_UNIX=y
@@ -331,6 +338,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_ECONET is not set 338# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set 339# CONFIG_WAN_ROUTER is not set
333# CONFIG_NET_SCHED is not set 340# CONFIG_NET_SCHED is not set
341# CONFIG_DCB is not set
334 342
335# 343#
336# Network testing 344# Network testing
@@ -343,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_AF_RXRPC is not set 351# CONFIG_AF_RXRPC is not set
344# CONFIG_PHONET is not set 352# CONFIG_PHONET is not set
345# CONFIG_WIRELESS is not set 353# CONFIG_WIRELESS is not set
354# CONFIG_WIMAX is not set
346# CONFIG_RFKILL is not set 355# CONFIG_RFKILL is not set
347# CONFIG_NET_9P is not set 356# CONFIG_NET_9P is not set
348 357
@@ -368,6 +377,7 @@ CONFIG_MTD=y
368# CONFIG_MTD_DEBUG is not set 377# CONFIG_MTD_DEBUG is not set
369# CONFIG_MTD_CONCAT is not set 378# CONFIG_MTD_CONCAT is not set
370CONFIG_MTD_PARTITIONS=y 379CONFIG_MTD_PARTITIONS=y
380# CONFIG_MTD_TESTS is not set
371# CONFIG_MTD_REDBOOT_PARTS is not set 381# CONFIG_MTD_REDBOOT_PARTS is not set
372CONFIG_MTD_CMDLINE_PARTS=y 382CONFIG_MTD_CMDLINE_PARTS=y
373# CONFIG_MTD_OF_PARTS is not set 383# CONFIG_MTD_OF_PARTS is not set
@@ -440,6 +450,12 @@ CONFIG_MTD_PHYSMAP_OF=y
440# CONFIG_MTD_ONENAND is not set 450# CONFIG_MTD_ONENAND is not set
441 451
442# 452#
453# LPDDR flash memory drivers
454#
455# CONFIG_MTD_LPDDR is not set
456# CONFIG_MTD_QINFO_PROBE is not set
457
458#
443# UBI - Unsorted block images 459# UBI - Unsorted block images
444# 460#
445# CONFIG_MTD_UBI is not set 461# CONFIG_MTD_UBI is not set
@@ -470,6 +486,7 @@ CONFIG_MISC_DEVICES=y
470# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
489# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 490CONFIG_HAVE_IDE=y
474# CONFIG_IDE is not set 491# CONFIG_IDE is not set
475 492
@@ -554,6 +571,7 @@ CONFIG_NETDEV_1000=y
554# CONFIG_JME is not set 571# CONFIG_JME is not set
555CONFIG_NETDEV_10000=y 572CONFIG_NETDEV_10000=y
556# CONFIG_CHELSIO_T1 is not set 573# CONFIG_CHELSIO_T1 is not set
574CONFIG_CHELSIO_T3_DEPENDS=y
557# CONFIG_CHELSIO_T3 is not set 575# CONFIG_CHELSIO_T3 is not set
558# CONFIG_ENIC is not set 576# CONFIG_ENIC is not set
559# CONFIG_IXGBE is not set 577# CONFIG_IXGBE is not set
@@ -576,6 +594,10 @@ CONFIG_NETDEV_10000=y
576# CONFIG_WLAN_PRE80211 is not set 594# CONFIG_WLAN_PRE80211 is not set
577# CONFIG_WLAN_80211 is not set 595# CONFIG_WLAN_80211 is not set
578# CONFIG_IWLWIFI_LEDS is not set 596# CONFIG_IWLWIFI_LEDS is not set
597
598#
599# Enable WiMAX (Networking options) to see the WiMAX drivers
600#
579# CONFIG_WAN is not set 601# CONFIG_WAN is not set
580# CONFIG_FDDI is not set 602# CONFIG_FDDI is not set
581# CONFIG_HIPPI is not set 603# CONFIG_HIPPI is not set
@@ -628,9 +650,12 @@ CONFIG_SERIAL_CORE=y
628CONFIG_SERIAL_CORE_CONSOLE=y 650CONFIG_SERIAL_CORE_CONSOLE=y
629# CONFIG_SERIAL_JSM is not set 651# CONFIG_SERIAL_JSM is not set
630CONFIG_SERIAL_OF_PLATFORM=y 652CONFIG_SERIAL_OF_PLATFORM=y
653# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
631CONFIG_UNIX98_PTYS=y 654CONFIG_UNIX98_PTYS=y
655# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
632CONFIG_LEGACY_PTYS=y 656CONFIG_LEGACY_PTYS=y
633CONFIG_LEGACY_PTY_COUNT=256 657CONFIG_LEGACY_PTY_COUNT=256
658# CONFIG_HVC_UDBG is not set
634# CONFIG_IPMI_HANDLER is not set 659# CONFIG_IPMI_HANDLER is not set
635# CONFIG_HW_RANDOM is not set 660# CONFIG_HW_RANDOM is not set
636# CONFIG_NVRAM is not set 661# CONFIG_NVRAM is not set
@@ -649,11 +674,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
649# CONFIG_HWMON is not set 674# CONFIG_HWMON is not set
650CONFIG_THERMAL=y 675CONFIG_THERMAL=y
651# CONFIG_WATCHDOG is not set 676# CONFIG_WATCHDOG is not set
677CONFIG_SSB_POSSIBLE=y
652 678
653# 679#
654# Sonics Silicon Backplane 680# Sonics Silicon Backplane
655# 681#
656CONFIG_SSB_POSSIBLE=y
657# CONFIG_SSB is not set 682# CONFIG_SSB is not set
658 683
659# 684#
@@ -663,7 +688,7 @@ CONFIG_SSB_POSSIBLE=y
663# CONFIG_MFD_SM501 is not set 688# CONFIG_MFD_SM501 is not set
664# CONFIG_HTC_PASIC3 is not set 689# CONFIG_HTC_PASIC3 is not set
665# CONFIG_MFD_TMIO is not set 690# CONFIG_MFD_TMIO is not set
666# CONFIG_MFD_WM8400 is not set 691# CONFIG_REGULATOR is not set
667 692
668# 693#
669# Multimedia devices 694# Multimedia devices
@@ -709,9 +734,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
709# 734#
710 735
711# 736#
712# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 737# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
713# 738#
714# CONFIG_USB_GADGET is not set 739# CONFIG_USB_GADGET is not set
740
741#
742# OTG and related infrastructure
743#
715# CONFIG_UWB is not set 744# CONFIG_UWB is not set
716# CONFIG_MMC is not set 745# CONFIG_MMC is not set
717# CONFIG_MEMSTICK is not set 746# CONFIG_MEMSTICK is not set
@@ -737,7 +766,9 @@ CONFIG_EXT2_FS=y
737# CONFIG_FS_POSIX_ACL is not set 766# CONFIG_FS_POSIX_ACL is not set
738CONFIG_FILE_LOCKING=y 767CONFIG_FILE_LOCKING=y
739# CONFIG_XFS_FS is not set 768# CONFIG_XFS_FS is not set
769# CONFIG_GFS2_FS is not set
740# CONFIG_OCFS2_FS is not set 770# CONFIG_OCFS2_FS is not set
771# CONFIG_BTRFS_FS is not set
741CONFIG_DNOTIFY=y 772CONFIG_DNOTIFY=y
742CONFIG_INOTIFY=y 773CONFIG_INOTIFY=y
743CONFIG_INOTIFY_USER=y 774CONFIG_INOTIFY_USER=y
@@ -771,10 +802,7 @@ CONFIG_TMPFS=y
771# CONFIG_TMPFS_POSIX_ACL is not set 802# CONFIG_TMPFS_POSIX_ACL is not set
772# CONFIG_HUGETLB_PAGE is not set 803# CONFIG_HUGETLB_PAGE is not set
773# CONFIG_CONFIGFS_FS is not set 804# CONFIG_CONFIGFS_FS is not set
774 805CONFIG_MISC_FILESYSTEMS=y
775#
776# Miscellaneous filesystems
777#
778# CONFIG_ADFS_FS is not set 806# CONFIG_ADFS_FS is not set
779# CONFIG_AFFS_FS is not set 807# CONFIG_AFFS_FS is not set
780# CONFIG_HFS_FS is not set 808# CONFIG_HFS_FS is not set
@@ -784,6 +812,7 @@ CONFIG_TMPFS=y
784# CONFIG_EFS_FS is not set 812# CONFIG_EFS_FS is not set
785# CONFIG_JFFS2_FS is not set 813# CONFIG_JFFS2_FS is not set
786CONFIG_CRAMFS=y 814CONFIG_CRAMFS=y
815# CONFIG_SQUASHFS is not set
787# CONFIG_VXFS_FS is not set 816# CONFIG_VXFS_FS is not set
788# CONFIG_MINIX_FS is not set 817# CONFIG_MINIX_FS is not set
789# CONFIG_OMFS_FS is not set 818# CONFIG_OMFS_FS is not set
@@ -824,6 +853,7 @@ CONFIG_MSDOS_PARTITION=y
824# Library routines 853# Library routines
825# 854#
826CONFIG_BITREVERSE=y 855CONFIG_BITREVERSE=y
856CONFIG_GENERIC_FIND_LAST_BIT=y
827# CONFIG_CRC_CCITT is not set 857# CONFIG_CRC_CCITT is not set
828# CONFIG_CRC16 is not set 858# CONFIG_CRC16 is not set
829# CONFIG_CRC_T10DIF is not set 859# CONFIG_CRC_T10DIF is not set
@@ -874,6 +904,7 @@ CONFIG_SCHED_DEBUG=y
874# CONFIG_DEBUG_MEMORY_INIT is not set 904# CONFIG_DEBUG_MEMORY_INIT is not set
875# CONFIG_DEBUG_LIST is not set 905# CONFIG_DEBUG_LIST is not set
876# CONFIG_DEBUG_SG is not set 906# CONFIG_DEBUG_SG is not set
907# CONFIG_DEBUG_NOTIFIERS is not set
877# CONFIG_BOOT_PRINTK_DELAY is not set 908# CONFIG_BOOT_PRINTK_DELAY is not set
878# CONFIG_RCU_TORTURE_TEST is not set 909# CONFIG_RCU_TORTURE_TEST is not set
879# CONFIG_RCU_CPU_STALL_DETECTOR is not set 910# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -882,18 +913,24 @@ CONFIG_SCHED_DEBUG=y
882# CONFIG_FAULT_INJECTION is not set 913# CONFIG_FAULT_INJECTION is not set
883# CONFIG_LATENCYTOP is not set 914# CONFIG_LATENCYTOP is not set
884CONFIG_SYSCTL_SYSCALL_CHECK=y 915CONFIG_SYSCTL_SYSCALL_CHECK=y
885CONFIG_NOP_TRACER=y 916CONFIG_HAVE_FUNCTION_TRACER=y
886CONFIG_HAVE_FTRACE=y
887CONFIG_HAVE_DYNAMIC_FTRACE=y 917CONFIG_HAVE_DYNAMIC_FTRACE=y
888# CONFIG_FTRACE is not set 918CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
919
920#
921# Tracers
922#
923# CONFIG_FUNCTION_TRACER is not set
889# CONFIG_SCHED_TRACER is not set 924# CONFIG_SCHED_TRACER is not set
890# CONFIG_CONTEXT_SWITCH_TRACER is not set 925# CONFIG_CONTEXT_SWITCH_TRACER is not set
891# CONFIG_BOOT_TRACER is not set 926# CONFIG_BOOT_TRACER is not set
927# CONFIG_TRACE_BRANCH_PROFILING is not set
892# CONFIG_STACK_TRACER is not set 928# CONFIG_STACK_TRACER is not set
893# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 929# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
894# CONFIG_SAMPLES is not set 930# CONFIG_SAMPLES is not set
895CONFIG_HAVE_ARCH_KGDB=y 931CONFIG_HAVE_ARCH_KGDB=y
896# CONFIG_KGDB is not set 932# CONFIG_KGDB is not set
933CONFIG_PRINT_STACK_DEPTH=64
897# CONFIG_DEBUG_STACKOVERFLOW is not set 934# CONFIG_DEBUG_STACKOVERFLOW is not set
898# CONFIG_DEBUG_STACK_USAGE is not set 935# CONFIG_DEBUG_STACK_USAGE is not set
899# CONFIG_DEBUG_PAGEALLOC is not set 936# CONFIG_DEBUG_PAGEALLOC is not set
@@ -920,11 +957,15 @@ CONFIG_CRYPTO=y
920# 957#
921# CONFIG_CRYPTO_FIPS is not set 958# CONFIG_CRYPTO_FIPS is not set
922CONFIG_CRYPTO_ALGAPI=y 959CONFIG_CRYPTO_ALGAPI=y
923CONFIG_CRYPTO_AEAD=y 960CONFIG_CRYPTO_ALGAPI2=y
961CONFIG_CRYPTO_AEAD2=y
924CONFIG_CRYPTO_BLKCIPHER=y 962CONFIG_CRYPTO_BLKCIPHER=y
963CONFIG_CRYPTO_BLKCIPHER2=y
925CONFIG_CRYPTO_HASH=y 964CONFIG_CRYPTO_HASH=y
926CONFIG_CRYPTO_RNG=y 965CONFIG_CRYPTO_HASH2=y
966CONFIG_CRYPTO_RNG2=y
927CONFIG_CRYPTO_MANAGER=y 967CONFIG_CRYPTO_MANAGER=y
968CONFIG_CRYPTO_MANAGER2=y
928# CONFIG_CRYPTO_GF128MUL is not set 969# CONFIG_CRYPTO_GF128MUL is not set
929# CONFIG_CRYPTO_NULL is not set 970# CONFIG_CRYPTO_NULL is not set
930# CONFIG_CRYPTO_CRYPTD is not set 971# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/virtex5_defconfig b/arch/powerpc/configs/44x/virtex5_defconfig
index 7513d360e0b0..15aab1ca6384 100644
--- a/arch/powerpc/configs/44x/virtex5_defconfig
+++ b/arch/powerpc/configs/44x/virtex5_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Fri Nov 14 10:31:16 2008 4# Tue Jan 20 08:22:49 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -18,6 +18,7 @@ CONFIG_4xx=y
18CONFIG_BOOKE=y 18CONFIG_BOOKE=y
19CONFIG_PTE_64BIT=y 19CONFIG_PTE_64BIT=y
20CONFIG_PHYS_64BIT=y 20CONFIG_PHYS_64BIT=y
21CONFIG_PPC_MMU_NOHASH=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
22CONFIG_NOT_COHERENT_CACHE=y 23CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y 24CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_GPIO=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -77,8 +78,8 @@ CONFIG_POSIX_MQUEUE=y
77CONFIG_IKCONFIG=y 78CONFIG_IKCONFIG=y
78CONFIG_IKCONFIG_PROC=y 79CONFIG_IKCONFIG_PROC=y
79CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
80# CONFIG_CGROUPS is not set
81# CONFIG_GROUP_SCHED is not set 81# CONFIG_GROUP_SCHED is not set
82# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 83CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 84CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 85# CONFIG_RELAY is not set
@@ -116,7 +117,6 @@ CONFIG_SLAB=y
116# CONFIG_SLUB is not set 117# CONFIG_SLUB is not set
117# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 119# CONFIG_PROFILING is not set
119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -127,7 +127,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
130# CONFIG_TINY_SHMEM is not set
131CONFIG_BASE_SMALL=0 130CONFIG_BASE_SMALL=0
132CONFIG_MODULES=y 131CONFIG_MODULES=y
133# CONFIG_MODULE_FORCE_LOAD is not set 132# CONFIG_MODULE_FORCE_LOAD is not set
@@ -135,11 +134,9 @@ CONFIG_MODULE_UNLOAD=y
135CONFIG_MODULE_FORCE_UNLOAD=y 134CONFIG_MODULE_FORCE_UNLOAD=y
136CONFIG_MODVERSIONS=y 135CONFIG_MODVERSIONS=y
137# CONFIG_MODULE_SRCVERSION_ALL is not set 136# CONFIG_MODULE_SRCVERSION_ALL is not set
138CONFIG_KMOD=y
139CONFIG_BLOCK=y 137CONFIG_BLOCK=y
140# CONFIG_LBD is not set 138# CONFIG_LBD is not set
141# CONFIG_BLK_DEV_IO_TRACE is not set 139# CONFIG_BLK_DEV_IO_TRACE is not set
142# CONFIG_LSF is not set
143# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
144# CONFIG_BLK_DEV_INTEGRITY is not set 141# CONFIG_BLK_DEV_INTEGRITY is not set
145 142
@@ -156,6 +153,10 @@ CONFIG_DEFAULT_CFQ=y
156# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
157CONFIG_DEFAULT_IOSCHED="cfq" 154CONFIG_DEFAULT_IOSCHED="cfq"
158CONFIG_CLASSIC_RCU=y 155CONFIG_CLASSIC_RCU=y
156# CONFIG_TREE_RCU is not set
157# CONFIG_PREEMPT_RCU is not set
158# CONFIG_TREE_RCU_TRACE is not set
159# CONFIG_PREEMPT_RCU_TRACE is not set
159# CONFIG_FREEZER is not set 160# CONFIG_FREEZER is not set
160# CONFIG_PPC4xx_PCI_EXPRESS is not set 161# CONFIG_PPC4xx_PCI_EXPRESS is not set
161 162
@@ -194,6 +195,7 @@ CONFIG_XILINX_VIRTEX_5_FXT=y
194# CONFIG_GENERIC_IOMAP is not set 195# CONFIG_GENERIC_IOMAP is not set
195# CONFIG_CPU_FREQ is not set 196# CONFIG_CPU_FREQ is not set
196# CONFIG_FSL_ULI1575 is not set 197# CONFIG_FSL_ULI1575 is not set
198# CONFIG_SIMPLE_GPIO is not set
197 199
198# 200#
199# Kernel options 201# Kernel options
@@ -211,13 +213,13 @@ CONFIG_HZ=250
211# CONFIG_PREEMPT_NONE is not set 213# CONFIG_PREEMPT_NONE is not set
212# CONFIG_PREEMPT_VOLUNTARY is not set 214# CONFIG_PREEMPT_VOLUNTARY is not set
213CONFIG_PREEMPT=y 215CONFIG_PREEMPT=y
214# CONFIG_PREEMPT_RCU is not set
215CONFIG_BINFMT_ELF=y 216CONFIG_BINFMT_ELF=y
216# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 217# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
217# CONFIG_HAVE_AOUT is not set 218# CONFIG_HAVE_AOUT is not set
218# CONFIG_BINFMT_MISC is not set 219# CONFIG_BINFMT_MISC is not set
219CONFIG_MATH_EMULATION=y 220CONFIG_MATH_EMULATION=y
220# CONFIG_IOMMU_HELPER is not set 221# CONFIG_IOMMU_HELPER is not set
222CONFIG_PPC_NEED_DMA_SYNC_OPS=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 223CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
222CONFIG_ARCH_HAS_WALK_MEMORY=y 224CONFIG_ARCH_HAS_WALK_MEMORY=y
223CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -232,12 +234,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
232CONFIG_PAGEFLAGS_EXTENDED=y 234CONFIG_PAGEFLAGS_EXTENDED=y
233CONFIG_SPLIT_PTLOCK_CPUS=4 235CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y 236CONFIG_MIGRATION=y
235CONFIG_RESOURCES_64BIT=y
236CONFIG_PHYS_ADDR_T_64BIT=y 237CONFIG_PHYS_ADDR_T_64BIT=y
237CONFIG_ZONE_DMA_FLAG=1 238CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=y 240CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y 241CONFIG_UNEVICTABLE_LRU=y
242CONFIG_PPC_4K_PAGES=y
243# CONFIG_PPC_16K_PAGES is not set
244# CONFIG_PPC_64K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
242CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
243CONFIG_CMDLINE_BOOL=y 247CONFIG_CMDLINE_BOOL=y
@@ -261,6 +265,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
261# CONFIG_PCI_MSI is not set 265# CONFIG_PCI_MSI is not set
262CONFIG_PCI_LEGACY=y 266CONFIG_PCI_LEGACY=y
263# CONFIG_PCI_DEBUG is not set 267# CONFIG_PCI_DEBUG is not set
268# CONFIG_PCI_STUB is not set
264# CONFIG_PCCARD is not set 269# CONFIG_PCCARD is not set
265# CONFIG_HOTPLUG_PCI is not set 270# CONFIG_HOTPLUG_PCI is not set
266# CONFIG_HAS_RAPIDIO is not set 271# CONFIG_HAS_RAPIDIO is not set
@@ -285,6 +290,8 @@ CONFIG_NET=y
285# 290#
286# Networking options 291# Networking options
287# 292#
293# CONFIG_NET_NS is not set
294CONFIG_COMPAT_NET_DEV_OPS=y
288CONFIG_PACKET=y 295CONFIG_PACKET=y
289# CONFIG_PACKET_MMAP is not set 296# CONFIG_PACKET_MMAP is not set
290CONFIG_UNIX=y 297CONFIG_UNIX=y
@@ -428,6 +435,7 @@ CONFIG_IP_NF_MANGLE=m
428# CONFIG_ECONET is not set 435# CONFIG_ECONET is not set
429# CONFIG_WAN_ROUTER is not set 436# CONFIG_WAN_ROUTER is not set
430# CONFIG_NET_SCHED is not set 437# CONFIG_NET_SCHED is not set
438# CONFIG_DCB is not set
431 439
432# 440#
433# Network testing 441# Network testing
@@ -443,8 +451,9 @@ CONFIG_WIRELESS=y
443# CONFIG_CFG80211 is not set 451# CONFIG_CFG80211 is not set
444CONFIG_WIRELESS_OLD_REGULATORY=y 452CONFIG_WIRELESS_OLD_REGULATORY=y
445# CONFIG_WIRELESS_EXT is not set 453# CONFIG_WIRELESS_EXT is not set
454# CONFIG_LIB80211 is not set
446# CONFIG_MAC80211 is not set 455# CONFIG_MAC80211 is not set
447# CONFIG_IEEE80211 is not set 456# CONFIG_WIMAX is not set
448# CONFIG_RFKILL is not set 457# CONFIG_RFKILL is not set
449# CONFIG_NET_9P is not set 458# CONFIG_NET_9P is not set
450 459
@@ -579,6 +588,10 @@ CONFIG_NETDEV_1000=y
579# CONFIG_WLAN_PRE80211 is not set 588# CONFIG_WLAN_PRE80211 is not set
580# CONFIG_WLAN_80211 is not set 589# CONFIG_WLAN_80211 is not set
581# CONFIG_IWLWIFI_LEDS is not set 590# CONFIG_IWLWIFI_LEDS is not set
591
592#
593# Enable WiMAX (Networking options) to see the WiMAX drivers
594#
582# CONFIG_WAN is not set 595# CONFIG_WAN is not set
583# CONFIG_FDDI is not set 596# CONFIG_FDDI is not set
584# CONFIG_HIPPI is not set 597# CONFIG_HIPPI is not set
@@ -679,9 +692,12 @@ CONFIG_SERIAL_CORE=y
679CONFIG_SERIAL_CORE_CONSOLE=y 692CONFIG_SERIAL_CORE_CONSOLE=y
680# CONFIG_SERIAL_JSM is not set 693# CONFIG_SERIAL_JSM is not set
681# CONFIG_SERIAL_OF_PLATFORM is not set 694# CONFIG_SERIAL_OF_PLATFORM is not set
695# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
682CONFIG_UNIX98_PTYS=y 696CONFIG_UNIX98_PTYS=y
697# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
683CONFIG_LEGACY_PTYS=y 698CONFIG_LEGACY_PTYS=y
684CONFIG_LEGACY_PTY_COUNT=256 699CONFIG_LEGACY_PTY_COUNT=256
700# CONFIG_HVC_UDBG is not set
685# CONFIG_IPMI_HANDLER is not set 701# CONFIG_IPMI_HANDLER is not set
686CONFIG_HW_RANDOM=m 702CONFIG_HW_RANDOM=m
687# CONFIG_NVRAM is not set 703# CONFIG_NVRAM is not set
@@ -859,7 +875,6 @@ CONFIG_LOGO_LINUX_CLUT224=y
859# CONFIG_DMADEVICES is not set 875# CONFIG_DMADEVICES is not set
860# CONFIG_UIO is not set 876# CONFIG_UIO is not set
861# CONFIG_STAGING is not set 877# CONFIG_STAGING is not set
862CONFIG_STAGING_EXCLUDE_BUILD=y
863 878
864# 879#
865# File systems 880# File systems
@@ -875,6 +890,7 @@ CONFIG_EXT2_FS=y
875CONFIG_FILE_LOCKING=y 890CONFIG_FILE_LOCKING=y
876# CONFIG_XFS_FS is not set 891# CONFIG_XFS_FS is not set
877# CONFIG_OCFS2_FS is not set 892# CONFIG_OCFS2_FS is not set
893# CONFIG_BTRFS_FS is not set
878CONFIG_DNOTIFY=y 894CONFIG_DNOTIFY=y
879CONFIG_INOTIFY=y 895CONFIG_INOTIFY=y
880CONFIG_INOTIFY_USER=y 896CONFIG_INOTIFY_USER=y
@@ -911,10 +927,7 @@ CONFIG_TMPFS=y
911# CONFIG_TMPFS_POSIX_ACL is not set 927# CONFIG_TMPFS_POSIX_ACL is not set
912# CONFIG_HUGETLB_PAGE is not set 928# CONFIG_HUGETLB_PAGE is not set
913# CONFIG_CONFIGFS_FS is not set 929# CONFIG_CONFIGFS_FS is not set
914 930CONFIG_MISC_FILESYSTEMS=y
915#
916# Miscellaneous filesystems
917#
918# CONFIG_ADFS_FS is not set 931# CONFIG_ADFS_FS is not set
919# CONFIG_AFFS_FS is not set 932# CONFIG_AFFS_FS is not set
920# CONFIG_HFS_FS is not set 933# CONFIG_HFS_FS is not set
@@ -923,6 +936,7 @@ CONFIG_TMPFS=y
923# CONFIG_BFS_FS is not set 936# CONFIG_BFS_FS is not set
924# CONFIG_EFS_FS is not set 937# CONFIG_EFS_FS is not set
925CONFIG_CRAMFS=y 938CONFIG_CRAMFS=y
939# CONFIG_SQUASHFS is not set
926# CONFIG_VXFS_FS is not set 940# CONFIG_VXFS_FS is not set
927# CONFIG_MINIX_FS is not set 941# CONFIG_MINIX_FS is not set
928# CONFIG_OMFS_FS is not set 942# CONFIG_OMFS_FS is not set
@@ -1002,6 +1016,7 @@ CONFIG_NLS_UTF8=m
1002# Library routines 1016# Library routines
1003# 1017#
1004CONFIG_BITREVERSE=y 1018CONFIG_BITREVERSE=y
1019CONFIG_GENERIC_FIND_LAST_BIT=y
1005CONFIG_CRC_CCITT=y 1020CONFIG_CRC_CCITT=y
1006# CONFIG_CRC16 is not set 1021# CONFIG_CRC16 is not set
1007# CONFIG_CRC_T10DIF is not set 1022# CONFIG_CRC_T10DIF is not set
@@ -1051,6 +1066,7 @@ CONFIG_DEBUG_INFO=y
1051CONFIG_DEBUG_MEMORY_INIT=y 1066CONFIG_DEBUG_MEMORY_INIT=y
1052# CONFIG_DEBUG_LIST is not set 1067# CONFIG_DEBUG_LIST is not set
1053# CONFIG_DEBUG_SG is not set 1068# CONFIG_DEBUG_SG is not set
1069# CONFIG_DEBUG_NOTIFIERS is not set
1054# CONFIG_BOOT_PRINTK_DELAY is not set 1070# CONFIG_BOOT_PRINTK_DELAY is not set
1055# CONFIG_RCU_TORTURE_TEST is not set 1071# CONFIG_RCU_TORTURE_TEST is not set
1056# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1072# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1060,6 +1076,8 @@ CONFIG_DEBUG_MEMORY_INIT=y
1060# CONFIG_LATENCYTOP is not set 1076# CONFIG_LATENCYTOP is not set
1061CONFIG_SYSCTL_SYSCALL_CHECK=y 1077CONFIG_SYSCTL_SYSCALL_CHECK=y
1062CONFIG_HAVE_FUNCTION_TRACER=y 1078CONFIG_HAVE_FUNCTION_TRACER=y
1079CONFIG_HAVE_DYNAMIC_FTRACE=y
1080CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1063 1081
1064# 1082#
1065# Tracers 1083# Tracers
@@ -1069,11 +1087,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1069# CONFIG_SCHED_TRACER is not set 1087# CONFIG_SCHED_TRACER is not set
1070# CONFIG_CONTEXT_SWITCH_TRACER is not set 1088# CONFIG_CONTEXT_SWITCH_TRACER is not set
1071# CONFIG_BOOT_TRACER is not set 1089# CONFIG_BOOT_TRACER is not set
1090# CONFIG_TRACE_BRANCH_PROFILING is not set
1072# CONFIG_STACK_TRACER is not set 1091# CONFIG_STACK_TRACER is not set
1073# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1092# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1074# CONFIG_SAMPLES is not set 1093# CONFIG_SAMPLES is not set
1075CONFIG_HAVE_ARCH_KGDB=y 1094CONFIG_HAVE_ARCH_KGDB=y
1076# CONFIG_KGDB is not set 1095# CONFIG_KGDB is not set
1096CONFIG_PRINT_STACK_DEPTH=64
1077# CONFIG_DEBUG_STACKOVERFLOW is not set 1097# CONFIG_DEBUG_STACKOVERFLOW is not set
1078# CONFIG_DEBUG_STACK_USAGE is not set 1098# CONFIG_DEBUG_STACK_USAGE is not set
1079# CONFIG_DEBUG_PAGEALLOC is not set 1099# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1099,6 +1119,7 @@ CONFIG_CRYPTO=y
1099# 1119#
1100# CONFIG_CRYPTO_FIPS is not set 1120# CONFIG_CRYPTO_FIPS is not set
1101# CONFIG_CRYPTO_MANAGER is not set 1121# CONFIG_CRYPTO_MANAGER is not set
1122# CONFIG_CRYPTO_MANAGER2 is not set
1102# CONFIG_CRYPTO_GF128MUL is not set 1123# CONFIG_CRYPTO_GF128MUL is not set
1103# CONFIG_CRYPTO_NULL is not set 1124# CONFIG_CRYPTO_NULL is not set
1104# CONFIG_CRYPTO_CRYPTD is not set 1125# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/warp_defconfig b/arch/powerpc/configs/44x/warp_defconfig
index 59cbd2761ed7..3b77f092abe1 100644
--- a/arch/powerpc/configs/44x/warp_defconfig
+++ b/arch/powerpc/configs/44x/warp_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:22 2008 4# Fri Jan 23 07:57:16 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -75,12 +76,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 79CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 80CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 81# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 82CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
84# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 85CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 86CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 87# CONFIG_RELAY is not set
@@ -113,7 +114,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 114# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 115# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set 118# CONFIG_KPROBES is not set
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -124,7 +124,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 128CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 129# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +131,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 131# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 132# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 133# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 134CONFIG_BLOCK=y
137# CONFIG_LBD is not set 135# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
142 139
@@ -153,6 +150,10 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
155CONFIG_CLASSIC_RCU=y 152CONFIG_CLASSIC_RCU=y
153# CONFIG_TREE_RCU is not set
154# CONFIG_PREEMPT_RCU is not set
155# CONFIG_TREE_RCU_TRACE is not set
156# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
157 158
158# 159#
@@ -190,6 +191,7 @@ CONFIG_IBM440EP_ERR42=y
190# CONFIG_GENERIC_IOMAP is not set 191# CONFIG_GENERIC_IOMAP is not set
191# CONFIG_CPU_FREQ is not set 192# CONFIG_CPU_FREQ is not set
192# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
194# CONFIG_SIMPLE_GPIO is not set
193 195
194# 196#
195# Kernel options 197# Kernel options
@@ -213,6 +215,7 @@ CONFIG_BINFMT_ELF=y
213# CONFIG_BINFMT_MISC is not set 215# CONFIG_BINFMT_MISC is not set
214# CONFIG_MATH_EMULATION is not set 216# CONFIG_MATH_EMULATION is not set
215# CONFIG_IOMMU_HELPER is not set 217# CONFIG_IOMMU_HELPER is not set
218CONFIG_PPC_NEED_DMA_SYNC_OPS=y
216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
217CONFIG_ARCH_HAS_WALK_MEMORY=y 220CONFIG_ARCH_HAS_WALK_MEMORY=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -227,12 +230,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
227CONFIG_PAGEFLAGS_EXTENDED=y 230CONFIG_PAGEFLAGS_EXTENDED=y
228CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
229CONFIG_MIGRATION=y 232CONFIG_MIGRATION=y
230CONFIG_RESOURCES_64BIT=y
231CONFIG_PHYS_ADDR_T_64BIT=y 233CONFIG_PHYS_ADDR_T_64BIT=y
232CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set
236CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
237CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
238CONFIG_CMDLINE_BOOL=y 243CONFIG_CMDLINE_BOOL=y
@@ -273,6 +278,7 @@ CONFIG_NET=y
273# 278#
274# Networking options 279# Networking options
275# 280#
281CONFIG_COMPAT_NET_DEV_OPS=y
276CONFIG_PACKET=y 282CONFIG_PACKET=y
277# CONFIG_PACKET_MMAP is not set 283# CONFIG_PACKET_MMAP is not set
278CONFIG_UNIX=y 284CONFIG_UNIX=y
@@ -348,6 +354,7 @@ CONFIG_VLAN_8021Q=y
348# CONFIG_ECONET is not set 354# CONFIG_ECONET is not set
349# CONFIG_WAN_ROUTER is not set 355# CONFIG_WAN_ROUTER is not set
350# CONFIG_NET_SCHED is not set 356# CONFIG_NET_SCHED is not set
357# CONFIG_DCB is not set
351 358
352# 359#
353# Network testing 360# Network testing
@@ -360,6 +367,7 @@ CONFIG_VLAN_8021Q=y
360# CONFIG_AF_RXRPC is not set 367# CONFIG_AF_RXRPC is not set
361# CONFIG_PHONET is not set 368# CONFIG_PHONET is not set
362# CONFIG_WIRELESS is not set 369# CONFIG_WIRELESS is not set
370# CONFIG_WIMAX is not set
363# CONFIG_RFKILL is not set 371# CONFIG_RFKILL is not set
364# CONFIG_NET_9P is not set 372# CONFIG_NET_9P is not set
365 373
@@ -380,8 +388,9 @@ CONFIG_MTD=y
380# CONFIG_MTD_DEBUG is not set 388# CONFIG_MTD_DEBUG is not set
381# CONFIG_MTD_CONCAT is not set 389# CONFIG_MTD_CONCAT is not set
382CONFIG_MTD_PARTITIONS=y 390CONFIG_MTD_PARTITIONS=y
391# CONFIG_MTD_TESTS is not set
383# CONFIG_MTD_REDBOOT_PARTS is not set 392# CONFIG_MTD_REDBOOT_PARTS is not set
384# CONFIG_MTD_CMDLINE_PARTS is not set 393CONFIG_MTD_CMDLINE_PARTS=y
385CONFIG_MTD_OF_PARTS=y 394CONFIG_MTD_OF_PARTS=y
386# CONFIG_MTD_AR7_PARTS is not set 395# CONFIG_MTD_AR7_PARTS is not set
387 396
@@ -396,7 +405,7 @@ CONFIG_MTD_BLOCK=y
396# CONFIG_INFTL is not set 405# CONFIG_INFTL is not set
397# CONFIG_RFD_FTL is not set 406# CONFIG_RFD_FTL is not set
398# CONFIG_SSFDC is not set 407# CONFIG_SSFDC is not set
399CONFIG_MTD_OOPS=m 408# CONFIG_MTD_OOPS is not set
400 409
401# 410#
402# RAM/ROM/Flash chip drivers 411# RAM/ROM/Flash chip drivers
@@ -450,6 +459,7 @@ CONFIG_MTD_NAND=y
450CONFIG_MTD_NAND_ECC_SMC=y 459CONFIG_MTD_NAND_ECC_SMC=y
451# CONFIG_MTD_NAND_MUSEUM_IDS is not set 460# CONFIG_MTD_NAND_MUSEUM_IDS is not set
452CONFIG_MTD_NAND_IDS=y 461CONFIG_MTD_NAND_IDS=y
462CONFIG_MTD_NAND_NDFC=y
453# CONFIG_MTD_NAND_DISKONCHIP is not set 463# CONFIG_MTD_NAND_DISKONCHIP is not set
454# CONFIG_MTD_NAND_NANDSIM is not set 464# CONFIG_MTD_NAND_NANDSIM is not set
455# CONFIG_MTD_NAND_PLATFORM is not set 465# CONFIG_MTD_NAND_PLATFORM is not set
@@ -458,6 +468,12 @@ CONFIG_MTD_NAND_IDS=y
458# CONFIG_MTD_ONENAND is not set 468# CONFIG_MTD_ONENAND is not set
459 469
460# 470#
471# LPDDR flash memory drivers
472#
473# CONFIG_MTD_LPDDR is not set
474# CONFIG_MTD_QINFO_PROBE is not set
475
476#
461# UBI - Unsorted block images 477# UBI - Unsorted block images
462# 478#
463# CONFIG_MTD_UBI is not set 479# CONFIG_MTD_UBI is not set
@@ -480,7 +496,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
480# CONFIG_BLK_DEV_HD is not set 496# CONFIG_BLK_DEV_HD is not set
481CONFIG_MISC_DEVICES=y 497CONFIG_MISC_DEVICES=y
482# CONFIG_EEPROM_93CX6 is not set 498# CONFIG_EEPROM_93CX6 is not set
499# CONFIG_ICS932S401 is not set
483# CONFIG_ENCLOSURE_SERVICES is not set 500# CONFIG_ENCLOSURE_SERVICES is not set
501# CONFIG_C2PORT is not set
484CONFIG_HAVE_IDE=y 502CONFIG_HAVE_IDE=y
485# CONFIG_IDE is not set 503# CONFIG_IDE is not set
486 504
@@ -562,6 +580,10 @@ CONFIG_IBM_NEW_EMAC_ZMII=y
562# CONFIG_IWLWIFI_LEDS is not set 580# CONFIG_IWLWIFI_LEDS is not set
563 581
564# 582#
583# Enable WiMAX (Networking options) to see the WiMAX drivers
584#
585
586#
565# USB Network Adapters 587# USB Network Adapters
566# 588#
567# CONFIG_USB_CATC is not set 589# CONFIG_USB_CATC is not set
@@ -616,9 +638,12 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
616CONFIG_SERIAL_CORE=y 638CONFIG_SERIAL_CORE=y
617CONFIG_SERIAL_CORE_CONSOLE=y 639CONFIG_SERIAL_CORE_CONSOLE=y
618# CONFIG_SERIAL_OF_PLATFORM is not set 640# CONFIG_SERIAL_OF_PLATFORM is not set
641# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
619CONFIG_UNIX98_PTYS=y 642CONFIG_UNIX98_PTYS=y
643# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
620CONFIG_LEGACY_PTYS=y 644CONFIG_LEGACY_PTYS=y
621CONFIG_LEGACY_PTY_COUNT=256 645CONFIG_LEGACY_PTY_COUNT=256
646# CONFIG_HVC_UDBG is not set
622# CONFIG_IPMI_HANDLER is not set 647# CONFIG_IPMI_HANDLER is not set
623CONFIG_HW_RANDOM=y 648CONFIG_HW_RANDOM=y
624# CONFIG_NVRAM is not set 649# CONFIG_NVRAM is not set
@@ -638,7 +663,7 @@ CONFIG_I2C_HELPER_AUTO=y
638# 663#
639# I2C system bus drivers (mostly embedded / system-on-chip) 664# I2C system bus drivers (mostly embedded / system-on-chip)
640# 665#
641# CONFIG_I2C_IBM_IIC is not set 666CONFIG_I2C_IBM_IIC=y
642# CONFIG_I2C_MPC is not set 667# CONFIG_I2C_MPC is not set
643# CONFIG_I2C_OCORES is not set 668# CONFIG_I2C_OCORES is not set
644# CONFIG_I2C_SIMTEC is not set 669# CONFIG_I2C_SIMTEC is not set
@@ -660,8 +685,8 @@ CONFIG_I2C_HELPER_AUTO=y
660# Miscellaneous I2C Chip support 685# Miscellaneous I2C Chip support
661# 686#
662# CONFIG_DS1682 is not set 687# CONFIG_DS1682 is not set
663# CONFIG_AT24 is not set 688CONFIG_EEPROM_AT24=y
664CONFIG_SENSORS_EEPROM=y 689CONFIG_EEPROM_LEGACY=y
665# CONFIG_SENSORS_PCF8574 is not set 690# CONFIG_SENSORS_PCF8574 is not set
666# CONFIG_PCF8575 is not set 691# CONFIG_PCF8575 is not set
667# CONFIG_SENSORS_PCA9539 is not set 692# CONFIG_SENSORS_PCA9539 is not set
@@ -679,7 +704,7 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
679# CONFIG_POWER_SUPPLY is not set 704# CONFIG_POWER_SUPPLY is not set
680CONFIG_HWMON=y 705CONFIG_HWMON=y
681# CONFIG_HWMON_VID is not set 706# CONFIG_HWMON_VID is not set
682# CONFIG_SENSORS_AD7414 is not set 707CONFIG_SENSORS_AD7414=y
683# CONFIG_SENSORS_AD7418 is not set 708# CONFIG_SENSORS_AD7418 is not set
684# CONFIG_SENSORS_ADM1021 is not set 709# CONFIG_SENSORS_ADM1021 is not set
685# CONFIG_SENSORS_ADM1025 is not set 710# CONFIG_SENSORS_ADM1025 is not set
@@ -687,8 +712,10 @@ CONFIG_HWMON=y
687# CONFIG_SENSORS_ADM1029 is not set 712# CONFIG_SENSORS_ADM1029 is not set
688# CONFIG_SENSORS_ADM1031 is not set 713# CONFIG_SENSORS_ADM1031 is not set
689# CONFIG_SENSORS_ADM9240 is not set 714# CONFIG_SENSORS_ADM9240 is not set
715# CONFIG_SENSORS_ADT7462 is not set
690# CONFIG_SENSORS_ADT7470 is not set 716# CONFIG_SENSORS_ADT7470 is not set
691# CONFIG_SENSORS_ADT7473 is not set 717# CONFIG_SENSORS_ADT7473 is not set
718# CONFIG_SENSORS_ADT7475 is not set
692# CONFIG_SENSORS_ATXP1 is not set 719# CONFIG_SENSORS_ATXP1 is not set
693# CONFIG_SENSORS_DS1621 is not set 720# CONFIG_SENSORS_DS1621 is not set
694# CONFIG_SENSORS_F71805F is not set 721# CONFIG_SENSORS_F71805F is not set
@@ -708,6 +735,7 @@ CONFIG_HWMON=y
708# CONFIG_SENSORS_LM90 is not set 735# CONFIG_SENSORS_LM90 is not set
709# CONFIG_SENSORS_LM92 is not set 736# CONFIG_SENSORS_LM92 is not set
710# CONFIG_SENSORS_LM93 is not set 737# CONFIG_SENSORS_LM93 is not set
738# CONFIG_SENSORS_LTC4245 is not set
711# CONFIG_SENSORS_MAX1619 is not set 739# CONFIG_SENSORS_MAX1619 is not set
712# CONFIG_SENSORS_MAX6650 is not set 740# CONFIG_SENSORS_MAX6650 is not set
713# CONFIG_SENSORS_PC87360 is not set 741# CONFIG_SENSORS_PC87360 is not set
@@ -729,13 +757,26 @@ CONFIG_HWMON=y
729# CONFIG_SENSORS_W83627EHF is not set 757# CONFIG_SENSORS_W83627EHF is not set
730# CONFIG_HWMON_DEBUG_CHIP is not set 758# CONFIG_HWMON_DEBUG_CHIP is not set
731CONFIG_THERMAL=y 759CONFIG_THERMAL=y
732# CONFIG_THERMAL_HWMON is not set 760CONFIG_THERMAL_HWMON=y
733# CONFIG_WATCHDOG is not set 761CONFIG_WATCHDOG=y
762# CONFIG_WATCHDOG_NOWAYOUT is not set
734 763
735# 764#
736# Sonics Silicon Backplane 765# Watchdog Device Drivers
766#
767# CONFIG_SOFT_WATCHDOG is not set
768CONFIG_PIKA_WDT=y
769# CONFIG_BOOKE_WDT is not set
770
771#
772# USB-based Watchdog Cards
737# 773#
774# CONFIG_USBPCWATCHDOG is not set
738CONFIG_SSB_POSSIBLE=y 775CONFIG_SSB_POSSIBLE=y
776
777#
778# Sonics Silicon Backplane
779#
739# CONFIG_SSB is not set 780# CONFIG_SSB is not set
740 781
741# 782#
@@ -744,9 +785,13 @@ CONFIG_SSB_POSSIBLE=y
744# CONFIG_MFD_CORE is not set 785# CONFIG_MFD_CORE is not set
745# CONFIG_MFD_SM501 is not set 786# CONFIG_MFD_SM501 is not set
746# CONFIG_HTC_PASIC3 is not set 787# CONFIG_HTC_PASIC3 is not set
788# CONFIG_TWL4030_CORE is not set
747# CONFIG_MFD_TMIO is not set 789# CONFIG_MFD_TMIO is not set
790# CONFIG_PMIC_DA903X is not set
748# CONFIG_MFD_WM8400 is not set 791# CONFIG_MFD_WM8400 is not set
749# CONFIG_MFD_WM8350_I2C is not set 792# CONFIG_MFD_WM8350_I2C is not set
793# CONFIG_MFD_PCF50633 is not set
794# CONFIG_REGULATOR is not set
750 795
751# 796#
752# Multimedia devices 797# Multimedia devices
@@ -802,6 +847,7 @@ CONFIG_USB_MON=y
802# USB Host Controller Drivers 847# USB Host Controller Drivers
803# 848#
804# CONFIG_USB_C67X00_HCD is not set 849# CONFIG_USB_C67X00_HCD is not set
850# CONFIG_USB_OXU210HP_HCD is not set
805# CONFIG_USB_ISP116X_HCD is not set 851# CONFIG_USB_ISP116X_HCD is not set
806# CONFIG_USB_ISP1760_HCD is not set 852# CONFIG_USB_ISP1760_HCD is not set
807CONFIG_USB_OHCI_HCD=y 853CONFIG_USB_OHCI_HCD=y
@@ -824,18 +870,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
824# CONFIG_USB_TMC is not set 870# CONFIG_USB_TMC is not set
825 871
826# 872#
827# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 873# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
828# 874#
829 875
830# 876#
831# may also be needed; see USB_STORAGE Help for more information 877# see USB_STORAGE Help for more information
832# 878#
833CONFIG_USB_STORAGE=y 879CONFIG_USB_STORAGE=y
834# CONFIG_USB_STORAGE_DEBUG is not set 880# CONFIG_USB_STORAGE_DEBUG is not set
835# CONFIG_USB_STORAGE_DATAFAB is not set 881# CONFIG_USB_STORAGE_DATAFAB is not set
836# CONFIG_USB_STORAGE_FREECOM is not set 882# CONFIG_USB_STORAGE_FREECOM is not set
837# CONFIG_USB_STORAGE_ISD200 is not set 883# CONFIG_USB_STORAGE_ISD200 is not set
838# CONFIG_USB_STORAGE_DPCM is not set
839# CONFIG_USB_STORAGE_USBAT is not set 884# CONFIG_USB_STORAGE_USBAT is not set
840# CONFIG_USB_STORAGE_SDDR09 is not set 885# CONFIG_USB_STORAGE_SDDR09 is not set
841# CONFIG_USB_STORAGE_SDDR55 is not set 886# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -880,14 +925,18 @@ CONFIG_USB_STORAGE=y
880# CONFIG_USB_ISIGHTFW is not set 925# CONFIG_USB_ISIGHTFW is not set
881# CONFIG_USB_VST is not set 926# CONFIG_USB_VST is not set
882# CONFIG_USB_GADGET is not set 927# CONFIG_USB_GADGET is not set
883CONFIG_MMC=m 928
929#
930# OTG and related infrastructure
931#
932CONFIG_MMC=y
884# CONFIG_MMC_DEBUG is not set 933# CONFIG_MMC_DEBUG is not set
885# CONFIG_MMC_UNSAFE_RESUME is not set 934# CONFIG_MMC_UNSAFE_RESUME is not set
886 935
887# 936#
888# MMC/SD/SDIO Card Drivers 937# MMC/SD/SDIO Card Drivers
889# 938#
890CONFIG_MMC_BLOCK=m 939CONFIG_MMC_BLOCK=y
891CONFIG_MMC_BLOCK_BOUNCE=y 940CONFIG_MMC_BLOCK_BOUNCE=y
892# CONFIG_SDIO_UART is not set 941# CONFIG_SDIO_UART is not set
893# CONFIG_MMC_TEST is not set 942# CONFIG_MMC_TEST is not set
@@ -898,7 +947,18 @@ CONFIG_MMC_BLOCK_BOUNCE=y
898# CONFIG_MMC_SDHCI is not set 947# CONFIG_MMC_SDHCI is not set
899# CONFIG_MMC_WBSD is not set 948# CONFIG_MMC_WBSD is not set
900# CONFIG_MEMSTICK is not set 949# CONFIG_MEMSTICK is not set
901# CONFIG_NEW_LEDS is not set 950CONFIG_NEW_LEDS=y
951CONFIG_LEDS_CLASS=y
952
953#
954# LED drivers
955#
956# CONFIG_LEDS_PCA955X is not set
957
958#
959# LED Triggers
960#
961# CONFIG_LEDS_TRIGGERS is not set
902# CONFIG_ACCESSIBILITY is not set 962# CONFIG_ACCESSIBILITY is not set
903# CONFIG_EDAC is not set 963# CONFIG_EDAC is not set
904# CONFIG_RTC_CLASS is not set 964# CONFIG_RTC_CLASS is not set
@@ -912,14 +972,18 @@ CONFIG_MMC_BLOCK_BOUNCE=y
912CONFIG_EXT2_FS=y 972CONFIG_EXT2_FS=y
913# CONFIG_EXT2_FS_XATTR is not set 973# CONFIG_EXT2_FS_XATTR is not set
914# CONFIG_EXT2_FS_XIP is not set 974# CONFIG_EXT2_FS_XIP is not set
915# CONFIG_EXT3_FS is not set 975CONFIG_EXT3_FS=y
976# CONFIG_EXT3_FS_XATTR is not set
916# CONFIG_EXT4_FS is not set 977# CONFIG_EXT4_FS is not set
978CONFIG_JBD=y
979# CONFIG_JBD_DEBUG is not set
917# CONFIG_REISERFS_FS is not set 980# CONFIG_REISERFS_FS is not set
918# CONFIG_JFS_FS is not set 981# CONFIG_JFS_FS is not set
919# CONFIG_FS_POSIX_ACL is not set 982# CONFIG_FS_POSIX_ACL is not set
920CONFIG_FILE_LOCKING=y 983CONFIG_FILE_LOCKING=y
921# CONFIG_XFS_FS is not set 984# CONFIG_XFS_FS is not set
922# CONFIG_OCFS2_FS is not set 985# CONFIG_OCFS2_FS is not set
986# CONFIG_BTRFS_FS is not set
923CONFIG_DNOTIFY=y 987CONFIG_DNOTIFY=y
924CONFIG_INOTIFY=y 988CONFIG_INOTIFY=y
925CONFIG_INOTIFY_USER=y 989CONFIG_INOTIFY_USER=y
@@ -952,13 +1016,11 @@ CONFIG_PROC_KCORE=y
952CONFIG_PROC_SYSCTL=y 1016CONFIG_PROC_SYSCTL=y
953CONFIG_PROC_PAGE_MONITOR=y 1017CONFIG_PROC_PAGE_MONITOR=y
954CONFIG_SYSFS=y 1018CONFIG_SYSFS=y
955# CONFIG_TMPFS is not set 1019CONFIG_TMPFS=y
1020# CONFIG_TMPFS_POSIX_ACL is not set
956# CONFIG_HUGETLB_PAGE is not set 1021# CONFIG_HUGETLB_PAGE is not set
957# CONFIG_CONFIGFS_FS is not set 1022# CONFIG_CONFIGFS_FS is not set
958 1023CONFIG_MISC_FILESYSTEMS=y
959#
960# Miscellaneous filesystems
961#
962# CONFIG_ADFS_FS is not set 1024# CONFIG_ADFS_FS is not set
963# CONFIG_AFFS_FS is not set 1025# CONFIG_AFFS_FS is not set
964# CONFIG_HFS_FS is not set 1026# CONFIG_HFS_FS is not set
@@ -978,6 +1040,7 @@ CONFIG_JFFS2_ZLIB=y
978CONFIG_JFFS2_RTIME=y 1040CONFIG_JFFS2_RTIME=y
979# CONFIG_JFFS2_RUBIN is not set 1041# CONFIG_JFFS2_RUBIN is not set
980CONFIG_CRAMFS=y 1042CONFIG_CRAMFS=y
1043# CONFIG_SQUASHFS is not set
981# CONFIG_VXFS_FS is not set 1044# CONFIG_VXFS_FS is not set
982# CONFIG_MINIX_FS is not set 1045# CONFIG_MINIX_FS is not set
983# CONFIG_OMFS_FS is not set 1046# CONFIG_OMFS_FS is not set
@@ -1057,6 +1120,7 @@ CONFIG_NLS_UTF8=y
1057# Library routines 1120# Library routines
1058# 1121#
1059CONFIG_BITREVERSE=y 1122CONFIG_BITREVERSE=y
1123CONFIG_GENERIC_FIND_LAST_BIT=y
1060CONFIG_CRC_CCITT=y 1124CONFIG_CRC_CCITT=y
1061# CONFIG_CRC16 is not set 1125# CONFIG_CRC16 is not set
1062CONFIG_CRC_T10DIF=y 1126CONFIG_CRC_T10DIF=y
@@ -1107,6 +1171,7 @@ CONFIG_DEBUG_INFO=y
1107# CONFIG_DEBUG_MEMORY_INIT is not set 1171# CONFIG_DEBUG_MEMORY_INIT is not set
1108# CONFIG_DEBUG_LIST is not set 1172# CONFIG_DEBUG_LIST is not set
1109# CONFIG_DEBUG_SG is not set 1173# CONFIG_DEBUG_SG is not set
1174# CONFIG_DEBUG_NOTIFIERS is not set
1110# CONFIG_BOOT_PRINTK_DELAY is not set 1175# CONFIG_BOOT_PRINTK_DELAY is not set
1111# CONFIG_RCU_TORTURE_TEST is not set 1176# CONFIG_RCU_TORTURE_TEST is not set
1112# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1177# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1115,18 +1180,24 @@ CONFIG_DEBUG_INFO=y
1115# CONFIG_FAULT_INJECTION is not set 1180# CONFIG_FAULT_INJECTION is not set
1116# CONFIG_LATENCYTOP is not set 1181# CONFIG_LATENCYTOP is not set
1117CONFIG_SYSCTL_SYSCALL_CHECK=y 1182CONFIG_SYSCTL_SYSCALL_CHECK=y
1118CONFIG_NOP_TRACER=y 1183CONFIG_HAVE_FUNCTION_TRACER=y
1119CONFIG_HAVE_FTRACE=y
1120CONFIG_HAVE_DYNAMIC_FTRACE=y 1184CONFIG_HAVE_DYNAMIC_FTRACE=y
1121# CONFIG_FTRACE is not set 1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1186
1187#
1188# Tracers
1189#
1190# CONFIG_FUNCTION_TRACER is not set
1122# CONFIG_SCHED_TRACER is not set 1191# CONFIG_SCHED_TRACER is not set
1123# CONFIG_CONTEXT_SWITCH_TRACER is not set 1192# CONFIG_CONTEXT_SWITCH_TRACER is not set
1124# CONFIG_BOOT_TRACER is not set 1193# CONFIG_BOOT_TRACER is not set
1194# CONFIG_TRACE_BRANCH_PROFILING is not set
1125# CONFIG_STACK_TRACER is not set 1195# CONFIG_STACK_TRACER is not set
1126# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1196# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1127# CONFIG_SAMPLES is not set 1197# CONFIG_SAMPLES is not set
1128CONFIG_HAVE_ARCH_KGDB=y 1198CONFIG_HAVE_ARCH_KGDB=y
1129# CONFIG_KGDB is not set 1199# CONFIG_KGDB is not set
1200CONFIG_PRINT_STACK_DEPTH=64
1130# CONFIG_DEBUG_STACKOVERFLOW is not set 1201# CONFIG_DEBUG_STACKOVERFLOW is not set
1131# CONFIG_DEBUG_STACK_USAGE is not set 1202# CONFIG_DEBUG_STACK_USAGE is not set
1132# CONFIG_DEBUG_PAGEALLOC is not set 1203# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1134,7 +1205,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1134# CONFIG_FTR_FIXUP_SELFTEST is not set 1205# CONFIG_FTR_FIXUP_SELFTEST is not set
1135# CONFIG_MSI_BITMAP_SELFTEST is not set 1206# CONFIG_MSI_BITMAP_SELFTEST is not set
1136# CONFIG_XMON is not set 1207# CONFIG_XMON is not set
1137# CONFIG_IRQSTACKS is not set 1208CONFIG_IRQSTACKS=y
1138# CONFIG_VIRQ_DEBUG is not set 1209# CONFIG_VIRQ_DEBUG is not set
1139CONFIG_BDI_SWITCH=y 1210CONFIG_BDI_SWITCH=y
1140# CONFIG_PPC_EARLY_DEBUG is not set 1211# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1153,6 +1224,7 @@ CONFIG_CRYPTO=y
1153# 1224#
1154# CONFIG_CRYPTO_FIPS is not set 1225# CONFIG_CRYPTO_FIPS is not set
1155# CONFIG_CRYPTO_MANAGER is not set 1226# CONFIG_CRYPTO_MANAGER is not set
1227# CONFIG_CRYPTO_MANAGER2 is not set
1156# CONFIG_CRYPTO_GF128MUL is not set 1228# CONFIG_CRYPTO_GF128MUL is not set
1157# CONFIG_CRYPTO_NULL is not set 1229# CONFIG_CRYPTO_NULL is not set
1158# CONFIG_CRYPTO_CRYPTD is not set 1230# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig
index 3df627494b65..1239c6132b4a 100644
--- a/arch/powerpc/configs/52xx/cm5200_defconfig
+++ b/arch/powerpc/configs/52xx/cm5200_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:12:40 2008 4# Mon Jan 26 21:41:58 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -71,14 +71,23 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 71# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 72# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74
75#
76# RCU Subsystem
77#
78CONFIG_CLASSIC_RCU=y
79# CONFIG_TREE_RCU is not set
80# CONFIG_PREEMPT_RCU is not set
81# CONFIG_TREE_RCU_TRACE is not set
82# CONFIG_PREEMPT_RCU_TRACE is not set
74# CONFIG_IKCONFIG is not set 83# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 84CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 85CONFIG_GROUP_SCHED=y
78CONFIG_FAIR_GROUP_SCHED=y 86CONFIG_FAIR_GROUP_SCHED=y
79# CONFIG_RT_GROUP_SCHED is not set 87# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 88CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 89# CONFIG_CGROUP_SCHED is not set
90# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 91CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 92CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 93# CONFIG_RELAY is not set
@@ -110,7 +119,6 @@ CONFIG_SLUB_DEBUG=y
110CONFIG_SLUB=y 119CONFIG_SLUB=y
111# CONFIG_SLOB is not set 120# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 121# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 122CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y 124CONFIG_HAVE_IOREMAP_PROT=y
@@ -121,13 +129,11 @@ CONFIG_HAVE_CLK=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set
125CONFIG_BASE_SMALL=0 132CONFIG_BASE_SMALL=0
126# CONFIG_MODULES is not set 133# CONFIG_MODULES is not set
127CONFIG_BLOCK=y 134CONFIG_BLOCK=y
128# CONFIG_LBD is not set 135# CONFIG_LBD is not set
129# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
130# CONFIG_LSF is not set
131# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
133 139
@@ -143,7 +149,6 @@ CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_CFQ is not set 149# CONFIG_DEFAULT_CFQ is not set
144# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
145CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
146CONFIG_CLASSIC_RCU=y
147# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
148 153
149# 154#
@@ -182,9 +187,8 @@ CONFIG_PPC_MPC5200_SIMPLE=y
182# CONFIG_TAU is not set 187# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
184CONFIG_PPC_BESTCOMM=y 189CONFIG_PPC_BESTCOMM=y
185# CONFIG_PPC_BESTCOMM_ATA is not set
186CONFIG_PPC_BESTCOMM_FEC=y 190CONFIG_PPC_BESTCOMM_FEC=y
187# CONFIG_PPC_BESTCOMM_GEN_BD is not set 191# CONFIG_SIMPLE_GPIO is not set
188 192
189# 193#
190# Kernel options 194# Kernel options
@@ -211,6 +215,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
211CONFIG_ARCH_HAS_WALK_MEMORY=y 215CONFIG_ARCH_HAS_WALK_MEMORY=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
213# CONFIG_KEXEC is not set 217# CONFIG_KEXEC is not set
218# CONFIG_CRASH_DUMP is not set
214CONFIG_ARCH_FLATMEM_ENABLE=y 219CONFIG_ARCH_FLATMEM_ENABLE=y
215CONFIG_ARCH_POPULATES_NODE_MAP=y 220CONFIG_ARCH_POPULATES_NODE_MAP=y
216CONFIG_SELECT_MEMORY_MODEL=y 221CONFIG_SELECT_MEMORY_MODEL=y
@@ -222,12 +227,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 227CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 228CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 229CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 230# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 239CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
@@ -268,6 +275,7 @@ CONFIG_NET=y
268# 275#
269# Networking options 276# Networking options
270# 277#
278CONFIG_COMPAT_NET_DEV_OPS=y
271CONFIG_PACKET=y 279CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 280# CONFIG_PACKET_MMAP is not set
273CONFIG_UNIX=y 281CONFIG_UNIX=y
@@ -324,6 +332,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_ECONET is not set 332# CONFIG_ECONET is not set
325# CONFIG_WAN_ROUTER is not set 333# CONFIG_WAN_ROUTER is not set
326# CONFIG_NET_SCHED is not set 334# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set
327 336
328# 337#
329# Network testing 338# Network testing
@@ -336,6 +345,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_AF_RXRPC is not set 345# CONFIG_AF_RXRPC is not set
337# CONFIG_PHONET is not set 346# CONFIG_PHONET is not set
338# CONFIG_WIRELESS is not set 347# CONFIG_WIRELESS is not set
348# CONFIG_WIMAX is not set
339# CONFIG_RFKILL is not set 349# CONFIG_RFKILL is not set
340# CONFIG_NET_9P is not set 350# CONFIG_NET_9P is not set
341 351
@@ -427,6 +437,12 @@ CONFIG_MTD_PHYSMAP_OF=y
427# CONFIG_MTD_ONENAND is not set 437# CONFIG_MTD_ONENAND is not set
428 438
429# 439#
440# LPDDR flash memory drivers
441#
442# CONFIG_MTD_LPDDR is not set
443# CONFIG_MTD_QINFO_PROBE is not set
444
445#
430# UBI - Unsorted block images 446# UBI - Unsorted block images
431# 447#
432# CONFIG_MTD_UBI is not set 448# CONFIG_MTD_UBI is not set
@@ -514,6 +530,9 @@ CONFIG_LXT_PHY=y
514# CONFIG_BROADCOM_PHY is not set 530# CONFIG_BROADCOM_PHY is not set
515# CONFIG_ICPLUS_PHY is not set 531# CONFIG_ICPLUS_PHY is not set
516# CONFIG_REALTEK_PHY is not set 532# CONFIG_REALTEK_PHY is not set
533# CONFIG_NATIONAL_PHY is not set
534# CONFIG_STE10XP is not set
535# CONFIG_LSI_ET1011C_PHY is not set
517# CONFIG_FIXED_PHY is not set 536# CONFIG_FIXED_PHY is not set
518# CONFIG_MDIO_BITBANG is not set 537# CONFIG_MDIO_BITBANG is not set
519CONFIG_NET_ETHERNET=y 538CONFIG_NET_ETHERNET=y
@@ -539,6 +558,10 @@ CONFIG_FEC_MPC52xx_MDIO=y
539# CONFIG_IWLWIFI_LEDS is not set 558# CONFIG_IWLWIFI_LEDS is not set
540 559
541# 560#
561# Enable WiMAX (Networking options) to see the WiMAX drivers
562#
563
564#
542# USB Network Adapters 565# USB Network Adapters
543# 566#
544# CONFIG_USB_CATC is not set 567# CONFIG_USB_CATC is not set
@@ -588,8 +611,10 @@ CONFIG_SERIAL_MPC52xx=y
588CONFIG_SERIAL_MPC52xx_CONSOLE=y 611CONFIG_SERIAL_MPC52xx_CONSOLE=y
589CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=57600 612CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=57600
590CONFIG_UNIX98_PTYS=y 613CONFIG_UNIX98_PTYS=y
614# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
591CONFIG_LEGACY_PTYS=y 615CONFIG_LEGACY_PTYS=y
592CONFIG_LEGACY_PTY_COUNT=256 616CONFIG_LEGACY_PTY_COUNT=256
617# CONFIG_HVC_UDBG is not set
593# CONFIG_IPMI_HANDLER is not set 618# CONFIG_IPMI_HANDLER is not set
594# CONFIG_HW_RANDOM is not set 619# CONFIG_HW_RANDOM is not set
595# CONFIG_NVRAM is not set 620# CONFIG_NVRAM is not set
@@ -629,8 +654,6 @@ CONFIG_I2C_MPC=y
629# Miscellaneous I2C Chip support 654# Miscellaneous I2C Chip support
630# 655#
631# CONFIG_DS1682 is not set 656# CONFIG_DS1682 is not set
632# CONFIG_AT24 is not set
633# CONFIG_SENSORS_EEPROM is not set
634# CONFIG_SENSORS_PCF8574 is not set 657# CONFIG_SENSORS_PCF8574 is not set
635# CONFIG_PCF8575 is not set 658# CONFIG_PCF8575 is not set
636# CONFIG_SENSORS_PCA9539 is not set 659# CONFIG_SENSORS_PCA9539 is not set
@@ -675,10 +698,12 @@ CONFIG_SSB_POSSIBLE=y
675# CONFIG_MFD_CORE is not set 698# CONFIG_MFD_CORE is not set
676# CONFIG_MFD_SM501 is not set 699# CONFIG_MFD_SM501 is not set
677# CONFIG_HTC_PASIC3 is not set 700# CONFIG_HTC_PASIC3 is not set
701# CONFIG_TWL4030_CORE is not set
678# CONFIG_MFD_TMIO is not set 702# CONFIG_MFD_TMIO is not set
679# CONFIG_PMIC_DA903X is not set 703# CONFIG_PMIC_DA903X is not set
680# CONFIG_MFD_WM8400 is not set 704# CONFIG_MFD_WM8400 is not set
681# CONFIG_MFD_WM8350_I2C is not set 705# CONFIG_MFD_WM8350_I2C is not set
706# CONFIG_MFD_PCF50633 is not set
682# CONFIG_REGULATOR is not set 707# CONFIG_REGULATOR is not set
683 708
684# 709#
@@ -736,6 +761,7 @@ CONFIG_USB_DEVICEFS=y
736# USB Host Controller Drivers 761# USB Host Controller Drivers
737# 762#
738# CONFIG_USB_C67X00_HCD is not set 763# CONFIG_USB_C67X00_HCD is not set
764# CONFIG_USB_OXU210HP_HCD is not set
739# CONFIG_USB_ISP116X_HCD is not set 765# CONFIG_USB_ISP116X_HCD is not set
740# CONFIG_USB_ISP1760_HCD is not set 766# CONFIG_USB_ISP1760_HCD is not set
741CONFIG_USB_OHCI_HCD=y 767CONFIG_USB_OHCI_HCD=y
@@ -760,18 +786,17 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
760# CONFIG_USB_TMC is not set 786# CONFIG_USB_TMC is not set
761 787
762# 788#
763# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 789# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
764# 790#
765 791
766# 792#
767# may also be needed; see USB_STORAGE Help for more information 793# see USB_STORAGE Help for more information
768# 794#
769CONFIG_USB_STORAGE=y 795CONFIG_USB_STORAGE=y
770# CONFIG_USB_STORAGE_DEBUG is not set 796# CONFIG_USB_STORAGE_DEBUG is not set
771# CONFIG_USB_STORAGE_DATAFAB is not set 797# CONFIG_USB_STORAGE_DATAFAB is not set
772# CONFIG_USB_STORAGE_FREECOM is not set 798# CONFIG_USB_STORAGE_FREECOM is not set
773# CONFIG_USB_STORAGE_ISD200 is not set 799# CONFIG_USB_STORAGE_ISD200 is not set
774# CONFIG_USB_STORAGE_DPCM is not set
775# CONFIG_USB_STORAGE_USBAT is not set 800# CONFIG_USB_STORAGE_USBAT is not set
776# CONFIG_USB_STORAGE_SDDR09 is not set 801# CONFIG_USB_STORAGE_SDDR09 is not set
777# CONFIG_USB_STORAGE_SDDR55 is not set 802# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -817,6 +842,10 @@ CONFIG_USB_STORAGE=y
817# CONFIG_USB_ISIGHTFW is not set 842# CONFIG_USB_ISIGHTFW is not set
818# CONFIG_USB_VST is not set 843# CONFIG_USB_VST is not set
819# CONFIG_USB_GADGET is not set 844# CONFIG_USB_GADGET is not set
845
846#
847# OTG and related infrastructure
848#
820# CONFIG_MMC is not set 849# CONFIG_MMC is not set
821# CONFIG_MEMSTICK is not set 850# CONFIG_MEMSTICK is not set
822# CONFIG_NEW_LEDS is not set 851# CONFIG_NEW_LEDS is not set
@@ -826,7 +855,6 @@ CONFIG_USB_STORAGE=y
826# CONFIG_DMADEVICES is not set 855# CONFIG_DMADEVICES is not set
827# CONFIG_UIO is not set 856# CONFIG_UIO is not set
828# CONFIG_STAGING is not set 857# CONFIG_STAGING is not set
829CONFIG_STAGING_EXCLUDE_BUILD=y
830 858
831# 859#
832# File systems 860# File systems
@@ -847,6 +875,7 @@ CONFIG_FS_MBCACHE=y
847CONFIG_FILE_LOCKING=y 875CONFIG_FILE_LOCKING=y
848# CONFIG_XFS_FS is not set 876# CONFIG_XFS_FS is not set
849# CONFIG_OCFS2_FS is not set 877# CONFIG_OCFS2_FS is not set
878# CONFIG_BTRFS_FS is not set
850CONFIG_DNOTIFY=y 879CONFIG_DNOTIFY=y
851CONFIG_INOTIFY=y 880CONFIG_INOTIFY=y
852CONFIG_INOTIFY_USER=y 881CONFIG_INOTIFY_USER=y
@@ -883,10 +912,7 @@ CONFIG_TMPFS=y
883# CONFIG_TMPFS_POSIX_ACL is not set 912# CONFIG_TMPFS_POSIX_ACL is not set
884# CONFIG_HUGETLB_PAGE is not set 913# CONFIG_HUGETLB_PAGE is not set
885# CONFIG_CONFIGFS_FS is not set 914# CONFIG_CONFIGFS_FS is not set
886 915CONFIG_MISC_FILESYSTEMS=y
887#
888# Miscellaneous filesystems
889#
890# CONFIG_ADFS_FS is not set 916# CONFIG_ADFS_FS is not set
891# CONFIG_AFFS_FS is not set 917# CONFIG_AFFS_FS is not set
892# CONFIG_HFS_FS is not set 918# CONFIG_HFS_FS is not set
@@ -906,6 +932,7 @@ CONFIG_JFFS2_ZLIB=y
906CONFIG_JFFS2_RTIME=y 932CONFIG_JFFS2_RTIME=y
907# CONFIG_JFFS2_RUBIN is not set 933# CONFIG_JFFS2_RUBIN is not set
908CONFIG_CRAMFS=y 934CONFIG_CRAMFS=y
935# CONFIG_SQUASHFS is not set
909# CONFIG_VXFS_FS is not set 936# CONFIG_VXFS_FS is not set
910# CONFIG_MINIX_FS is not set 937# CONFIG_MINIX_FS is not set
911# CONFIG_OMFS_FS is not set 938# CONFIG_OMFS_FS is not set
@@ -1002,6 +1029,7 @@ CONFIG_NLS_ISO8859_1=y
1002# Library routines 1029# Library routines
1003# 1030#
1004CONFIG_BITREVERSE=y 1031CONFIG_BITREVERSE=y
1032CONFIG_GENERIC_FIND_LAST_BIT=y
1005# CONFIG_CRC_CCITT is not set 1033# CONFIG_CRC_CCITT is not set
1006# CONFIG_CRC16 is not set 1034# CONFIG_CRC16 is not set
1007# CONFIG_CRC_T10DIF is not set 1035# CONFIG_CRC_T10DIF is not set
@@ -1053,6 +1081,7 @@ CONFIG_SCHED_DEBUG=y
1053# CONFIG_DEBUG_MEMORY_INIT is not set 1081# CONFIG_DEBUG_MEMORY_INIT is not set
1054# CONFIG_DEBUG_LIST is not set 1082# CONFIG_DEBUG_LIST is not set
1055# CONFIG_DEBUG_SG is not set 1083# CONFIG_DEBUG_SG is not set
1084# CONFIG_DEBUG_NOTIFIERS is not set
1056# CONFIG_BOOT_PRINTK_DELAY is not set 1085# CONFIG_BOOT_PRINTK_DELAY is not set
1057# CONFIG_RCU_TORTURE_TEST is not set 1086# CONFIG_RCU_TORTURE_TEST is not set
1058# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1087# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1061,6 +1090,8 @@ CONFIG_SCHED_DEBUG=y
1061# CONFIG_FAULT_INJECTION is not set 1090# CONFIG_FAULT_INJECTION is not set
1062# CONFIG_LATENCYTOP is not set 1091# CONFIG_LATENCYTOP is not set
1063CONFIG_HAVE_FUNCTION_TRACER=y 1092CONFIG_HAVE_FUNCTION_TRACER=y
1093CONFIG_HAVE_DYNAMIC_FTRACE=y
1094CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1064 1095
1065# 1096#
1066# Tracers 1097# Tracers
@@ -1069,11 +1100,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1069# CONFIG_SCHED_TRACER is not set 1100# CONFIG_SCHED_TRACER is not set
1070# CONFIG_CONTEXT_SWITCH_TRACER is not set 1101# CONFIG_CONTEXT_SWITCH_TRACER is not set
1071# CONFIG_BOOT_TRACER is not set 1102# CONFIG_BOOT_TRACER is not set
1103# CONFIG_TRACE_BRANCH_PROFILING is not set
1072# CONFIG_STACK_TRACER is not set 1104# CONFIG_STACK_TRACER is not set
1073# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1105# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1074# CONFIG_SAMPLES is not set 1106# CONFIG_SAMPLES is not set
1075CONFIG_HAVE_ARCH_KGDB=y 1107CONFIG_HAVE_ARCH_KGDB=y
1076# CONFIG_KGDB is not set 1108# CONFIG_KGDB is not set
1109CONFIG_PRINT_STACK_DEPTH=64
1077# CONFIG_DEBUG_STACKOVERFLOW is not set 1110# CONFIG_DEBUG_STACKOVERFLOW is not set
1078# CONFIG_DEBUG_STACK_USAGE is not set 1111# CONFIG_DEBUG_STACK_USAGE is not set
1079# CONFIG_DEBUG_PAGEALLOC is not set 1112# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1100,11 +1133,15 @@ CONFIG_CRYPTO=y
1100# 1133#
1101# CONFIG_CRYPTO_FIPS is not set 1134# CONFIG_CRYPTO_FIPS is not set
1102CONFIG_CRYPTO_ALGAPI=y 1135CONFIG_CRYPTO_ALGAPI=y
1103CONFIG_CRYPTO_AEAD=y 1136CONFIG_CRYPTO_ALGAPI2=y
1137CONFIG_CRYPTO_AEAD2=y
1104CONFIG_CRYPTO_BLKCIPHER=y 1138CONFIG_CRYPTO_BLKCIPHER=y
1139CONFIG_CRYPTO_BLKCIPHER2=y
1105CONFIG_CRYPTO_HASH=y 1140CONFIG_CRYPTO_HASH=y
1106CONFIG_CRYPTO_RNG=y 1141CONFIG_CRYPTO_HASH2=y
1142CONFIG_CRYPTO_RNG2=y
1107CONFIG_CRYPTO_MANAGER=y 1143CONFIG_CRYPTO_MANAGER=y
1144CONFIG_CRYPTO_MANAGER2=y
1108# CONFIG_CRYPTO_GF128MUL is not set 1145# CONFIG_CRYPTO_GF128MUL is not set
1109# CONFIG_CRYPTO_NULL is not set 1146# CONFIG_CRYPTO_NULL is not set
1110# CONFIG_CRYPTO_CRYPTD is not set 1147# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig
index 5b969f9c925e..b7b880562906 100644
--- a/arch/powerpc/configs/52xx/lite5200b_defconfig
+++ b/arch/powerpc/configs/52xx/lite5200b_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:10:16 2008 4# Mon Jan 26 21:41:14 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -72,14 +72,23 @@ CONFIG_SYSVIPC_SYSCTL=y
72# CONFIG_BSD_PROCESS_ACCT is not set 72# CONFIG_BSD_PROCESS_ACCT is not set
73# CONFIG_TASKSTATS is not set 73# CONFIG_TASKSTATS is not set
74# CONFIG_AUDIT is not set 74# CONFIG_AUDIT is not set
75
76#
77# RCU Subsystem
78#
79CONFIG_CLASSIC_RCU=y
80# CONFIG_TREE_RCU is not set
81# CONFIG_PREEMPT_RCU is not set
82# CONFIG_TREE_RCU_TRACE is not set
83# CONFIG_PREEMPT_RCU_TRACE is not set
75# CONFIG_IKCONFIG is not set 84# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 85CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y 86CONFIG_GROUP_SCHED=y
79# CONFIG_FAIR_GROUP_SCHED is not set 87# CONFIG_FAIR_GROUP_SCHED is not set
80# CONFIG_RT_GROUP_SCHED is not set 88# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y 89CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set 90# CONFIG_CGROUP_SCHED is not set
91# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 92CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y 93CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 94# CONFIG_RELAY is not set
@@ -112,7 +121,6 @@ CONFIG_SLUB_DEBUG=y
112CONFIG_SLUB=y 121CONFIG_SLUB=y
113# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 126CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +131,6 @@ CONFIG_HAVE_CLK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 134CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 135CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 136# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +138,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 138# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 139# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 140# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 141CONFIG_BLOCK=y
136# CONFIG_LBD is not set 142# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
141 146
@@ -151,7 +156,6 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_CFQ is not set 156# CONFIG_DEFAULT_CFQ is not set
152# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 158CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y
155CONFIG_FREEZER=y 159CONFIG_FREEZER=y
156 160
157# 161#
@@ -192,7 +196,7 @@ CONFIG_PPC_LITE5200=y
192CONFIG_PPC_BESTCOMM=y 196CONFIG_PPC_BESTCOMM=y
193CONFIG_PPC_BESTCOMM_ATA=y 197CONFIG_PPC_BESTCOMM_ATA=y
194CONFIG_PPC_BESTCOMM_FEC=y 198CONFIG_PPC_BESTCOMM_FEC=y
195CONFIG_PPC_BESTCOMM_GEN_BD=y 199# CONFIG_SIMPLE_GPIO is not set
196 200
197# 201#
198# Kernel options 202# Kernel options
@@ -220,6 +224,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
220CONFIG_ARCH_HAS_WALK_MEMORY=y 224CONFIG_ARCH_HAS_WALK_MEMORY=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
222# CONFIG_KEXEC is not set 226# CONFIG_KEXEC is not set
227# CONFIG_CRASH_DUMP is not set
223CONFIG_ARCH_FLATMEM_ENABLE=y 228CONFIG_ARCH_FLATMEM_ENABLE=y
224CONFIG_ARCH_POPULATES_NODE_MAP=y 229CONFIG_ARCH_POPULATES_NODE_MAP=y
225CONFIG_SELECT_MEMORY_MODEL=y 230CONFIG_SELECT_MEMORY_MODEL=y
@@ -231,12 +236,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
231CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
232CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
233CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
234# CONFIG_RESOURCES_64BIT is not set
235# CONFIG_PHYS_ADDR_T_64BIT is not set 239# CONFIG_PHYS_ADDR_T_64BIT is not set
236CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
237CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
238CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
239CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set
240CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
241CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
242# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
@@ -264,6 +271,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
264# CONFIG_PCI_MSI is not set 271# CONFIG_PCI_MSI is not set
265CONFIG_PCI_LEGACY=y 272CONFIG_PCI_LEGACY=y
266# CONFIG_PCI_DEBUG is not set 273# CONFIG_PCI_DEBUG is not set
274# CONFIG_PCI_STUB is not set
267# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
268# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
269# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -286,6 +294,7 @@ CONFIG_NET=y
286# 294#
287# Networking options 295# Networking options
288# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
289CONFIG_PACKET=y 298CONFIG_PACKET=y
290# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
291CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -342,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
344# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
345 355
346# 356#
347# Network testing 357# Network testing
@@ -354,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
354# CONFIG_AF_RXRPC is not set 364# CONFIG_AF_RXRPC is not set
355# CONFIG_PHONET is not set 365# CONFIG_PHONET is not set
356# CONFIG_WIRELESS is not set 366# CONFIG_WIRELESS is not set
367# CONFIG_WIMAX is not set
357# CONFIG_RFKILL is not set 368# CONFIG_RFKILL is not set
358# CONFIG_NET_9P is not set 369# CONFIG_NET_9P is not set
359 370
@@ -396,13 +407,19 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
396# CONFIG_BLK_DEV_HD is not set 407# CONFIG_BLK_DEV_HD is not set
397CONFIG_MISC_DEVICES=y 408CONFIG_MISC_DEVICES=y
398# CONFIG_PHANTOM is not set 409# CONFIG_PHANTOM is not set
399# CONFIG_EEPROM_93CX6 is not set
400# CONFIG_SGI_IOC4 is not set 410# CONFIG_SGI_IOC4 is not set
401# CONFIG_TIFM_CORE is not set 411# CONFIG_TIFM_CORE is not set
402# CONFIG_ICS932S401 is not set 412# CONFIG_ICS932S401 is not set
403# CONFIG_ENCLOSURE_SERVICES is not set 413# CONFIG_ENCLOSURE_SERVICES is not set
404# CONFIG_HP_ILO is not set 414# CONFIG_HP_ILO is not set
405# CONFIG_C2PORT is not set 415# CONFIG_C2PORT is not set
416
417#
418# EEPROM support
419#
420# CONFIG_EEPROM_AT24 is not set
421# CONFIG_EEPROM_LEGACY is not set
422# CONFIG_EEPROM_93CX6 is not set
406CONFIG_HAVE_IDE=y 423CONFIG_HAVE_IDE=y
407# CONFIG_IDE is not set 424# CONFIG_IDE is not set
408 425
@@ -445,6 +462,7 @@ CONFIG_SCSI_WAIT_SCAN=m
445# CONFIG_SCSI_SRP_ATTRS is not set 462# CONFIG_SCSI_SRP_ATTRS is not set
446CONFIG_SCSI_LOWLEVEL=y 463CONFIG_SCSI_LOWLEVEL=y
447# CONFIG_ISCSI_TCP is not set 464# CONFIG_ISCSI_TCP is not set
465# CONFIG_SCSI_CXGB3_ISCSI is not set
448# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 466# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
449# CONFIG_SCSI_3W_9XXX is not set 467# CONFIG_SCSI_3W_9XXX is not set
450# CONFIG_SCSI_ACARD is not set 468# CONFIG_SCSI_ACARD is not set
@@ -461,6 +479,8 @@ CONFIG_SCSI_LOWLEVEL=y
461# CONFIG_MEGARAID_SAS is not set 479# CONFIG_MEGARAID_SAS is not set
462# CONFIG_SCSI_HPTIOP is not set 480# CONFIG_SCSI_HPTIOP is not set
463# CONFIG_SCSI_BUSLOGIC is not set 481# CONFIG_SCSI_BUSLOGIC is not set
482# CONFIG_LIBFC is not set
483# CONFIG_FCOE is not set
464# CONFIG_SCSI_DMX3191D is not set 484# CONFIG_SCSI_DMX3191D is not set
465# CONFIG_SCSI_EATA is not set 485# CONFIG_SCSI_EATA is not set
466# CONFIG_SCSI_FUTURE_DOMAIN is not set 486# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -580,6 +600,9 @@ CONFIG_LXT_PHY=y
580# CONFIG_BROADCOM_PHY is not set 600# CONFIG_BROADCOM_PHY is not set
581# CONFIG_ICPLUS_PHY is not set 601# CONFIG_ICPLUS_PHY is not set
582# CONFIG_REALTEK_PHY is not set 602# CONFIG_REALTEK_PHY is not set
603# CONFIG_NATIONAL_PHY is not set
604# CONFIG_STE10XP is not set
605# CONFIG_LSI_ET1011C_PHY is not set
583# CONFIG_FIXED_PHY is not set 606# CONFIG_FIXED_PHY is not set
584# CONFIG_MDIO_BITBANG is not set 607# CONFIG_MDIO_BITBANG is not set
585CONFIG_NET_ETHERNET=y 608CONFIG_NET_ETHERNET=y
@@ -626,6 +649,7 @@ CONFIG_NETDEV_1000=y
626# CONFIG_JME is not set 649# CONFIG_JME is not set
627CONFIG_NETDEV_10000=y 650CONFIG_NETDEV_10000=y
628# CONFIG_CHELSIO_T1 is not set 651# CONFIG_CHELSIO_T1 is not set
652CONFIG_CHELSIO_T3_DEPENDS=y
629# CONFIG_CHELSIO_T3 is not set 653# CONFIG_CHELSIO_T3 is not set
630# CONFIG_ENIC is not set 654# CONFIG_ENIC is not set
631# CONFIG_IXGBE is not set 655# CONFIG_IXGBE is not set
@@ -648,6 +672,10 @@ CONFIG_NETDEV_10000=y
648# CONFIG_WLAN_PRE80211 is not set 672# CONFIG_WLAN_PRE80211 is not set
649# CONFIG_WLAN_80211 is not set 673# CONFIG_WLAN_80211 is not set
650# CONFIG_IWLWIFI_LEDS is not set 674# CONFIG_IWLWIFI_LEDS is not set
675
676#
677# Enable WiMAX (Networking options) to see the WiMAX drivers
678#
651# CONFIG_WAN is not set 679# CONFIG_WAN is not set
652# CONFIG_FDDI is not set 680# CONFIG_FDDI is not set
653# CONFIG_HIPPI is not set 681# CONFIG_HIPPI is not set
@@ -695,8 +723,10 @@ CONFIG_SERIAL_MPC52xx_CONSOLE=y
695CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 723CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
696# CONFIG_SERIAL_JSM is not set 724# CONFIG_SERIAL_JSM is not set
697CONFIG_UNIX98_PTYS=y 725CONFIG_UNIX98_PTYS=y
726# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
698CONFIG_LEGACY_PTYS=y 727CONFIG_LEGACY_PTYS=y
699CONFIG_LEGACY_PTY_COUNT=256 728CONFIG_LEGACY_PTY_COUNT=256
729# CONFIG_HVC_UDBG is not set
700# CONFIG_IPMI_HANDLER is not set 730# CONFIG_IPMI_HANDLER is not set
701# CONFIG_HW_RANDOM is not set 731# CONFIG_HW_RANDOM is not set
702# CONFIG_NVRAM is not set 732# CONFIG_NVRAM is not set
@@ -762,8 +792,6 @@ CONFIG_I2C_MPC=y
762# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
763# 793#
764# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
765# CONFIG_AT24 is not set
766# CONFIG_SENSORS_EEPROM is not set
767# CONFIG_SENSORS_PCF8574 is not set 795# CONFIG_SENSORS_PCF8574 is not set
768# CONFIG_PCF8575 is not set 796# CONFIG_PCF8575 is not set
769# CONFIG_SENSORS_PCA9539 is not set 797# CONFIG_SENSORS_PCA9539 is not set
@@ -796,10 +824,12 @@ CONFIG_SSB_POSSIBLE=y
796# CONFIG_MFD_CORE is not set 824# CONFIG_MFD_CORE is not set
797# CONFIG_MFD_SM501 is not set 825# CONFIG_MFD_SM501 is not set
798# CONFIG_HTC_PASIC3 is not set 826# CONFIG_HTC_PASIC3 is not set
827# CONFIG_TWL4030_CORE is not set
799# CONFIG_MFD_TMIO is not set 828# CONFIG_MFD_TMIO is not set
800# CONFIG_PMIC_DA903X is not set 829# CONFIG_PMIC_DA903X is not set
801# CONFIG_MFD_WM8400 is not set 830# CONFIG_MFD_WM8400 is not set
802# CONFIG_MFD_WM8350_I2C is not set 831# CONFIG_MFD_WM8350_I2C is not set
832# CONFIG_MFD_PCF50633 is not set
803# CONFIG_REGULATOR is not set 833# CONFIG_REGULATOR is not set
804 834
805# 835#
@@ -846,9 +876,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
846# 876#
847 877
848# 878#
849# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 879# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
850# 880#
851# CONFIG_USB_GADGET is not set 881# CONFIG_USB_GADGET is not set
882
883#
884# OTG and related infrastructure
885#
852# CONFIG_UWB is not set 886# CONFIG_UWB is not set
853# CONFIG_MMC is not set 887# CONFIG_MMC is not set
854# CONFIG_MEMSTICK is not set 888# CONFIG_MEMSTICK is not set
@@ -860,7 +894,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y
860# CONFIG_DMADEVICES is not set 894# CONFIG_DMADEVICES is not set
861# CONFIG_UIO is not set 895# CONFIG_UIO is not set
862# CONFIG_STAGING is not set 896# CONFIG_STAGING is not set
863CONFIG_STAGING_EXCLUDE_BUILD=y
864 897
865# 898#
866# File systems 899# File systems
@@ -881,6 +914,7 @@ CONFIG_FS_MBCACHE=y
881CONFIG_FILE_LOCKING=y 914CONFIG_FILE_LOCKING=y
882# CONFIG_XFS_FS is not set 915# CONFIG_XFS_FS is not set
883# CONFIG_OCFS2_FS is not set 916# CONFIG_OCFS2_FS is not set
917# CONFIG_BTRFS_FS is not set
884CONFIG_DNOTIFY=y 918CONFIG_DNOTIFY=y
885CONFIG_INOTIFY=y 919CONFIG_INOTIFY=y
886CONFIG_INOTIFY_USER=y 920CONFIG_INOTIFY_USER=y
@@ -914,10 +948,7 @@ CONFIG_TMPFS=y
914# CONFIG_TMPFS_POSIX_ACL is not set 948# CONFIG_TMPFS_POSIX_ACL is not set
915# CONFIG_HUGETLB_PAGE is not set 949# CONFIG_HUGETLB_PAGE is not set
916# CONFIG_CONFIGFS_FS is not set 950# CONFIG_CONFIGFS_FS is not set
917 951CONFIG_MISC_FILESYSTEMS=y
918#
919# Miscellaneous filesystems
920#
921# CONFIG_ADFS_FS is not set 952# CONFIG_ADFS_FS is not set
922# CONFIG_AFFS_FS is not set 953# CONFIG_AFFS_FS is not set
923# CONFIG_HFS_FS is not set 954# CONFIG_HFS_FS is not set
@@ -926,6 +957,7 @@ CONFIG_TMPFS=y
926# CONFIG_BFS_FS is not set 957# CONFIG_BFS_FS is not set
927# CONFIG_EFS_FS is not set 958# CONFIG_EFS_FS is not set
928# CONFIG_CRAMFS is not set 959# CONFIG_CRAMFS is not set
960# CONFIG_SQUASHFS is not set
929# CONFIG_VXFS_FS is not set 961# CONFIG_VXFS_FS is not set
930# CONFIG_MINIX_FS is not set 962# CONFIG_MINIX_FS is not set
931# CONFIG_OMFS_FS is not set 963# CONFIG_OMFS_FS is not set
@@ -967,6 +999,7 @@ CONFIG_MSDOS_PARTITION=y
967# Library routines 999# Library routines
968# 1000#
969CONFIG_BITREVERSE=y 1001CONFIG_BITREVERSE=y
1002CONFIG_GENERIC_FIND_LAST_BIT=y
970# CONFIG_CRC_CCITT is not set 1003# CONFIG_CRC_CCITT is not set
971# CONFIG_CRC16 is not set 1004# CONFIG_CRC16 is not set
972# CONFIG_CRC_T10DIF is not set 1005# CONFIG_CRC_T10DIF is not set
@@ -1016,6 +1049,7 @@ CONFIG_DEBUG_INFO=y
1016# CONFIG_DEBUG_MEMORY_INIT is not set 1049# CONFIG_DEBUG_MEMORY_INIT is not set
1017# CONFIG_DEBUG_LIST is not set 1050# CONFIG_DEBUG_LIST is not set
1018# CONFIG_DEBUG_SG is not set 1051# CONFIG_DEBUG_SG is not set
1052# CONFIG_DEBUG_NOTIFIERS is not set
1019# CONFIG_BOOT_PRINTK_DELAY is not set 1053# CONFIG_BOOT_PRINTK_DELAY is not set
1020# CONFIG_RCU_TORTURE_TEST is not set 1054# CONFIG_RCU_TORTURE_TEST is not set
1021# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1055# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1024,6 +1058,8 @@ CONFIG_DEBUG_INFO=y
1024# CONFIG_FAULT_INJECTION is not set 1058# CONFIG_FAULT_INJECTION is not set
1025# CONFIG_LATENCYTOP is not set 1059# CONFIG_LATENCYTOP is not set
1026CONFIG_HAVE_FUNCTION_TRACER=y 1060CONFIG_HAVE_FUNCTION_TRACER=y
1061CONFIG_HAVE_DYNAMIC_FTRACE=y
1062CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1027 1063
1028# 1064#
1029# Tracers 1065# Tracers
@@ -1032,11 +1068,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1032# CONFIG_SCHED_TRACER is not set 1068# CONFIG_SCHED_TRACER is not set
1033# CONFIG_CONTEXT_SWITCH_TRACER is not set 1069# CONFIG_CONTEXT_SWITCH_TRACER is not set
1034# CONFIG_BOOT_TRACER is not set 1070# CONFIG_BOOT_TRACER is not set
1071# CONFIG_TRACE_BRANCH_PROFILING is not set
1035# CONFIG_STACK_TRACER is not set 1072# CONFIG_STACK_TRACER is not set
1036# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1073# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1037# CONFIG_SAMPLES is not set 1074# CONFIG_SAMPLES is not set
1038CONFIG_HAVE_ARCH_KGDB=y 1075CONFIG_HAVE_ARCH_KGDB=y
1039# CONFIG_KGDB is not set 1076# CONFIG_KGDB is not set
1077CONFIG_PRINT_STACK_DEPTH=64
1040# CONFIG_DEBUG_STACKOVERFLOW is not set 1078# CONFIG_DEBUG_STACKOVERFLOW is not set
1041# CONFIG_DEBUG_STACK_USAGE is not set 1079# CONFIG_DEBUG_STACK_USAGE is not set
1042# CONFIG_DEBUG_PAGEALLOC is not set 1080# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1063,11 +1101,15 @@ CONFIG_CRYPTO=y
1063# 1101#
1064# CONFIG_CRYPTO_FIPS is not set 1102# CONFIG_CRYPTO_FIPS is not set
1065CONFIG_CRYPTO_ALGAPI=y 1103CONFIG_CRYPTO_ALGAPI=y
1066CONFIG_CRYPTO_AEAD=y 1104CONFIG_CRYPTO_ALGAPI2=y
1105CONFIG_CRYPTO_AEAD2=y
1067CONFIG_CRYPTO_BLKCIPHER=y 1106CONFIG_CRYPTO_BLKCIPHER=y
1107CONFIG_CRYPTO_BLKCIPHER2=y
1068CONFIG_CRYPTO_HASH=y 1108CONFIG_CRYPTO_HASH=y
1069CONFIG_CRYPTO_RNG=y 1109CONFIG_CRYPTO_HASH2=y
1110CONFIG_CRYPTO_RNG2=y
1070CONFIG_CRYPTO_MANAGER=y 1111CONFIG_CRYPTO_MANAGER=y
1112CONFIG_CRYPTO_MANAGER2=y
1071# CONFIG_CRYPTO_GF128MUL is not set 1113# CONFIG_CRYPTO_GF128MUL is not set
1072# CONFIG_CRYPTO_NULL is not set 1114# CONFIG_CRYPTO_NULL is not set
1073# CONFIG_CRYPTO_CRYPTD is not set 1115# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig
index 3c0d4e561726..fb10f22fd0d2 100644
--- a/arch/powerpc/configs/52xx/motionpro_defconfig
+++ b/arch/powerpc/configs/52xx/motionpro_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:11:02 2008 4# Mon Jan 26 21:42:29 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -71,14 +71,23 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 71# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 72# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74
75#
76# RCU Subsystem
77#
78CONFIG_CLASSIC_RCU=y
79# CONFIG_TREE_RCU is not set
80# CONFIG_PREEMPT_RCU is not set
81# CONFIG_TREE_RCU_TRACE is not set
82# CONFIG_PREEMPT_RCU_TRACE is not set
74# CONFIG_IKCONFIG is not set 83# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 84CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 85CONFIG_GROUP_SCHED=y
78CONFIG_FAIR_GROUP_SCHED=y 86CONFIG_FAIR_GROUP_SCHED=y
79# CONFIG_RT_GROUP_SCHED is not set 87# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 88CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 89# CONFIG_CGROUP_SCHED is not set
90# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 91CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 92CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 93# CONFIG_RELAY is not set
@@ -110,7 +119,6 @@ CONFIG_SLUB_DEBUG=y
110CONFIG_SLUB=y 119CONFIG_SLUB=y
111# CONFIG_SLOB is not set 120# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 121# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 122CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y 124CONFIG_HAVE_IOREMAP_PROT=y
@@ -121,13 +129,11 @@ CONFIG_HAVE_CLK=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set
125CONFIG_BASE_SMALL=0 132CONFIG_BASE_SMALL=0
126# CONFIG_MODULES is not set 133# CONFIG_MODULES is not set
127CONFIG_BLOCK=y 134CONFIG_BLOCK=y
128# CONFIG_LBD is not set 135# CONFIG_LBD is not set
129# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
130# CONFIG_LSF is not set
131# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
133 139
@@ -143,7 +149,6 @@ CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_CFQ is not set 149# CONFIG_DEFAULT_CFQ is not set
144# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
145CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
146CONFIG_CLASSIC_RCU=y
147# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
148 153
149# 154#
@@ -182,9 +187,9 @@ CONFIG_PPC_MPC5200_SIMPLE=y
182# CONFIG_TAU is not set 187# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
184CONFIG_PPC_BESTCOMM=y 189CONFIG_PPC_BESTCOMM=y
185# CONFIG_PPC_BESTCOMM_ATA is not set 190CONFIG_PPC_BESTCOMM_ATA=y
186CONFIG_PPC_BESTCOMM_FEC=y 191CONFIG_PPC_BESTCOMM_FEC=y
187# CONFIG_PPC_BESTCOMM_GEN_BD is not set 192# CONFIG_SIMPLE_GPIO is not set
188 193
189# 194#
190# Kernel options 195# Kernel options
@@ -211,6 +216,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
211CONFIG_ARCH_HAS_WALK_MEMORY=y 216CONFIG_ARCH_HAS_WALK_MEMORY=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
213# CONFIG_KEXEC is not set 218# CONFIG_KEXEC is not set
219# CONFIG_CRASH_DUMP is not set
214CONFIG_ARCH_FLATMEM_ENABLE=y 220CONFIG_ARCH_FLATMEM_ENABLE=y
215CONFIG_ARCH_POPULATES_NODE_MAP=y 221CONFIG_ARCH_POPULATES_NODE_MAP=y
216CONFIG_SELECT_MEMORY_MODEL=y 222CONFIG_SELECT_MEMORY_MODEL=y
@@ -222,12 +228,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 232CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 233CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 234CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 235CONFIG_UNEVICTABLE_LRU=y
236CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
@@ -268,6 +276,7 @@ CONFIG_NET=y
268# 276#
269# Networking options 277# Networking options
270# 278#
279CONFIG_COMPAT_NET_DEV_OPS=y
271CONFIG_PACKET=y 280CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 281# CONFIG_PACKET_MMAP is not set
273CONFIG_UNIX=y 282CONFIG_UNIX=y
@@ -324,6 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_ECONET is not set 333# CONFIG_ECONET is not set
325# CONFIG_WAN_ROUTER is not set 334# CONFIG_WAN_ROUTER is not set
326# CONFIG_NET_SCHED is not set 335# CONFIG_NET_SCHED is not set
336# CONFIG_DCB is not set
327 337
328# 338#
329# Network testing 339# Network testing
@@ -336,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_AF_RXRPC is not set 346# CONFIG_AF_RXRPC is not set
337# CONFIG_PHONET is not set 347# CONFIG_PHONET is not set
338# CONFIG_WIRELESS is not set 348# CONFIG_WIRELESS is not set
349# CONFIG_WIMAX is not set
339# CONFIG_RFKILL is not set 350# CONFIG_RFKILL is not set
340# CONFIG_NET_9P is not set 351# CONFIG_NET_9P is not set
341 352
@@ -427,6 +438,12 @@ CONFIG_MTD_ROM=y
427# CONFIG_MTD_ONENAND is not set 438# CONFIG_MTD_ONENAND is not set
428 439
429# 440#
441# LPDDR flash memory drivers
442#
443# CONFIG_MTD_LPDDR is not set
444# CONFIG_MTD_QINFO_PROBE is not set
445
446#
430# UBI - Unsorted block images 447# UBI - Unsorted block images
431# 448#
432# CONFIG_MTD_UBI is not set 449# CONFIG_MTD_UBI is not set
@@ -447,10 +464,16 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
447# CONFIG_ATA_OVER_ETH is not set 464# CONFIG_ATA_OVER_ETH is not set
448# CONFIG_BLK_DEV_HD is not set 465# CONFIG_BLK_DEV_HD is not set
449CONFIG_MISC_DEVICES=y 466CONFIG_MISC_DEVICES=y
450# CONFIG_EEPROM_93CX6 is not set
451# CONFIG_ICS932S401 is not set 467# CONFIG_ICS932S401 is not set
452# CONFIG_ENCLOSURE_SERVICES is not set 468# CONFIG_ENCLOSURE_SERVICES is not set
453# CONFIG_C2PORT is not set 469# CONFIG_C2PORT is not set
470
471#
472# EEPROM support
473#
474# CONFIG_EEPROM_AT24 is not set
475CONFIG_EEPROM_LEGACY=y
476# CONFIG_EEPROM_93CX6 is not set
454CONFIG_HAVE_IDE=y 477CONFIG_HAVE_IDE=y
455# CONFIG_IDE is not set 478# CONFIG_IDE is not set
456 479
@@ -492,6 +515,7 @@ CONFIG_CHR_DEV_SG=y
492# CONFIG_SCSI_SRP_ATTRS is not set 515# CONFIG_SCSI_SRP_ATTRS is not set
493CONFIG_SCSI_LOWLEVEL=y 516CONFIG_SCSI_LOWLEVEL=y
494# CONFIG_ISCSI_TCP is not set 517# CONFIG_ISCSI_TCP is not set
518# CONFIG_LIBFC is not set
495# CONFIG_SCSI_DEBUG is not set 519# CONFIG_SCSI_DEBUG is not set
496# CONFIG_SCSI_DH is not set 520# CONFIG_SCSI_DH is not set
497CONFIG_ATA=y 521CONFIG_ATA=y
@@ -525,6 +549,9 @@ CONFIG_SMSC_PHY=y
525CONFIG_BROADCOM_PHY=y 549CONFIG_BROADCOM_PHY=y
526CONFIG_ICPLUS_PHY=y 550CONFIG_ICPLUS_PHY=y
527# CONFIG_REALTEK_PHY is not set 551# CONFIG_REALTEK_PHY is not set
552# CONFIG_NATIONAL_PHY is not set
553# CONFIG_STE10XP is not set
554# CONFIG_LSI_ET1011C_PHY is not set
528# CONFIG_FIXED_PHY is not set 555# CONFIG_FIXED_PHY is not set
529CONFIG_MDIO_BITBANG=y 556CONFIG_MDIO_BITBANG=y
530CONFIG_NET_ETHERNET=y 557CONFIG_NET_ETHERNET=y
@@ -548,6 +575,10 @@ CONFIG_FEC_MPC52xx_MDIO=y
548# CONFIG_WLAN_PRE80211 is not set 575# CONFIG_WLAN_PRE80211 is not set
549# CONFIG_WLAN_80211 is not set 576# CONFIG_WLAN_80211 is not set
550# CONFIG_IWLWIFI_LEDS is not set 577# CONFIG_IWLWIFI_LEDS is not set
578
579#
580# Enable WiMAX (Networking options) to see the WiMAX drivers
581#
551# CONFIG_WAN is not set 582# CONFIG_WAN is not set
552# CONFIG_PPP is not set 583# CONFIG_PPP is not set
553# CONFIG_SLIP is not set 584# CONFIG_SLIP is not set
@@ -590,8 +621,10 @@ CONFIG_SERIAL_MPC52xx=y
590CONFIG_SERIAL_MPC52xx_CONSOLE=y 621CONFIG_SERIAL_MPC52xx_CONSOLE=y
591CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 622CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
592CONFIG_UNIX98_PTYS=y 623CONFIG_UNIX98_PTYS=y
624# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
593CONFIG_LEGACY_PTYS=y 625CONFIG_LEGACY_PTYS=y
594CONFIG_LEGACY_PTY_COUNT=256 626CONFIG_LEGACY_PTY_COUNT=256
627# CONFIG_HVC_UDBG is not set
595# CONFIG_IPMI_HANDLER is not set 628# CONFIG_IPMI_HANDLER is not set
596# CONFIG_HW_RANDOM is not set 629# CONFIG_HW_RANDOM is not set
597# CONFIG_NVRAM is not set 630# CONFIG_NVRAM is not set
@@ -629,8 +662,6 @@ CONFIG_I2C_MPC=y
629# Miscellaneous I2C Chip support 662# Miscellaneous I2C Chip support
630# 663#
631# CONFIG_DS1682 is not set 664# CONFIG_DS1682 is not set
632# CONFIG_AT24 is not set
633CONFIG_SENSORS_EEPROM=y
634# CONFIG_SENSORS_PCF8574 is not set 665# CONFIG_SENSORS_PCF8574 is not set
635# CONFIG_PCF8575 is not set 666# CONFIG_PCF8575 is not set
636# CONFIG_SENSORS_PCA9539 is not set 667# CONFIG_SENSORS_PCA9539 is not set
@@ -659,6 +690,7 @@ CONFIG_HWMON=y
659# CONFIG_SENSORS_ADT7462 is not set 690# CONFIG_SENSORS_ADT7462 is not set
660# CONFIG_SENSORS_ADT7470 is not set 691# CONFIG_SENSORS_ADT7470 is not set
661# CONFIG_SENSORS_ADT7473 is not set 692# CONFIG_SENSORS_ADT7473 is not set
693# CONFIG_SENSORS_ADT7475 is not set
662# CONFIG_SENSORS_ATXP1 is not set 694# CONFIG_SENSORS_ATXP1 is not set
663# CONFIG_SENSORS_DS1621 is not set 695# CONFIG_SENSORS_DS1621 is not set
664# CONFIG_SENSORS_F71805F is not set 696# CONFIG_SENSORS_F71805F is not set
@@ -678,6 +710,7 @@ CONFIG_HWMON=y
678# CONFIG_SENSORS_LM90 is not set 710# CONFIG_SENSORS_LM90 is not set
679# CONFIG_SENSORS_LM92 is not set 711# CONFIG_SENSORS_LM92 is not set
680# CONFIG_SENSORS_LM93 is not set 712# CONFIG_SENSORS_LM93 is not set
713# CONFIG_SENSORS_LTC4245 is not set
681# CONFIG_SENSORS_MAX1619 is not set 714# CONFIG_SENSORS_MAX1619 is not set
682# CONFIG_SENSORS_MAX6650 is not set 715# CONFIG_SENSORS_MAX6650 is not set
683# CONFIG_SENSORS_PC87360 is not set 716# CONFIG_SENSORS_PC87360 is not set
@@ -721,10 +754,12 @@ CONFIG_SSB_POSSIBLE=y
721# CONFIG_MFD_CORE is not set 754# CONFIG_MFD_CORE is not set
722# CONFIG_MFD_SM501 is not set 755# CONFIG_MFD_SM501 is not set
723# CONFIG_HTC_PASIC3 is not set 756# CONFIG_HTC_PASIC3 is not set
757# CONFIG_TWL4030_CORE is not set
724# CONFIG_MFD_TMIO is not set 758# CONFIG_MFD_TMIO is not set
725# CONFIG_PMIC_DA903X is not set 759# CONFIG_PMIC_DA903X is not set
726# CONFIG_MFD_WM8400 is not set 760# CONFIG_MFD_WM8400 is not set
727# CONFIG_MFD_WM8350_I2C is not set 761# CONFIG_MFD_WM8350_I2C is not set
762# CONFIG_MFD_PCF50633 is not set
728# CONFIG_REGULATOR is not set 763# CONFIG_REGULATOR is not set
729 764
730# 765#
@@ -835,7 +870,6 @@ CONFIG_RTC_DRV_DS1307=y
835# CONFIG_DMADEVICES is not set 870# CONFIG_DMADEVICES is not set
836# CONFIG_UIO is not set 871# CONFIG_UIO is not set
837# CONFIG_STAGING is not set 872# CONFIG_STAGING is not set
838CONFIG_STAGING_EXCLUDE_BUILD=y
839 873
840# 874#
841# File systems 875# File systems
@@ -856,6 +890,7 @@ CONFIG_FS_MBCACHE=y
856CONFIG_FILE_LOCKING=y 890CONFIG_FILE_LOCKING=y
857# CONFIG_XFS_FS is not set 891# CONFIG_XFS_FS is not set
858# CONFIG_OCFS2_FS is not set 892# CONFIG_OCFS2_FS is not set
893# CONFIG_BTRFS_FS is not set
859CONFIG_DNOTIFY=y 894CONFIG_DNOTIFY=y
860CONFIG_INOTIFY=y 895CONFIG_INOTIFY=y
861CONFIG_INOTIFY_USER=y 896CONFIG_INOTIFY_USER=y
@@ -892,10 +927,7 @@ CONFIG_TMPFS=y
892# CONFIG_TMPFS_POSIX_ACL is not set 927# CONFIG_TMPFS_POSIX_ACL is not set
893# CONFIG_HUGETLB_PAGE is not set 928# CONFIG_HUGETLB_PAGE is not set
894# CONFIG_CONFIGFS_FS is not set 929# CONFIG_CONFIGFS_FS is not set
895 930CONFIG_MISC_FILESYSTEMS=y
896#
897# Miscellaneous filesystems
898#
899# CONFIG_ADFS_FS is not set 931# CONFIG_ADFS_FS is not set
900# CONFIG_AFFS_FS is not set 932# CONFIG_AFFS_FS is not set
901# CONFIG_HFS_FS is not set 933# CONFIG_HFS_FS is not set
@@ -915,6 +947,7 @@ CONFIG_JFFS2_ZLIB=y
915CONFIG_JFFS2_RTIME=y 947CONFIG_JFFS2_RTIME=y
916# CONFIG_JFFS2_RUBIN is not set 948# CONFIG_JFFS2_RUBIN is not set
917CONFIG_CRAMFS=y 949CONFIG_CRAMFS=y
950# CONFIG_SQUASHFS is not set
918# CONFIG_VXFS_FS is not set 951# CONFIG_VXFS_FS is not set
919# CONFIG_MINIX_FS is not set 952# CONFIG_MINIX_FS is not set
920# CONFIG_OMFS_FS is not set 953# CONFIG_OMFS_FS is not set
@@ -1011,6 +1044,7 @@ CONFIG_NLS_ISO8859_1=y
1011# Library routines 1044# Library routines
1012# 1045#
1013CONFIG_BITREVERSE=y 1046CONFIG_BITREVERSE=y
1047CONFIG_GENERIC_FIND_LAST_BIT=y
1014# CONFIG_CRC_CCITT is not set 1048# CONFIG_CRC_CCITT is not set
1015# CONFIG_CRC16 is not set 1049# CONFIG_CRC16 is not set
1016# CONFIG_CRC_T10DIF is not set 1050# CONFIG_CRC_T10DIF is not set
@@ -1062,6 +1096,7 @@ CONFIG_DEBUG_INFO=y
1062# CONFIG_DEBUG_MEMORY_INIT is not set 1096# CONFIG_DEBUG_MEMORY_INIT is not set
1063# CONFIG_DEBUG_LIST is not set 1097# CONFIG_DEBUG_LIST is not set
1064# CONFIG_DEBUG_SG is not set 1098# CONFIG_DEBUG_SG is not set
1099# CONFIG_DEBUG_NOTIFIERS is not set
1065# CONFIG_BOOT_PRINTK_DELAY is not set 1100# CONFIG_BOOT_PRINTK_DELAY is not set
1066# CONFIG_RCU_TORTURE_TEST is not set 1101# CONFIG_RCU_TORTURE_TEST is not set
1067# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1102# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1070,6 +1105,8 @@ CONFIG_DEBUG_INFO=y
1070# CONFIG_FAULT_INJECTION is not set 1105# CONFIG_FAULT_INJECTION is not set
1071# CONFIG_LATENCYTOP is not set 1106# CONFIG_LATENCYTOP is not set
1072CONFIG_HAVE_FUNCTION_TRACER=y 1107CONFIG_HAVE_FUNCTION_TRACER=y
1108CONFIG_HAVE_DYNAMIC_FTRACE=y
1109CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1073 1110
1074# 1111#
1075# Tracers 1112# Tracers
@@ -1078,11 +1115,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1078# CONFIG_SCHED_TRACER is not set 1115# CONFIG_SCHED_TRACER is not set
1079# CONFIG_CONTEXT_SWITCH_TRACER is not set 1116# CONFIG_CONTEXT_SWITCH_TRACER is not set
1080# CONFIG_BOOT_TRACER is not set 1117# CONFIG_BOOT_TRACER is not set
1118# CONFIG_TRACE_BRANCH_PROFILING is not set
1081# CONFIG_STACK_TRACER is not set 1119# CONFIG_STACK_TRACER is not set
1082# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1120# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1083# CONFIG_SAMPLES is not set 1121# CONFIG_SAMPLES is not set
1084CONFIG_HAVE_ARCH_KGDB=y 1122CONFIG_HAVE_ARCH_KGDB=y
1085# CONFIG_KGDB is not set 1123# CONFIG_KGDB is not set
1124CONFIG_PRINT_STACK_DEPTH=64
1086# CONFIG_DEBUG_STACKOVERFLOW is not set 1125# CONFIG_DEBUG_STACKOVERFLOW is not set
1087# CONFIG_DEBUG_STACK_USAGE is not set 1126# CONFIG_DEBUG_STACK_USAGE is not set
1088# CONFIG_DEBUG_PAGEALLOC is not set 1127# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1109,11 +1148,15 @@ CONFIG_CRYPTO=y
1109# 1148#
1110# CONFIG_CRYPTO_FIPS is not set 1149# CONFIG_CRYPTO_FIPS is not set
1111CONFIG_CRYPTO_ALGAPI=y 1150CONFIG_CRYPTO_ALGAPI=y
1112CONFIG_CRYPTO_AEAD=y 1151CONFIG_CRYPTO_ALGAPI2=y
1152CONFIG_CRYPTO_AEAD2=y
1113CONFIG_CRYPTO_BLKCIPHER=y 1153CONFIG_CRYPTO_BLKCIPHER=y
1154CONFIG_CRYPTO_BLKCIPHER2=y
1114CONFIG_CRYPTO_HASH=y 1155CONFIG_CRYPTO_HASH=y
1115CONFIG_CRYPTO_RNG=y 1156CONFIG_CRYPTO_HASH2=y
1157CONFIG_CRYPTO_RNG2=y
1116CONFIG_CRYPTO_MANAGER=y 1158CONFIG_CRYPTO_MANAGER=y
1159CONFIG_CRYPTO_MANAGER2=y
1117# CONFIG_CRYPTO_GF128MUL is not set 1160# CONFIG_CRYPTO_GF128MUL is not set
1118# CONFIG_CRYPTO_NULL is not set 1161# CONFIG_CRYPTO_NULL is not set
1119# CONFIG_CRYPTO_CRYPTD is not set 1162# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig
index 9d0207783d60..00944c09a0ae 100644
--- a/arch/powerpc/configs/52xx/pcm030_defconfig
+++ b/arch/powerpc/configs/52xx/pcm030_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:13:16 2008 4# Mon Jan 26 21:41:33 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -72,15 +72,24 @@ CONFIG_POSIX_MQUEUE=y
72# CONFIG_BSD_PROCESS_ACCT is not set 72# CONFIG_BSD_PROCESS_ACCT is not set
73# CONFIG_TASKSTATS is not set 73# CONFIG_TASKSTATS is not set
74# CONFIG_AUDIT is not set 74# CONFIG_AUDIT is not set
75
76#
77# RCU Subsystem
78#
79CONFIG_CLASSIC_RCU=y
80# CONFIG_TREE_RCU is not set
81# CONFIG_PREEMPT_RCU is not set
82# CONFIG_TREE_RCU_TRACE is not set
83# CONFIG_PREEMPT_RCU_TRACE is not set
75CONFIG_IKCONFIG=y 84CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 85CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=14 86CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 87CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 88CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 89# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 90CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 91# CONFIG_CGROUP_SCHED is not set
92# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 93CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 94CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 95# CONFIG_RELAY is not set
@@ -112,7 +121,6 @@ CONFIG_SLAB=y
112# CONFIG_SLUB is not set 121# CONFIG_SLUB is not set
113# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 125# CONFIG_KPROBES is not set
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -124,7 +132,6 @@ CONFIG_HAVE_CLK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 134CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 135CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 136CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 137# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +139,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 139# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 140# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 141# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 142CONFIG_BLOCK=y
137# CONFIG_LBD is not set 143# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 144# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 146# CONFIG_BLK_DEV_INTEGRITY is not set
142 147
@@ -152,7 +157,6 @@ CONFIG_IOSCHED_NOOP=y
152# CONFIG_DEFAULT_CFQ is not set 157# CONFIG_DEFAULT_CFQ is not set
153CONFIG_DEFAULT_NOOP=y 158CONFIG_DEFAULT_NOOP=y
154CONFIG_DEFAULT_IOSCHED="noop" 159CONFIG_DEFAULT_IOSCHED="noop"
155CONFIG_CLASSIC_RCU=y
156# CONFIG_FREEZER is not set 160# CONFIG_FREEZER is not set
157 161
158# 162#
@@ -191,9 +195,9 @@ CONFIG_PPC_MPC5200_SIMPLE=y
191# CONFIG_TAU is not set 195# CONFIG_TAU is not set
192# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
193CONFIG_PPC_BESTCOMM=y 197CONFIG_PPC_BESTCOMM=y
194CONFIG_PPC_BESTCOMM_ATA=y 198CONFIG_PPC_BESTCOMM_ATA=m
195CONFIG_PPC_BESTCOMM_FEC=y 199CONFIG_PPC_BESTCOMM_FEC=y
196CONFIG_PPC_BESTCOMM_GEN_BD=y 200# CONFIG_SIMPLE_GPIO is not set
197 201
198# 202#
199# Kernel options 203# Kernel options
@@ -212,7 +216,6 @@ CONFIG_SCHED_HRTICK=y
212# CONFIG_PREEMPT_NONE is not set 216# CONFIG_PREEMPT_NONE is not set
213# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
214CONFIG_PREEMPT=y 218CONFIG_PREEMPT=y
215# CONFIG_PREEMPT_RCU is not set
216CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
217# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
218# CONFIG_HAVE_AOUT is not set 221# CONFIG_HAVE_AOUT is not set
@@ -222,6 +225,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
222CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
223CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
224# CONFIG_KEXEC is not set 227# CONFIG_KEXEC is not set
228# CONFIG_CRASH_DUMP is not set
225CONFIG_ARCH_FLATMEM_ENABLE=y 229CONFIG_ARCH_FLATMEM_ENABLE=y
226CONFIG_ARCH_POPULATES_NODE_MAP=y 230CONFIG_ARCH_POPULATES_NODE_MAP=y
227CONFIG_SELECT_MEMORY_MODEL=y 231CONFIG_SELECT_MEMORY_MODEL=y
@@ -233,12 +237,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
233CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
234CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
235CONFIG_MIGRATION=y 239CONFIG_MIGRATION=y
236# CONFIG_RESOURCES_64BIT is not set
237# CONFIG_PHYS_ADDR_T_64BIT is not set 240# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
241CONFIG_UNEVICTABLE_LRU=y 244CONFIG_UNEVICTABLE_LRU=y
245CONFIG_PPC_4K_PAGES=y
246# CONFIG_PPC_16K_PAGES is not set
247# CONFIG_PPC_64K_PAGES is not set
242CONFIG_FORCE_MAX_ZONEORDER=11 248CONFIG_FORCE_MAX_ZONEORDER=11
243CONFIG_PROC_DEVICETREE=y 249CONFIG_PROC_DEVICETREE=y
244# CONFIG_CMDLINE_BOOL is not set 250# CONFIG_CMDLINE_BOOL is not set
@@ -261,6 +267,7 @@ CONFIG_PCI_SYSCALL=y
261CONFIG_ARCH_SUPPORTS_MSI=y 267CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 268# CONFIG_PCI_MSI is not set
263CONFIG_PCI_LEGACY=y 269CONFIG_PCI_LEGACY=y
270# CONFIG_PCI_STUB is not set
264# CONFIG_PCCARD is not set 271# CONFIG_PCCARD is not set
265# CONFIG_HOTPLUG_PCI is not set 272# CONFIG_HOTPLUG_PCI is not set
266# CONFIG_HAS_RAPIDIO is not set 273# CONFIG_HAS_RAPIDIO is not set
@@ -283,6 +290,7 @@ CONFIG_NET=y
283# 290#
284# Networking options 291# Networking options
285# 292#
293CONFIG_COMPAT_NET_DEV_OPS=y
286CONFIG_PACKET=y 294CONFIG_PACKET=y
287# CONFIG_PACKET_MMAP is not set 295# CONFIG_PACKET_MMAP is not set
288CONFIG_UNIX=y 296CONFIG_UNIX=y
@@ -333,6 +341,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_ECONET is not set 341# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 342# CONFIG_WAN_ROUTER is not set
335# CONFIG_NET_SCHED is not set 343# CONFIG_NET_SCHED is not set
344# CONFIG_DCB is not set
336 345
337# 346#
338# Network testing 347# Network testing
@@ -345,6 +354,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_AF_RXRPC is not set 354# CONFIG_AF_RXRPC is not set
346# CONFIG_PHONET is not set 355# CONFIG_PHONET is not set
347# CONFIG_WIRELESS is not set 356# CONFIG_WIRELESS is not set
357# CONFIG_WIMAX is not set
348# CONFIG_RFKILL is not set 358# CONFIG_RFKILL is not set
349# CONFIG_NET_9P is not set 359# CONFIG_NET_9P is not set
350 360
@@ -365,6 +375,7 @@ CONFIG_MTD=y
365# CONFIG_MTD_DEBUG is not set 375# CONFIG_MTD_DEBUG is not set
366# CONFIG_MTD_CONCAT is not set 376# CONFIG_MTD_CONCAT is not set
367CONFIG_MTD_PARTITIONS=y 377CONFIG_MTD_PARTITIONS=y
378# CONFIG_MTD_TESTS is not set
368# CONFIG_MTD_REDBOOT_PARTS is not set 379# CONFIG_MTD_REDBOOT_PARTS is not set
369CONFIG_MTD_CMDLINE_PARTS=y 380CONFIG_MTD_CMDLINE_PARTS=y
370# CONFIG_MTD_OF_PARTS is not set 381# CONFIG_MTD_OF_PARTS is not set
@@ -413,9 +424,7 @@ CONFIG_MTD_CFI_UTIL=y
413# 424#
414# CONFIG_MTD_COMPLEX_MAPPINGS is not set 425# CONFIG_MTD_COMPLEX_MAPPINGS is not set
415CONFIG_MTD_PHYSMAP=y 426CONFIG_MTD_PHYSMAP=y
416CONFIG_MTD_PHYSMAP_START=0x0 427# CONFIG_MTD_PHYSMAP_COMPAT is not set
417CONFIG_MTD_PHYSMAP_LEN=0x0
418CONFIG_MTD_PHYSMAP_BANKWIDTH=1
419# CONFIG_MTD_PHYSMAP_OF is not set 428# CONFIG_MTD_PHYSMAP_OF is not set
420# CONFIG_MTD_INTEL_VR_NOR is not set 429# CONFIG_MTD_INTEL_VR_NOR is not set
421# CONFIG_MTD_PLATRAM is not set 430# CONFIG_MTD_PLATRAM is not set
@@ -439,6 +448,12 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
439# CONFIG_MTD_ONENAND is not set 448# CONFIG_MTD_ONENAND is not set
440 449
441# 450#
451# LPDDR flash memory drivers
452#
453# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455
456#
442# UBI - Unsorted block images 457# UBI - Unsorted block images
443# 458#
444# CONFIG_MTD_UBI is not set 459# CONFIG_MTD_UBI is not set
@@ -587,6 +602,9 @@ CONFIG_PHYLIB=y
587# CONFIG_BROADCOM_PHY is not set 602# CONFIG_BROADCOM_PHY is not set
588# CONFIG_ICPLUS_PHY is not set 603# CONFIG_ICPLUS_PHY is not set
589# CONFIG_REALTEK_PHY is not set 604# CONFIG_REALTEK_PHY is not set
605# CONFIG_NATIONAL_PHY is not set
606# CONFIG_STE10XP is not set
607# CONFIG_LSI_ET1011C_PHY is not set
590# CONFIG_FIXED_PHY is not set 608# CONFIG_FIXED_PHY is not set
591# CONFIG_MDIO_BITBANG is not set 609# CONFIG_MDIO_BITBANG is not set
592CONFIG_NET_ETHERNET=y 610CONFIG_NET_ETHERNET=y
@@ -621,6 +639,10 @@ CONFIG_FEC_MPC52xx_MDIO=y
621# CONFIG_IWLWIFI_LEDS is not set 639# CONFIG_IWLWIFI_LEDS is not set
622 640
623# 641#
642# Enable WiMAX (Networking options) to see the WiMAX drivers
643#
644
645#
624# USB Network Adapters 646# USB Network Adapters
625# 647#
626# CONFIG_USB_CATC is not set 648# CONFIG_USB_CATC is not set
@@ -675,7 +697,9 @@ CONFIG_SERIAL_MPC52xx_CONSOLE=y
675CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=9600 697CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=9600
676# CONFIG_SERIAL_JSM is not set 698# CONFIG_SERIAL_JSM is not set
677CONFIG_UNIX98_PTYS=y 699CONFIG_UNIX98_PTYS=y
700# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
678# CONFIG_LEGACY_PTYS is not set 701# CONFIG_LEGACY_PTYS is not set
702# CONFIG_HVC_UDBG is not set
679# CONFIG_IPMI_HANDLER is not set 703# CONFIG_IPMI_HANDLER is not set
680CONFIG_HW_RANDOM=y 704CONFIG_HW_RANDOM=y
681# CONFIG_NVRAM is not set 705# CONFIG_NVRAM is not set
@@ -740,8 +764,6 @@ CONFIG_I2C_MPC=y
740# Miscellaneous I2C Chip support 764# Miscellaneous I2C Chip support
741# 765#
742# CONFIG_DS1682 is not set 766# CONFIG_DS1682 is not set
743# CONFIG_AT24 is not set
744CONFIG_SENSORS_EEPROM=m
745# CONFIG_SENSORS_PCF8574 is not set 767# CONFIG_SENSORS_PCF8574 is not set
746# CONFIG_PCF8575 is not set 768# CONFIG_PCF8575 is not set
747# CONFIG_SENSORS_PCA9539 is not set 769# CONFIG_SENSORS_PCA9539 is not set
@@ -774,10 +796,12 @@ CONFIG_SSB_POSSIBLE=y
774# CONFIG_MFD_CORE is not set 796# CONFIG_MFD_CORE is not set
775# CONFIG_MFD_SM501 is not set 797# CONFIG_MFD_SM501 is not set
776# CONFIG_HTC_PASIC3 is not set 798# CONFIG_HTC_PASIC3 is not set
799# CONFIG_TWL4030_CORE is not set
777# CONFIG_MFD_TMIO is not set 800# CONFIG_MFD_TMIO is not set
778# CONFIG_PMIC_DA903X is not set 801# CONFIG_PMIC_DA903X is not set
779# CONFIG_MFD_WM8400 is not set 802# CONFIG_MFD_WM8400 is not set
780# CONFIG_MFD_WM8350_I2C is not set 803# CONFIG_MFD_WM8350_I2C is not set
804# CONFIG_MFD_PCF50633 is not set
781# CONFIG_REGULATOR is not set 805# CONFIG_REGULATOR is not set
782 806
783# 807#
@@ -837,6 +861,7 @@ CONFIG_USB_DEVICEFS=y
837# 861#
838# CONFIG_USB_C67X00_HCD is not set 862# CONFIG_USB_C67X00_HCD is not set
839# CONFIG_USB_EHCI_HCD is not set 863# CONFIG_USB_EHCI_HCD is not set
864# CONFIG_USB_OXU210HP_HCD is not set
840# CONFIG_USB_ISP116X_HCD is not set 865# CONFIG_USB_ISP116X_HCD is not set
841# CONFIG_USB_ISP1760_HCD is not set 866# CONFIG_USB_ISP1760_HCD is not set
842CONFIG_USB_OHCI_HCD=m 867CONFIG_USB_OHCI_HCD=m
@@ -864,18 +889,17 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
864# CONFIG_USB_TMC is not set 889# CONFIG_USB_TMC is not set
865 890
866# 891#
867# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 892# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
868# 893#
869 894
870# 895#
871# may also be needed; see USB_STORAGE Help for more information 896# see USB_STORAGE Help for more information
872# 897#
873CONFIG_USB_STORAGE=m 898CONFIG_USB_STORAGE=m
874# CONFIG_USB_STORAGE_DEBUG is not set 899# CONFIG_USB_STORAGE_DEBUG is not set
875# CONFIG_USB_STORAGE_DATAFAB is not set 900# CONFIG_USB_STORAGE_DATAFAB is not set
876# CONFIG_USB_STORAGE_FREECOM is not set 901# CONFIG_USB_STORAGE_FREECOM is not set
877# CONFIG_USB_STORAGE_ISD200 is not set 902# CONFIG_USB_STORAGE_ISD200 is not set
878# CONFIG_USB_STORAGE_DPCM is not set
879# CONFIG_USB_STORAGE_USBAT is not set 903# CONFIG_USB_STORAGE_USBAT is not set
880# CONFIG_USB_STORAGE_SDDR09 is not set 904# CONFIG_USB_STORAGE_SDDR09 is not set
881# CONFIG_USB_STORAGE_SDDR55 is not set 905# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -921,6 +945,10 @@ CONFIG_USB_STORAGE=m
921# CONFIG_USB_ISIGHTFW is not set 945# CONFIG_USB_ISIGHTFW is not set
922# CONFIG_USB_VST is not set 946# CONFIG_USB_VST is not set
923# CONFIG_USB_GADGET is not set 947# CONFIG_USB_GADGET is not set
948
949#
950# OTG and related infrastructure
951#
924# CONFIG_UWB is not set 952# CONFIG_UWB is not set
925# CONFIG_MMC is not set 953# CONFIG_MMC is not set
926# CONFIG_MEMSTICK is not set 954# CONFIG_MEMSTICK is not set
@@ -983,7 +1011,6 @@ CONFIG_RTC_DRV_PCF8563=m
983# CONFIG_DMADEVICES is not set 1011# CONFIG_DMADEVICES is not set
984# CONFIG_UIO is not set 1012# CONFIG_UIO is not set
985# CONFIG_STAGING is not set 1013# CONFIG_STAGING is not set
986CONFIG_STAGING_EXCLUDE_BUILD=y
987 1014
988# 1015#
989# File systems 1016# File systems
@@ -1004,6 +1031,7 @@ CONFIG_FS_MBCACHE=m
1004CONFIG_FILE_LOCKING=y 1031CONFIG_FILE_LOCKING=y
1005# CONFIG_XFS_FS is not set 1032# CONFIG_XFS_FS is not set
1006# CONFIG_OCFS2_FS is not set 1033# CONFIG_OCFS2_FS is not set
1034# CONFIG_BTRFS_FS is not set
1007# CONFIG_DNOTIFY is not set 1035# CONFIG_DNOTIFY is not set
1008# CONFIG_INOTIFY is not set 1036# CONFIG_INOTIFY is not set
1009# CONFIG_QUOTA is not set 1037# CONFIG_QUOTA is not set
@@ -1039,10 +1067,7 @@ CONFIG_TMPFS=y
1039# CONFIG_TMPFS_POSIX_ACL is not set 1067# CONFIG_TMPFS_POSIX_ACL is not set
1040# CONFIG_HUGETLB_PAGE is not set 1068# CONFIG_HUGETLB_PAGE is not set
1041# CONFIG_CONFIGFS_FS is not set 1069# CONFIG_CONFIGFS_FS is not set
1042 1070CONFIG_MISC_FILESYSTEMS=y
1043#
1044# Miscellaneous filesystems
1045#
1046# CONFIG_ADFS_FS is not set 1071# CONFIG_ADFS_FS is not set
1047# CONFIG_AFFS_FS is not set 1072# CONFIG_AFFS_FS is not set
1048# CONFIG_HFS_FS is not set 1073# CONFIG_HFS_FS is not set
@@ -1062,6 +1087,7 @@ CONFIG_JFFS2_ZLIB=y
1062CONFIG_JFFS2_RTIME=y 1087CONFIG_JFFS2_RTIME=y
1063# CONFIG_JFFS2_RUBIN is not set 1088# CONFIG_JFFS2_RUBIN is not set
1064# CONFIG_CRAMFS is not set 1089# CONFIG_CRAMFS is not set
1090# CONFIG_SQUASHFS is not set
1065# CONFIG_VXFS_FS is not set 1091# CONFIG_VXFS_FS is not set
1066# CONFIG_MINIX_FS is not set 1092# CONFIG_MINIX_FS is not set
1067# CONFIG_OMFS_FS is not set 1093# CONFIG_OMFS_FS is not set
@@ -1141,6 +1167,7 @@ CONFIG_NLS_ISO8859_1=y
1141# Library routines 1167# Library routines
1142# 1168#
1143CONFIG_BITREVERSE=y 1169CONFIG_BITREVERSE=y
1170CONFIG_GENERIC_FIND_LAST_BIT=y
1144# CONFIG_CRC_CCITT is not set 1171# CONFIG_CRC_CCITT is not set
1145# CONFIG_CRC16 is not set 1172# CONFIG_CRC16 is not set
1146# CONFIG_CRC_T10DIF is not set 1173# CONFIG_CRC_T10DIF is not set
@@ -1173,6 +1200,8 @@ CONFIG_FRAME_WARN=1024
1173# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1200# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1174# CONFIG_LATENCYTOP is not set 1201# CONFIG_LATENCYTOP is not set
1175CONFIG_HAVE_FUNCTION_TRACER=y 1202CONFIG_HAVE_FUNCTION_TRACER=y
1203CONFIG_HAVE_DYNAMIC_FTRACE=y
1204CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1176 1205
1177# 1206#
1178# Tracers 1207# Tracers
@@ -1180,6 +1209,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1180# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1209# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1181# CONFIG_SAMPLES is not set 1210# CONFIG_SAMPLES is not set
1182CONFIG_HAVE_ARCH_KGDB=y 1211CONFIG_HAVE_ARCH_KGDB=y
1212CONFIG_PRINT_STACK_DEPTH=64
1183# CONFIG_IRQSTACKS is not set 1213# CONFIG_IRQSTACKS is not set
1184# CONFIG_BOOTX_TEXT is not set 1214# CONFIG_BOOTX_TEXT is not set
1185# CONFIG_PPC_EARLY_DEBUG is not set 1215# CONFIG_PPC_EARLY_DEBUG is not set
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig
index bc190051e8d5..65237ad6f07e 100644
--- a/arch/powerpc/configs/52xx/tqm5200_defconfig
+++ b/arch/powerpc/configs/52xx/tqm5200_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:09:30 2008 4# Mon Jan 26 21:42:58 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -71,14 +71,23 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 71# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 72# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74
75#
76# RCU Subsystem
77#
78CONFIG_CLASSIC_RCU=y
79# CONFIG_TREE_RCU is not set
80# CONFIG_PREEMPT_RCU is not set
81# CONFIG_TREE_RCU_TRACE is not set
82# CONFIG_PREEMPT_RCU_TRACE is not set
74# CONFIG_IKCONFIG is not set 83# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 84CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 85CONFIG_GROUP_SCHED=y
78CONFIG_FAIR_GROUP_SCHED=y 86CONFIG_FAIR_GROUP_SCHED=y
79# CONFIG_RT_GROUP_SCHED is not set 87# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 88CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 89# CONFIG_CGROUP_SCHED is not set
90# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 91CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 92CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 93# CONFIG_RELAY is not set
@@ -110,7 +119,6 @@ CONFIG_SLUB_DEBUG=y
110CONFIG_SLUB=y 119CONFIG_SLUB=y
111# CONFIG_SLOB is not set 120# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 121# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 122CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y 124CONFIG_HAVE_IOREMAP_PROT=y
@@ -121,7 +129,6 @@ CONFIG_HAVE_CLK=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set
125CONFIG_BASE_SMALL=0 132CONFIG_BASE_SMALL=0
126CONFIG_MODULES=y 133CONFIG_MODULES=y
127# CONFIG_MODULE_FORCE_LOAD is not set 134# CONFIG_MODULE_FORCE_LOAD is not set
@@ -129,11 +136,9 @@ CONFIG_MODULE_UNLOAD=y
129# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
130CONFIG_MODVERSIONS=y 137CONFIG_MODVERSIONS=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_KMOD=y
133CONFIG_BLOCK=y 139CONFIG_BLOCK=y
134# CONFIG_LBD is not set 140# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set 141# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_LSF is not set
137# CONFIG_BLK_DEV_BSG is not set 142# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set 143# CONFIG_BLK_DEV_INTEGRITY is not set
139 144
@@ -149,7 +154,6 @@ CONFIG_DEFAULT_AS=y
149# CONFIG_DEFAULT_CFQ is not set 154# CONFIG_DEFAULT_CFQ is not set
150# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="anticipatory" 156CONFIG_DEFAULT_IOSCHED="anticipatory"
152CONFIG_CLASSIC_RCU=y
153# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
154 158
155# 159#
@@ -188,9 +192,9 @@ CONFIG_PPC_MPC5200_BUGFIX=y
188# CONFIG_TAU is not set 192# CONFIG_TAU is not set
189# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
190CONFIG_PPC_BESTCOMM=y 194CONFIG_PPC_BESTCOMM=y
191# CONFIG_PPC_BESTCOMM_ATA is not set 195CONFIG_PPC_BESTCOMM_ATA=y
192CONFIG_PPC_BESTCOMM_FEC=y 196CONFIG_PPC_BESTCOMM_FEC=y
193# CONFIG_PPC_BESTCOMM_GEN_BD is not set 197# CONFIG_SIMPLE_GPIO is not set
194 198
195# 199#
196# Kernel options 200# Kernel options
@@ -217,6 +221,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
217CONFIG_ARCH_HAS_WALK_MEMORY=y 221CONFIG_ARCH_HAS_WALK_MEMORY=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
219# CONFIG_KEXEC is not set 223# CONFIG_KEXEC is not set
224# CONFIG_CRASH_DUMP is not set
220CONFIG_ARCH_FLATMEM_ENABLE=y 225CONFIG_ARCH_FLATMEM_ENABLE=y
221CONFIG_ARCH_POPULATES_NODE_MAP=y 226CONFIG_ARCH_POPULATES_NODE_MAP=y
222CONFIG_SELECT_MEMORY_MODEL=y 227CONFIG_SELECT_MEMORY_MODEL=y
@@ -228,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
229CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
230CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
231# CONFIG_RESOURCES_64BIT is not set
232# CONFIG_PHYS_ADDR_T_64BIT is not set 236# CONFIG_PHYS_ADDR_T_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -274,6 +281,7 @@ CONFIG_NET=y
274# 281#
275# Networking options 282# Networking options
276# 283#
284CONFIG_COMPAT_NET_DEV_OPS=y
277CONFIG_PACKET=y 285CONFIG_PACKET=y
278# CONFIG_PACKET_MMAP is not set 286# CONFIG_PACKET_MMAP is not set
279CONFIG_UNIX=y 287CONFIG_UNIX=y
@@ -330,6 +338,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_ECONET is not set 338# CONFIG_ECONET is not set
331# CONFIG_WAN_ROUTER is not set 339# CONFIG_WAN_ROUTER is not set
332# CONFIG_NET_SCHED is not set 340# CONFIG_NET_SCHED is not set
341# CONFIG_DCB is not set
333 342
334# 343#
335# Network testing 344# Network testing
@@ -342,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_AF_RXRPC is not set 351# CONFIG_AF_RXRPC is not set
343# CONFIG_PHONET is not set 352# CONFIG_PHONET is not set
344# CONFIG_WIRELESS is not set 353# CONFIG_WIRELESS is not set
354# CONFIG_WIMAX is not set
345# CONFIG_RFKILL is not set 355# CONFIG_RFKILL is not set
346# CONFIG_NET_9P is not set 356# CONFIG_NET_9P is not set
347 357
@@ -364,6 +374,7 @@ CONFIG_MTD=y
364# CONFIG_MTD_DEBUG is not set 374# CONFIG_MTD_DEBUG is not set
365CONFIG_MTD_CONCAT=y 375CONFIG_MTD_CONCAT=y
366CONFIG_MTD_PARTITIONS=y 376CONFIG_MTD_PARTITIONS=y
377# CONFIG_MTD_TESTS is not set
367# CONFIG_MTD_REDBOOT_PARTS is not set 378# CONFIG_MTD_REDBOOT_PARTS is not set
368CONFIG_MTD_CMDLINE_PARTS=y 379CONFIG_MTD_CMDLINE_PARTS=y
369# CONFIG_MTD_OF_PARTS is not set 380# CONFIG_MTD_OF_PARTS is not set
@@ -433,6 +444,12 @@ CONFIG_MTD_PHYSMAP_OF=y
433# CONFIG_MTD_ONENAND is not set 444# CONFIG_MTD_ONENAND is not set
434 445
435# 446#
447# LPDDR flash memory drivers
448#
449# CONFIG_MTD_LPDDR is not set
450# CONFIG_MTD_QINFO_PROBE is not set
451
452#
436# UBI - Unsorted block images 453# UBI - Unsorted block images
437# 454#
438# CONFIG_MTD_UBI is not set 455# CONFIG_MTD_UBI is not set
@@ -496,6 +513,7 @@ CONFIG_SCSI_WAIT_SCAN=m
496# CONFIG_SCSI_SRP_ATTRS is not set 513# CONFIG_SCSI_SRP_ATTRS is not set
497CONFIG_SCSI_LOWLEVEL=y 514CONFIG_SCSI_LOWLEVEL=y
498# CONFIG_ISCSI_TCP is not set 515# CONFIG_ISCSI_TCP is not set
516# CONFIG_LIBFC is not set
499# CONFIG_SCSI_DEBUG is not set 517# CONFIG_SCSI_DEBUG is not set
500# CONFIG_SCSI_DH is not set 518# CONFIG_SCSI_DH is not set
501CONFIG_ATA=y 519CONFIG_ATA=y
@@ -530,6 +548,9 @@ CONFIG_LXT_PHY=y
530# CONFIG_BROADCOM_PHY is not set 548# CONFIG_BROADCOM_PHY is not set
531# CONFIG_ICPLUS_PHY is not set 549# CONFIG_ICPLUS_PHY is not set
532# CONFIG_REALTEK_PHY is not set 550# CONFIG_REALTEK_PHY is not set
551# CONFIG_NATIONAL_PHY is not set
552# CONFIG_STE10XP is not set
553# CONFIG_LSI_ET1011C_PHY is not set
533# CONFIG_FIXED_PHY is not set 554# CONFIG_FIXED_PHY is not set
534# CONFIG_MDIO_BITBANG is not set 555# CONFIG_MDIO_BITBANG is not set
535CONFIG_NET_ETHERNET=y 556CONFIG_NET_ETHERNET=y
@@ -555,6 +576,10 @@ CONFIG_FEC_MPC52xx_MDIO=y
555# CONFIG_IWLWIFI_LEDS is not set 576# CONFIG_IWLWIFI_LEDS is not set
556 577
557# 578#
579# Enable WiMAX (Networking options) to see the WiMAX drivers
580#
581
582#
558# USB Network Adapters 583# USB Network Adapters
559# 584#
560# CONFIG_USB_CATC is not set 585# CONFIG_USB_CATC is not set
@@ -604,8 +629,10 @@ CONFIG_SERIAL_MPC52xx=y
604CONFIG_SERIAL_MPC52xx_CONSOLE=y 629CONFIG_SERIAL_MPC52xx_CONSOLE=y
605CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 630CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
606CONFIG_UNIX98_PTYS=y 631CONFIG_UNIX98_PTYS=y
632# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
607CONFIG_LEGACY_PTYS=y 633CONFIG_LEGACY_PTYS=y
608CONFIG_LEGACY_PTY_COUNT=256 634CONFIG_LEGACY_PTY_COUNT=256
635# CONFIG_HVC_UDBG is not set
609# CONFIG_IPMI_HANDLER is not set 636# CONFIG_IPMI_HANDLER is not set
610# CONFIG_HW_RANDOM is not set 637# CONFIG_HW_RANDOM is not set
611# CONFIG_NVRAM is not set 638# CONFIG_NVRAM is not set
@@ -645,8 +672,6 @@ CONFIG_I2C_MPC=y
645# Miscellaneous I2C Chip support 672# Miscellaneous I2C Chip support
646# 673#
647# CONFIG_DS1682 is not set 674# CONFIG_DS1682 is not set
648# CONFIG_AT24 is not set
649# CONFIG_SENSORS_EEPROM is not set
650# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
651# CONFIG_PCF8575 is not set 676# CONFIG_PCF8575 is not set
652# CONFIG_SENSORS_PCA9539 is not set 677# CONFIG_SENSORS_PCA9539 is not set
@@ -675,6 +700,7 @@ CONFIG_HWMON=y
675# CONFIG_SENSORS_ADT7462 is not set 700# CONFIG_SENSORS_ADT7462 is not set
676# CONFIG_SENSORS_ADT7470 is not set 701# CONFIG_SENSORS_ADT7470 is not set
677# CONFIG_SENSORS_ADT7473 is not set 702# CONFIG_SENSORS_ADT7473 is not set
703# CONFIG_SENSORS_ADT7475 is not set
678# CONFIG_SENSORS_ATXP1 is not set 704# CONFIG_SENSORS_ATXP1 is not set
679# CONFIG_SENSORS_DS1621 is not set 705# CONFIG_SENSORS_DS1621 is not set
680# CONFIG_SENSORS_F71805F is not set 706# CONFIG_SENSORS_F71805F is not set
@@ -694,6 +720,7 @@ CONFIG_HWMON=y
694# CONFIG_SENSORS_LM90 is not set 720# CONFIG_SENSORS_LM90 is not set
695# CONFIG_SENSORS_LM92 is not set 721# CONFIG_SENSORS_LM92 is not set
696# CONFIG_SENSORS_LM93 is not set 722# CONFIG_SENSORS_LM93 is not set
723# CONFIG_SENSORS_LTC4245 is not set
697# CONFIG_SENSORS_MAX1619 is not set 724# CONFIG_SENSORS_MAX1619 is not set
698# CONFIG_SENSORS_MAX6650 is not set 725# CONFIG_SENSORS_MAX6650 is not set
699# CONFIG_SENSORS_PC87360 is not set 726# CONFIG_SENSORS_PC87360 is not set
@@ -742,10 +769,12 @@ CONFIG_SSB_POSSIBLE=y
742# CONFIG_MFD_CORE is not set 769# CONFIG_MFD_CORE is not set
743# CONFIG_MFD_SM501 is not set 770# CONFIG_MFD_SM501 is not set
744# CONFIG_HTC_PASIC3 is not set 771# CONFIG_HTC_PASIC3 is not set
772# CONFIG_TWL4030_CORE is not set
745# CONFIG_MFD_TMIO is not set 773# CONFIG_MFD_TMIO is not set
746# CONFIG_PMIC_DA903X is not set 774# CONFIG_PMIC_DA903X is not set
747# CONFIG_MFD_WM8400 is not set 775# CONFIG_MFD_WM8400 is not set
748# CONFIG_MFD_WM8350_I2C is not set 776# CONFIG_MFD_WM8350_I2C is not set
777# CONFIG_MFD_PCF50633 is not set
749# CONFIG_REGULATOR is not set 778# CONFIG_REGULATOR is not set
750 779
751# 780#
@@ -803,6 +832,7 @@ CONFIG_USB_MON=y
803# USB Host Controller Drivers 832# USB Host Controller Drivers
804# 833#
805# CONFIG_USB_C67X00_HCD is not set 834# CONFIG_USB_C67X00_HCD is not set
835# CONFIG_USB_OXU210HP_HCD is not set
806# CONFIG_USB_ISP116X_HCD is not set 836# CONFIG_USB_ISP116X_HCD is not set
807# CONFIG_USB_ISP1760_HCD is not set 837# CONFIG_USB_ISP1760_HCD is not set
808CONFIG_USB_OHCI_HCD=y 838CONFIG_USB_OHCI_HCD=y
@@ -827,18 +857,17 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
827# CONFIG_USB_TMC is not set 857# CONFIG_USB_TMC is not set
828 858
829# 859#
830# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 860# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
831# 861#
832 862
833# 863#
834# may also be needed; see USB_STORAGE Help for more information 864# see USB_STORAGE Help for more information
835# 865#
836CONFIG_USB_STORAGE=y 866CONFIG_USB_STORAGE=y
837# CONFIG_USB_STORAGE_DEBUG is not set 867# CONFIG_USB_STORAGE_DEBUG is not set
838# CONFIG_USB_STORAGE_DATAFAB is not set 868# CONFIG_USB_STORAGE_DATAFAB is not set
839# CONFIG_USB_STORAGE_FREECOM is not set 869# CONFIG_USB_STORAGE_FREECOM is not set
840# CONFIG_USB_STORAGE_ISD200 is not set 870# CONFIG_USB_STORAGE_ISD200 is not set
841# CONFIG_USB_STORAGE_DPCM is not set
842# CONFIG_USB_STORAGE_USBAT is not set 871# CONFIG_USB_STORAGE_USBAT is not set
843# CONFIG_USB_STORAGE_SDDR09 is not set 872# CONFIG_USB_STORAGE_SDDR09 is not set
844# CONFIG_USB_STORAGE_SDDR55 is not set 873# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -884,6 +913,10 @@ CONFIG_USB_STORAGE=y
884# CONFIG_USB_ISIGHTFW is not set 913# CONFIG_USB_ISIGHTFW is not set
885# CONFIG_USB_VST is not set 914# CONFIG_USB_VST is not set
886# CONFIG_USB_GADGET is not set 915# CONFIG_USB_GADGET is not set
916
917#
918# OTG and related infrastructure
919#
887# CONFIG_MMC is not set 920# CONFIG_MMC is not set
888# CONFIG_MEMSTICK is not set 921# CONFIG_MEMSTICK is not set
889# CONFIG_NEW_LEDS is not set 922# CONFIG_NEW_LEDS is not set
@@ -947,7 +980,6 @@ CONFIG_RTC_DRV_DS1307=y
947# CONFIG_DMADEVICES is not set 980# CONFIG_DMADEVICES is not set
948# CONFIG_UIO is not set 981# CONFIG_UIO is not set
949# CONFIG_STAGING is not set 982# CONFIG_STAGING is not set
950CONFIG_STAGING_EXCLUDE_BUILD=y
951 983
952# 984#
953# File systems 985# File systems
@@ -968,6 +1000,7 @@ CONFIG_FS_MBCACHE=y
968CONFIG_FILE_LOCKING=y 1000CONFIG_FILE_LOCKING=y
969# CONFIG_XFS_FS is not set 1001# CONFIG_XFS_FS is not set
970# CONFIG_OCFS2_FS is not set 1002# CONFIG_OCFS2_FS is not set
1003# CONFIG_BTRFS_FS is not set
971CONFIG_DNOTIFY=y 1004CONFIG_DNOTIFY=y
972CONFIG_INOTIFY=y 1005CONFIG_INOTIFY=y
973CONFIG_INOTIFY_USER=y 1006CONFIG_INOTIFY_USER=y
@@ -1004,10 +1037,7 @@ CONFIG_TMPFS=y
1004# CONFIG_TMPFS_POSIX_ACL is not set 1037# CONFIG_TMPFS_POSIX_ACL is not set
1005# CONFIG_HUGETLB_PAGE is not set 1038# CONFIG_HUGETLB_PAGE is not set
1006# CONFIG_CONFIGFS_FS is not set 1039# CONFIG_CONFIGFS_FS is not set
1007 1040CONFIG_MISC_FILESYSTEMS=y
1008#
1009# Miscellaneous filesystems
1010#
1011# CONFIG_ADFS_FS is not set 1041# CONFIG_ADFS_FS is not set
1012# CONFIG_AFFS_FS is not set 1042# CONFIG_AFFS_FS is not set
1013# CONFIG_HFS_FS is not set 1043# CONFIG_HFS_FS is not set
@@ -1027,6 +1057,7 @@ CONFIG_JFFS2_ZLIB=y
1027CONFIG_JFFS2_RTIME=y 1057CONFIG_JFFS2_RTIME=y
1028# CONFIG_JFFS2_RUBIN is not set 1058# CONFIG_JFFS2_RUBIN is not set
1029CONFIG_CRAMFS=y 1059CONFIG_CRAMFS=y
1060# CONFIG_SQUASHFS is not set
1030# CONFIG_VXFS_FS is not set 1061# CONFIG_VXFS_FS is not set
1031# CONFIG_MINIX_FS is not set 1062# CONFIG_MINIX_FS is not set
1032# CONFIG_OMFS_FS is not set 1063# CONFIG_OMFS_FS is not set
@@ -1123,6 +1154,7 @@ CONFIG_NLS_ISO8859_1=y
1123# Library routines 1154# Library routines
1124# 1155#
1125CONFIG_BITREVERSE=y 1156CONFIG_BITREVERSE=y
1157CONFIG_GENERIC_FIND_LAST_BIT=y
1126# CONFIG_CRC_CCITT is not set 1158# CONFIG_CRC_CCITT is not set
1127# CONFIG_CRC16 is not set 1159# CONFIG_CRC16 is not set
1128# CONFIG_CRC_T10DIF is not set 1160# CONFIG_CRC_T10DIF is not set
@@ -1174,6 +1206,7 @@ CONFIG_DEBUG_INFO=y
1174# CONFIG_DEBUG_MEMORY_INIT is not set 1206# CONFIG_DEBUG_MEMORY_INIT is not set
1175# CONFIG_DEBUG_LIST is not set 1207# CONFIG_DEBUG_LIST is not set
1176# CONFIG_DEBUG_SG is not set 1208# CONFIG_DEBUG_SG is not set
1209# CONFIG_DEBUG_NOTIFIERS is not set
1177# CONFIG_BOOT_PRINTK_DELAY is not set 1210# CONFIG_BOOT_PRINTK_DELAY is not set
1178# CONFIG_RCU_TORTURE_TEST is not set 1211# CONFIG_RCU_TORTURE_TEST is not set
1179# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1212# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1182,6 +1215,8 @@ CONFIG_DEBUG_INFO=y
1182# CONFIG_FAULT_INJECTION is not set 1215# CONFIG_FAULT_INJECTION is not set
1183# CONFIG_LATENCYTOP is not set 1216# CONFIG_LATENCYTOP is not set
1184CONFIG_HAVE_FUNCTION_TRACER=y 1217CONFIG_HAVE_FUNCTION_TRACER=y
1218CONFIG_HAVE_DYNAMIC_FTRACE=y
1219CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1185 1220
1186# 1221#
1187# Tracers 1222# Tracers
@@ -1190,11 +1225,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1190# CONFIG_SCHED_TRACER is not set 1225# CONFIG_SCHED_TRACER is not set
1191# CONFIG_CONTEXT_SWITCH_TRACER is not set 1226# CONFIG_CONTEXT_SWITCH_TRACER is not set
1192# CONFIG_BOOT_TRACER is not set 1227# CONFIG_BOOT_TRACER is not set
1228# CONFIG_TRACE_BRANCH_PROFILING is not set
1193# CONFIG_STACK_TRACER is not set 1229# CONFIG_STACK_TRACER is not set
1194# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1230# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1195# CONFIG_SAMPLES is not set 1231# CONFIG_SAMPLES is not set
1196CONFIG_HAVE_ARCH_KGDB=y 1232CONFIG_HAVE_ARCH_KGDB=y
1197# CONFIG_KGDB is not set 1233# CONFIG_KGDB is not set
1234CONFIG_PRINT_STACK_DEPTH=64
1198# CONFIG_DEBUG_STACKOVERFLOW is not set 1235# CONFIG_DEBUG_STACKOVERFLOW is not set
1199# CONFIG_DEBUG_STACK_USAGE is not set 1236# CONFIG_DEBUG_STACK_USAGE is not set
1200# CONFIG_DEBUG_PAGEALLOC is not set 1237# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1221,11 +1258,15 @@ CONFIG_CRYPTO=y
1221# 1258#
1222# CONFIG_CRYPTO_FIPS is not set 1259# CONFIG_CRYPTO_FIPS is not set
1223CONFIG_CRYPTO_ALGAPI=y 1260CONFIG_CRYPTO_ALGAPI=y
1224CONFIG_CRYPTO_AEAD=y 1261CONFIG_CRYPTO_ALGAPI2=y
1262CONFIG_CRYPTO_AEAD2=y
1225CONFIG_CRYPTO_BLKCIPHER=y 1263CONFIG_CRYPTO_BLKCIPHER=y
1264CONFIG_CRYPTO_BLKCIPHER2=y
1226CONFIG_CRYPTO_HASH=y 1265CONFIG_CRYPTO_HASH=y
1227CONFIG_CRYPTO_RNG=y 1266CONFIG_CRYPTO_HASH2=y
1267CONFIG_CRYPTO_RNG2=y
1228CONFIG_CRYPTO_MANAGER=y 1268CONFIG_CRYPTO_MANAGER=y
1269CONFIG_CRYPTO_MANAGER2=y
1229# CONFIG_CRYPTO_GF128MUL is not set 1270# CONFIG_CRYPTO_GF128MUL is not set
1230# CONFIG_CRYPTO_NULL is not set 1271# CONFIG_CRYPTO_NULL is not set
1231# CONFIG_CRYPTO_CRYPTD is not set 1272# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig
index cbecaf3d7906..fc4a39a40e72 100644
--- a/arch/powerpc/configs/83xx/asp8347_defconfig
+++ b/arch/powerpc/configs/83xx/asp8347_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:49 2008 4# Mon Jan 26 15:35:47 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -76,12 +76,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 79CONFIG_GROUP_SCHED=y
81# CONFIG_FAIR_GROUP_SCHED is not set 80# CONFIG_FAIR_GROUP_SCHED is not set
82# CONFIG_RT_GROUP_SCHED is not set 81# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 82CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
84# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 85CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 86CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 87# CONFIG_RELAY is not set
@@ -114,7 +114,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 114CONFIG_SLUB=y
115# CONFIG_SLOB is not set 115# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 119CONFIG_HAVE_IOREMAP_PROT=y
@@ -124,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 127CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 133CONFIG_BLOCK=y
137# CONFIG_LBD is not set 134# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
142 138
@@ -153,6 +149,10 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
155CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
157 157
158# 158#
@@ -199,6 +199,8 @@ CONFIG_IPIC=y
199# CONFIG_QUICC_ENGINE is not set 199# CONFIG_QUICC_ENGINE is not set
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_MPC8xxx_GPIO is not set 201# CONFIG_MPC8xxx_GPIO is not set
202# CONFIG_SIMPLE_GPIO is not set
203# CONFIG_MCU_MPC8349EMITX is not set
202 204
203# 205#
204# Kernel options 206# Kernel options
@@ -226,6 +228,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
226CONFIG_ARCH_HAS_WALK_MEMORY=y 228CONFIG_ARCH_HAS_WALK_MEMORY=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set 230# CONFIG_KEXEC is not set
231# CONFIG_CRASH_DUMP is not set
229CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
231CONFIG_SELECT_MEMORY_MODEL=y 234CONFIG_SELECT_MEMORY_MODEL=y
@@ -237,12 +240,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 242CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 243# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
247CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
248# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_PCI_SYSCALL=y
267CONFIG_ARCH_SUPPORTS_MSI=y 272CONFIG_ARCH_SUPPORTS_MSI=y
268# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
269# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -382,6 +391,7 @@ CONFIG_MTD=y
382# CONFIG_MTD_DEBUG is not set 391# CONFIG_MTD_DEBUG is not set
383# CONFIG_MTD_CONCAT is not set 392# CONFIG_MTD_CONCAT is not set
384CONFIG_MTD_PARTITIONS=y 393CONFIG_MTD_PARTITIONS=y
394# CONFIG_MTD_TESTS is not set
385CONFIG_MTD_REDBOOT_PARTS=y 395CONFIG_MTD_REDBOOT_PARTS=y
386CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 396CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
387CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y 397CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
@@ -456,6 +466,12 @@ CONFIG_MTD_PHYSMAP_OF=y
456# CONFIG_MTD_ONENAND is not set 466# CONFIG_MTD_ONENAND is not set
457 467
458# 468#
469# LPDDR flash memory drivers
470#
471# CONFIG_MTD_LPDDR is not set
472# CONFIG_MTD_QINFO_PROBE is not set
473
474#
459# UBI - Unsorted block images 475# UBI - Unsorted block images
460# 476#
461# CONFIG_MTD_UBI is not set 477# CONFIG_MTD_UBI is not set
@@ -486,8 +502,10 @@ CONFIG_MISC_DEVICES=y
486# CONFIG_EEPROM_93CX6 is not set 502# CONFIG_EEPROM_93CX6 is not set
487# CONFIG_SGI_IOC4 is not set 503# CONFIG_SGI_IOC4 is not set
488# CONFIG_TIFM_CORE is not set 504# CONFIG_TIFM_CORE is not set
505# CONFIG_ICS932S401 is not set
489# CONFIG_ENCLOSURE_SERVICES is not set 506# CONFIG_ENCLOSURE_SERVICES is not set
490# CONFIG_HP_ILO is not set 507# CONFIG_HP_ILO is not set
508# CONFIG_C2PORT is not set
491CONFIG_HAVE_IDE=y 509CONFIG_HAVE_IDE=y
492# CONFIG_IDE is not set 510# CONFIG_IDE is not set
493 511
@@ -536,6 +554,9 @@ CONFIG_PHYLIB=y
536# CONFIG_BROADCOM_PHY is not set 554# CONFIG_BROADCOM_PHY is not set
537# CONFIG_ICPLUS_PHY is not set 555# CONFIG_ICPLUS_PHY is not set
538# CONFIG_REALTEK_PHY is not set 556# CONFIG_REALTEK_PHY is not set
557# CONFIG_NATIONAL_PHY is not set
558# CONFIG_STE10XP is not set
559# CONFIG_LSI_ET1011C_PHY is not set
539# CONFIG_FIXED_PHY is not set 560# CONFIG_FIXED_PHY is not set
540# CONFIG_MDIO_BITBANG is not set 561# CONFIG_MDIO_BITBANG is not set
541CONFIG_NET_ETHERNET=y 562CONFIG_NET_ETHERNET=y
@@ -590,6 +611,10 @@ CONFIG_GIANFAR=y
590# CONFIG_IWLWIFI_LEDS is not set 611# CONFIG_IWLWIFI_LEDS is not set
591 612
592# 613#
614# Enable WiMAX (Networking options) to see the WiMAX drivers
615#
616
617#
593# USB Network Adapters 618# USB Network Adapters
594# 619#
595# CONFIG_USB_CATC is not set 620# CONFIG_USB_CATC is not set
@@ -666,8 +691,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
666# CONFIG_SERIAL_JSM is not set 691# CONFIG_SERIAL_JSM is not set
667# CONFIG_SERIAL_OF_PLATFORM is not set 692# CONFIG_SERIAL_OF_PLATFORM is not set
668CONFIG_UNIX98_PTYS=y 693CONFIG_UNIX98_PTYS=y
694# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
669CONFIG_LEGACY_PTYS=y 695CONFIG_LEGACY_PTYS=y
670CONFIG_LEGACY_PTY_COUNT=256 696CONFIG_LEGACY_PTY_COUNT=256
697# CONFIG_HVC_UDBG is not set
671# CONFIG_IPMI_HANDLER is not set 698# CONFIG_IPMI_HANDLER is not set
672# CONFIG_HW_RANDOM is not set 699# CONFIG_HW_RANDOM is not set
673# CONFIG_NVRAM is not set 700# CONFIG_NVRAM is not set
@@ -732,15 +759,14 @@ CONFIG_I2C_MPC=y
732# Miscellaneous I2C Chip support 759# Miscellaneous I2C Chip support
733# 760#
734# CONFIG_DS1682 is not set 761# CONFIG_DS1682 is not set
735# CONFIG_AT24 is not set 762# CONFIG_EEPROM_AT24 is not set
736# CONFIG_SENSORS_EEPROM is not set 763# CONFIG_EEPROM_LEGACY is not set
737# CONFIG_SENSORS_PCF8574 is not set 764# CONFIG_SENSORS_PCF8574 is not set
738# CONFIG_PCF8575 is not set 765# CONFIG_PCF8575 is not set
739# CONFIG_SENSORS_PCA9539 is not set 766# CONFIG_SENSORS_PCA9539 is not set
740# CONFIG_SENSORS_PCF8591 is not set 767# CONFIG_SENSORS_PCF8591 is not set
741# CONFIG_SENSORS_MAX6875 is not set 768# CONFIG_SENSORS_MAX6875 is not set
742# CONFIG_SENSORS_TSL2550 is not set 769# CONFIG_SENSORS_TSL2550 is not set
743# CONFIG_MCU_MPC8349EMITX is not set
744# CONFIG_I2C_DEBUG_CORE is not set 770# CONFIG_I2C_DEBUG_CORE is not set
745# CONFIG_I2C_DEBUG_ALGO is not set 771# CONFIG_I2C_DEBUG_ALGO is not set
746# CONFIG_I2C_DEBUG_BUS is not set 772# CONFIG_I2C_DEBUG_BUS is not set
@@ -760,8 +786,10 @@ CONFIG_HWMON=y
760# CONFIG_SENSORS_ADM1029 is not set 786# CONFIG_SENSORS_ADM1029 is not set
761# CONFIG_SENSORS_ADM1031 is not set 787# CONFIG_SENSORS_ADM1031 is not set
762# CONFIG_SENSORS_ADM9240 is not set 788# CONFIG_SENSORS_ADM9240 is not set
789# CONFIG_SENSORS_ADT7462 is not set
763# CONFIG_SENSORS_ADT7470 is not set 790# CONFIG_SENSORS_ADT7470 is not set
764# CONFIG_SENSORS_ADT7473 is not set 791# CONFIG_SENSORS_ADT7473 is not set
792# CONFIG_SENSORS_ADT7475 is not set
765# CONFIG_SENSORS_ATXP1 is not set 793# CONFIG_SENSORS_ATXP1 is not set
766# CONFIG_SENSORS_DS1621 is not set 794# CONFIG_SENSORS_DS1621 is not set
767# CONFIG_SENSORS_I5K_AMB is not set 795# CONFIG_SENSORS_I5K_AMB is not set
@@ -782,6 +810,7 @@ CONFIG_HWMON=y
782# CONFIG_SENSORS_LM90 is not set 810# CONFIG_SENSORS_LM90 is not set
783# CONFIG_SENSORS_LM92 is not set 811# CONFIG_SENSORS_LM92 is not set
784# CONFIG_SENSORS_LM93 is not set 812# CONFIG_SENSORS_LM93 is not set
813# CONFIG_SENSORS_LTC4245 is not set
785# CONFIG_SENSORS_MAX1619 is not set 814# CONFIG_SENSORS_MAX1619 is not set
786# CONFIG_SENSORS_MAX6650 is not set 815# CONFIG_SENSORS_MAX6650 is not set
787# CONFIG_SENSORS_PC87360 is not set 816# CONFIG_SENSORS_PC87360 is not set
@@ -827,11 +856,11 @@ CONFIG_WATCHDOG=y
827# USB-based Watchdog Cards 856# USB-based Watchdog Cards
828# 857#
829# CONFIG_USBPCWATCHDOG is not set 858# CONFIG_USBPCWATCHDOG is not set
859CONFIG_SSB_POSSIBLE=y
830 860
831# 861#
832# Sonics Silicon Backplane 862# Sonics Silicon Backplane
833# 863#
834CONFIG_SSB_POSSIBLE=y
835# CONFIG_SSB is not set 864# CONFIG_SSB is not set
836 865
837# 866#
@@ -840,18 +869,13 @@ CONFIG_SSB_POSSIBLE=y
840# CONFIG_MFD_CORE is not set 869# CONFIG_MFD_CORE is not set
841# CONFIG_MFD_SM501 is not set 870# CONFIG_MFD_SM501 is not set
842# CONFIG_HTC_PASIC3 is not set 871# CONFIG_HTC_PASIC3 is not set
872# CONFIG_TWL4030_CORE is not set
843# CONFIG_MFD_TMIO is not set 873# CONFIG_MFD_TMIO is not set
844# CONFIG_PMIC_DA903X is not set 874# CONFIG_PMIC_DA903X is not set
845# CONFIG_MFD_WM8400 is not set 875# CONFIG_MFD_WM8400 is not set
846# CONFIG_MFD_WM8350_I2C is not set 876# CONFIG_MFD_WM8350_I2C is not set
847 877# CONFIG_MFD_PCF50633 is not set
848#
849# Voltage and Current regulators
850#
851# CONFIG_REGULATOR is not set 878# CONFIG_REGULATOR is not set
852# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
853# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
854# CONFIG_REGULATOR_BQ24022 is not set
855 879
856# 880#
857# Multimedia devices 881# Multimedia devices
@@ -916,6 +940,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
916# CONFIG_USB_EHCI_TT_NEWSCHED is not set 940# CONFIG_USB_EHCI_TT_NEWSCHED is not set
917CONFIG_USB_EHCI_FSL=y 941CONFIG_USB_EHCI_FSL=y
918CONFIG_USB_EHCI_HCD_PPC_OF=y 942CONFIG_USB_EHCI_HCD_PPC_OF=y
943# CONFIG_USB_OXU210HP_HCD is not set
919# CONFIG_USB_ISP116X_HCD is not set 944# CONFIG_USB_ISP116X_HCD is not set
920# CONFIG_USB_ISP1760_HCD is not set 945# CONFIG_USB_ISP1760_HCD is not set
921# CONFIG_USB_OHCI_HCD is not set 946# CONFIG_USB_OHCI_HCD is not set
@@ -934,11 +959,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
934# CONFIG_USB_TMC is not set 959# CONFIG_USB_TMC is not set
935 960
936# 961#
937# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 962# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
938# 963#
939 964
940# 965#
941# may also be needed; see USB_STORAGE Help for more information 966# see USB_STORAGE Help for more information
942# 967#
943# CONFIG_USB_LIBUSUAL is not set 968# CONFIG_USB_LIBUSUAL is not set
944 969
@@ -977,6 +1002,10 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
977# CONFIG_USB_ISIGHTFW is not set 1002# CONFIG_USB_ISIGHTFW is not set
978# CONFIG_USB_VST is not set 1003# CONFIG_USB_VST is not set
979# CONFIG_USB_GADGET is not set 1004# CONFIG_USB_GADGET is not set
1005
1006#
1007# OTG and related infrastructure
1008#
980# CONFIG_UWB is not set 1009# CONFIG_UWB is not set
981# CONFIG_MMC is not set 1010# CONFIG_MMC is not set
982# CONFIG_MEMSTICK is not set 1011# CONFIG_MEMSTICK is not set
@@ -1014,6 +1043,7 @@ CONFIG_RTC_DRV_DS1374=y
1014# CONFIG_RTC_DRV_M41T80 is not set 1043# CONFIG_RTC_DRV_M41T80 is not set
1015# CONFIG_RTC_DRV_S35390A is not set 1044# CONFIG_RTC_DRV_S35390A is not set
1016# CONFIG_RTC_DRV_FM3130 is not set 1045# CONFIG_RTC_DRV_FM3130 is not set
1046# CONFIG_RTC_DRV_RX8581 is not set
1017 1047
1018# 1048#
1019# SPI RTC drivers 1049# SPI RTC drivers
@@ -1061,6 +1091,7 @@ CONFIG_FS_MBCACHE=y
1061CONFIG_FILE_LOCKING=y 1091CONFIG_FILE_LOCKING=y
1062# CONFIG_XFS_FS is not set 1092# CONFIG_XFS_FS is not set
1063# CONFIG_OCFS2_FS is not set 1093# CONFIG_OCFS2_FS is not set
1094# CONFIG_BTRFS_FS is not set
1064CONFIG_DNOTIFY=y 1095CONFIG_DNOTIFY=y
1065CONFIG_INOTIFY=y 1096CONFIG_INOTIFY=y
1066CONFIG_INOTIFY_USER=y 1097CONFIG_INOTIFY_USER=y
@@ -1094,10 +1125,7 @@ CONFIG_TMPFS=y
1094# CONFIG_TMPFS_POSIX_ACL is not set 1125# CONFIG_TMPFS_POSIX_ACL is not set
1095# CONFIG_HUGETLB_PAGE is not set 1126# CONFIG_HUGETLB_PAGE is not set
1096# CONFIG_CONFIGFS_FS is not set 1127# CONFIG_CONFIGFS_FS is not set
1097 1128CONFIG_MISC_FILESYSTEMS=y
1098#
1099# Miscellaneous filesystems
1100#
1101# CONFIG_ADFS_FS is not set 1129# CONFIG_ADFS_FS is not set
1102# CONFIG_AFFS_FS is not set 1130# CONFIG_AFFS_FS is not set
1103# CONFIG_HFS_FS is not set 1131# CONFIG_HFS_FS is not set
@@ -1117,6 +1145,7 @@ CONFIG_JFFS2_ZLIB=y
1117CONFIG_JFFS2_RTIME=y 1145CONFIG_JFFS2_RTIME=y
1118# CONFIG_JFFS2_RUBIN is not set 1146# CONFIG_JFFS2_RUBIN is not set
1119# CONFIG_CRAMFS is not set 1147# CONFIG_CRAMFS is not set
1148# CONFIG_SQUASHFS is not set
1120# CONFIG_VXFS_FS is not set 1149# CONFIG_VXFS_FS is not set
1121# CONFIG_MINIX_FS is not set 1150# CONFIG_MINIX_FS is not set
1122# CONFIG_OMFS_FS is not set 1151# CONFIG_OMFS_FS is not set
@@ -1209,6 +1238,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1209# Library routines 1238# Library routines
1210# 1239#
1211CONFIG_BITREVERSE=y 1240CONFIG_BITREVERSE=y
1241CONFIG_GENERIC_FIND_LAST_BIT=y
1212# CONFIG_CRC_CCITT is not set 1242# CONFIG_CRC_CCITT is not set
1213# CONFIG_CRC16 is not set 1243# CONFIG_CRC16 is not set
1214# CONFIG_CRC_T10DIF is not set 1244# CONFIG_CRC_T10DIF is not set
@@ -1244,6 +1274,8 @@ CONFIG_FRAME_WARN=1024
1244# CONFIG_LATENCYTOP is not set 1274# CONFIG_LATENCYTOP is not set
1245# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1275# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1246CONFIG_HAVE_FUNCTION_TRACER=y 1276CONFIG_HAVE_FUNCTION_TRACER=y
1277CONFIG_HAVE_DYNAMIC_FTRACE=y
1278CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1247 1279
1248# 1280#
1249# Tracers 1281# Tracers
@@ -1251,6 +1283,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1251# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1283# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1252# CONFIG_SAMPLES is not set 1284# CONFIG_SAMPLES is not set
1253CONFIG_HAVE_ARCH_KGDB=y 1285CONFIG_HAVE_ARCH_KGDB=y
1286CONFIG_PRINT_STACK_DEPTH=64
1254# CONFIG_IRQSTACKS is not set 1287# CONFIG_IRQSTACKS is not set
1255# CONFIG_BOOTX_TEXT is not set 1288# CONFIG_BOOTX_TEXT is not set
1256# CONFIG_PPC_EARLY_DEBUG is not set 1289# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1269,11 +1302,15 @@ CONFIG_CRYPTO=y
1269# 1302#
1270# CONFIG_CRYPTO_FIPS is not set 1303# CONFIG_CRYPTO_FIPS is not set
1271CONFIG_CRYPTO_ALGAPI=y 1304CONFIG_CRYPTO_ALGAPI=y
1272CONFIG_CRYPTO_AEAD=y 1305CONFIG_CRYPTO_ALGAPI2=y
1306CONFIG_CRYPTO_AEAD2=y
1273CONFIG_CRYPTO_BLKCIPHER=y 1307CONFIG_CRYPTO_BLKCIPHER=y
1308CONFIG_CRYPTO_BLKCIPHER2=y
1274CONFIG_CRYPTO_HASH=y 1309CONFIG_CRYPTO_HASH=y
1275CONFIG_CRYPTO_RNG=y 1310CONFIG_CRYPTO_HASH2=y
1311CONFIG_CRYPTO_RNG2=y
1276CONFIG_CRYPTO_MANAGER=y 1312CONFIG_CRYPTO_MANAGER=y
1313CONFIG_CRYPTO_MANAGER2=y
1277# CONFIG_CRYPTO_GF128MUL is not set 1314# CONFIG_CRYPTO_GF128MUL is not set
1278# CONFIG_CRYPTO_NULL is not set 1315# CONFIG_CRYPTO_NULL is not set
1279# CONFIG_CRYPTO_CRYPTD is not set 1316# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index bfc32ea265a7..409d017621a8 100644
--- a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8313_rdb_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:50 2008 4# Mon Jan 26 15:35:48 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
269# CONFIG_PCI_DEBUG is not set 274# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -384,6 +393,7 @@ CONFIG_MTD=y
384# CONFIG_MTD_DEBUG is not set 393# CONFIG_MTD_DEBUG is not set
385# CONFIG_MTD_CONCAT is not set 394# CONFIG_MTD_CONCAT is not set
386CONFIG_MTD_PARTITIONS=y 395CONFIG_MTD_PARTITIONS=y
396# CONFIG_MTD_TESTS is not set
387# CONFIG_MTD_REDBOOT_PARTS is not set 397# CONFIG_MTD_REDBOOT_PARTS is not set
388# CONFIG_MTD_CMDLINE_PARTS is not set 398# CONFIG_MTD_CMDLINE_PARTS is not set
389CONFIG_MTD_OF_PARTS=y 399CONFIG_MTD_OF_PARTS=y
@@ -468,6 +478,12 @@ CONFIG_MTD_NAND_FSL_ELBC=y
468# CONFIG_MTD_ONENAND is not set 478# CONFIG_MTD_ONENAND is not set
469 479
470# 480#
481# LPDDR flash memory drivers
482#
483# CONFIG_MTD_LPDDR is not set
484# CONFIG_MTD_QINFO_PROBE is not set
485
486#
471# UBI - Unsorted block images 487# UBI - Unsorted block images
472# 488#
473# CONFIG_MTD_UBI is not set 489# CONFIG_MTD_UBI is not set
@@ -499,8 +515,10 @@ CONFIG_MISC_DEVICES=y
499# CONFIG_EEPROM_93CX6 is not set 515# CONFIG_EEPROM_93CX6 is not set
500# CONFIG_SGI_IOC4 is not set 516# CONFIG_SGI_IOC4 is not set
501# CONFIG_TIFM_CORE is not set 517# CONFIG_TIFM_CORE is not set
518# CONFIG_ICS932S401 is not set
502# CONFIG_ENCLOSURE_SERVICES is not set 519# CONFIG_ENCLOSURE_SERVICES is not set
503# CONFIG_HP_ILO is not set 520# CONFIG_HP_ILO is not set
521# CONFIG_C2PORT is not set
504CONFIG_HAVE_IDE=y 522CONFIG_HAVE_IDE=y
505# CONFIG_IDE is not set 523# CONFIG_IDE is not set
506 524
@@ -543,6 +561,7 @@ CONFIG_SCSI_SPI_ATTRS=y
543# CONFIG_SCSI_SRP_ATTRS is not set 561# CONFIG_SCSI_SRP_ATTRS is not set
544CONFIG_SCSI_LOWLEVEL=y 562CONFIG_SCSI_LOWLEVEL=y
545# CONFIG_ISCSI_TCP is not set 563# CONFIG_ISCSI_TCP is not set
564# CONFIG_SCSI_CXGB3_ISCSI is not set
546# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 565# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
547# CONFIG_SCSI_3W_9XXX is not set 566# CONFIG_SCSI_3W_9XXX is not set
548# CONFIG_SCSI_ACARD is not set 567# CONFIG_SCSI_ACARD is not set
@@ -559,6 +578,8 @@ CONFIG_SCSI_LOWLEVEL=y
559# CONFIG_MEGARAID_SAS is not set 578# CONFIG_MEGARAID_SAS is not set
560# CONFIG_SCSI_HPTIOP is not set 579# CONFIG_SCSI_HPTIOP is not set
561# CONFIG_SCSI_BUSLOGIC is not set 580# CONFIG_SCSI_BUSLOGIC is not set
581# CONFIG_LIBFC is not set
582# CONFIG_FCOE is not set
562# CONFIG_SCSI_DMX3191D is not set 583# CONFIG_SCSI_DMX3191D is not set
563# CONFIG_SCSI_EATA is not set 584# CONFIG_SCSI_EATA is not set
564# CONFIG_SCSI_FUTURE_DOMAIN is not set 585# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -627,7 +648,10 @@ CONFIG_CICADA_PHY=y
627# CONFIG_BROADCOM_PHY is not set 648# CONFIG_BROADCOM_PHY is not set
628# CONFIG_ICPLUS_PHY is not set 649# CONFIG_ICPLUS_PHY is not set
629# CONFIG_REALTEK_PHY is not set 650# CONFIG_REALTEK_PHY is not set
630# CONFIG_FIXED_PHY is not set 651# CONFIG_NATIONAL_PHY is not set
652# CONFIG_STE10XP is not set
653# CONFIG_LSI_ET1011C_PHY is not set
654CONFIG_FIXED_PHY=y
631# CONFIG_MDIO_BITBANG is not set 655# CONFIG_MDIO_BITBANG is not set
632CONFIG_NET_ETHERNET=y 656CONFIG_NET_ETHERNET=y
633CONFIG_MII=y 657CONFIG_MII=y
@@ -651,7 +675,6 @@ CONFIG_NET_PCI=y
651# CONFIG_ADAPTEC_STARFIRE is not set 675# CONFIG_ADAPTEC_STARFIRE is not set
652# CONFIG_B44 is not set 676# CONFIG_B44 is not set
653# CONFIG_FORCEDETH is not set 677# CONFIG_FORCEDETH is not set
654# CONFIG_EEPRO100 is not set
655CONFIG_E100=y 678CONFIG_E100=y
656# CONFIG_FEALNX is not set 679# CONFIG_FEALNX is not set
657# CONFIG_NATSEMI is not set 680# CONFIG_NATSEMI is not set
@@ -661,6 +684,7 @@ CONFIG_E100=y
661# CONFIG_R6040 is not set 684# CONFIG_R6040 is not set
662# CONFIG_SIS900 is not set 685# CONFIG_SIS900 is not set
663# CONFIG_EPIC100 is not set 686# CONFIG_EPIC100 is not set
687# CONFIG_SMSC9420 is not set
664# CONFIG_SUNDANCE is not set 688# CONFIG_SUNDANCE is not set
665# CONFIG_TLAN is not set 689# CONFIG_TLAN is not set
666# CONFIG_VIA_RHINE is not set 690# CONFIG_VIA_RHINE is not set
@@ -691,6 +715,7 @@ CONFIG_GIANFAR=y
691# CONFIG_JME is not set 715# CONFIG_JME is not set
692CONFIG_NETDEV_10000=y 716CONFIG_NETDEV_10000=y
693# CONFIG_CHELSIO_T1 is not set 717# CONFIG_CHELSIO_T1 is not set
718CONFIG_CHELSIO_T3_DEPENDS=y
694# CONFIG_CHELSIO_T3 is not set 719# CONFIG_CHELSIO_T3 is not set
695# CONFIG_ENIC is not set 720# CONFIG_ENIC is not set
696# CONFIG_IXGBE is not set 721# CONFIG_IXGBE is not set
@@ -715,6 +740,10 @@ CONFIG_NETDEV_10000=y
715# CONFIG_IWLWIFI_LEDS is not set 740# CONFIG_IWLWIFI_LEDS is not set
716 741
717# 742#
743# Enable WiMAX (Networking options) to see the WiMAX drivers
744#
745
746#
718# USB Network Adapters 747# USB Network Adapters
719# 748#
720# CONFIG_USB_CATC is not set 749# CONFIG_USB_CATC is not set
@@ -792,8 +821,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
792# CONFIG_SERIAL_JSM is not set 821# CONFIG_SERIAL_JSM is not set
793# CONFIG_SERIAL_OF_PLATFORM is not set 822# CONFIG_SERIAL_OF_PLATFORM is not set
794CONFIG_UNIX98_PTYS=y 823CONFIG_UNIX98_PTYS=y
824# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
795CONFIG_LEGACY_PTYS=y 825CONFIG_LEGACY_PTYS=y
796CONFIG_LEGACY_PTY_COUNT=256 826CONFIG_LEGACY_PTY_COUNT=256
827# CONFIG_HVC_UDBG is not set
797# CONFIG_IPMI_HANDLER is not set 828# CONFIG_IPMI_HANDLER is not set
798CONFIG_HW_RANDOM=y 829CONFIG_HW_RANDOM=y
799# CONFIG_NVRAM is not set 830# CONFIG_NVRAM is not set
@@ -858,15 +889,14 @@ CONFIG_I2C_MPC=y
858# Miscellaneous I2C Chip support 889# Miscellaneous I2C Chip support
859# 890#
860# CONFIG_DS1682 is not set 891# CONFIG_DS1682 is not set
861# CONFIG_AT24 is not set 892# CONFIG_EEPROM_AT24 is not set
862# CONFIG_SENSORS_EEPROM is not set 893# CONFIG_EEPROM_LEGACY is not set
863# CONFIG_SENSORS_PCF8574 is not set 894# CONFIG_SENSORS_PCF8574 is not set
864# CONFIG_PCF8575 is not set 895# CONFIG_PCF8575 is not set
865# CONFIG_SENSORS_PCA9539 is not set 896# CONFIG_SENSORS_PCA9539 is not set
866# CONFIG_SENSORS_PCF8591 is not set 897# CONFIG_SENSORS_PCF8591 is not set
867# CONFIG_SENSORS_MAX6875 is not set 898# CONFIG_SENSORS_MAX6875 is not set
868# CONFIG_SENSORS_TSL2550 is not set 899# CONFIG_SENSORS_TSL2550 is not set
869# CONFIG_MCU_MPC8349EMITX is not set
870# CONFIG_I2C_DEBUG_CORE is not set 900# CONFIG_I2C_DEBUG_CORE is not set
871# CONFIG_I2C_DEBUG_ALGO is not set 901# CONFIG_I2C_DEBUG_ALGO is not set
872# CONFIG_I2C_DEBUG_BUS is not set 902# CONFIG_I2C_DEBUG_BUS is not set
@@ -884,7 +914,7 @@ CONFIG_SPI_MPC83xx=y
884# 914#
885# SPI Protocol Masters 915# SPI Protocol Masters
886# 916#
887# CONFIG_SPI_AT25 is not set 917# CONFIG_EEPROM_AT25 is not set
888# CONFIG_SPI_SPIDEV is not set 918# CONFIG_SPI_SPIDEV is not set
889# CONFIG_SPI_TLE62X0 is not set 919# CONFIG_SPI_TLE62X0 is not set
890CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 920CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -902,8 +932,10 @@ CONFIG_HWMON=y
902# CONFIG_SENSORS_ADM1029 is not set 932# CONFIG_SENSORS_ADM1029 is not set
903# CONFIG_SENSORS_ADM1031 is not set 933# CONFIG_SENSORS_ADM1031 is not set
904# CONFIG_SENSORS_ADM9240 is not set 934# CONFIG_SENSORS_ADM9240 is not set
935# CONFIG_SENSORS_ADT7462 is not set
905# CONFIG_SENSORS_ADT7470 is not set 936# CONFIG_SENSORS_ADT7470 is not set
906# CONFIG_SENSORS_ADT7473 is not set 937# CONFIG_SENSORS_ADT7473 is not set
938# CONFIG_SENSORS_ADT7475 is not set
907# CONFIG_SENSORS_ATXP1 is not set 939# CONFIG_SENSORS_ATXP1 is not set
908# CONFIG_SENSORS_DS1621 is not set 940# CONFIG_SENSORS_DS1621 is not set
909# CONFIG_SENSORS_I5K_AMB is not set 941# CONFIG_SENSORS_I5K_AMB is not set
@@ -925,6 +957,7 @@ CONFIG_HWMON=y
925# CONFIG_SENSORS_LM90 is not set 957# CONFIG_SENSORS_LM90 is not set
926# CONFIG_SENSORS_LM92 is not set 958# CONFIG_SENSORS_LM92 is not set
927# CONFIG_SENSORS_LM93 is not set 959# CONFIG_SENSORS_LM93 is not set
960# CONFIG_SENSORS_LTC4245 is not set
928# CONFIG_SENSORS_MAX1111 is not set 961# CONFIG_SENSORS_MAX1111 is not set
929# CONFIG_SENSORS_MAX1619 is not set 962# CONFIG_SENSORS_MAX1619 is not set
930# CONFIG_SENSORS_MAX6650 is not set 963# CONFIG_SENSORS_MAX6650 is not set
@@ -971,11 +1004,11 @@ CONFIG_WATCHDOG=y
971# USB-based Watchdog Cards 1004# USB-based Watchdog Cards
972# 1005#
973# CONFIG_USBPCWATCHDOG is not set 1006# CONFIG_USBPCWATCHDOG is not set
1007CONFIG_SSB_POSSIBLE=y
974 1008
975# 1009#
976# Sonics Silicon Backplane 1010# Sonics Silicon Backplane
977# 1011#
978CONFIG_SSB_POSSIBLE=y
979# CONFIG_SSB is not set 1012# CONFIG_SSB is not set
980 1013
981# 1014#
@@ -984,18 +1017,13 @@ CONFIG_SSB_POSSIBLE=y
984# CONFIG_MFD_CORE is not set 1017# CONFIG_MFD_CORE is not set
985# CONFIG_MFD_SM501 is not set 1018# CONFIG_MFD_SM501 is not set
986# CONFIG_HTC_PASIC3 is not set 1019# CONFIG_HTC_PASIC3 is not set
1020# CONFIG_TWL4030_CORE is not set
987# CONFIG_MFD_TMIO is not set 1021# CONFIG_MFD_TMIO is not set
988# CONFIG_PMIC_DA903X is not set 1022# CONFIG_PMIC_DA903X is not set
989# CONFIG_MFD_WM8400 is not set 1023# CONFIG_MFD_WM8400 is not set
990# CONFIG_MFD_WM8350_I2C is not set 1024# CONFIG_MFD_WM8350_I2C is not set
991 1025# CONFIG_MFD_PCF50633 is not set
992#
993# Voltage and Current regulators
994#
995# CONFIG_REGULATOR is not set 1026# CONFIG_REGULATOR is not set
996# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
997# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
998# CONFIG_REGULATOR_BQ24022 is not set
999 1027
1000# 1028#
1001# Multimedia devices 1029# Multimedia devices
@@ -1080,6 +1108,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1080# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1108# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1081CONFIG_USB_EHCI_FSL=y 1109CONFIG_USB_EHCI_FSL=y
1082CONFIG_USB_EHCI_HCD_PPC_OF=y 1110CONFIG_USB_EHCI_HCD_PPC_OF=y
1111# CONFIG_USB_OXU210HP_HCD is not set
1083# CONFIG_USB_ISP116X_HCD is not set 1112# CONFIG_USB_ISP116X_HCD is not set
1084# CONFIG_USB_ISP1760_HCD is not set 1113# CONFIG_USB_ISP1760_HCD is not set
1085CONFIG_USB_OHCI_HCD=y 1114CONFIG_USB_OHCI_HCD=y
@@ -1106,18 +1135,17 @@ CONFIG_USB_UHCI_HCD=y
1106# CONFIG_USB_TMC is not set 1135# CONFIG_USB_TMC is not set
1107 1136
1108# 1137#
1109# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1138# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1110# 1139#
1111 1140
1112# 1141#
1113# may also be needed; see USB_STORAGE Help for more information 1142# see USB_STORAGE Help for more information
1114# 1143#
1115CONFIG_USB_STORAGE=y 1144CONFIG_USB_STORAGE=y
1116# CONFIG_USB_STORAGE_DEBUG is not set 1145# CONFIG_USB_STORAGE_DEBUG is not set
1117# CONFIG_USB_STORAGE_DATAFAB is not set 1146# CONFIG_USB_STORAGE_DATAFAB is not set
1118# CONFIG_USB_STORAGE_FREECOM is not set 1147# CONFIG_USB_STORAGE_FREECOM is not set
1119# CONFIG_USB_STORAGE_ISD200 is not set 1148# CONFIG_USB_STORAGE_ISD200 is not set
1120# CONFIG_USB_STORAGE_DPCM is not set
1121# CONFIG_USB_STORAGE_USBAT is not set 1149# CONFIG_USB_STORAGE_USBAT is not set
1122# CONFIG_USB_STORAGE_SDDR09 is not set 1150# CONFIG_USB_STORAGE_SDDR09 is not set
1123# CONFIG_USB_STORAGE_SDDR55 is not set 1151# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1177,9 +1205,11 @@ CONFIG_USB_GADGET_SELECTED=y
1177# CONFIG_USB_GADGET_PXA25X is not set 1205# CONFIG_USB_GADGET_PXA25X is not set
1178# CONFIG_USB_GADGET_PXA27X is not set 1206# CONFIG_USB_GADGET_PXA27X is not set
1179# CONFIG_USB_GADGET_S3C2410 is not set 1207# CONFIG_USB_GADGET_S3C2410 is not set
1208# CONFIG_USB_GADGET_IMX is not set
1180# CONFIG_USB_GADGET_M66592 is not set 1209# CONFIG_USB_GADGET_M66592 is not set
1181# CONFIG_USB_GADGET_AMD5536UDC is not set 1210# CONFIG_USB_GADGET_AMD5536UDC is not set
1182# CONFIG_USB_GADGET_FSL_QE is not set 1211# CONFIG_USB_GADGET_FSL_QE is not set
1212# CONFIG_USB_GADGET_CI13XXX is not set
1183CONFIG_USB_GADGET_NET2280=y 1213CONFIG_USB_GADGET_NET2280=y
1184CONFIG_USB_NET2280=y 1214CONFIG_USB_NET2280=y
1185# CONFIG_USB_GADGET_GOKU is not set 1215# CONFIG_USB_GADGET_GOKU is not set
@@ -1194,6 +1224,10 @@ CONFIG_USB_ETH_RNDIS=y
1194# CONFIG_USB_MIDI_GADGET is not set 1224# CONFIG_USB_MIDI_GADGET is not set
1195# CONFIG_USB_G_PRINTER is not set 1225# CONFIG_USB_G_PRINTER is not set
1196# CONFIG_USB_CDC_COMPOSITE is not set 1226# CONFIG_USB_CDC_COMPOSITE is not set
1227
1228#
1229# OTG and related infrastructure
1230#
1197# CONFIG_UWB is not set 1231# CONFIG_UWB is not set
1198# CONFIG_MMC is not set 1232# CONFIG_MMC is not set
1199# CONFIG_MEMSTICK is not set 1233# CONFIG_MEMSTICK is not set
@@ -1231,12 +1265,14 @@ CONFIG_RTC_DRV_DS1307=y
1231# CONFIG_RTC_DRV_M41T80 is not set 1265# CONFIG_RTC_DRV_M41T80 is not set
1232# CONFIG_RTC_DRV_S35390A is not set 1266# CONFIG_RTC_DRV_S35390A is not set
1233# CONFIG_RTC_DRV_FM3130 is not set 1267# CONFIG_RTC_DRV_FM3130 is not set
1268# CONFIG_RTC_DRV_RX8581 is not set
1234 1269
1235# 1270#
1236# SPI RTC drivers 1271# SPI RTC drivers
1237# 1272#
1238# CONFIG_RTC_DRV_M41T94 is not set 1273# CONFIG_RTC_DRV_M41T94 is not set
1239# CONFIG_RTC_DRV_DS1305 is not set 1274# CONFIG_RTC_DRV_DS1305 is not set
1275# CONFIG_RTC_DRV_DS1390 is not set
1240# CONFIG_RTC_DRV_MAX6902 is not set 1276# CONFIG_RTC_DRV_MAX6902 is not set
1241# CONFIG_RTC_DRV_R9701 is not set 1277# CONFIG_RTC_DRV_R9701 is not set
1242# CONFIG_RTC_DRV_RS5C348 is not set 1278# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1284,6 +1320,7 @@ CONFIG_FS_MBCACHE=y
1284CONFIG_FILE_LOCKING=y 1320CONFIG_FILE_LOCKING=y
1285# CONFIG_XFS_FS is not set 1321# CONFIG_XFS_FS is not set
1286# CONFIG_OCFS2_FS is not set 1322# CONFIG_OCFS2_FS is not set
1323# CONFIG_BTRFS_FS is not set
1287CONFIG_DNOTIFY=y 1324CONFIG_DNOTIFY=y
1288CONFIG_INOTIFY=y 1325CONFIG_INOTIFY=y
1289CONFIG_INOTIFY_USER=y 1326CONFIG_INOTIFY_USER=y
@@ -1317,10 +1354,7 @@ CONFIG_TMPFS=y
1317# CONFIG_TMPFS_POSIX_ACL is not set 1354# CONFIG_TMPFS_POSIX_ACL is not set
1318# CONFIG_HUGETLB_PAGE is not set 1355# CONFIG_HUGETLB_PAGE is not set
1319# CONFIG_CONFIGFS_FS is not set 1356# CONFIG_CONFIGFS_FS is not set
1320 1357CONFIG_MISC_FILESYSTEMS=y
1321#
1322# Miscellaneous filesystems
1323#
1324# CONFIG_ADFS_FS is not set 1358# CONFIG_ADFS_FS is not set
1325# CONFIG_AFFS_FS is not set 1359# CONFIG_AFFS_FS is not set
1326# CONFIG_HFS_FS is not set 1360# CONFIG_HFS_FS is not set
@@ -1340,6 +1374,7 @@ CONFIG_JFFS2_ZLIB=y
1340CONFIG_JFFS2_RTIME=y 1374CONFIG_JFFS2_RTIME=y
1341# CONFIG_JFFS2_RUBIN is not set 1375# CONFIG_JFFS2_RUBIN is not set
1342# CONFIG_CRAMFS is not set 1376# CONFIG_CRAMFS is not set
1377# CONFIG_SQUASHFS is not set
1343# CONFIG_VXFS_FS is not set 1378# CONFIG_VXFS_FS is not set
1344# CONFIG_MINIX_FS is not set 1379# CONFIG_MINIX_FS is not set
1345# CONFIG_OMFS_FS is not set 1380# CONFIG_OMFS_FS is not set
@@ -1397,6 +1432,7 @@ CONFIG_MSDOS_PARTITION=y
1397# Library routines 1432# Library routines
1398# 1433#
1399CONFIG_BITREVERSE=y 1434CONFIG_BITREVERSE=y
1435CONFIG_GENERIC_FIND_LAST_BIT=y
1400# CONFIG_CRC_CCITT is not set 1436# CONFIG_CRC_CCITT is not set
1401# CONFIG_CRC16 is not set 1437# CONFIG_CRC16 is not set
1402# CONFIG_CRC_T10DIF is not set 1438# CONFIG_CRC_T10DIF is not set
@@ -1448,6 +1484,7 @@ CONFIG_SCHED_DEBUG=y
1448# CONFIG_DEBUG_MEMORY_INIT is not set 1484# CONFIG_DEBUG_MEMORY_INIT is not set
1449# CONFIG_DEBUG_LIST is not set 1485# CONFIG_DEBUG_LIST is not set
1450# CONFIG_DEBUG_SG is not set 1486# CONFIG_DEBUG_SG is not set
1487# CONFIG_DEBUG_NOTIFIERS is not set
1451# CONFIG_BOOT_PRINTK_DELAY is not set 1488# CONFIG_BOOT_PRINTK_DELAY is not set
1452# CONFIG_RCU_TORTURE_TEST is not set 1489# CONFIG_RCU_TORTURE_TEST is not set
1453# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1490# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1457,6 +1494,8 @@ CONFIG_SCHED_DEBUG=y
1457# CONFIG_LATENCYTOP is not set 1494# CONFIG_LATENCYTOP is not set
1458CONFIG_SYSCTL_SYSCALL_CHECK=y 1495CONFIG_SYSCTL_SYSCALL_CHECK=y
1459CONFIG_HAVE_FUNCTION_TRACER=y 1496CONFIG_HAVE_FUNCTION_TRACER=y
1497CONFIG_HAVE_DYNAMIC_FTRACE=y
1498CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1460 1499
1461# 1500#
1462# Tracers 1501# Tracers
@@ -1465,11 +1504,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1465# CONFIG_SCHED_TRACER is not set 1504# CONFIG_SCHED_TRACER is not set
1466# CONFIG_CONTEXT_SWITCH_TRACER is not set 1505# CONFIG_CONTEXT_SWITCH_TRACER is not set
1467# CONFIG_BOOT_TRACER is not set 1506# CONFIG_BOOT_TRACER is not set
1507# CONFIG_TRACE_BRANCH_PROFILING is not set
1468# CONFIG_STACK_TRACER is not set 1508# CONFIG_STACK_TRACER is not set
1469# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1509# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1470# CONFIG_SAMPLES is not set 1510# CONFIG_SAMPLES is not set
1471CONFIG_HAVE_ARCH_KGDB=y 1511CONFIG_HAVE_ARCH_KGDB=y
1472# CONFIG_KGDB is not set 1512# CONFIG_KGDB is not set
1513CONFIG_PRINT_STACK_DEPTH=64
1473# CONFIG_DEBUG_STACKOVERFLOW is not set 1514# CONFIG_DEBUG_STACKOVERFLOW is not set
1474# CONFIG_DEBUG_STACK_USAGE is not set 1515# CONFIG_DEBUG_STACK_USAGE is not set
1475# CONFIG_DEBUG_PAGEALLOC is not set 1516# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1496,11 +1537,15 @@ CONFIG_CRYPTO=y
1496# 1537#
1497# CONFIG_CRYPTO_FIPS is not set 1538# CONFIG_CRYPTO_FIPS is not set
1498CONFIG_CRYPTO_ALGAPI=y 1539CONFIG_CRYPTO_ALGAPI=y
1499CONFIG_CRYPTO_AEAD=y 1540CONFIG_CRYPTO_ALGAPI2=y
1541CONFIG_CRYPTO_AEAD2=y
1500CONFIG_CRYPTO_BLKCIPHER=y 1542CONFIG_CRYPTO_BLKCIPHER=y
1543CONFIG_CRYPTO_BLKCIPHER2=y
1501CONFIG_CRYPTO_HASH=y 1544CONFIG_CRYPTO_HASH=y
1502CONFIG_CRYPTO_RNG=y 1545CONFIG_CRYPTO_HASH2=y
1546CONFIG_CRYPTO_RNG2=y
1503CONFIG_CRYPTO_MANAGER=y 1547CONFIG_CRYPTO_MANAGER=y
1548CONFIG_CRYPTO_MANAGER2=y
1504# CONFIG_CRYPTO_GF128MUL is not set 1549# CONFIG_CRYPTO_GF128MUL is not set
1505# CONFIG_CRYPTO_NULL is not set 1550# CONFIG_CRYPTO_NULL is not set
1506# CONFIG_CRYPTO_CRYPTD is not set 1551# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index aad0e1a98c55..03db97c6cf33 100644
--- a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8315_rdb_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:51 2008 4# Mon Jan 26 15:35:49 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
269# CONFIG_PCI_DEBUG is not set 274# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -384,6 +393,7 @@ CONFIG_MTD=y
384# CONFIG_MTD_DEBUG is not set 393# CONFIG_MTD_DEBUG is not set
385# CONFIG_MTD_CONCAT is not set 394# CONFIG_MTD_CONCAT is not set
386CONFIG_MTD_PARTITIONS=y 395CONFIG_MTD_PARTITIONS=y
396# CONFIG_MTD_TESTS is not set
387# CONFIG_MTD_REDBOOT_PARTS is not set 397# CONFIG_MTD_REDBOOT_PARTS is not set
388# CONFIG_MTD_CMDLINE_PARTS is not set 398# CONFIG_MTD_CMDLINE_PARTS is not set
389# CONFIG_MTD_OF_PARTS is not set 399# CONFIG_MTD_OF_PARTS is not set
@@ -468,6 +478,12 @@ CONFIG_MTD_NAND_IDS=y
468# CONFIG_MTD_ONENAND is not set 478# CONFIG_MTD_ONENAND is not set
469 479
470# 480#
481# LPDDR flash memory drivers
482#
483# CONFIG_MTD_LPDDR is not set
484# CONFIG_MTD_QINFO_PROBE is not set
485
486#
471# UBI - Unsorted block images 487# UBI - Unsorted block images
472# 488#
473# CONFIG_MTD_UBI is not set 489# CONFIG_MTD_UBI is not set
@@ -499,8 +515,10 @@ CONFIG_MISC_DEVICES=y
499# CONFIG_EEPROM_93CX6 is not set 515# CONFIG_EEPROM_93CX6 is not set
500# CONFIG_SGI_IOC4 is not set 516# CONFIG_SGI_IOC4 is not set
501# CONFIG_TIFM_CORE is not set 517# CONFIG_TIFM_CORE is not set
518# CONFIG_ICS932S401 is not set
502# CONFIG_ENCLOSURE_SERVICES is not set 519# CONFIG_ENCLOSURE_SERVICES is not set
503# CONFIG_HP_ILO is not set 520# CONFIG_HP_ILO is not set
521# CONFIG_C2PORT is not set
504CONFIG_HAVE_IDE=y 522CONFIG_HAVE_IDE=y
505# CONFIG_IDE is not set 523# CONFIG_IDE is not set
506 524
@@ -543,6 +561,7 @@ CONFIG_SCSI_SPI_ATTRS=y
543# CONFIG_SCSI_SRP_ATTRS is not set 561# CONFIG_SCSI_SRP_ATTRS is not set
544CONFIG_SCSI_LOWLEVEL=y 562CONFIG_SCSI_LOWLEVEL=y
545# CONFIG_ISCSI_TCP is not set 563# CONFIG_ISCSI_TCP is not set
564# CONFIG_SCSI_CXGB3_ISCSI is not set
546# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 565# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
547# CONFIG_SCSI_3W_9XXX is not set 566# CONFIG_SCSI_3W_9XXX is not set
548# CONFIG_SCSI_ACARD is not set 567# CONFIG_SCSI_ACARD is not set
@@ -559,6 +578,8 @@ CONFIG_SCSI_LOWLEVEL=y
559# CONFIG_MEGARAID_SAS is not set 578# CONFIG_MEGARAID_SAS is not set
560# CONFIG_SCSI_HPTIOP is not set 579# CONFIG_SCSI_HPTIOP is not set
561# CONFIG_SCSI_BUSLOGIC is not set 580# CONFIG_SCSI_BUSLOGIC is not set
581# CONFIG_LIBFC is not set
582# CONFIG_FCOE is not set
562# CONFIG_SCSI_DMX3191D is not set 583# CONFIG_SCSI_DMX3191D is not set
563# CONFIG_SCSI_EATA is not set 584# CONFIG_SCSI_EATA is not set
564# CONFIG_SCSI_FUTURE_DOMAIN is not set 585# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -688,6 +709,9 @@ CONFIG_PHYLIB=y
688# CONFIG_BROADCOM_PHY is not set 709# CONFIG_BROADCOM_PHY is not set
689# CONFIG_ICPLUS_PHY is not set 710# CONFIG_ICPLUS_PHY is not set
690# CONFIG_REALTEK_PHY is not set 711# CONFIG_REALTEK_PHY is not set
712# CONFIG_NATIONAL_PHY is not set
713# CONFIG_STE10XP is not set
714# CONFIG_LSI_ET1011C_PHY is not set
691# CONFIG_FIXED_PHY is not set 715# CONFIG_FIXED_PHY is not set
692# CONFIG_MDIO_BITBANG is not set 716# CONFIG_MDIO_BITBANG is not set
693CONFIG_NET_ETHERNET=y 717CONFIG_NET_ETHERNET=y
@@ -712,7 +736,6 @@ CONFIG_NET_PCI=y
712# CONFIG_ADAPTEC_STARFIRE is not set 736# CONFIG_ADAPTEC_STARFIRE is not set
713# CONFIG_B44 is not set 737# CONFIG_B44 is not set
714# CONFIG_FORCEDETH is not set 738# CONFIG_FORCEDETH is not set
715# CONFIG_EEPRO100 is not set
716CONFIG_E100=y 739CONFIG_E100=y
717# CONFIG_FEALNX is not set 740# CONFIG_FEALNX is not set
718# CONFIG_NATSEMI is not set 741# CONFIG_NATSEMI is not set
@@ -722,6 +745,7 @@ CONFIG_E100=y
722# CONFIG_R6040 is not set 745# CONFIG_R6040 is not set
723# CONFIG_SIS900 is not set 746# CONFIG_SIS900 is not set
724# CONFIG_EPIC100 is not set 747# CONFIG_EPIC100 is not set
748# CONFIG_SMSC9420 is not set
725# CONFIG_SUNDANCE is not set 749# CONFIG_SUNDANCE is not set
726# CONFIG_TLAN is not set 750# CONFIG_TLAN is not set
727# CONFIG_VIA_RHINE is not set 751# CONFIG_VIA_RHINE is not set
@@ -752,6 +776,7 @@ CONFIG_GIANFAR=y
752# CONFIG_JME is not set 776# CONFIG_JME is not set
753CONFIG_NETDEV_10000=y 777CONFIG_NETDEV_10000=y
754# CONFIG_CHELSIO_T1 is not set 778# CONFIG_CHELSIO_T1 is not set
779CONFIG_CHELSIO_T3_DEPENDS=y
755# CONFIG_CHELSIO_T3 is not set 780# CONFIG_CHELSIO_T3 is not set
756# CONFIG_ENIC is not set 781# CONFIG_ENIC is not set
757# CONFIG_IXGBE is not set 782# CONFIG_IXGBE is not set
@@ -776,6 +801,10 @@ CONFIG_NETDEV_10000=y
776# CONFIG_IWLWIFI_LEDS is not set 801# CONFIG_IWLWIFI_LEDS is not set
777 802
778# 803#
804# Enable WiMAX (Networking options) to see the WiMAX drivers
805#
806
807#
779# USB Network Adapters 808# USB Network Adapters
780# 809#
781# CONFIG_USB_CATC is not set 810# CONFIG_USB_CATC is not set
@@ -853,8 +882,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
853# CONFIG_SERIAL_JSM is not set 882# CONFIG_SERIAL_JSM is not set
854# CONFIG_SERIAL_OF_PLATFORM is not set 883# CONFIG_SERIAL_OF_PLATFORM is not set
855CONFIG_UNIX98_PTYS=y 884CONFIG_UNIX98_PTYS=y
885# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
856CONFIG_LEGACY_PTYS=y 886CONFIG_LEGACY_PTYS=y
857CONFIG_LEGACY_PTY_COUNT=256 887CONFIG_LEGACY_PTY_COUNT=256
888# CONFIG_HVC_UDBG is not set
858# CONFIG_IPMI_HANDLER is not set 889# CONFIG_IPMI_HANDLER is not set
859CONFIG_HW_RANDOM=y 890CONFIG_HW_RANDOM=y
860# CONFIG_NVRAM is not set 891# CONFIG_NVRAM is not set
@@ -919,15 +950,14 @@ CONFIG_I2C_MPC=y
919# Miscellaneous I2C Chip support 950# Miscellaneous I2C Chip support
920# 951#
921# CONFIG_DS1682 is not set 952# CONFIG_DS1682 is not set
922# CONFIG_AT24 is not set 953# CONFIG_EEPROM_AT24 is not set
923# CONFIG_SENSORS_EEPROM is not set 954# CONFIG_EEPROM_LEGACY is not set
924# CONFIG_SENSORS_PCF8574 is not set 955# CONFIG_SENSORS_PCF8574 is not set
925# CONFIG_PCF8575 is not set 956# CONFIG_PCF8575 is not set
926# CONFIG_SENSORS_PCA9539 is not set 957# CONFIG_SENSORS_PCA9539 is not set
927# CONFIG_SENSORS_PCF8591 is not set 958# CONFIG_SENSORS_PCF8591 is not set
928# CONFIG_SENSORS_MAX6875 is not set 959# CONFIG_SENSORS_MAX6875 is not set
929# CONFIG_SENSORS_TSL2550 is not set 960# CONFIG_SENSORS_TSL2550 is not set
930# CONFIG_MCU_MPC8349EMITX is not set
931# CONFIG_I2C_DEBUG_CORE is not set 961# CONFIG_I2C_DEBUG_CORE is not set
932# CONFIG_I2C_DEBUG_ALGO is not set 962# CONFIG_I2C_DEBUG_ALGO is not set
933# CONFIG_I2C_DEBUG_BUS is not set 963# CONFIG_I2C_DEBUG_BUS is not set
@@ -945,7 +975,7 @@ CONFIG_SPI_MPC83xx=y
945# 975#
946# SPI Protocol Masters 976# SPI Protocol Masters
947# 977#
948# CONFIG_SPI_AT25 is not set 978# CONFIG_EEPROM_AT25 is not set
949# CONFIG_SPI_SPIDEV is not set 979# CONFIG_SPI_SPIDEV is not set
950# CONFIG_SPI_TLE62X0 is not set 980# CONFIG_SPI_TLE62X0 is not set
951CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 981CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -963,8 +993,10 @@ CONFIG_HWMON=y
963# CONFIG_SENSORS_ADM1029 is not set 993# CONFIG_SENSORS_ADM1029 is not set
964# CONFIG_SENSORS_ADM1031 is not set 994# CONFIG_SENSORS_ADM1031 is not set
965# CONFIG_SENSORS_ADM9240 is not set 995# CONFIG_SENSORS_ADM9240 is not set
996# CONFIG_SENSORS_ADT7462 is not set
966# CONFIG_SENSORS_ADT7470 is not set 997# CONFIG_SENSORS_ADT7470 is not set
967# CONFIG_SENSORS_ADT7473 is not set 998# CONFIG_SENSORS_ADT7473 is not set
999# CONFIG_SENSORS_ADT7475 is not set
968# CONFIG_SENSORS_ATXP1 is not set 1000# CONFIG_SENSORS_ATXP1 is not set
969# CONFIG_SENSORS_DS1621 is not set 1001# CONFIG_SENSORS_DS1621 is not set
970# CONFIG_SENSORS_I5K_AMB is not set 1002# CONFIG_SENSORS_I5K_AMB is not set
@@ -986,6 +1018,7 @@ CONFIG_HWMON=y
986# CONFIG_SENSORS_LM90 is not set 1018# CONFIG_SENSORS_LM90 is not set
987# CONFIG_SENSORS_LM92 is not set 1019# CONFIG_SENSORS_LM92 is not set
988# CONFIG_SENSORS_LM93 is not set 1020# CONFIG_SENSORS_LM93 is not set
1021# CONFIG_SENSORS_LTC4245 is not set
989# CONFIG_SENSORS_MAX1111 is not set 1022# CONFIG_SENSORS_MAX1111 is not set
990# CONFIG_SENSORS_MAX1619 is not set 1023# CONFIG_SENSORS_MAX1619 is not set
991# CONFIG_SENSORS_MAX6650 is not set 1024# CONFIG_SENSORS_MAX6650 is not set
@@ -1032,11 +1065,11 @@ CONFIG_WATCHDOG=y
1032# USB-based Watchdog Cards 1065# USB-based Watchdog Cards
1033# 1066#
1034# CONFIG_USBPCWATCHDOG is not set 1067# CONFIG_USBPCWATCHDOG is not set
1068CONFIG_SSB_POSSIBLE=y
1035 1069
1036# 1070#
1037# Sonics Silicon Backplane 1071# Sonics Silicon Backplane
1038# 1072#
1039CONFIG_SSB_POSSIBLE=y
1040# CONFIG_SSB is not set 1073# CONFIG_SSB is not set
1041 1074
1042# 1075#
@@ -1045,18 +1078,13 @@ CONFIG_SSB_POSSIBLE=y
1045# CONFIG_MFD_CORE is not set 1078# CONFIG_MFD_CORE is not set
1046# CONFIG_MFD_SM501 is not set 1079# CONFIG_MFD_SM501 is not set
1047# CONFIG_HTC_PASIC3 is not set 1080# CONFIG_HTC_PASIC3 is not set
1081# CONFIG_TWL4030_CORE is not set
1048# CONFIG_MFD_TMIO is not set 1082# CONFIG_MFD_TMIO is not set
1049# CONFIG_PMIC_DA903X is not set 1083# CONFIG_PMIC_DA903X is not set
1050# CONFIG_MFD_WM8400 is not set 1084# CONFIG_MFD_WM8400 is not set
1051# CONFIG_MFD_WM8350_I2C is not set 1085# CONFIG_MFD_WM8350_I2C is not set
1052 1086# CONFIG_MFD_PCF50633 is not set
1053#
1054# Voltage and Current regulators
1055#
1056# CONFIG_REGULATOR is not set 1087# CONFIG_REGULATOR is not set
1057# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1058# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1059# CONFIG_REGULATOR_BQ24022 is not set
1060 1088
1061# 1089#
1062# Multimedia devices 1090# Multimedia devices
@@ -1141,6 +1169,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1141# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1169# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1142CONFIG_USB_EHCI_FSL=y 1170CONFIG_USB_EHCI_FSL=y
1143CONFIG_USB_EHCI_HCD_PPC_OF=y 1171CONFIG_USB_EHCI_HCD_PPC_OF=y
1172# CONFIG_USB_OXU210HP_HCD is not set
1144# CONFIG_USB_ISP116X_HCD is not set 1173# CONFIG_USB_ISP116X_HCD is not set
1145# CONFIG_USB_ISP1760_HCD is not set 1174# CONFIG_USB_ISP1760_HCD is not set
1146CONFIG_USB_OHCI_HCD=y 1175CONFIG_USB_OHCI_HCD=y
@@ -1167,18 +1196,17 @@ CONFIG_USB_UHCI_HCD=y
1167# CONFIG_USB_TMC is not set 1196# CONFIG_USB_TMC is not set
1168 1197
1169# 1198#
1170# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1199# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1171# 1200#
1172 1201
1173# 1202#
1174# may also be needed; see USB_STORAGE Help for more information 1203# see USB_STORAGE Help for more information
1175# 1204#
1176CONFIG_USB_STORAGE=y 1205CONFIG_USB_STORAGE=y
1177# CONFIG_USB_STORAGE_DEBUG is not set 1206# CONFIG_USB_STORAGE_DEBUG is not set
1178# CONFIG_USB_STORAGE_DATAFAB is not set 1207# CONFIG_USB_STORAGE_DATAFAB is not set
1179# CONFIG_USB_STORAGE_FREECOM is not set 1208# CONFIG_USB_STORAGE_FREECOM is not set
1180# CONFIG_USB_STORAGE_ISD200 is not set 1209# CONFIG_USB_STORAGE_ISD200 is not set
1181# CONFIG_USB_STORAGE_DPCM is not set
1182# CONFIG_USB_STORAGE_USBAT is not set 1210# CONFIG_USB_STORAGE_USBAT is not set
1183# CONFIG_USB_STORAGE_SDDR09 is not set 1211# CONFIG_USB_STORAGE_SDDR09 is not set
1184# CONFIG_USB_STORAGE_SDDR55 is not set 1212# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1238,9 +1266,11 @@ CONFIG_USB_GADGET_SELECTED=y
1238# CONFIG_USB_GADGET_PXA25X is not set 1266# CONFIG_USB_GADGET_PXA25X is not set
1239# CONFIG_USB_GADGET_PXA27X is not set 1267# CONFIG_USB_GADGET_PXA27X is not set
1240# CONFIG_USB_GADGET_S3C2410 is not set 1268# CONFIG_USB_GADGET_S3C2410 is not set
1269# CONFIG_USB_GADGET_IMX is not set
1241# CONFIG_USB_GADGET_M66592 is not set 1270# CONFIG_USB_GADGET_M66592 is not set
1242# CONFIG_USB_GADGET_AMD5536UDC is not set 1271# CONFIG_USB_GADGET_AMD5536UDC is not set
1243# CONFIG_USB_GADGET_FSL_QE is not set 1272# CONFIG_USB_GADGET_FSL_QE is not set
1273# CONFIG_USB_GADGET_CI13XXX is not set
1244CONFIG_USB_GADGET_NET2280=y 1274CONFIG_USB_GADGET_NET2280=y
1245CONFIG_USB_NET2280=y 1275CONFIG_USB_NET2280=y
1246# CONFIG_USB_GADGET_GOKU is not set 1276# CONFIG_USB_GADGET_GOKU is not set
@@ -1255,6 +1285,10 @@ CONFIG_USB_ETH_RNDIS=y
1255# CONFIG_USB_MIDI_GADGET is not set 1285# CONFIG_USB_MIDI_GADGET is not set
1256# CONFIG_USB_G_PRINTER is not set 1286# CONFIG_USB_G_PRINTER is not set
1257# CONFIG_USB_CDC_COMPOSITE is not set 1287# CONFIG_USB_CDC_COMPOSITE is not set
1288
1289#
1290# OTG and related infrastructure
1291#
1258# CONFIG_UWB is not set 1292# CONFIG_UWB is not set
1259# CONFIG_MMC is not set 1293# CONFIG_MMC is not set
1260# CONFIG_MEMSTICK is not set 1294# CONFIG_MEMSTICK is not set
@@ -1292,12 +1326,14 @@ CONFIG_RTC_DRV_DS1307=y
1292# CONFIG_RTC_DRV_M41T80 is not set 1326# CONFIG_RTC_DRV_M41T80 is not set
1293# CONFIG_RTC_DRV_S35390A is not set 1327# CONFIG_RTC_DRV_S35390A is not set
1294# CONFIG_RTC_DRV_FM3130 is not set 1328# CONFIG_RTC_DRV_FM3130 is not set
1329# CONFIG_RTC_DRV_RX8581 is not set
1295 1330
1296# 1331#
1297# SPI RTC drivers 1332# SPI RTC drivers
1298# 1333#
1299# CONFIG_RTC_DRV_M41T94 is not set 1334# CONFIG_RTC_DRV_M41T94 is not set
1300# CONFIG_RTC_DRV_DS1305 is not set 1335# CONFIG_RTC_DRV_DS1305 is not set
1336# CONFIG_RTC_DRV_DS1390 is not set
1301# CONFIG_RTC_DRV_MAX6902 is not set 1337# CONFIG_RTC_DRV_MAX6902 is not set
1302# CONFIG_RTC_DRV_R9701 is not set 1338# CONFIG_RTC_DRV_R9701 is not set
1303# CONFIG_RTC_DRV_RS5C348 is not set 1339# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1345,6 +1381,7 @@ CONFIG_FS_MBCACHE=y
1345CONFIG_FILE_LOCKING=y 1381CONFIG_FILE_LOCKING=y
1346# CONFIG_XFS_FS is not set 1382# CONFIG_XFS_FS is not set
1347# CONFIG_OCFS2_FS is not set 1383# CONFIG_OCFS2_FS is not set
1384# CONFIG_BTRFS_FS is not set
1348CONFIG_DNOTIFY=y 1385CONFIG_DNOTIFY=y
1349CONFIG_INOTIFY=y 1386CONFIG_INOTIFY=y
1350CONFIG_INOTIFY_USER=y 1387CONFIG_INOTIFY_USER=y
@@ -1378,10 +1415,7 @@ CONFIG_TMPFS=y
1378# CONFIG_TMPFS_POSIX_ACL is not set 1415# CONFIG_TMPFS_POSIX_ACL is not set
1379# CONFIG_HUGETLB_PAGE is not set 1416# CONFIG_HUGETLB_PAGE is not set
1380# CONFIG_CONFIGFS_FS is not set 1417# CONFIG_CONFIGFS_FS is not set
1381 1418CONFIG_MISC_FILESYSTEMS=y
1382#
1383# Miscellaneous filesystems
1384#
1385# CONFIG_ADFS_FS is not set 1419# CONFIG_ADFS_FS is not set
1386# CONFIG_AFFS_FS is not set 1420# CONFIG_AFFS_FS is not set
1387# CONFIG_HFS_FS is not set 1421# CONFIG_HFS_FS is not set
@@ -1401,6 +1435,7 @@ CONFIG_JFFS2_ZLIB=y
1401CONFIG_JFFS2_RTIME=y 1435CONFIG_JFFS2_RTIME=y
1402# CONFIG_JFFS2_RUBIN is not set 1436# CONFIG_JFFS2_RUBIN is not set
1403# CONFIG_CRAMFS is not set 1437# CONFIG_CRAMFS is not set
1438# CONFIG_SQUASHFS is not set
1404# CONFIG_VXFS_FS is not set 1439# CONFIG_VXFS_FS is not set
1405# CONFIG_MINIX_FS is not set 1440# CONFIG_MINIX_FS is not set
1406# CONFIG_OMFS_FS is not set 1441# CONFIG_OMFS_FS is not set
@@ -1458,6 +1493,7 @@ CONFIG_MSDOS_PARTITION=y
1458# Library routines 1493# Library routines
1459# 1494#
1460CONFIG_BITREVERSE=y 1495CONFIG_BITREVERSE=y
1496CONFIG_GENERIC_FIND_LAST_BIT=y
1461# CONFIG_CRC_CCITT is not set 1497# CONFIG_CRC_CCITT is not set
1462# CONFIG_CRC16 is not set 1498# CONFIG_CRC16 is not set
1463# CONFIG_CRC_T10DIF is not set 1499# CONFIG_CRC_T10DIF is not set
@@ -1509,6 +1545,7 @@ CONFIG_SCHED_DEBUG=y
1509# CONFIG_DEBUG_MEMORY_INIT is not set 1545# CONFIG_DEBUG_MEMORY_INIT is not set
1510# CONFIG_DEBUG_LIST is not set 1546# CONFIG_DEBUG_LIST is not set
1511# CONFIG_DEBUG_SG is not set 1547# CONFIG_DEBUG_SG is not set
1548# CONFIG_DEBUG_NOTIFIERS is not set
1512# CONFIG_BOOT_PRINTK_DELAY is not set 1549# CONFIG_BOOT_PRINTK_DELAY is not set
1513# CONFIG_RCU_TORTURE_TEST is not set 1550# CONFIG_RCU_TORTURE_TEST is not set
1514# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1551# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1518,6 +1555,8 @@ CONFIG_SCHED_DEBUG=y
1518# CONFIG_LATENCYTOP is not set 1555# CONFIG_LATENCYTOP is not set
1519CONFIG_SYSCTL_SYSCALL_CHECK=y 1556CONFIG_SYSCTL_SYSCALL_CHECK=y
1520CONFIG_HAVE_FUNCTION_TRACER=y 1557CONFIG_HAVE_FUNCTION_TRACER=y
1558CONFIG_HAVE_DYNAMIC_FTRACE=y
1559CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1521 1560
1522# 1561#
1523# Tracers 1562# Tracers
@@ -1526,11 +1565,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1526# CONFIG_SCHED_TRACER is not set 1565# CONFIG_SCHED_TRACER is not set
1527# CONFIG_CONTEXT_SWITCH_TRACER is not set 1566# CONFIG_CONTEXT_SWITCH_TRACER is not set
1528# CONFIG_BOOT_TRACER is not set 1567# CONFIG_BOOT_TRACER is not set
1568# CONFIG_TRACE_BRANCH_PROFILING is not set
1529# CONFIG_STACK_TRACER is not set 1569# CONFIG_STACK_TRACER is not set
1530# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1570# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1531# CONFIG_SAMPLES is not set 1571# CONFIG_SAMPLES is not set
1532CONFIG_HAVE_ARCH_KGDB=y 1572CONFIG_HAVE_ARCH_KGDB=y
1533# CONFIG_KGDB is not set 1573# CONFIG_KGDB is not set
1574CONFIG_PRINT_STACK_DEPTH=64
1534# CONFIG_DEBUG_STACKOVERFLOW is not set 1575# CONFIG_DEBUG_STACKOVERFLOW is not set
1535# CONFIG_DEBUG_STACK_USAGE is not set 1576# CONFIG_DEBUG_STACK_USAGE is not set
1536# CONFIG_DEBUG_PAGEALLOC is not set 1577# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1557,11 +1598,15 @@ CONFIG_CRYPTO=y
1557# 1598#
1558# CONFIG_CRYPTO_FIPS is not set 1599# CONFIG_CRYPTO_FIPS is not set
1559CONFIG_CRYPTO_ALGAPI=y 1600CONFIG_CRYPTO_ALGAPI=y
1560CONFIG_CRYPTO_AEAD=y 1601CONFIG_CRYPTO_ALGAPI2=y
1602CONFIG_CRYPTO_AEAD2=y
1561CONFIG_CRYPTO_BLKCIPHER=y 1603CONFIG_CRYPTO_BLKCIPHER=y
1604CONFIG_CRYPTO_BLKCIPHER2=y
1562CONFIG_CRYPTO_HASH=y 1605CONFIG_CRYPTO_HASH=y
1563CONFIG_CRYPTO_RNG=y 1606CONFIG_CRYPTO_HASH2=y
1607CONFIG_CRYPTO_RNG2=y
1564CONFIG_CRYPTO_MANAGER=y 1608CONFIG_CRYPTO_MANAGER=y
1609CONFIG_CRYPTO_MANAGER2=y
1565# CONFIG_CRYPTO_GF128MUL is not set 1610# CONFIG_CRYPTO_GF128MUL is not set
1566# CONFIG_CRYPTO_NULL is not set 1611# CONFIG_CRYPTO_NULL is not set
1567# CONFIG_CRYPTO_CRYPTD is not set 1612# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index 9cb8c8b956e4..fb17de53cc02 100644
--- a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_mds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:53 2008 4# Mon Jan 26 15:35:50 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198CONFIG_QUICC_ENGINE=y 198CONFIG_QUICC_ENGINE=y
199# CONFIG_QE_GPIO is not set 199# CONFIG_QE_GPIO is not set
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -226,6 +228,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
226CONFIG_ARCH_HAS_WALK_MEMORY=y 228CONFIG_ARCH_HAS_WALK_MEMORY=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set 230# CONFIG_KEXEC is not set
231# CONFIG_CRASH_DUMP is not set
229CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
231CONFIG_SELECT_MEMORY_MODEL=y 234CONFIG_SELECT_MEMORY_MODEL=y
@@ -237,12 +240,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 242CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 243# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
247CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
248# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_PCI_SYSCALL=y
267CONFIG_ARCH_SUPPORTS_MSI=y 272CONFIG_ARCH_SUPPORTS_MSI=y
268# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
269# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -405,8 +414,10 @@ CONFIG_MISC_DEVICES=y
405# CONFIG_EEPROM_93CX6 is not set 414# CONFIG_EEPROM_93CX6 is not set
406# CONFIG_SGI_IOC4 is not set 415# CONFIG_SGI_IOC4 is not set
407# CONFIG_TIFM_CORE is not set 416# CONFIG_TIFM_CORE is not set
417# CONFIG_ICS932S401 is not set
408# CONFIG_ENCLOSURE_SERVICES is not set 418# CONFIG_ENCLOSURE_SERVICES is not set
409# CONFIG_HP_ILO is not set 419# CONFIG_HP_ILO is not set
420# CONFIG_C2PORT is not set
410CONFIG_HAVE_IDE=y 421CONFIG_HAVE_IDE=y
411# CONFIG_IDE is not set 422# CONFIG_IDE is not set
412 423
@@ -449,6 +460,7 @@ CONFIG_SCSI_WAIT_SCAN=m
449# CONFIG_SCSI_SRP_ATTRS is not set 460# CONFIG_SCSI_SRP_ATTRS is not set
450CONFIG_SCSI_LOWLEVEL=y 461CONFIG_SCSI_LOWLEVEL=y
451# CONFIG_ISCSI_TCP is not set 462# CONFIG_ISCSI_TCP is not set
463# CONFIG_SCSI_CXGB3_ISCSI is not set
452# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 464# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
453# CONFIG_SCSI_3W_9XXX is not set 465# CONFIG_SCSI_3W_9XXX is not set
454# CONFIG_SCSI_ACARD is not set 466# CONFIG_SCSI_ACARD is not set
@@ -465,6 +477,8 @@ CONFIG_SCSI_LOWLEVEL=y
465# CONFIG_MEGARAID_SAS is not set 477# CONFIG_MEGARAID_SAS is not set
466# CONFIG_SCSI_HPTIOP is not set 478# CONFIG_SCSI_HPTIOP is not set
467# CONFIG_SCSI_BUSLOGIC is not set 479# CONFIG_SCSI_BUSLOGIC is not set
480# CONFIG_LIBFC is not set
481# CONFIG_FCOE is not set
468# CONFIG_SCSI_DMX3191D is not set 482# CONFIG_SCSI_DMX3191D is not set
469# CONFIG_SCSI_EATA is not set 483# CONFIG_SCSI_EATA is not set
470# CONFIG_SCSI_FUTURE_DOMAIN is not set 484# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -523,6 +537,9 @@ CONFIG_DAVICOM_PHY=y
523# CONFIG_BROADCOM_PHY is not set 537# CONFIG_BROADCOM_PHY is not set
524# CONFIG_ICPLUS_PHY is not set 538# CONFIG_ICPLUS_PHY is not set
525# CONFIG_REALTEK_PHY is not set 539# CONFIG_REALTEK_PHY is not set
540# CONFIG_NATIONAL_PHY is not set
541# CONFIG_STE10XP is not set
542# CONFIG_LSI_ET1011C_PHY is not set
526# CONFIG_FIXED_PHY is not set 543# CONFIG_FIXED_PHY is not set
527# CONFIG_MDIO_BITBANG is not set 544# CONFIG_MDIO_BITBANG is not set
528CONFIG_NET_ETHERNET=y 545CONFIG_NET_ETHERNET=y
@@ -563,7 +580,6 @@ CONFIG_NETDEV_1000=y
563# CONFIG_GIANFAR is not set 580# CONFIG_GIANFAR is not set
564CONFIG_UCC_GETH=y 581CONFIG_UCC_GETH=y
565# CONFIG_UGETH_MAGIC_PACKET is not set 582# CONFIG_UGETH_MAGIC_PACKET is not set
566# CONFIG_UGETH_FILTERING is not set
567# CONFIG_UGETH_TX_ON_DEMAND is not set 583# CONFIG_UGETH_TX_ON_DEMAND is not set
568# CONFIG_MV643XX_ETH is not set 584# CONFIG_MV643XX_ETH is not set
569# CONFIG_QLA3XXX is not set 585# CONFIG_QLA3XXX is not set
@@ -572,6 +588,7 @@ CONFIG_UCC_GETH=y
572# CONFIG_JME is not set 588# CONFIG_JME is not set
573CONFIG_NETDEV_10000=y 589CONFIG_NETDEV_10000=y
574# CONFIG_CHELSIO_T1 is not set 590# CONFIG_CHELSIO_T1 is not set
591CONFIG_CHELSIO_T3_DEPENDS=y
575# CONFIG_CHELSIO_T3 is not set 592# CONFIG_CHELSIO_T3 is not set
576# CONFIG_ENIC is not set 593# CONFIG_ENIC is not set
577# CONFIG_IXGBE is not set 594# CONFIG_IXGBE is not set
@@ -594,6 +611,10 @@ CONFIG_NETDEV_10000=y
594# CONFIG_WLAN_PRE80211 is not set 611# CONFIG_WLAN_PRE80211 is not set
595# CONFIG_WLAN_80211 is not set 612# CONFIG_WLAN_80211 is not set
596# CONFIG_IWLWIFI_LEDS is not set 613# CONFIG_IWLWIFI_LEDS is not set
614
615#
616# Enable WiMAX (Networking options) to see the WiMAX drivers
617#
597# CONFIG_WAN is not set 618# CONFIG_WAN is not set
598# CONFIG_FDDI is not set 619# CONFIG_FDDI is not set
599# CONFIG_HIPPI is not set 620# CONFIG_HIPPI is not set
@@ -665,8 +686,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
665# CONFIG_SERIAL_OF_PLATFORM is not set 686# CONFIG_SERIAL_OF_PLATFORM is not set
666# CONFIG_SERIAL_QE is not set 687# CONFIG_SERIAL_QE is not set
667CONFIG_UNIX98_PTYS=y 688CONFIG_UNIX98_PTYS=y
689# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
668CONFIG_LEGACY_PTYS=y 690CONFIG_LEGACY_PTYS=y
669CONFIG_LEGACY_PTY_COUNT=256 691CONFIG_LEGACY_PTY_COUNT=256
692# CONFIG_HVC_UDBG is not set
670# CONFIG_IPMI_HANDLER is not set 693# CONFIG_IPMI_HANDLER is not set
671CONFIG_HW_RANDOM=y 694CONFIG_HW_RANDOM=y
672# CONFIG_NVRAM is not set 695# CONFIG_NVRAM is not set
@@ -730,15 +753,14 @@ CONFIG_I2C_MPC=y
730# Miscellaneous I2C Chip support 753# Miscellaneous I2C Chip support
731# 754#
732# CONFIG_DS1682 is not set 755# CONFIG_DS1682 is not set
733# CONFIG_AT24 is not set 756# CONFIG_EEPROM_AT24 is not set
734# CONFIG_SENSORS_EEPROM is not set 757# CONFIG_EEPROM_LEGACY is not set
735# CONFIG_SENSORS_PCF8574 is not set 758# CONFIG_SENSORS_PCF8574 is not set
736# CONFIG_PCF8575 is not set 759# CONFIG_PCF8575 is not set
737# CONFIG_SENSORS_PCA9539 is not set 760# CONFIG_SENSORS_PCA9539 is not set
738# CONFIG_SENSORS_PCF8591 is not set 761# CONFIG_SENSORS_PCF8591 is not set
739# CONFIG_SENSORS_MAX6875 is not set 762# CONFIG_SENSORS_MAX6875 is not set
740# CONFIG_SENSORS_TSL2550 is not set 763# CONFIG_SENSORS_TSL2550 is not set
741# CONFIG_MCU_MPC8349EMITX is not set
742# CONFIG_I2C_DEBUG_CORE is not set 764# CONFIG_I2C_DEBUG_CORE is not set
743# CONFIG_I2C_DEBUG_ALGO is not set 765# CONFIG_I2C_DEBUG_ALGO is not set
744# CONFIG_I2C_DEBUG_BUS is not set 766# CONFIG_I2C_DEBUG_BUS is not set
@@ -758,8 +780,10 @@ CONFIG_HWMON=y
758# CONFIG_SENSORS_ADM1029 is not set 780# CONFIG_SENSORS_ADM1029 is not set
759# CONFIG_SENSORS_ADM1031 is not set 781# CONFIG_SENSORS_ADM1031 is not set
760# CONFIG_SENSORS_ADM9240 is not set 782# CONFIG_SENSORS_ADM9240 is not set
783# CONFIG_SENSORS_ADT7462 is not set
761# CONFIG_SENSORS_ADT7470 is not set 784# CONFIG_SENSORS_ADT7470 is not set
762# CONFIG_SENSORS_ADT7473 is not set 785# CONFIG_SENSORS_ADT7473 is not set
786# CONFIG_SENSORS_ADT7475 is not set
763# CONFIG_SENSORS_ATXP1 is not set 787# CONFIG_SENSORS_ATXP1 is not set
764# CONFIG_SENSORS_DS1621 is not set 788# CONFIG_SENSORS_DS1621 is not set
765# CONFIG_SENSORS_I5K_AMB is not set 789# CONFIG_SENSORS_I5K_AMB is not set
@@ -780,6 +804,7 @@ CONFIG_HWMON=y
780# CONFIG_SENSORS_LM90 is not set 804# CONFIG_SENSORS_LM90 is not set
781# CONFIG_SENSORS_LM92 is not set 805# CONFIG_SENSORS_LM92 is not set
782# CONFIG_SENSORS_LM93 is not set 806# CONFIG_SENSORS_LM93 is not set
807# CONFIG_SENSORS_LTC4245 is not set
783# CONFIG_SENSORS_MAX1619 is not set 808# CONFIG_SENSORS_MAX1619 is not set
784# CONFIG_SENSORS_MAX6650 is not set 809# CONFIG_SENSORS_MAX6650 is not set
785# CONFIG_SENSORS_PC87360 is not set 810# CONFIG_SENSORS_PC87360 is not set
@@ -820,11 +845,11 @@ CONFIG_WATCHDOG=y
820# 845#
821# CONFIG_PCIPCWATCHDOG is not set 846# CONFIG_PCIPCWATCHDOG is not set
822# CONFIG_WDTPCI is not set 847# CONFIG_WDTPCI is not set
848CONFIG_SSB_POSSIBLE=y
823 849
824# 850#
825# Sonics Silicon Backplane 851# Sonics Silicon Backplane
826# 852#
827CONFIG_SSB_POSSIBLE=y
828# CONFIG_SSB is not set 853# CONFIG_SSB is not set
829 854
830# 855#
@@ -833,18 +858,13 @@ CONFIG_SSB_POSSIBLE=y
833# CONFIG_MFD_CORE is not set 858# CONFIG_MFD_CORE is not set
834# CONFIG_MFD_SM501 is not set 859# CONFIG_MFD_SM501 is not set
835# CONFIG_HTC_PASIC3 is not set 860# CONFIG_HTC_PASIC3 is not set
861# CONFIG_TWL4030_CORE is not set
836# CONFIG_MFD_TMIO is not set 862# CONFIG_MFD_TMIO is not set
837# CONFIG_PMIC_DA903X is not set 863# CONFIG_PMIC_DA903X is not set
838# CONFIG_MFD_WM8400 is not set 864# CONFIG_MFD_WM8400 is not set
839# CONFIG_MFD_WM8350_I2C is not set 865# CONFIG_MFD_WM8350_I2C is not set
840 866# CONFIG_MFD_PCF50633 is not set
841#
842# Voltage and Current regulators
843#
844# CONFIG_REGULATOR is not set 867# CONFIG_REGULATOR is not set
845# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
846# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
847# CONFIG_REGULATOR_BQ24022 is not set
848 868
849# 869#
850# Multimedia devices 870# Multimedia devices
@@ -900,9 +920,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
900# 920#
901 921
902# 922#
903# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 923# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
904# 924#
905# CONFIG_USB_GADGET is not set 925# CONFIG_USB_GADGET is not set
926
927#
928# OTG and related infrastructure
929#
906# CONFIG_UWB is not set 930# CONFIG_UWB is not set
907# CONFIG_MMC is not set 931# CONFIG_MMC is not set
908# CONFIG_MEMSTICK is not set 932# CONFIG_MEMSTICK is not set
@@ -940,6 +964,7 @@ CONFIG_RTC_DRV_DS1374=y
940# CONFIG_RTC_DRV_M41T80 is not set 964# CONFIG_RTC_DRV_M41T80 is not set
941# CONFIG_RTC_DRV_S35390A is not set 965# CONFIG_RTC_DRV_S35390A is not set
942# CONFIG_RTC_DRV_FM3130 is not set 966# CONFIG_RTC_DRV_FM3130 is not set
967# CONFIG_RTC_DRV_RX8581 is not set
943 968
944# 969#
945# SPI RTC drivers 970# SPI RTC drivers
@@ -987,6 +1012,7 @@ CONFIG_FS_MBCACHE=y
987CONFIG_FILE_LOCKING=y 1012CONFIG_FILE_LOCKING=y
988# CONFIG_XFS_FS is not set 1013# CONFIG_XFS_FS is not set
989# CONFIG_OCFS2_FS is not set 1014# CONFIG_OCFS2_FS is not set
1015# CONFIG_BTRFS_FS is not set
990CONFIG_DNOTIFY=y 1016CONFIG_DNOTIFY=y
991CONFIG_INOTIFY=y 1017CONFIG_INOTIFY=y
992CONFIG_INOTIFY_USER=y 1018CONFIG_INOTIFY_USER=y
@@ -1020,10 +1046,7 @@ CONFIG_TMPFS=y
1020# CONFIG_TMPFS_POSIX_ACL is not set 1046# CONFIG_TMPFS_POSIX_ACL is not set
1021# CONFIG_HUGETLB_PAGE is not set 1047# CONFIG_HUGETLB_PAGE is not set
1022# CONFIG_CONFIGFS_FS is not set 1048# CONFIG_CONFIGFS_FS is not set
1023 1049CONFIG_MISC_FILESYSTEMS=y
1024#
1025# Miscellaneous filesystems
1026#
1027# CONFIG_ADFS_FS is not set 1050# CONFIG_ADFS_FS is not set
1028# CONFIG_AFFS_FS is not set 1051# CONFIG_AFFS_FS is not set
1029# CONFIG_HFS_FS is not set 1052# CONFIG_HFS_FS is not set
@@ -1032,6 +1055,7 @@ CONFIG_TMPFS=y
1032# CONFIG_BFS_FS is not set 1055# CONFIG_BFS_FS is not set
1033# CONFIG_EFS_FS is not set 1056# CONFIG_EFS_FS is not set
1034# CONFIG_CRAMFS is not set 1057# CONFIG_CRAMFS is not set
1058# CONFIG_SQUASHFS is not set
1035# CONFIG_VXFS_FS is not set 1059# CONFIG_VXFS_FS is not set
1036# CONFIG_MINIX_FS is not set 1060# CONFIG_MINIX_FS is not set
1037# CONFIG_OMFS_FS is not set 1061# CONFIG_OMFS_FS is not set
@@ -1087,6 +1111,7 @@ CONFIG_UCC=y
1087# Library routines 1111# Library routines
1088# 1112#
1089CONFIG_BITREVERSE=y 1113CONFIG_BITREVERSE=y
1114CONFIG_GENERIC_FIND_LAST_BIT=y
1090# CONFIG_CRC_CCITT is not set 1115# CONFIG_CRC_CCITT is not set
1091# CONFIG_CRC16 is not set 1116# CONFIG_CRC16 is not set
1092# CONFIG_CRC_T10DIF is not set 1117# CONFIG_CRC_T10DIF is not set
@@ -1120,6 +1145,8 @@ CONFIG_FRAME_WARN=1024
1120# CONFIG_LATENCYTOP is not set 1145# CONFIG_LATENCYTOP is not set
1121CONFIG_SYSCTL_SYSCALL_CHECK=y 1146CONFIG_SYSCTL_SYSCALL_CHECK=y
1122CONFIG_HAVE_FUNCTION_TRACER=y 1147CONFIG_HAVE_FUNCTION_TRACER=y
1148CONFIG_HAVE_DYNAMIC_FTRACE=y
1149CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1123 1150
1124# 1151#
1125# Tracers 1152# Tracers
@@ -1127,6 +1154,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1127# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1154# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1128# CONFIG_SAMPLES is not set 1155# CONFIG_SAMPLES is not set
1129CONFIG_HAVE_ARCH_KGDB=y 1156CONFIG_HAVE_ARCH_KGDB=y
1157CONFIG_PRINT_STACK_DEPTH=64
1130# CONFIG_IRQSTACKS is not set 1158# CONFIG_IRQSTACKS is not set
1131# CONFIG_BOOTX_TEXT is not set 1159# CONFIG_BOOTX_TEXT is not set
1132# CONFIG_PPC_EARLY_DEBUG is not set 1160# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1145,11 +1173,15 @@ CONFIG_CRYPTO=y
1145# 1173#
1146# CONFIG_CRYPTO_FIPS is not set 1174# CONFIG_CRYPTO_FIPS is not set
1147CONFIG_CRYPTO_ALGAPI=y 1175CONFIG_CRYPTO_ALGAPI=y
1148CONFIG_CRYPTO_AEAD=y 1176CONFIG_CRYPTO_ALGAPI2=y
1177CONFIG_CRYPTO_AEAD2=y
1149CONFIG_CRYPTO_BLKCIPHER=y 1178CONFIG_CRYPTO_BLKCIPHER=y
1179CONFIG_CRYPTO_BLKCIPHER2=y
1150CONFIG_CRYPTO_HASH=y 1180CONFIG_CRYPTO_HASH=y
1151CONFIG_CRYPTO_RNG=y 1181CONFIG_CRYPTO_HASH2=y
1182CONFIG_CRYPTO_RNG2=y
1152CONFIG_CRYPTO_MANAGER=y 1183CONFIG_CRYPTO_MANAGER=y
1184CONFIG_CRYPTO_MANAGER2=y
1153# CONFIG_CRYPTO_GF128MUL is not set 1185# CONFIG_CRYPTO_GF128MUL is not set
1154# CONFIG_CRYPTO_NULL is not set 1186# CONFIG_CRYPTO_NULL is not set
1155# CONFIG_CRYPTO_CRYPTD is not set 1187# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index 9cc976f010c9..a012ce235203 100644
--- a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_rdb_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:54 2008 4# Mon Jan 26 15:35:52 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198CONFIG_QUICC_ENGINE=y 198CONFIG_QUICC_ENGINE=y
199# CONFIG_QE_GPIO is not set 199# CONFIG_QE_GPIO is not set
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -226,6 +228,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
226CONFIG_ARCH_HAS_WALK_MEMORY=y 228CONFIG_ARCH_HAS_WALK_MEMORY=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set 230# CONFIG_KEXEC is not set
231# CONFIG_CRASH_DUMP is not set
229CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
231CONFIG_SELECT_MEMORY_MODEL=y 234CONFIG_SELECT_MEMORY_MODEL=y
@@ -237,12 +240,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 242CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 243# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
247CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
248# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_PCI_SYSCALL=y
267CONFIG_ARCH_SUPPORTS_MSI=y 272CONFIG_ARCH_SUPPORTS_MSI=y
268# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
269# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -407,8 +416,10 @@ CONFIG_MISC_DEVICES=y
407# CONFIG_EEPROM_93CX6 is not set 416# CONFIG_EEPROM_93CX6 is not set
408# CONFIG_SGI_IOC4 is not set 417# CONFIG_SGI_IOC4 is not set
409# CONFIG_TIFM_CORE is not set 418# CONFIG_TIFM_CORE is not set
419# CONFIG_ICS932S401 is not set
410# CONFIG_ENCLOSURE_SERVICES is not set 420# CONFIG_ENCLOSURE_SERVICES is not set
411# CONFIG_HP_ILO is not set 421# CONFIG_HP_ILO is not set
422# CONFIG_C2PORT is not set
412CONFIG_HAVE_IDE=y 423CONFIG_HAVE_IDE=y
413# CONFIG_IDE is not set 424# CONFIG_IDE is not set
414 425
@@ -451,6 +462,7 @@ CONFIG_SCSI_WAIT_SCAN=m
451# CONFIG_SCSI_SRP_ATTRS is not set 462# CONFIG_SCSI_SRP_ATTRS is not set
452CONFIG_SCSI_LOWLEVEL=y 463CONFIG_SCSI_LOWLEVEL=y
453# CONFIG_ISCSI_TCP is not set 464# CONFIG_ISCSI_TCP is not set
465# CONFIG_SCSI_CXGB3_ISCSI is not set
454# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 466# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
455# CONFIG_SCSI_3W_9XXX is not set 467# CONFIG_SCSI_3W_9XXX is not set
456# CONFIG_SCSI_ACARD is not set 468# CONFIG_SCSI_ACARD is not set
@@ -467,6 +479,8 @@ CONFIG_SCSI_LOWLEVEL=y
467# CONFIG_MEGARAID_SAS is not set 479# CONFIG_MEGARAID_SAS is not set
468# CONFIG_SCSI_HPTIOP is not set 480# CONFIG_SCSI_HPTIOP is not set
469# CONFIG_SCSI_BUSLOGIC is not set 481# CONFIG_SCSI_BUSLOGIC is not set
482# CONFIG_LIBFC is not set
483# CONFIG_FCOE is not set
470# CONFIG_SCSI_DMX3191D is not set 484# CONFIG_SCSI_DMX3191D is not set
471# CONFIG_SCSI_EATA is not set 485# CONFIG_SCSI_EATA is not set
472# CONFIG_SCSI_FUTURE_DOMAIN is not set 486# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -525,6 +539,9 @@ CONFIG_PHYLIB=y
525# CONFIG_BROADCOM_PHY is not set 539# CONFIG_BROADCOM_PHY is not set
526CONFIG_ICPLUS_PHY=y 540CONFIG_ICPLUS_PHY=y
527# CONFIG_REALTEK_PHY is not set 541# CONFIG_REALTEK_PHY is not set
542# CONFIG_NATIONAL_PHY is not set
543# CONFIG_STE10XP is not set
544# CONFIG_LSI_ET1011C_PHY is not set
528# CONFIG_FIXED_PHY is not set 545# CONFIG_FIXED_PHY is not set
529# CONFIG_MDIO_BITBANG is not set 546# CONFIG_MDIO_BITBANG is not set
530CONFIG_NET_ETHERNET=y 547CONFIG_NET_ETHERNET=y
@@ -566,7 +583,6 @@ CONFIG_E1000=y
566# CONFIG_GIANFAR is not set 583# CONFIG_GIANFAR is not set
567CONFIG_UCC_GETH=y 584CONFIG_UCC_GETH=y
568# CONFIG_UGETH_MAGIC_PACKET is not set 585# CONFIG_UGETH_MAGIC_PACKET is not set
569# CONFIG_UGETH_FILTERING is not set
570# CONFIG_UGETH_TX_ON_DEMAND is not set 586# CONFIG_UGETH_TX_ON_DEMAND is not set
571# CONFIG_MV643XX_ETH is not set 587# CONFIG_MV643XX_ETH is not set
572# CONFIG_QLA3XXX is not set 588# CONFIG_QLA3XXX is not set
@@ -575,6 +591,7 @@ CONFIG_UCC_GETH=y
575# CONFIG_JME is not set 591# CONFIG_JME is not set
576CONFIG_NETDEV_10000=y 592CONFIG_NETDEV_10000=y
577# CONFIG_CHELSIO_T1 is not set 593# CONFIG_CHELSIO_T1 is not set
594CONFIG_CHELSIO_T3_DEPENDS=y
578# CONFIG_CHELSIO_T3 is not set 595# CONFIG_CHELSIO_T3 is not set
579# CONFIG_ENIC is not set 596# CONFIG_ENIC is not set
580# CONFIG_IXGBE is not set 597# CONFIG_IXGBE is not set
@@ -599,6 +616,10 @@ CONFIG_NETDEV_10000=y
599# CONFIG_IWLWIFI_LEDS is not set 616# CONFIG_IWLWIFI_LEDS is not set
600 617
601# 618#
619# Enable WiMAX (Networking options) to see the WiMAX drivers
620#
621
622#
602# USB Network Adapters 623# USB Network Adapters
603# 624#
604# CONFIG_USB_CATC is not set 625# CONFIG_USB_CATC is not set
@@ -677,8 +698,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
677# CONFIG_SERIAL_OF_PLATFORM is not set 698# CONFIG_SERIAL_OF_PLATFORM is not set
678# CONFIG_SERIAL_QE is not set 699# CONFIG_SERIAL_QE is not set
679CONFIG_UNIX98_PTYS=y 700CONFIG_UNIX98_PTYS=y
701# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
680CONFIG_LEGACY_PTYS=y 702CONFIG_LEGACY_PTYS=y
681CONFIG_LEGACY_PTY_COUNT=256 703CONFIG_LEGACY_PTY_COUNT=256
704# CONFIG_HVC_UDBG is not set
682# CONFIG_IPMI_HANDLER is not set 705# CONFIG_IPMI_HANDLER is not set
683CONFIG_HW_RANDOM=y 706CONFIG_HW_RANDOM=y
684# CONFIG_NVRAM is not set 707# CONFIG_NVRAM is not set
@@ -745,15 +768,14 @@ CONFIG_I2C_MPC=y
745# Miscellaneous I2C Chip support 768# Miscellaneous I2C Chip support
746# 769#
747# CONFIG_DS1682 is not set 770# CONFIG_DS1682 is not set
748# CONFIG_AT24 is not set 771# CONFIG_EEPROM_AT24 is not set
749# CONFIG_SENSORS_EEPROM is not set 772# CONFIG_EEPROM_LEGACY is not set
750# CONFIG_SENSORS_PCF8574 is not set 773# CONFIG_SENSORS_PCF8574 is not set
751# CONFIG_PCF8575 is not set 774# CONFIG_PCF8575 is not set
752# CONFIG_SENSORS_PCA9539 is not set 775# CONFIG_SENSORS_PCA9539 is not set
753# CONFIG_SENSORS_PCF8591 is not set 776# CONFIG_SENSORS_PCF8591 is not set
754# CONFIG_SENSORS_MAX6875 is not set 777# CONFIG_SENSORS_MAX6875 is not set
755# CONFIG_SENSORS_TSL2550 is not set 778# CONFIG_SENSORS_TSL2550 is not set
756# CONFIG_MCU_MPC8349EMITX is not set
757# CONFIG_I2C_DEBUG_CORE is not set 779# CONFIG_I2C_DEBUG_CORE is not set
758# CONFIG_I2C_DEBUG_ALGO is not set 780# CONFIG_I2C_DEBUG_ALGO is not set
759# CONFIG_I2C_DEBUG_BUS is not set 781# CONFIG_I2C_DEBUG_BUS is not set
@@ -770,7 +792,7 @@ CONFIG_SPI_MPC83xx=y
770# 792#
771# SPI Protocol Masters 793# SPI Protocol Masters
772# 794#
773# CONFIG_SPI_AT25 is not set 795# CONFIG_EEPROM_AT25 is not set
774# CONFIG_SPI_SPIDEV is not set 796# CONFIG_SPI_SPIDEV is not set
775# CONFIG_SPI_TLE62X0 is not set 797# CONFIG_SPI_TLE62X0 is not set
776CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 798CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -788,8 +810,10 @@ CONFIG_HWMON=y
788# CONFIG_SENSORS_ADM1029 is not set 810# CONFIG_SENSORS_ADM1029 is not set
789# CONFIG_SENSORS_ADM1031 is not set 811# CONFIG_SENSORS_ADM1031 is not set
790# CONFIG_SENSORS_ADM9240 is not set 812# CONFIG_SENSORS_ADM9240 is not set
813# CONFIG_SENSORS_ADT7462 is not set
791# CONFIG_SENSORS_ADT7470 is not set 814# CONFIG_SENSORS_ADT7470 is not set
792# CONFIG_SENSORS_ADT7473 is not set 815# CONFIG_SENSORS_ADT7473 is not set
816# CONFIG_SENSORS_ADT7475 is not set
793# CONFIG_SENSORS_ATXP1 is not set 817# CONFIG_SENSORS_ATXP1 is not set
794# CONFIG_SENSORS_DS1621 is not set 818# CONFIG_SENSORS_DS1621 is not set
795# CONFIG_SENSORS_I5K_AMB is not set 819# CONFIG_SENSORS_I5K_AMB is not set
@@ -811,6 +835,7 @@ CONFIG_HWMON=y
811# CONFIG_SENSORS_LM90 is not set 835# CONFIG_SENSORS_LM90 is not set
812# CONFIG_SENSORS_LM92 is not set 836# CONFIG_SENSORS_LM92 is not set
813# CONFIG_SENSORS_LM93 is not set 837# CONFIG_SENSORS_LM93 is not set
838# CONFIG_SENSORS_LTC4245 is not set
814# CONFIG_SENSORS_MAX1111 is not set 839# CONFIG_SENSORS_MAX1111 is not set
815# CONFIG_SENSORS_MAX1619 is not set 840# CONFIG_SENSORS_MAX1619 is not set
816# CONFIG_SENSORS_MAX6650 is not set 841# CONFIG_SENSORS_MAX6650 is not set
@@ -857,11 +882,11 @@ CONFIG_WATCHDOG=y
857# USB-based Watchdog Cards 882# USB-based Watchdog Cards
858# 883#
859# CONFIG_USBPCWATCHDOG is not set 884# CONFIG_USBPCWATCHDOG is not set
885CONFIG_SSB_POSSIBLE=y
860 886
861# 887#
862# Sonics Silicon Backplane 888# Sonics Silicon Backplane
863# 889#
864CONFIG_SSB_POSSIBLE=y
865# CONFIG_SSB is not set 890# CONFIG_SSB is not set
866 891
867# 892#
@@ -870,18 +895,13 @@ CONFIG_SSB_POSSIBLE=y
870# CONFIG_MFD_CORE is not set 895# CONFIG_MFD_CORE is not set
871# CONFIG_MFD_SM501 is not set 896# CONFIG_MFD_SM501 is not set
872# CONFIG_HTC_PASIC3 is not set 897# CONFIG_HTC_PASIC3 is not set
898# CONFIG_TWL4030_CORE is not set
873# CONFIG_MFD_TMIO is not set 899# CONFIG_MFD_TMIO is not set
874# CONFIG_PMIC_DA903X is not set 900# CONFIG_PMIC_DA903X is not set
875# CONFIG_MFD_WM8400 is not set 901# CONFIG_MFD_WM8400 is not set
876# CONFIG_MFD_WM8350_I2C is not set 902# CONFIG_MFD_WM8350_I2C is not set
877 903# CONFIG_MFD_PCF50633 is not set
878#
879# Voltage and Current regulators
880#
881# CONFIG_REGULATOR is not set 904# CONFIG_REGULATOR is not set
882# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
883# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
884# CONFIG_REGULATOR_BQ24022 is not set
885 905
886# 906#
887# Multimedia devices 907# Multimedia devices
@@ -966,6 +986,7 @@ CONFIG_USB_EHCI_HCD=y
966# CONFIG_USB_EHCI_TT_NEWSCHED is not set 986# CONFIG_USB_EHCI_TT_NEWSCHED is not set
967# CONFIG_USB_EHCI_FSL is not set 987# CONFIG_USB_EHCI_FSL is not set
968CONFIG_USB_EHCI_HCD_PPC_OF=y 988CONFIG_USB_EHCI_HCD_PPC_OF=y
989# CONFIG_USB_OXU210HP_HCD is not set
969# CONFIG_USB_ISP116X_HCD is not set 990# CONFIG_USB_ISP116X_HCD is not set
970# CONFIG_USB_ISP1760_HCD is not set 991# CONFIG_USB_ISP1760_HCD is not set
971CONFIG_USB_OHCI_HCD=y 992CONFIG_USB_OHCI_HCD=y
@@ -991,18 +1012,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
991# CONFIG_USB_TMC is not set 1012# CONFIG_USB_TMC is not set
992 1013
993# 1014#
994# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1015# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
995# 1016#
996 1017
997# 1018#
998# may also be needed; see USB_STORAGE Help for more information 1019# see USB_STORAGE Help for more information
999# 1020#
1000CONFIG_USB_STORAGE=y 1021CONFIG_USB_STORAGE=y
1001# CONFIG_USB_STORAGE_DEBUG is not set 1022# CONFIG_USB_STORAGE_DEBUG is not set
1002# CONFIG_USB_STORAGE_DATAFAB is not set 1023# CONFIG_USB_STORAGE_DATAFAB is not set
1003# CONFIG_USB_STORAGE_FREECOM is not set 1024# CONFIG_USB_STORAGE_FREECOM is not set
1004# CONFIG_USB_STORAGE_ISD200 is not set 1025# CONFIG_USB_STORAGE_ISD200 is not set
1005# CONFIG_USB_STORAGE_DPCM is not set
1006# CONFIG_USB_STORAGE_USBAT is not set 1026# CONFIG_USB_STORAGE_USBAT is not set
1007# CONFIG_USB_STORAGE_SDDR09 is not set 1027# CONFIG_USB_STORAGE_SDDR09 is not set
1008# CONFIG_USB_STORAGE_SDDR55 is not set 1028# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1050,6 +1070,10 @@ CONFIG_USB_STORAGE=y
1050# CONFIG_USB_ISIGHTFW is not set 1070# CONFIG_USB_ISIGHTFW is not set
1051# CONFIG_USB_VST is not set 1071# CONFIG_USB_VST is not set
1052# CONFIG_USB_GADGET is not set 1072# CONFIG_USB_GADGET is not set
1073
1074#
1075# OTG and related infrastructure
1076#
1053# CONFIG_UWB is not set 1077# CONFIG_UWB is not set
1054CONFIG_MMC=y 1078CONFIG_MMC=y
1055# CONFIG_MMC_DEBUG is not set 1079# CONFIG_MMC_DEBUG is not set
@@ -1099,6 +1123,7 @@ CONFIG_FS_MBCACHE=y
1099CONFIG_FILE_LOCKING=y 1123CONFIG_FILE_LOCKING=y
1100# CONFIG_XFS_FS is not set 1124# CONFIG_XFS_FS is not set
1101# CONFIG_OCFS2_FS is not set 1125# CONFIG_OCFS2_FS is not set
1126# CONFIG_BTRFS_FS is not set
1102CONFIG_DNOTIFY=y 1127CONFIG_DNOTIFY=y
1103CONFIG_INOTIFY=y 1128CONFIG_INOTIFY=y
1104CONFIG_INOTIFY_USER=y 1129CONFIG_INOTIFY_USER=y
@@ -1135,10 +1160,7 @@ CONFIG_TMPFS=y
1135# CONFIG_TMPFS_POSIX_ACL is not set 1160# CONFIG_TMPFS_POSIX_ACL is not set
1136# CONFIG_HUGETLB_PAGE is not set 1161# CONFIG_HUGETLB_PAGE is not set
1137# CONFIG_CONFIGFS_FS is not set 1162# CONFIG_CONFIGFS_FS is not set
1138 1163CONFIG_MISC_FILESYSTEMS=y
1139#
1140# Miscellaneous filesystems
1141#
1142# CONFIG_ADFS_FS is not set 1164# CONFIG_ADFS_FS is not set
1143# CONFIG_AFFS_FS is not set 1165# CONFIG_AFFS_FS is not set
1144# CONFIG_HFS_FS is not set 1166# CONFIG_HFS_FS is not set
@@ -1147,6 +1169,7 @@ CONFIG_TMPFS=y
1147# CONFIG_BFS_FS is not set 1169# CONFIG_BFS_FS is not set
1148# CONFIG_EFS_FS is not set 1170# CONFIG_EFS_FS is not set
1149# CONFIG_CRAMFS is not set 1171# CONFIG_CRAMFS is not set
1172# CONFIG_SQUASHFS is not set
1150# CONFIG_VXFS_FS is not set 1173# CONFIG_VXFS_FS is not set
1151# CONFIG_MINIX_FS is not set 1174# CONFIG_MINIX_FS is not set
1152# CONFIG_OMFS_FS is not set 1175# CONFIG_OMFS_FS is not set
@@ -1246,6 +1269,7 @@ CONFIG_UCC=y
1246# Library routines 1269# Library routines
1247# 1270#
1248CONFIG_BITREVERSE=y 1271CONFIG_BITREVERSE=y
1272CONFIG_GENERIC_FIND_LAST_BIT=y
1249# CONFIG_CRC_CCITT is not set 1273# CONFIG_CRC_CCITT is not set
1250# CONFIG_CRC16 is not set 1274# CONFIG_CRC16 is not set
1251CONFIG_CRC_T10DIF=y 1275CONFIG_CRC_T10DIF=y
@@ -1279,6 +1303,8 @@ CONFIG_FRAME_WARN=1024
1279# CONFIG_LATENCYTOP is not set 1303# CONFIG_LATENCYTOP is not set
1280CONFIG_SYSCTL_SYSCALL_CHECK=y 1304CONFIG_SYSCTL_SYSCALL_CHECK=y
1281CONFIG_HAVE_FUNCTION_TRACER=y 1305CONFIG_HAVE_FUNCTION_TRACER=y
1306CONFIG_HAVE_DYNAMIC_FTRACE=y
1307CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1282 1308
1283# 1309#
1284# Tracers 1310# Tracers
@@ -1286,6 +1312,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1286# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1312# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1287# CONFIG_SAMPLES is not set 1313# CONFIG_SAMPLES is not set
1288CONFIG_HAVE_ARCH_KGDB=y 1314CONFIG_HAVE_ARCH_KGDB=y
1315CONFIG_PRINT_STACK_DEPTH=64
1289# CONFIG_IRQSTACKS is not set 1316# CONFIG_IRQSTACKS is not set
1290# CONFIG_BOOTX_TEXT is not set 1317# CONFIG_BOOTX_TEXT is not set
1291# CONFIG_PPC_EARLY_DEBUG is not set 1318# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1304,11 +1331,15 @@ CONFIG_CRYPTO=y
1304# 1331#
1305# CONFIG_CRYPTO_FIPS is not set 1332# CONFIG_CRYPTO_FIPS is not set
1306CONFIG_CRYPTO_ALGAPI=y 1333CONFIG_CRYPTO_ALGAPI=y
1307CONFIG_CRYPTO_AEAD=y 1334CONFIG_CRYPTO_ALGAPI2=y
1335CONFIG_CRYPTO_AEAD2=y
1308CONFIG_CRYPTO_BLKCIPHER=y 1336CONFIG_CRYPTO_BLKCIPHER=y
1337CONFIG_CRYPTO_BLKCIPHER2=y
1309CONFIG_CRYPTO_HASH=y 1338CONFIG_CRYPTO_HASH=y
1310CONFIG_CRYPTO_RNG=y 1339CONFIG_CRYPTO_HASH2=y
1340CONFIG_CRYPTO_RNG2=y
1311CONFIG_CRYPTO_MANAGER=y 1341CONFIG_CRYPTO_MANAGER=y
1342CONFIG_CRYPTO_MANAGER2=y
1312# CONFIG_CRYPTO_GF128MUL is not set 1343# CONFIG_CRYPTO_GF128MUL is not set
1313# CONFIG_CRYPTO_NULL is not set 1344# CONFIG_CRYPTO_NULL is not set
1314# CONFIG_CRYPTO_CRYPTD is not set 1345# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index 07a674f5344e..4bcc4a1ff308 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itx_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:56 2008 4# Mon Jan 26 15:35:53 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +271,7 @@ CONFIG_PCI_SYSCALL=y
266CONFIG_ARCH_SUPPORTS_MSI=y 271CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -344,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
346# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
347 355
348# 356#
349# Network testing 357# Network testing
@@ -359,8 +367,9 @@ CONFIG_WIRELESS=y
359# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y 368CONFIG_WIRELESS_OLD_REGULATORY=y
361# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
362# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
363# CONFIG_IEEE80211 is not set 372# CONFIG_WIMAX is not set
364# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
365# CONFIG_NET_9P is not set 374# CONFIG_NET_9P is not set
366 375
@@ -381,6 +390,7 @@ CONFIG_MTD=y
381# CONFIG_MTD_DEBUG is not set 390# CONFIG_MTD_DEBUG is not set
382# CONFIG_MTD_CONCAT is not set 391# CONFIG_MTD_CONCAT is not set
383# CONFIG_MTD_PARTITIONS is not set 392# CONFIG_MTD_PARTITIONS is not set
393# CONFIG_MTD_TESTS is not set
384 394
385# 395#
386# User Modules And Translation Layers 396# User Modules And Translation Layers
@@ -426,9 +436,7 @@ CONFIG_MTD_CFI_UTIL=y
426# 436#
427# CONFIG_MTD_COMPLEX_MAPPINGS is not set 437# CONFIG_MTD_COMPLEX_MAPPINGS is not set
428CONFIG_MTD_PHYSMAP=y 438CONFIG_MTD_PHYSMAP=y
429CONFIG_MTD_PHYSMAP_START=0xfe000000 439# CONFIG_MTD_PHYSMAP_COMPAT is not set
430CONFIG_MTD_PHYSMAP_LEN=0x1000000
431CONFIG_MTD_PHYSMAP_BANKWIDTH=2
432# CONFIG_MTD_PHYSMAP_OF is not set 440# CONFIG_MTD_PHYSMAP_OF is not set
433# CONFIG_MTD_INTEL_VR_NOR is not set 441# CONFIG_MTD_INTEL_VR_NOR is not set
434# CONFIG_MTD_PLATRAM is not set 442# CONFIG_MTD_PLATRAM is not set
@@ -454,6 +462,12 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
454# CONFIG_MTD_ONENAND is not set 462# CONFIG_MTD_ONENAND is not set
455 463
456# 464#
465# LPDDR flash memory drivers
466#
467# CONFIG_MTD_LPDDR is not set
468# CONFIG_MTD_QINFO_PROBE is not set
469
470#
457# UBI - Unsorted block images 471# UBI - Unsorted block images
458# 472#
459# CONFIG_MTD_UBI is not set 473# CONFIG_MTD_UBI is not set
@@ -485,8 +499,10 @@ CONFIG_MISC_DEVICES=y
485# CONFIG_EEPROM_93CX6 is not set 499# CONFIG_EEPROM_93CX6 is not set
486# CONFIG_SGI_IOC4 is not set 500# CONFIG_SGI_IOC4 is not set
487# CONFIG_TIFM_CORE is not set 501# CONFIG_TIFM_CORE is not set
502# CONFIG_ICS932S401 is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 503# CONFIG_ENCLOSURE_SERVICES is not set
489# CONFIG_HP_ILO is not set 504# CONFIG_HP_ILO is not set
505# CONFIG_C2PORT is not set
490CONFIG_HAVE_IDE=y 506CONFIG_HAVE_IDE=y
491CONFIG_IDE=y 507CONFIG_IDE=y
492 508
@@ -499,7 +515,6 @@ CONFIG_IDE_GD_ATA=y
499# CONFIG_IDE_GD_ATAPI is not set 515# CONFIG_IDE_GD_ATAPI is not set
500# CONFIG_BLK_DEV_IDECD is not set 516# CONFIG_BLK_DEV_IDECD is not set
501# CONFIG_BLK_DEV_IDETAPE is not set 517# CONFIG_BLK_DEV_IDETAPE is not set
502# CONFIG_BLK_DEV_IDESCSI is not set
503# CONFIG_IDE_TASK_IOCTL is not set 518# CONFIG_IDE_TASK_IOCTL is not set
504CONFIG_IDE_PROC_FS=y 519CONFIG_IDE_PROC_FS=y
505 520
@@ -524,6 +539,7 @@ CONFIG_IDE_PROC_FS=y
524# CONFIG_BLK_DEV_JMICRON is not set 539# CONFIG_BLK_DEV_JMICRON is not set
525# CONFIG_BLK_DEV_SC1200 is not set 540# CONFIG_BLK_DEV_SC1200 is not set
526# CONFIG_BLK_DEV_PIIX is not set 541# CONFIG_BLK_DEV_PIIX is not set
542# CONFIG_BLK_DEV_IT8172 is not set
527# CONFIG_BLK_DEV_IT8213 is not set 543# CONFIG_BLK_DEV_IT8213 is not set
528# CONFIG_BLK_DEV_IT821X is not set 544# CONFIG_BLK_DEV_IT821X is not set
529# CONFIG_BLK_DEV_NS87415 is not set 545# CONFIG_BLK_DEV_NS87415 is not set
@@ -577,6 +593,7 @@ CONFIG_SCSI_SPI_ATTRS=y
577# CONFIG_SCSI_SRP_ATTRS is not set 593# CONFIG_SCSI_SRP_ATTRS is not set
578CONFIG_SCSI_LOWLEVEL=y 594CONFIG_SCSI_LOWLEVEL=y
579# CONFIG_ISCSI_TCP is not set 595# CONFIG_ISCSI_TCP is not set
596# CONFIG_SCSI_CXGB3_ISCSI is not set
580# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 597# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
581# CONFIG_SCSI_3W_9XXX is not set 598# CONFIG_SCSI_3W_9XXX is not set
582# CONFIG_SCSI_ACARD is not set 599# CONFIG_SCSI_ACARD is not set
@@ -593,6 +610,8 @@ CONFIG_SCSI_LOWLEVEL=y
593# CONFIG_MEGARAID_SAS is not set 610# CONFIG_MEGARAID_SAS is not set
594# CONFIG_SCSI_HPTIOP is not set 611# CONFIG_SCSI_HPTIOP is not set
595# CONFIG_SCSI_BUSLOGIC is not set 612# CONFIG_SCSI_BUSLOGIC is not set
613# CONFIG_LIBFC is not set
614# CONFIG_FCOE is not set
596# CONFIG_SCSI_DMX3191D is not set 615# CONFIG_SCSI_DMX3191D is not set
597# CONFIG_SCSI_EATA is not set 616# CONFIG_SCSI_EATA is not set
598# CONFIG_SCSI_FUTURE_DOMAIN is not set 617# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -723,6 +742,9 @@ CONFIG_CICADA_PHY=y
723# CONFIG_BROADCOM_PHY is not set 742# CONFIG_BROADCOM_PHY is not set
724# CONFIG_ICPLUS_PHY is not set 743# CONFIG_ICPLUS_PHY is not set
725# CONFIG_REALTEK_PHY is not set 744# CONFIG_REALTEK_PHY is not set
745# CONFIG_NATIONAL_PHY is not set
746# CONFIG_STE10XP is not set
747# CONFIG_LSI_ET1011C_PHY is not set
726CONFIG_FIXED_PHY=y 748CONFIG_FIXED_PHY=y
727# CONFIG_MDIO_BITBANG is not set 749# CONFIG_MDIO_BITBANG is not set
728# CONFIG_NET_ETHERNET is not set 750# CONFIG_NET_ETHERNET is not set
@@ -751,6 +773,7 @@ CONFIG_GIANFAR=y
751# CONFIG_JME is not set 773# CONFIG_JME is not set
752CONFIG_NETDEV_10000=y 774CONFIG_NETDEV_10000=y
753# CONFIG_CHELSIO_T1 is not set 775# CONFIG_CHELSIO_T1 is not set
776CONFIG_CHELSIO_T3_DEPENDS=y
754# CONFIG_CHELSIO_T3 is not set 777# CONFIG_CHELSIO_T3 is not set
755# CONFIG_ENIC is not set 778# CONFIG_ENIC is not set
756# CONFIG_IXGBE is not set 779# CONFIG_IXGBE is not set
@@ -775,6 +798,10 @@ CONFIG_NETDEV_10000=y
775# CONFIG_IWLWIFI_LEDS is not set 798# CONFIG_IWLWIFI_LEDS is not set
776 799
777# 800#
801# Enable WiMAX (Networking options) to see the WiMAX drivers
802#
803
804#
778# USB Network Adapters 805# USB Network Adapters
779# 806#
780# CONFIG_USB_CATC is not set 807# CONFIG_USB_CATC is not set
@@ -832,8 +859,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
832# CONFIG_SERIAL_JSM is not set 859# CONFIG_SERIAL_JSM is not set
833# CONFIG_SERIAL_OF_PLATFORM is not set 860# CONFIG_SERIAL_OF_PLATFORM is not set
834CONFIG_UNIX98_PTYS=y 861CONFIG_UNIX98_PTYS=y
862# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
835CONFIG_LEGACY_PTYS=y 863CONFIG_LEGACY_PTYS=y
836CONFIG_LEGACY_PTY_COUNT=256 864CONFIG_LEGACY_PTY_COUNT=256
865# CONFIG_HVC_UDBG is not set
837# CONFIG_IPMI_HANDLER is not set 866# CONFIG_IPMI_HANDLER is not set
838CONFIG_HW_RANDOM=y 867CONFIG_HW_RANDOM=y
839# CONFIG_NVRAM is not set 868# CONFIG_NVRAM is not set
@@ -898,15 +927,14 @@ CONFIG_I2C_MPC=y
898# Miscellaneous I2C Chip support 927# Miscellaneous I2C Chip support
899# 928#
900# CONFIG_DS1682 is not set 929# CONFIG_DS1682 is not set
901# CONFIG_AT24 is not set 930# CONFIG_EEPROM_AT24 is not set
902# CONFIG_SENSORS_EEPROM is not set 931# CONFIG_EEPROM_LEGACY is not set
903CONFIG_SENSORS_PCF8574=y 932CONFIG_SENSORS_PCF8574=y
904# CONFIG_PCF8575 is not set 933# CONFIG_PCF8575 is not set
905# CONFIG_SENSORS_PCA9539 is not set 934# CONFIG_SENSORS_PCA9539 is not set
906# CONFIG_SENSORS_PCF8591 is not set 935# CONFIG_SENSORS_PCF8591 is not set
907# CONFIG_SENSORS_MAX6875 is not set 936# CONFIG_SENSORS_MAX6875 is not set
908# CONFIG_SENSORS_TSL2550 is not set 937# CONFIG_SENSORS_TSL2550 is not set
909# CONFIG_MCU_MPC8349EMITX is not set
910# CONFIG_I2C_DEBUG_CORE is not set 938# CONFIG_I2C_DEBUG_CORE is not set
911# CONFIG_I2C_DEBUG_ALGO is not set 939# CONFIG_I2C_DEBUG_ALGO is not set
912# CONFIG_I2C_DEBUG_BUS is not set 940# CONFIG_I2C_DEBUG_BUS is not set
@@ -923,7 +951,7 @@ CONFIG_SPI_MPC83xx=y
923# 951#
924# SPI Protocol Masters 952# SPI Protocol Masters
925# 953#
926# CONFIG_SPI_AT25 is not set 954# CONFIG_EEPROM_AT25 is not set
927# CONFIG_SPI_SPIDEV is not set 955# CONFIG_SPI_SPIDEV is not set
928# CONFIG_SPI_TLE62X0 is not set 956# CONFIG_SPI_TLE62X0 is not set
929CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 957CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -953,11 +981,11 @@ CONFIG_WATCHDOG=y
953# USB-based Watchdog Cards 981# USB-based Watchdog Cards
954# 982#
955# CONFIG_USBPCWATCHDOG is not set 983# CONFIG_USBPCWATCHDOG is not set
984CONFIG_SSB_POSSIBLE=y
956 985
957# 986#
958# Sonics Silicon Backplane 987# Sonics Silicon Backplane
959# 988#
960CONFIG_SSB_POSSIBLE=y
961# CONFIG_SSB is not set 989# CONFIG_SSB is not set
962 990
963# 991#
@@ -966,18 +994,13 @@ CONFIG_SSB_POSSIBLE=y
966# CONFIG_MFD_CORE is not set 994# CONFIG_MFD_CORE is not set
967# CONFIG_MFD_SM501 is not set 995# CONFIG_MFD_SM501 is not set
968# CONFIG_HTC_PASIC3 is not set 996# CONFIG_HTC_PASIC3 is not set
997# CONFIG_TWL4030_CORE is not set
969# CONFIG_MFD_TMIO is not set 998# CONFIG_MFD_TMIO is not set
970# CONFIG_PMIC_DA903X is not set 999# CONFIG_PMIC_DA903X is not set
971# CONFIG_MFD_WM8400 is not set 1000# CONFIG_MFD_WM8400 is not set
972# CONFIG_MFD_WM8350_I2C is not set 1001# CONFIG_MFD_WM8350_I2C is not set
973 1002# CONFIG_MFD_PCF50633 is not set
974#
975# Voltage and Current regulators
976#
977# CONFIG_REGULATOR is not set 1003# CONFIG_REGULATOR is not set
978# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
979# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
980# CONFIG_REGULATOR_BQ24022 is not set
981 1004
982# 1005#
983# Multimedia devices 1006# Multimedia devices
@@ -1041,6 +1064,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1041# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1064# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1042CONFIG_USB_EHCI_FSL=y 1065CONFIG_USB_EHCI_FSL=y
1043CONFIG_USB_EHCI_HCD_PPC_OF=y 1066CONFIG_USB_EHCI_HCD_PPC_OF=y
1067# CONFIG_USB_OXU210HP_HCD is not set
1044# CONFIG_USB_ISP116X_HCD is not set 1068# CONFIG_USB_ISP116X_HCD is not set
1045# CONFIG_USB_ISP1760_HCD is not set 1069# CONFIG_USB_ISP1760_HCD is not set
1046# CONFIG_USB_OHCI_HCD is not set 1070# CONFIG_USB_OHCI_HCD is not set
@@ -1059,18 +1083,17 @@ CONFIG_USB_UHCI_HCD=y
1059# CONFIG_USB_TMC is not set 1083# CONFIG_USB_TMC is not set
1060 1084
1061# 1085#
1062# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1086# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1063# 1087#
1064 1088
1065# 1089#
1066# may also be needed; see USB_STORAGE Help for more information 1090# see USB_STORAGE Help for more information
1067# 1091#
1068CONFIG_USB_STORAGE=y 1092CONFIG_USB_STORAGE=y
1069# CONFIG_USB_STORAGE_DEBUG is not set 1093# CONFIG_USB_STORAGE_DEBUG is not set
1070# CONFIG_USB_STORAGE_DATAFAB is not set 1094# CONFIG_USB_STORAGE_DATAFAB is not set
1071# CONFIG_USB_STORAGE_FREECOM is not set 1095# CONFIG_USB_STORAGE_FREECOM is not set
1072# CONFIG_USB_STORAGE_ISD200 is not set 1096# CONFIG_USB_STORAGE_ISD200 is not set
1073# CONFIG_USB_STORAGE_DPCM is not set
1074# CONFIG_USB_STORAGE_USBAT is not set 1097# CONFIG_USB_STORAGE_USBAT is not set
1075# CONFIG_USB_STORAGE_SDDR09 is not set 1098# CONFIG_USB_STORAGE_SDDR09 is not set
1076# CONFIG_USB_STORAGE_SDDR55 is not set 1099# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1117,6 +1140,10 @@ CONFIG_USB_STORAGE=y
1117# CONFIG_USB_ISIGHTFW is not set 1140# CONFIG_USB_ISIGHTFW is not set
1118# CONFIG_USB_VST is not set 1141# CONFIG_USB_VST is not set
1119# CONFIG_USB_GADGET is not set 1142# CONFIG_USB_GADGET is not set
1143
1144#
1145# OTG and related infrastructure
1146#
1120# CONFIG_UWB is not set 1147# CONFIG_UWB is not set
1121# CONFIG_MMC is not set 1148# CONFIG_MMC is not set
1122# CONFIG_MEMSTICK is not set 1149# CONFIG_MEMSTICK is not set
@@ -1154,12 +1181,14 @@ CONFIG_RTC_DRV_DS1307=y
1154# CONFIG_RTC_DRV_M41T80 is not set 1181# CONFIG_RTC_DRV_M41T80 is not set
1155# CONFIG_RTC_DRV_S35390A is not set 1182# CONFIG_RTC_DRV_S35390A is not set
1156# CONFIG_RTC_DRV_FM3130 is not set 1183# CONFIG_RTC_DRV_FM3130 is not set
1184# CONFIG_RTC_DRV_RX8581 is not set
1157 1185
1158# 1186#
1159# SPI RTC drivers 1187# SPI RTC drivers
1160# 1188#
1161# CONFIG_RTC_DRV_M41T94 is not set 1189# CONFIG_RTC_DRV_M41T94 is not set
1162# CONFIG_RTC_DRV_DS1305 is not set 1190# CONFIG_RTC_DRV_DS1305 is not set
1191# CONFIG_RTC_DRV_DS1390 is not set
1163# CONFIG_RTC_DRV_MAX6902 is not set 1192# CONFIG_RTC_DRV_MAX6902 is not set
1164# CONFIG_RTC_DRV_R9701 is not set 1193# CONFIG_RTC_DRV_R9701 is not set
1165# CONFIG_RTC_DRV_RS5C348 is not set 1194# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1207,6 +1236,7 @@ CONFIG_FS_MBCACHE=y
1207CONFIG_FILE_LOCKING=y 1236CONFIG_FILE_LOCKING=y
1208# CONFIG_XFS_FS is not set 1237# CONFIG_XFS_FS is not set
1209# CONFIG_OCFS2_FS is not set 1238# CONFIG_OCFS2_FS is not set
1239# CONFIG_BTRFS_FS is not set
1210CONFIG_DNOTIFY=y 1240CONFIG_DNOTIFY=y
1211CONFIG_INOTIFY=y 1241CONFIG_INOTIFY=y
1212CONFIG_INOTIFY_USER=y 1242CONFIG_INOTIFY_USER=y
@@ -1243,10 +1273,7 @@ CONFIG_TMPFS=y
1243# CONFIG_TMPFS_POSIX_ACL is not set 1273# CONFIG_TMPFS_POSIX_ACL is not set
1244# CONFIG_HUGETLB_PAGE is not set 1274# CONFIG_HUGETLB_PAGE is not set
1245# CONFIG_CONFIGFS_FS is not set 1275# CONFIG_CONFIGFS_FS is not set
1246 1276CONFIG_MISC_FILESYSTEMS=y
1247#
1248# Miscellaneous filesystems
1249#
1250# CONFIG_ADFS_FS is not set 1277# CONFIG_ADFS_FS is not set
1251# CONFIG_AFFS_FS is not set 1278# CONFIG_AFFS_FS is not set
1252# CONFIG_HFS_FS is not set 1279# CONFIG_HFS_FS is not set
@@ -1256,6 +1283,7 @@ CONFIG_TMPFS=y
1256# CONFIG_EFS_FS is not set 1283# CONFIG_EFS_FS is not set
1257# CONFIG_JFFS2_FS is not set 1284# CONFIG_JFFS2_FS is not set
1258# CONFIG_CRAMFS is not set 1285# CONFIG_CRAMFS is not set
1286# CONFIG_SQUASHFS is not set
1259# CONFIG_VXFS_FS is not set 1287# CONFIG_VXFS_FS is not set
1260# CONFIG_MINIX_FS is not set 1288# CONFIG_MINIX_FS is not set
1261# CONFIG_OMFS_FS is not set 1289# CONFIG_OMFS_FS is not set
@@ -1352,6 +1380,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1352# Library routines 1380# Library routines
1353# 1381#
1354CONFIG_BITREVERSE=y 1382CONFIG_BITREVERSE=y
1383CONFIG_GENERIC_FIND_LAST_BIT=y
1355# CONFIG_CRC_CCITT is not set 1384# CONFIG_CRC_CCITT is not set
1356# CONFIG_CRC16 is not set 1385# CONFIG_CRC16 is not set
1357CONFIG_CRC_T10DIF=y 1386CONFIG_CRC_T10DIF=y
@@ -1385,6 +1414,8 @@ CONFIG_FRAME_WARN=1024
1385# CONFIG_LATENCYTOP is not set 1414# CONFIG_LATENCYTOP is not set
1386CONFIG_SYSCTL_SYSCALL_CHECK=y 1415CONFIG_SYSCTL_SYSCALL_CHECK=y
1387CONFIG_HAVE_FUNCTION_TRACER=y 1416CONFIG_HAVE_FUNCTION_TRACER=y
1417CONFIG_HAVE_DYNAMIC_FTRACE=y
1418CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1388 1419
1389# 1420#
1390# Tracers 1421# Tracers
@@ -1392,6 +1423,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1392# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1423# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1393# CONFIG_SAMPLES is not set 1424# CONFIG_SAMPLES is not set
1394CONFIG_HAVE_ARCH_KGDB=y 1425CONFIG_HAVE_ARCH_KGDB=y
1426CONFIG_PRINT_STACK_DEPTH=64
1395# CONFIG_IRQSTACKS is not set 1427# CONFIG_IRQSTACKS is not set
1396# CONFIG_BOOTX_TEXT is not set 1428# CONFIG_BOOTX_TEXT is not set
1397# CONFIG_PPC_EARLY_DEBUG is not set 1429# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1410,11 +1442,15 @@ CONFIG_CRYPTO=y
1410# 1442#
1411# CONFIG_CRYPTO_FIPS is not set 1443# CONFIG_CRYPTO_FIPS is not set
1412CONFIG_CRYPTO_ALGAPI=y 1444CONFIG_CRYPTO_ALGAPI=y
1413CONFIG_CRYPTO_AEAD=y 1445CONFIG_CRYPTO_ALGAPI2=y
1446CONFIG_CRYPTO_AEAD2=y
1414CONFIG_CRYPTO_BLKCIPHER=y 1447CONFIG_CRYPTO_BLKCIPHER=y
1448CONFIG_CRYPTO_BLKCIPHER2=y
1415CONFIG_CRYPTO_HASH=y 1449CONFIG_CRYPTO_HASH=y
1416CONFIG_CRYPTO_RNG=y 1450CONFIG_CRYPTO_HASH2=y
1451CONFIG_CRYPTO_RNG2=y
1417CONFIG_CRYPTO_MANAGER=y 1452CONFIG_CRYPTO_MANAGER=y
1453CONFIG_CRYPTO_MANAGER2=y
1418# CONFIG_CRYPTO_GF128MUL is not set 1454# CONFIG_CRYPTO_GF128MUL is not set
1419# CONFIG_CRYPTO_NULL is not set 1455# CONFIG_CRYPTO_NULL is not set
1420# CONFIG_CRYPTO_CRYPTD is not set 1456# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index 426232cb0097..9ba5518ce8df 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itxgp_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:57 2008 4# Mon Jan 26 15:35:55 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +271,7 @@ CONFIG_PCI_SYSCALL=y
266CONFIG_ARCH_SUPPORTS_MSI=y 271CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -344,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
346# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
347 355
348# 356#
349# Network testing 357# Network testing
@@ -359,8 +367,9 @@ CONFIG_WIRELESS=y
359# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y 368CONFIG_WIRELESS_OLD_REGULATORY=y
361# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
362# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
363# CONFIG_IEEE80211 is not set 372# CONFIG_WIMAX is not set
364# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
365# CONFIG_NET_9P is not set 374# CONFIG_NET_9P is not set
366 375
@@ -381,6 +390,7 @@ CONFIG_MTD=y
381# CONFIG_MTD_DEBUG is not set 390# CONFIG_MTD_DEBUG is not set
382# CONFIG_MTD_CONCAT is not set 391# CONFIG_MTD_CONCAT is not set
383# CONFIG_MTD_PARTITIONS is not set 392# CONFIG_MTD_PARTITIONS is not set
393# CONFIG_MTD_TESTS is not set
384 394
385# 395#
386# User Modules And Translation Layers 396# User Modules And Translation Layers
@@ -426,9 +436,7 @@ CONFIG_MTD_CFI_UTIL=y
426# 436#
427# CONFIG_MTD_COMPLEX_MAPPINGS is not set 437# CONFIG_MTD_COMPLEX_MAPPINGS is not set
428CONFIG_MTD_PHYSMAP=y 438CONFIG_MTD_PHYSMAP=y
429CONFIG_MTD_PHYSMAP_START=0xfe000000 439# CONFIG_MTD_PHYSMAP_COMPAT is not set
430CONFIG_MTD_PHYSMAP_LEN=0x800000
431CONFIG_MTD_PHYSMAP_BANKWIDTH=2
432# CONFIG_MTD_PHYSMAP_OF is not set 440# CONFIG_MTD_PHYSMAP_OF is not set
433# CONFIG_MTD_INTEL_VR_NOR is not set 441# CONFIG_MTD_INTEL_VR_NOR is not set
434# CONFIG_MTD_PLATRAM is not set 442# CONFIG_MTD_PLATRAM is not set
@@ -454,6 +462,12 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
454# CONFIG_MTD_ONENAND is not set 462# CONFIG_MTD_ONENAND is not set
455 463
456# 464#
465# LPDDR flash memory drivers
466#
467# CONFIG_MTD_LPDDR is not set
468# CONFIG_MTD_QINFO_PROBE is not set
469
470#
457# UBI - Unsorted block images 471# UBI - Unsorted block images
458# 472#
459# CONFIG_MTD_UBI is not set 473# CONFIG_MTD_UBI is not set
@@ -485,8 +499,10 @@ CONFIG_MISC_DEVICES=y
485# CONFIG_EEPROM_93CX6 is not set 499# CONFIG_EEPROM_93CX6 is not set
486# CONFIG_SGI_IOC4 is not set 500# CONFIG_SGI_IOC4 is not set
487# CONFIG_TIFM_CORE is not set 501# CONFIG_TIFM_CORE is not set
502# CONFIG_ICS932S401 is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 503# CONFIG_ENCLOSURE_SERVICES is not set
489# CONFIG_HP_ILO is not set 504# CONFIG_HP_ILO is not set
505# CONFIG_C2PORT is not set
490CONFIG_HAVE_IDE=y 506CONFIG_HAVE_IDE=y
491# CONFIG_IDE is not set 507# CONFIG_IDE is not set
492 508
@@ -529,6 +545,7 @@ CONFIG_SCSI_SPI_ATTRS=y
529# CONFIG_SCSI_SRP_ATTRS is not set 545# CONFIG_SCSI_SRP_ATTRS is not set
530CONFIG_SCSI_LOWLEVEL=y 546CONFIG_SCSI_LOWLEVEL=y
531# CONFIG_ISCSI_TCP is not set 547# CONFIG_ISCSI_TCP is not set
548# CONFIG_SCSI_CXGB3_ISCSI is not set
532# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 549# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
533# CONFIG_SCSI_3W_9XXX is not set 550# CONFIG_SCSI_3W_9XXX is not set
534# CONFIG_SCSI_ACARD is not set 551# CONFIG_SCSI_ACARD is not set
@@ -545,6 +562,8 @@ CONFIG_SCSI_LOWLEVEL=y
545# CONFIG_MEGARAID_SAS is not set 562# CONFIG_MEGARAID_SAS is not set
546# CONFIG_SCSI_HPTIOP is not set 563# CONFIG_SCSI_HPTIOP is not set
547# CONFIG_SCSI_BUSLOGIC is not set 564# CONFIG_SCSI_BUSLOGIC is not set
565# CONFIG_LIBFC is not set
566# CONFIG_FCOE is not set
548# CONFIG_SCSI_DMX3191D is not set 567# CONFIG_SCSI_DMX3191D is not set
549# CONFIG_SCSI_EATA is not set 568# CONFIG_SCSI_EATA is not set
550# CONFIG_SCSI_FUTURE_DOMAIN is not set 569# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -603,6 +622,9 @@ CONFIG_CICADA_PHY=y
603# CONFIG_BROADCOM_PHY is not set 622# CONFIG_BROADCOM_PHY is not set
604# CONFIG_ICPLUS_PHY is not set 623# CONFIG_ICPLUS_PHY is not set
605# CONFIG_REALTEK_PHY is not set 624# CONFIG_REALTEK_PHY is not set
625# CONFIG_NATIONAL_PHY is not set
626# CONFIG_STE10XP is not set
627# CONFIG_LSI_ET1011C_PHY is not set
606# CONFIG_FIXED_PHY is not set 628# CONFIG_FIXED_PHY is not set
607# CONFIG_MDIO_BITBANG is not set 629# CONFIG_MDIO_BITBANG is not set
608# CONFIG_NET_ETHERNET is not set 630# CONFIG_NET_ETHERNET is not set
@@ -631,6 +653,7 @@ CONFIG_GIANFAR=y
631# CONFIG_JME is not set 653# CONFIG_JME is not set
632CONFIG_NETDEV_10000=y 654CONFIG_NETDEV_10000=y
633# CONFIG_CHELSIO_T1 is not set 655# CONFIG_CHELSIO_T1 is not set
656CONFIG_CHELSIO_T3_DEPENDS=y
634# CONFIG_CHELSIO_T3 is not set 657# CONFIG_CHELSIO_T3 is not set
635# CONFIG_ENIC is not set 658# CONFIG_ENIC is not set
636# CONFIG_IXGBE is not set 659# CONFIG_IXGBE is not set
@@ -655,6 +678,10 @@ CONFIG_NETDEV_10000=y
655# CONFIG_IWLWIFI_LEDS is not set 678# CONFIG_IWLWIFI_LEDS is not set
656 679
657# 680#
681# Enable WiMAX (Networking options) to see the WiMAX drivers
682#
683
684#
658# USB Network Adapters 685# USB Network Adapters
659# 686#
660# CONFIG_USB_CATC is not set 687# CONFIG_USB_CATC is not set
@@ -712,8 +739,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
712# CONFIG_SERIAL_JSM is not set 739# CONFIG_SERIAL_JSM is not set
713# CONFIG_SERIAL_OF_PLATFORM is not set 740# CONFIG_SERIAL_OF_PLATFORM is not set
714CONFIG_UNIX98_PTYS=y 741CONFIG_UNIX98_PTYS=y
742# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
715CONFIG_LEGACY_PTYS=y 743CONFIG_LEGACY_PTYS=y
716CONFIG_LEGACY_PTY_COUNT=256 744CONFIG_LEGACY_PTY_COUNT=256
745# CONFIG_HVC_UDBG is not set
717# CONFIG_IPMI_HANDLER is not set 746# CONFIG_IPMI_HANDLER is not set
718CONFIG_HW_RANDOM=y 747CONFIG_HW_RANDOM=y
719# CONFIG_NVRAM is not set 748# CONFIG_NVRAM is not set
@@ -778,15 +807,14 @@ CONFIG_I2C_MPC=y
778# Miscellaneous I2C Chip support 807# Miscellaneous I2C Chip support
779# 808#
780# CONFIG_DS1682 is not set 809# CONFIG_DS1682 is not set
781# CONFIG_AT24 is not set 810# CONFIG_EEPROM_AT24 is not set
782# CONFIG_SENSORS_EEPROM is not set 811# CONFIG_EEPROM_LEGACY is not set
783CONFIG_SENSORS_PCF8574=y 812CONFIG_SENSORS_PCF8574=y
784# CONFIG_PCF8575 is not set 813# CONFIG_PCF8575 is not set
785# CONFIG_SENSORS_PCA9539 is not set 814# CONFIG_SENSORS_PCA9539 is not set
786# CONFIG_SENSORS_PCF8591 is not set 815# CONFIG_SENSORS_PCF8591 is not set
787# CONFIG_SENSORS_MAX6875 is not set 816# CONFIG_SENSORS_MAX6875 is not set
788# CONFIG_SENSORS_TSL2550 is not set 817# CONFIG_SENSORS_TSL2550 is not set
789# CONFIG_MCU_MPC8349EMITX is not set
790# CONFIG_I2C_DEBUG_CORE is not set 818# CONFIG_I2C_DEBUG_CORE is not set
791# CONFIG_I2C_DEBUG_ALGO is not set 819# CONFIG_I2C_DEBUG_ALGO is not set
792# CONFIG_I2C_DEBUG_BUS is not set 820# CONFIG_I2C_DEBUG_BUS is not set
@@ -803,7 +831,7 @@ CONFIG_SPI_MPC83xx=y
803# 831#
804# SPI Protocol Masters 832# SPI Protocol Masters
805# 833#
806# CONFIG_SPI_AT25 is not set 834# CONFIG_EEPROM_AT25 is not set
807# CONFIG_SPI_SPIDEV is not set 835# CONFIG_SPI_SPIDEV is not set
808# CONFIG_SPI_TLE62X0 is not set 836# CONFIG_SPI_TLE62X0 is not set
809CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 837CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -833,11 +861,11 @@ CONFIG_WATCHDOG=y
833# USB-based Watchdog Cards 861# USB-based Watchdog Cards
834# 862#
835# CONFIG_USBPCWATCHDOG is not set 863# CONFIG_USBPCWATCHDOG is not set
864CONFIG_SSB_POSSIBLE=y
836 865
837# 866#
838# Sonics Silicon Backplane 867# Sonics Silicon Backplane
839# 868#
840CONFIG_SSB_POSSIBLE=y
841# CONFIG_SSB is not set 869# CONFIG_SSB is not set
842 870
843# 871#
@@ -846,18 +874,13 @@ CONFIG_SSB_POSSIBLE=y
846# CONFIG_MFD_CORE is not set 874# CONFIG_MFD_CORE is not set
847# CONFIG_MFD_SM501 is not set 875# CONFIG_MFD_SM501 is not set
848# CONFIG_HTC_PASIC3 is not set 876# CONFIG_HTC_PASIC3 is not set
877# CONFIG_TWL4030_CORE is not set
849# CONFIG_MFD_TMIO is not set 878# CONFIG_MFD_TMIO is not set
850# CONFIG_PMIC_DA903X is not set 879# CONFIG_PMIC_DA903X is not set
851# CONFIG_MFD_WM8400 is not set 880# CONFIG_MFD_WM8400 is not set
852# CONFIG_MFD_WM8350_I2C is not set 881# CONFIG_MFD_WM8350_I2C is not set
853 882# CONFIG_MFD_PCF50633 is not set
854#
855# Voltage and Current regulators
856#
857# CONFIG_REGULATOR is not set 883# CONFIG_REGULATOR is not set
858# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
859# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
860# CONFIG_REGULATOR_BQ24022 is not set
861 884
862# 885#
863# Multimedia devices 886# Multimedia devices
@@ -921,6 +944,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
921# CONFIG_USB_EHCI_TT_NEWSCHED is not set 944# CONFIG_USB_EHCI_TT_NEWSCHED is not set
922CONFIG_USB_EHCI_FSL=y 945CONFIG_USB_EHCI_FSL=y
923CONFIG_USB_EHCI_HCD_PPC_OF=y 946CONFIG_USB_EHCI_HCD_PPC_OF=y
947# CONFIG_USB_OXU210HP_HCD is not set
924# CONFIG_USB_ISP116X_HCD is not set 948# CONFIG_USB_ISP116X_HCD is not set
925# CONFIG_USB_ISP1760_HCD is not set 949# CONFIG_USB_ISP1760_HCD is not set
926# CONFIG_USB_OHCI_HCD is not set 950# CONFIG_USB_OHCI_HCD is not set
@@ -939,18 +963,17 @@ CONFIG_USB_UHCI_HCD=y
939# CONFIG_USB_TMC is not set 963# CONFIG_USB_TMC is not set
940 964
941# 965#
942# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 966# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
943# 967#
944 968
945# 969#
946# may also be needed; see USB_STORAGE Help for more information 970# see USB_STORAGE Help for more information
947# 971#
948CONFIG_USB_STORAGE=y 972CONFIG_USB_STORAGE=y
949# CONFIG_USB_STORAGE_DEBUG is not set 973# CONFIG_USB_STORAGE_DEBUG is not set
950# CONFIG_USB_STORAGE_DATAFAB is not set 974# CONFIG_USB_STORAGE_DATAFAB is not set
951# CONFIG_USB_STORAGE_FREECOM is not set 975# CONFIG_USB_STORAGE_FREECOM is not set
952# CONFIG_USB_STORAGE_ISD200 is not set 976# CONFIG_USB_STORAGE_ISD200 is not set
953# CONFIG_USB_STORAGE_DPCM is not set
954# CONFIG_USB_STORAGE_USBAT is not set 977# CONFIG_USB_STORAGE_USBAT is not set
955# CONFIG_USB_STORAGE_SDDR09 is not set 978# CONFIG_USB_STORAGE_SDDR09 is not set
956# CONFIG_USB_STORAGE_SDDR55 is not set 979# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -996,6 +1019,10 @@ CONFIG_USB_STORAGE=y
996# CONFIG_USB_ISIGHTFW is not set 1019# CONFIG_USB_ISIGHTFW is not set
997# CONFIG_USB_VST is not set 1020# CONFIG_USB_VST is not set
998# CONFIG_USB_GADGET is not set 1021# CONFIG_USB_GADGET is not set
1022
1023#
1024# OTG and related infrastructure
1025#
999# CONFIG_UWB is not set 1026# CONFIG_UWB is not set
1000# CONFIG_MMC is not set 1027# CONFIG_MMC is not set
1001# CONFIG_MEMSTICK is not set 1028# CONFIG_MEMSTICK is not set
@@ -1033,12 +1060,14 @@ CONFIG_RTC_DRV_DS1307=y
1033# CONFIG_RTC_DRV_M41T80 is not set 1060# CONFIG_RTC_DRV_M41T80 is not set
1034# CONFIG_RTC_DRV_S35390A is not set 1061# CONFIG_RTC_DRV_S35390A is not set
1035# CONFIG_RTC_DRV_FM3130 is not set 1062# CONFIG_RTC_DRV_FM3130 is not set
1063# CONFIG_RTC_DRV_RX8581 is not set
1036 1064
1037# 1065#
1038# SPI RTC drivers 1066# SPI RTC drivers
1039# 1067#
1040# CONFIG_RTC_DRV_M41T94 is not set 1068# CONFIG_RTC_DRV_M41T94 is not set
1041# CONFIG_RTC_DRV_DS1305 is not set 1069# CONFIG_RTC_DRV_DS1305 is not set
1070# CONFIG_RTC_DRV_DS1390 is not set
1042# CONFIG_RTC_DRV_MAX6902 is not set 1071# CONFIG_RTC_DRV_MAX6902 is not set
1043# CONFIG_RTC_DRV_R9701 is not set 1072# CONFIG_RTC_DRV_R9701 is not set
1044# CONFIG_RTC_DRV_RS5C348 is not set 1073# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1086,6 +1115,7 @@ CONFIG_FS_MBCACHE=y
1086CONFIG_FILE_LOCKING=y 1115CONFIG_FILE_LOCKING=y
1087# CONFIG_XFS_FS is not set 1116# CONFIG_XFS_FS is not set
1088# CONFIG_OCFS2_FS is not set 1117# CONFIG_OCFS2_FS is not set
1118# CONFIG_BTRFS_FS is not set
1089CONFIG_DNOTIFY=y 1119CONFIG_DNOTIFY=y
1090CONFIG_INOTIFY=y 1120CONFIG_INOTIFY=y
1091CONFIG_INOTIFY_USER=y 1121CONFIG_INOTIFY_USER=y
@@ -1122,10 +1152,7 @@ CONFIG_TMPFS=y
1122# CONFIG_TMPFS_POSIX_ACL is not set 1152# CONFIG_TMPFS_POSIX_ACL is not set
1123# CONFIG_HUGETLB_PAGE is not set 1153# CONFIG_HUGETLB_PAGE is not set
1124# CONFIG_CONFIGFS_FS is not set 1154# CONFIG_CONFIGFS_FS is not set
1125 1155CONFIG_MISC_FILESYSTEMS=y
1126#
1127# Miscellaneous filesystems
1128#
1129# CONFIG_ADFS_FS is not set 1156# CONFIG_ADFS_FS is not set
1130# CONFIG_AFFS_FS is not set 1157# CONFIG_AFFS_FS is not set
1131# CONFIG_HFS_FS is not set 1158# CONFIG_HFS_FS is not set
@@ -1135,6 +1162,7 @@ CONFIG_TMPFS=y
1135# CONFIG_EFS_FS is not set 1162# CONFIG_EFS_FS is not set
1136# CONFIG_JFFS2_FS is not set 1163# CONFIG_JFFS2_FS is not set
1137# CONFIG_CRAMFS is not set 1164# CONFIG_CRAMFS is not set
1165# CONFIG_SQUASHFS is not set
1138# CONFIG_VXFS_FS is not set 1166# CONFIG_VXFS_FS is not set
1139# CONFIG_MINIX_FS is not set 1167# CONFIG_MINIX_FS is not set
1140# CONFIG_OMFS_FS is not set 1168# CONFIG_OMFS_FS is not set
@@ -1231,6 +1259,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1231# Library routines 1259# Library routines
1232# 1260#
1233CONFIG_BITREVERSE=y 1261CONFIG_BITREVERSE=y
1262CONFIG_GENERIC_FIND_LAST_BIT=y
1234# CONFIG_CRC_CCITT is not set 1263# CONFIG_CRC_CCITT is not set
1235# CONFIG_CRC16 is not set 1264# CONFIG_CRC16 is not set
1236CONFIG_CRC_T10DIF=y 1265CONFIG_CRC_T10DIF=y
@@ -1264,6 +1293,8 @@ CONFIG_FRAME_WARN=1024
1264# CONFIG_LATENCYTOP is not set 1293# CONFIG_LATENCYTOP is not set
1265CONFIG_SYSCTL_SYSCALL_CHECK=y 1294CONFIG_SYSCTL_SYSCALL_CHECK=y
1266CONFIG_HAVE_FUNCTION_TRACER=y 1295CONFIG_HAVE_FUNCTION_TRACER=y
1296CONFIG_HAVE_DYNAMIC_FTRACE=y
1297CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1267 1298
1268# 1299#
1269# Tracers 1300# Tracers
@@ -1271,6 +1302,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1271# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1302# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1272# CONFIG_SAMPLES is not set 1303# CONFIG_SAMPLES is not set
1273CONFIG_HAVE_ARCH_KGDB=y 1304CONFIG_HAVE_ARCH_KGDB=y
1305CONFIG_PRINT_STACK_DEPTH=64
1274# CONFIG_IRQSTACKS is not set 1306# CONFIG_IRQSTACKS is not set
1275# CONFIG_BOOTX_TEXT is not set 1307# CONFIG_BOOTX_TEXT is not set
1276# CONFIG_PPC_EARLY_DEBUG is not set 1308# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1289,11 +1321,15 @@ CONFIG_CRYPTO=y
1289# 1321#
1290# CONFIG_CRYPTO_FIPS is not set 1322# CONFIG_CRYPTO_FIPS is not set
1291CONFIG_CRYPTO_ALGAPI=y 1323CONFIG_CRYPTO_ALGAPI=y
1292CONFIG_CRYPTO_AEAD=y 1324CONFIG_CRYPTO_ALGAPI2=y
1325CONFIG_CRYPTO_AEAD2=y
1293CONFIG_CRYPTO_BLKCIPHER=y 1326CONFIG_CRYPTO_BLKCIPHER=y
1327CONFIG_CRYPTO_BLKCIPHER2=y
1294CONFIG_CRYPTO_HASH=y 1328CONFIG_CRYPTO_HASH=y
1295CONFIG_CRYPTO_RNG=y 1329CONFIG_CRYPTO_HASH2=y
1330CONFIG_CRYPTO_RNG2=y
1296CONFIG_CRYPTO_MANAGER=y 1331CONFIG_CRYPTO_MANAGER=y
1332CONFIG_CRYPTO_MANAGER2=y
1297# CONFIG_CRYPTO_GF128MUL is not set 1333# CONFIG_CRYPTO_GF128MUL is not set
1298# CONFIG_CRYPTO_NULL is not set 1334# CONFIG_CRYPTO_NULL is not set
1299# CONFIG_CRYPTO_CRYPTD is not set 1335# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index 36e2e93a1c53..18e4bc0b3c11 100644
--- a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_mds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:58 2008 4# Mon Jan 26 15:35:56 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +271,7 @@ CONFIG_PCI_SYSCALL=y
266CONFIG_ARCH_SUPPORTS_MSI=y 271CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -344,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
346# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
347 355
348# 356#
349# Network testing 357# Network testing
@@ -359,8 +367,9 @@ CONFIG_WIRELESS=y
359# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y 368CONFIG_WIRELESS_OLD_REGULATORY=y
361# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
362# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
363# CONFIG_IEEE80211 is not set 372# CONFIG_WIMAX is not set
364# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
365# CONFIG_NET_9P is not set 374# CONFIG_NET_9P is not set
366 375
@@ -404,8 +413,10 @@ CONFIG_MISC_DEVICES=y
404# CONFIG_EEPROM_93CX6 is not set 413# CONFIG_EEPROM_93CX6 is not set
405# CONFIG_SGI_IOC4 is not set 414# CONFIG_SGI_IOC4 is not set
406# CONFIG_TIFM_CORE is not set 415# CONFIG_TIFM_CORE is not set
416# CONFIG_ICS932S401 is not set
407# CONFIG_ENCLOSURE_SERVICES is not set 417# CONFIG_ENCLOSURE_SERVICES is not set
408# CONFIG_HP_ILO is not set 418# CONFIG_HP_ILO is not set
419# CONFIG_C2PORT is not set
409CONFIG_HAVE_IDE=y 420CONFIG_HAVE_IDE=y
410# CONFIG_IDE is not set 421# CONFIG_IDE is not set
411 422
@@ -454,6 +465,9 @@ CONFIG_MARVELL_PHY=y
454# CONFIG_BROADCOM_PHY is not set 465# CONFIG_BROADCOM_PHY is not set
455# CONFIG_ICPLUS_PHY is not set 466# CONFIG_ICPLUS_PHY is not set
456# CONFIG_REALTEK_PHY is not set 467# CONFIG_REALTEK_PHY is not set
468# CONFIG_NATIONAL_PHY is not set
469# CONFIG_STE10XP is not set
470# CONFIG_LSI_ET1011C_PHY is not set
457# CONFIG_FIXED_PHY is not set 471# CONFIG_FIXED_PHY is not set
458# CONFIG_MDIO_BITBANG is not set 472# CONFIG_MDIO_BITBANG is not set
459CONFIG_NET_ETHERNET=y 473CONFIG_NET_ETHERNET=y
@@ -477,7 +491,6 @@ CONFIG_NET_PCI=y
477# CONFIG_ADAPTEC_STARFIRE is not set 491# CONFIG_ADAPTEC_STARFIRE is not set
478# CONFIG_B44 is not set 492# CONFIG_B44 is not set
479# CONFIG_FORCEDETH is not set 493# CONFIG_FORCEDETH is not set
480# CONFIG_EEPRO100 is not set
481CONFIG_E100=y 494CONFIG_E100=y
482# CONFIG_FEALNX is not set 495# CONFIG_FEALNX is not set
483# CONFIG_NATSEMI is not set 496# CONFIG_NATSEMI is not set
@@ -487,6 +500,7 @@ CONFIG_E100=y
487# CONFIG_R6040 is not set 500# CONFIG_R6040 is not set
488# CONFIG_SIS900 is not set 501# CONFIG_SIS900 is not set
489# CONFIG_EPIC100 is not set 502# CONFIG_EPIC100 is not set
503# CONFIG_SMSC9420 is not set
490# CONFIG_SUNDANCE is not set 504# CONFIG_SUNDANCE is not set
491# CONFIG_TLAN is not set 505# CONFIG_TLAN is not set
492# CONFIG_VIA_RHINE is not set 506# CONFIG_VIA_RHINE is not set
@@ -517,6 +531,7 @@ CONFIG_GIANFAR=y
517# CONFIG_JME is not set 531# CONFIG_JME is not set
518CONFIG_NETDEV_10000=y 532CONFIG_NETDEV_10000=y
519# CONFIG_CHELSIO_T1 is not set 533# CONFIG_CHELSIO_T1 is not set
534CONFIG_CHELSIO_T3_DEPENDS=y
520# CONFIG_CHELSIO_T3 is not set 535# CONFIG_CHELSIO_T3 is not set
521# CONFIG_ENIC is not set 536# CONFIG_ENIC is not set
522# CONFIG_IXGBE is not set 537# CONFIG_IXGBE is not set
@@ -539,6 +554,10 @@ CONFIG_NETDEV_10000=y
539# CONFIG_WLAN_PRE80211 is not set 554# CONFIG_WLAN_PRE80211 is not set
540# CONFIG_WLAN_80211 is not set 555# CONFIG_WLAN_80211 is not set
541# CONFIG_IWLWIFI_LEDS is not set 556# CONFIG_IWLWIFI_LEDS is not set
557
558#
559# Enable WiMAX (Networking options) to see the WiMAX drivers
560#
542# CONFIG_WAN is not set 561# CONFIG_WAN is not set
543# CONFIG_FDDI is not set 562# CONFIG_FDDI is not set
544# CONFIG_HIPPI is not set 563# CONFIG_HIPPI is not set
@@ -608,8 +627,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
608# CONFIG_SERIAL_JSM is not set 627# CONFIG_SERIAL_JSM is not set
609# CONFIG_SERIAL_OF_PLATFORM is not set 628# CONFIG_SERIAL_OF_PLATFORM is not set
610CONFIG_UNIX98_PTYS=y 629CONFIG_UNIX98_PTYS=y
630# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
611CONFIG_LEGACY_PTYS=y 631CONFIG_LEGACY_PTYS=y
612CONFIG_LEGACY_PTY_COUNT=256 632CONFIG_LEGACY_PTY_COUNT=256
633# CONFIG_HVC_UDBG is not set
613# CONFIG_IPMI_HANDLER is not set 634# CONFIG_IPMI_HANDLER is not set
614# CONFIG_HW_RANDOM is not set 635# CONFIG_HW_RANDOM is not set
615# CONFIG_NVRAM is not set 636# CONFIG_NVRAM is not set
@@ -673,15 +694,14 @@ CONFIG_I2C_MPC=y
673# Miscellaneous I2C Chip support 694# Miscellaneous I2C Chip support
674# 695#
675# CONFIG_DS1682 is not set 696# CONFIG_DS1682 is not set
676# CONFIG_AT24 is not set 697# CONFIG_EEPROM_AT24 is not set
677# CONFIG_SENSORS_EEPROM is not set 698# CONFIG_EEPROM_LEGACY is not set
678# CONFIG_SENSORS_PCF8574 is not set 699# CONFIG_SENSORS_PCF8574 is not set
679# CONFIG_PCF8575 is not set 700# CONFIG_PCF8575 is not set
680# CONFIG_SENSORS_PCA9539 is not set 701# CONFIG_SENSORS_PCA9539 is not set
681# CONFIG_SENSORS_PCF8591 is not set 702# CONFIG_SENSORS_PCF8591 is not set
682# CONFIG_SENSORS_MAX6875 is not set 703# CONFIG_SENSORS_MAX6875 is not set
683# CONFIG_SENSORS_TSL2550 is not set 704# CONFIG_SENSORS_TSL2550 is not set
684# CONFIG_MCU_MPC8349EMITX is not set
685# CONFIG_I2C_DEBUG_CORE is not set 705# CONFIG_I2C_DEBUG_CORE is not set
686# CONFIG_I2C_DEBUG_ALGO is not set 706# CONFIG_I2C_DEBUG_ALGO is not set
687# CONFIG_I2C_DEBUG_BUS is not set 707# CONFIG_I2C_DEBUG_BUS is not set
@@ -701,8 +721,10 @@ CONFIG_HWMON=y
701# CONFIG_SENSORS_ADM1029 is not set 721# CONFIG_SENSORS_ADM1029 is not set
702# CONFIG_SENSORS_ADM1031 is not set 722# CONFIG_SENSORS_ADM1031 is not set
703# CONFIG_SENSORS_ADM9240 is not set 723# CONFIG_SENSORS_ADM9240 is not set
724# CONFIG_SENSORS_ADT7462 is not set
704# CONFIG_SENSORS_ADT7470 is not set 725# CONFIG_SENSORS_ADT7470 is not set
705# CONFIG_SENSORS_ADT7473 is not set 726# CONFIG_SENSORS_ADT7473 is not set
727# CONFIG_SENSORS_ADT7475 is not set
706# CONFIG_SENSORS_ATXP1 is not set 728# CONFIG_SENSORS_ATXP1 is not set
707# CONFIG_SENSORS_DS1621 is not set 729# CONFIG_SENSORS_DS1621 is not set
708# CONFIG_SENSORS_I5K_AMB is not set 730# CONFIG_SENSORS_I5K_AMB is not set
@@ -723,6 +745,7 @@ CONFIG_HWMON=y
723# CONFIG_SENSORS_LM90 is not set 745# CONFIG_SENSORS_LM90 is not set
724# CONFIG_SENSORS_LM92 is not set 746# CONFIG_SENSORS_LM92 is not set
725# CONFIG_SENSORS_LM93 is not set 747# CONFIG_SENSORS_LM93 is not set
748# CONFIG_SENSORS_LTC4245 is not set
726# CONFIG_SENSORS_MAX1619 is not set 749# CONFIG_SENSORS_MAX1619 is not set
727# CONFIG_SENSORS_MAX6650 is not set 750# CONFIG_SENSORS_MAX6650 is not set
728# CONFIG_SENSORS_PC87360 is not set 751# CONFIG_SENSORS_PC87360 is not set
@@ -763,11 +786,11 @@ CONFIG_WATCHDOG=y
763# 786#
764# CONFIG_PCIPCWATCHDOG is not set 787# CONFIG_PCIPCWATCHDOG is not set
765# CONFIG_WDTPCI is not set 788# CONFIG_WDTPCI is not set
789CONFIG_SSB_POSSIBLE=y
766 790
767# 791#
768# Sonics Silicon Backplane 792# Sonics Silicon Backplane
769# 793#
770CONFIG_SSB_POSSIBLE=y
771# CONFIG_SSB is not set 794# CONFIG_SSB is not set
772 795
773# 796#
@@ -776,18 +799,13 @@ CONFIG_SSB_POSSIBLE=y
776# CONFIG_MFD_CORE is not set 799# CONFIG_MFD_CORE is not set
777# CONFIG_MFD_SM501 is not set 800# CONFIG_MFD_SM501 is not set
778# CONFIG_HTC_PASIC3 is not set 801# CONFIG_HTC_PASIC3 is not set
802# CONFIG_TWL4030_CORE is not set
779# CONFIG_MFD_TMIO is not set 803# CONFIG_MFD_TMIO is not set
780# CONFIG_PMIC_DA903X is not set 804# CONFIG_PMIC_DA903X is not set
781# CONFIG_MFD_WM8400 is not set 805# CONFIG_MFD_WM8400 is not set
782# CONFIG_MFD_WM8350_I2C is not set 806# CONFIG_MFD_WM8350_I2C is not set
783 807# CONFIG_MFD_PCF50633 is not set
784#
785# Voltage and Current regulators
786#
787# CONFIG_REGULATOR is not set 808# CONFIG_REGULATOR is not set
788# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
789# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
790# CONFIG_REGULATOR_BQ24022 is not set
791 809
792# 810#
793# Multimedia devices 811# Multimedia devices
@@ -843,9 +861,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
843# 861#
844 862
845# 863#
846# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 864# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
847# 865#
848# CONFIG_USB_GADGET is not set 866# CONFIG_USB_GADGET is not set
867
868#
869# OTG and related infrastructure
870#
849# CONFIG_UWB is not set 871# CONFIG_UWB is not set
850# CONFIG_MMC is not set 872# CONFIG_MMC is not set
851# CONFIG_MEMSTICK is not set 873# CONFIG_MEMSTICK is not set
@@ -883,6 +905,7 @@ CONFIG_RTC_DRV_DS1374=y
883# CONFIG_RTC_DRV_M41T80 is not set 905# CONFIG_RTC_DRV_M41T80 is not set
884# CONFIG_RTC_DRV_S35390A is not set 906# CONFIG_RTC_DRV_S35390A is not set
885# CONFIG_RTC_DRV_FM3130 is not set 907# CONFIG_RTC_DRV_FM3130 is not set
908# CONFIG_RTC_DRV_RX8581 is not set
886 909
887# 910#
888# SPI RTC drivers 911# SPI RTC drivers
@@ -930,6 +953,7 @@ CONFIG_FS_MBCACHE=y
930CONFIG_FILE_LOCKING=y 953CONFIG_FILE_LOCKING=y
931# CONFIG_XFS_FS is not set 954# CONFIG_XFS_FS is not set
932# CONFIG_OCFS2_FS is not set 955# CONFIG_OCFS2_FS is not set
956# CONFIG_BTRFS_FS is not set
933CONFIG_DNOTIFY=y 957CONFIG_DNOTIFY=y
934CONFIG_INOTIFY=y 958CONFIG_INOTIFY=y
935CONFIG_INOTIFY_USER=y 959CONFIG_INOTIFY_USER=y
@@ -963,10 +987,7 @@ CONFIG_TMPFS=y
963# CONFIG_TMPFS_POSIX_ACL is not set 987# CONFIG_TMPFS_POSIX_ACL is not set
964# CONFIG_HUGETLB_PAGE is not set 988# CONFIG_HUGETLB_PAGE is not set
965# CONFIG_CONFIGFS_FS is not set 989# CONFIG_CONFIGFS_FS is not set
966 990CONFIG_MISC_FILESYSTEMS=y
967#
968# Miscellaneous filesystems
969#
970# CONFIG_ADFS_FS is not set 991# CONFIG_ADFS_FS is not set
971# CONFIG_AFFS_FS is not set 992# CONFIG_AFFS_FS is not set
972# CONFIG_HFS_FS is not set 993# CONFIG_HFS_FS is not set
@@ -975,6 +996,7 @@ CONFIG_TMPFS=y
975# CONFIG_BFS_FS is not set 996# CONFIG_BFS_FS is not set
976# CONFIG_EFS_FS is not set 997# CONFIG_EFS_FS is not set
977# CONFIG_CRAMFS is not set 998# CONFIG_CRAMFS is not set
999# CONFIG_SQUASHFS is not set
978# CONFIG_VXFS_FS is not set 1000# CONFIG_VXFS_FS is not set
979# CONFIG_MINIX_FS is not set 1001# CONFIG_MINIX_FS is not set
980# CONFIG_OMFS_FS is not set 1002# CONFIG_OMFS_FS is not set
@@ -1028,6 +1050,7 @@ CONFIG_PARTITION_ADVANCED=y
1028# Library routines 1050# Library routines
1029# 1051#
1030CONFIG_BITREVERSE=y 1052CONFIG_BITREVERSE=y
1053CONFIG_GENERIC_FIND_LAST_BIT=y
1031# CONFIG_CRC_CCITT is not set 1054# CONFIG_CRC_CCITT is not set
1032# CONFIG_CRC16 is not set 1055# CONFIG_CRC16 is not set
1033# CONFIG_CRC_T10DIF is not set 1056# CONFIG_CRC_T10DIF is not set
@@ -1061,6 +1084,8 @@ CONFIG_FRAME_WARN=1024
1061# CONFIG_LATENCYTOP is not set 1084# CONFIG_LATENCYTOP is not set
1062CONFIG_SYSCTL_SYSCALL_CHECK=y 1085CONFIG_SYSCTL_SYSCALL_CHECK=y
1063CONFIG_HAVE_FUNCTION_TRACER=y 1086CONFIG_HAVE_FUNCTION_TRACER=y
1087CONFIG_HAVE_DYNAMIC_FTRACE=y
1088CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1064 1089
1065# 1090#
1066# Tracers 1091# Tracers
@@ -1068,6 +1093,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1068# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1093# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1069# CONFIG_SAMPLES is not set 1094# CONFIG_SAMPLES is not set
1070CONFIG_HAVE_ARCH_KGDB=y 1095CONFIG_HAVE_ARCH_KGDB=y
1096CONFIG_PRINT_STACK_DEPTH=64
1071# CONFIG_IRQSTACKS is not set 1097# CONFIG_IRQSTACKS is not set
1072# CONFIG_BOOTX_TEXT is not set 1098# CONFIG_BOOTX_TEXT is not set
1073# CONFIG_PPC_EARLY_DEBUG is not set 1099# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1086,11 +1112,15 @@ CONFIG_CRYPTO=y
1086# 1112#
1087# CONFIG_CRYPTO_FIPS is not set 1113# CONFIG_CRYPTO_FIPS is not set
1088CONFIG_CRYPTO_ALGAPI=y 1114CONFIG_CRYPTO_ALGAPI=y
1089CONFIG_CRYPTO_AEAD=y 1115CONFIG_CRYPTO_ALGAPI2=y
1116CONFIG_CRYPTO_AEAD2=y
1090CONFIG_CRYPTO_BLKCIPHER=y 1117CONFIG_CRYPTO_BLKCIPHER=y
1118CONFIG_CRYPTO_BLKCIPHER2=y
1091CONFIG_CRYPTO_HASH=y 1119CONFIG_CRYPTO_HASH=y
1092CONFIG_CRYPTO_RNG=y 1120CONFIG_CRYPTO_HASH2=y
1121CONFIG_CRYPTO_RNG2=y
1093CONFIG_CRYPTO_MANAGER=y 1122CONFIG_CRYPTO_MANAGER=y
1123CONFIG_CRYPTO_MANAGER2=y
1094# CONFIG_CRYPTO_GF128MUL is not set 1124# CONFIG_CRYPTO_GF128MUL is not set
1095# CONFIG_CRYPTO_NULL is not set 1125# CONFIG_CRYPTO_NULL is not set
1096# CONFIG_CRYPTO_CRYPTD is not set 1126# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index 80eb6c9a05c4..76db8138eac7 100644
--- a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_mds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:59 2008 4# Mon Jan 26 15:35:58 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -197,6 +197,8 @@ CONFIG_IPIC=y
197CONFIG_QUICC_ENGINE=y 197CONFIG_QUICC_ENGINE=y
198# CONFIG_QE_GPIO is not set 198# CONFIG_QE_GPIO is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_SIMPLE_GPIO is not set
201# CONFIG_MCU_MPC8349EMITX is not set
200 202
201# 203#
202# Kernel options 204# Kernel options
@@ -224,6 +226,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
224CONFIG_ARCH_HAS_WALK_MEMORY=y 226CONFIG_ARCH_HAS_WALK_MEMORY=y
225CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
226# CONFIG_KEXEC is not set 228# CONFIG_KEXEC is not set
229# CONFIG_CRASH_DUMP is not set
227CONFIG_ARCH_FLATMEM_ENABLE=y 230CONFIG_ARCH_FLATMEM_ENABLE=y
228CONFIG_ARCH_POPULATES_NODE_MAP=y 231CONFIG_ARCH_POPULATES_NODE_MAP=y
229CONFIG_SELECT_MEMORY_MODEL=y 232CONFIG_SELECT_MEMORY_MODEL=y
@@ -235,12 +238,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
235CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
236CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
237CONFIG_MIGRATION=y 240CONFIG_MIGRATION=y
238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set 241# CONFIG_PHYS_ADDR_T_64BIT is not set
240CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set
244CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
245CONFIG_PROC_DEVICETREE=y 250CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -265,6 +270,7 @@ CONFIG_PCI_SYSCALL=y
265CONFIG_ARCH_SUPPORTS_MSI=y 270CONFIG_ARCH_SUPPORTS_MSI=y
266# CONFIG_PCI_MSI is not set 271# CONFIG_PCI_MSI is not set
267# CONFIG_PCI_LEGACY is not set 272# CONFIG_PCI_LEGACY is not set
273# CONFIG_PCI_STUB is not set
268# CONFIG_PCCARD is not set 274# CONFIG_PCCARD is not set
269# CONFIG_HOTPLUG_PCI is not set 275# CONFIG_HOTPLUG_PCI is not set
270# CONFIG_HAS_RAPIDIO is not set 276# CONFIG_HAS_RAPIDIO is not set
@@ -287,6 +293,7 @@ CONFIG_NET=y
287# 293#
288# Networking options 294# Networking options
289# 295#
296CONFIG_COMPAT_NET_DEV_OPS=y
290CONFIG_PACKET=y 297CONFIG_PACKET=y
291# CONFIG_PACKET_MMAP is not set 298# CONFIG_PACKET_MMAP is not set
292CONFIG_UNIX=y 299CONFIG_UNIX=y
@@ -343,6 +350,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_ECONET is not set 350# CONFIG_ECONET is not set
344# CONFIG_WAN_ROUTER is not set 351# CONFIG_WAN_ROUTER is not set
345# CONFIG_NET_SCHED is not set 352# CONFIG_NET_SCHED is not set
353# CONFIG_DCB is not set
346 354
347# 355#
348# Network testing 356# Network testing
@@ -358,8 +366,9 @@ CONFIG_WIRELESS=y
358# CONFIG_CFG80211 is not set 366# CONFIG_CFG80211 is not set
359CONFIG_WIRELESS_OLD_REGULATORY=y 367CONFIG_WIRELESS_OLD_REGULATORY=y
360# CONFIG_WIRELESS_EXT is not set 368# CONFIG_WIRELESS_EXT is not set
369# CONFIG_LIB80211 is not set
361# CONFIG_MAC80211 is not set 370# CONFIG_MAC80211 is not set
362# CONFIG_IEEE80211 is not set 371# CONFIG_WIMAX is not set
363# CONFIG_RFKILL is not set 372# CONFIG_RFKILL is not set
364# CONFIG_NET_9P is not set 373# CONFIG_NET_9P is not set
365 374
@@ -380,6 +389,7 @@ CONFIG_MTD=y
380# CONFIG_MTD_DEBUG is not set 389# CONFIG_MTD_DEBUG is not set
381# CONFIG_MTD_CONCAT is not set 390# CONFIG_MTD_CONCAT is not set
382CONFIG_MTD_PARTITIONS=y 391CONFIG_MTD_PARTITIONS=y
392# CONFIG_MTD_TESTS is not set
383# CONFIG_MTD_REDBOOT_PARTS is not set 393# CONFIG_MTD_REDBOOT_PARTS is not set
384CONFIG_MTD_CMDLINE_PARTS=y 394CONFIG_MTD_CMDLINE_PARTS=y
385# CONFIG_MTD_OF_PARTS is not set 395# CONFIG_MTD_OF_PARTS is not set
@@ -451,6 +461,12 @@ CONFIG_MTD_PHYSMAP_OF=y
451# CONFIG_MTD_ONENAND is not set 461# CONFIG_MTD_ONENAND is not set
452 462
453# 463#
464# LPDDR flash memory drivers
465#
466# CONFIG_MTD_LPDDR is not set
467# CONFIG_MTD_QINFO_PROBE is not set
468
469#
454# UBI - Unsorted block images 470# UBI - Unsorted block images
455# 471#
456# CONFIG_MTD_UBI is not set 472# CONFIG_MTD_UBI is not set
@@ -480,8 +496,10 @@ CONFIG_MISC_DEVICES=y
480# CONFIG_EEPROM_93CX6 is not set 496# CONFIG_EEPROM_93CX6 is not set
481# CONFIG_SGI_IOC4 is not set 497# CONFIG_SGI_IOC4 is not set
482# CONFIG_TIFM_CORE is not set 498# CONFIG_TIFM_CORE is not set
499# CONFIG_ICS932S401 is not set
483# CONFIG_ENCLOSURE_SERVICES is not set 500# CONFIG_ENCLOSURE_SERVICES is not set
484# CONFIG_HP_ILO is not set 501# CONFIG_HP_ILO is not set
502# CONFIG_C2PORT is not set
485CONFIG_HAVE_IDE=y 503CONFIG_HAVE_IDE=y
486# CONFIG_IDE is not set 504# CONFIG_IDE is not set
487 505
@@ -524,6 +542,7 @@ CONFIG_SCSI_WAIT_SCAN=m
524# CONFIG_SCSI_SRP_ATTRS is not set 542# CONFIG_SCSI_SRP_ATTRS is not set
525CONFIG_SCSI_LOWLEVEL=y 543CONFIG_SCSI_LOWLEVEL=y
526# CONFIG_ISCSI_TCP is not set 544# CONFIG_ISCSI_TCP is not set
545# CONFIG_SCSI_CXGB3_ISCSI is not set
527# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 546# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
528# CONFIG_SCSI_3W_9XXX is not set 547# CONFIG_SCSI_3W_9XXX is not set
529# CONFIG_SCSI_ACARD is not set 548# CONFIG_SCSI_ACARD is not set
@@ -540,6 +559,8 @@ CONFIG_SCSI_LOWLEVEL=y
540# CONFIG_MEGARAID_SAS is not set 559# CONFIG_MEGARAID_SAS is not set
541# CONFIG_SCSI_HPTIOP is not set 560# CONFIG_SCSI_HPTIOP is not set
542# CONFIG_SCSI_BUSLOGIC is not set 561# CONFIG_SCSI_BUSLOGIC is not set
562# CONFIG_LIBFC is not set
563# CONFIG_FCOE is not set
543# CONFIG_SCSI_DMX3191D is not set 564# CONFIG_SCSI_DMX3191D is not set
544# CONFIG_SCSI_EATA is not set 565# CONFIG_SCSI_EATA is not set
545# CONFIG_SCSI_FUTURE_DOMAIN is not set 566# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -598,6 +619,9 @@ CONFIG_MARVELL_PHY=y
598# CONFIG_BROADCOM_PHY is not set 619# CONFIG_BROADCOM_PHY is not set
599# CONFIG_ICPLUS_PHY is not set 620# CONFIG_ICPLUS_PHY is not set
600# CONFIG_REALTEK_PHY is not set 621# CONFIG_REALTEK_PHY is not set
622# CONFIG_NATIONAL_PHY is not set
623# CONFIG_STE10XP is not set
624# CONFIG_LSI_ET1011C_PHY is not set
601# CONFIG_FIXED_PHY is not set 625# CONFIG_FIXED_PHY is not set
602# CONFIG_MDIO_BITBANG is not set 626# CONFIG_MDIO_BITBANG is not set
603CONFIG_NET_ETHERNET=y 627CONFIG_NET_ETHERNET=y
@@ -638,7 +662,6 @@ CONFIG_NETDEV_1000=y
638# CONFIG_GIANFAR is not set 662# CONFIG_GIANFAR is not set
639CONFIG_UCC_GETH=y 663CONFIG_UCC_GETH=y
640# CONFIG_UGETH_MAGIC_PACKET is not set 664# CONFIG_UGETH_MAGIC_PACKET is not set
641# CONFIG_UGETH_FILTERING is not set
642# CONFIG_UGETH_TX_ON_DEMAND is not set 665# CONFIG_UGETH_TX_ON_DEMAND is not set
643# CONFIG_MV643XX_ETH is not set 666# CONFIG_MV643XX_ETH is not set
644# CONFIG_QLA3XXX is not set 667# CONFIG_QLA3XXX is not set
@@ -647,6 +670,7 @@ CONFIG_UCC_GETH=y
647# CONFIG_JME is not set 670# CONFIG_JME is not set
648CONFIG_NETDEV_10000=y 671CONFIG_NETDEV_10000=y
649# CONFIG_CHELSIO_T1 is not set 672# CONFIG_CHELSIO_T1 is not set
673CONFIG_CHELSIO_T3_DEPENDS=y
650# CONFIG_CHELSIO_T3 is not set 674# CONFIG_CHELSIO_T3 is not set
651# CONFIG_ENIC is not set 675# CONFIG_ENIC is not set
652# CONFIG_IXGBE is not set 676# CONFIG_IXGBE is not set
@@ -669,6 +693,10 @@ CONFIG_NETDEV_10000=y
669# CONFIG_WLAN_PRE80211 is not set 693# CONFIG_WLAN_PRE80211 is not set
670# CONFIG_WLAN_80211 is not set 694# CONFIG_WLAN_80211 is not set
671# CONFIG_IWLWIFI_LEDS is not set 695# CONFIG_IWLWIFI_LEDS is not set
696
697#
698# Enable WiMAX (Networking options) to see the WiMAX drivers
699#
672# CONFIG_WAN is not set 700# CONFIG_WAN is not set
673# CONFIG_FDDI is not set 701# CONFIG_FDDI is not set
674# CONFIG_HIPPI is not set 702# CONFIG_HIPPI is not set
@@ -740,8 +768,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
740# CONFIG_SERIAL_OF_PLATFORM is not set 768# CONFIG_SERIAL_OF_PLATFORM is not set
741# CONFIG_SERIAL_QE is not set 769# CONFIG_SERIAL_QE is not set
742CONFIG_UNIX98_PTYS=y 770CONFIG_UNIX98_PTYS=y
771# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
743CONFIG_LEGACY_PTYS=y 772CONFIG_LEGACY_PTYS=y
744CONFIG_LEGACY_PTY_COUNT=256 773CONFIG_LEGACY_PTY_COUNT=256
774# CONFIG_HVC_UDBG is not set
745# CONFIG_IPMI_HANDLER is not set 775# CONFIG_IPMI_HANDLER is not set
746CONFIG_HW_RANDOM=y 776CONFIG_HW_RANDOM=y
747# CONFIG_NVRAM is not set 777# CONFIG_NVRAM is not set
@@ -805,15 +835,14 @@ CONFIG_I2C_MPC=y
805# Miscellaneous I2C Chip support 835# Miscellaneous I2C Chip support
806# 836#
807# CONFIG_DS1682 is not set 837# CONFIG_DS1682 is not set
808# CONFIG_AT24 is not set 838# CONFIG_EEPROM_AT24 is not set
809# CONFIG_SENSORS_EEPROM is not set 839# CONFIG_EEPROM_LEGACY is not set
810# CONFIG_SENSORS_PCF8574 is not set 840# CONFIG_SENSORS_PCF8574 is not set
811# CONFIG_PCF8575 is not set 841# CONFIG_PCF8575 is not set
812# CONFIG_SENSORS_PCA9539 is not set 842# CONFIG_SENSORS_PCA9539 is not set
813# CONFIG_SENSORS_PCF8591 is not set 843# CONFIG_SENSORS_PCF8591 is not set
814# CONFIG_SENSORS_MAX6875 is not set 844# CONFIG_SENSORS_MAX6875 is not set
815# CONFIG_SENSORS_TSL2550 is not set 845# CONFIG_SENSORS_TSL2550 is not set
816# CONFIG_MCU_MPC8349EMITX is not set
817# CONFIG_I2C_DEBUG_CORE is not set 846# CONFIG_I2C_DEBUG_CORE is not set
818# CONFIG_I2C_DEBUG_ALGO is not set 847# CONFIG_I2C_DEBUG_ALGO is not set
819# CONFIG_I2C_DEBUG_BUS is not set 848# CONFIG_I2C_DEBUG_BUS is not set
@@ -833,8 +862,10 @@ CONFIG_HWMON=y
833# CONFIG_SENSORS_ADM1029 is not set 862# CONFIG_SENSORS_ADM1029 is not set
834# CONFIG_SENSORS_ADM1031 is not set 863# CONFIG_SENSORS_ADM1031 is not set
835# CONFIG_SENSORS_ADM9240 is not set 864# CONFIG_SENSORS_ADM9240 is not set
865# CONFIG_SENSORS_ADT7462 is not set
836# CONFIG_SENSORS_ADT7470 is not set 866# CONFIG_SENSORS_ADT7470 is not set
837# CONFIG_SENSORS_ADT7473 is not set 867# CONFIG_SENSORS_ADT7473 is not set
868# CONFIG_SENSORS_ADT7475 is not set
838# CONFIG_SENSORS_ATXP1 is not set 869# CONFIG_SENSORS_ATXP1 is not set
839# CONFIG_SENSORS_DS1621 is not set 870# CONFIG_SENSORS_DS1621 is not set
840# CONFIG_SENSORS_I5K_AMB is not set 871# CONFIG_SENSORS_I5K_AMB is not set
@@ -855,6 +886,7 @@ CONFIG_HWMON=y
855# CONFIG_SENSORS_LM90 is not set 886# CONFIG_SENSORS_LM90 is not set
856# CONFIG_SENSORS_LM92 is not set 887# CONFIG_SENSORS_LM92 is not set
857# CONFIG_SENSORS_LM93 is not set 888# CONFIG_SENSORS_LM93 is not set
889# CONFIG_SENSORS_LTC4245 is not set
858# CONFIG_SENSORS_MAX1619 is not set 890# CONFIG_SENSORS_MAX1619 is not set
859# CONFIG_SENSORS_MAX6650 is not set 891# CONFIG_SENSORS_MAX6650 is not set
860# CONFIG_SENSORS_PC87360 is not set 892# CONFIG_SENSORS_PC87360 is not set
@@ -895,11 +927,11 @@ CONFIG_WATCHDOG=y
895# 927#
896# CONFIG_PCIPCWATCHDOG is not set 928# CONFIG_PCIPCWATCHDOG is not set
897# CONFIG_WDTPCI is not set 929# CONFIG_WDTPCI is not set
930CONFIG_SSB_POSSIBLE=y
898 931
899# 932#
900# Sonics Silicon Backplane 933# Sonics Silicon Backplane
901# 934#
902CONFIG_SSB_POSSIBLE=y
903# CONFIG_SSB is not set 935# CONFIG_SSB is not set
904 936
905# 937#
@@ -908,18 +940,13 @@ CONFIG_SSB_POSSIBLE=y
908# CONFIG_MFD_CORE is not set 940# CONFIG_MFD_CORE is not set
909# CONFIG_MFD_SM501 is not set 941# CONFIG_MFD_SM501 is not set
910# CONFIG_HTC_PASIC3 is not set 942# CONFIG_HTC_PASIC3 is not set
943# CONFIG_TWL4030_CORE is not set
911# CONFIG_MFD_TMIO is not set 944# CONFIG_MFD_TMIO is not set
912# CONFIG_PMIC_DA903X is not set 945# CONFIG_PMIC_DA903X is not set
913# CONFIG_MFD_WM8400 is not set 946# CONFIG_MFD_WM8400 is not set
914# CONFIG_MFD_WM8350_I2C is not set 947# CONFIG_MFD_WM8350_I2C is not set
915 948# CONFIG_MFD_PCF50633 is not set
916#
917# Voltage and Current regulators
918#
919# CONFIG_REGULATOR is not set 949# CONFIG_REGULATOR is not set
920# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
921# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
922# CONFIG_REGULATOR_BQ24022 is not set
923 950
924# 951#
925# Multimedia devices 952# Multimedia devices
@@ -975,9 +1002,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
975# 1002#
976 1003
977# 1004#
978# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
979# 1006#
980# CONFIG_USB_GADGET is not set 1007# CONFIG_USB_GADGET is not set
1008
1009#
1010# OTG and related infrastructure
1011#
981# CONFIG_UWB is not set 1012# CONFIG_UWB is not set
982# CONFIG_MMC is not set 1013# CONFIG_MMC is not set
983# CONFIG_MEMSTICK is not set 1014# CONFIG_MEMSTICK is not set
@@ -1015,6 +1046,7 @@ CONFIG_RTC_DRV_DS1374=y
1015# CONFIG_RTC_DRV_M41T80 is not set 1046# CONFIG_RTC_DRV_M41T80 is not set
1016# CONFIG_RTC_DRV_S35390A is not set 1047# CONFIG_RTC_DRV_S35390A is not set
1017# CONFIG_RTC_DRV_FM3130 is not set 1048# CONFIG_RTC_DRV_FM3130 is not set
1049# CONFIG_RTC_DRV_RX8581 is not set
1018 1050
1019# 1051#
1020# SPI RTC drivers 1052# SPI RTC drivers
@@ -1062,6 +1094,7 @@ CONFIG_FS_MBCACHE=y
1062CONFIG_FILE_LOCKING=y 1094CONFIG_FILE_LOCKING=y
1063# CONFIG_XFS_FS is not set 1095# CONFIG_XFS_FS is not set
1064# CONFIG_OCFS2_FS is not set 1096# CONFIG_OCFS2_FS is not set
1097# CONFIG_BTRFS_FS is not set
1065CONFIG_DNOTIFY=y 1098CONFIG_DNOTIFY=y
1066CONFIG_INOTIFY=y 1099CONFIG_INOTIFY=y
1067CONFIG_INOTIFY_USER=y 1100CONFIG_INOTIFY_USER=y
@@ -1095,10 +1128,7 @@ CONFIG_TMPFS=y
1095# CONFIG_TMPFS_POSIX_ACL is not set 1128# CONFIG_TMPFS_POSIX_ACL is not set
1096# CONFIG_HUGETLB_PAGE is not set 1129# CONFIG_HUGETLB_PAGE is not set
1097# CONFIG_CONFIGFS_FS is not set 1130# CONFIG_CONFIGFS_FS is not set
1098 1131CONFIG_MISC_FILESYSTEMS=y
1099#
1100# Miscellaneous filesystems
1101#
1102# CONFIG_ADFS_FS is not set 1132# CONFIG_ADFS_FS is not set
1103# CONFIG_AFFS_FS is not set 1133# CONFIG_AFFS_FS is not set
1104# CONFIG_HFS_FS is not set 1134# CONFIG_HFS_FS is not set
@@ -1108,6 +1138,7 @@ CONFIG_TMPFS=y
1108# CONFIG_EFS_FS is not set 1138# CONFIG_EFS_FS is not set
1109# CONFIG_JFFS2_FS is not set 1139# CONFIG_JFFS2_FS is not set
1110# CONFIG_CRAMFS is not set 1140# CONFIG_CRAMFS is not set
1141# CONFIG_SQUASHFS is not set
1111# CONFIG_VXFS_FS is not set 1142# CONFIG_VXFS_FS is not set
1112# CONFIG_MINIX_FS is not set 1143# CONFIG_MINIX_FS is not set
1113# CONFIG_OMFS_FS is not set 1144# CONFIG_OMFS_FS is not set
@@ -1163,6 +1194,7 @@ CONFIG_UCC=y
1163# Library routines 1194# Library routines
1164# 1195#
1165CONFIG_BITREVERSE=y 1196CONFIG_BITREVERSE=y
1197CONFIG_GENERIC_FIND_LAST_BIT=y
1166# CONFIG_CRC_CCITT is not set 1198# CONFIG_CRC_CCITT is not set
1167# CONFIG_CRC16 is not set 1199# CONFIG_CRC16 is not set
1168# CONFIG_CRC_T10DIF is not set 1200# CONFIG_CRC_T10DIF is not set
@@ -1196,6 +1228,8 @@ CONFIG_FRAME_WARN=1024
1196# CONFIG_LATENCYTOP is not set 1228# CONFIG_LATENCYTOP is not set
1197CONFIG_SYSCTL_SYSCALL_CHECK=y 1229CONFIG_SYSCTL_SYSCALL_CHECK=y
1198CONFIG_HAVE_FUNCTION_TRACER=y 1230CONFIG_HAVE_FUNCTION_TRACER=y
1231CONFIG_HAVE_DYNAMIC_FTRACE=y
1232CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1199 1233
1200# 1234#
1201# Tracers 1235# Tracers
@@ -1203,6 +1237,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1203# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1237# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1204# CONFIG_SAMPLES is not set 1238# CONFIG_SAMPLES is not set
1205CONFIG_HAVE_ARCH_KGDB=y 1239CONFIG_HAVE_ARCH_KGDB=y
1240CONFIG_PRINT_STACK_DEPTH=64
1206# CONFIG_IRQSTACKS is not set 1241# CONFIG_IRQSTACKS is not set
1207# CONFIG_BOOTX_TEXT is not set 1242# CONFIG_BOOTX_TEXT is not set
1208# CONFIG_PPC_EARLY_DEBUG is not set 1243# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1221,11 +1256,15 @@ CONFIG_CRYPTO=y
1221# 1256#
1222# CONFIG_CRYPTO_FIPS is not set 1257# CONFIG_CRYPTO_FIPS is not set
1223CONFIG_CRYPTO_ALGAPI=y 1258CONFIG_CRYPTO_ALGAPI=y
1224CONFIG_CRYPTO_AEAD=y 1259CONFIG_CRYPTO_ALGAPI2=y
1260CONFIG_CRYPTO_AEAD2=y
1225CONFIG_CRYPTO_BLKCIPHER=y 1261CONFIG_CRYPTO_BLKCIPHER=y
1262CONFIG_CRYPTO_BLKCIPHER2=y
1226CONFIG_CRYPTO_HASH=y 1263CONFIG_CRYPTO_HASH=y
1227CONFIG_CRYPTO_RNG=y 1264CONFIG_CRYPTO_HASH2=y
1265CONFIG_CRYPTO_RNG2=y
1228CONFIG_CRYPTO_MANAGER=y 1266CONFIG_CRYPTO_MANAGER=y
1267CONFIG_CRYPTO_MANAGER2=y
1229# CONFIG_CRYPTO_GF128MUL is not set 1268# CONFIG_CRYPTO_GF128MUL is not set
1230# CONFIG_CRYPTO_NULL is not set 1269# CONFIG_CRYPTO_NULL is not set
1231# CONFIG_CRYPTO_CRYPTD is not set 1270# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
index b9b236806e9f..0dc11c44306b 100644
--- a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_rdk_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:00 2008 4# Mon Jan 26 15:36:01 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -45,7 +45,7 @@ CONFIG_GENERIC_GPIO=y
45CONFIG_PPC=y 45CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
51CONFIG_OF=y 51CONFIG_OF=y
@@ -76,12 +76,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 79CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 80CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 81# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 82CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
84# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 85CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 86CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 87# CONFIG_RELAY is not set
@@ -114,7 +114,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 114CONFIG_SLUB=y
115# CONFIG_SLOB is not set 115# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 119CONFIG_HAVE_IOREMAP_PROT=y
@@ -124,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 127CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 133CONFIG_BLOCK=y
137# CONFIG_LBD is not set 134# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
142 138
@@ -153,6 +149,10 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
155CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
157 157
158# 158#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198CONFIG_QUICC_ENGINE=y 198CONFIG_QUICC_ENGINE=y
199CONFIG_QE_GPIO=y 199CONFIG_QE_GPIO=y
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -224,6 +226,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
224CONFIG_ARCH_HAS_WALK_MEMORY=y 226CONFIG_ARCH_HAS_WALK_MEMORY=y
225CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
226# CONFIG_KEXEC is not set 228# CONFIG_KEXEC is not set
229# CONFIG_CRASH_DUMP is not set
227CONFIG_ARCH_FLATMEM_ENABLE=y 230CONFIG_ARCH_FLATMEM_ENABLE=y
228CONFIG_ARCH_POPULATES_NODE_MAP=y 231CONFIG_ARCH_POPULATES_NODE_MAP=y
229CONFIG_SELECT_MEMORY_MODEL=y 232CONFIG_SELECT_MEMORY_MODEL=y
@@ -235,12 +238,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
235CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
236CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
237CONFIG_MIGRATION=y 240CONFIG_MIGRATION=y
238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set 241# CONFIG_PHYS_ADDR_T_64BIT is not set
240CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set
244CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
245CONFIG_PROC_DEVICETREE=y 250CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_PCI_SYSCALL=y
267CONFIG_ARCH_SUPPORTS_MSI=y 272CONFIG_ARCH_SUPPORTS_MSI=y
268# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
269# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -384,6 +393,7 @@ CONFIG_MTD=y
384# CONFIG_MTD_DEBUG is not set 393# CONFIG_MTD_DEBUG is not set
385# CONFIG_MTD_CONCAT is not set 394# CONFIG_MTD_CONCAT is not set
386CONFIG_MTD_PARTITIONS=y 395CONFIG_MTD_PARTITIONS=y
396# CONFIG_MTD_TESTS is not set
387# CONFIG_MTD_REDBOOT_PARTS is not set 397# CONFIG_MTD_REDBOOT_PARTS is not set
388CONFIG_MTD_CMDLINE_PARTS=y 398CONFIG_MTD_CMDLINE_PARTS=y
389# CONFIG_MTD_OF_PARTS is not set 399# CONFIG_MTD_OF_PARTS is not set
@@ -462,6 +472,12 @@ CONFIG_MTD_PHYSMAP_OF=y
462# CONFIG_MTD_ONENAND is not set 472# CONFIG_MTD_ONENAND is not set
463 473
464# 474#
475# LPDDR flash memory drivers
476#
477# CONFIG_MTD_LPDDR is not set
478# CONFIG_MTD_QINFO_PROBE is not set
479
480#
465# UBI - Unsorted block images 481# UBI - Unsorted block images
466# 482#
467# CONFIG_MTD_UBI is not set 483# CONFIG_MTD_UBI is not set
@@ -493,8 +509,10 @@ CONFIG_MISC_DEVICES=y
493# CONFIG_EEPROM_93CX6 is not set 509# CONFIG_EEPROM_93CX6 is not set
494# CONFIG_SGI_IOC4 is not set 510# CONFIG_SGI_IOC4 is not set
495# CONFIG_TIFM_CORE is not set 511# CONFIG_TIFM_CORE is not set
512# CONFIG_ICS932S401 is not set
496# CONFIG_ENCLOSURE_SERVICES is not set 513# CONFIG_ENCLOSURE_SERVICES is not set
497# CONFIG_HP_ILO is not set 514# CONFIG_HP_ILO is not set
515# CONFIG_C2PORT is not set
498CONFIG_HAVE_IDE=y 516CONFIG_HAVE_IDE=y
499# CONFIG_IDE is not set 517# CONFIG_IDE is not set
500 518
@@ -543,6 +561,9 @@ CONFIG_PHYLIB=y
543CONFIG_BROADCOM_PHY=y 561CONFIG_BROADCOM_PHY=y
544# CONFIG_ICPLUS_PHY is not set 562# CONFIG_ICPLUS_PHY is not set
545# CONFIG_REALTEK_PHY is not set 563# CONFIG_REALTEK_PHY is not set
564# CONFIG_NATIONAL_PHY is not set
565# CONFIG_STE10XP is not set
566# CONFIG_LSI_ET1011C_PHY is not set
546# CONFIG_FIXED_PHY is not set 567# CONFIG_FIXED_PHY is not set
547# CONFIG_MDIO_BITBANG is not set 568# CONFIG_MDIO_BITBANG is not set
548# CONFIG_NET_ETHERNET is not set 569# CONFIG_NET_ETHERNET is not set
@@ -566,7 +587,6 @@ CONFIG_NETDEV_1000=y
566# CONFIG_GIANFAR is not set 587# CONFIG_GIANFAR is not set
567CONFIG_UCC_GETH=y 588CONFIG_UCC_GETH=y
568# CONFIG_UGETH_MAGIC_PACKET is not set 589# CONFIG_UGETH_MAGIC_PACKET is not set
569# CONFIG_UGETH_FILTERING is not set
570# CONFIG_UGETH_TX_ON_DEMAND is not set 590# CONFIG_UGETH_TX_ON_DEMAND is not set
571# CONFIG_MV643XX_ETH is not set 591# CONFIG_MV643XX_ETH is not set
572# CONFIG_QLA3XXX is not set 592# CONFIG_QLA3XXX is not set
@@ -582,6 +602,10 @@ CONFIG_UCC_GETH=y
582# CONFIG_WLAN_PRE80211 is not set 602# CONFIG_WLAN_PRE80211 is not set
583# CONFIG_WLAN_80211 is not set 603# CONFIG_WLAN_80211 is not set
584# CONFIG_IWLWIFI_LEDS is not set 604# CONFIG_IWLWIFI_LEDS is not set
605
606#
607# Enable WiMAX (Networking options) to see the WiMAX drivers
608#
585# CONFIG_WAN is not set 609# CONFIG_WAN is not set
586# CONFIG_FDDI is not set 610# CONFIG_FDDI is not set
587# CONFIG_HIPPI is not set 611# CONFIG_HIPPI is not set
@@ -656,8 +680,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
656# CONFIG_SERIAL_OF_PLATFORM is not set 680# CONFIG_SERIAL_OF_PLATFORM is not set
657CONFIG_SERIAL_QE=y 681CONFIG_SERIAL_QE=y
658CONFIG_UNIX98_PTYS=y 682CONFIG_UNIX98_PTYS=y
683# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
659CONFIG_LEGACY_PTYS=y 684CONFIG_LEGACY_PTYS=y
660CONFIG_LEGACY_PTY_COUNT=256 685CONFIG_LEGACY_PTY_COUNT=256
686# CONFIG_HVC_UDBG is not set
661# CONFIG_IPMI_HANDLER is not set 687# CONFIG_IPMI_HANDLER is not set
662CONFIG_HW_RANDOM=y 688CONFIG_HW_RANDOM=y
663# CONFIG_NVRAM is not set 689# CONFIG_NVRAM is not set
@@ -723,16 +749,14 @@ CONFIG_I2C_MPC=y
723# Miscellaneous I2C Chip support 749# Miscellaneous I2C Chip support
724# 750#
725# CONFIG_DS1682 is not set 751# CONFIG_DS1682 is not set
726# CONFIG_AT24 is not set 752# CONFIG_EEPROM_AT24 is not set
727# CONFIG_SENSORS_EEPROM is not set 753# CONFIG_EEPROM_LEGACY is not set
728# CONFIG_SENSORS_PCF8574 is not set 754# CONFIG_SENSORS_PCF8574 is not set
729# CONFIG_PCF8575 is not set 755# CONFIG_PCF8575 is not set
730# CONFIG_SENSORS_PCA9539 is not set 756# CONFIG_SENSORS_PCA9539 is not set
731# CONFIG_SENSORS_PCF8591 is not set 757# CONFIG_SENSORS_PCF8591 is not set
732# CONFIG_TPS65010 is not set
733# CONFIG_SENSORS_MAX6875 is not set 758# CONFIG_SENSORS_MAX6875 is not set
734# CONFIG_SENSORS_TSL2550 is not set 759# CONFIG_SENSORS_TSL2550 is not set
735# CONFIG_MCU_MPC8349EMITX is not set
736# CONFIG_I2C_DEBUG_CORE is not set 760# CONFIG_I2C_DEBUG_CORE is not set
737# CONFIG_I2C_DEBUG_ALGO is not set 761# CONFIG_I2C_DEBUG_ALGO is not set
738# CONFIG_I2C_DEBUG_BUS is not set 762# CONFIG_I2C_DEBUG_BUS is not set
@@ -744,12 +768,13 @@ CONFIG_SPI_MASTER=y
744# SPI Master Controller Drivers 768# SPI Master Controller Drivers
745# 769#
746CONFIG_SPI_BITBANG=y 770CONFIG_SPI_BITBANG=y
771# CONFIG_SPI_GPIO is not set
747CONFIG_SPI_MPC83xx=y 772CONFIG_SPI_MPC83xx=y
748 773
749# 774#
750# SPI Protocol Masters 775# SPI Protocol Masters
751# 776#
752# CONFIG_SPI_AT25 is not set 777# CONFIG_EEPROM_AT25 is not set
753CONFIG_SPI_SPIDEV=y 778CONFIG_SPI_SPIDEV=y
754# CONFIG_SPI_TLE62X0 is not set 779# CONFIG_SPI_TLE62X0 is not set
755CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 780CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -758,6 +783,11 @@ CONFIG_GPIOLIB=y
758# CONFIG_GPIO_SYSFS is not set 783# CONFIG_GPIO_SYSFS is not set
759 784
760# 785#
786# Memory mapped GPIO expanders:
787#
788# CONFIG_GPIO_XILINX is not set
789
790#
761# I2C GPIO expanders: 791# I2C GPIO expanders:
762# 792#
763# CONFIG_GPIO_MAX732X is not set 793# CONFIG_GPIO_MAX732X is not set
@@ -794,11 +824,11 @@ CONFIG_WATCHDOG=y
794# 824#
795# CONFIG_PCIPCWATCHDOG is not set 825# CONFIG_PCIPCWATCHDOG is not set
796# CONFIG_WDTPCI is not set 826# CONFIG_WDTPCI is not set
827CONFIG_SSB_POSSIBLE=y
797 828
798# 829#
799# Sonics Silicon Backplane 830# Sonics Silicon Backplane
800# 831#
801CONFIG_SSB_POSSIBLE=y
802# CONFIG_SSB is not set 832# CONFIG_SSB is not set
803 833
804# 834#
@@ -807,18 +837,14 @@ CONFIG_SSB_POSSIBLE=y
807# CONFIG_MFD_CORE is not set 837# CONFIG_MFD_CORE is not set
808# CONFIG_MFD_SM501 is not set 838# CONFIG_MFD_SM501 is not set
809# CONFIG_HTC_PASIC3 is not set 839# CONFIG_HTC_PASIC3 is not set
840# CONFIG_TPS65010 is not set
841# CONFIG_TWL4030_CORE is not set
810# CONFIG_MFD_TMIO is not set 842# CONFIG_MFD_TMIO is not set
811# CONFIG_PMIC_DA903X is not set 843# CONFIG_PMIC_DA903X is not set
812# CONFIG_MFD_WM8400 is not set 844# CONFIG_MFD_WM8400 is not set
813# CONFIG_MFD_WM8350_I2C is not set 845# CONFIG_MFD_WM8350_I2C is not set
814 846# CONFIG_MFD_PCF50633 is not set
815#
816# Voltage and Current regulators
817#
818# CONFIG_REGULATOR is not set 847# CONFIG_REGULATOR is not set
819# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
820# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
821# CONFIG_REGULATOR_BQ24022 is not set
822 848
823# 849#
824# Multimedia devices 850# Multimedia devices
@@ -897,6 +923,7 @@ CONFIG_FB_OF=y
897# CONFIG_FB_IBM_GXT4500 is not set 923# CONFIG_FB_IBM_GXT4500 is not set
898# CONFIG_FB_VIRTUAL is not set 924# CONFIG_FB_VIRTUAL is not set
899# CONFIG_FB_METRONOME is not set 925# CONFIG_FB_METRONOME is not set
926# CONFIG_FB_MB862XX is not set
900# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 927# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
901 928
902# 929#
@@ -962,6 +989,7 @@ CONFIG_FS_MBCACHE=y
962CONFIG_FILE_LOCKING=y 989CONFIG_FILE_LOCKING=y
963# CONFIG_XFS_FS is not set 990# CONFIG_XFS_FS is not set
964# CONFIG_OCFS2_FS is not set 991# CONFIG_OCFS2_FS is not set
992# CONFIG_BTRFS_FS is not set
965CONFIG_DNOTIFY=y 993CONFIG_DNOTIFY=y
966CONFIG_INOTIFY=y 994CONFIG_INOTIFY=y
967CONFIG_INOTIFY_USER=y 995CONFIG_INOTIFY_USER=y
@@ -995,10 +1023,7 @@ CONFIG_TMPFS=y
995# CONFIG_TMPFS_POSIX_ACL is not set 1023# CONFIG_TMPFS_POSIX_ACL is not set
996# CONFIG_HUGETLB_PAGE is not set 1024# CONFIG_HUGETLB_PAGE is not set
997# CONFIG_CONFIGFS_FS is not set 1025# CONFIG_CONFIGFS_FS is not set
998 1026CONFIG_MISC_FILESYSTEMS=y
999#
1000# Miscellaneous filesystems
1001#
1002# CONFIG_ADFS_FS is not set 1027# CONFIG_ADFS_FS is not set
1003# CONFIG_AFFS_FS is not set 1028# CONFIG_AFFS_FS is not set
1004# CONFIG_HFS_FS is not set 1029# CONFIG_HFS_FS is not set
@@ -1018,6 +1043,7 @@ CONFIG_JFFS2_ZLIB=y
1018CONFIG_JFFS2_RTIME=y 1043CONFIG_JFFS2_RTIME=y
1019# CONFIG_JFFS2_RUBIN is not set 1044# CONFIG_JFFS2_RUBIN is not set
1020# CONFIG_CRAMFS is not set 1045# CONFIG_CRAMFS is not set
1046# CONFIG_SQUASHFS is not set
1021# CONFIG_VXFS_FS is not set 1047# CONFIG_VXFS_FS is not set
1022# CONFIG_MINIX_FS is not set 1048# CONFIG_MINIX_FS is not set
1023# CONFIG_OMFS_FS is not set 1049# CONFIG_OMFS_FS is not set
@@ -1074,6 +1100,7 @@ CONFIG_UCC=y
1074# Library routines 1100# Library routines
1075# 1101#
1076CONFIG_BITREVERSE=y 1102CONFIG_BITREVERSE=y
1103CONFIG_GENERIC_FIND_LAST_BIT=y
1077# CONFIG_CRC_CCITT is not set 1104# CONFIG_CRC_CCITT is not set
1078# CONFIG_CRC16 is not set 1105# CONFIG_CRC16 is not set
1079# CONFIG_CRC_T10DIF is not set 1106# CONFIG_CRC_T10DIF is not set
@@ -1109,6 +1136,8 @@ CONFIG_FRAME_WARN=1024
1109# CONFIG_LATENCYTOP is not set 1136# CONFIG_LATENCYTOP is not set
1110CONFIG_SYSCTL_SYSCALL_CHECK=y 1137CONFIG_SYSCTL_SYSCALL_CHECK=y
1111CONFIG_HAVE_FUNCTION_TRACER=y 1138CONFIG_HAVE_FUNCTION_TRACER=y
1139CONFIG_HAVE_DYNAMIC_FTRACE=y
1140CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1112 1141
1113# 1142#
1114# Tracers 1143# Tracers
@@ -1116,6 +1145,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1116# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1145# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1117# CONFIG_SAMPLES is not set 1146# CONFIG_SAMPLES is not set
1118CONFIG_HAVE_ARCH_KGDB=y 1147CONFIG_HAVE_ARCH_KGDB=y
1148CONFIG_PRINT_STACK_DEPTH=64
1119# CONFIG_IRQSTACKS is not set 1149# CONFIG_IRQSTACKS is not set
1120# CONFIG_BOOTX_TEXT is not set 1150# CONFIG_BOOTX_TEXT is not set
1121CONFIG_PPC_EARLY_DEBUG=y 1151CONFIG_PPC_EARLY_DEBUG=y
@@ -1145,11 +1175,15 @@ CONFIG_CRYPTO=y
1145# 1175#
1146# CONFIG_CRYPTO_FIPS is not set 1176# CONFIG_CRYPTO_FIPS is not set
1147CONFIG_CRYPTO_ALGAPI=y 1177CONFIG_CRYPTO_ALGAPI=y
1148CONFIG_CRYPTO_AEAD=y 1178CONFIG_CRYPTO_ALGAPI2=y
1179CONFIG_CRYPTO_AEAD2=y
1149CONFIG_CRYPTO_BLKCIPHER=y 1180CONFIG_CRYPTO_BLKCIPHER=y
1181CONFIG_CRYPTO_BLKCIPHER2=y
1150CONFIG_CRYPTO_HASH=y 1182CONFIG_CRYPTO_HASH=y
1151CONFIG_CRYPTO_RNG=y 1183CONFIG_CRYPTO_HASH2=y
1184CONFIG_CRYPTO_RNG2=y
1152CONFIG_CRYPTO_MANAGER=y 1185CONFIG_CRYPTO_MANAGER=y
1186CONFIG_CRYPTO_MANAGER2=y
1153# CONFIG_CRYPTO_GF128MUL is not set 1187# CONFIG_CRYPTO_GF128MUL is not set
1154# CONFIG_CRYPTO_NULL is not set 1188# CONFIG_CRYPTO_NULL is not set
1155# CONFIG_CRYPTO_CRYPTD is not set 1189# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index f6350d7e1688..e42f6b3917d2 100644
--- a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_mds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:00 2008 4# Mon Jan 26 15:35:59 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 113# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -124,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 127CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 133CONFIG_BLOCK=y
137# CONFIG_LBD is not set 134# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
142 138
@@ -153,6 +149,10 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
155CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
157 157
158# 158#
@@ -199,6 +199,8 @@ CONFIG_IPIC=y
199# CONFIG_QUICC_ENGINE is not set 199# CONFIG_QUICC_ENGINE is not set
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_MPC8xxx_GPIO is not set 201# CONFIG_MPC8xxx_GPIO is not set
202# CONFIG_SIMPLE_GPIO is not set
203# CONFIG_MCU_MPC8349EMITX is not set
202 204
203# 205#
204# Kernel options 206# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +271,7 @@ CONFIG_PCI_SYSCALL=y
266CONFIG_ARCH_SUPPORTS_MSI=y 271CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -344,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
346# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
347 355
348# 356#
349# Network testing 357# Network testing
@@ -359,8 +367,9 @@ CONFIG_WIRELESS=y
359# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y 368CONFIG_WIRELESS_OLD_REGULATORY=y
361# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
362# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
363# CONFIG_IEEE80211 is not set 372# CONFIG_WIMAX is not set
364# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
365# CONFIG_NET_9P is not set 374# CONFIG_NET_9P is not set
366 375
@@ -404,8 +413,10 @@ CONFIG_MISC_DEVICES=y
404# CONFIG_EEPROM_93CX6 is not set 413# CONFIG_EEPROM_93CX6 is not set
405# CONFIG_SGI_IOC4 is not set 414# CONFIG_SGI_IOC4 is not set
406# CONFIG_TIFM_CORE is not set 415# CONFIG_TIFM_CORE is not set
416# CONFIG_ICS932S401 is not set
407# CONFIG_ENCLOSURE_SERVICES is not set 417# CONFIG_ENCLOSURE_SERVICES is not set
408# CONFIG_HP_ILO is not set 418# CONFIG_HP_ILO is not set
419# CONFIG_C2PORT is not set
409CONFIG_HAVE_IDE=y 420CONFIG_HAVE_IDE=y
410# CONFIG_IDE is not set 421# CONFIG_IDE is not set
411 422
@@ -448,6 +459,7 @@ CONFIG_SCSI_WAIT_SCAN=m
448# CONFIG_SCSI_SRP_ATTRS is not set 459# CONFIG_SCSI_SRP_ATTRS is not set
449CONFIG_SCSI_LOWLEVEL=y 460CONFIG_SCSI_LOWLEVEL=y
450# CONFIG_ISCSI_TCP is not set 461# CONFIG_ISCSI_TCP is not set
462# CONFIG_SCSI_CXGB3_ISCSI is not set
451# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 463# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
452# CONFIG_SCSI_3W_9XXX is not set 464# CONFIG_SCSI_3W_9XXX is not set
453# CONFIG_SCSI_ACARD is not set 465# CONFIG_SCSI_ACARD is not set
@@ -464,6 +476,8 @@ CONFIG_SCSI_LOWLEVEL=y
464# CONFIG_MEGARAID_SAS is not set 476# CONFIG_MEGARAID_SAS is not set
465# CONFIG_SCSI_HPTIOP is not set 477# CONFIG_SCSI_HPTIOP is not set
466# CONFIG_SCSI_BUSLOGIC is not set 478# CONFIG_SCSI_BUSLOGIC is not set
479# CONFIG_LIBFC is not set
480# CONFIG_FCOE is not set
467# CONFIG_SCSI_DMX3191D is not set 481# CONFIG_SCSI_DMX3191D is not set
468# CONFIG_SCSI_EATA is not set 482# CONFIG_SCSI_EATA is not set
469# CONFIG_SCSI_FUTURE_DOMAIN is not set 483# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -583,6 +597,9 @@ CONFIG_MARVELL_PHY=y
583# CONFIG_BROADCOM_PHY is not set 597# CONFIG_BROADCOM_PHY is not set
584# CONFIG_ICPLUS_PHY is not set 598# CONFIG_ICPLUS_PHY is not set
585# CONFIG_REALTEK_PHY is not set 599# CONFIG_REALTEK_PHY is not set
600# CONFIG_NATIONAL_PHY is not set
601# CONFIG_STE10XP is not set
602# CONFIG_LSI_ET1011C_PHY is not set
586# CONFIG_FIXED_PHY is not set 603# CONFIG_FIXED_PHY is not set
587# CONFIG_MDIO_BITBANG is not set 604# CONFIG_MDIO_BITBANG is not set
588CONFIG_NET_ETHERNET=y 605CONFIG_NET_ETHERNET=y
@@ -628,6 +645,7 @@ CONFIG_GIANFAR=y
628# CONFIG_JME is not set 645# CONFIG_JME is not set
629CONFIG_NETDEV_10000=y 646CONFIG_NETDEV_10000=y
630# CONFIG_CHELSIO_T1 is not set 647# CONFIG_CHELSIO_T1 is not set
648CONFIG_CHELSIO_T3_DEPENDS=y
631# CONFIG_CHELSIO_T3 is not set 649# CONFIG_CHELSIO_T3 is not set
632# CONFIG_ENIC is not set 650# CONFIG_ENIC is not set
633# CONFIG_IXGBE is not set 651# CONFIG_IXGBE is not set
@@ -650,6 +668,10 @@ CONFIG_NETDEV_10000=y
650# CONFIG_WLAN_PRE80211 is not set 668# CONFIG_WLAN_PRE80211 is not set
651# CONFIG_WLAN_80211 is not set 669# CONFIG_WLAN_80211 is not set
652# CONFIG_IWLWIFI_LEDS is not set 670# CONFIG_IWLWIFI_LEDS is not set
671
672#
673# Enable WiMAX (Networking options) to see the WiMAX drivers
674#
653# CONFIG_WAN is not set 675# CONFIG_WAN is not set
654# CONFIG_FDDI is not set 676# CONFIG_FDDI is not set
655# CONFIG_HIPPI is not set 677# CONFIG_HIPPI is not set
@@ -720,8 +742,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
720# CONFIG_SERIAL_JSM is not set 742# CONFIG_SERIAL_JSM is not set
721# CONFIG_SERIAL_OF_PLATFORM is not set 743# CONFIG_SERIAL_OF_PLATFORM is not set
722CONFIG_UNIX98_PTYS=y 744CONFIG_UNIX98_PTYS=y
745# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
723CONFIG_LEGACY_PTYS=y 746CONFIG_LEGACY_PTYS=y
724CONFIG_LEGACY_PTY_COUNT=256 747CONFIG_LEGACY_PTY_COUNT=256
748# CONFIG_HVC_UDBG is not set
725# CONFIG_IPMI_HANDLER is not set 749# CONFIG_IPMI_HANDLER is not set
726# CONFIG_HW_RANDOM is not set 750# CONFIG_HW_RANDOM is not set
727# CONFIG_NVRAM is not set 751# CONFIG_NVRAM is not set
@@ -787,15 +811,14 @@ CONFIG_I2C_MPC=y
787# Miscellaneous I2C Chip support 811# Miscellaneous I2C Chip support
788# 812#
789# CONFIG_DS1682 is not set 813# CONFIG_DS1682 is not set
790# CONFIG_AT24 is not set 814# CONFIG_EEPROM_AT24 is not set
791# CONFIG_SENSORS_EEPROM is not set 815# CONFIG_EEPROM_LEGACY is not set
792# CONFIG_SENSORS_PCF8574 is not set 816# CONFIG_SENSORS_PCF8574 is not set
793# CONFIG_PCF8575 is not set 817# CONFIG_PCF8575 is not set
794# CONFIG_SENSORS_PCA9539 is not set 818# CONFIG_SENSORS_PCA9539 is not set
795# CONFIG_SENSORS_PCF8591 is not set 819# CONFIG_SENSORS_PCF8591 is not set
796# CONFIG_SENSORS_MAX6875 is not set 820# CONFIG_SENSORS_MAX6875 is not set
797# CONFIG_SENSORS_TSL2550 is not set 821# CONFIG_SENSORS_TSL2550 is not set
798# CONFIG_MCU_MPC8349EMITX is not set
799# CONFIG_I2C_DEBUG_CORE is not set 822# CONFIG_I2C_DEBUG_CORE is not set
800# CONFIG_I2C_DEBUG_ALGO is not set 823# CONFIG_I2C_DEBUG_ALGO is not set
801# CONFIG_I2C_DEBUG_BUS is not set 824# CONFIG_I2C_DEBUG_BUS is not set
@@ -815,8 +838,10 @@ CONFIG_HWMON=y
815# CONFIG_SENSORS_ADM1029 is not set 838# CONFIG_SENSORS_ADM1029 is not set
816# CONFIG_SENSORS_ADM1031 is not set 839# CONFIG_SENSORS_ADM1031 is not set
817# CONFIG_SENSORS_ADM9240 is not set 840# CONFIG_SENSORS_ADM9240 is not set
841# CONFIG_SENSORS_ADT7462 is not set
818# CONFIG_SENSORS_ADT7470 is not set 842# CONFIG_SENSORS_ADT7470 is not set
819# CONFIG_SENSORS_ADT7473 is not set 843# CONFIG_SENSORS_ADT7473 is not set
844# CONFIG_SENSORS_ADT7475 is not set
820# CONFIG_SENSORS_ATXP1 is not set 845# CONFIG_SENSORS_ATXP1 is not set
821# CONFIG_SENSORS_DS1621 is not set 846# CONFIG_SENSORS_DS1621 is not set
822# CONFIG_SENSORS_I5K_AMB is not set 847# CONFIG_SENSORS_I5K_AMB is not set
@@ -837,6 +862,7 @@ CONFIG_HWMON=y
837# CONFIG_SENSORS_LM90 is not set 862# CONFIG_SENSORS_LM90 is not set
838# CONFIG_SENSORS_LM92 is not set 863# CONFIG_SENSORS_LM92 is not set
839# CONFIG_SENSORS_LM93 is not set 864# CONFIG_SENSORS_LM93 is not set
865# CONFIG_SENSORS_LTC4245 is not set
840# CONFIG_SENSORS_MAX1619 is not set 866# CONFIG_SENSORS_MAX1619 is not set
841# CONFIG_SENSORS_MAX6650 is not set 867# CONFIG_SENSORS_MAX6650 is not set
842# CONFIG_SENSORS_PC87360 is not set 868# CONFIG_SENSORS_PC87360 is not set
@@ -877,11 +903,11 @@ CONFIG_WATCHDOG=y
877# 903#
878# CONFIG_PCIPCWATCHDOG is not set 904# CONFIG_PCIPCWATCHDOG is not set
879# CONFIG_WDTPCI is not set 905# CONFIG_WDTPCI is not set
906CONFIG_SSB_POSSIBLE=y
880 907
881# 908#
882# Sonics Silicon Backplane 909# Sonics Silicon Backplane
883# 910#
884CONFIG_SSB_POSSIBLE=y
885# CONFIG_SSB is not set 911# CONFIG_SSB is not set
886 912
887# 913#
@@ -890,18 +916,13 @@ CONFIG_SSB_POSSIBLE=y
890# CONFIG_MFD_CORE is not set 916# CONFIG_MFD_CORE is not set
891# CONFIG_MFD_SM501 is not set 917# CONFIG_MFD_SM501 is not set
892# CONFIG_HTC_PASIC3 is not set 918# CONFIG_HTC_PASIC3 is not set
919# CONFIG_TWL4030_CORE is not set
893# CONFIG_MFD_TMIO is not set 920# CONFIG_MFD_TMIO is not set
894# CONFIG_PMIC_DA903X is not set 921# CONFIG_PMIC_DA903X is not set
895# CONFIG_MFD_WM8400 is not set 922# CONFIG_MFD_WM8400 is not set
896# CONFIG_MFD_WM8350_I2C is not set 923# CONFIG_MFD_WM8350_I2C is not set
897 924# CONFIG_MFD_PCF50633 is not set
898#
899# Voltage and Current regulators
900#
901# CONFIG_REGULATOR is not set 925# CONFIG_REGULATOR is not set
902# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
903# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
904# CONFIG_REGULATOR_BQ24022 is not set
905 926
906# 927#
907# Multimedia devices 928# Multimedia devices
@@ -957,9 +978,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
957# 978#
958 979
959# 980#
960# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 981# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
961# 982#
962# CONFIG_USB_GADGET is not set 983# CONFIG_USB_GADGET is not set
984
985#
986# OTG and related infrastructure
987#
963# CONFIG_UWB is not set 988# CONFIG_UWB is not set
964# CONFIG_MMC is not set 989# CONFIG_MMC is not set
965# CONFIG_MEMSTICK is not set 990# CONFIG_MEMSTICK is not set
@@ -991,6 +1016,7 @@ CONFIG_FS_MBCACHE=y
991CONFIG_FILE_LOCKING=y 1016CONFIG_FILE_LOCKING=y
992# CONFIG_XFS_FS is not set 1017# CONFIG_XFS_FS is not set
993# CONFIG_OCFS2_FS is not set 1018# CONFIG_OCFS2_FS is not set
1019# CONFIG_BTRFS_FS is not set
994CONFIG_DNOTIFY=y 1020CONFIG_DNOTIFY=y
995CONFIG_INOTIFY=y 1021CONFIG_INOTIFY=y
996CONFIG_INOTIFY_USER=y 1022CONFIG_INOTIFY_USER=y
@@ -1024,10 +1050,7 @@ CONFIG_TMPFS=y
1024# CONFIG_TMPFS_POSIX_ACL is not set 1050# CONFIG_TMPFS_POSIX_ACL is not set
1025# CONFIG_HUGETLB_PAGE is not set 1051# CONFIG_HUGETLB_PAGE is not set
1026# CONFIG_CONFIGFS_FS is not set 1052# CONFIG_CONFIGFS_FS is not set
1027 1053CONFIG_MISC_FILESYSTEMS=y
1028#
1029# Miscellaneous filesystems
1030#
1031# CONFIG_ADFS_FS is not set 1054# CONFIG_ADFS_FS is not set
1032# CONFIG_AFFS_FS is not set 1055# CONFIG_AFFS_FS is not set
1033# CONFIG_HFS_FS is not set 1056# CONFIG_HFS_FS is not set
@@ -1036,6 +1059,7 @@ CONFIG_TMPFS=y
1036# CONFIG_BFS_FS is not set 1059# CONFIG_BFS_FS is not set
1037# CONFIG_EFS_FS is not set 1060# CONFIG_EFS_FS is not set
1038# CONFIG_CRAMFS is not set 1061# CONFIG_CRAMFS is not set
1062# CONFIG_SQUASHFS is not set
1039# CONFIG_VXFS_FS is not set 1063# CONFIG_VXFS_FS is not set
1040# CONFIG_MINIX_FS is not set 1064# CONFIG_MINIX_FS is not set
1041# CONFIG_OMFS_FS is not set 1065# CONFIG_OMFS_FS is not set
@@ -1093,6 +1117,7 @@ CONFIG_MSDOS_PARTITION=y
1093# Library routines 1117# Library routines
1094# 1118#
1095CONFIG_BITREVERSE=y 1119CONFIG_BITREVERSE=y
1120CONFIG_GENERIC_FIND_LAST_BIT=y
1096# CONFIG_CRC_CCITT is not set 1121# CONFIG_CRC_CCITT is not set
1097# CONFIG_CRC16 is not set 1122# CONFIG_CRC16 is not set
1098CONFIG_CRC_T10DIF=y 1123CONFIG_CRC_T10DIF=y
@@ -1124,6 +1149,8 @@ CONFIG_FRAME_WARN=1024
1124# CONFIG_LATENCYTOP is not set 1149# CONFIG_LATENCYTOP is not set
1125CONFIG_SYSCTL_SYSCALL_CHECK=y 1150CONFIG_SYSCTL_SYSCALL_CHECK=y
1126CONFIG_HAVE_FUNCTION_TRACER=y 1151CONFIG_HAVE_FUNCTION_TRACER=y
1152CONFIG_HAVE_DYNAMIC_FTRACE=y
1153CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1127 1154
1128# 1155#
1129# Tracers 1156# Tracers
@@ -1131,6 +1158,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1131# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1158# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1132# CONFIG_SAMPLES is not set 1159# CONFIG_SAMPLES is not set
1133CONFIG_HAVE_ARCH_KGDB=y 1160CONFIG_HAVE_ARCH_KGDB=y
1161CONFIG_PRINT_STACK_DEPTH=64
1134# CONFIG_IRQSTACKS is not set 1162# CONFIG_IRQSTACKS is not set
1135# CONFIG_BOOTX_TEXT is not set 1163# CONFIG_BOOTX_TEXT is not set
1136# CONFIG_PPC_EARLY_DEBUG is not set 1164# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1149,11 +1177,15 @@ CONFIG_CRYPTO=y
1149# 1177#
1150# CONFIG_CRYPTO_FIPS is not set 1178# CONFIG_CRYPTO_FIPS is not set
1151CONFIG_CRYPTO_ALGAPI=y 1179CONFIG_CRYPTO_ALGAPI=y
1152CONFIG_CRYPTO_AEAD=y 1180CONFIG_CRYPTO_ALGAPI2=y
1181CONFIG_CRYPTO_AEAD2=y
1153CONFIG_CRYPTO_BLKCIPHER=y 1182CONFIG_CRYPTO_BLKCIPHER=y
1183CONFIG_CRYPTO_BLKCIPHER2=y
1154CONFIG_CRYPTO_HASH=y 1184CONFIG_CRYPTO_HASH=y
1155CONFIG_CRYPTO_RNG=y 1185CONFIG_CRYPTO_HASH2=y
1186CONFIG_CRYPTO_RNG2=y
1156CONFIG_CRYPTO_MANAGER=y 1187CONFIG_CRYPTO_MANAGER=y
1188CONFIG_CRYPTO_MANAGER2=y
1157# CONFIG_CRYPTO_GF128MUL is not set 1189# CONFIG_CRYPTO_GF128MUL is not set
1158# CONFIG_CRYPTO_NULL is not set 1190# CONFIG_CRYPTO_NULL is not set
1159# CONFIG_CRYPTO_CRYPTD is not set 1191# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index f447de16f75d..408022f79a50 100644
--- a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_rdb_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:01 2008 4# Mon Jan 26 15:36:01 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 113# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -124,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 127CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 133CONFIG_BLOCK=y
137# CONFIG_LBD is not set 134# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
142 138
@@ -153,6 +149,10 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
155CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
157 157
158# 158#
@@ -199,6 +199,8 @@ CONFIG_IPIC=y
199# CONFIG_QUICC_ENGINE is not set 199# CONFIG_QUICC_ENGINE is not set
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_MPC8xxx_GPIO is not set 201# CONFIG_MPC8xxx_GPIO is not set
202# CONFIG_SIMPLE_GPIO is not set
203# CONFIG_MCU_MPC8349EMITX is not set
202 204
203# 205#
204# Kernel options 206# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +271,7 @@ CONFIG_PCI_SYSCALL=y
266CONFIG_ARCH_SUPPORTS_MSI=y 271CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -339,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_ECONET is not set 346# CONFIG_ECONET is not set
340# CONFIG_WAN_ROUTER is not set 347# CONFIG_WAN_ROUTER is not set
341# CONFIG_NET_SCHED is not set 348# CONFIG_NET_SCHED is not set
349# CONFIG_DCB is not set
342 350
343# 351#
344# Network testing 352# Network testing
@@ -354,8 +362,9 @@ CONFIG_WIRELESS=y
354# CONFIG_CFG80211 is not set 362# CONFIG_CFG80211 is not set
355CONFIG_WIRELESS_OLD_REGULATORY=y 363CONFIG_WIRELESS_OLD_REGULATORY=y
356# CONFIG_WIRELESS_EXT is not set 364# CONFIG_WIRELESS_EXT is not set
365# CONFIG_LIB80211 is not set
357# CONFIG_MAC80211 is not set 366# CONFIG_MAC80211 is not set
358# CONFIG_IEEE80211 is not set 367# CONFIG_WIMAX is not set
359# CONFIG_RFKILL is not set 368# CONFIG_RFKILL is not set
360# CONFIG_NET_9P is not set 369# CONFIG_NET_9P is not set
361 370
@@ -400,8 +409,10 @@ CONFIG_MISC_DEVICES=y
400# CONFIG_EEPROM_93CX6 is not set 409# CONFIG_EEPROM_93CX6 is not set
401# CONFIG_SGI_IOC4 is not set 410# CONFIG_SGI_IOC4 is not set
402# CONFIG_TIFM_CORE is not set 411# CONFIG_TIFM_CORE is not set
412# CONFIG_ICS932S401 is not set
403# CONFIG_ENCLOSURE_SERVICES is not set 413# CONFIG_ENCLOSURE_SERVICES is not set
404# CONFIG_HP_ILO is not set 414# CONFIG_HP_ILO is not set
415# CONFIG_C2PORT is not set
405CONFIG_HAVE_IDE=y 416CONFIG_HAVE_IDE=y
406# CONFIG_IDE is not set 417# CONFIG_IDE is not set
407 418
@@ -460,6 +471,8 @@ CONFIG_SCSI_LOWLEVEL=y
460# CONFIG_MEGARAID_SAS is not set 471# CONFIG_MEGARAID_SAS is not set
461# CONFIG_SCSI_HPTIOP is not set 472# CONFIG_SCSI_HPTIOP is not set
462# CONFIG_SCSI_BUSLOGIC is not set 473# CONFIG_SCSI_BUSLOGIC is not set
474# CONFIG_LIBFC is not set
475# CONFIG_FCOE is not set
463# CONFIG_SCSI_DMX3191D is not set 476# CONFIG_SCSI_DMX3191D is not set
464# CONFIG_SCSI_EATA is not set 477# CONFIG_SCSI_EATA is not set
465# CONFIG_SCSI_FUTURE_DOMAIN is not set 478# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -590,6 +603,9 @@ CONFIG_MARVELL_PHY=y
590# CONFIG_BROADCOM_PHY is not set 603# CONFIG_BROADCOM_PHY is not set
591# CONFIG_ICPLUS_PHY is not set 604# CONFIG_ICPLUS_PHY is not set
592# CONFIG_REALTEK_PHY is not set 605# CONFIG_REALTEK_PHY is not set
606# CONFIG_NATIONAL_PHY is not set
607# CONFIG_STE10XP is not set
608# CONFIG_LSI_ET1011C_PHY is not set
593CONFIG_FIXED_PHY=y 609CONFIG_FIXED_PHY=y
594# CONFIG_MDIO_BITBANG is not set 610# CONFIG_MDIO_BITBANG is not set
595CONFIG_NET_ETHERNET=y 611CONFIG_NET_ETHERNET=y
@@ -644,6 +660,10 @@ CONFIG_GIANFAR=y
644# CONFIG_IWLWIFI_LEDS is not set 660# CONFIG_IWLWIFI_LEDS is not set
645 661
646# 662#
663# Enable WiMAX (Networking options) to see the WiMAX drivers
664#
665
666#
647# USB Network Adapters 667# USB Network Adapters
648# 668#
649# CONFIG_USB_CATC is not set 669# CONFIG_USB_CATC is not set
@@ -721,8 +741,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
721# CONFIG_SERIAL_JSM is not set 741# CONFIG_SERIAL_JSM is not set
722# CONFIG_SERIAL_OF_PLATFORM is not set 742# CONFIG_SERIAL_OF_PLATFORM is not set
723CONFIG_UNIX98_PTYS=y 743CONFIG_UNIX98_PTYS=y
744# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
724CONFIG_LEGACY_PTYS=y 745CONFIG_LEGACY_PTYS=y
725CONFIG_LEGACY_PTY_COUNT=256 746CONFIG_LEGACY_PTY_COUNT=256
747# CONFIG_HVC_UDBG is not set
726# CONFIG_IPMI_HANDLER is not set 748# CONFIG_IPMI_HANDLER is not set
727# CONFIG_HW_RANDOM is not set 749# CONFIG_HW_RANDOM is not set
728# CONFIG_NVRAM is not set 750# CONFIG_NVRAM is not set
@@ -789,15 +811,14 @@ CONFIG_I2C_MPC=y
789# Miscellaneous I2C Chip support 811# Miscellaneous I2C Chip support
790# 812#
791# CONFIG_DS1682 is not set 813# CONFIG_DS1682 is not set
792# CONFIG_AT24 is not set 814# CONFIG_EEPROM_AT24 is not set
793# CONFIG_SENSORS_EEPROM is not set 815# CONFIG_EEPROM_LEGACY is not set
794# CONFIG_SENSORS_PCF8574 is not set 816# CONFIG_SENSORS_PCF8574 is not set
795# CONFIG_PCF8575 is not set 817# CONFIG_PCF8575 is not set
796# CONFIG_SENSORS_PCA9539 is not set 818# CONFIG_SENSORS_PCA9539 is not set
797# CONFIG_SENSORS_PCF8591 is not set 819# CONFIG_SENSORS_PCF8591 is not set
798# CONFIG_SENSORS_MAX6875 is not set 820# CONFIG_SENSORS_MAX6875 is not set
799# CONFIG_SENSORS_TSL2550 is not set 821# CONFIG_SENSORS_TSL2550 is not set
800# CONFIG_MCU_MPC8349EMITX is not set
801# CONFIG_I2C_DEBUG_CORE is not set 822# CONFIG_I2C_DEBUG_CORE is not set
802# CONFIG_I2C_DEBUG_ALGO is not set 823# CONFIG_I2C_DEBUG_ALGO is not set
803# CONFIG_I2C_DEBUG_BUS is not set 824# CONFIG_I2C_DEBUG_BUS is not set
@@ -817,8 +838,10 @@ CONFIG_HWMON=y
817# CONFIG_SENSORS_ADM1029 is not set 838# CONFIG_SENSORS_ADM1029 is not set
818# CONFIG_SENSORS_ADM1031 is not set 839# CONFIG_SENSORS_ADM1031 is not set
819# CONFIG_SENSORS_ADM9240 is not set 840# CONFIG_SENSORS_ADM9240 is not set
841# CONFIG_SENSORS_ADT7462 is not set
820# CONFIG_SENSORS_ADT7470 is not set 842# CONFIG_SENSORS_ADT7470 is not set
821# CONFIG_SENSORS_ADT7473 is not set 843# CONFIG_SENSORS_ADT7473 is not set
844# CONFIG_SENSORS_ADT7475 is not set
822# CONFIG_SENSORS_ATXP1 is not set 845# CONFIG_SENSORS_ATXP1 is not set
823# CONFIG_SENSORS_DS1621 is not set 846# CONFIG_SENSORS_DS1621 is not set
824# CONFIG_SENSORS_I5K_AMB is not set 847# CONFIG_SENSORS_I5K_AMB is not set
@@ -839,6 +862,7 @@ CONFIG_HWMON=y
839# CONFIG_SENSORS_LM90 is not set 862# CONFIG_SENSORS_LM90 is not set
840# CONFIG_SENSORS_LM92 is not set 863# CONFIG_SENSORS_LM92 is not set
841# CONFIG_SENSORS_LM93 is not set 864# CONFIG_SENSORS_LM93 is not set
865# CONFIG_SENSORS_LTC4245 is not set
842# CONFIG_SENSORS_MAX1619 is not set 866# CONFIG_SENSORS_MAX1619 is not set
843# CONFIG_SENSORS_MAX6650 is not set 867# CONFIG_SENSORS_MAX6650 is not set
844# CONFIG_SENSORS_PC87360 is not set 868# CONFIG_SENSORS_PC87360 is not set
@@ -884,11 +908,11 @@ CONFIG_WATCHDOG=y
884# USB-based Watchdog Cards 908# USB-based Watchdog Cards
885# 909#
886# CONFIG_USBPCWATCHDOG is not set 910# CONFIG_USBPCWATCHDOG is not set
911CONFIG_SSB_POSSIBLE=y
887 912
888# 913#
889# Sonics Silicon Backplane 914# Sonics Silicon Backplane
890# 915#
891CONFIG_SSB_POSSIBLE=y
892# CONFIG_SSB is not set 916# CONFIG_SSB is not set
893 917
894# 918#
@@ -897,18 +921,13 @@ CONFIG_SSB_POSSIBLE=y
897# CONFIG_MFD_CORE is not set 921# CONFIG_MFD_CORE is not set
898# CONFIG_MFD_SM501 is not set 922# CONFIG_MFD_SM501 is not set
899# CONFIG_HTC_PASIC3 is not set 923# CONFIG_HTC_PASIC3 is not set
924# CONFIG_TWL4030_CORE is not set
900# CONFIG_MFD_TMIO is not set 925# CONFIG_MFD_TMIO is not set
901# CONFIG_PMIC_DA903X is not set 926# CONFIG_PMIC_DA903X is not set
902# CONFIG_MFD_WM8400 is not set 927# CONFIG_MFD_WM8400 is not set
903# CONFIG_MFD_WM8350_I2C is not set 928# CONFIG_MFD_WM8350_I2C is not set
904 929# CONFIG_MFD_PCF50633 is not set
905#
906# Voltage and Current regulators
907#
908# CONFIG_REGULATOR is not set 930# CONFIG_REGULATOR is not set
909# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
910# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
911# CONFIG_REGULATOR_BQ24022 is not set
912 931
913# 932#
914# Multimedia devices 933# Multimedia devices
@@ -961,11 +980,9 @@ CONFIG_HID_COMPAT=y
961CONFIG_HID_A4TECH=y 980CONFIG_HID_A4TECH=y
962CONFIG_HID_APPLE=y 981CONFIG_HID_APPLE=y
963CONFIG_HID_BELKIN=y 982CONFIG_HID_BELKIN=y
964CONFIG_HID_BRIGHT=y
965CONFIG_HID_CHERRY=y 983CONFIG_HID_CHERRY=y
966CONFIG_HID_CHICONY=y 984CONFIG_HID_CHICONY=y
967CONFIG_HID_CYPRESS=y 985CONFIG_HID_CYPRESS=y
968CONFIG_HID_DELL=y
969CONFIG_HID_EZKEY=y 986CONFIG_HID_EZKEY=y
970CONFIG_HID_GYRATION=y 987CONFIG_HID_GYRATION=y
971CONFIG_HID_LOGITECH=y 988CONFIG_HID_LOGITECH=y
@@ -973,12 +990,15 @@ CONFIG_HID_LOGITECH=y
973# CONFIG_LOGIRUMBLEPAD2_FF is not set 990# CONFIG_LOGIRUMBLEPAD2_FF is not set
974CONFIG_HID_MICROSOFT=y 991CONFIG_HID_MICROSOFT=y
975CONFIG_HID_MONTEREY=y 992CONFIG_HID_MONTEREY=y
993# CONFIG_HID_NTRIG is not set
976CONFIG_HID_PANTHERLORD=y 994CONFIG_HID_PANTHERLORD=y
977# CONFIG_PANTHERLORD_FF is not set 995# CONFIG_PANTHERLORD_FF is not set
978CONFIG_HID_PETALYNX=y 996CONFIG_HID_PETALYNX=y
979CONFIG_HID_SAMSUNG=y 997CONFIG_HID_SAMSUNG=y
980CONFIG_HID_SONY=y 998CONFIG_HID_SONY=y
981CONFIG_HID_SUNPLUS=y 999CONFIG_HID_SUNPLUS=y
1000# CONFIG_GREENASIA_FF is not set
1001# CONFIG_HID_TOPSEED is not set
982CONFIG_THRUSTMASTER_FF=m 1002CONFIG_THRUSTMASTER_FF=m
983CONFIG_ZEROPLUS_FF=m 1003CONFIG_ZEROPLUS_FF=m
984CONFIG_USB_SUPPORT=y 1004CONFIG_USB_SUPPORT=y
@@ -1011,6 +1031,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1011# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1031# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1012CONFIG_USB_EHCI_FSL=y 1032CONFIG_USB_EHCI_FSL=y
1013CONFIG_USB_EHCI_HCD_PPC_OF=y 1033CONFIG_USB_EHCI_HCD_PPC_OF=y
1034# CONFIG_USB_OXU210HP_HCD is not set
1014# CONFIG_USB_ISP116X_HCD is not set 1035# CONFIG_USB_ISP116X_HCD is not set
1015# CONFIG_USB_ISP1760_HCD is not set 1036# CONFIG_USB_ISP1760_HCD is not set
1016# CONFIG_USB_OHCI_HCD is not set 1037# CONFIG_USB_OHCI_HCD is not set
@@ -1029,11 +1050,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1029# CONFIG_USB_TMC is not set 1050# CONFIG_USB_TMC is not set
1030 1051
1031# 1052#
1032# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1053# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1033# 1054#
1034 1055
1035# 1056#
1036# may also be needed; see USB_STORAGE Help for more information 1057# see USB_STORAGE Help for more information
1037# 1058#
1038# CONFIG_USB_STORAGE is not set 1059# CONFIG_USB_STORAGE is not set
1039# CONFIG_USB_LIBUSUAL is not set 1060# CONFIG_USB_LIBUSUAL is not set
@@ -1074,6 +1095,10 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1074# CONFIG_USB_ISIGHTFW is not set 1095# CONFIG_USB_ISIGHTFW is not set
1075# CONFIG_USB_VST is not set 1096# CONFIG_USB_VST is not set
1076# CONFIG_USB_GADGET is not set 1097# CONFIG_USB_GADGET is not set
1098
1099#
1100# OTG and related infrastructure
1101#
1077# CONFIG_UWB is not set 1102# CONFIG_UWB is not set
1078# CONFIG_MMC is not set 1103# CONFIG_MMC is not set
1079# CONFIG_MEMSTICK is not set 1104# CONFIG_MEMSTICK is not set
@@ -1105,6 +1130,7 @@ CONFIG_FS_MBCACHE=y
1105CONFIG_FILE_LOCKING=y 1130CONFIG_FILE_LOCKING=y
1106# CONFIG_XFS_FS is not set 1131# CONFIG_XFS_FS is not set
1107# CONFIG_OCFS2_FS is not set 1132# CONFIG_OCFS2_FS is not set
1133# CONFIG_BTRFS_FS is not set
1108CONFIG_DNOTIFY=y 1134CONFIG_DNOTIFY=y
1109CONFIG_INOTIFY=y 1135CONFIG_INOTIFY=y
1110CONFIG_INOTIFY_USER=y 1136CONFIG_INOTIFY_USER=y
@@ -1138,10 +1164,7 @@ CONFIG_TMPFS=y
1138# CONFIG_TMPFS_POSIX_ACL is not set 1164# CONFIG_TMPFS_POSIX_ACL is not set
1139# CONFIG_HUGETLB_PAGE is not set 1165# CONFIG_HUGETLB_PAGE is not set
1140# CONFIG_CONFIGFS_FS is not set 1166# CONFIG_CONFIGFS_FS is not set
1141 1167CONFIG_MISC_FILESYSTEMS=y
1142#
1143# Miscellaneous filesystems
1144#
1145# CONFIG_ADFS_FS is not set 1168# CONFIG_ADFS_FS is not set
1146# CONFIG_AFFS_FS is not set 1169# CONFIG_AFFS_FS is not set
1147# CONFIG_HFS_FS is not set 1170# CONFIG_HFS_FS is not set
@@ -1150,6 +1173,7 @@ CONFIG_TMPFS=y
1150# CONFIG_BFS_FS is not set 1173# CONFIG_BFS_FS is not set
1151# CONFIG_EFS_FS is not set 1174# CONFIG_EFS_FS is not set
1152# CONFIG_CRAMFS is not set 1175# CONFIG_CRAMFS is not set
1176# CONFIG_SQUASHFS is not set
1153# CONFIG_VXFS_FS is not set 1177# CONFIG_VXFS_FS is not set
1154# CONFIG_MINIX_FS is not set 1178# CONFIG_MINIX_FS is not set
1155# CONFIG_OMFS_FS is not set 1179# CONFIG_OMFS_FS is not set
@@ -1207,6 +1231,7 @@ CONFIG_MSDOS_PARTITION=y
1207# Library routines 1231# Library routines
1208# 1232#
1209CONFIG_BITREVERSE=y 1233CONFIG_BITREVERSE=y
1234CONFIG_GENERIC_FIND_LAST_BIT=y
1210# CONFIG_CRC_CCITT is not set 1235# CONFIG_CRC_CCITT is not set
1211# CONFIG_CRC16 is not set 1236# CONFIG_CRC16 is not set
1212CONFIG_CRC_T10DIF=y 1237CONFIG_CRC_T10DIF=y
@@ -1238,6 +1263,8 @@ CONFIG_FRAME_WARN=1024
1238# CONFIG_LATENCYTOP is not set 1263# CONFIG_LATENCYTOP is not set
1239CONFIG_SYSCTL_SYSCALL_CHECK=y 1264CONFIG_SYSCTL_SYSCALL_CHECK=y
1240CONFIG_HAVE_FUNCTION_TRACER=y 1265CONFIG_HAVE_FUNCTION_TRACER=y
1266CONFIG_HAVE_DYNAMIC_FTRACE=y
1267CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1241 1268
1242# 1269#
1243# Tracers 1270# Tracers
@@ -1245,6 +1272,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1245# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1272# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1246# CONFIG_SAMPLES is not set 1273# CONFIG_SAMPLES is not set
1247CONFIG_HAVE_ARCH_KGDB=y 1274CONFIG_HAVE_ARCH_KGDB=y
1275CONFIG_PRINT_STACK_DEPTH=64
1248# CONFIG_IRQSTACKS is not set 1276# CONFIG_IRQSTACKS is not set
1249# CONFIG_BOOTX_TEXT is not set 1277# CONFIG_BOOTX_TEXT is not set
1250# CONFIG_PPC_EARLY_DEBUG is not set 1278# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1267,11 +1295,15 @@ CONFIG_CRYPTO=y
1267# 1295#
1268# CONFIG_CRYPTO_FIPS is not set 1296# CONFIG_CRYPTO_FIPS is not set
1269CONFIG_CRYPTO_ALGAPI=y 1297CONFIG_CRYPTO_ALGAPI=y
1270CONFIG_CRYPTO_AEAD=y 1298CONFIG_CRYPTO_ALGAPI2=y
1299CONFIG_CRYPTO_AEAD2=y
1271CONFIG_CRYPTO_BLKCIPHER=y 1300CONFIG_CRYPTO_BLKCIPHER=y
1301CONFIG_CRYPTO_BLKCIPHER2=y
1272CONFIG_CRYPTO_HASH=y 1302CONFIG_CRYPTO_HASH=y
1273CONFIG_CRYPTO_RNG=y 1303CONFIG_CRYPTO_HASH2=y
1304CONFIG_CRYPTO_RNG2=y
1274CONFIG_CRYPTO_MANAGER=y 1305CONFIG_CRYPTO_MANAGER=y
1306CONFIG_CRYPTO_MANAGER2=y
1275# CONFIG_CRYPTO_GF128MUL is not set 1307# CONFIG_CRYPTO_GF128MUL is not set
1276# CONFIG_CRYPTO_NULL is not set 1308# CONFIG_CRYPTO_NULL is not set
1277# CONFIG_CRYPTO_CRYPTD is not set 1309# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index 8d2d7eeab5f5..a0c42fb65cb9 100644
--- a/arch/powerpc/configs/83xx/sbc834x_defconfig
+++ b/arch/powerpc/configs/83xx/sbc834x_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:02 2008 4# Mon Jan 26 15:36:02 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -112,7 +112,6 @@ CONFIG_SLAB=y
112# CONFIG_SLUB is not set 112# CONFIG_SLUB is not set
113# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 117CONFIG_HAVE_IOREMAP_PROT=y
@@ -122,7 +121,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 124CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 125CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 126# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +128,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 128# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 129# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 130# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 131CONFIG_BLOCK=y
135# CONFIG_LBD is not set 132# CONFIG_LBD is not set
136# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
140 136
@@ -151,6 +147,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
155 155
156# 156#
@@ -197,6 +197,8 @@ CONFIG_IPIC=y
197# CONFIG_QUICC_ENGINE is not set 197# CONFIG_QUICC_ENGINE is not set
198# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set 199# CONFIG_MPC8xxx_GPIO is not set
200# CONFIG_SIMPLE_GPIO is not set
201# CONFIG_MCU_MPC8349EMITX is not set
200 202
201# 203#
202# Kernel options 204# Kernel options
@@ -223,6 +225,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
223CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
225# CONFIG_KEXEC is not set 227# CONFIG_KEXEC is not set
228# CONFIG_CRASH_DUMP is not set
226CONFIG_ARCH_FLATMEM_ENABLE=y 229CONFIG_ARCH_FLATMEM_ENABLE=y
227CONFIG_ARCH_POPULATES_NODE_MAP=y 230CONFIG_ARCH_POPULATES_NODE_MAP=y
228CONFIG_SELECT_MEMORY_MODEL=y 231CONFIG_SELECT_MEMORY_MODEL=y
@@ -234,12 +237,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
234CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
235CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
236CONFIG_MIGRATION=y 239CONFIG_MIGRATION=y
237# CONFIG_RESOURCES_64BIT is not set
238# CONFIG_PHYS_ADDR_T_64BIT is not set 240# CONFIG_PHYS_ADDR_T_64BIT is not set
239CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
240CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
241CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
242CONFIG_UNEVICTABLE_LRU=y 244CONFIG_UNEVICTABLE_LRU=y
245CONFIG_PPC_4K_PAGES=y
246# CONFIG_PPC_16K_PAGES is not set
247# CONFIG_PPC_64K_PAGES is not set
243CONFIG_FORCE_MAX_ZONEORDER=11 248CONFIG_FORCE_MAX_ZONEORDER=11
244CONFIG_PROC_DEVICETREE=y 249CONFIG_PROC_DEVICETREE=y
245# CONFIG_CMDLINE_BOOL is not set 250# CONFIG_CMDLINE_BOOL is not set
@@ -264,6 +269,7 @@ CONFIG_PCI_SYSCALL=y
264CONFIG_ARCH_SUPPORTS_MSI=y 269CONFIG_ARCH_SUPPORTS_MSI=y
265# CONFIG_PCI_MSI is not set 270# CONFIG_PCI_MSI is not set
266# CONFIG_PCI_LEGACY is not set 271# CONFIG_PCI_LEGACY is not set
272# CONFIG_PCI_STUB is not set
267# CONFIG_PCCARD is not set 273# CONFIG_PCCARD is not set
268# CONFIG_HOTPLUG_PCI is not set 274# CONFIG_HOTPLUG_PCI is not set
269# CONFIG_HAS_RAPIDIO is not set 275# CONFIG_HAS_RAPIDIO is not set
@@ -286,6 +292,7 @@ CONFIG_NET=y
286# 292#
287# Networking options 293# Networking options
288# 294#
295CONFIG_COMPAT_NET_DEV_OPS=y
289CONFIG_PACKET=y 296CONFIG_PACKET=y
290# CONFIG_PACKET_MMAP is not set 297# CONFIG_PACKET_MMAP is not set
291CONFIG_UNIX=y 298CONFIG_UNIX=y
@@ -342,6 +349,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_ECONET is not set 349# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 350# CONFIG_WAN_ROUTER is not set
344# CONFIG_NET_SCHED is not set 351# CONFIG_NET_SCHED is not set
352# CONFIG_DCB is not set
345 353
346# 354#
347# Network testing 355# Network testing
@@ -357,8 +365,9 @@ CONFIG_WIRELESS=y
357# CONFIG_CFG80211 is not set 365# CONFIG_CFG80211 is not set
358CONFIG_WIRELESS_OLD_REGULATORY=y 366CONFIG_WIRELESS_OLD_REGULATORY=y
359# CONFIG_WIRELESS_EXT is not set 367# CONFIG_WIRELESS_EXT is not set
368# CONFIG_LIB80211 is not set
360# CONFIG_MAC80211 is not set 369# CONFIG_MAC80211 is not set
361# CONFIG_IEEE80211 is not set 370# CONFIG_WIMAX is not set
362# CONFIG_RFKILL is not set 371# CONFIG_RFKILL is not set
363# CONFIG_NET_9P is not set 372# CONFIG_NET_9P is not set
364 373
@@ -402,8 +411,10 @@ CONFIG_MISC_DEVICES=y
402# CONFIG_EEPROM_93CX6 is not set 411# CONFIG_EEPROM_93CX6 is not set
403# CONFIG_SGI_IOC4 is not set 412# CONFIG_SGI_IOC4 is not set
404# CONFIG_TIFM_CORE is not set 413# CONFIG_TIFM_CORE is not set
414# CONFIG_ICS932S401 is not set
405# CONFIG_ENCLOSURE_SERVICES is not set 415# CONFIG_ENCLOSURE_SERVICES is not set
406# CONFIG_HP_ILO is not set 416# CONFIG_HP_ILO is not set
417# CONFIG_C2PORT is not set
407CONFIG_HAVE_IDE=y 418CONFIG_HAVE_IDE=y
408# CONFIG_IDE is not set 419# CONFIG_IDE is not set
409 420
@@ -452,6 +463,9 @@ CONFIG_PHYLIB=y
452CONFIG_BROADCOM_PHY=y 463CONFIG_BROADCOM_PHY=y
453# CONFIG_ICPLUS_PHY is not set 464# CONFIG_ICPLUS_PHY is not set
454# CONFIG_REALTEK_PHY is not set 465# CONFIG_REALTEK_PHY is not set
466# CONFIG_NATIONAL_PHY is not set
467# CONFIG_STE10XP is not set
468# CONFIG_LSI_ET1011C_PHY is not set
455# CONFIG_FIXED_PHY is not set 469# CONFIG_FIXED_PHY is not set
456# CONFIG_MDIO_BITBANG is not set 470# CONFIG_MDIO_BITBANG is not set
457CONFIG_NET_ETHERNET=y 471CONFIG_NET_ETHERNET=y
@@ -504,6 +518,10 @@ CONFIG_GIANFAR=y
504# CONFIG_WLAN_PRE80211 is not set 518# CONFIG_WLAN_PRE80211 is not set
505# CONFIG_WLAN_80211 is not set 519# CONFIG_WLAN_80211 is not set
506# CONFIG_IWLWIFI_LEDS is not set 520# CONFIG_IWLWIFI_LEDS is not set
521
522#
523# Enable WiMAX (Networking options) to see the WiMAX drivers
524#
507# CONFIG_WAN is not set 525# CONFIG_WAN is not set
508# CONFIG_FDDI is not set 526# CONFIG_FDDI is not set
509# CONFIG_HIPPI is not set 527# CONFIG_HIPPI is not set
@@ -573,8 +591,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
573# CONFIG_SERIAL_JSM is not set 591# CONFIG_SERIAL_JSM is not set
574# CONFIG_SERIAL_OF_PLATFORM is not set 592# CONFIG_SERIAL_OF_PLATFORM is not set
575CONFIG_UNIX98_PTYS=y 593CONFIG_UNIX98_PTYS=y
594# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
576CONFIG_LEGACY_PTYS=y 595CONFIG_LEGACY_PTYS=y
577CONFIG_LEGACY_PTY_COUNT=256 596CONFIG_LEGACY_PTY_COUNT=256
597# CONFIG_HVC_UDBG is not set
578# CONFIG_IPMI_HANDLER is not set 598# CONFIG_IPMI_HANDLER is not set
579# CONFIG_HW_RANDOM is not set 599# CONFIG_HW_RANDOM is not set
580# CONFIG_NVRAM is not set 600# CONFIG_NVRAM is not set
@@ -640,15 +660,14 @@ CONFIG_I2C_MPC=y
640# Miscellaneous I2C Chip support 660# Miscellaneous I2C Chip support
641# 661#
642# CONFIG_DS1682 is not set 662# CONFIG_DS1682 is not set
643# CONFIG_AT24 is not set 663# CONFIG_EEPROM_AT24 is not set
644# CONFIG_SENSORS_EEPROM is not set 664# CONFIG_EEPROM_LEGACY is not set
645# CONFIG_SENSORS_PCF8574 is not set 665# CONFIG_SENSORS_PCF8574 is not set
646# CONFIG_PCF8575 is not set 666# CONFIG_PCF8575 is not set
647# CONFIG_SENSORS_PCA9539 is not set 667# CONFIG_SENSORS_PCA9539 is not set
648# CONFIG_SENSORS_PCF8591 is not set 668# CONFIG_SENSORS_PCF8591 is not set
649# CONFIG_SENSORS_MAX6875 is not set 669# CONFIG_SENSORS_MAX6875 is not set
650# CONFIG_SENSORS_TSL2550 is not set 670# CONFIG_SENSORS_TSL2550 is not set
651# CONFIG_MCU_MPC8349EMITX is not set
652# CONFIG_I2C_DEBUG_CORE is not set 671# CONFIG_I2C_DEBUG_CORE is not set
653# CONFIG_I2C_DEBUG_ALGO is not set 672# CONFIG_I2C_DEBUG_ALGO is not set
654# CONFIG_I2C_DEBUG_BUS is not set 673# CONFIG_I2C_DEBUG_BUS is not set
@@ -668,8 +687,10 @@ CONFIG_HWMON=y
668# CONFIG_SENSORS_ADM1029 is not set 687# CONFIG_SENSORS_ADM1029 is not set
669# CONFIG_SENSORS_ADM1031 is not set 688# CONFIG_SENSORS_ADM1031 is not set
670# CONFIG_SENSORS_ADM9240 is not set 689# CONFIG_SENSORS_ADM9240 is not set
690# CONFIG_SENSORS_ADT7462 is not set
671# CONFIG_SENSORS_ADT7470 is not set 691# CONFIG_SENSORS_ADT7470 is not set
672# CONFIG_SENSORS_ADT7473 is not set 692# CONFIG_SENSORS_ADT7473 is not set
693# CONFIG_SENSORS_ADT7475 is not set
673# CONFIG_SENSORS_ATXP1 is not set 694# CONFIG_SENSORS_ATXP1 is not set
674# CONFIG_SENSORS_DS1621 is not set 695# CONFIG_SENSORS_DS1621 is not set
675# CONFIG_SENSORS_I5K_AMB is not set 696# CONFIG_SENSORS_I5K_AMB is not set
@@ -690,6 +711,7 @@ CONFIG_HWMON=y
690# CONFIG_SENSORS_LM90 is not set 711# CONFIG_SENSORS_LM90 is not set
691# CONFIG_SENSORS_LM92 is not set 712# CONFIG_SENSORS_LM92 is not set
692# CONFIG_SENSORS_LM93 is not set 713# CONFIG_SENSORS_LM93 is not set
714# CONFIG_SENSORS_LTC4245 is not set
693# CONFIG_SENSORS_MAX1619 is not set 715# CONFIG_SENSORS_MAX1619 is not set
694# CONFIG_SENSORS_MAX6650 is not set 716# CONFIG_SENSORS_MAX6650 is not set
695# CONFIG_SENSORS_PC87360 is not set 717# CONFIG_SENSORS_PC87360 is not set
@@ -730,11 +752,11 @@ CONFIG_WATCHDOG=y
730# 752#
731# CONFIG_PCIPCWATCHDOG is not set 753# CONFIG_PCIPCWATCHDOG is not set
732# CONFIG_WDTPCI is not set 754# CONFIG_WDTPCI is not set
755CONFIG_SSB_POSSIBLE=y
733 756
734# 757#
735# Sonics Silicon Backplane 758# Sonics Silicon Backplane
736# 759#
737CONFIG_SSB_POSSIBLE=y
738# CONFIG_SSB is not set 760# CONFIG_SSB is not set
739 761
740# 762#
@@ -743,18 +765,13 @@ CONFIG_SSB_POSSIBLE=y
743# CONFIG_MFD_CORE is not set 765# CONFIG_MFD_CORE is not set
744# CONFIG_MFD_SM501 is not set 766# CONFIG_MFD_SM501 is not set
745# CONFIG_HTC_PASIC3 is not set 767# CONFIG_HTC_PASIC3 is not set
768# CONFIG_TWL4030_CORE is not set
746# CONFIG_MFD_TMIO is not set 769# CONFIG_MFD_TMIO is not set
747# CONFIG_PMIC_DA903X is not set 770# CONFIG_PMIC_DA903X is not set
748# CONFIG_MFD_WM8400 is not set 771# CONFIG_MFD_WM8400 is not set
749# CONFIG_MFD_WM8350_I2C is not set 772# CONFIG_MFD_WM8350_I2C is not set
750 773# CONFIG_MFD_PCF50633 is not set
751#
752# Voltage and Current regulators
753#
754# CONFIG_REGULATOR is not set 774# CONFIG_REGULATOR is not set
755# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
756# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
757# CONFIG_REGULATOR_BQ24022 is not set
758 775
759# 776#
760# Multimedia devices 777# Multimedia devices
@@ -822,6 +839,7 @@ CONFIG_HID_COMPAT=y
822CONFIG_FILE_LOCKING=y 839CONFIG_FILE_LOCKING=y
823# CONFIG_XFS_FS is not set 840# CONFIG_XFS_FS is not set
824# CONFIG_OCFS2_FS is not set 841# CONFIG_OCFS2_FS is not set
842# CONFIG_BTRFS_FS is not set
825CONFIG_DNOTIFY=y 843CONFIG_DNOTIFY=y
826CONFIG_INOTIFY=y 844CONFIG_INOTIFY=y
827CONFIG_INOTIFY_USER=y 845CONFIG_INOTIFY_USER=y
@@ -855,10 +873,7 @@ CONFIG_TMPFS=y
855# CONFIG_TMPFS_POSIX_ACL is not set 873# CONFIG_TMPFS_POSIX_ACL is not set
856# CONFIG_HUGETLB_PAGE is not set 874# CONFIG_HUGETLB_PAGE is not set
857# CONFIG_CONFIGFS_FS is not set 875# CONFIG_CONFIGFS_FS is not set
858 876CONFIG_MISC_FILESYSTEMS=y
859#
860# Miscellaneous filesystems
861#
862# CONFIG_ADFS_FS is not set 877# CONFIG_ADFS_FS is not set
863# CONFIG_AFFS_FS is not set 878# CONFIG_AFFS_FS is not set
864# CONFIG_HFS_FS is not set 879# CONFIG_HFS_FS is not set
@@ -867,6 +882,7 @@ CONFIG_TMPFS=y
867# CONFIG_BFS_FS is not set 882# CONFIG_BFS_FS is not set
868# CONFIG_EFS_FS is not set 883# CONFIG_EFS_FS is not set
869# CONFIG_CRAMFS is not set 884# CONFIG_CRAMFS is not set
885# CONFIG_SQUASHFS is not set
870# CONFIG_VXFS_FS is not set 886# CONFIG_VXFS_FS is not set
871# CONFIG_MINIX_FS is not set 887# CONFIG_MINIX_FS is not set
872# CONFIG_OMFS_FS is not set 888# CONFIG_OMFS_FS is not set
@@ -908,6 +924,7 @@ CONFIG_MSDOS_PARTITION=y
908# Library routines 924# Library routines
909# 925#
910CONFIG_BITREVERSE=y 926CONFIG_BITREVERSE=y
927CONFIG_GENERIC_FIND_LAST_BIT=y
911# CONFIG_CRC_CCITT is not set 928# CONFIG_CRC_CCITT is not set
912# CONFIG_CRC16 is not set 929# CONFIG_CRC16 is not set
913# CONFIG_CRC_T10DIF is not set 930# CONFIG_CRC_T10DIF is not set
@@ -939,6 +956,8 @@ CONFIG_FRAME_WARN=1024
939# CONFIG_LATENCYTOP is not set 956# CONFIG_LATENCYTOP is not set
940CONFIG_SYSCTL_SYSCALL_CHECK=y 957CONFIG_SYSCTL_SYSCALL_CHECK=y
941CONFIG_HAVE_FUNCTION_TRACER=y 958CONFIG_HAVE_FUNCTION_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
942 961
943# 962#
944# Tracers 963# Tracers
@@ -946,6 +965,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
946# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 965# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
947# CONFIG_SAMPLES is not set 966# CONFIG_SAMPLES is not set
948CONFIG_HAVE_ARCH_KGDB=y 967CONFIG_HAVE_ARCH_KGDB=y
968CONFIG_PRINT_STACK_DEPTH=64
949# CONFIG_IRQSTACKS is not set 969# CONFIG_IRQSTACKS is not set
950# CONFIG_BOOTX_TEXT is not set 970# CONFIG_BOOTX_TEXT is not set
951# CONFIG_PPC_EARLY_DEBUG is not set 971# CONFIG_PPC_EARLY_DEBUG is not set
@@ -964,11 +984,15 @@ CONFIG_CRYPTO=y
964# 984#
965# CONFIG_CRYPTO_FIPS is not set 985# CONFIG_CRYPTO_FIPS is not set
966CONFIG_CRYPTO_ALGAPI=y 986CONFIG_CRYPTO_ALGAPI=y
967CONFIG_CRYPTO_AEAD=y 987CONFIG_CRYPTO_ALGAPI2=y
988CONFIG_CRYPTO_AEAD2=y
968CONFIG_CRYPTO_BLKCIPHER=y 989CONFIG_CRYPTO_BLKCIPHER=y
990CONFIG_CRYPTO_BLKCIPHER2=y
969CONFIG_CRYPTO_HASH=y 991CONFIG_CRYPTO_HASH=y
970CONFIG_CRYPTO_RNG=y 992CONFIG_CRYPTO_HASH2=y
993CONFIG_CRYPTO_RNG2=y
971CONFIG_CRYPTO_MANAGER=y 994CONFIG_CRYPTO_MANAGER=y
995CONFIG_CRYPTO_MANAGER2=y
972# CONFIG_CRYPTO_GF128MUL is not set 996# CONFIG_CRYPTO_GF128MUL is not set
973# CONFIG_CRYPTO_NULL is not set 997# CONFIG_CRYPTO_NULL is not set
974# CONFIG_CRYPTO_CRYPTD is not set 998# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig
index 1af7b9e37b61..6479bb9f3f57 100644
--- a/arch/powerpc/configs/85xx/ksi8560_defconfig
+++ b/arch/powerpc/configs/85xx/ksi8560_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:03 2008 4# Mon Jan 26 15:36:03 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,8 +78,8 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80# CONFIG_GROUP_SCHED is not set 81# CONFIG_GROUP_SCHED is not set
82# CONFIG_CGROUPS is not set
81CONFIG_SYSFS_DEPRECATED=y 83CONFIG_SYSFS_DEPRECATED=y
82CONFIG_SYSFS_DEPRECATED_V2=y 84CONFIG_SYSFS_DEPRECATED_V2=y
83# CONFIG_RELAY is not set 85# CONFIG_RELAY is not set
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -122,13 +123,11 @@ CONFIG_HAVE_CLK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127# CONFIG_MODULES is not set 127# CONFIG_MODULES is not set
128CONFIG_BLOCK=y 128CONFIG_BLOCK=y
129# CONFIG_LBD is not set 129# CONFIG_LBD is not set
130# CONFIG_BLK_DEV_IO_TRACE is not set 130# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_BSG is not set 131# CONFIG_BLK_DEV_BSG is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set 132# CONFIG_BLK_DEV_INTEGRITY is not set
134 133
@@ -145,6 +144,10 @@ CONFIG_DEFAULT_AS=y
145# CONFIG_DEFAULT_NOOP is not set 144# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 145CONFIG_DEFAULT_IOSCHED="anticipatory"
147CONFIG_CLASSIC_RCU=y 146CONFIG_CLASSIC_RCU=y
147# CONFIG_TREE_RCU is not set
148# CONFIG_PREEMPT_RCU is not set
149# CONFIG_TREE_RCU_TRACE is not set
150# CONFIG_PREEMPT_RCU_TRACE is not set
148# CONFIG_FREEZER is not set 151# CONFIG_FREEZER is not set
149 152
150# 153#
@@ -185,6 +188,7 @@ CONFIG_CPM2=y
185# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
186CONFIG_CPM=y 189CONFIG_CPM=y
187# CONFIG_MPC8xxx_GPIO is not set 190# CONFIG_MPC8xxx_GPIO is not set
191# CONFIG_SIMPLE_GPIO is not set
188 192
189# 193#
190# Kernel options 194# Kernel options
@@ -222,12 +226,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 229# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 233CONFIG_UNEVICTABLE_LRU=y
234CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
232# CONFIG_PROC_DEVICETREE is not set 238# CONFIG_PROC_DEVICETREE is not set
233# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
@@ -268,6 +274,7 @@ CONFIG_NET=y
268# 274#
269# Networking options 275# Networking options
270# 276#
277CONFIG_COMPAT_NET_DEV_OPS=y
271CONFIG_PACKET=y 278CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 279# CONFIG_PACKET_MMAP is not set
273CONFIG_UNIX=y 280CONFIG_UNIX=y
@@ -324,6 +331,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_ECONET is not set 331# CONFIG_ECONET is not set
325# CONFIG_WAN_ROUTER is not set 332# CONFIG_WAN_ROUTER is not set
326# CONFIG_NET_SCHED is not set 333# CONFIG_NET_SCHED is not set
334# CONFIG_DCB is not set
327 335
328# 336#
329# Network testing 337# Network testing
@@ -339,8 +347,9 @@ CONFIG_WIRELESS=y
339# CONFIG_CFG80211 is not set 347# CONFIG_CFG80211 is not set
340CONFIG_WIRELESS_OLD_REGULATORY=y 348CONFIG_WIRELESS_OLD_REGULATORY=y
341# CONFIG_WIRELESS_EXT is not set 349# CONFIG_WIRELESS_EXT is not set
350# CONFIG_LIB80211 is not set
342# CONFIG_MAC80211 is not set 351# CONFIG_MAC80211 is not set
343# CONFIG_IEEE80211 is not set 352# CONFIG_WIMAX is not set
344# CONFIG_RFKILL is not set 353# CONFIG_RFKILL is not set
345# CONFIG_NET_9P is not set 354# CONFIG_NET_9P is not set
346 355
@@ -432,6 +441,12 @@ CONFIG_MTD_PHYSMAP_OF=y
432# CONFIG_MTD_ONENAND is not set 441# CONFIG_MTD_ONENAND is not set
433 442
434# 443#
444# LPDDR flash memory drivers
445#
446# CONFIG_MTD_LPDDR is not set
447# CONFIG_MTD_QINFO_PROBE is not set
448
449#
435# UBI - Unsorted block images 450# UBI - Unsorted block images
436# 451#
437# CONFIG_MTD_UBI is not set 452# CONFIG_MTD_UBI is not set
@@ -454,6 +469,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
454CONFIG_MISC_DEVICES=y 469CONFIG_MISC_DEVICES=y
455# CONFIG_EEPROM_93CX6 is not set 470# CONFIG_EEPROM_93CX6 is not set
456# CONFIG_ENCLOSURE_SERVICES is not set 471# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_C2PORT is not set
457CONFIG_HAVE_IDE=y 473CONFIG_HAVE_IDE=y
458CONFIG_IDE=y 474CONFIG_IDE=y
459 475
@@ -507,9 +523,12 @@ CONFIG_MARVELL_PHY=y
507# CONFIG_BROADCOM_PHY is not set 523# CONFIG_BROADCOM_PHY is not set
508# CONFIG_ICPLUS_PHY is not set 524# CONFIG_ICPLUS_PHY is not set
509# CONFIG_REALTEK_PHY is not set 525# CONFIG_REALTEK_PHY is not set
526# CONFIG_NATIONAL_PHY is not set
527# CONFIG_STE10XP is not set
528# CONFIG_LSI_ET1011C_PHY is not set
510# CONFIG_FIXED_PHY is not set 529# CONFIG_FIXED_PHY is not set
511CONFIG_MDIO_BITBANG=y 530CONFIG_MDIO_BITBANG=y
512# CONFIG_MDIO_OF_GPIO is not set 531# CONFIG_MDIO_GPIO is not set
513CONFIG_NET_ETHERNET=y 532CONFIG_NET_ETHERNET=y
514CONFIG_MII=y 533CONFIG_MII=y
515# CONFIG_IBM_NEW_EMAC_ZMII is not set 534# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -534,6 +553,10 @@ CONFIG_NETDEV_10000=y
534# CONFIG_WLAN_PRE80211 is not set 553# CONFIG_WLAN_PRE80211 is not set
535# CONFIG_WLAN_80211 is not set 554# CONFIG_WLAN_80211 is not set
536# CONFIG_IWLWIFI_LEDS is not set 555# CONFIG_IWLWIFI_LEDS is not set
556
557#
558# Enable WiMAX (Networking options) to see the WiMAX drivers
559#
537# CONFIG_WAN is not set 560# CONFIG_WAN is not set
538# CONFIG_PPP is not set 561# CONFIG_PPP is not set
539# CONFIG_SLIP is not set 562# CONFIG_SLIP is not set
@@ -595,8 +618,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
595CONFIG_SERIAL_CPM=y 618CONFIG_SERIAL_CPM=y
596CONFIG_SERIAL_CPM_CONSOLE=y 619CONFIG_SERIAL_CPM_CONSOLE=y
597CONFIG_UNIX98_PTYS=y 620CONFIG_UNIX98_PTYS=y
621# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
598CONFIG_LEGACY_PTYS=y 622CONFIG_LEGACY_PTYS=y
599CONFIG_LEGACY_PTY_COUNT=256 623CONFIG_LEGACY_PTY_COUNT=256
624# CONFIG_HVC_UDBG is not set
600# CONFIG_IPMI_HANDLER is not set 625# CONFIG_IPMI_HANDLER is not set
601CONFIG_HW_RANDOM=y 626CONFIG_HW_RANDOM=y
602# CONFIG_NVRAM is not set 627# CONFIG_NVRAM is not set
@@ -614,6 +639,11 @@ CONFIG_GPIOLIB=y
614# CONFIG_GPIO_SYSFS is not set 639# CONFIG_GPIO_SYSFS is not set
615 640
616# 641#
642# Memory mapped GPIO expanders:
643#
644# CONFIG_GPIO_XILINX is not set
645
646#
617# I2C GPIO expanders: 647# I2C GPIO expanders:
618# 648#
619 649
@@ -642,11 +672,11 @@ CONFIG_HWMON=y
642# CONFIG_THERMAL is not set 672# CONFIG_THERMAL is not set
643# CONFIG_THERMAL_HWMON is not set 673# CONFIG_THERMAL_HWMON is not set
644# CONFIG_WATCHDOG is not set 674# CONFIG_WATCHDOG is not set
675CONFIG_SSB_POSSIBLE=y
645 676
646# 677#
647# Sonics Silicon Backplane 678# Sonics Silicon Backplane
648# 679#
649CONFIG_SSB_POSSIBLE=y
650# CONFIG_SSB is not set 680# CONFIG_SSB is not set
651 681
652# 682#
@@ -656,14 +686,7 @@ CONFIG_SSB_POSSIBLE=y
656# CONFIG_MFD_SM501 is not set 686# CONFIG_MFD_SM501 is not set
657# CONFIG_HTC_PASIC3 is not set 687# CONFIG_HTC_PASIC3 is not set
658# CONFIG_MFD_TMIO is not set 688# CONFIG_MFD_TMIO is not set
659
660#
661# Voltage and Current regulators
662#
663# CONFIG_REGULATOR is not set 689# CONFIG_REGULATOR is not set
664# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
665# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
666# CONFIG_REGULATOR_BQ24022 is not set
667 690
668# 691#
669# Multimedia devices 692# Multimedia devices
@@ -716,9 +739,13 @@ CONFIG_USB_SUPPORT=y
716# 739#
717 740
718# 741#
719# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 742# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
720# 743#
721# CONFIG_USB_GADGET is not set 744# CONFIG_USB_GADGET is not set
745
746#
747# OTG and related infrastructure
748#
722# CONFIG_MMC is not set 749# CONFIG_MMC is not set
723# CONFIG_MEMSTICK is not set 750# CONFIG_MEMSTICK is not set
724# CONFIG_NEW_LEDS is not set 751# CONFIG_NEW_LEDS is not set
@@ -749,6 +776,7 @@ CONFIG_FS_MBCACHE=y
749CONFIG_FILE_LOCKING=y 776CONFIG_FILE_LOCKING=y
750# CONFIG_XFS_FS is not set 777# CONFIG_XFS_FS is not set
751# CONFIG_OCFS2_FS is not set 778# CONFIG_OCFS2_FS is not set
779# CONFIG_BTRFS_FS is not set
752CONFIG_DNOTIFY=y 780CONFIG_DNOTIFY=y
753CONFIG_INOTIFY=y 781CONFIG_INOTIFY=y
754CONFIG_INOTIFY_USER=y 782CONFIG_INOTIFY_USER=y
@@ -782,10 +810,7 @@ CONFIG_TMPFS=y
782# CONFIG_TMPFS_POSIX_ACL is not set 810# CONFIG_TMPFS_POSIX_ACL is not set
783# CONFIG_HUGETLB_PAGE is not set 811# CONFIG_HUGETLB_PAGE is not set
784# CONFIG_CONFIGFS_FS is not set 812# CONFIG_CONFIGFS_FS is not set
785 813CONFIG_MISC_FILESYSTEMS=y
786#
787# Miscellaneous filesystems
788#
789# CONFIG_ADFS_FS is not set 814# CONFIG_ADFS_FS is not set
790# CONFIG_AFFS_FS is not set 815# CONFIG_AFFS_FS is not set
791# CONFIG_HFS_FS is not set 816# CONFIG_HFS_FS is not set
@@ -795,6 +820,7 @@ CONFIG_TMPFS=y
795# CONFIG_EFS_FS is not set 820# CONFIG_EFS_FS is not set
796# CONFIG_JFFS2_FS is not set 821# CONFIG_JFFS2_FS is not set
797# CONFIG_CRAMFS is not set 822# CONFIG_CRAMFS is not set
823# CONFIG_SQUASHFS is not set
798# CONFIG_VXFS_FS is not set 824# CONFIG_VXFS_FS is not set
799# CONFIG_MINIX_FS is not set 825# CONFIG_MINIX_FS is not set
800# CONFIG_OMFS_FS is not set 826# CONFIG_OMFS_FS is not set
@@ -845,6 +871,7 @@ CONFIG_PARTITION_ADVANCED=y
845# Library routines 871# Library routines
846# 872#
847CONFIG_BITREVERSE=y 873CONFIG_BITREVERSE=y
874CONFIG_GENERIC_FIND_LAST_BIT=y
848# CONFIG_CRC_CCITT is not set 875# CONFIG_CRC_CCITT is not set
849# CONFIG_CRC16 is not set 876# CONFIG_CRC16 is not set
850# CONFIG_CRC_T10DIF is not set 877# CONFIG_CRC_T10DIF is not set
@@ -895,6 +922,7 @@ CONFIG_DEBUG_MUTEXES=y
895# CONFIG_DEBUG_MEMORY_INIT is not set 922# CONFIG_DEBUG_MEMORY_INIT is not set
896# CONFIG_DEBUG_LIST is not set 923# CONFIG_DEBUG_LIST is not set
897# CONFIG_DEBUG_SG is not set 924# CONFIG_DEBUG_SG is not set
925# CONFIG_DEBUG_NOTIFIERS is not set
898# CONFIG_BOOT_PRINTK_DELAY is not set 926# CONFIG_BOOT_PRINTK_DELAY is not set
899# CONFIG_RCU_TORTURE_TEST is not set 927# CONFIG_RCU_TORTURE_TEST is not set
900# CONFIG_RCU_CPU_STALL_DETECTOR is not set 928# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -904,6 +932,8 @@ CONFIG_DEBUG_MUTEXES=y
904# CONFIG_LATENCYTOP is not set 932# CONFIG_LATENCYTOP is not set
905CONFIG_SYSCTL_SYSCALL_CHECK=y 933CONFIG_SYSCTL_SYSCALL_CHECK=y
906CONFIG_HAVE_FUNCTION_TRACER=y 934CONFIG_HAVE_FUNCTION_TRACER=y
935CONFIG_HAVE_DYNAMIC_FTRACE=y
936CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
907 937
908# 938#
909# Tracers 939# Tracers
@@ -912,11 +942,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
912# CONFIG_SCHED_TRACER is not set 942# CONFIG_SCHED_TRACER is not set
913# CONFIG_CONTEXT_SWITCH_TRACER is not set 943# CONFIG_CONTEXT_SWITCH_TRACER is not set
914# CONFIG_BOOT_TRACER is not set 944# CONFIG_BOOT_TRACER is not set
945# CONFIG_TRACE_BRANCH_PROFILING is not set
915# CONFIG_STACK_TRACER is not set 946# CONFIG_STACK_TRACER is not set
916# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 947# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
917# CONFIG_SAMPLES is not set 948# CONFIG_SAMPLES is not set
918CONFIG_HAVE_ARCH_KGDB=y 949CONFIG_HAVE_ARCH_KGDB=y
919# CONFIG_KGDB is not set 950# CONFIG_KGDB is not set
951CONFIG_PRINT_STACK_DEPTH=64
920# CONFIG_DEBUG_STACKOVERFLOW is not set 952# CONFIG_DEBUG_STACKOVERFLOW is not set
921# CONFIG_DEBUG_STACK_USAGE is not set 953# CONFIG_DEBUG_STACK_USAGE is not set
922# CONFIG_DEBUG_PAGEALLOC is not set 954# CONFIG_DEBUG_PAGEALLOC is not set
@@ -943,6 +975,7 @@ CONFIG_CRYPTO=y
943# 975#
944# CONFIG_CRYPTO_FIPS is not set 976# CONFIG_CRYPTO_FIPS is not set
945# CONFIG_CRYPTO_MANAGER is not set 977# CONFIG_CRYPTO_MANAGER is not set
978# CONFIG_CRYPTO_MANAGER2 is not set
946# CONFIG_CRYPTO_GF128MUL is not set 979# CONFIG_CRYPTO_GF128MUL is not set
947# CONFIG_CRYPTO_NULL is not set 980# CONFIG_CRYPTO_NULL is not set
948# CONFIG_CRYPTO_CRYPTD is not set 981# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/mpc8536_ds_defconfig b/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
index e243e14a6708..e31b6a4732ed 100644
--- a/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8536_ds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:05 2008 4# Mon Jan 26 15:36:04 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -78,12 +80,12 @@ CONFIG_AUDIT=y
78CONFIG_IKCONFIG=y 80CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 81CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 82CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 83CONFIG_GROUP_SCHED=y
83# CONFIG_FAIR_GROUP_SCHED is not set 84# CONFIG_FAIR_GROUP_SCHED is not set
84# CONFIG_RT_GROUP_SCHED is not set 85# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 86CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 87# CONFIG_CGROUP_SCHED is not set
88# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 89CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 90CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_RELAY is not set 91# CONFIG_RELAY is not set
@@ -96,6 +98,7 @@ CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 98CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 100CONFIG_KALLSYMS_ALL=y
101CONFIG_KALLSYMS_STRIP_GENERATED=y
99CONFIG_KALLSYMS_EXTRA_PASS=y 102CONFIG_KALLSYMS_EXTRA_PASS=y
100CONFIG_HOTPLUG=y 103CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 104CONFIG_PRINTK=y
@@ -118,7 +121,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 121CONFIG_SLUB=y
119# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 125# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -129,7 +131,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
132# CONFIG_TINY_SHMEM is not set
133CONFIG_BASE_SMALL=0 134CONFIG_BASE_SMALL=0
134CONFIG_MODULES=y 135CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set 136# CONFIG_MODULE_FORCE_LOAD is not set
@@ -137,11 +138,9 @@ CONFIG_MODULE_UNLOAD=y
137CONFIG_MODULE_FORCE_UNLOAD=y 138CONFIG_MODULE_FORCE_UNLOAD=y
138CONFIG_MODVERSIONS=y 139CONFIG_MODVERSIONS=y
139# CONFIG_MODULE_SRCVERSION_ALL is not set 140# CONFIG_MODULE_SRCVERSION_ALL is not set
140CONFIG_KMOD=y
141CONFIG_BLOCK=y 141CONFIG_BLOCK=y
142CONFIG_LBD=y 142CONFIG_LBD=y
143# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
144# CONFIG_LSF is not set
145# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
147 146
@@ -158,6 +157,10 @@ CONFIG_DEFAULT_CFQ=y
158# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="cfq" 158CONFIG_DEFAULT_IOSCHED="cfq"
160CONFIG_CLASSIC_RCU=y 159CONFIG_CLASSIC_RCU=y
160# CONFIG_TREE_RCU is not set
161# CONFIG_PREEMPT_RCU is not set
162# CONFIG_TREE_RCU_TRACE is not set
163# CONFIG_PREEMPT_RCU_TRACE is not set
161# CONFIG_FREEZER is not set 164# CONFIG_FREEZER is not set
162 165
163# 166#
@@ -197,6 +200,7 @@ CONFIG_MPIC=y
197# CONFIG_CPM2 is not set 200# CONFIG_CPM2 is not set
198# CONFIG_FSL_ULI1575 is not set 201# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set 202# CONFIG_MPC8xxx_GPIO is not set
203# CONFIG_SIMPLE_GPIO is not set
200 204
201# 205#
202# Kernel options 206# Kernel options
@@ -235,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
235CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
236CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
237CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
240CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
244CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
245CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -265,6 +271,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
265# CONFIG_PCI_MSI is not set 271# CONFIG_PCI_MSI is not set
266# CONFIG_PCI_LEGACY is not set 272# CONFIG_PCI_LEGACY is not set
267# CONFIG_PCI_DEBUG is not set 273# CONFIG_PCI_DEBUG is not set
274# CONFIG_PCI_STUB is not set
268# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
269# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
270# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +295,7 @@ CONFIG_NET=y
288# 295#
289# Networking options 296# Networking options
290# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 299CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -376,6 +384,7 @@ CONFIG_SCTP_HMAC_MD5=y
376# CONFIG_ECONET is not set 384# CONFIG_ECONET is not set
377# CONFIG_WAN_ROUTER is not set 385# CONFIG_WAN_ROUTER is not set
378# CONFIG_NET_SCHED is not set 386# CONFIG_NET_SCHED is not set
387# CONFIG_DCB is not set
379 388
380# 389#
381# Network testing 390# Network testing
@@ -392,8 +401,9 @@ CONFIG_WIRELESS=y
392# CONFIG_CFG80211 is not set 401# CONFIG_CFG80211 is not set
393CONFIG_WIRELESS_OLD_REGULATORY=y 402CONFIG_WIRELESS_OLD_REGULATORY=y
394# CONFIG_WIRELESS_EXT is not set 403# CONFIG_WIRELESS_EXT is not set
404# CONFIG_LIB80211 is not set
395# CONFIG_MAC80211 is not set 405# CONFIG_MAC80211 is not set
396# CONFIG_IEEE80211 is not set 406# CONFIG_WIMAX is not set
397# CONFIG_RFKILL is not set 407# CONFIG_RFKILL is not set
398# CONFIG_NET_9P is not set 408# CONFIG_NET_9P is not set
399 409
@@ -442,8 +452,10 @@ CONFIG_MISC_DEVICES=y
442# CONFIG_EEPROM_93CX6 is not set 452# CONFIG_EEPROM_93CX6 is not set
443# CONFIG_SGI_IOC4 is not set 453# CONFIG_SGI_IOC4 is not set
444# CONFIG_TIFM_CORE is not set 454# CONFIG_TIFM_CORE is not set
455# CONFIG_ICS932S401 is not set
445# CONFIG_ENCLOSURE_SERVICES is not set 456# CONFIG_ENCLOSURE_SERVICES is not set
446# CONFIG_HP_ILO is not set 457# CONFIG_HP_ILO is not set
458# CONFIG_C2PORT is not set
447CONFIG_HAVE_IDE=y 459CONFIG_HAVE_IDE=y
448# CONFIG_IDE is not set 460# CONFIG_IDE is not set
449 461
@@ -487,6 +499,7 @@ CONFIG_SCSI_WAIT_SCAN=m
487# CONFIG_SCSI_SRP_ATTRS is not set 499# CONFIG_SCSI_SRP_ATTRS is not set
488CONFIG_SCSI_LOWLEVEL=y 500CONFIG_SCSI_LOWLEVEL=y
489# CONFIG_ISCSI_TCP is not set 501# CONFIG_ISCSI_TCP is not set
502# CONFIG_SCSI_CXGB3_ISCSI is not set
490# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 503# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
491# CONFIG_SCSI_3W_9XXX is not set 504# CONFIG_SCSI_3W_9XXX is not set
492# CONFIG_SCSI_ACARD is not set 505# CONFIG_SCSI_ACARD is not set
@@ -503,6 +516,8 @@ CONFIG_SCSI_LOWLEVEL=y
503# CONFIG_MEGARAID_SAS is not set 516# CONFIG_MEGARAID_SAS is not set
504# CONFIG_SCSI_HPTIOP is not set 517# CONFIG_SCSI_HPTIOP is not set
505# CONFIG_SCSI_BUSLOGIC is not set 518# CONFIG_SCSI_BUSLOGIC is not set
519# CONFIG_LIBFC is not set
520# CONFIG_FCOE is not set
506# CONFIG_SCSI_DMX3191D is not set 521# CONFIG_SCSI_DMX3191D is not set
507# CONFIG_SCSI_EATA is not set 522# CONFIG_SCSI_EATA is not set
508# CONFIG_SCSI_FUTURE_DOMAIN is not set 523# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -622,6 +637,9 @@ CONFIG_VITESSE_PHY=y
622# CONFIG_BROADCOM_PHY is not set 637# CONFIG_BROADCOM_PHY is not set
623# CONFIG_ICPLUS_PHY is not set 638# CONFIG_ICPLUS_PHY is not set
624# CONFIG_REALTEK_PHY is not set 639# CONFIG_REALTEK_PHY is not set
640# CONFIG_NATIONAL_PHY is not set
641# CONFIG_STE10XP is not set
642# CONFIG_LSI_ET1011C_PHY is not set
625# CONFIG_FIXED_PHY is not set 643# CONFIG_FIXED_PHY is not set
626# CONFIG_MDIO_BITBANG is not set 644# CONFIG_MDIO_BITBANG is not set
627CONFIG_NET_ETHERNET=y 645CONFIG_NET_ETHERNET=y
@@ -668,6 +686,7 @@ CONFIG_GIANFAR=y
668# CONFIG_JME is not set 686# CONFIG_JME is not set
669CONFIG_NETDEV_10000=y 687CONFIG_NETDEV_10000=y
670# CONFIG_CHELSIO_T1 is not set 688# CONFIG_CHELSIO_T1 is not set
689CONFIG_CHELSIO_T3_DEPENDS=y
671# CONFIG_CHELSIO_T3 is not set 690# CONFIG_CHELSIO_T3 is not set
672# CONFIG_ENIC is not set 691# CONFIG_ENIC is not set
673# CONFIG_IXGBE is not set 692# CONFIG_IXGBE is not set
@@ -692,6 +711,10 @@ CONFIG_NETDEV_10000=y
692# CONFIG_IWLWIFI_LEDS is not set 711# CONFIG_IWLWIFI_LEDS is not set
693 712
694# 713#
714# Enable WiMAX (Networking options) to see the WiMAX drivers
715#
716
717#
695# USB Network Adapters 718# USB Network Adapters
696# 719#
697# CONFIG_USB_CATC is not set 720# CONFIG_USB_CATC is not set
@@ -783,8 +806,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
783# CONFIG_SERIAL_JSM is not set 806# CONFIG_SERIAL_JSM is not set
784# CONFIG_SERIAL_OF_PLATFORM is not set 807# CONFIG_SERIAL_OF_PLATFORM is not set
785CONFIG_UNIX98_PTYS=y 808CONFIG_UNIX98_PTYS=y
809# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
786CONFIG_LEGACY_PTYS=y 810CONFIG_LEGACY_PTYS=y
787CONFIG_LEGACY_PTY_COUNT=256 811CONFIG_LEGACY_PTY_COUNT=256
812# CONFIG_HVC_UDBG is not set
788# CONFIG_IPMI_HANDLER is not set 813# CONFIG_IPMI_HANDLER is not set
789CONFIG_HW_RANDOM=y 814CONFIG_HW_RANDOM=y
790# CONFIG_NVRAM is not set 815# CONFIG_NVRAM is not set
@@ -849,8 +874,8 @@ CONFIG_I2C_MPC=y
849# Miscellaneous I2C Chip support 874# Miscellaneous I2C Chip support
850# 875#
851# CONFIG_DS1682 is not set 876# CONFIG_DS1682 is not set
852# CONFIG_AT24 is not set 877# CONFIG_EEPROM_AT24 is not set
853CONFIG_SENSORS_EEPROM=y 878CONFIG_EEPROM_LEGACY=y
854# CONFIG_SENSORS_PCF8574 is not set 879# CONFIG_SENSORS_PCF8574 is not set
855# CONFIG_PCF8575 is not set 880# CONFIG_PCF8575 is not set
856# CONFIG_SENSORS_PCA9539 is not set 881# CONFIG_SENSORS_PCA9539 is not set
@@ -869,11 +894,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
869# CONFIG_HWMON is not set 894# CONFIG_HWMON is not set
870CONFIG_THERMAL=y 895CONFIG_THERMAL=y
871# CONFIG_WATCHDOG is not set 896# CONFIG_WATCHDOG is not set
897CONFIG_SSB_POSSIBLE=y
872 898
873# 899#
874# Sonics Silicon Backplane 900# Sonics Silicon Backplane
875# 901#
876CONFIG_SSB_POSSIBLE=y
877# CONFIG_SSB is not set 902# CONFIG_SSB is not set
878 903
879# 904#
@@ -882,18 +907,13 @@ CONFIG_SSB_POSSIBLE=y
882# CONFIG_MFD_CORE is not set 907# CONFIG_MFD_CORE is not set
883# CONFIG_MFD_SM501 is not set 908# CONFIG_MFD_SM501 is not set
884# CONFIG_HTC_PASIC3 is not set 909# CONFIG_HTC_PASIC3 is not set
910# CONFIG_TWL4030_CORE is not set
885# CONFIG_MFD_TMIO is not set 911# CONFIG_MFD_TMIO is not set
886# CONFIG_PMIC_DA903X is not set 912# CONFIG_PMIC_DA903X is not set
887# CONFIG_MFD_WM8400 is not set 913# CONFIG_MFD_WM8400 is not set
888# CONFIG_MFD_WM8350_I2C is not set 914# CONFIG_MFD_WM8350_I2C is not set
889 915# CONFIG_MFD_PCF50633 is not set
890#
891# Voltage and Current regulators
892#
893# CONFIG_REGULATOR is not set 916# CONFIG_REGULATOR is not set
894# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
895# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
896# CONFIG_REGULATOR_BQ24022 is not set
897 917
898# 918#
899# Multimedia devices 919# Multimedia devices
@@ -920,6 +940,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
920CONFIG_MEDIA_TUNER_MT20XX=m 940CONFIG_MEDIA_TUNER_MT20XX=m
921CONFIG_MEDIA_TUNER_XC2028=m 941CONFIG_MEDIA_TUNER_XC2028=m
922CONFIG_MEDIA_TUNER_XC5000=m 942CONFIG_MEDIA_TUNER_XC5000=m
943# CONFIG_DVB_DYNAMIC_MINORS is not set
923CONFIG_DVB_CAPTURE_DRIVERS=y 944CONFIG_DVB_CAPTURE_DRIVERS=y
924 945
925# 946#
@@ -965,6 +986,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
965# CONFIG_DVB_FE_CUSTOMISE is not set 986# CONFIG_DVB_FE_CUSTOMISE is not set
966 987
967# 988#
989# Multistandard (satellite) frontends
990#
991# CONFIG_DVB_STB0899 is not set
992# CONFIG_DVB_STB6100 is not set
993
994#
968# DVB-S (satellite) frontends 995# DVB-S (satellite) frontends
969# 996#
970# CONFIG_DVB_CX24110 is not set 997# CONFIG_DVB_CX24110 is not set
@@ -976,8 +1003,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
976# CONFIG_DVB_STV0299 is not set 1003# CONFIG_DVB_STV0299 is not set
977# CONFIG_DVB_TDA8083 is not set 1004# CONFIG_DVB_TDA8083 is not set
978# CONFIG_DVB_TDA10086 is not set 1005# CONFIG_DVB_TDA10086 is not set
1006# CONFIG_DVB_TDA8261 is not set
979# CONFIG_DVB_VES1X93 is not set 1007# CONFIG_DVB_VES1X93 is not set
980# CONFIG_DVB_TUNER_ITD1000 is not set 1008# CONFIG_DVB_TUNER_ITD1000 is not set
1009# CONFIG_DVB_TUNER_CX24113 is not set
981# CONFIG_DVB_TDA826X is not set 1010# CONFIG_DVB_TDA826X is not set
982# CONFIG_DVB_TUA6100 is not set 1011# CONFIG_DVB_TUA6100 is not set
983# CONFIG_DVB_CX24116 is not set 1012# CONFIG_DVB_CX24116 is not set
@@ -1018,11 +1047,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1018# CONFIG_DVB_OR51132 is not set 1047# CONFIG_DVB_OR51132 is not set
1019# CONFIG_DVB_BCM3510 is not set 1048# CONFIG_DVB_BCM3510 is not set
1020# CONFIG_DVB_LGDT330X is not set 1049# CONFIG_DVB_LGDT330X is not set
1050# CONFIG_DVB_LGDT3304 is not set
1021# CONFIG_DVB_S5H1409 is not set 1051# CONFIG_DVB_S5H1409 is not set
1022# CONFIG_DVB_AU8522 is not set 1052# CONFIG_DVB_AU8522 is not set
1023# CONFIG_DVB_S5H1411 is not set 1053# CONFIG_DVB_S5H1411 is not set
1024 1054
1025# 1055#
1056# ISDB-T (terrestrial) frontends
1057#
1058# CONFIG_DVB_S921 is not set
1059
1060#
1026# Digital terrestrial only tuners/PLL 1061# Digital terrestrial only tuners/PLL
1027# 1062#
1028# CONFIG_DVB_PLL is not set 1063# CONFIG_DVB_PLL is not set
@@ -1073,6 +1108,7 @@ CONFIG_SND_PCM=y
1073# CONFIG_SND_SEQUENCER is not set 1108# CONFIG_SND_SEQUENCER is not set
1074# CONFIG_SND_MIXER_OSS is not set 1109# CONFIG_SND_MIXER_OSS is not set
1075# CONFIG_SND_PCM_OSS is not set 1110# CONFIG_SND_PCM_OSS is not set
1111# CONFIG_SND_HRTIMER is not set
1076# CONFIG_SND_DYNAMIC_MINORS is not set 1112# CONFIG_SND_DYNAMIC_MINORS is not set
1077CONFIG_SND_SUPPORT_OLD_API=y 1113CONFIG_SND_SUPPORT_OLD_API=y
1078CONFIG_SND_VERBOSE_PROCFS=y 1114CONFIG_SND_VERBOSE_PROCFS=y
@@ -1175,11 +1211,9 @@ CONFIG_HID_COMPAT=y
1175CONFIG_HID_A4TECH=y 1211CONFIG_HID_A4TECH=y
1176CONFIG_HID_APPLE=y 1212CONFIG_HID_APPLE=y
1177CONFIG_HID_BELKIN=y 1213CONFIG_HID_BELKIN=y
1178CONFIG_HID_BRIGHT=y
1179CONFIG_HID_CHERRY=y 1214CONFIG_HID_CHERRY=y
1180CONFIG_HID_CHICONY=y 1215CONFIG_HID_CHICONY=y
1181CONFIG_HID_CYPRESS=y 1216CONFIG_HID_CYPRESS=y
1182CONFIG_HID_DELL=y
1183CONFIG_HID_EZKEY=y 1217CONFIG_HID_EZKEY=y
1184CONFIG_HID_GYRATION=y 1218CONFIG_HID_GYRATION=y
1185CONFIG_HID_LOGITECH=y 1219CONFIG_HID_LOGITECH=y
@@ -1187,12 +1221,15 @@ CONFIG_HID_LOGITECH=y
1187# CONFIG_LOGIRUMBLEPAD2_FF is not set 1221# CONFIG_LOGIRUMBLEPAD2_FF is not set
1188CONFIG_HID_MICROSOFT=y 1222CONFIG_HID_MICROSOFT=y
1189CONFIG_HID_MONTEREY=y 1223CONFIG_HID_MONTEREY=y
1224# CONFIG_HID_NTRIG is not set
1190CONFIG_HID_PANTHERLORD=y 1225CONFIG_HID_PANTHERLORD=y
1191# CONFIG_PANTHERLORD_FF is not set 1226# CONFIG_PANTHERLORD_FF is not set
1192CONFIG_HID_PETALYNX=y 1227CONFIG_HID_PETALYNX=y
1193CONFIG_HID_SAMSUNG=y 1228CONFIG_HID_SAMSUNG=y
1194CONFIG_HID_SONY=y 1229CONFIG_HID_SONY=y
1195CONFIG_HID_SUNPLUS=y 1230CONFIG_HID_SUNPLUS=y
1231# CONFIG_GREENASIA_FF is not set
1232# CONFIG_HID_TOPSEED is not set
1196CONFIG_THRUSTMASTER_FF=m 1233CONFIG_THRUSTMASTER_FF=m
1197CONFIG_ZEROPLUS_FF=m 1234CONFIG_ZEROPLUS_FF=m
1198CONFIG_USB_SUPPORT=y 1235CONFIG_USB_SUPPORT=y
@@ -1225,6 +1262,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1225# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1262# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1226CONFIG_USB_EHCI_FSL=y 1263CONFIG_USB_EHCI_FSL=y
1227CONFIG_USB_EHCI_HCD_PPC_OF=y 1264CONFIG_USB_EHCI_HCD_PPC_OF=y
1265# CONFIG_USB_OXU210HP_HCD is not set
1228# CONFIG_USB_ISP116X_HCD is not set 1266# CONFIG_USB_ISP116X_HCD is not set
1229# CONFIG_USB_ISP1760_HCD is not set 1267# CONFIG_USB_ISP1760_HCD is not set
1230CONFIG_USB_OHCI_HCD=y 1268CONFIG_USB_OHCI_HCD=y
@@ -1250,18 +1288,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1250# CONFIG_USB_TMC is not set 1288# CONFIG_USB_TMC is not set
1251 1289
1252# 1290#
1253# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1291# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1254# 1292#
1255 1293
1256# 1294#
1257# may also be needed; see USB_STORAGE Help for more information 1295# see USB_STORAGE Help for more information
1258# 1296#
1259CONFIG_USB_STORAGE=y 1297CONFIG_USB_STORAGE=y
1260# CONFIG_USB_STORAGE_DEBUG is not set 1298# CONFIG_USB_STORAGE_DEBUG is not set
1261# CONFIG_USB_STORAGE_DATAFAB is not set 1299# CONFIG_USB_STORAGE_DATAFAB is not set
1262# CONFIG_USB_STORAGE_FREECOM is not set 1300# CONFIG_USB_STORAGE_FREECOM is not set
1263# CONFIG_USB_STORAGE_ISD200 is not set 1301# CONFIG_USB_STORAGE_ISD200 is not set
1264# CONFIG_USB_STORAGE_DPCM is not set
1265# CONFIG_USB_STORAGE_USBAT is not set 1302# CONFIG_USB_STORAGE_USBAT is not set
1266# CONFIG_USB_STORAGE_SDDR09 is not set 1303# CONFIG_USB_STORAGE_SDDR09 is not set
1267# CONFIG_USB_STORAGE_SDDR55 is not set 1304# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1309,6 +1346,10 @@ CONFIG_USB_STORAGE=y
1309# CONFIG_USB_ISIGHTFW is not set 1346# CONFIG_USB_ISIGHTFW is not set
1310# CONFIG_USB_VST is not set 1347# CONFIG_USB_VST is not set
1311# CONFIG_USB_GADGET is not set 1348# CONFIG_USB_GADGET is not set
1349
1350#
1351# OTG and related infrastructure
1352#
1312# CONFIG_UWB is not set 1353# CONFIG_UWB is not set
1313# CONFIG_MMC is not set 1354# CONFIG_MMC is not set
1314# CONFIG_MEMSTICK is not set 1355# CONFIG_MEMSTICK is not set
@@ -1346,6 +1387,7 @@ CONFIG_RTC_INTF_DEV=y
1346# CONFIG_RTC_DRV_M41T80 is not set 1387# CONFIG_RTC_DRV_M41T80 is not set
1347# CONFIG_RTC_DRV_S35390A is not set 1388# CONFIG_RTC_DRV_S35390A is not set
1348# CONFIG_RTC_DRV_FM3130 is not set 1389# CONFIG_RTC_DRV_FM3130 is not set
1390# CONFIG_RTC_DRV_RX8581 is not set
1349 1391
1350# 1392#
1351# SPI RTC drivers 1393# SPI RTC drivers
@@ -1405,7 +1447,9 @@ CONFIG_FS_MBCACHE=y
1405# CONFIG_FS_POSIX_ACL is not set 1447# CONFIG_FS_POSIX_ACL is not set
1406CONFIG_FILE_LOCKING=y 1448CONFIG_FILE_LOCKING=y
1407# CONFIG_XFS_FS is not set 1449# CONFIG_XFS_FS is not set
1450# CONFIG_GFS2_FS is not set
1408# CONFIG_OCFS2_FS is not set 1451# CONFIG_OCFS2_FS is not set
1452# CONFIG_BTRFS_FS is not set
1409CONFIG_DNOTIFY=y 1453CONFIG_DNOTIFY=y
1410CONFIG_INOTIFY=y 1454CONFIG_INOTIFY=y
1411CONFIG_INOTIFY_USER=y 1455CONFIG_INOTIFY_USER=y
@@ -1447,10 +1491,7 @@ CONFIG_TMPFS=y
1447# CONFIG_TMPFS_POSIX_ACL is not set 1491# CONFIG_TMPFS_POSIX_ACL is not set
1448# CONFIG_HUGETLB_PAGE is not set 1492# CONFIG_HUGETLB_PAGE is not set
1449# CONFIG_CONFIGFS_FS is not set 1493# CONFIG_CONFIGFS_FS is not set
1450 1494CONFIG_MISC_FILESYSTEMS=y
1451#
1452# Miscellaneous filesystems
1453#
1454CONFIG_ADFS_FS=m 1495CONFIG_ADFS_FS=m
1455# CONFIG_ADFS_FS_RW is not set 1496# CONFIG_ADFS_FS_RW is not set
1456CONFIG_AFFS_FS=m 1497CONFIG_AFFS_FS=m
@@ -1461,6 +1502,7 @@ CONFIG_BEFS_FS=m
1461CONFIG_BFS_FS=m 1502CONFIG_BFS_FS=m
1462CONFIG_EFS_FS=m 1503CONFIG_EFS_FS=m
1463CONFIG_CRAMFS=y 1504CONFIG_CRAMFS=y
1505# CONFIG_SQUASHFS is not set
1464CONFIG_VXFS_FS=m 1506CONFIG_VXFS_FS=m
1465# CONFIG_MINIX_FS is not set 1507# CONFIG_MINIX_FS is not set
1466# CONFIG_OMFS_FS is not set 1508# CONFIG_OMFS_FS is not set
@@ -1562,6 +1604,7 @@ CONFIG_NLS_UTF8=m
1562# Library routines 1604# Library routines
1563# 1605#
1564CONFIG_BITREVERSE=y 1606CONFIG_BITREVERSE=y
1607CONFIG_GENERIC_FIND_LAST_BIT=y
1565# CONFIG_CRC_CCITT is not set 1608# CONFIG_CRC_CCITT is not set
1566# CONFIG_CRC16 is not set 1609# CONFIG_CRC16 is not set
1567CONFIG_CRC_T10DIF=y 1610CONFIG_CRC_T10DIF=y
@@ -1613,6 +1656,7 @@ CONFIG_DEBUG_INFO=y
1613# CONFIG_DEBUG_MEMORY_INIT is not set 1656# CONFIG_DEBUG_MEMORY_INIT is not set
1614# CONFIG_DEBUG_LIST is not set 1657# CONFIG_DEBUG_LIST is not set
1615# CONFIG_DEBUG_SG is not set 1658# CONFIG_DEBUG_SG is not set
1659# CONFIG_DEBUG_NOTIFIERS is not set
1616# CONFIG_BOOT_PRINTK_DELAY is not set 1660# CONFIG_BOOT_PRINTK_DELAY is not set
1617# CONFIG_RCU_TORTURE_TEST is not set 1661# CONFIG_RCU_TORTURE_TEST is not set
1618# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1662# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1622,6 +1666,8 @@ CONFIG_DEBUG_INFO=y
1622# CONFIG_LATENCYTOP is not set 1666# CONFIG_LATENCYTOP is not set
1623CONFIG_SYSCTL_SYSCALL_CHECK=y 1667CONFIG_SYSCTL_SYSCALL_CHECK=y
1624CONFIG_HAVE_FUNCTION_TRACER=y 1668CONFIG_HAVE_FUNCTION_TRACER=y
1669CONFIG_HAVE_DYNAMIC_FTRACE=y
1670CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1625 1671
1626# 1672#
1627# Tracers 1673# Tracers
@@ -1630,11 +1676,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1630# CONFIG_SCHED_TRACER is not set 1676# CONFIG_SCHED_TRACER is not set
1631# CONFIG_CONTEXT_SWITCH_TRACER is not set 1677# CONFIG_CONTEXT_SWITCH_TRACER is not set
1632# CONFIG_BOOT_TRACER is not set 1678# CONFIG_BOOT_TRACER is not set
1679# CONFIG_TRACE_BRANCH_PROFILING is not set
1633# CONFIG_STACK_TRACER is not set 1680# CONFIG_STACK_TRACER is not set
1634# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1681# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1635# CONFIG_SAMPLES is not set 1682# CONFIG_SAMPLES is not set
1636CONFIG_HAVE_ARCH_KGDB=y 1683CONFIG_HAVE_ARCH_KGDB=y
1637# CONFIG_KGDB is not set 1684# CONFIG_KGDB is not set
1685CONFIG_PRINT_STACK_DEPTH=64
1638# CONFIG_DEBUG_STACKOVERFLOW is not set 1686# CONFIG_DEBUG_STACKOVERFLOW is not set
1639# CONFIG_DEBUG_STACK_USAGE is not set 1687# CONFIG_DEBUG_STACK_USAGE is not set
1640# CONFIG_DEBUG_PAGEALLOC is not set 1688# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1661,11 +1709,16 @@ CONFIG_CRYPTO=y
1661# 1709#
1662# CONFIG_CRYPTO_FIPS is not set 1710# CONFIG_CRYPTO_FIPS is not set
1663CONFIG_CRYPTO_ALGAPI=y 1711CONFIG_CRYPTO_ALGAPI=y
1712CONFIG_CRYPTO_ALGAPI2=y
1664CONFIG_CRYPTO_AEAD=y 1713CONFIG_CRYPTO_AEAD=y
1714CONFIG_CRYPTO_AEAD2=y
1665CONFIG_CRYPTO_BLKCIPHER=y 1715CONFIG_CRYPTO_BLKCIPHER=y
1716CONFIG_CRYPTO_BLKCIPHER2=y
1666CONFIG_CRYPTO_HASH=y 1717CONFIG_CRYPTO_HASH=y
1667CONFIG_CRYPTO_RNG=y 1718CONFIG_CRYPTO_HASH2=y
1719CONFIG_CRYPTO_RNG2=y
1668CONFIG_CRYPTO_MANAGER=y 1720CONFIG_CRYPTO_MANAGER=y
1721CONFIG_CRYPTO_MANAGER2=y
1669# CONFIG_CRYPTO_GF128MUL is not set 1722# CONFIG_CRYPTO_GF128MUL is not set
1670# CONFIG_CRYPTO_NULL is not set 1723# CONFIG_CRYPTO_NULL is not set
1671# CONFIG_CRYPTO_CRYPTD is not set 1724# CONFIG_CRYPTO_CRYPTD is not set
@@ -1699,7 +1752,7 @@ CONFIG_CRYPTO_HMAC=y
1699# 1752#
1700# Digest 1753# Digest
1701# 1754#
1702# CONFIG_CRYPTO_CRC32C is not set 1755CONFIG_CRYPTO_CRC32C=m
1703# CONFIG_CRYPTO_MD4 is not set 1756# CONFIG_CRYPTO_MD4 is not set
1704CONFIG_CRYPTO_MD5=y 1757CONFIG_CRYPTO_MD5=y
1705# CONFIG_CRYPTO_MICHAEL_MIC is not set 1758# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
index d790cbab80b8..905e8a3388d6 100644
--- a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8540_ads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:06 2008 4# Mon Jan 26 15:36:05 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 81# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -114,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 116CONFIG_SLUB=y
115# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 121CONFIG_HAVE_IOREMAP_PROT=y
@@ -124,13 +125,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
129# CONFIG_MODULES is not set 129# CONFIG_MODULES is not set
130CONFIG_BLOCK=y 130CONFIG_BLOCK=y
131# CONFIG_LBD is not set 131# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 132# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 133# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 134# CONFIG_BLK_DEV_INTEGRITY is not set
136 135
@@ -147,6 +146,10 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_NOOP is not set 146# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 147CONFIG_DEFAULT_IOSCHED="anticipatory"
149CONFIG_CLASSIC_RCU=y 148CONFIG_CLASSIC_RCU=y
149# CONFIG_TREE_RCU is not set
150# CONFIG_PREEMPT_RCU is not set
151# CONFIG_TREE_RCU_TRACE is not set
152# CONFIG_PREEMPT_RCU_TRACE is not set
150# CONFIG_FREEZER is not set 153# CONFIG_FREEZER is not set
151 154
152# 155#
@@ -186,6 +189,7 @@ CONFIG_MPIC=y
186# CONFIG_CPM2 is not set 189# CONFIG_CPM2 is not set
187# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
188# CONFIG_MPC8xxx_GPIO is not set 191# CONFIG_MPC8xxx_GPIO is not set
192# CONFIG_SIMPLE_GPIO is not set
189 193
190# 194#
191# Kernel options 195# Kernel options
@@ -224,12 +228,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
224CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
227# CONFIG_RESOURCES_64BIT is not set
228# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 232CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 233CONFIG_BOUNCE=y
231CONFIG_VIRT_TO_BUS=y 234CONFIG_VIRT_TO_BUS=y
232CONFIG_UNEVICTABLE_LRU=y 235CONFIG_UNEVICTABLE_LRU=y
236CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set
233CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
234CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
235# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
@@ -270,6 +276,7 @@ CONFIG_NET=y
270# 276#
271# Networking options 277# Networking options
272# 278#
279CONFIG_COMPAT_NET_DEV_OPS=y
273CONFIG_PACKET=y 280CONFIG_PACKET=y
274# CONFIG_PACKET_MMAP is not set 281# CONFIG_PACKET_MMAP is not set
275CONFIG_UNIX=y 282CONFIG_UNIX=y
@@ -326,6 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
326# CONFIG_ECONET is not set 333# CONFIG_ECONET is not set
327# CONFIG_WAN_ROUTER is not set 334# CONFIG_WAN_ROUTER is not set
328# CONFIG_NET_SCHED is not set 335# CONFIG_NET_SCHED is not set
336# CONFIG_DCB is not set
329 337
330# 338#
331# Network testing 339# Network testing
@@ -341,8 +349,9 @@ CONFIG_WIRELESS=y
341# CONFIG_CFG80211 is not set 349# CONFIG_CFG80211 is not set
342CONFIG_WIRELESS_OLD_REGULATORY=y 350CONFIG_WIRELESS_OLD_REGULATORY=y
343# CONFIG_WIRELESS_EXT is not set 351# CONFIG_WIRELESS_EXT is not set
352# CONFIG_LIB80211 is not set
344# CONFIG_MAC80211 is not set 353# CONFIG_MAC80211 is not set
345# CONFIG_IEEE80211 is not set 354# CONFIG_WIMAX is not set
346# CONFIG_RFKILL is not set 355# CONFIG_RFKILL is not set
347# CONFIG_NET_9P is not set 356# CONFIG_NET_9P is not set
348 357
@@ -380,6 +389,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
380CONFIG_MISC_DEVICES=y 389CONFIG_MISC_DEVICES=y
381# CONFIG_EEPROM_93CX6 is not set 390# CONFIG_EEPROM_93CX6 is not set
382# CONFIG_ENCLOSURE_SERVICES is not set 391# CONFIG_ENCLOSURE_SERVICES is not set
392# CONFIG_C2PORT is not set
383CONFIG_HAVE_IDE=y 393CONFIG_HAVE_IDE=y
384# CONFIG_IDE is not set 394# CONFIG_IDE is not set
385 395
@@ -415,6 +425,9 @@ CONFIG_PHYLIB=y
415# CONFIG_BROADCOM_PHY is not set 425# CONFIG_BROADCOM_PHY is not set
416# CONFIG_ICPLUS_PHY is not set 426# CONFIG_ICPLUS_PHY is not set
417# CONFIG_REALTEK_PHY is not set 427# CONFIG_REALTEK_PHY is not set
428# CONFIG_NATIONAL_PHY is not set
429# CONFIG_STE10XP is not set
430# CONFIG_LSI_ET1011C_PHY is not set
418# CONFIG_FIXED_PHY is not set 431# CONFIG_FIXED_PHY is not set
419# CONFIG_MDIO_BITBANG is not set 432# CONFIG_MDIO_BITBANG is not set
420CONFIG_NET_ETHERNET=y 433CONFIG_NET_ETHERNET=y
@@ -437,6 +450,10 @@ CONFIG_NETDEV_10000=y
437# CONFIG_WLAN_PRE80211 is not set 450# CONFIG_WLAN_PRE80211 is not set
438# CONFIG_WLAN_80211 is not set 451# CONFIG_WLAN_80211 is not set
439# CONFIG_IWLWIFI_LEDS is not set 452# CONFIG_IWLWIFI_LEDS is not set
453
454#
455# Enable WiMAX (Networking options) to see the WiMAX drivers
456#
440# CONFIG_WAN is not set 457# CONFIG_WAN is not set
441# CONFIG_PPP is not set 458# CONFIG_PPP is not set
442# CONFIG_SLIP is not set 459# CONFIG_SLIP is not set
@@ -502,8 +519,10 @@ CONFIG_SERIAL_CORE=y
502CONFIG_SERIAL_CORE_CONSOLE=y 519CONFIG_SERIAL_CORE_CONSOLE=y
503# CONFIG_SERIAL_OF_PLATFORM is not set 520# CONFIG_SERIAL_OF_PLATFORM is not set
504CONFIG_UNIX98_PTYS=y 521CONFIG_UNIX98_PTYS=y
522# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
505CONFIG_LEGACY_PTYS=y 523CONFIG_LEGACY_PTYS=y
506CONFIG_LEGACY_PTY_COUNT=256 524CONFIG_LEGACY_PTY_COUNT=256
525# CONFIG_HVC_UDBG is not set
507# CONFIG_IPMI_HANDLER is not set 526# CONFIG_IPMI_HANDLER is not set
508# CONFIG_HW_RANDOM is not set 527# CONFIG_HW_RANDOM is not set
509# CONFIG_NVRAM is not set 528# CONFIG_NVRAM is not set
@@ -534,11 +553,11 @@ CONFIG_HWMON=y
534# CONFIG_THERMAL is not set 553# CONFIG_THERMAL is not set
535# CONFIG_THERMAL_HWMON is not set 554# CONFIG_THERMAL_HWMON is not set
536# CONFIG_WATCHDOG is not set 555# CONFIG_WATCHDOG is not set
556CONFIG_SSB_POSSIBLE=y
537 557
538# 558#
539# Sonics Silicon Backplane 559# Sonics Silicon Backplane
540# 560#
541CONFIG_SSB_POSSIBLE=y
542# CONFIG_SSB is not set 561# CONFIG_SSB is not set
543 562
544# 563#
@@ -548,14 +567,7 @@ CONFIG_SSB_POSSIBLE=y
548# CONFIG_MFD_SM501 is not set 567# CONFIG_MFD_SM501 is not set
549# CONFIG_HTC_PASIC3 is not set 568# CONFIG_HTC_PASIC3 is not set
550# CONFIG_MFD_TMIO is not set 569# CONFIG_MFD_TMIO is not set
551
552#
553# Voltage and Current regulators
554#
555# CONFIG_REGULATOR is not set 570# CONFIG_REGULATOR is not set
556# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
557# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
558# CONFIG_REGULATOR_BQ24022 is not set
559 571
560# 572#
561# Multimedia devices 573# Multimedia devices
@@ -608,9 +620,13 @@ CONFIG_USB_SUPPORT=y
608# 620#
609 621
610# 622#
611# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 623# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
612# 624#
613# CONFIG_USB_GADGET is not set 625# CONFIG_USB_GADGET is not set
626
627#
628# OTG and related infrastructure
629#
614# CONFIG_MMC is not set 630# CONFIG_MMC is not set
615# CONFIG_MEMSTICK is not set 631# CONFIG_MEMSTICK is not set
616# CONFIG_NEW_LEDS is not set 632# CONFIG_NEW_LEDS is not set
@@ -640,6 +656,7 @@ CONFIG_FS_MBCACHE=y
640CONFIG_FILE_LOCKING=y 656CONFIG_FILE_LOCKING=y
641# CONFIG_XFS_FS is not set 657# CONFIG_XFS_FS is not set
642# CONFIG_OCFS2_FS is not set 658# CONFIG_OCFS2_FS is not set
659# CONFIG_BTRFS_FS is not set
643CONFIG_DNOTIFY=y 660CONFIG_DNOTIFY=y
644CONFIG_INOTIFY=y 661CONFIG_INOTIFY=y
645CONFIG_INOTIFY_USER=y 662CONFIG_INOTIFY_USER=y
@@ -673,10 +690,7 @@ CONFIG_TMPFS=y
673# CONFIG_TMPFS_POSIX_ACL is not set 690# CONFIG_TMPFS_POSIX_ACL is not set
674# CONFIG_HUGETLB_PAGE is not set 691# CONFIG_HUGETLB_PAGE is not set
675# CONFIG_CONFIGFS_FS is not set 692# CONFIG_CONFIGFS_FS is not set
676 693CONFIG_MISC_FILESYSTEMS=y
677#
678# Miscellaneous filesystems
679#
680# CONFIG_ADFS_FS is not set 694# CONFIG_ADFS_FS is not set
681# CONFIG_AFFS_FS is not set 695# CONFIG_AFFS_FS is not set
682# CONFIG_HFS_FS is not set 696# CONFIG_HFS_FS is not set
@@ -685,6 +699,7 @@ CONFIG_TMPFS=y
685# CONFIG_BFS_FS is not set 699# CONFIG_BFS_FS is not set
686# CONFIG_EFS_FS is not set 700# CONFIG_EFS_FS is not set
687# CONFIG_CRAMFS is not set 701# CONFIG_CRAMFS is not set
702# CONFIG_SQUASHFS is not set
688# CONFIG_VXFS_FS is not set 703# CONFIG_VXFS_FS is not set
689# CONFIG_MINIX_FS is not set 704# CONFIG_MINIX_FS is not set
690# CONFIG_OMFS_FS is not set 705# CONFIG_OMFS_FS is not set
@@ -735,6 +750,7 @@ CONFIG_PARTITION_ADVANCED=y
735# Library routines 750# Library routines
736# 751#
737CONFIG_BITREVERSE=y 752CONFIG_BITREVERSE=y
753CONFIG_GENERIC_FIND_LAST_BIT=y
738# CONFIG_CRC_CCITT is not set 754# CONFIG_CRC_CCITT is not set
739# CONFIG_CRC16 is not set 755# CONFIG_CRC16 is not set
740# CONFIG_CRC_T10DIF is not set 756# CONFIG_CRC_T10DIF is not set
@@ -784,6 +800,7 @@ CONFIG_DEBUG_MUTEXES=y
784# CONFIG_DEBUG_MEMORY_INIT is not set 800# CONFIG_DEBUG_MEMORY_INIT is not set
785# CONFIG_DEBUG_LIST is not set 801# CONFIG_DEBUG_LIST is not set
786# CONFIG_DEBUG_SG is not set 802# CONFIG_DEBUG_SG is not set
803# CONFIG_DEBUG_NOTIFIERS is not set
787# CONFIG_BOOT_PRINTK_DELAY is not set 804# CONFIG_BOOT_PRINTK_DELAY is not set
788# CONFIG_RCU_TORTURE_TEST is not set 805# CONFIG_RCU_TORTURE_TEST is not set
789# CONFIG_RCU_CPU_STALL_DETECTOR is not set 806# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -793,6 +810,8 @@ CONFIG_DEBUG_MUTEXES=y
793# CONFIG_LATENCYTOP is not set 810# CONFIG_LATENCYTOP is not set
794CONFIG_SYSCTL_SYSCALL_CHECK=y 811CONFIG_SYSCTL_SYSCALL_CHECK=y
795CONFIG_HAVE_FUNCTION_TRACER=y 812CONFIG_HAVE_FUNCTION_TRACER=y
813CONFIG_HAVE_DYNAMIC_FTRACE=y
814CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
796 815
797# 816#
798# Tracers 817# Tracers
@@ -801,11 +820,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
801# CONFIG_SCHED_TRACER is not set 820# CONFIG_SCHED_TRACER is not set
802# CONFIG_CONTEXT_SWITCH_TRACER is not set 821# CONFIG_CONTEXT_SWITCH_TRACER is not set
803# CONFIG_BOOT_TRACER is not set 822# CONFIG_BOOT_TRACER is not set
823# CONFIG_TRACE_BRANCH_PROFILING is not set
804# CONFIG_STACK_TRACER is not set 824# CONFIG_STACK_TRACER is not set
805# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 825# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
806# CONFIG_SAMPLES is not set 826# CONFIG_SAMPLES is not set
807CONFIG_HAVE_ARCH_KGDB=y 827CONFIG_HAVE_ARCH_KGDB=y
808# CONFIG_KGDB is not set 828# CONFIG_KGDB is not set
829CONFIG_PRINT_STACK_DEPTH=64
809# CONFIG_DEBUG_STACKOVERFLOW is not set 830# CONFIG_DEBUG_STACKOVERFLOW is not set
810# CONFIG_DEBUG_STACK_USAGE is not set 831# CONFIG_DEBUG_STACK_USAGE is not set
811# CONFIG_DEBUG_PAGEALLOC is not set 832# CONFIG_DEBUG_PAGEALLOC is not set
@@ -831,6 +852,7 @@ CONFIG_CRYPTO=y
831# 852#
832# CONFIG_CRYPTO_FIPS is not set 853# CONFIG_CRYPTO_FIPS is not set
833# CONFIG_CRYPTO_MANAGER is not set 854# CONFIG_CRYPTO_MANAGER is not set
855# CONFIG_CRYPTO_MANAGER2 is not set
834# CONFIG_CRYPTO_GF128MUL is not set 856# CONFIG_CRYPTO_GF128MUL is not set
835# CONFIG_CRYPTO_NULL is not set 857# CONFIG_CRYPTO_NULL is not set
836# CONFIG_CRYPTO_CRYPTD is not set 858# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
index f6cb01495ea6..f6fa0b761cb3 100644
--- a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8544_ds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:08 2008 4# Mon Jan 26 15:36:07 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -78,12 +80,12 @@ CONFIG_AUDIT=y
78CONFIG_IKCONFIG=y 80CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 81CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 82CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 83CONFIG_GROUP_SCHED=y
83# CONFIG_FAIR_GROUP_SCHED is not set 84# CONFIG_FAIR_GROUP_SCHED is not set
84# CONFIG_RT_GROUP_SCHED is not set 85# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 86CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 87# CONFIG_CGROUP_SCHED is not set
88# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 89CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 90CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_RELAY is not set 91# CONFIG_RELAY is not set
@@ -96,6 +98,7 @@ CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 98CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 100CONFIG_KALLSYMS_ALL=y
101CONFIG_KALLSYMS_STRIP_GENERATED=y
99CONFIG_KALLSYMS_EXTRA_PASS=y 102CONFIG_KALLSYMS_EXTRA_PASS=y
100CONFIG_HOTPLUG=y 103CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 104CONFIG_PRINTK=y
@@ -118,7 +121,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 121CONFIG_SLUB=y
119# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 125# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -129,7 +131,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
132# CONFIG_TINY_SHMEM is not set
133CONFIG_BASE_SMALL=0 134CONFIG_BASE_SMALL=0
134CONFIG_MODULES=y 135CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set 136# CONFIG_MODULE_FORCE_LOAD is not set
@@ -137,11 +138,9 @@ CONFIG_MODULE_UNLOAD=y
137CONFIG_MODULE_FORCE_UNLOAD=y 138CONFIG_MODULE_FORCE_UNLOAD=y
138CONFIG_MODVERSIONS=y 139CONFIG_MODVERSIONS=y
139# CONFIG_MODULE_SRCVERSION_ALL is not set 140# CONFIG_MODULE_SRCVERSION_ALL is not set
140CONFIG_KMOD=y
141CONFIG_BLOCK=y 141CONFIG_BLOCK=y
142CONFIG_LBD=y 142CONFIG_LBD=y
143# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
144# CONFIG_LSF is not set
145# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
147 146
@@ -158,6 +157,10 @@ CONFIG_DEFAULT_CFQ=y
158# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="cfq" 158CONFIG_DEFAULT_IOSCHED="cfq"
160CONFIG_CLASSIC_RCU=y 159CONFIG_CLASSIC_RCU=y
160# CONFIG_TREE_RCU is not set
161# CONFIG_PREEMPT_RCU is not set
162# CONFIG_TREE_RCU_TRACE is not set
163# CONFIG_PREEMPT_RCU_TRACE is not set
161# CONFIG_FREEZER is not set 164# CONFIG_FREEZER is not set
162 165
163# 166#
@@ -197,6 +200,7 @@ CONFIG_PPC_I8259=y
197# CONFIG_CPM2 is not set 200# CONFIG_CPM2 is not set
198CONFIG_FSL_ULI1575=y 201CONFIG_FSL_ULI1575=y
199# CONFIG_MPC8xxx_GPIO is not set 202# CONFIG_MPC8xxx_GPIO is not set
203# CONFIG_SIMPLE_GPIO is not set
200 204
201# 205#
202# Kernel options 206# Kernel options
@@ -235,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
235CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
236CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
237CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
240CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
244CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
245CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +272,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
266# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
267# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
268# CONFIG_PCI_DEBUG is not set 274# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +296,7 @@ CONFIG_NET=y
289# 296#
290# Networking options 297# Networking options
291# 298#
299CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 300CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 301# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 302CONFIG_UNIX=y
@@ -377,6 +385,7 @@ CONFIG_SCTP_HMAC_MD5=y
377# CONFIG_ECONET is not set 385# CONFIG_ECONET is not set
378# CONFIG_WAN_ROUTER is not set 386# CONFIG_WAN_ROUTER is not set
379# CONFIG_NET_SCHED is not set 387# CONFIG_NET_SCHED is not set
388# CONFIG_DCB is not set
380 389
381# 390#
382# Network testing 391# Network testing
@@ -393,8 +402,9 @@ CONFIG_WIRELESS=y
393# CONFIG_CFG80211 is not set 402# CONFIG_CFG80211 is not set
394CONFIG_WIRELESS_OLD_REGULATORY=y 403CONFIG_WIRELESS_OLD_REGULATORY=y
395# CONFIG_WIRELESS_EXT is not set 404# CONFIG_WIRELESS_EXT is not set
405# CONFIG_LIB80211 is not set
396# CONFIG_MAC80211 is not set 406# CONFIG_MAC80211 is not set
397# CONFIG_IEEE80211 is not set 407# CONFIG_WIMAX is not set
398# CONFIG_RFKILL is not set 408# CONFIG_RFKILL is not set
399# CONFIG_NET_9P is not set 409# CONFIG_NET_9P is not set
400 410
@@ -443,8 +453,10 @@ CONFIG_MISC_DEVICES=y
443# CONFIG_EEPROM_93CX6 is not set 453# CONFIG_EEPROM_93CX6 is not set
444# CONFIG_SGI_IOC4 is not set 454# CONFIG_SGI_IOC4 is not set
445# CONFIG_TIFM_CORE is not set 455# CONFIG_TIFM_CORE is not set
456# CONFIG_ICS932S401 is not set
446# CONFIG_ENCLOSURE_SERVICES is not set 457# CONFIG_ENCLOSURE_SERVICES is not set
447# CONFIG_HP_ILO is not set 458# CONFIG_HP_ILO is not set
459# CONFIG_C2PORT is not set
448CONFIG_HAVE_IDE=y 460CONFIG_HAVE_IDE=y
449# CONFIG_IDE is not set 461# CONFIG_IDE is not set
450 462
@@ -488,6 +500,7 @@ CONFIG_SCSI_WAIT_SCAN=m
488# CONFIG_SCSI_SRP_ATTRS is not set 500# CONFIG_SCSI_SRP_ATTRS is not set
489CONFIG_SCSI_LOWLEVEL=y 501CONFIG_SCSI_LOWLEVEL=y
490# CONFIG_ISCSI_TCP is not set 502# CONFIG_ISCSI_TCP is not set
503# CONFIG_SCSI_CXGB3_ISCSI is not set
491# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 504# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
492# CONFIG_SCSI_3W_9XXX is not set 505# CONFIG_SCSI_3W_9XXX is not set
493# CONFIG_SCSI_ACARD is not set 506# CONFIG_SCSI_ACARD is not set
@@ -504,6 +517,8 @@ CONFIG_SCSI_LOWLEVEL=y
504# CONFIG_MEGARAID_SAS is not set 517# CONFIG_MEGARAID_SAS is not set
505# CONFIG_SCSI_HPTIOP is not set 518# CONFIG_SCSI_HPTIOP is not set
506# CONFIG_SCSI_BUSLOGIC is not set 519# CONFIG_SCSI_BUSLOGIC is not set
520# CONFIG_LIBFC is not set
521# CONFIG_FCOE is not set
507# CONFIG_SCSI_DMX3191D is not set 522# CONFIG_SCSI_DMX3191D is not set
508# CONFIG_SCSI_EATA is not set 523# CONFIG_SCSI_EATA is not set
509# CONFIG_SCSI_FUTURE_DOMAIN is not set 524# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -623,6 +638,9 @@ CONFIG_VITESSE_PHY=y
623# CONFIG_BROADCOM_PHY is not set 638# CONFIG_BROADCOM_PHY is not set
624# CONFIG_ICPLUS_PHY is not set 639# CONFIG_ICPLUS_PHY is not set
625# CONFIG_REALTEK_PHY is not set 640# CONFIG_REALTEK_PHY is not set
641# CONFIG_NATIONAL_PHY is not set
642# CONFIG_STE10XP is not set
643# CONFIG_LSI_ET1011C_PHY is not set
626# CONFIG_FIXED_PHY is not set 644# CONFIG_FIXED_PHY is not set
627# CONFIG_MDIO_BITBANG is not set 645# CONFIG_MDIO_BITBANG is not set
628CONFIG_NET_ETHERNET=y 646CONFIG_NET_ETHERNET=y
@@ -667,6 +685,7 @@ CONFIG_GIANFAR=y
667# CONFIG_JME is not set 685# CONFIG_JME is not set
668CONFIG_NETDEV_10000=y 686CONFIG_NETDEV_10000=y
669# CONFIG_CHELSIO_T1 is not set 687# CONFIG_CHELSIO_T1 is not set
688CONFIG_CHELSIO_T3_DEPENDS=y
670# CONFIG_CHELSIO_T3 is not set 689# CONFIG_CHELSIO_T3 is not set
671# CONFIG_ENIC is not set 690# CONFIG_ENIC is not set
672# CONFIG_IXGBE is not set 691# CONFIG_IXGBE is not set
@@ -691,6 +710,10 @@ CONFIG_NETDEV_10000=y
691# CONFIG_IWLWIFI_LEDS is not set 710# CONFIG_IWLWIFI_LEDS is not set
692 711
693# 712#
713# Enable WiMAX (Networking options) to see the WiMAX drivers
714#
715
716#
694# USB Network Adapters 717# USB Network Adapters
695# 718#
696# CONFIG_USB_CATC is not set 719# CONFIG_USB_CATC is not set
@@ -782,8 +805,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
782# CONFIG_SERIAL_JSM is not set 805# CONFIG_SERIAL_JSM is not set
783# CONFIG_SERIAL_OF_PLATFORM is not set 806# CONFIG_SERIAL_OF_PLATFORM is not set
784CONFIG_UNIX98_PTYS=y 807CONFIG_UNIX98_PTYS=y
808# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
785CONFIG_LEGACY_PTYS=y 809CONFIG_LEGACY_PTYS=y
786CONFIG_LEGACY_PTY_COUNT=256 810CONFIG_LEGACY_PTY_COUNT=256
811# CONFIG_HVC_UDBG is not set
787# CONFIG_IPMI_HANDLER is not set 812# CONFIG_IPMI_HANDLER is not set
788CONFIG_HW_RANDOM=y 813CONFIG_HW_RANDOM=y
789CONFIG_NVRAM=y 814CONFIG_NVRAM=y
@@ -848,8 +873,8 @@ CONFIG_I2C_MPC=y
848# Miscellaneous I2C Chip support 873# Miscellaneous I2C Chip support
849# 874#
850# CONFIG_DS1682 is not set 875# CONFIG_DS1682 is not set
851# CONFIG_AT24 is not set 876# CONFIG_EEPROM_AT24 is not set
852CONFIG_SENSORS_EEPROM=y 877CONFIG_EEPROM_LEGACY=y
853# CONFIG_SENSORS_PCF8574 is not set 878# CONFIG_SENSORS_PCF8574 is not set
854# CONFIG_PCF8575 is not set 879# CONFIG_PCF8575 is not set
855# CONFIG_SENSORS_PCA9539 is not set 880# CONFIG_SENSORS_PCA9539 is not set
@@ -869,11 +894,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
869# CONFIG_THERMAL is not set 894# CONFIG_THERMAL is not set
870# CONFIG_THERMAL_HWMON is not set 895# CONFIG_THERMAL_HWMON is not set
871# CONFIG_WATCHDOG is not set 896# CONFIG_WATCHDOG is not set
897CONFIG_SSB_POSSIBLE=y
872 898
873# 899#
874# Sonics Silicon Backplane 900# Sonics Silicon Backplane
875# 901#
876CONFIG_SSB_POSSIBLE=y
877# CONFIG_SSB is not set 902# CONFIG_SSB is not set
878 903
879# 904#
@@ -882,18 +907,13 @@ CONFIG_SSB_POSSIBLE=y
882# CONFIG_MFD_CORE is not set 907# CONFIG_MFD_CORE is not set
883# CONFIG_MFD_SM501 is not set 908# CONFIG_MFD_SM501 is not set
884# CONFIG_HTC_PASIC3 is not set 909# CONFIG_HTC_PASIC3 is not set
910# CONFIG_TWL4030_CORE is not set
885# CONFIG_MFD_TMIO is not set 911# CONFIG_MFD_TMIO is not set
886# CONFIG_PMIC_DA903X is not set 912# CONFIG_PMIC_DA903X is not set
887# CONFIG_MFD_WM8400 is not set 913# CONFIG_MFD_WM8400 is not set
888# CONFIG_MFD_WM8350_I2C is not set 914# CONFIG_MFD_WM8350_I2C is not set
889 915# CONFIG_MFD_PCF50633 is not set
890#
891# Voltage and Current regulators
892#
893# CONFIG_REGULATOR is not set 916# CONFIG_REGULATOR is not set
894# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
895# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
896# CONFIG_REGULATOR_BQ24022 is not set
897 917
898# 918#
899# Multimedia devices 919# Multimedia devices
@@ -920,6 +940,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
920CONFIG_MEDIA_TUNER_MT20XX=m 940CONFIG_MEDIA_TUNER_MT20XX=m
921CONFIG_MEDIA_TUNER_XC2028=m 941CONFIG_MEDIA_TUNER_XC2028=m
922CONFIG_MEDIA_TUNER_XC5000=m 942CONFIG_MEDIA_TUNER_XC5000=m
943# CONFIG_DVB_DYNAMIC_MINORS is not set
923CONFIG_DVB_CAPTURE_DRIVERS=y 944CONFIG_DVB_CAPTURE_DRIVERS=y
924 945
925# 946#
@@ -965,6 +986,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
965# CONFIG_DVB_FE_CUSTOMISE is not set 986# CONFIG_DVB_FE_CUSTOMISE is not set
966 987
967# 988#
989# Multistandard (satellite) frontends
990#
991# CONFIG_DVB_STB0899 is not set
992# CONFIG_DVB_STB6100 is not set
993
994#
968# DVB-S (satellite) frontends 995# DVB-S (satellite) frontends
969# 996#
970# CONFIG_DVB_CX24110 is not set 997# CONFIG_DVB_CX24110 is not set
@@ -976,8 +1003,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
976# CONFIG_DVB_STV0299 is not set 1003# CONFIG_DVB_STV0299 is not set
977# CONFIG_DVB_TDA8083 is not set 1004# CONFIG_DVB_TDA8083 is not set
978# CONFIG_DVB_TDA10086 is not set 1005# CONFIG_DVB_TDA10086 is not set
1006# CONFIG_DVB_TDA8261 is not set
979# CONFIG_DVB_VES1X93 is not set 1007# CONFIG_DVB_VES1X93 is not set
980# CONFIG_DVB_TUNER_ITD1000 is not set 1008# CONFIG_DVB_TUNER_ITD1000 is not set
1009# CONFIG_DVB_TUNER_CX24113 is not set
981# CONFIG_DVB_TDA826X is not set 1010# CONFIG_DVB_TDA826X is not set
982# CONFIG_DVB_TUA6100 is not set 1011# CONFIG_DVB_TUA6100 is not set
983# CONFIG_DVB_CX24116 is not set 1012# CONFIG_DVB_CX24116 is not set
@@ -1018,11 +1047,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1018# CONFIG_DVB_OR51132 is not set 1047# CONFIG_DVB_OR51132 is not set
1019# CONFIG_DVB_BCM3510 is not set 1048# CONFIG_DVB_BCM3510 is not set
1020# CONFIG_DVB_LGDT330X is not set 1049# CONFIG_DVB_LGDT330X is not set
1050# CONFIG_DVB_LGDT3304 is not set
1021# CONFIG_DVB_S5H1409 is not set 1051# CONFIG_DVB_S5H1409 is not set
1022# CONFIG_DVB_AU8522 is not set 1052# CONFIG_DVB_AU8522 is not set
1023# CONFIG_DVB_S5H1411 is not set 1053# CONFIG_DVB_S5H1411 is not set
1024 1054
1025# 1055#
1056# ISDB-T (terrestrial) frontends
1057#
1058# CONFIG_DVB_S921 is not set
1059
1060#
1026# Digital terrestrial only tuners/PLL 1061# Digital terrestrial only tuners/PLL
1027# 1062#
1028# CONFIG_DVB_PLL is not set 1063# CONFIG_DVB_PLL is not set
@@ -1075,6 +1110,7 @@ CONFIG_SND_OSSEMUL=y
1075CONFIG_SND_MIXER_OSS=y 1110CONFIG_SND_MIXER_OSS=y
1076CONFIG_SND_PCM_OSS=y 1111CONFIG_SND_PCM_OSS=y
1077CONFIG_SND_PCM_OSS_PLUGINS=y 1112CONFIG_SND_PCM_OSS_PLUGINS=y
1113# CONFIG_SND_HRTIMER is not set
1078# CONFIG_SND_DYNAMIC_MINORS is not set 1114# CONFIG_SND_DYNAMIC_MINORS is not set
1079# CONFIG_SND_SUPPORT_OLD_API is not set 1115# CONFIG_SND_SUPPORT_OLD_API is not set
1080CONFIG_SND_VERBOSE_PROCFS=y 1116CONFIG_SND_VERBOSE_PROCFS=y
@@ -1177,11 +1213,9 @@ CONFIG_HID_COMPAT=y
1177CONFIG_HID_A4TECH=y 1213CONFIG_HID_A4TECH=y
1178CONFIG_HID_APPLE=y 1214CONFIG_HID_APPLE=y
1179CONFIG_HID_BELKIN=y 1215CONFIG_HID_BELKIN=y
1180CONFIG_HID_BRIGHT=y
1181CONFIG_HID_CHERRY=y 1216CONFIG_HID_CHERRY=y
1182CONFIG_HID_CHICONY=y 1217CONFIG_HID_CHICONY=y
1183CONFIG_HID_CYPRESS=y 1218CONFIG_HID_CYPRESS=y
1184CONFIG_HID_DELL=y
1185CONFIG_HID_EZKEY=y 1219CONFIG_HID_EZKEY=y
1186CONFIG_HID_GYRATION=y 1220CONFIG_HID_GYRATION=y
1187CONFIG_HID_LOGITECH=y 1221CONFIG_HID_LOGITECH=y
@@ -1189,12 +1223,15 @@ CONFIG_HID_LOGITECH=y
1189# CONFIG_LOGIRUMBLEPAD2_FF is not set 1223# CONFIG_LOGIRUMBLEPAD2_FF is not set
1190CONFIG_HID_MICROSOFT=y 1224CONFIG_HID_MICROSOFT=y
1191CONFIG_HID_MONTEREY=y 1225CONFIG_HID_MONTEREY=y
1226# CONFIG_HID_NTRIG is not set
1192CONFIG_HID_PANTHERLORD=y 1227CONFIG_HID_PANTHERLORD=y
1193# CONFIG_PANTHERLORD_FF is not set 1228# CONFIG_PANTHERLORD_FF is not set
1194CONFIG_HID_PETALYNX=y 1229CONFIG_HID_PETALYNX=y
1195CONFIG_HID_SAMSUNG=y 1230CONFIG_HID_SAMSUNG=y
1196CONFIG_HID_SONY=y 1231CONFIG_HID_SONY=y
1197CONFIG_HID_SUNPLUS=y 1232CONFIG_HID_SUNPLUS=y
1233# CONFIG_GREENASIA_FF is not set
1234# CONFIG_HID_TOPSEED is not set
1198CONFIG_THRUSTMASTER_FF=m 1235CONFIG_THRUSTMASTER_FF=m
1199CONFIG_ZEROPLUS_FF=m 1236CONFIG_ZEROPLUS_FF=m
1200CONFIG_USB_SUPPORT=y 1237CONFIG_USB_SUPPORT=y
@@ -1227,6 +1264,7 @@ CONFIG_USB_EHCI_HCD=y
1227# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1264# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1228# CONFIG_USB_EHCI_FSL is not set 1265# CONFIG_USB_EHCI_FSL is not set
1229CONFIG_USB_EHCI_HCD_PPC_OF=y 1266CONFIG_USB_EHCI_HCD_PPC_OF=y
1267# CONFIG_USB_OXU210HP_HCD is not set
1230# CONFIG_USB_ISP116X_HCD is not set 1268# CONFIG_USB_ISP116X_HCD is not set
1231# CONFIG_USB_ISP1760_HCD is not set 1269# CONFIG_USB_ISP1760_HCD is not set
1232CONFIG_USB_OHCI_HCD=y 1270CONFIG_USB_OHCI_HCD=y
@@ -1252,18 +1290,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1252# CONFIG_USB_TMC is not set 1290# CONFIG_USB_TMC is not set
1253 1291
1254# 1292#
1255# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1293# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1256# 1294#
1257 1295
1258# 1296#
1259# may also be needed; see USB_STORAGE Help for more information 1297# see USB_STORAGE Help for more information
1260# 1298#
1261CONFIG_USB_STORAGE=y 1299CONFIG_USB_STORAGE=y
1262# CONFIG_USB_STORAGE_DEBUG is not set 1300# CONFIG_USB_STORAGE_DEBUG is not set
1263# CONFIG_USB_STORAGE_DATAFAB is not set 1301# CONFIG_USB_STORAGE_DATAFAB is not set
1264# CONFIG_USB_STORAGE_FREECOM is not set 1302# CONFIG_USB_STORAGE_FREECOM is not set
1265# CONFIG_USB_STORAGE_ISD200 is not set 1303# CONFIG_USB_STORAGE_ISD200 is not set
1266# CONFIG_USB_STORAGE_DPCM is not set
1267# CONFIG_USB_STORAGE_USBAT is not set 1304# CONFIG_USB_STORAGE_USBAT is not set
1268# CONFIG_USB_STORAGE_SDDR09 is not set 1305# CONFIG_USB_STORAGE_SDDR09 is not set
1269# CONFIG_USB_STORAGE_SDDR55 is not set 1306# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1311,6 +1348,10 @@ CONFIG_USB_STORAGE=y
1311# CONFIG_USB_ISIGHTFW is not set 1348# CONFIG_USB_ISIGHTFW is not set
1312# CONFIG_USB_VST is not set 1349# CONFIG_USB_VST is not set
1313# CONFIG_USB_GADGET is not set 1350# CONFIG_USB_GADGET is not set
1351
1352#
1353# OTG and related infrastructure
1354#
1314# CONFIG_UWB is not set 1355# CONFIG_UWB is not set
1315# CONFIG_MMC is not set 1356# CONFIG_MMC is not set
1316# CONFIG_MEMSTICK is not set 1357# CONFIG_MEMSTICK is not set
@@ -1348,6 +1389,7 @@ CONFIG_RTC_INTF_DEV=y
1348# CONFIG_RTC_DRV_M41T80 is not set 1389# CONFIG_RTC_DRV_M41T80 is not set
1349# CONFIG_RTC_DRV_S35390A is not set 1390# CONFIG_RTC_DRV_S35390A is not set
1350# CONFIG_RTC_DRV_FM3130 is not set 1391# CONFIG_RTC_DRV_FM3130 is not set
1392# CONFIG_RTC_DRV_RX8581 is not set
1351 1393
1352# 1394#
1353# SPI RTC drivers 1395# SPI RTC drivers
@@ -1406,7 +1448,9 @@ CONFIG_FS_MBCACHE=y
1406# CONFIG_FS_POSIX_ACL is not set 1448# CONFIG_FS_POSIX_ACL is not set
1407CONFIG_FILE_LOCKING=y 1449CONFIG_FILE_LOCKING=y
1408# CONFIG_XFS_FS is not set 1450# CONFIG_XFS_FS is not set
1451# CONFIG_GFS2_FS is not set
1409# CONFIG_OCFS2_FS is not set 1452# CONFIG_OCFS2_FS is not set
1453# CONFIG_BTRFS_FS is not set
1410CONFIG_DNOTIFY=y 1454CONFIG_DNOTIFY=y
1411CONFIG_INOTIFY=y 1455CONFIG_INOTIFY=y
1412CONFIG_INOTIFY_USER=y 1456CONFIG_INOTIFY_USER=y
@@ -1448,10 +1492,7 @@ CONFIG_TMPFS=y
1448# CONFIG_TMPFS_POSIX_ACL is not set 1492# CONFIG_TMPFS_POSIX_ACL is not set
1449# CONFIG_HUGETLB_PAGE is not set 1493# CONFIG_HUGETLB_PAGE is not set
1450# CONFIG_CONFIGFS_FS is not set 1494# CONFIG_CONFIGFS_FS is not set
1451 1495CONFIG_MISC_FILESYSTEMS=y
1452#
1453# Miscellaneous filesystems
1454#
1455CONFIG_ADFS_FS=m 1496CONFIG_ADFS_FS=m
1456# CONFIG_ADFS_FS_RW is not set 1497# CONFIG_ADFS_FS_RW is not set
1457CONFIG_AFFS_FS=m 1498CONFIG_AFFS_FS=m
@@ -1462,6 +1503,7 @@ CONFIG_BEFS_FS=m
1462CONFIG_BFS_FS=m 1503CONFIG_BFS_FS=m
1463CONFIG_EFS_FS=m 1504CONFIG_EFS_FS=m
1464CONFIG_CRAMFS=y 1505CONFIG_CRAMFS=y
1506# CONFIG_SQUASHFS is not set
1465CONFIG_VXFS_FS=m 1507CONFIG_VXFS_FS=m
1466# CONFIG_MINIX_FS is not set 1508# CONFIG_MINIX_FS is not set
1467# CONFIG_OMFS_FS is not set 1509# CONFIG_OMFS_FS is not set
@@ -1563,6 +1605,7 @@ CONFIG_NLS_UTF8=m
1563# Library routines 1605# Library routines
1564# 1606#
1565CONFIG_BITREVERSE=y 1607CONFIG_BITREVERSE=y
1608CONFIG_GENERIC_FIND_LAST_BIT=y
1566# CONFIG_CRC_CCITT is not set 1609# CONFIG_CRC_CCITT is not set
1567# CONFIG_CRC16 is not set 1610# CONFIG_CRC16 is not set
1568CONFIG_CRC_T10DIF=y 1611CONFIG_CRC_T10DIF=y
@@ -1614,6 +1657,7 @@ CONFIG_DEBUG_INFO=y
1614# CONFIG_DEBUG_MEMORY_INIT is not set 1657# CONFIG_DEBUG_MEMORY_INIT is not set
1615# CONFIG_DEBUG_LIST is not set 1658# CONFIG_DEBUG_LIST is not set
1616# CONFIG_DEBUG_SG is not set 1659# CONFIG_DEBUG_SG is not set
1660# CONFIG_DEBUG_NOTIFIERS is not set
1617# CONFIG_BOOT_PRINTK_DELAY is not set 1661# CONFIG_BOOT_PRINTK_DELAY is not set
1618# CONFIG_RCU_TORTURE_TEST is not set 1662# CONFIG_RCU_TORTURE_TEST is not set
1619# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1663# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1623,6 +1667,8 @@ CONFIG_DEBUG_INFO=y
1623# CONFIG_LATENCYTOP is not set 1667# CONFIG_LATENCYTOP is not set
1624CONFIG_SYSCTL_SYSCALL_CHECK=y 1668CONFIG_SYSCTL_SYSCALL_CHECK=y
1625CONFIG_HAVE_FUNCTION_TRACER=y 1669CONFIG_HAVE_FUNCTION_TRACER=y
1670CONFIG_HAVE_DYNAMIC_FTRACE=y
1671CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1626 1672
1627# 1673#
1628# Tracers 1674# Tracers
@@ -1631,11 +1677,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1631# CONFIG_SCHED_TRACER is not set 1677# CONFIG_SCHED_TRACER is not set
1632# CONFIG_CONTEXT_SWITCH_TRACER is not set 1678# CONFIG_CONTEXT_SWITCH_TRACER is not set
1633# CONFIG_BOOT_TRACER is not set 1679# CONFIG_BOOT_TRACER is not set
1680# CONFIG_TRACE_BRANCH_PROFILING is not set
1634# CONFIG_STACK_TRACER is not set 1681# CONFIG_STACK_TRACER is not set
1635# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1682# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1636# CONFIG_SAMPLES is not set 1683# CONFIG_SAMPLES is not set
1637CONFIG_HAVE_ARCH_KGDB=y 1684CONFIG_HAVE_ARCH_KGDB=y
1638# CONFIG_KGDB is not set 1685# CONFIG_KGDB is not set
1686CONFIG_PRINT_STACK_DEPTH=64
1639# CONFIG_DEBUG_STACKOVERFLOW is not set 1687# CONFIG_DEBUG_STACKOVERFLOW is not set
1640# CONFIG_DEBUG_STACK_USAGE is not set 1688# CONFIG_DEBUG_STACK_USAGE is not set
1641# CONFIG_DEBUG_PAGEALLOC is not set 1689# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1661,11 +1709,16 @@ CONFIG_CRYPTO=y
1661# 1709#
1662# CONFIG_CRYPTO_FIPS is not set 1710# CONFIG_CRYPTO_FIPS is not set
1663CONFIG_CRYPTO_ALGAPI=y 1711CONFIG_CRYPTO_ALGAPI=y
1712CONFIG_CRYPTO_ALGAPI2=y
1664CONFIG_CRYPTO_AEAD=y 1713CONFIG_CRYPTO_AEAD=y
1714CONFIG_CRYPTO_AEAD2=y
1665CONFIG_CRYPTO_BLKCIPHER=y 1715CONFIG_CRYPTO_BLKCIPHER=y
1716CONFIG_CRYPTO_BLKCIPHER2=y
1666CONFIG_CRYPTO_HASH=y 1717CONFIG_CRYPTO_HASH=y
1667CONFIG_CRYPTO_RNG=y 1718CONFIG_CRYPTO_HASH2=y
1719CONFIG_CRYPTO_RNG2=y
1668CONFIG_CRYPTO_MANAGER=y 1720CONFIG_CRYPTO_MANAGER=y
1721CONFIG_CRYPTO_MANAGER2=y
1669# CONFIG_CRYPTO_GF128MUL is not set 1722# CONFIG_CRYPTO_GF128MUL is not set
1670# CONFIG_CRYPTO_NULL is not set 1723# CONFIG_CRYPTO_NULL is not set
1671# CONFIG_CRYPTO_CRYPTD is not set 1724# CONFIG_CRYPTO_CRYPTD is not set
@@ -1699,7 +1752,7 @@ CONFIG_CRYPTO_HMAC=y
1699# 1752#
1700# Digest 1753# Digest
1701# 1754#
1702# CONFIG_CRYPTO_CRC32C is not set 1755CONFIG_CRYPTO_CRC32C=m
1703# CONFIG_CRYPTO_MD4 is not set 1756# CONFIG_CRYPTO_MD4 is not set
1704CONFIG_CRYPTO_MD5=y 1757CONFIG_CRYPTO_MD5=y
1705# CONFIG_CRYPTO_MICHAEL_MIC is not set 1758# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
index 6cf929259ba7..095e2ded6e8b 100644
--- a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8560_ads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:09 2008 4# Mon Jan 26 15:36:09 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,12 +78,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
81# CONFIG_FAIR_GROUP_SCHED is not set 82# CONFIG_FAIR_GROUP_SCHED is not set
82# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -116,7 +118,6 @@ CONFIG_SLUB_DEBUG=y
116CONFIG_SLUB=y 118CONFIG_SLUB=y
117# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
122CONFIG_HAVE_IOREMAP_PROT=y 123CONFIG_HAVE_IOREMAP_PROT=y
@@ -127,13 +128,11 @@ CONFIG_HAVE_CLK=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
130# CONFIG_TINY_SHMEM is not set
131CONFIG_BASE_SMALL=0 131CONFIG_BASE_SMALL=0
132# CONFIG_MODULES is not set 132# CONFIG_MODULES is not set
133CONFIG_BLOCK=y 133CONFIG_BLOCK=y
134# CONFIG_LBD is not set 134# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_LSF is not set
137# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
139 138
@@ -150,6 +149,10 @@ CONFIG_DEFAULT_AS=y
150# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
152CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
153# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
154 157
155# 158#
@@ -190,6 +193,7 @@ CONFIG_CPM2=y
190# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
191CONFIG_CPM=y 194CONFIG_CPM=y
192# CONFIG_MPC8xxx_GPIO is not set 195# CONFIG_MPC8xxx_GPIO is not set
196# CONFIG_SIMPLE_GPIO is not set
193 197
194# 198#
195# Kernel options 199# Kernel options
@@ -227,12 +231,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
227CONFIG_PAGEFLAGS_EXTENDED=y 231CONFIG_PAGEFLAGS_EXTENDED=y
228CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
229CONFIG_MIGRATION=y 233CONFIG_MIGRATION=y
230# CONFIG_RESOURCES_64BIT is not set
231# CONFIG_PHYS_ADDR_T_64BIT is not set 234# CONFIG_PHYS_ADDR_T_64BIT is not set
232CONFIG_ZONE_DMA_FLAG=1 235CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 236CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y 237CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y 238CONFIG_UNEVICTABLE_LRU=y
239CONFIG_PPC_4K_PAGES=y
240# CONFIG_PPC_16K_PAGES is not set
241# CONFIG_PPC_64K_PAGES is not set
236CONFIG_FORCE_MAX_ZONEORDER=11 242CONFIG_FORCE_MAX_ZONEORDER=11
237# CONFIG_PROC_DEVICETREE is not set 243# CONFIG_PROC_DEVICETREE is not set
238# CONFIG_CMDLINE_BOOL is not set 244# CONFIG_CMDLINE_BOOL is not set
@@ -257,6 +263,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
257# CONFIG_PCI_MSI is not set 263# CONFIG_PCI_MSI is not set
258# CONFIG_PCI_LEGACY is not set 264# CONFIG_PCI_LEGACY is not set
259CONFIG_PCI_DEBUG=y 265CONFIG_PCI_DEBUG=y
266# CONFIG_PCI_STUB is not set
260# CONFIG_PCCARD is not set 267# CONFIG_PCCARD is not set
261# CONFIG_HOTPLUG_PCI is not set 268# CONFIG_HOTPLUG_PCI is not set
262# CONFIG_HAS_RAPIDIO is not set 269# CONFIG_HAS_RAPIDIO is not set
@@ -280,6 +287,7 @@ CONFIG_NET=y
280# 287#
281# Networking options 288# Networking options
282# 289#
290CONFIG_COMPAT_NET_DEV_OPS=y
283CONFIG_PACKET=y 291CONFIG_PACKET=y
284# CONFIG_PACKET_MMAP is not set 292# CONFIG_PACKET_MMAP is not set
285CONFIG_UNIX=y 293CONFIG_UNIX=y
@@ -336,6 +344,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_ECONET is not set 344# CONFIG_ECONET is not set
337# CONFIG_WAN_ROUTER is not set 345# CONFIG_WAN_ROUTER is not set
338# CONFIG_NET_SCHED is not set 346# CONFIG_NET_SCHED is not set
347# CONFIG_DCB is not set
339 348
340# 349#
341# Network testing 350# Network testing
@@ -351,8 +360,9 @@ CONFIG_WIRELESS=y
351# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
352CONFIG_WIRELESS_OLD_REGULATORY=y 361CONFIG_WIRELESS_OLD_REGULATORY=y
353# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
363# CONFIG_LIB80211 is not set
354# CONFIG_MAC80211 is not set 364# CONFIG_MAC80211 is not set
355# CONFIG_IEEE80211 is not set 365# CONFIG_WIMAX is not set
356# CONFIG_RFKILL is not set 366# CONFIG_RFKILL is not set
357# CONFIG_NET_9P is not set 367# CONFIG_NET_9P is not set
358 368
@@ -400,6 +410,7 @@ CONFIG_MISC_DEVICES=y
400# CONFIG_TIFM_CORE is not set 410# CONFIG_TIFM_CORE is not set
401# CONFIG_ENCLOSURE_SERVICES is not set 411# CONFIG_ENCLOSURE_SERVICES is not set
402# CONFIG_HP_ILO is not set 412# CONFIG_HP_ILO is not set
413# CONFIG_C2PORT is not set
403CONFIG_HAVE_IDE=y 414CONFIG_HAVE_IDE=y
404# CONFIG_IDE is not set 415# CONFIG_IDE is not set
405 416
@@ -448,6 +459,9 @@ CONFIG_DAVICOM_PHY=y
448# CONFIG_BROADCOM_PHY is not set 459# CONFIG_BROADCOM_PHY is not set
449# CONFIG_ICPLUS_PHY is not set 460# CONFIG_ICPLUS_PHY is not set
450# CONFIG_REALTEK_PHY is not set 461# CONFIG_REALTEK_PHY is not set
462# CONFIG_NATIONAL_PHY is not set
463# CONFIG_STE10XP is not set
464# CONFIG_LSI_ET1011C_PHY is not set
451# CONFIG_FIXED_PHY is not set 465# CONFIG_FIXED_PHY is not set
452# CONFIG_MDIO_BITBANG is not set 466# CONFIG_MDIO_BITBANG is not set
453CONFIG_NET_ETHERNET=y 467CONFIG_NET_ETHERNET=y
@@ -496,6 +510,7 @@ CONFIG_GIANFAR=y
496# CONFIG_JME is not set 510# CONFIG_JME is not set
497CONFIG_NETDEV_10000=y 511CONFIG_NETDEV_10000=y
498# CONFIG_CHELSIO_T1 is not set 512# CONFIG_CHELSIO_T1 is not set
513CONFIG_CHELSIO_T3_DEPENDS=y
499# CONFIG_CHELSIO_T3 is not set 514# CONFIG_CHELSIO_T3 is not set
500# CONFIG_ENIC is not set 515# CONFIG_ENIC is not set
501# CONFIG_IXGBE is not set 516# CONFIG_IXGBE is not set
@@ -518,6 +533,10 @@ CONFIG_NETDEV_10000=y
518# CONFIG_WLAN_PRE80211 is not set 533# CONFIG_WLAN_PRE80211 is not set
519# CONFIG_WLAN_80211 is not set 534# CONFIG_WLAN_80211 is not set
520# CONFIG_IWLWIFI_LEDS is not set 535# CONFIG_IWLWIFI_LEDS is not set
536
537#
538# Enable WiMAX (Networking options) to see the WiMAX drivers
539#
521# CONFIG_WAN is not set 540# CONFIG_WAN is not set
522# CONFIG_FDDI is not set 541# CONFIG_FDDI is not set
523# CONFIG_HIPPI is not set 542# CONFIG_HIPPI is not set
@@ -583,8 +602,10 @@ CONFIG_SERIAL_CPM=y
583CONFIG_SERIAL_CPM_CONSOLE=y 602CONFIG_SERIAL_CPM_CONSOLE=y
584# CONFIG_SERIAL_JSM is not set 603# CONFIG_SERIAL_JSM is not set
585CONFIG_UNIX98_PTYS=y 604CONFIG_UNIX98_PTYS=y
605# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
586CONFIG_LEGACY_PTYS=y 606CONFIG_LEGACY_PTYS=y
587CONFIG_LEGACY_PTY_COUNT=256 607CONFIG_LEGACY_PTY_COUNT=256
608# CONFIG_HVC_UDBG is not set
588# CONFIG_IPMI_HANDLER is not set 609# CONFIG_IPMI_HANDLER is not set
589CONFIG_HW_RANDOM=y 610CONFIG_HW_RANDOM=y
590# CONFIG_NVRAM is not set 611# CONFIG_NVRAM is not set
@@ -604,6 +625,11 @@ CONFIG_GPIOLIB=y
604# CONFIG_GPIO_SYSFS is not set 625# CONFIG_GPIO_SYSFS is not set
605 626
606# 627#
628# Memory mapped GPIO expanders:
629#
630# CONFIG_GPIO_XILINX is not set
631
632#
607# I2C GPIO expanders: 633# I2C GPIO expanders:
608# 634#
609 635
@@ -637,11 +663,11 @@ CONFIG_HWMON=y
637# CONFIG_THERMAL is not set 663# CONFIG_THERMAL is not set
638# CONFIG_THERMAL_HWMON is not set 664# CONFIG_THERMAL_HWMON is not set
639# CONFIG_WATCHDOG is not set 665# CONFIG_WATCHDOG is not set
666CONFIG_SSB_POSSIBLE=y
640 667
641# 668#
642# Sonics Silicon Backplane 669# Sonics Silicon Backplane
643# 670#
644CONFIG_SSB_POSSIBLE=y
645# CONFIG_SSB is not set 671# CONFIG_SSB is not set
646 672
647# 673#
@@ -651,14 +677,7 @@ CONFIG_SSB_POSSIBLE=y
651# CONFIG_MFD_SM501 is not set 677# CONFIG_MFD_SM501 is not set
652# CONFIG_HTC_PASIC3 is not set 678# CONFIG_HTC_PASIC3 is not set
653# CONFIG_MFD_TMIO is not set 679# CONFIG_MFD_TMIO is not set
654
655#
656# Voltage and Current regulators
657#
658# CONFIG_REGULATOR is not set 680# CONFIG_REGULATOR is not set
659# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
660# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
661# CONFIG_REGULATOR_BQ24022 is not set
662 681
663# 682#
664# Multimedia devices 683# Multimedia devices
@@ -714,9 +733,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
714# 733#
715 734
716# 735#
717# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 736# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
718# 737#
719# CONFIG_USB_GADGET is not set 738# CONFIG_USB_GADGET is not set
739
740#
741# OTG and related infrastructure
742#
720# CONFIG_UWB is not set 743# CONFIG_UWB is not set
721# CONFIG_MMC is not set 744# CONFIG_MMC is not set
722# CONFIG_MEMSTICK is not set 745# CONFIG_MEMSTICK is not set
@@ -748,6 +771,7 @@ CONFIG_FS_MBCACHE=y
748CONFIG_FILE_LOCKING=y 771CONFIG_FILE_LOCKING=y
749# CONFIG_XFS_FS is not set 772# CONFIG_XFS_FS is not set
750# CONFIG_OCFS2_FS is not set 773# CONFIG_OCFS2_FS is not set
774# CONFIG_BTRFS_FS is not set
751CONFIG_DNOTIFY=y 775CONFIG_DNOTIFY=y
752CONFIG_INOTIFY=y 776CONFIG_INOTIFY=y
753CONFIG_INOTIFY_USER=y 777CONFIG_INOTIFY_USER=y
@@ -781,10 +805,7 @@ CONFIG_TMPFS=y
781# CONFIG_TMPFS_POSIX_ACL is not set 805# CONFIG_TMPFS_POSIX_ACL is not set
782# CONFIG_HUGETLB_PAGE is not set 806# CONFIG_HUGETLB_PAGE is not set
783# CONFIG_CONFIGFS_FS is not set 807# CONFIG_CONFIGFS_FS is not set
784 808CONFIG_MISC_FILESYSTEMS=y
785#
786# Miscellaneous filesystems
787#
788# CONFIG_ADFS_FS is not set 809# CONFIG_ADFS_FS is not set
789# CONFIG_AFFS_FS is not set 810# CONFIG_AFFS_FS is not set
790# CONFIG_HFS_FS is not set 811# CONFIG_HFS_FS is not set
@@ -793,6 +814,7 @@ CONFIG_TMPFS=y
793# CONFIG_BFS_FS is not set 814# CONFIG_BFS_FS is not set
794# CONFIG_EFS_FS is not set 815# CONFIG_EFS_FS is not set
795# CONFIG_CRAMFS is not set 816# CONFIG_CRAMFS is not set
817# CONFIG_SQUASHFS is not set
796# CONFIG_VXFS_FS is not set 818# CONFIG_VXFS_FS is not set
797# CONFIG_MINIX_FS is not set 819# CONFIG_MINIX_FS is not set
798# CONFIG_OMFS_FS is not set 820# CONFIG_OMFS_FS is not set
@@ -843,6 +865,7 @@ CONFIG_PARTITION_ADVANCED=y
843# Library routines 865# Library routines
844# 866#
845CONFIG_BITREVERSE=y 867CONFIG_BITREVERSE=y
868CONFIG_GENERIC_FIND_LAST_BIT=y
846# CONFIG_CRC_CCITT is not set 869# CONFIG_CRC_CCITT is not set
847# CONFIG_CRC16 is not set 870# CONFIG_CRC16 is not set
848# CONFIG_CRC_T10DIF is not set 871# CONFIG_CRC_T10DIF is not set
@@ -892,6 +915,7 @@ CONFIG_DEBUG_MUTEXES=y
892# CONFIG_DEBUG_MEMORY_INIT is not set 915# CONFIG_DEBUG_MEMORY_INIT is not set
893# CONFIG_DEBUG_LIST is not set 916# CONFIG_DEBUG_LIST is not set
894# CONFIG_DEBUG_SG is not set 917# CONFIG_DEBUG_SG is not set
918# CONFIG_DEBUG_NOTIFIERS is not set
895# CONFIG_BOOT_PRINTK_DELAY is not set 919# CONFIG_BOOT_PRINTK_DELAY is not set
896# CONFIG_RCU_TORTURE_TEST is not set 920# CONFIG_RCU_TORTURE_TEST is not set
897# CONFIG_RCU_CPU_STALL_DETECTOR is not set 921# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -901,6 +925,8 @@ CONFIG_DEBUG_MUTEXES=y
901# CONFIG_LATENCYTOP is not set 925# CONFIG_LATENCYTOP is not set
902CONFIG_SYSCTL_SYSCALL_CHECK=y 926CONFIG_SYSCTL_SYSCALL_CHECK=y
903CONFIG_HAVE_FUNCTION_TRACER=y 927CONFIG_HAVE_FUNCTION_TRACER=y
928CONFIG_HAVE_DYNAMIC_FTRACE=y
929CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
904 930
905# 931#
906# Tracers 932# Tracers
@@ -909,11 +935,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
909# CONFIG_SCHED_TRACER is not set 935# CONFIG_SCHED_TRACER is not set
910# CONFIG_CONTEXT_SWITCH_TRACER is not set 936# CONFIG_CONTEXT_SWITCH_TRACER is not set
911# CONFIG_BOOT_TRACER is not set 937# CONFIG_BOOT_TRACER is not set
938# CONFIG_TRACE_BRANCH_PROFILING is not set
912# CONFIG_STACK_TRACER is not set 939# CONFIG_STACK_TRACER is not set
913# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 940# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
914# CONFIG_SAMPLES is not set 941# CONFIG_SAMPLES is not set
915CONFIG_HAVE_ARCH_KGDB=y 942CONFIG_HAVE_ARCH_KGDB=y
916# CONFIG_KGDB is not set 943# CONFIG_KGDB is not set
944CONFIG_PRINT_STACK_DEPTH=64
917# CONFIG_DEBUG_STACKOVERFLOW is not set 945# CONFIG_DEBUG_STACKOVERFLOW is not set
918# CONFIG_DEBUG_STACK_USAGE is not set 946# CONFIG_DEBUG_STACK_USAGE is not set
919# CONFIG_DEBUG_PAGEALLOC is not set 947# CONFIG_DEBUG_PAGEALLOC is not set
@@ -939,6 +967,7 @@ CONFIG_CRYPTO=y
939# 967#
940# CONFIG_CRYPTO_FIPS is not set 968# CONFIG_CRYPTO_FIPS is not set
941# CONFIG_CRYPTO_MANAGER is not set 969# CONFIG_CRYPTO_MANAGER is not set
970# CONFIG_CRYPTO_MANAGER2 is not set
942# CONFIG_CRYPTO_GF128MUL is not set 971# CONFIG_CRYPTO_GF128MUL is not set
943# CONFIG_CRYPTO_NULL is not set 972# CONFIG_CRYPTO_NULL is not set
944# CONFIG_CRYPTO_CRYPTD is not set 973# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/mpc8568mds_defconfig b/arch/powerpc/configs/85xx/mpc8568mds_defconfig
index 597be8491812..186c1010a135 100644
--- a/arch/powerpc/configs/85xx/mpc8568mds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8568mds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:11 2008 4# Mon Jan 26 15:36:10 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 81# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -113,7 +115,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 115CONFIG_SLUB=y
114# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 120CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +124,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 128CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 129# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +131,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 131# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 132# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 133# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 134CONFIG_BLOCK=y
136# CONFIG_LBD is not set 135# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
141 139
@@ -152,6 +150,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 152CONFIG_CLASSIC_RCU=y
153# CONFIG_TREE_RCU is not set
154# CONFIG_PREEMPT_RCU is not set
155# CONFIG_TREE_RCU_TRACE is not set
156# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
156 158
157# 159#
@@ -192,6 +194,7 @@ CONFIG_QUICC_ENGINE=y
192# CONFIG_CPM2 is not set 194# CONFIG_CPM2 is not set
193# CONFIG_FSL_ULI1575 is not set 195# CONFIG_FSL_ULI1575 is not set
194# CONFIG_MPC8xxx_GPIO is not set 196# CONFIG_MPC8xxx_GPIO is not set
197# CONFIG_SIMPLE_GPIO is not set
195 198
196# 199#
197# Kernel options 200# Kernel options
@@ -230,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
233# CONFIG_RESOURCES_64BIT is not set
234# CONFIG_PHYS_ADDR_T_64BIT is not set 236# CONFIG_PHYS_ADDR_T_64BIT is not set
235CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
237CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
238CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -260,6 +265,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
260# CONFIG_PCI_MSI is not set 265# CONFIG_PCI_MSI is not set
261# CONFIG_PCI_LEGACY is not set 266# CONFIG_PCI_LEGACY is not set
262# CONFIG_PCI_DEBUG is not set 267# CONFIG_PCI_DEBUG is not set
268# CONFIG_PCI_STUB is not set
263# CONFIG_PCCARD is not set 269# CONFIG_PCCARD is not set
264# CONFIG_HOTPLUG_PCI is not set 270# CONFIG_HOTPLUG_PCI is not set
265# CONFIG_HAS_RAPIDIO is not set 271# CONFIG_HAS_RAPIDIO is not set
@@ -283,6 +289,7 @@ CONFIG_NET=y
283# 289#
284# Networking options 290# Networking options
285# 291#
292CONFIG_COMPAT_NET_DEV_OPS=y
286CONFIG_PACKET=y 293CONFIG_PACKET=y
287# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
288CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -339,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_ECONET is not set 346# CONFIG_ECONET is not set
340# CONFIG_WAN_ROUTER is not set 347# CONFIG_WAN_ROUTER is not set
341# CONFIG_NET_SCHED is not set 348# CONFIG_NET_SCHED is not set
349# CONFIG_DCB is not set
342 350
343# 351#
344# Network testing 352# Network testing
@@ -354,8 +362,9 @@ CONFIG_WIRELESS=y
354# CONFIG_CFG80211 is not set 362# CONFIG_CFG80211 is not set
355CONFIG_WIRELESS_OLD_REGULATORY=y 363CONFIG_WIRELESS_OLD_REGULATORY=y
356# CONFIG_WIRELESS_EXT is not set 364# CONFIG_WIRELESS_EXT is not set
365# CONFIG_LIB80211 is not set
357# CONFIG_MAC80211 is not set 366# CONFIG_MAC80211 is not set
358# CONFIG_IEEE80211 is not set 367# CONFIG_WIMAX is not set
359# CONFIG_RFKILL is not set 368# CONFIG_RFKILL is not set
360# CONFIG_NET_9P is not set 369# CONFIG_NET_9P is not set
361 370
@@ -401,8 +410,10 @@ CONFIG_MISC_DEVICES=y
401# CONFIG_EEPROM_93CX6 is not set 410# CONFIG_EEPROM_93CX6 is not set
402# CONFIG_SGI_IOC4 is not set 411# CONFIG_SGI_IOC4 is not set
403# CONFIG_TIFM_CORE is not set 412# CONFIG_TIFM_CORE is not set
413# CONFIG_ICS932S401 is not set
404# CONFIG_ENCLOSURE_SERVICES is not set 414# CONFIG_ENCLOSURE_SERVICES is not set
405# CONFIG_HP_ILO is not set 415# CONFIG_HP_ILO is not set
416# CONFIG_C2PORT is not set
406CONFIG_HAVE_IDE=y 417CONFIG_HAVE_IDE=y
407# CONFIG_IDE is not set 418# CONFIG_IDE is not set
408 419
@@ -445,6 +456,7 @@ CONFIG_SCSI_WAIT_SCAN=m
445# CONFIG_SCSI_SRP_ATTRS is not set 456# CONFIG_SCSI_SRP_ATTRS is not set
446CONFIG_SCSI_LOWLEVEL=y 457CONFIG_SCSI_LOWLEVEL=y
447# CONFIG_ISCSI_TCP is not set 458# CONFIG_ISCSI_TCP is not set
459# CONFIG_SCSI_CXGB3_ISCSI is not set
448# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 460# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
449# CONFIG_SCSI_3W_9XXX is not set 461# CONFIG_SCSI_3W_9XXX is not set
450# CONFIG_SCSI_ACARD is not set 462# CONFIG_SCSI_ACARD is not set
@@ -461,6 +473,8 @@ CONFIG_SCSI_LOWLEVEL=y
461# CONFIG_MEGARAID_SAS is not set 473# CONFIG_MEGARAID_SAS is not set
462# CONFIG_SCSI_HPTIOP is not set 474# CONFIG_SCSI_HPTIOP is not set
463# CONFIG_SCSI_BUSLOGIC is not set 475# CONFIG_SCSI_BUSLOGIC is not set
476# CONFIG_LIBFC is not set
477# CONFIG_FCOE is not set
464# CONFIG_SCSI_DMX3191D is not set 478# CONFIG_SCSI_DMX3191D is not set
465# CONFIG_SCSI_EATA is not set 479# CONFIG_SCSI_EATA is not set
466# CONFIG_SCSI_FUTURE_DOMAIN is not set 480# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -519,6 +533,9 @@ CONFIG_MARVELL_PHY=y
519# CONFIG_BROADCOM_PHY is not set 533# CONFIG_BROADCOM_PHY is not set
520# CONFIG_ICPLUS_PHY is not set 534# CONFIG_ICPLUS_PHY is not set
521# CONFIG_REALTEK_PHY is not set 535# CONFIG_REALTEK_PHY is not set
536# CONFIG_NATIONAL_PHY is not set
537# CONFIG_STE10XP is not set
538# CONFIG_LSI_ET1011C_PHY is not set
522# CONFIG_FIXED_PHY is not set 539# CONFIG_FIXED_PHY is not set
523# CONFIG_MDIO_BITBANG is not set 540# CONFIG_MDIO_BITBANG is not set
524CONFIG_NET_ETHERNET=y 541CONFIG_NET_ETHERNET=y
@@ -564,6 +581,7 @@ CONFIG_GIANFAR=y
564# CONFIG_JME is not set 581# CONFIG_JME is not set
565CONFIG_NETDEV_10000=y 582CONFIG_NETDEV_10000=y
566# CONFIG_CHELSIO_T1 is not set 583# CONFIG_CHELSIO_T1 is not set
584CONFIG_CHELSIO_T3_DEPENDS=y
567# CONFIG_CHELSIO_T3 is not set 585# CONFIG_CHELSIO_T3 is not set
568# CONFIG_ENIC is not set 586# CONFIG_ENIC is not set
569# CONFIG_IXGBE is not set 587# CONFIG_IXGBE is not set
@@ -586,6 +604,10 @@ CONFIG_NETDEV_10000=y
586# CONFIG_WLAN_PRE80211 is not set 604# CONFIG_WLAN_PRE80211 is not set
587# CONFIG_WLAN_80211 is not set 605# CONFIG_WLAN_80211 is not set
588# CONFIG_IWLWIFI_LEDS is not set 606# CONFIG_IWLWIFI_LEDS is not set
607
608#
609# Enable WiMAX (Networking options) to see the WiMAX drivers
610#
589# CONFIG_WAN is not set 611# CONFIG_WAN is not set
590# CONFIG_FDDI is not set 612# CONFIG_FDDI is not set
591# CONFIG_HIPPI is not set 613# CONFIG_HIPPI is not set
@@ -658,8 +680,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
658# CONFIG_SERIAL_OF_PLATFORM is not set 680# CONFIG_SERIAL_OF_PLATFORM is not set
659# CONFIG_SERIAL_QE is not set 681# CONFIG_SERIAL_QE is not set
660CONFIG_UNIX98_PTYS=y 682CONFIG_UNIX98_PTYS=y
683# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
661CONFIG_LEGACY_PTYS=y 684CONFIG_LEGACY_PTYS=y
662CONFIG_LEGACY_PTY_COUNT=256 685CONFIG_LEGACY_PTY_COUNT=256
686# CONFIG_HVC_UDBG is not set
663# CONFIG_IPMI_HANDLER is not set 687# CONFIG_IPMI_HANDLER is not set
664CONFIG_HW_RANDOM=y 688CONFIG_HW_RANDOM=y
665# CONFIG_NVRAM is not set 689# CONFIG_NVRAM is not set
@@ -723,8 +747,8 @@ CONFIG_I2C_MPC=y
723# Miscellaneous I2C Chip support 747# Miscellaneous I2C Chip support
724# 748#
725# CONFIG_DS1682 is not set 749# CONFIG_DS1682 is not set
726# CONFIG_AT24 is not set 750# CONFIG_EEPROM_AT24 is not set
727# CONFIG_SENSORS_EEPROM is not set 751# CONFIG_EEPROM_LEGACY is not set
728# CONFIG_SENSORS_PCF8574 is not set 752# CONFIG_SENSORS_PCF8574 is not set
729# CONFIG_PCF8575 is not set 753# CONFIG_PCF8575 is not set
730# CONFIG_SENSORS_PCA9539 is not set 754# CONFIG_SENSORS_PCA9539 is not set
@@ -750,8 +774,10 @@ CONFIG_HWMON=y
750# CONFIG_SENSORS_ADM1029 is not set 774# CONFIG_SENSORS_ADM1029 is not set
751# CONFIG_SENSORS_ADM1031 is not set 775# CONFIG_SENSORS_ADM1031 is not set
752# CONFIG_SENSORS_ADM9240 is not set 776# CONFIG_SENSORS_ADM9240 is not set
777# CONFIG_SENSORS_ADT7462 is not set
753# CONFIG_SENSORS_ADT7470 is not set 778# CONFIG_SENSORS_ADT7470 is not set
754# CONFIG_SENSORS_ADT7473 is not set 779# CONFIG_SENSORS_ADT7473 is not set
780# CONFIG_SENSORS_ADT7475 is not set
755# CONFIG_SENSORS_ATXP1 is not set 781# CONFIG_SENSORS_ATXP1 is not set
756# CONFIG_SENSORS_DS1621 is not set 782# CONFIG_SENSORS_DS1621 is not set
757# CONFIG_SENSORS_I5K_AMB is not set 783# CONFIG_SENSORS_I5K_AMB is not set
@@ -772,6 +798,7 @@ CONFIG_HWMON=y
772# CONFIG_SENSORS_LM90 is not set 798# CONFIG_SENSORS_LM90 is not set
773# CONFIG_SENSORS_LM92 is not set 799# CONFIG_SENSORS_LM92 is not set
774# CONFIG_SENSORS_LM93 is not set 800# CONFIG_SENSORS_LM93 is not set
801# CONFIG_SENSORS_LTC4245 is not set
775# CONFIG_SENSORS_MAX1619 is not set 802# CONFIG_SENSORS_MAX1619 is not set
776# CONFIG_SENSORS_MAX6650 is not set 803# CONFIG_SENSORS_MAX6650 is not set
777# CONFIG_SENSORS_PC87360 is not set 804# CONFIG_SENSORS_PC87360 is not set
@@ -812,11 +839,11 @@ CONFIG_WATCHDOG=y
812# 839#
813# CONFIG_PCIPCWATCHDOG is not set 840# CONFIG_PCIPCWATCHDOG is not set
814# CONFIG_WDTPCI is not set 841# CONFIG_WDTPCI is not set
842CONFIG_SSB_POSSIBLE=y
815 843
816# 844#
817# Sonics Silicon Backplane 845# Sonics Silicon Backplane
818# 846#
819CONFIG_SSB_POSSIBLE=y
820# CONFIG_SSB is not set 847# CONFIG_SSB is not set
821 848
822# 849#
@@ -825,18 +852,13 @@ CONFIG_SSB_POSSIBLE=y
825# CONFIG_MFD_CORE is not set 852# CONFIG_MFD_CORE is not set
826# CONFIG_MFD_SM501 is not set 853# CONFIG_MFD_SM501 is not set
827# CONFIG_HTC_PASIC3 is not set 854# CONFIG_HTC_PASIC3 is not set
855# CONFIG_TWL4030_CORE is not set
828# CONFIG_MFD_TMIO is not set 856# CONFIG_MFD_TMIO is not set
829# CONFIG_PMIC_DA903X is not set 857# CONFIG_PMIC_DA903X is not set
830# CONFIG_MFD_WM8400 is not set 858# CONFIG_MFD_WM8400 is not set
831# CONFIG_MFD_WM8350_I2C is not set 859# CONFIG_MFD_WM8350_I2C is not set
832 860# CONFIG_MFD_PCF50633 is not set
833#
834# Voltage and Current regulators
835#
836# CONFIG_REGULATOR is not set 861# CONFIG_REGULATOR is not set
837# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
838# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
839# CONFIG_REGULATOR_BQ24022 is not set
840 862
841# 863#
842# Multimedia devices 864# Multimedia devices
@@ -892,9 +914,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
892# 914#
893 915
894# 916#
895# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 917# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
896# 918#
897# CONFIG_USB_GADGET is not set 919# CONFIG_USB_GADGET is not set
920
921#
922# OTG and related infrastructure
923#
898# CONFIG_UWB is not set 924# CONFIG_UWB is not set
899# CONFIG_MMC is not set 925# CONFIG_MMC is not set
900# CONFIG_MEMSTICK is not set 926# CONFIG_MEMSTICK is not set
@@ -932,6 +958,7 @@ CONFIG_RTC_DRV_DS1374=y
932# CONFIG_RTC_DRV_M41T80 is not set 958# CONFIG_RTC_DRV_M41T80 is not set
933# CONFIG_RTC_DRV_S35390A is not set 959# CONFIG_RTC_DRV_S35390A is not set
934# CONFIG_RTC_DRV_FM3130 is not set 960# CONFIG_RTC_DRV_FM3130 is not set
961# CONFIG_RTC_DRV_RX8581 is not set
935 962
936# 963#
937# SPI RTC drivers 964# SPI RTC drivers
@@ -979,6 +1006,7 @@ CONFIG_FS_MBCACHE=y
979CONFIG_FILE_LOCKING=y 1006CONFIG_FILE_LOCKING=y
980# CONFIG_XFS_FS is not set 1007# CONFIG_XFS_FS is not set
981# CONFIG_OCFS2_FS is not set 1008# CONFIG_OCFS2_FS is not set
1009# CONFIG_BTRFS_FS is not set
982CONFIG_DNOTIFY=y 1010CONFIG_DNOTIFY=y
983CONFIG_INOTIFY=y 1011CONFIG_INOTIFY=y
984CONFIG_INOTIFY_USER=y 1012CONFIG_INOTIFY_USER=y
@@ -1012,10 +1040,7 @@ CONFIG_TMPFS=y
1012# CONFIG_TMPFS_POSIX_ACL is not set 1040# CONFIG_TMPFS_POSIX_ACL is not set
1013# CONFIG_HUGETLB_PAGE is not set 1041# CONFIG_HUGETLB_PAGE is not set
1014# CONFIG_CONFIGFS_FS is not set 1042# CONFIG_CONFIGFS_FS is not set
1015 1043CONFIG_MISC_FILESYSTEMS=y
1016#
1017# Miscellaneous filesystems
1018#
1019# CONFIG_ADFS_FS is not set 1044# CONFIG_ADFS_FS is not set
1020# CONFIG_AFFS_FS is not set 1045# CONFIG_AFFS_FS is not set
1021# CONFIG_HFS_FS is not set 1046# CONFIG_HFS_FS is not set
@@ -1024,6 +1049,7 @@ CONFIG_TMPFS=y
1024# CONFIG_BFS_FS is not set 1049# CONFIG_BFS_FS is not set
1025# CONFIG_EFS_FS is not set 1050# CONFIG_EFS_FS is not set
1026# CONFIG_CRAMFS is not set 1051# CONFIG_CRAMFS is not set
1052# CONFIG_SQUASHFS is not set
1027# CONFIG_VXFS_FS is not set 1053# CONFIG_VXFS_FS is not set
1028# CONFIG_MINIX_FS is not set 1054# CONFIG_MINIX_FS is not set
1029# CONFIG_OMFS_FS is not set 1055# CONFIG_OMFS_FS is not set
@@ -1077,6 +1103,7 @@ CONFIG_PARTITION_ADVANCED=y
1077# Library routines 1103# Library routines
1078# 1104#
1079CONFIG_BITREVERSE=y 1105CONFIG_BITREVERSE=y
1106CONFIG_GENERIC_FIND_LAST_BIT=y
1080# CONFIG_CRC_CCITT is not set 1107# CONFIG_CRC_CCITT is not set
1081# CONFIG_CRC16 is not set 1108# CONFIG_CRC16 is not set
1082# CONFIG_CRC_T10DIF is not set 1109# CONFIG_CRC_T10DIF is not set
@@ -1126,6 +1153,7 @@ CONFIG_SCHED_DEBUG=y
1126# CONFIG_DEBUG_MEMORY_INIT is not set 1153# CONFIG_DEBUG_MEMORY_INIT is not set
1127# CONFIG_DEBUG_LIST is not set 1154# CONFIG_DEBUG_LIST is not set
1128# CONFIG_DEBUG_SG is not set 1155# CONFIG_DEBUG_SG is not set
1156# CONFIG_DEBUG_NOTIFIERS is not set
1129# CONFIG_BOOT_PRINTK_DELAY is not set 1157# CONFIG_BOOT_PRINTK_DELAY is not set
1130# CONFIG_RCU_TORTURE_TEST is not set 1158# CONFIG_RCU_TORTURE_TEST is not set
1131# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1159# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1135,6 +1163,8 @@ CONFIG_SCHED_DEBUG=y
1135# CONFIG_LATENCYTOP is not set 1163# CONFIG_LATENCYTOP is not set
1136CONFIG_SYSCTL_SYSCALL_CHECK=y 1164CONFIG_SYSCTL_SYSCALL_CHECK=y
1137CONFIG_HAVE_FUNCTION_TRACER=y 1165CONFIG_HAVE_FUNCTION_TRACER=y
1166CONFIG_HAVE_DYNAMIC_FTRACE=y
1167CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1138 1168
1139# 1169#
1140# Tracers 1170# Tracers
@@ -1143,11 +1173,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1143# CONFIG_SCHED_TRACER is not set 1173# CONFIG_SCHED_TRACER is not set
1144# CONFIG_CONTEXT_SWITCH_TRACER is not set 1174# CONFIG_CONTEXT_SWITCH_TRACER is not set
1145# CONFIG_BOOT_TRACER is not set 1175# CONFIG_BOOT_TRACER is not set
1176# CONFIG_TRACE_BRANCH_PROFILING is not set
1146# CONFIG_STACK_TRACER is not set 1177# CONFIG_STACK_TRACER is not set
1147# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1178# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1148# CONFIG_SAMPLES is not set 1179# CONFIG_SAMPLES is not set
1149CONFIG_HAVE_ARCH_KGDB=y 1180CONFIG_HAVE_ARCH_KGDB=y
1150# CONFIG_KGDB is not set 1181# CONFIG_KGDB is not set
1182CONFIG_PRINT_STACK_DEPTH=64
1151# CONFIG_DEBUG_STACKOVERFLOW is not set 1183# CONFIG_DEBUG_STACKOVERFLOW is not set
1152# CONFIG_DEBUG_STACK_USAGE is not set 1184# CONFIG_DEBUG_STACK_USAGE is not set
1153# CONFIG_DEBUG_PAGEALLOC is not set 1185# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1184,11 +1216,15 @@ CONFIG_CRYPTO=y
1184# 1216#
1185# CONFIG_CRYPTO_FIPS is not set 1217# CONFIG_CRYPTO_FIPS is not set
1186CONFIG_CRYPTO_ALGAPI=y 1218CONFIG_CRYPTO_ALGAPI=y
1187CONFIG_CRYPTO_AEAD=y 1219CONFIG_CRYPTO_ALGAPI2=y
1220CONFIG_CRYPTO_AEAD2=y
1188CONFIG_CRYPTO_BLKCIPHER=y 1221CONFIG_CRYPTO_BLKCIPHER=y
1222CONFIG_CRYPTO_BLKCIPHER2=y
1189CONFIG_CRYPTO_HASH=y 1223CONFIG_CRYPTO_HASH=y
1190CONFIG_CRYPTO_RNG=y 1224CONFIG_CRYPTO_HASH2=y
1225CONFIG_CRYPTO_RNG2=y
1191CONFIG_CRYPTO_MANAGER=y 1226CONFIG_CRYPTO_MANAGER=y
1227CONFIG_CRYPTO_MANAGER2=y
1192# CONFIG_CRYPTO_GF128MUL is not set 1228# CONFIG_CRYPTO_GF128MUL is not set
1193# CONFIG_CRYPTO_NULL is not set 1229# CONFIG_CRYPTO_NULL is not set
1194# CONFIG_CRYPTO_CRYPTD is not set 1230# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
index 32aeb79216f7..813223ae174d 100644
--- a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8572_ds_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.28-rc8 3# Linux kernel version: 2.6.29-rc2
4# Tue Dec 30 11:17:46 2008 4# Mon Jan 26 15:36:12 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -48,7 +48,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
48CONFIG_PPC=y 48CONFIG_PPC=y
49CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
50CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
51CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
52CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
53CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
54CONFIG_OF=y 54CONFIG_OF=y
@@ -81,12 +81,12 @@ CONFIG_AUDIT=y
81CONFIG_IKCONFIG=y 81CONFIG_IKCONFIG=y
82CONFIG_IKCONFIG_PROC=y 82CONFIG_IKCONFIG_PROC=y
83CONFIG_LOG_BUF_SHIFT=14 83CONFIG_LOG_BUF_SHIFT=14
84# CONFIG_CGROUPS is not set
85CONFIG_GROUP_SCHED=y 84CONFIG_GROUP_SCHED=y
86# CONFIG_FAIR_GROUP_SCHED is not set 85# CONFIG_FAIR_GROUP_SCHED is not set
87# CONFIG_RT_GROUP_SCHED is not set 86# CONFIG_RT_GROUP_SCHED is not set
88CONFIG_USER_SCHED=y 87CONFIG_USER_SCHED=y
89# CONFIG_CGROUP_SCHED is not set 88# CONFIG_CGROUP_SCHED is not set
89# CONFIG_CGROUPS is not set
90CONFIG_SYSFS_DEPRECATED=y 90CONFIG_SYSFS_DEPRECATED=y
91CONFIG_SYSFS_DEPRECATED_V2=y 91CONFIG_SYSFS_DEPRECATED_V2=y
92# CONFIG_RELAY is not set 92# CONFIG_RELAY is not set
@@ -99,6 +99,7 @@ CONFIG_EMBEDDED=y
99CONFIG_SYSCTL_SYSCALL=y 99CONFIG_SYSCTL_SYSCALL=y
100CONFIG_KALLSYMS=y 100CONFIG_KALLSYMS=y
101CONFIG_KALLSYMS_ALL=y 101CONFIG_KALLSYMS_ALL=y
102CONFIG_KALLSYMS_STRIP_GENERATED=y
102CONFIG_KALLSYMS_EXTRA_PASS=y 103CONFIG_KALLSYMS_EXTRA_PASS=y
103CONFIG_HOTPLUG=y 104CONFIG_HOTPLUG=y
104CONFIG_PRINTK=y 105CONFIG_PRINTK=y
@@ -121,7 +122,6 @@ CONFIG_SLUB_DEBUG=y
121CONFIG_SLUB=y 122CONFIG_SLUB=y
122# CONFIG_SLOB is not set 123# CONFIG_SLOB is not set
123# CONFIG_PROFILING is not set 124# CONFIG_PROFILING is not set
124# CONFIG_MARKERS is not set
125CONFIG_HAVE_OPROFILE=y 125CONFIG_HAVE_OPROFILE=y
126# CONFIG_KPROBES is not set 126# CONFIG_KPROBES is not set
127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -133,7 +133,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
134CONFIG_SLABINFO=y 134CONFIG_SLABINFO=y
135CONFIG_RT_MUTEXES=y 135CONFIG_RT_MUTEXES=y
136# CONFIG_TINY_SHMEM is not set
137CONFIG_BASE_SMALL=0 136CONFIG_BASE_SMALL=0
138CONFIG_MODULES=y 137CONFIG_MODULES=y
139# CONFIG_MODULE_FORCE_LOAD is not set 138# CONFIG_MODULE_FORCE_LOAD is not set
@@ -141,12 +140,10 @@ CONFIG_MODULE_UNLOAD=y
141CONFIG_MODULE_FORCE_UNLOAD=y 140CONFIG_MODULE_FORCE_UNLOAD=y
142CONFIG_MODVERSIONS=y 141CONFIG_MODVERSIONS=y
143# CONFIG_MODULE_SRCVERSION_ALL is not set 142# CONFIG_MODULE_SRCVERSION_ALL is not set
144CONFIG_KMOD=y
145CONFIG_STOP_MACHINE=y 143CONFIG_STOP_MACHINE=y
146CONFIG_BLOCK=y 144CONFIG_BLOCK=y
147CONFIG_LBD=y 145CONFIG_LBD=y
148# CONFIG_BLK_DEV_IO_TRACE is not set 146# CONFIG_BLK_DEV_IO_TRACE is not set
149# CONFIG_LSF is not set
150# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
151# CONFIG_BLK_DEV_INTEGRITY is not set 148# CONFIG_BLK_DEV_INTEGRITY is not set
152 149
@@ -163,6 +160,10 @@ CONFIG_DEFAULT_CFQ=y
163# CONFIG_DEFAULT_NOOP is not set 160# CONFIG_DEFAULT_NOOP is not set
164CONFIG_DEFAULT_IOSCHED="cfq" 161CONFIG_DEFAULT_IOSCHED="cfq"
165CONFIG_CLASSIC_RCU=y 162CONFIG_CLASSIC_RCU=y
163# CONFIG_TREE_RCU is not set
164# CONFIG_PREEMPT_RCU is not set
165# CONFIG_TREE_RCU_TRACE is not set
166# CONFIG_PREEMPT_RCU_TRACE is not set
166# CONFIG_FREEZER is not set 167# CONFIG_FREEZER is not set
167 168
168# 169#
@@ -242,7 +243,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
242CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
243CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
244CONFIG_MIGRATION=y 245CONFIG_MIGRATION=y
245# CONFIG_RESOURCES_64BIT is not set
246# CONFIG_PHYS_ADDR_T_64BIT is not set 246# CONFIG_PHYS_ADDR_T_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -276,6 +276,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
276# CONFIG_PCI_MSI is not set 276# CONFIG_PCI_MSI is not set
277# CONFIG_PCI_LEGACY is not set 277# CONFIG_PCI_LEGACY is not set
278# CONFIG_PCI_DEBUG is not set 278# CONFIG_PCI_DEBUG is not set
279# CONFIG_PCI_STUB is not set
279# CONFIG_PCCARD is not set 280# CONFIG_PCCARD is not set
280# CONFIG_HOTPLUG_PCI is not set 281# CONFIG_HOTPLUG_PCI is not set
281# CONFIG_HAS_RAPIDIO is not set 282# CONFIG_HAS_RAPIDIO is not set
@@ -299,6 +300,7 @@ CONFIG_NET=y
299# 300#
300# Networking options 301# Networking options
301# 302#
303CONFIG_COMPAT_NET_DEV_OPS=y
302CONFIG_PACKET=y 304CONFIG_PACKET=y
303# CONFIG_PACKET_MMAP is not set 305# CONFIG_PACKET_MMAP is not set
304CONFIG_UNIX=y 306CONFIG_UNIX=y
@@ -387,6 +389,7 @@ CONFIG_SCTP_HMAC_MD5=y
387# CONFIG_ECONET is not set 389# CONFIG_ECONET is not set
388# CONFIG_WAN_ROUTER is not set 390# CONFIG_WAN_ROUTER is not set
389# CONFIG_NET_SCHED is not set 391# CONFIG_NET_SCHED is not set
392# CONFIG_DCB is not set
390 393
391# 394#
392# Network testing 395# Network testing
@@ -403,8 +406,9 @@ CONFIG_WIRELESS=y
403# CONFIG_CFG80211 is not set 406# CONFIG_CFG80211 is not set
404CONFIG_WIRELESS_OLD_REGULATORY=y 407CONFIG_WIRELESS_OLD_REGULATORY=y
405# CONFIG_WIRELESS_EXT is not set 408# CONFIG_WIRELESS_EXT is not set
409# CONFIG_LIB80211 is not set
406# CONFIG_MAC80211 is not set 410# CONFIG_MAC80211 is not set
407# CONFIG_IEEE80211 is not set 411# CONFIG_WIMAX is not set
408# CONFIG_RFKILL is not set 412# CONFIG_RFKILL is not set
409# CONFIG_NET_9P is not set 413# CONFIG_NET_9P is not set
410 414
@@ -500,6 +504,7 @@ CONFIG_SCSI_WAIT_SCAN=m
500# CONFIG_SCSI_SRP_ATTRS is not set 504# CONFIG_SCSI_SRP_ATTRS is not set
501CONFIG_SCSI_LOWLEVEL=y 505CONFIG_SCSI_LOWLEVEL=y
502# CONFIG_ISCSI_TCP is not set 506# CONFIG_ISCSI_TCP is not set
507# CONFIG_SCSI_CXGB3_ISCSI is not set
503# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 508# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
504# CONFIG_SCSI_3W_9XXX is not set 509# CONFIG_SCSI_3W_9XXX is not set
505# CONFIG_SCSI_ACARD is not set 510# CONFIG_SCSI_ACARD is not set
@@ -516,6 +521,8 @@ CONFIG_SCSI_LOWLEVEL=y
516# CONFIG_MEGARAID_SAS is not set 521# CONFIG_MEGARAID_SAS is not set
517# CONFIG_SCSI_HPTIOP is not set 522# CONFIG_SCSI_HPTIOP is not set
518# CONFIG_SCSI_BUSLOGIC is not set 523# CONFIG_SCSI_BUSLOGIC is not set
524# CONFIG_LIBFC is not set
525# CONFIG_FCOE is not set
519# CONFIG_SCSI_DMX3191D is not set 526# CONFIG_SCSI_DMX3191D is not set
520# CONFIG_SCSI_EATA is not set 527# CONFIG_SCSI_EATA is not set
521# CONFIG_SCSI_FUTURE_DOMAIN is not set 528# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -635,6 +642,9 @@ CONFIG_VITESSE_PHY=y
635# CONFIG_BROADCOM_PHY is not set 642# CONFIG_BROADCOM_PHY is not set
636# CONFIG_ICPLUS_PHY is not set 643# CONFIG_ICPLUS_PHY is not set
637# CONFIG_REALTEK_PHY is not set 644# CONFIG_REALTEK_PHY is not set
645# CONFIG_NATIONAL_PHY is not set
646# CONFIG_STE10XP is not set
647# CONFIG_LSI_ET1011C_PHY is not set
638# CONFIG_FIXED_PHY is not set 648# CONFIG_FIXED_PHY is not set
639# CONFIG_MDIO_BITBANG is not set 649# CONFIG_MDIO_BITBANG is not set
640CONFIG_NET_ETHERNET=y 650CONFIG_NET_ETHERNET=y
@@ -679,6 +689,7 @@ CONFIG_GIANFAR=y
679# CONFIG_JME is not set 689# CONFIG_JME is not set
680CONFIG_NETDEV_10000=y 690CONFIG_NETDEV_10000=y
681# CONFIG_CHELSIO_T1 is not set 691# CONFIG_CHELSIO_T1 is not set
692CONFIG_CHELSIO_T3_DEPENDS=y
682# CONFIG_CHELSIO_T3 is not set 693# CONFIG_CHELSIO_T3 is not set
683# CONFIG_ENIC is not set 694# CONFIG_ENIC is not set
684# CONFIG_IXGBE is not set 695# CONFIG_IXGBE is not set
@@ -703,6 +714,10 @@ CONFIG_NETDEV_10000=y
703# CONFIG_IWLWIFI_LEDS is not set 714# CONFIG_IWLWIFI_LEDS is not set
704 715
705# 716#
717# Enable WiMAX (Networking options) to see the WiMAX drivers
718#
719
720#
706# USB Network Adapters 721# USB Network Adapters
707# 722#
708# CONFIG_USB_CATC is not set 723# CONFIG_USB_CATC is not set
@@ -794,6 +809,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
794# CONFIG_SERIAL_JSM is not set 809# CONFIG_SERIAL_JSM is not set
795# CONFIG_SERIAL_OF_PLATFORM is not set 810# CONFIG_SERIAL_OF_PLATFORM is not set
796CONFIG_UNIX98_PTYS=y 811CONFIG_UNIX98_PTYS=y
812# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
797CONFIG_LEGACY_PTYS=y 813CONFIG_LEGACY_PTYS=y
798CONFIG_LEGACY_PTY_COUNT=256 814CONFIG_LEGACY_PTY_COUNT=256
799# CONFIG_HVC_UDBG is not set 815# CONFIG_HVC_UDBG is not set
@@ -861,8 +877,8 @@ CONFIG_I2C_MPC=y
861# Miscellaneous I2C Chip support 877# Miscellaneous I2C Chip support
862# 878#
863# CONFIG_DS1682 is not set 879# CONFIG_DS1682 is not set
864# CONFIG_AT24 is not set 880# CONFIG_EEPROM_AT24 is not set
865CONFIG_SENSORS_EEPROM=y 881CONFIG_EEPROM_LEGACY=y
866# CONFIG_SENSORS_PCF8574 is not set 882# CONFIG_SENSORS_PCF8574 is not set
867# CONFIG_PCF8575 is not set 883# CONFIG_PCF8575 is not set
868# CONFIG_SENSORS_PCA9539 is not set 884# CONFIG_SENSORS_PCA9539 is not set
@@ -895,10 +911,12 @@ CONFIG_SSB_POSSIBLE=y
895# CONFIG_MFD_CORE is not set 911# CONFIG_MFD_CORE is not set
896# CONFIG_MFD_SM501 is not set 912# CONFIG_MFD_SM501 is not set
897# CONFIG_HTC_PASIC3 is not set 913# CONFIG_HTC_PASIC3 is not set
914# CONFIG_TWL4030_CORE is not set
898# CONFIG_MFD_TMIO is not set 915# CONFIG_MFD_TMIO is not set
899# CONFIG_PMIC_DA903X is not set 916# CONFIG_PMIC_DA903X is not set
900# CONFIG_MFD_WM8400 is not set 917# CONFIG_MFD_WM8400 is not set
901# CONFIG_MFD_WM8350_I2C is not set 918# CONFIG_MFD_WM8350_I2C is not set
919# CONFIG_MFD_PCF50633 is not set
902# CONFIG_REGULATOR is not set 920# CONFIG_REGULATOR is not set
903 921
904# 922#
@@ -926,6 +944,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
926CONFIG_MEDIA_TUNER_MT20XX=m 944CONFIG_MEDIA_TUNER_MT20XX=m
927CONFIG_MEDIA_TUNER_XC2028=m 945CONFIG_MEDIA_TUNER_XC2028=m
928CONFIG_MEDIA_TUNER_XC5000=m 946CONFIG_MEDIA_TUNER_XC5000=m
947# CONFIG_DVB_DYNAMIC_MINORS is not set
929CONFIG_DVB_CAPTURE_DRIVERS=y 948CONFIG_DVB_CAPTURE_DRIVERS=y
930 949
931# 950#
@@ -971,6 +990,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
971# CONFIG_DVB_FE_CUSTOMISE is not set 990# CONFIG_DVB_FE_CUSTOMISE is not set
972 991
973# 992#
993# Multistandard (satellite) frontends
994#
995# CONFIG_DVB_STB0899 is not set
996# CONFIG_DVB_STB6100 is not set
997
998#
974# DVB-S (satellite) frontends 999# DVB-S (satellite) frontends
975# 1000#
976# CONFIG_DVB_CX24110 is not set 1001# CONFIG_DVB_CX24110 is not set
@@ -982,8 +1007,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
982# CONFIG_DVB_STV0299 is not set 1007# CONFIG_DVB_STV0299 is not set
983# CONFIG_DVB_TDA8083 is not set 1008# CONFIG_DVB_TDA8083 is not set
984# CONFIG_DVB_TDA10086 is not set 1009# CONFIG_DVB_TDA10086 is not set
1010# CONFIG_DVB_TDA8261 is not set
985# CONFIG_DVB_VES1X93 is not set 1011# CONFIG_DVB_VES1X93 is not set
986# CONFIG_DVB_TUNER_ITD1000 is not set 1012# CONFIG_DVB_TUNER_ITD1000 is not set
1013# CONFIG_DVB_TUNER_CX24113 is not set
987# CONFIG_DVB_TDA826X is not set 1014# CONFIG_DVB_TDA826X is not set
988# CONFIG_DVB_TUA6100 is not set 1015# CONFIG_DVB_TUA6100 is not set
989# CONFIG_DVB_CX24116 is not set 1016# CONFIG_DVB_CX24116 is not set
@@ -1024,11 +1051,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1024# CONFIG_DVB_OR51132 is not set 1051# CONFIG_DVB_OR51132 is not set
1025# CONFIG_DVB_BCM3510 is not set 1052# CONFIG_DVB_BCM3510 is not set
1026# CONFIG_DVB_LGDT330X is not set 1053# CONFIG_DVB_LGDT330X is not set
1054# CONFIG_DVB_LGDT3304 is not set
1027# CONFIG_DVB_S5H1409 is not set 1055# CONFIG_DVB_S5H1409 is not set
1028# CONFIG_DVB_AU8522 is not set 1056# CONFIG_DVB_AU8522 is not set
1029# CONFIG_DVB_S5H1411 is not set 1057# CONFIG_DVB_S5H1411 is not set
1030 1058
1031# 1059#
1060# ISDB-T (terrestrial) frontends
1061#
1062# CONFIG_DVB_S921 is not set
1063
1064#
1032# Digital terrestrial only tuners/PLL 1065# Digital terrestrial only tuners/PLL
1033# 1066#
1034# CONFIG_DVB_PLL is not set 1067# CONFIG_DVB_PLL is not set
@@ -1081,6 +1114,7 @@ CONFIG_SND_OSSEMUL=y
1081CONFIG_SND_MIXER_OSS=y 1114CONFIG_SND_MIXER_OSS=y
1082CONFIG_SND_PCM_OSS=y 1115CONFIG_SND_PCM_OSS=y
1083CONFIG_SND_PCM_OSS_PLUGINS=y 1116CONFIG_SND_PCM_OSS_PLUGINS=y
1117# CONFIG_SND_HRTIMER is not set
1084# CONFIG_SND_DYNAMIC_MINORS is not set 1118# CONFIG_SND_DYNAMIC_MINORS is not set
1085# CONFIG_SND_SUPPORT_OLD_API is not set 1119# CONFIG_SND_SUPPORT_OLD_API is not set
1086CONFIG_SND_VERBOSE_PROCFS=y 1120CONFIG_SND_VERBOSE_PROCFS=y
@@ -1183,11 +1217,9 @@ CONFIG_HID_COMPAT=y
1183CONFIG_HID_A4TECH=y 1217CONFIG_HID_A4TECH=y
1184CONFIG_HID_APPLE=y 1218CONFIG_HID_APPLE=y
1185CONFIG_HID_BELKIN=y 1219CONFIG_HID_BELKIN=y
1186CONFIG_HID_BRIGHT=y
1187CONFIG_HID_CHERRY=y 1220CONFIG_HID_CHERRY=y
1188CONFIG_HID_CHICONY=y 1221CONFIG_HID_CHICONY=y
1189CONFIG_HID_CYPRESS=y 1222CONFIG_HID_CYPRESS=y
1190CONFIG_HID_DELL=y
1191CONFIG_HID_EZKEY=y 1223CONFIG_HID_EZKEY=y
1192CONFIG_HID_GYRATION=y 1224CONFIG_HID_GYRATION=y
1193CONFIG_HID_LOGITECH=y 1225CONFIG_HID_LOGITECH=y
@@ -1195,12 +1227,15 @@ CONFIG_HID_LOGITECH=y
1195# CONFIG_LOGIRUMBLEPAD2_FF is not set 1227# CONFIG_LOGIRUMBLEPAD2_FF is not set
1196CONFIG_HID_MICROSOFT=y 1228CONFIG_HID_MICROSOFT=y
1197CONFIG_HID_MONTEREY=y 1229CONFIG_HID_MONTEREY=y
1230# CONFIG_HID_NTRIG is not set
1198CONFIG_HID_PANTHERLORD=y 1231CONFIG_HID_PANTHERLORD=y
1199# CONFIG_PANTHERLORD_FF is not set 1232# CONFIG_PANTHERLORD_FF is not set
1200CONFIG_HID_PETALYNX=y 1233CONFIG_HID_PETALYNX=y
1201CONFIG_HID_SAMSUNG=y 1234CONFIG_HID_SAMSUNG=y
1202CONFIG_HID_SONY=y 1235CONFIG_HID_SONY=y
1203CONFIG_HID_SUNPLUS=y 1236CONFIG_HID_SUNPLUS=y
1237# CONFIG_GREENASIA_FF is not set
1238# CONFIG_HID_TOPSEED is not set
1204CONFIG_THRUSTMASTER_FF=m 1239CONFIG_THRUSTMASTER_FF=m
1205CONFIG_ZEROPLUS_FF=m 1240CONFIG_ZEROPLUS_FF=m
1206CONFIG_USB_SUPPORT=y 1241CONFIG_USB_SUPPORT=y
@@ -1233,6 +1268,7 @@ CONFIG_USB_EHCI_HCD=y
1233# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1268# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1234# CONFIG_USB_EHCI_FSL is not set 1269# CONFIG_USB_EHCI_FSL is not set
1235CONFIG_USB_EHCI_HCD_PPC_OF=y 1270CONFIG_USB_EHCI_HCD_PPC_OF=y
1271# CONFIG_USB_OXU210HP_HCD is not set
1236# CONFIG_USB_ISP116X_HCD is not set 1272# CONFIG_USB_ISP116X_HCD is not set
1237# CONFIG_USB_ISP1760_HCD is not set 1273# CONFIG_USB_ISP1760_HCD is not set
1238CONFIG_USB_OHCI_HCD=y 1274CONFIG_USB_OHCI_HCD=y
@@ -1269,7 +1305,6 @@ CONFIG_USB_STORAGE=y
1269# CONFIG_USB_STORAGE_DATAFAB is not set 1305# CONFIG_USB_STORAGE_DATAFAB is not set
1270# CONFIG_USB_STORAGE_FREECOM is not set 1306# CONFIG_USB_STORAGE_FREECOM is not set
1271# CONFIG_USB_STORAGE_ISD200 is not set 1307# CONFIG_USB_STORAGE_ISD200 is not set
1272# CONFIG_USB_STORAGE_DPCM is not set
1273# CONFIG_USB_STORAGE_USBAT is not set 1308# CONFIG_USB_STORAGE_USBAT is not set
1274# CONFIG_USB_STORAGE_SDDR09 is not set 1309# CONFIG_USB_STORAGE_SDDR09 is not set
1275# CONFIG_USB_STORAGE_SDDR55 is not set 1310# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1317,6 +1352,10 @@ CONFIG_USB_STORAGE=y
1317# CONFIG_USB_ISIGHTFW is not set 1352# CONFIG_USB_ISIGHTFW is not set
1318# CONFIG_USB_VST is not set 1353# CONFIG_USB_VST is not set
1319# CONFIG_USB_GADGET is not set 1354# CONFIG_USB_GADGET is not set
1355
1356#
1357# OTG and related infrastructure
1358#
1320# CONFIG_UWB is not set 1359# CONFIG_UWB is not set
1321# CONFIG_MMC is not set 1360# CONFIG_MMC is not set
1322# CONFIG_MEMSTICK is not set 1361# CONFIG_MEMSTICK is not set
@@ -1401,7 +1440,9 @@ CONFIG_FS_MBCACHE=y
1401# CONFIG_FS_POSIX_ACL is not set 1440# CONFIG_FS_POSIX_ACL is not set
1402CONFIG_FILE_LOCKING=y 1441CONFIG_FILE_LOCKING=y
1403# CONFIG_XFS_FS is not set 1442# CONFIG_XFS_FS is not set
1443# CONFIG_GFS2_FS is not set
1404# CONFIG_OCFS2_FS is not set 1444# CONFIG_OCFS2_FS is not set
1445# CONFIG_BTRFS_FS is not set
1405CONFIG_DNOTIFY=y 1446CONFIG_DNOTIFY=y
1406CONFIG_INOTIFY=y 1447CONFIG_INOTIFY=y
1407CONFIG_INOTIFY_USER=y 1448CONFIG_INOTIFY_USER=y
@@ -1443,10 +1484,7 @@ CONFIG_TMPFS=y
1443# CONFIG_TMPFS_POSIX_ACL is not set 1484# CONFIG_TMPFS_POSIX_ACL is not set
1444# CONFIG_HUGETLB_PAGE is not set 1485# CONFIG_HUGETLB_PAGE is not set
1445# CONFIG_CONFIGFS_FS is not set 1486# CONFIG_CONFIGFS_FS is not set
1446 1487CONFIG_MISC_FILESYSTEMS=y
1447#
1448# Miscellaneous filesystems
1449#
1450CONFIG_ADFS_FS=m 1488CONFIG_ADFS_FS=m
1451# CONFIG_ADFS_FS_RW is not set 1489# CONFIG_ADFS_FS_RW is not set
1452CONFIG_AFFS_FS=m 1490CONFIG_AFFS_FS=m
@@ -1457,6 +1495,7 @@ CONFIG_BEFS_FS=m
1457CONFIG_BFS_FS=m 1495CONFIG_BFS_FS=m
1458CONFIG_EFS_FS=m 1496CONFIG_EFS_FS=m
1459CONFIG_CRAMFS=y 1497CONFIG_CRAMFS=y
1498# CONFIG_SQUASHFS is not set
1460CONFIG_VXFS_FS=m 1499CONFIG_VXFS_FS=m
1461# CONFIG_MINIX_FS is not set 1500# CONFIG_MINIX_FS is not set
1462# CONFIG_OMFS_FS is not set 1501# CONFIG_OMFS_FS is not set
@@ -1558,6 +1597,7 @@ CONFIG_NLS_UTF8=m
1558# Library routines 1597# Library routines
1559# 1598#
1560CONFIG_BITREVERSE=y 1599CONFIG_BITREVERSE=y
1600CONFIG_GENERIC_FIND_LAST_BIT=y
1561# CONFIG_CRC_CCITT is not set 1601# CONFIG_CRC_CCITT is not set
1562# CONFIG_CRC16 is not set 1602# CONFIG_CRC16 is not set
1563CONFIG_CRC_T10DIF=y 1603CONFIG_CRC_T10DIF=y
@@ -1609,6 +1649,7 @@ CONFIG_DEBUG_INFO=y
1609# CONFIG_DEBUG_MEMORY_INIT is not set 1649# CONFIG_DEBUG_MEMORY_INIT is not set
1610# CONFIG_DEBUG_LIST is not set 1650# CONFIG_DEBUG_LIST is not set
1611# CONFIG_DEBUG_SG is not set 1651# CONFIG_DEBUG_SG is not set
1652# CONFIG_DEBUG_NOTIFIERS is not set
1612# CONFIG_BOOT_PRINTK_DELAY is not set 1653# CONFIG_BOOT_PRINTK_DELAY is not set
1613# CONFIG_RCU_TORTURE_TEST is not set 1654# CONFIG_RCU_TORTURE_TEST is not set
1614# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1655# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1618,6 +1659,8 @@ CONFIG_DEBUG_INFO=y
1618# CONFIG_LATENCYTOP is not set 1659# CONFIG_LATENCYTOP is not set
1619CONFIG_SYSCTL_SYSCALL_CHECK=y 1660CONFIG_SYSCTL_SYSCALL_CHECK=y
1620CONFIG_HAVE_FUNCTION_TRACER=y 1661CONFIG_HAVE_FUNCTION_TRACER=y
1662CONFIG_HAVE_DYNAMIC_FTRACE=y
1663CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1621 1664
1622# 1665#
1623# Tracers 1666# Tracers
@@ -1626,6 +1669,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1626# CONFIG_SCHED_TRACER is not set 1669# CONFIG_SCHED_TRACER is not set
1627# CONFIG_CONTEXT_SWITCH_TRACER is not set 1670# CONFIG_CONTEXT_SWITCH_TRACER is not set
1628# CONFIG_BOOT_TRACER is not set 1671# CONFIG_BOOT_TRACER is not set
1672# CONFIG_TRACE_BRANCH_PROFILING is not set
1629# CONFIG_STACK_TRACER is not set 1673# CONFIG_STACK_TRACER is not set
1630# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1674# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1631# CONFIG_SAMPLES is not set 1675# CONFIG_SAMPLES is not set
@@ -1700,7 +1744,7 @@ CONFIG_CRYPTO_HMAC=y
1700# 1744#
1701# Digest 1745# Digest
1702# 1746#
1703# CONFIG_CRYPTO_CRC32C is not set 1747CONFIG_CRYPTO_CRC32C=m
1704# CONFIG_CRYPTO_MD4 is not set 1748# CONFIG_CRYPTO_MD4 is not set
1705CONFIG_CRYPTO_MD5=y 1749CONFIG_CRYPTO_MD5=y
1706# CONFIG_CRYPTO_MICHAEL_MIC is not set 1750# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
index 8769359dfe6a..f95961c04a20 100644
--- a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc85xx_cds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:14 2008 4# Mon Jan 26 15:36:13 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 81# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -115,7 +117,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 117CONFIG_SLUB=y
116# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 119# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y 122CONFIG_HAVE_IOREMAP_PROT=y
@@ -125,13 +126,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 130# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 131CONFIG_BLOCK=y
132# CONFIG_LBD is not set 132# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_LSF is not set
135# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
137 136
@@ -148,6 +147,10 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
151# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
152 155
153# 156#
@@ -187,6 +190,7 @@ CONFIG_PPC_I8259=y
187# CONFIG_CPM2 is not set 190# CONFIG_CPM2 is not set
188# CONFIG_FSL_ULI1575 is not set 191# CONFIG_FSL_ULI1575 is not set
189# CONFIG_MPC8xxx_GPIO is not set 192# CONFIG_MPC8xxx_GPIO is not set
193# CONFIG_SIMPLE_GPIO is not set
190 194
191# 195#
192# Kernel options 196# Kernel options
@@ -225,12 +229,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 231CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set
229# CONFIG_PHYS_ADDR_T_64BIT is not set 232# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 235CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 236CONFIG_UNEVICTABLE_LRU=y
237CONFIG_PPC_4K_PAGES=y
238# CONFIG_PPC_16K_PAGES is not set
239# CONFIG_PPC_64K_PAGES is not set
234CONFIG_FORCE_MAX_ZONEORDER=11 240CONFIG_FORCE_MAX_ZONEORDER=11
235CONFIG_PROC_DEVICETREE=y 241CONFIG_PROC_DEVICETREE=y
236# CONFIG_CMDLINE_BOOL is not set 242# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +261,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
255# CONFIG_PCI_MSI is not set 261# CONFIG_PCI_MSI is not set
256# CONFIG_PCI_LEGACY is not set 262# CONFIG_PCI_LEGACY is not set
257# CONFIG_PCI_DEBUG is not set 263# CONFIG_PCI_DEBUG is not set
264# CONFIG_PCI_STUB is not set
258# CONFIG_PCCARD is not set 265# CONFIG_PCCARD is not set
259# CONFIG_HOTPLUG_PCI is not set 266# CONFIG_HOTPLUG_PCI is not set
260# CONFIG_HAS_RAPIDIO is not set 267# CONFIG_HAS_RAPIDIO is not set
@@ -278,6 +285,7 @@ CONFIG_NET=y
278# 285#
279# Networking options 286# Networking options
280# 287#
288CONFIG_COMPAT_NET_DEV_OPS=y
281CONFIG_PACKET=y 289CONFIG_PACKET=y
282# CONFIG_PACKET_MMAP is not set 290# CONFIG_PACKET_MMAP is not set
283CONFIG_UNIX=y 291CONFIG_UNIX=y
@@ -334,6 +342,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_ECONET is not set 342# CONFIG_ECONET is not set
335# CONFIG_WAN_ROUTER is not set 343# CONFIG_WAN_ROUTER is not set
336# CONFIG_NET_SCHED is not set 344# CONFIG_NET_SCHED is not set
345# CONFIG_DCB is not set
337 346
338# 347#
339# Network testing 348# Network testing
@@ -349,8 +358,9 @@ CONFIG_WIRELESS=y
349# CONFIG_CFG80211 is not set 358# CONFIG_CFG80211 is not set
350CONFIG_WIRELESS_OLD_REGULATORY=y 359CONFIG_WIRELESS_OLD_REGULATORY=y
351# CONFIG_WIRELESS_EXT is not set 360# CONFIG_WIRELESS_EXT is not set
361# CONFIG_LIB80211 is not set
352# CONFIG_MAC80211 is not set 362# CONFIG_MAC80211 is not set
353# CONFIG_IEEE80211 is not set 363# CONFIG_WIMAX is not set
354# CONFIG_RFKILL is not set 364# CONFIG_RFKILL is not set
355# CONFIG_NET_9P is not set 365# CONFIG_NET_9P is not set
356 366
@@ -397,6 +407,7 @@ CONFIG_MISC_DEVICES=y
397# CONFIG_TIFM_CORE is not set 407# CONFIG_TIFM_CORE is not set
398# CONFIG_ENCLOSURE_SERVICES is not set 408# CONFIG_ENCLOSURE_SERVICES is not set
399# CONFIG_HP_ILO is not set 409# CONFIG_HP_ILO is not set
410# CONFIG_C2PORT is not set
400CONFIG_HAVE_IDE=y 411CONFIG_HAVE_IDE=y
401CONFIG_IDE=y 412CONFIG_IDE=y
402 413
@@ -439,6 +450,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
439# CONFIG_BLK_DEV_JMICRON is not set 450# CONFIG_BLK_DEV_JMICRON is not set
440# CONFIG_BLK_DEV_SC1200 is not set 451# CONFIG_BLK_DEV_SC1200 is not set
441# CONFIG_BLK_DEV_PIIX is not set 452# CONFIG_BLK_DEV_PIIX is not set
453# CONFIG_BLK_DEV_IT8172 is not set
442# CONFIG_BLK_DEV_IT8213 is not set 454# CONFIG_BLK_DEV_IT8213 is not set
443# CONFIG_BLK_DEV_IT821X is not set 455# CONFIG_BLK_DEV_IT821X is not set
444# CONFIG_BLK_DEV_NS87415 is not set 456# CONFIG_BLK_DEV_NS87415 is not set
@@ -498,6 +510,9 @@ CONFIG_PHYLIB=y
498# CONFIG_BROADCOM_PHY is not set 510# CONFIG_BROADCOM_PHY is not set
499# CONFIG_ICPLUS_PHY is not set 511# CONFIG_ICPLUS_PHY is not set
500# CONFIG_REALTEK_PHY is not set 512# CONFIG_REALTEK_PHY is not set
513# CONFIG_NATIONAL_PHY is not set
514# CONFIG_STE10XP is not set
515# CONFIG_LSI_ET1011C_PHY is not set
501# CONFIG_FIXED_PHY is not set 516# CONFIG_FIXED_PHY is not set
502# CONFIG_MDIO_BITBANG is not set 517# CONFIG_MDIO_BITBANG is not set
503CONFIG_NET_ETHERNET=y 518CONFIG_NET_ETHERNET=y
@@ -542,6 +557,7 @@ CONFIG_GIANFAR=y
542# CONFIG_JME is not set 557# CONFIG_JME is not set
543CONFIG_NETDEV_10000=y 558CONFIG_NETDEV_10000=y
544# CONFIG_CHELSIO_T1 is not set 559# CONFIG_CHELSIO_T1 is not set
560CONFIG_CHELSIO_T3_DEPENDS=y
545# CONFIG_CHELSIO_T3 is not set 561# CONFIG_CHELSIO_T3 is not set
546# CONFIG_ENIC is not set 562# CONFIG_ENIC is not set
547# CONFIG_IXGBE is not set 563# CONFIG_IXGBE is not set
@@ -564,6 +580,10 @@ CONFIG_NETDEV_10000=y
564# CONFIG_WLAN_PRE80211 is not set 580# CONFIG_WLAN_PRE80211 is not set
565# CONFIG_WLAN_80211 is not set 581# CONFIG_WLAN_80211 is not set
566# CONFIG_IWLWIFI_LEDS is not set 582# CONFIG_IWLWIFI_LEDS is not set
583
584#
585# Enable WiMAX (Networking options) to see the WiMAX drivers
586#
567# CONFIG_WAN is not set 587# CONFIG_WAN is not set
568# CONFIG_FDDI is not set 588# CONFIG_FDDI is not set
569# CONFIG_HIPPI is not set 589# CONFIG_HIPPI is not set
@@ -634,8 +654,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
634# CONFIG_SERIAL_JSM is not set 654# CONFIG_SERIAL_JSM is not set
635# CONFIG_SERIAL_OF_PLATFORM is not set 655# CONFIG_SERIAL_OF_PLATFORM is not set
636CONFIG_UNIX98_PTYS=y 656CONFIG_UNIX98_PTYS=y
657# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
637CONFIG_LEGACY_PTYS=y 658CONFIG_LEGACY_PTYS=y
638CONFIG_LEGACY_PTY_COUNT=256 659CONFIG_LEGACY_PTY_COUNT=256
660# CONFIG_HVC_UDBG is not set
639# CONFIG_IPMI_HANDLER is not set 661# CONFIG_IPMI_HANDLER is not set
640# CONFIG_HW_RANDOM is not set 662# CONFIG_HW_RANDOM is not set
641# CONFIG_NVRAM is not set 663# CONFIG_NVRAM is not set
@@ -672,11 +694,11 @@ CONFIG_HWMON=y
672# CONFIG_THERMAL is not set 694# CONFIG_THERMAL is not set
673# CONFIG_THERMAL_HWMON is not set 695# CONFIG_THERMAL_HWMON is not set
674# CONFIG_WATCHDOG is not set 696# CONFIG_WATCHDOG is not set
697CONFIG_SSB_POSSIBLE=y
675 698
676# 699#
677# Sonics Silicon Backplane 700# Sonics Silicon Backplane
678# 701#
679CONFIG_SSB_POSSIBLE=y
680# CONFIG_SSB is not set 702# CONFIG_SSB is not set
681 703
682# 704#
@@ -686,14 +708,7 @@ CONFIG_SSB_POSSIBLE=y
686# CONFIG_MFD_SM501 is not set 708# CONFIG_MFD_SM501 is not set
687# CONFIG_HTC_PASIC3 is not set 709# CONFIG_HTC_PASIC3 is not set
688# CONFIG_MFD_TMIO is not set 710# CONFIG_MFD_TMIO is not set
689
690#
691# Voltage and Current regulators
692#
693# CONFIG_REGULATOR is not set 711# CONFIG_REGULATOR is not set
694# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
695# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
696# CONFIG_REGULATOR_BQ24022 is not set
697 712
698# 713#
699# Multimedia devices 714# Multimedia devices
@@ -749,9 +764,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
749# 764#
750 765
751# 766#
752# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 767# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
753# 768#
754# CONFIG_USB_GADGET is not set 769# CONFIG_USB_GADGET is not set
770
771#
772# OTG and related infrastructure
773#
755# CONFIG_UWB is not set 774# CONFIG_UWB is not set
756# CONFIG_MMC is not set 775# CONFIG_MMC is not set
757# CONFIG_MEMSTICK is not set 776# CONFIG_MEMSTICK is not set
@@ -783,6 +802,7 @@ CONFIG_FS_MBCACHE=y
783CONFIG_FILE_LOCKING=y 802CONFIG_FILE_LOCKING=y
784# CONFIG_XFS_FS is not set 803# CONFIG_XFS_FS is not set
785# CONFIG_OCFS2_FS is not set 804# CONFIG_OCFS2_FS is not set
805# CONFIG_BTRFS_FS is not set
786CONFIG_DNOTIFY=y 806CONFIG_DNOTIFY=y
787CONFIG_INOTIFY=y 807CONFIG_INOTIFY=y
788CONFIG_INOTIFY_USER=y 808CONFIG_INOTIFY_USER=y
@@ -816,10 +836,7 @@ CONFIG_TMPFS=y
816# CONFIG_TMPFS_POSIX_ACL is not set 836# CONFIG_TMPFS_POSIX_ACL is not set
817# CONFIG_HUGETLB_PAGE is not set 837# CONFIG_HUGETLB_PAGE is not set
818# CONFIG_CONFIGFS_FS is not set 838# CONFIG_CONFIGFS_FS is not set
819 839CONFIG_MISC_FILESYSTEMS=y
820#
821# Miscellaneous filesystems
822#
823# CONFIG_ADFS_FS is not set 840# CONFIG_ADFS_FS is not set
824# CONFIG_AFFS_FS is not set 841# CONFIG_AFFS_FS is not set
825# CONFIG_HFS_FS is not set 842# CONFIG_HFS_FS is not set
@@ -828,6 +845,7 @@ CONFIG_TMPFS=y
828# CONFIG_BFS_FS is not set 845# CONFIG_BFS_FS is not set
829# CONFIG_EFS_FS is not set 846# CONFIG_EFS_FS is not set
830# CONFIG_CRAMFS is not set 847# CONFIG_CRAMFS is not set
848# CONFIG_SQUASHFS is not set
831# CONFIG_VXFS_FS is not set 849# CONFIG_VXFS_FS is not set
832# CONFIG_MINIX_FS is not set 850# CONFIG_MINIX_FS is not set
833# CONFIG_OMFS_FS is not set 851# CONFIG_OMFS_FS is not set
@@ -878,6 +896,7 @@ CONFIG_PARTITION_ADVANCED=y
878# Library routines 896# Library routines
879# 897#
880CONFIG_BITREVERSE=y 898CONFIG_BITREVERSE=y
899CONFIG_GENERIC_FIND_LAST_BIT=y
881# CONFIG_CRC_CCITT is not set 900# CONFIG_CRC_CCITT is not set
882# CONFIG_CRC16 is not set 901# CONFIG_CRC16 is not set
883# CONFIG_CRC_T10DIF is not set 902# CONFIG_CRC_T10DIF is not set
@@ -927,6 +946,7 @@ CONFIG_DEBUG_MUTEXES=y
927# CONFIG_DEBUG_MEMORY_INIT is not set 946# CONFIG_DEBUG_MEMORY_INIT is not set
928# CONFIG_DEBUG_LIST is not set 947# CONFIG_DEBUG_LIST is not set
929# CONFIG_DEBUG_SG is not set 948# CONFIG_DEBUG_SG is not set
949# CONFIG_DEBUG_NOTIFIERS is not set
930# CONFIG_BOOT_PRINTK_DELAY is not set 950# CONFIG_BOOT_PRINTK_DELAY is not set
931# CONFIG_RCU_TORTURE_TEST is not set 951# CONFIG_RCU_TORTURE_TEST is not set
932# CONFIG_RCU_CPU_STALL_DETECTOR is not set 952# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -936,6 +956,8 @@ CONFIG_DEBUG_MUTEXES=y
936# CONFIG_LATENCYTOP is not set 956# CONFIG_LATENCYTOP is not set
937CONFIG_SYSCTL_SYSCALL_CHECK=y 957CONFIG_SYSCTL_SYSCALL_CHECK=y
938CONFIG_HAVE_FUNCTION_TRACER=y 958CONFIG_HAVE_FUNCTION_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
939 961
940# 962#
941# Tracers 963# Tracers
@@ -944,11 +966,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
944# CONFIG_SCHED_TRACER is not set 966# CONFIG_SCHED_TRACER is not set
945# CONFIG_CONTEXT_SWITCH_TRACER is not set 967# CONFIG_CONTEXT_SWITCH_TRACER is not set
946# CONFIG_BOOT_TRACER is not set 968# CONFIG_BOOT_TRACER is not set
969# CONFIG_TRACE_BRANCH_PROFILING is not set
947# CONFIG_STACK_TRACER is not set 970# CONFIG_STACK_TRACER is not set
948# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 971# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
949# CONFIG_SAMPLES is not set 972# CONFIG_SAMPLES is not set
950CONFIG_HAVE_ARCH_KGDB=y 973CONFIG_HAVE_ARCH_KGDB=y
951# CONFIG_KGDB is not set 974# CONFIG_KGDB is not set
975CONFIG_PRINT_STACK_DEPTH=64
952# CONFIG_DEBUG_STACKOVERFLOW is not set 976# CONFIG_DEBUG_STACKOVERFLOW is not set
953# CONFIG_DEBUG_STACK_USAGE is not set 977# CONFIG_DEBUG_STACK_USAGE is not set
954# CONFIG_DEBUG_PAGEALLOC is not set 978# CONFIG_DEBUG_PAGEALLOC is not set
@@ -974,6 +998,7 @@ CONFIG_CRYPTO=y
974# 998#
975# CONFIG_CRYPTO_FIPS is not set 999# CONFIG_CRYPTO_FIPS is not set
976# CONFIG_CRYPTO_MANAGER is not set 1000# CONFIG_CRYPTO_MANAGER is not set
1001# CONFIG_CRYPTO_MANAGER2 is not set
977# CONFIG_CRYPTO_GF128MUL is not set 1002# CONFIG_CRYPTO_GF128MUL is not set
978# CONFIG_CRYPTO_NULL is not set 1003# CONFIG_CRYPTO_NULL is not set
979# CONFIG_CRYPTO_CRYPTD is not set 1004# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig
index bfe3c9731573..e68e80987aa9 100644
--- a/arch/powerpc/configs/85xx/sbc8548_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8548_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:16 2008 4# Mon Jan 26 15:36:15 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -113,7 +115,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 115# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 120CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,13 +124,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 128# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 129CONFIG_BLOCK=y
130# CONFIG_LBD is not set 130# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 132# CONFIG_BLK_DEV_BSG is not set
134# CONFIG_BLK_DEV_INTEGRITY is not set 133# CONFIG_BLK_DEV_INTEGRITY is not set
135 134
@@ -146,6 +145,10 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
147CONFIG_DEFAULT_IOSCHED="anticipatory" 146CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_CLASSIC_RCU=y 147CONFIG_CLASSIC_RCU=y
148# CONFIG_TREE_RCU is not set
149# CONFIG_PREEMPT_RCU is not set
150# CONFIG_TREE_RCU_TRACE is not set
151# CONFIG_PREEMPT_RCU_TRACE is not set
149# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
150 153
151# 154#
@@ -185,6 +188,7 @@ CONFIG_MPIC=y
185# CONFIG_CPM2 is not set 188# CONFIG_CPM2 is not set
186# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
187# CONFIG_MPC8xxx_GPIO is not set 190# CONFIG_MPC8xxx_GPIO is not set
191# CONFIG_SIMPLE_GPIO is not set
188 192
189# 193#
190# Kernel options 194# Kernel options
@@ -222,12 +226,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 229# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 233CONFIG_UNEVICTABLE_LRU=y
234CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
@@ -251,6 +257,7 @@ CONFIG_PCI_SYSCALL=y
251CONFIG_ARCH_SUPPORTS_MSI=y 257CONFIG_ARCH_SUPPORTS_MSI=y
252# CONFIG_PCI_MSI is not set 258# CONFIG_PCI_MSI is not set
253# CONFIG_PCI_LEGACY is not set 259# CONFIG_PCI_LEGACY is not set
260# CONFIG_PCI_STUB is not set
254# CONFIG_PCCARD is not set 261# CONFIG_PCCARD is not set
255# CONFIG_HOTPLUG_PCI is not set 262# CONFIG_HOTPLUG_PCI is not set
256# CONFIG_HAS_RAPIDIO is not set 263# CONFIG_HAS_RAPIDIO is not set
@@ -274,6 +281,7 @@ CONFIG_NET=y
274# 281#
275# Networking options 282# Networking options
276# 283#
284CONFIG_COMPAT_NET_DEV_OPS=y
277CONFIG_PACKET=y 285CONFIG_PACKET=y
278# CONFIG_PACKET_MMAP is not set 286# CONFIG_PACKET_MMAP is not set
279CONFIG_UNIX=y 287CONFIG_UNIX=y
@@ -330,6 +338,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_ECONET is not set 338# CONFIG_ECONET is not set
331# CONFIG_WAN_ROUTER is not set 339# CONFIG_WAN_ROUTER is not set
332# CONFIG_NET_SCHED is not set 340# CONFIG_NET_SCHED is not set
341# CONFIG_DCB is not set
333 342
334# 343#
335# Network testing 344# Network testing
@@ -345,8 +354,9 @@ CONFIG_WIRELESS=y
345# CONFIG_CFG80211 is not set 354# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y 355CONFIG_WIRELESS_OLD_REGULATORY=y
347# CONFIG_WIRELESS_EXT is not set 356# CONFIG_WIRELESS_EXT is not set
357# CONFIG_LIB80211 is not set
348# CONFIG_MAC80211 is not set 358# CONFIG_MAC80211 is not set
349# CONFIG_IEEE80211 is not set 359# CONFIG_WIMAX is not set
350# CONFIG_RFKILL is not set 360# CONFIG_RFKILL is not set
351# CONFIG_NET_9P is not set 361# CONFIG_NET_9P is not set
352 362
@@ -391,6 +401,7 @@ CONFIG_MISC_DEVICES=y
391# CONFIG_TIFM_CORE is not set 401# CONFIG_TIFM_CORE is not set
392# CONFIG_ENCLOSURE_SERVICES is not set 402# CONFIG_ENCLOSURE_SERVICES is not set
393# CONFIG_HP_ILO is not set 403# CONFIG_HP_ILO is not set
404# CONFIG_C2PORT is not set
394CONFIG_HAVE_IDE=y 405CONFIG_HAVE_IDE=y
395# CONFIG_IDE is not set 406# CONFIG_IDE is not set
396 407
@@ -439,6 +450,9 @@ CONFIG_PHYLIB=y
439CONFIG_BROADCOM_PHY=y 450CONFIG_BROADCOM_PHY=y
440# CONFIG_ICPLUS_PHY is not set 451# CONFIG_ICPLUS_PHY is not set
441# CONFIG_REALTEK_PHY is not set 452# CONFIG_REALTEK_PHY is not set
453# CONFIG_NATIONAL_PHY is not set
454# CONFIG_STE10XP is not set
455# CONFIG_LSI_ET1011C_PHY is not set
442# CONFIG_FIXED_PHY is not set 456# CONFIG_FIXED_PHY is not set
443# CONFIG_MDIO_BITBANG is not set 457# CONFIG_MDIO_BITBANG is not set
444CONFIG_NET_ETHERNET=y 458CONFIG_NET_ETHERNET=y
@@ -483,6 +497,7 @@ CONFIG_GIANFAR=y
483# CONFIG_JME is not set 497# CONFIG_JME is not set
484CONFIG_NETDEV_10000=y 498CONFIG_NETDEV_10000=y
485# CONFIG_CHELSIO_T1 is not set 499# CONFIG_CHELSIO_T1 is not set
500CONFIG_CHELSIO_T3_DEPENDS=y
486# CONFIG_CHELSIO_T3 is not set 501# CONFIG_CHELSIO_T3 is not set
487# CONFIG_ENIC is not set 502# CONFIG_ENIC is not set
488# CONFIG_IXGBE is not set 503# CONFIG_IXGBE is not set
@@ -505,6 +520,10 @@ CONFIG_NETDEV_10000=y
505# CONFIG_WLAN_PRE80211 is not set 520# CONFIG_WLAN_PRE80211 is not set
506# CONFIG_WLAN_80211 is not set 521# CONFIG_WLAN_80211 is not set
507# CONFIG_IWLWIFI_LEDS is not set 522# CONFIG_IWLWIFI_LEDS is not set
523
524#
525# Enable WiMAX (Networking options) to see the WiMAX drivers
526#
508# CONFIG_WAN is not set 527# CONFIG_WAN is not set
509# CONFIG_FDDI is not set 528# CONFIG_FDDI is not set
510# CONFIG_HIPPI is not set 529# CONFIG_HIPPI is not set
@@ -575,8 +594,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
575# CONFIG_SERIAL_JSM is not set 594# CONFIG_SERIAL_JSM is not set
576# CONFIG_SERIAL_OF_PLATFORM is not set 595# CONFIG_SERIAL_OF_PLATFORM is not set
577CONFIG_UNIX98_PTYS=y 596CONFIG_UNIX98_PTYS=y
597# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
578CONFIG_LEGACY_PTYS=y 598CONFIG_LEGACY_PTYS=y
579CONFIG_LEGACY_PTY_COUNT=256 599CONFIG_LEGACY_PTY_COUNT=256
600# CONFIG_HVC_UDBG is not set
580# CONFIG_IPMI_HANDLER is not set 601# CONFIG_IPMI_HANDLER is not set
581# CONFIG_HW_RANDOM is not set 602# CONFIG_HW_RANDOM is not set
582# CONFIG_NVRAM is not set 603# CONFIG_NVRAM is not set
@@ -613,11 +634,11 @@ CONFIG_HWMON=y
613# CONFIG_THERMAL is not set 634# CONFIG_THERMAL is not set
614# CONFIG_THERMAL_HWMON is not set 635# CONFIG_THERMAL_HWMON is not set
615# CONFIG_WATCHDOG is not set 636# CONFIG_WATCHDOG is not set
637CONFIG_SSB_POSSIBLE=y
616 638
617# 639#
618# Sonics Silicon Backplane 640# Sonics Silicon Backplane
619# 641#
620CONFIG_SSB_POSSIBLE=y
621# CONFIG_SSB is not set 642# CONFIG_SSB is not set
622 643
623# 644#
@@ -627,14 +648,7 @@ CONFIG_SSB_POSSIBLE=y
627# CONFIG_MFD_SM501 is not set 648# CONFIG_MFD_SM501 is not set
628# CONFIG_HTC_PASIC3 is not set 649# CONFIG_HTC_PASIC3 is not set
629# CONFIG_MFD_TMIO is not set 650# CONFIG_MFD_TMIO is not set
630
631#
632# Voltage and Current regulators
633#
634# CONFIG_REGULATOR is not set 651# CONFIG_REGULATOR is not set
635# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
636# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
637# CONFIG_REGULATOR_BQ24022 is not set
638 652
639# 653#
640# Multimedia devices 654# Multimedia devices
@@ -693,6 +707,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
693CONFIG_FILE_LOCKING=y 707CONFIG_FILE_LOCKING=y
694# CONFIG_XFS_FS is not set 708# CONFIG_XFS_FS is not set
695# CONFIG_OCFS2_FS is not set 709# CONFIG_OCFS2_FS is not set
710# CONFIG_BTRFS_FS is not set
696CONFIG_DNOTIFY=y 711CONFIG_DNOTIFY=y
697CONFIG_INOTIFY=y 712CONFIG_INOTIFY=y
698CONFIG_INOTIFY_USER=y 713CONFIG_INOTIFY_USER=y
@@ -726,10 +741,7 @@ CONFIG_TMPFS=y
726# CONFIG_TMPFS_POSIX_ACL is not set 741# CONFIG_TMPFS_POSIX_ACL is not set
727# CONFIG_HUGETLB_PAGE is not set 742# CONFIG_HUGETLB_PAGE is not set
728# CONFIG_CONFIGFS_FS is not set 743# CONFIG_CONFIGFS_FS is not set
729 744CONFIG_MISC_FILESYSTEMS=y
730#
731# Miscellaneous filesystems
732#
733# CONFIG_ADFS_FS is not set 745# CONFIG_ADFS_FS is not set
734# CONFIG_AFFS_FS is not set 746# CONFIG_AFFS_FS is not set
735# CONFIG_HFS_FS is not set 747# CONFIG_HFS_FS is not set
@@ -738,6 +750,7 @@ CONFIG_TMPFS=y
738# CONFIG_BFS_FS is not set 750# CONFIG_BFS_FS is not set
739# CONFIG_EFS_FS is not set 751# CONFIG_EFS_FS is not set
740# CONFIG_CRAMFS is not set 752# CONFIG_CRAMFS is not set
753# CONFIG_SQUASHFS is not set
741# CONFIG_VXFS_FS is not set 754# CONFIG_VXFS_FS is not set
742# CONFIG_MINIX_FS is not set 755# CONFIG_MINIX_FS is not set
743# CONFIG_OMFS_FS is not set 756# CONFIG_OMFS_FS is not set
@@ -776,6 +789,7 @@ CONFIG_MSDOS_PARTITION=y
776# Library routines 789# Library routines
777# 790#
778CONFIG_BITREVERSE=y 791CONFIG_BITREVERSE=y
792CONFIG_GENERIC_FIND_LAST_BIT=y
779# CONFIG_CRC_CCITT is not set 793# CONFIG_CRC_CCITT is not set
780# CONFIG_CRC16 is not set 794# CONFIG_CRC16 is not set
781# CONFIG_CRC_T10DIF is not set 795# CONFIG_CRC_T10DIF is not set
@@ -807,6 +821,8 @@ CONFIG_FRAME_WARN=1024
807# CONFIG_LATENCYTOP is not set 821# CONFIG_LATENCYTOP is not set
808CONFIG_SYSCTL_SYSCALL_CHECK=y 822CONFIG_SYSCTL_SYSCALL_CHECK=y
809CONFIG_HAVE_FUNCTION_TRACER=y 823CONFIG_HAVE_FUNCTION_TRACER=y
824CONFIG_HAVE_DYNAMIC_FTRACE=y
825CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
810 826
811# 827#
812# Tracers 828# Tracers
@@ -814,6 +830,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
814# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 830# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
815# CONFIG_SAMPLES is not set 831# CONFIG_SAMPLES is not set
816CONFIG_HAVE_ARCH_KGDB=y 832CONFIG_HAVE_ARCH_KGDB=y
833CONFIG_PRINT_STACK_DEPTH=64
817# CONFIG_IRQSTACKS is not set 834# CONFIG_IRQSTACKS is not set
818# CONFIG_PPC_EARLY_DEBUG is not set 835# CONFIG_PPC_EARLY_DEBUG is not set
819 836
@@ -831,6 +848,7 @@ CONFIG_CRYPTO=y
831# 848#
832# CONFIG_CRYPTO_FIPS is not set 849# CONFIG_CRYPTO_FIPS is not set
833# CONFIG_CRYPTO_MANAGER is not set 850# CONFIG_CRYPTO_MANAGER is not set
851# CONFIG_CRYPTO_MANAGER2 is not set
834# CONFIG_CRYPTO_GF128MUL is not set 852# CONFIG_CRYPTO_GF128MUL is not set
835# CONFIG_CRYPTO_NULL is not set 853# CONFIG_CRYPTO_NULL is not set
836# CONFIG_CRYPTO_CRYPTD is not set 854# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig
index 8c507f8d15a8..b1c766ef7e2e 100644
--- a/arch/powerpc/configs/85xx/sbc8560_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8560_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:17 2008 4# Mon Jan 26 15:36:17 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -113,7 +115,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 115# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 120CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,13 +124,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 128# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 129CONFIG_BLOCK=y
130# CONFIG_LBD is not set 130# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 132# CONFIG_BLK_DEV_BSG is not set
134# CONFIG_BLK_DEV_INTEGRITY is not set 133# CONFIG_BLK_DEV_INTEGRITY is not set
135 134
@@ -146,6 +145,10 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
147CONFIG_DEFAULT_IOSCHED="anticipatory" 146CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_CLASSIC_RCU=y 147CONFIG_CLASSIC_RCU=y
148# CONFIG_TREE_RCU is not set
149# CONFIG_PREEMPT_RCU is not set
150# CONFIG_TREE_RCU_TRACE is not set
151# CONFIG_PREEMPT_RCU_TRACE is not set
149# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
150 153
151# 154#
@@ -185,6 +188,7 @@ CONFIG_MPIC=y
185# CONFIG_CPM2 is not set 188# CONFIG_CPM2 is not set
186# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
187# CONFIG_MPC8xxx_GPIO is not set 190# CONFIG_MPC8xxx_GPIO is not set
191# CONFIG_SIMPLE_GPIO is not set
188 192
189# 193#
190# Kernel options 194# Kernel options
@@ -222,12 +226,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 229# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 233CONFIG_UNEVICTABLE_LRU=y
234CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
@@ -268,6 +274,7 @@ CONFIG_NET=y
268# 274#
269# Networking options 275# Networking options
270# 276#
277CONFIG_COMPAT_NET_DEV_OPS=y
271CONFIG_PACKET=y 278CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 279# CONFIG_PACKET_MMAP is not set
273CONFIG_UNIX=y 280CONFIG_UNIX=y
@@ -324,6 +331,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_ECONET is not set 331# CONFIG_ECONET is not set
325# CONFIG_WAN_ROUTER is not set 332# CONFIG_WAN_ROUTER is not set
326# CONFIG_NET_SCHED is not set 333# CONFIG_NET_SCHED is not set
334# CONFIG_DCB is not set
327 335
328# 336#
329# Network testing 337# Network testing
@@ -339,8 +347,9 @@ CONFIG_WIRELESS=y
339# CONFIG_CFG80211 is not set 347# CONFIG_CFG80211 is not set
340CONFIG_WIRELESS_OLD_REGULATORY=y 348CONFIG_WIRELESS_OLD_REGULATORY=y
341# CONFIG_WIRELESS_EXT is not set 349# CONFIG_WIRELESS_EXT is not set
350# CONFIG_LIB80211 is not set
342# CONFIG_MAC80211 is not set 351# CONFIG_MAC80211 is not set
343# CONFIG_IEEE80211 is not set 352# CONFIG_WIMAX is not set
344# CONFIG_RFKILL is not set 353# CONFIG_RFKILL is not set
345# CONFIG_NET_9P is not set 354# CONFIG_NET_9P is not set
346 355
@@ -378,6 +387,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
378CONFIG_MISC_DEVICES=y 387CONFIG_MISC_DEVICES=y
379# CONFIG_EEPROM_93CX6 is not set 388# CONFIG_EEPROM_93CX6 is not set
380# CONFIG_ENCLOSURE_SERVICES is not set 389# CONFIG_ENCLOSURE_SERVICES is not set
390# CONFIG_C2PORT is not set
381CONFIG_HAVE_IDE=y 391CONFIG_HAVE_IDE=y
382# CONFIG_IDE is not set 392# CONFIG_IDE is not set
383 393
@@ -413,6 +423,9 @@ CONFIG_PHYLIB=y
413CONFIG_BROADCOM_PHY=y 423CONFIG_BROADCOM_PHY=y
414# CONFIG_ICPLUS_PHY is not set 424# CONFIG_ICPLUS_PHY is not set
415# CONFIG_REALTEK_PHY is not set 425# CONFIG_REALTEK_PHY is not set
426# CONFIG_NATIONAL_PHY is not set
427# CONFIG_STE10XP is not set
428# CONFIG_LSI_ET1011C_PHY is not set
416# CONFIG_FIXED_PHY is not set 429# CONFIG_FIXED_PHY is not set
417# CONFIG_MDIO_BITBANG is not set 430# CONFIG_MDIO_BITBANG is not set
418CONFIG_NET_ETHERNET=y 431CONFIG_NET_ETHERNET=y
@@ -435,6 +448,10 @@ CONFIG_NETDEV_10000=y
435# CONFIG_WLAN_PRE80211 is not set 448# CONFIG_WLAN_PRE80211 is not set
436# CONFIG_WLAN_80211 is not set 449# CONFIG_WLAN_80211 is not set
437# CONFIG_IWLWIFI_LEDS is not set 450# CONFIG_IWLWIFI_LEDS is not set
451
452#
453# Enable WiMAX (Networking options) to see the WiMAX drivers
454#
438# CONFIG_WAN is not set 455# CONFIG_WAN is not set
439# CONFIG_PPP is not set 456# CONFIG_PPP is not set
440# CONFIG_SLIP is not set 457# CONFIG_SLIP is not set
@@ -500,8 +517,10 @@ CONFIG_SERIAL_CORE=y
500CONFIG_SERIAL_CORE_CONSOLE=y 517CONFIG_SERIAL_CORE_CONSOLE=y
501# CONFIG_SERIAL_OF_PLATFORM is not set 518# CONFIG_SERIAL_OF_PLATFORM is not set
502CONFIG_UNIX98_PTYS=y 519CONFIG_UNIX98_PTYS=y
520# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
503CONFIG_LEGACY_PTYS=y 521CONFIG_LEGACY_PTYS=y
504CONFIG_LEGACY_PTY_COUNT=256 522CONFIG_LEGACY_PTY_COUNT=256
523# CONFIG_HVC_UDBG is not set
505# CONFIG_IPMI_HANDLER is not set 524# CONFIG_IPMI_HANDLER is not set
506# CONFIG_HW_RANDOM is not set 525# CONFIG_HW_RANDOM is not set
507# CONFIG_NVRAM is not set 526# CONFIG_NVRAM is not set
@@ -530,11 +549,11 @@ CONFIG_HWMON=y
530# CONFIG_THERMAL is not set 549# CONFIG_THERMAL is not set
531# CONFIG_THERMAL_HWMON is not set 550# CONFIG_THERMAL_HWMON is not set
532# CONFIG_WATCHDOG is not set 551# CONFIG_WATCHDOG is not set
552CONFIG_SSB_POSSIBLE=y
533 553
534# 554#
535# Sonics Silicon Backplane 555# Sonics Silicon Backplane
536# 556#
537CONFIG_SSB_POSSIBLE=y
538# CONFIG_SSB is not set 557# CONFIG_SSB is not set
539 558
540# 559#
@@ -544,14 +563,7 @@ CONFIG_SSB_POSSIBLE=y
544# CONFIG_MFD_SM501 is not set 563# CONFIG_MFD_SM501 is not set
545# CONFIG_HTC_PASIC3 is not set 564# CONFIG_HTC_PASIC3 is not set
546# CONFIG_MFD_TMIO is not set 565# CONFIG_MFD_TMIO is not set
547
548#
549# Voltage and Current regulators
550#
551# CONFIG_REGULATOR is not set 566# CONFIG_REGULATOR is not set
552# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
553# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
554# CONFIG_REGULATOR_BQ24022 is not set
555 567
556# 568#
557# Multimedia devices 569# Multimedia devices
@@ -604,9 +616,13 @@ CONFIG_USB_SUPPORT=y
604# 616#
605 617
606# 618#
607# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 619# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
608# 620#
609# CONFIG_USB_GADGET is not set 621# CONFIG_USB_GADGET is not set
622
623#
624# OTG and related infrastructure
625#
610# CONFIG_MMC is not set 626# CONFIG_MMC is not set
611# CONFIG_MEMSTICK is not set 627# CONFIG_MEMSTICK is not set
612# CONFIG_NEW_LEDS is not set 628# CONFIG_NEW_LEDS is not set
@@ -666,6 +682,7 @@ CONFIG_RTC_DRV_M48T59=y
666CONFIG_FILE_LOCKING=y 682CONFIG_FILE_LOCKING=y
667# CONFIG_XFS_FS is not set 683# CONFIG_XFS_FS is not set
668# CONFIG_OCFS2_FS is not set 684# CONFIG_OCFS2_FS is not set
685# CONFIG_BTRFS_FS is not set
669CONFIG_DNOTIFY=y 686CONFIG_DNOTIFY=y
670CONFIG_INOTIFY=y 687CONFIG_INOTIFY=y
671CONFIG_INOTIFY_USER=y 688CONFIG_INOTIFY_USER=y
@@ -699,10 +716,7 @@ CONFIG_TMPFS=y
699# CONFIG_TMPFS_POSIX_ACL is not set 716# CONFIG_TMPFS_POSIX_ACL is not set
700# CONFIG_HUGETLB_PAGE is not set 717# CONFIG_HUGETLB_PAGE is not set
701# CONFIG_CONFIGFS_FS is not set 718# CONFIG_CONFIGFS_FS is not set
702 719CONFIG_MISC_FILESYSTEMS=y
703#
704# Miscellaneous filesystems
705#
706# CONFIG_ADFS_FS is not set 720# CONFIG_ADFS_FS is not set
707# CONFIG_AFFS_FS is not set 721# CONFIG_AFFS_FS is not set
708# CONFIG_HFS_FS is not set 722# CONFIG_HFS_FS is not set
@@ -711,6 +725,7 @@ CONFIG_TMPFS=y
711# CONFIG_BFS_FS is not set 725# CONFIG_BFS_FS is not set
712# CONFIG_EFS_FS is not set 726# CONFIG_EFS_FS is not set
713# CONFIG_CRAMFS is not set 727# CONFIG_CRAMFS is not set
728# CONFIG_SQUASHFS is not set
714# CONFIG_VXFS_FS is not set 729# CONFIG_VXFS_FS is not set
715# CONFIG_MINIX_FS is not set 730# CONFIG_MINIX_FS is not set
716# CONFIG_OMFS_FS is not set 731# CONFIG_OMFS_FS is not set
@@ -761,6 +776,7 @@ CONFIG_PARTITION_ADVANCED=y
761# Library routines 776# Library routines
762# 777#
763CONFIG_BITREVERSE=y 778CONFIG_BITREVERSE=y
779CONFIG_GENERIC_FIND_LAST_BIT=y
764# CONFIG_CRC_CCITT is not set 780# CONFIG_CRC_CCITT is not set
765# CONFIG_CRC16 is not set 781# CONFIG_CRC16 is not set
766# CONFIG_CRC_T10DIF is not set 782# CONFIG_CRC_T10DIF is not set
@@ -809,6 +825,7 @@ CONFIG_DEBUG_MUTEXES=y
809# CONFIG_DEBUG_MEMORY_INIT is not set 825# CONFIG_DEBUG_MEMORY_INIT is not set
810# CONFIG_DEBUG_LIST is not set 826# CONFIG_DEBUG_LIST is not set
811# CONFIG_DEBUG_SG is not set 827# CONFIG_DEBUG_SG is not set
828# CONFIG_DEBUG_NOTIFIERS is not set
812# CONFIG_BOOT_PRINTK_DELAY is not set 829# CONFIG_BOOT_PRINTK_DELAY is not set
813# CONFIG_RCU_TORTURE_TEST is not set 830# CONFIG_RCU_TORTURE_TEST is not set
814# CONFIG_RCU_CPU_STALL_DETECTOR is not set 831# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -818,6 +835,8 @@ CONFIG_DEBUG_MUTEXES=y
818# CONFIG_LATENCYTOP is not set 835# CONFIG_LATENCYTOP is not set
819CONFIG_SYSCTL_SYSCALL_CHECK=y 836CONFIG_SYSCTL_SYSCALL_CHECK=y
820CONFIG_HAVE_FUNCTION_TRACER=y 837CONFIG_HAVE_FUNCTION_TRACER=y
838CONFIG_HAVE_DYNAMIC_FTRACE=y
839CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
821 840
822# 841#
823# Tracers 842# Tracers
@@ -826,11 +845,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
826# CONFIG_SCHED_TRACER is not set 845# CONFIG_SCHED_TRACER is not set
827# CONFIG_CONTEXT_SWITCH_TRACER is not set 846# CONFIG_CONTEXT_SWITCH_TRACER is not set
828# CONFIG_BOOT_TRACER is not set 847# CONFIG_BOOT_TRACER is not set
848# CONFIG_TRACE_BRANCH_PROFILING is not set
829# CONFIG_STACK_TRACER is not set 849# CONFIG_STACK_TRACER is not set
830# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 850# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
831# CONFIG_SAMPLES is not set 851# CONFIG_SAMPLES is not set
832CONFIG_HAVE_ARCH_KGDB=y 852CONFIG_HAVE_ARCH_KGDB=y
833# CONFIG_KGDB is not set 853# CONFIG_KGDB is not set
854CONFIG_PRINT_STACK_DEPTH=64
834# CONFIG_DEBUG_STACKOVERFLOW is not set 855# CONFIG_DEBUG_STACKOVERFLOW is not set
835# CONFIG_DEBUG_STACK_USAGE is not set 856# CONFIG_DEBUG_STACK_USAGE is not set
836# CONFIG_DEBUG_PAGEALLOC is not set 857# CONFIG_DEBUG_PAGEALLOC is not set
@@ -867,6 +888,7 @@ CONFIG_CRYPTO=y
867# 888#
868# CONFIG_CRYPTO_FIPS is not set 889# CONFIG_CRYPTO_FIPS is not set
869# CONFIG_CRYPTO_MANAGER is not set 890# CONFIG_CRYPTO_MANAGER is not set
891# CONFIG_CRYPTO_MANAGER2 is not set
870# CONFIG_CRYPTO_GF128MUL is not set 892# CONFIG_CRYPTO_GF128MUL is not set
871# CONFIG_CRYPTO_NULL is not set 893# CONFIG_CRYPTO_NULL is not set
872# CONFIG_CRYPTO_CRYPTD is not set 894# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index 5a0cf58d2b8c..eb4ba7a5f41f 100644
--- a/arch/powerpc/configs/85xx/stx_gp3_defconfig
+++ b/arch/powerpc/configs/85xx/stx_gp3_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:19 2008 4# Mon Jan 26 15:36:18 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,12 +78,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -116,7 +118,6 @@ CONFIG_SLUB_DEBUG=y
116CONFIG_SLUB=y 118CONFIG_SLUB=y
117# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -128,18 +129,15 @@ CONFIG_HAVE_CLK=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
131# CONFIG_TINY_SHMEM is not set
132CONFIG_BASE_SMALL=0 132CONFIG_BASE_SMALL=0
133CONFIG_MODULES=y 133CONFIG_MODULES=y
134# CONFIG_MODULE_FORCE_LOAD is not set 134# CONFIG_MODULE_FORCE_LOAD is not set
135# CONFIG_MODULE_UNLOAD is not set 135# CONFIG_MODULE_UNLOAD is not set
136CONFIG_MODVERSIONS=y 136CONFIG_MODVERSIONS=y
137# CONFIG_MODULE_SRCVERSION_ALL is not set 137# CONFIG_MODULE_SRCVERSION_ALL is not set
138CONFIG_KMOD=y
139CONFIG_BLOCK=y 138CONFIG_BLOCK=y
140# CONFIG_LBD is not set 139# CONFIG_LBD is not set
141# CONFIG_BLK_DEV_IO_TRACE is not set 140# CONFIG_BLK_DEV_IO_TRACE is not set
142# CONFIG_LSF is not set
143# CONFIG_BLK_DEV_BSG is not set 141# CONFIG_BLK_DEV_BSG is not set
144# CONFIG_BLK_DEV_INTEGRITY is not set 142# CONFIG_BLK_DEV_INTEGRITY is not set
145 143
@@ -156,6 +154,10 @@ CONFIG_DEFAULT_CFQ=y
156# CONFIG_DEFAULT_NOOP is not set 154# CONFIG_DEFAULT_NOOP is not set
157CONFIG_DEFAULT_IOSCHED="cfq" 155CONFIG_DEFAULT_IOSCHED="cfq"
158CONFIG_CLASSIC_RCU=y 156CONFIG_CLASSIC_RCU=y
157# CONFIG_TREE_RCU is not set
158# CONFIG_PREEMPT_RCU is not set
159# CONFIG_TREE_RCU_TRACE is not set
160# CONFIG_PREEMPT_RCU_TRACE is not set
159# CONFIG_FREEZER is not set 161# CONFIG_FREEZER is not set
160 162
161# 163#
@@ -196,6 +198,7 @@ CONFIG_CPM2=y
196# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
197CONFIG_CPM=y 199CONFIG_CPM=y
198# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
199 202
200# 203#
201# Kernel options 204# Kernel options
@@ -233,12 +236,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
233CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
234CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
235CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
236# CONFIG_RESOURCES_64BIT is not set
237# CONFIG_PHYS_ADDR_T_64BIT is not set 239# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
241CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set
242CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
243CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
244# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
@@ -263,6 +268,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
263# CONFIG_PCI_MSI is not set 268# CONFIG_PCI_MSI is not set
264# CONFIG_PCI_LEGACY is not set 269# CONFIG_PCI_LEGACY is not set
265# CONFIG_PCI_DEBUG is not set 270# CONFIG_PCI_DEBUG is not set
271# CONFIG_PCI_STUB is not set
266# CONFIG_PCCARD is not set 272# CONFIG_PCCARD is not set
267# CONFIG_HOTPLUG_PCI is not set 273# CONFIG_HOTPLUG_PCI is not set
268# CONFIG_HAS_RAPIDIO is not set 274# CONFIG_HAS_RAPIDIO is not set
@@ -286,6 +292,7 @@ CONFIG_NET=y
286# 292#
287# Networking options 293# Networking options
288# 294#
295CONFIG_COMPAT_NET_DEV_OPS=y
289CONFIG_PACKET=y 296CONFIG_PACKET=y
290# CONFIG_PACKET_MMAP is not set 297# CONFIG_PACKET_MMAP is not set
291CONFIG_UNIX=y 298CONFIG_UNIX=y
@@ -400,6 +407,7 @@ CONFIG_IP_NF_FILTER=m
400# CONFIG_ECONET is not set 407# CONFIG_ECONET is not set
401# CONFIG_WAN_ROUTER is not set 408# CONFIG_WAN_ROUTER is not set
402# CONFIG_NET_SCHED is not set 409# CONFIG_NET_SCHED is not set
410# CONFIG_DCB is not set
403 411
404# 412#
405# Network testing 413# Network testing
@@ -415,8 +423,9 @@ CONFIG_WIRELESS=y
415# CONFIG_CFG80211 is not set 423# CONFIG_CFG80211 is not set
416CONFIG_WIRELESS_OLD_REGULATORY=y 424CONFIG_WIRELESS_OLD_REGULATORY=y
417# CONFIG_WIRELESS_EXT is not set 425# CONFIG_WIRELESS_EXT is not set
426# CONFIG_LIB80211 is not set
418# CONFIG_MAC80211 is not set 427# CONFIG_MAC80211 is not set
419# CONFIG_IEEE80211 is not set 428# CONFIG_WIMAX is not set
420# CONFIG_RFKILL is not set 429# CONFIG_RFKILL is not set
421# CONFIG_NET_9P is not set 430# CONFIG_NET_9P is not set
422 431
@@ -470,14 +479,17 @@ CONFIG_MISC_DEVICES=y
470# CONFIG_EEPROM_93CX6 is not set 479# CONFIG_EEPROM_93CX6 is not set
471# CONFIG_SGI_IOC4 is not set 480# CONFIG_SGI_IOC4 is not set
472# CONFIG_TIFM_CORE is not set 481# CONFIG_TIFM_CORE is not set
482# CONFIG_ICS932S401 is not set
473# CONFIG_ENCLOSURE_SERVICES is not set 483# CONFIG_ENCLOSURE_SERVICES is not set
474# CONFIG_HP_ILO is not set 484# CONFIG_HP_ILO is not set
485# CONFIG_C2PORT is not set
475CONFIG_HAVE_IDE=y 486CONFIG_HAVE_IDE=y
476CONFIG_IDE=y 487CONFIG_IDE=y
477 488
478# 489#
479# Please see Documentation/ide/ide.txt for help/info on IDE drives 490# Please see Documentation/ide/ide.txt for help/info on IDE drives
480# 491#
492CONFIG_IDE_ATAPI=y
481# CONFIG_BLK_DEV_IDE_SATA is not set 493# CONFIG_BLK_DEV_IDE_SATA is not set
482CONFIG_IDE_GD=y 494CONFIG_IDE_GD=y
483CONFIG_IDE_GD_ATA=y 495CONFIG_IDE_GD_ATA=y
@@ -485,7 +497,6 @@ CONFIG_IDE_GD_ATA=y
485CONFIG_BLK_DEV_IDECD=m 497CONFIG_BLK_DEV_IDECD=m
486CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 498CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
487# CONFIG_BLK_DEV_IDETAPE is not set 499# CONFIG_BLK_DEV_IDETAPE is not set
488# CONFIG_BLK_DEV_IDESCSI is not set
489# CONFIG_IDE_TASK_IOCTL is not set 500# CONFIG_IDE_TASK_IOCTL is not set
490CONFIG_IDE_PROC_FS=y 501CONFIG_IDE_PROC_FS=y
491 502
@@ -510,6 +521,7 @@ CONFIG_IDE_PROC_FS=y
510# CONFIG_BLK_DEV_JMICRON is not set 521# CONFIG_BLK_DEV_JMICRON is not set
511# CONFIG_BLK_DEV_SC1200 is not set 522# CONFIG_BLK_DEV_SC1200 is not set
512# CONFIG_BLK_DEV_PIIX is not set 523# CONFIG_BLK_DEV_PIIX is not set
524# CONFIG_BLK_DEV_IT8172 is not set
513# CONFIG_BLK_DEV_IT8213 is not set 525# CONFIG_BLK_DEV_IT8213 is not set
514# CONFIG_BLK_DEV_IT821X is not set 526# CONFIG_BLK_DEV_IT821X is not set
515# CONFIG_BLK_DEV_NS87415 is not set 527# CONFIG_BLK_DEV_NS87415 is not set
@@ -564,6 +576,7 @@ CONFIG_SCSI_WAIT_SCAN=m
564# CONFIG_SCSI_SRP_ATTRS is not set 576# CONFIG_SCSI_SRP_ATTRS is not set
565CONFIG_SCSI_LOWLEVEL=y 577CONFIG_SCSI_LOWLEVEL=y
566# CONFIG_ISCSI_TCP is not set 578# CONFIG_ISCSI_TCP is not set
579# CONFIG_SCSI_CXGB3_ISCSI is not set
567# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 580# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
568# CONFIG_SCSI_3W_9XXX is not set 581# CONFIG_SCSI_3W_9XXX is not set
569# CONFIG_SCSI_ACARD is not set 582# CONFIG_SCSI_ACARD is not set
@@ -580,6 +593,8 @@ CONFIG_SCSI_LOWLEVEL=y
580# CONFIG_MEGARAID_SAS is not set 593# CONFIG_MEGARAID_SAS is not set
581# CONFIG_SCSI_HPTIOP is not set 594# CONFIG_SCSI_HPTIOP is not set
582# CONFIG_SCSI_BUSLOGIC is not set 595# CONFIG_SCSI_BUSLOGIC is not set
596# CONFIG_LIBFC is not set
597# CONFIG_FCOE is not set
583# CONFIG_SCSI_DMX3191D is not set 598# CONFIG_SCSI_DMX3191D is not set
584# CONFIG_SCSI_EATA is not set 599# CONFIG_SCSI_EATA is not set
585# CONFIG_SCSI_FUTURE_DOMAIN is not set 600# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -640,6 +655,9 @@ CONFIG_MARVELL_PHY=y
640# CONFIG_BROADCOM_PHY is not set 655# CONFIG_BROADCOM_PHY is not set
641# CONFIG_ICPLUS_PHY is not set 656# CONFIG_ICPLUS_PHY is not set
642# CONFIG_REALTEK_PHY is not set 657# CONFIG_REALTEK_PHY is not set
658# CONFIG_NATIONAL_PHY is not set
659# CONFIG_STE10XP is not set
660# CONFIG_LSI_ET1011C_PHY is not set
643# CONFIG_FIXED_PHY is not set 661# CONFIG_FIXED_PHY is not set
644# CONFIG_MDIO_BITBANG is not set 662# CONFIG_MDIO_BITBANG is not set
645CONFIG_NET_ETHERNET=y 663CONFIG_NET_ETHERNET=y
@@ -686,6 +704,7 @@ CONFIG_GIANFAR=y
686# CONFIG_JME is not set 704# CONFIG_JME is not set
687CONFIG_NETDEV_10000=y 705CONFIG_NETDEV_10000=y
688# CONFIG_CHELSIO_T1 is not set 706# CONFIG_CHELSIO_T1 is not set
707CONFIG_CHELSIO_T3_DEPENDS=y
689# CONFIG_CHELSIO_T3 is not set 708# CONFIG_CHELSIO_T3 is not set
690# CONFIG_ENIC is not set 709# CONFIG_ENIC is not set
691# CONFIG_IXGBE is not set 710# CONFIG_IXGBE is not set
@@ -708,6 +727,10 @@ CONFIG_NETDEV_10000=y
708# CONFIG_WLAN_PRE80211 is not set 727# CONFIG_WLAN_PRE80211 is not set
709# CONFIG_WLAN_80211 is not set 728# CONFIG_WLAN_80211 is not set
710# CONFIG_IWLWIFI_LEDS is not set 729# CONFIG_IWLWIFI_LEDS is not set
730
731#
732# Enable WiMAX (Networking options) to see the WiMAX drivers
733#
711# CONFIG_WAN is not set 734# CONFIG_WAN is not set
712# CONFIG_FDDI is not set 735# CONFIG_FDDI is not set
713# CONFIG_HIPPI is not set 736# CONFIG_HIPPI is not set
@@ -805,11 +828,13 @@ CONFIG_SERIAL_CPM=y
805CONFIG_SERIAL_CPM_CONSOLE=y 828CONFIG_SERIAL_CPM_CONSOLE=y
806# CONFIG_SERIAL_JSM is not set 829# CONFIG_SERIAL_JSM is not set
807CONFIG_UNIX98_PTYS=y 830CONFIG_UNIX98_PTYS=y
831# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
808CONFIG_LEGACY_PTYS=y 832CONFIG_LEGACY_PTYS=y
809CONFIG_LEGACY_PTY_COUNT=256 833CONFIG_LEGACY_PTY_COUNT=256
810CONFIG_PRINTER=m 834CONFIG_PRINTER=m
811# CONFIG_LP_CONSOLE is not set 835# CONFIG_LP_CONSOLE is not set
812# CONFIG_PPDEV is not set 836# CONFIG_PPDEV is not set
837# CONFIG_HVC_UDBG is not set
813# CONFIG_IPMI_HANDLER is not set 838# CONFIG_IPMI_HANDLER is not set
814CONFIG_HW_RANDOM=m 839CONFIG_HW_RANDOM=m
815# CONFIG_NVRAM is not set 840# CONFIG_NVRAM is not set
@@ -823,6 +848,7 @@ CONFIG_I2C=m
823CONFIG_I2C_BOARDINFO=y 848CONFIG_I2C_BOARDINFO=y
824CONFIG_I2C_CHARDEV=m 849CONFIG_I2C_CHARDEV=m
825CONFIG_I2C_HELPER_AUTO=y 850CONFIG_I2C_HELPER_AUTO=y
851CONFIG_I2C_ALGOBIT=m
826 852
827# 853#
828# I2C Hardware Bus support 854# I2C Hardware Bus support
@@ -877,13 +903,12 @@ CONFIG_I2C_HELPER_AUTO=y
877# Miscellaneous I2C Chip support 903# Miscellaneous I2C Chip support
878# 904#
879# CONFIG_DS1682 is not set 905# CONFIG_DS1682 is not set
880# CONFIG_AT24 is not set 906# CONFIG_EEPROM_AT24 is not set
881# CONFIG_SENSORS_EEPROM is not set 907# CONFIG_EEPROM_LEGACY is not set
882# CONFIG_SENSORS_PCF8574 is not set 908# CONFIG_SENSORS_PCF8574 is not set
883# CONFIG_PCF8575 is not set 909# CONFIG_PCF8575 is not set
884# CONFIG_SENSORS_PCA9539 is not set 910# CONFIG_SENSORS_PCA9539 is not set
885# CONFIG_SENSORS_PCF8591 is not set 911# CONFIG_SENSORS_PCF8591 is not set
886# CONFIG_TPS65010 is not set
887# CONFIG_SENSORS_MAX6875 is not set 912# CONFIG_SENSORS_MAX6875 is not set
888# CONFIG_SENSORS_TSL2550 is not set 913# CONFIG_SENSORS_TSL2550 is not set
889# CONFIG_I2C_DEBUG_CORE is not set 914# CONFIG_I2C_DEBUG_CORE is not set
@@ -898,6 +923,11 @@ CONFIG_GPIOLIB=y
898# CONFIG_GPIO_SYSFS is not set 923# CONFIG_GPIO_SYSFS is not set
899 924
900# 925#
926# Memory mapped GPIO expanders:
927#
928# CONFIG_GPIO_XILINX is not set
929
930#
901# I2C GPIO expanders: 931# I2C GPIO expanders:
902# 932#
903# CONFIG_GPIO_MAX732X is not set 933# CONFIG_GPIO_MAX732X is not set
@@ -924,8 +954,10 @@ CONFIG_HWMON=y
924# CONFIG_SENSORS_ADM1029 is not set 954# CONFIG_SENSORS_ADM1029 is not set
925# CONFIG_SENSORS_ADM1031 is not set 955# CONFIG_SENSORS_ADM1031 is not set
926# CONFIG_SENSORS_ADM9240 is not set 956# CONFIG_SENSORS_ADM9240 is not set
957# CONFIG_SENSORS_ADT7462 is not set
927# CONFIG_SENSORS_ADT7470 is not set 958# CONFIG_SENSORS_ADT7470 is not set
928# CONFIG_SENSORS_ADT7473 is not set 959# CONFIG_SENSORS_ADT7473 is not set
960# CONFIG_SENSORS_ADT7475 is not set
929# CONFIG_SENSORS_ATXP1 is not set 961# CONFIG_SENSORS_ATXP1 is not set
930# CONFIG_SENSORS_DS1621 is not set 962# CONFIG_SENSORS_DS1621 is not set
931# CONFIG_SENSORS_I5K_AMB is not set 963# CONFIG_SENSORS_I5K_AMB is not set
@@ -946,6 +978,7 @@ CONFIG_HWMON=y
946# CONFIG_SENSORS_LM90 is not set 978# CONFIG_SENSORS_LM90 is not set
947# CONFIG_SENSORS_LM92 is not set 979# CONFIG_SENSORS_LM92 is not set
948# CONFIG_SENSORS_LM93 is not set 980# CONFIG_SENSORS_LM93 is not set
981# CONFIG_SENSORS_LTC4245 is not set
949# CONFIG_SENSORS_MAX1619 is not set 982# CONFIG_SENSORS_MAX1619 is not set
950# CONFIG_SENSORS_MAX6650 is not set 983# CONFIG_SENSORS_MAX6650 is not set
951# CONFIG_SENSORS_PC87360 is not set 984# CONFIG_SENSORS_PC87360 is not set
@@ -972,11 +1005,11 @@ CONFIG_HWMON=y
972# CONFIG_THERMAL is not set 1005# CONFIG_THERMAL is not set
973# CONFIG_THERMAL_HWMON is not set 1006# CONFIG_THERMAL_HWMON is not set
974# CONFIG_WATCHDOG is not set 1007# CONFIG_WATCHDOG is not set
1008CONFIG_SSB_POSSIBLE=y
975 1009
976# 1010#
977# Sonics Silicon Backplane 1011# Sonics Silicon Backplane
978# 1012#
979CONFIG_SSB_POSSIBLE=y
980# CONFIG_SSB is not set 1013# CONFIG_SSB is not set
981 1014
982# 1015#
@@ -985,17 +1018,12 @@ CONFIG_SSB_POSSIBLE=y
985# CONFIG_MFD_CORE is not set 1018# CONFIG_MFD_CORE is not set
986# CONFIG_MFD_SM501 is not set 1019# CONFIG_MFD_SM501 is not set
987# CONFIG_HTC_PASIC3 is not set 1020# CONFIG_HTC_PASIC3 is not set
1021# CONFIG_TPS65010 is not set
988# CONFIG_MFD_TMIO is not set 1022# CONFIG_MFD_TMIO is not set
989# CONFIG_MFD_WM8400 is not set 1023# CONFIG_MFD_WM8400 is not set
990# CONFIG_MFD_WM8350_I2C is not set 1024# CONFIG_MFD_WM8350_I2C is not set
991 1025# CONFIG_MFD_PCF50633 is not set
992#
993# Voltage and Current regulators
994#
995# CONFIG_REGULATOR is not set 1026# CONFIG_REGULATOR is not set
996# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
997# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
998# CONFIG_REGULATOR_BQ24022 is not set
999 1027
1000# 1028#
1001# Multimedia devices 1029# Multimedia devices
@@ -1061,9 +1089,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1061# 1089#
1062 1090
1063# 1091#
1064# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1092# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1065# 1093#
1066# CONFIG_USB_GADGET is not set 1094# CONFIG_USB_GADGET is not set
1095
1096#
1097# OTG and related infrastructure
1098#
1067# CONFIG_UWB is not set 1099# CONFIG_UWB is not set
1068# CONFIG_MMC is not set 1100# CONFIG_MMC is not set
1069# CONFIG_MEMSTICK is not set 1101# CONFIG_MEMSTICK is not set
@@ -1096,6 +1128,7 @@ CONFIG_FS_MBCACHE=y
1096CONFIG_FILE_LOCKING=y 1128CONFIG_FILE_LOCKING=y
1097# CONFIG_XFS_FS is not set 1129# CONFIG_XFS_FS is not set
1098# CONFIG_OCFS2_FS is not set 1130# CONFIG_OCFS2_FS is not set
1131# CONFIG_BTRFS_FS is not set
1099CONFIG_DNOTIFY=y 1132CONFIG_DNOTIFY=y
1100CONFIG_INOTIFY=y 1133CONFIG_INOTIFY=y
1101CONFIG_INOTIFY_USER=y 1134CONFIG_INOTIFY_USER=y
@@ -1135,10 +1168,7 @@ CONFIG_TMPFS=y
1135# CONFIG_TMPFS_POSIX_ACL is not set 1168# CONFIG_TMPFS_POSIX_ACL is not set
1136# CONFIG_HUGETLB_PAGE is not set 1169# CONFIG_HUGETLB_PAGE is not set
1137# CONFIG_CONFIGFS_FS is not set 1170# CONFIG_CONFIGFS_FS is not set
1138 1171CONFIG_MISC_FILESYSTEMS=y
1139#
1140# Miscellaneous filesystems
1141#
1142# CONFIG_ADFS_FS is not set 1172# CONFIG_ADFS_FS is not set
1143# CONFIG_AFFS_FS is not set 1173# CONFIG_AFFS_FS is not set
1144# CONFIG_HFS_FS is not set 1174# CONFIG_HFS_FS is not set
@@ -1147,6 +1177,7 @@ CONFIG_TMPFS=y
1147# CONFIG_BFS_FS is not set 1177# CONFIG_BFS_FS is not set
1148# CONFIG_EFS_FS is not set 1178# CONFIG_EFS_FS is not set
1149CONFIG_CRAMFS=m 1179CONFIG_CRAMFS=m
1180# CONFIG_SQUASHFS is not set
1150# CONFIG_VXFS_FS is not set 1181# CONFIG_VXFS_FS is not set
1151# CONFIG_MINIX_FS is not set 1182# CONFIG_MINIX_FS is not set
1152# CONFIG_OMFS_FS is not set 1183# CONFIG_OMFS_FS is not set
@@ -1227,6 +1258,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1227# Library routines 1258# Library routines
1228# 1259#
1229CONFIG_BITREVERSE=y 1260CONFIG_BITREVERSE=y
1261CONFIG_GENERIC_FIND_LAST_BIT=y
1230CONFIG_CRC_CCITT=y 1262CONFIG_CRC_CCITT=y
1231# CONFIG_CRC16 is not set 1263# CONFIG_CRC16 is not set
1232CONFIG_CRC_T10DIF=m 1264CONFIG_CRC_T10DIF=m
@@ -1278,6 +1310,7 @@ CONFIG_SCHED_DEBUG=y
1278# CONFIG_DEBUG_MEMORY_INIT is not set 1310# CONFIG_DEBUG_MEMORY_INIT is not set
1279# CONFIG_DEBUG_LIST is not set 1311# CONFIG_DEBUG_LIST is not set
1280# CONFIG_DEBUG_SG is not set 1312# CONFIG_DEBUG_SG is not set
1313# CONFIG_DEBUG_NOTIFIERS is not set
1281# CONFIG_BOOT_PRINTK_DELAY is not set 1314# CONFIG_BOOT_PRINTK_DELAY is not set
1282# CONFIG_RCU_TORTURE_TEST is not set 1315# CONFIG_RCU_TORTURE_TEST is not set
1283# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1316# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1287,6 +1320,8 @@ CONFIG_SCHED_DEBUG=y
1287# CONFIG_LATENCYTOP is not set 1320# CONFIG_LATENCYTOP is not set
1288CONFIG_SYSCTL_SYSCALL_CHECK=y 1321CONFIG_SYSCTL_SYSCALL_CHECK=y
1289CONFIG_HAVE_FUNCTION_TRACER=y 1322CONFIG_HAVE_FUNCTION_TRACER=y
1323CONFIG_HAVE_DYNAMIC_FTRACE=y
1324CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1290 1325
1291# 1326#
1292# Tracers 1327# Tracers
@@ -1295,11 +1330,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1295# CONFIG_SCHED_TRACER is not set 1330# CONFIG_SCHED_TRACER is not set
1296# CONFIG_CONTEXT_SWITCH_TRACER is not set 1331# CONFIG_CONTEXT_SWITCH_TRACER is not set
1297# CONFIG_BOOT_TRACER is not set 1332# CONFIG_BOOT_TRACER is not set
1333# CONFIG_TRACE_BRANCH_PROFILING is not set
1298# CONFIG_STACK_TRACER is not set 1334# CONFIG_STACK_TRACER is not set
1299# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1335# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1300# CONFIG_SAMPLES is not set 1336# CONFIG_SAMPLES is not set
1301CONFIG_HAVE_ARCH_KGDB=y 1337CONFIG_HAVE_ARCH_KGDB=y
1302# CONFIG_KGDB is not set 1338# CONFIG_KGDB is not set
1339CONFIG_PRINT_STACK_DEPTH=64
1303# CONFIG_DEBUG_STACKOVERFLOW is not set 1340# CONFIG_DEBUG_STACKOVERFLOW is not set
1304# CONFIG_DEBUG_STACK_USAGE is not set 1341# CONFIG_DEBUG_STACK_USAGE is not set
1305# CONFIG_DEBUG_PAGEALLOC is not set 1342# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1325,6 +1362,7 @@ CONFIG_CRYPTO=y
1325# 1362#
1326# CONFIG_CRYPTO_FIPS is not set 1363# CONFIG_CRYPTO_FIPS is not set
1327# CONFIG_CRYPTO_MANAGER is not set 1364# CONFIG_CRYPTO_MANAGER is not set
1365# CONFIG_CRYPTO_MANAGER2 is not set
1328# CONFIG_CRYPTO_GF128MUL is not set 1366# CONFIG_CRYPTO_GF128MUL is not set
1329# CONFIG_CRYPTO_NULL is not set 1367# CONFIG_CRYPTO_NULL is not set
1330# CONFIG_CRYPTO_CRYPTD is not set 1368# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index f3e4f3481fda..f4379b1cf841 100644
--- a/arch/powerpc/configs/85xx/tqm8540_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8540_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:20 2008 4# Mon Jan 26 15:36:19 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -113,7 +115,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 115CONFIG_SLUB=y
114# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 120CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,13 +124,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 128# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 129CONFIG_BLOCK=y
130# CONFIG_LBD is not set 130# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 132# CONFIG_BLK_DEV_BSG is not set
134# CONFIG_BLK_DEV_INTEGRITY is not set 133# CONFIG_BLK_DEV_INTEGRITY is not set
135 134
@@ -146,6 +145,10 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
147CONFIG_DEFAULT_IOSCHED="anticipatory" 146CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_CLASSIC_RCU=y 147CONFIG_CLASSIC_RCU=y
148# CONFIG_TREE_RCU is not set
149# CONFIG_PREEMPT_RCU is not set
150# CONFIG_TREE_RCU_TRACE is not set
151# CONFIG_PREEMPT_RCU_TRACE is not set
149# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
150 153
151# 154#
@@ -186,6 +189,7 @@ CONFIG_MPIC=y
186# CONFIG_CPM2 is not set 189# CONFIG_CPM2 is not set
187# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
188# CONFIG_MPC8xxx_GPIO is not set 191# CONFIG_MPC8xxx_GPIO is not set
192# CONFIG_SIMPLE_GPIO is not set
189 193
190# 194#
191# Kernel options 195# Kernel options
@@ -223,12 +227,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
223CONFIG_PAGEFLAGS_EXTENDED=y 227CONFIG_PAGEFLAGS_EXTENDED=y
224CONFIG_SPLIT_PTLOCK_CPUS=4 228CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y 229CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set
227# CONFIG_PHYS_ADDR_T_64BIT is not set 230# CONFIG_PHYS_ADDR_T_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
230CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
231CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set
232CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
233# CONFIG_PROC_DEVICETREE is not set 239# CONFIG_PROC_DEVICETREE is not set
234# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
@@ -252,6 +258,7 @@ CONFIG_PCI_SYSCALL=y
252CONFIG_ARCH_SUPPORTS_MSI=y 258CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_MSI is not set 259# CONFIG_PCI_MSI is not set
254# CONFIG_PCI_LEGACY is not set 260# CONFIG_PCI_LEGACY is not set
261# CONFIG_PCI_STUB is not set
255# CONFIG_HAS_RAPIDIO is not set 262# CONFIG_HAS_RAPIDIO is not set
256 263
257# 264#
@@ -273,6 +280,7 @@ CONFIG_NET=y
273# 280#
274# Networking options 281# Networking options
275# 282#
283CONFIG_COMPAT_NET_DEV_OPS=y
276CONFIG_PACKET=y 284CONFIG_PACKET=y
277# CONFIG_PACKET_MMAP is not set 285# CONFIG_PACKET_MMAP is not set
278CONFIG_UNIX=y 286CONFIG_UNIX=y
@@ -329,6 +337,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
329# CONFIG_ECONET is not set 337# CONFIG_ECONET is not set
330# CONFIG_WAN_ROUTER is not set 338# CONFIG_WAN_ROUTER is not set
331# CONFIG_NET_SCHED is not set 339# CONFIG_NET_SCHED is not set
340# CONFIG_DCB is not set
332 341
333# 342#
334# Network testing 343# Network testing
@@ -344,8 +353,9 @@ CONFIG_WIRELESS=y
344# CONFIG_CFG80211 is not set 353# CONFIG_CFG80211 is not set
345CONFIG_WIRELESS_OLD_REGULATORY=y 354CONFIG_WIRELESS_OLD_REGULATORY=y
346# CONFIG_WIRELESS_EXT is not set 355# CONFIG_WIRELESS_EXT is not set
356# CONFIG_LIB80211 is not set
347# CONFIG_MAC80211 is not set 357# CONFIG_MAC80211 is not set
348# CONFIG_IEEE80211 is not set 358# CONFIG_WIMAX is not set
349# CONFIG_RFKILL is not set 359# CONFIG_RFKILL is not set
350# CONFIG_NET_9P is not set 360# CONFIG_NET_9P is not set
351 361
@@ -435,6 +445,12 @@ CONFIG_MTD_CFI_UTIL=y
435# CONFIG_MTD_ONENAND is not set 445# CONFIG_MTD_ONENAND is not set
436 446
437# 447#
448# LPDDR flash memory drivers
449#
450# CONFIG_MTD_LPDDR is not set
451# CONFIG_MTD_QINFO_PROBE is not set
452
453#
438# UBI - Unsorted block images 454# UBI - Unsorted block images
439# 455#
440# CONFIG_MTD_UBI is not set 456# CONFIG_MTD_UBI is not set
@@ -464,8 +480,10 @@ CONFIG_MISC_DEVICES=y
464# CONFIG_EEPROM_93CX6 is not set 480# CONFIG_EEPROM_93CX6 is not set
465# CONFIG_SGI_IOC4 is not set 481# CONFIG_SGI_IOC4 is not set
466# CONFIG_TIFM_CORE is not set 482# CONFIG_TIFM_CORE is not set
483# CONFIG_ICS932S401 is not set
467# CONFIG_ENCLOSURE_SERVICES is not set 484# CONFIG_ENCLOSURE_SERVICES is not set
468# CONFIG_HP_ILO is not set 485# CONFIG_HP_ILO is not set
486# CONFIG_C2PORT is not set
469CONFIG_HAVE_IDE=y 487CONFIG_HAVE_IDE=y
470CONFIG_IDE=y 488CONFIG_IDE=y
471 489
@@ -508,6 +526,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
508# CONFIG_BLK_DEV_JMICRON is not set 526# CONFIG_BLK_DEV_JMICRON is not set
509# CONFIG_BLK_DEV_SC1200 is not set 527# CONFIG_BLK_DEV_SC1200 is not set
510# CONFIG_BLK_DEV_PIIX is not set 528# CONFIG_BLK_DEV_PIIX is not set
529# CONFIG_BLK_DEV_IT8172 is not set
511# CONFIG_BLK_DEV_IT8213 is not set 530# CONFIG_BLK_DEV_IT8213 is not set
512# CONFIG_BLK_DEV_IT821X is not set 531# CONFIG_BLK_DEV_IT821X is not set
513# CONFIG_BLK_DEV_NS87415 is not set 532# CONFIG_BLK_DEV_NS87415 is not set
@@ -567,6 +586,9 @@ CONFIG_PHYLIB=y
567# CONFIG_BROADCOM_PHY is not set 586# CONFIG_BROADCOM_PHY is not set
568# CONFIG_ICPLUS_PHY is not set 587# CONFIG_ICPLUS_PHY is not set
569# CONFIG_REALTEK_PHY is not set 588# CONFIG_REALTEK_PHY is not set
589# CONFIG_NATIONAL_PHY is not set
590# CONFIG_STE10XP is not set
591# CONFIG_LSI_ET1011C_PHY is not set
570# CONFIG_FIXED_PHY is not set 592# CONFIG_FIXED_PHY is not set
571# CONFIG_MDIO_BITBANG is not set 593# CONFIG_MDIO_BITBANG is not set
572CONFIG_NET_ETHERNET=y 594CONFIG_NET_ETHERNET=y
@@ -590,7 +612,6 @@ CONFIG_NET_PCI=y
590# CONFIG_ADAPTEC_STARFIRE is not set 612# CONFIG_ADAPTEC_STARFIRE is not set
591# CONFIG_B44 is not set 613# CONFIG_B44 is not set
592# CONFIG_FORCEDETH is not set 614# CONFIG_FORCEDETH is not set
593# CONFIG_EEPRO100 is not set
594CONFIG_E100=y 615CONFIG_E100=y
595# CONFIG_FEALNX is not set 616# CONFIG_FEALNX is not set
596# CONFIG_NATSEMI is not set 617# CONFIG_NATSEMI is not set
@@ -600,6 +621,7 @@ CONFIG_E100=y
600# CONFIG_R6040 is not set 621# CONFIG_R6040 is not set
601# CONFIG_SIS900 is not set 622# CONFIG_SIS900 is not set
602# CONFIG_EPIC100 is not set 623# CONFIG_EPIC100 is not set
624# CONFIG_SMSC9420 is not set
603# CONFIG_SUNDANCE is not set 625# CONFIG_SUNDANCE is not set
604# CONFIG_TLAN is not set 626# CONFIG_TLAN is not set
605# CONFIG_VIA_RHINE is not set 627# CONFIG_VIA_RHINE is not set
@@ -629,6 +651,7 @@ CONFIG_GIANFAR=y
629# CONFIG_JME is not set 651# CONFIG_JME is not set
630CONFIG_NETDEV_10000=y 652CONFIG_NETDEV_10000=y
631# CONFIG_CHELSIO_T1 is not set 653# CONFIG_CHELSIO_T1 is not set
654CONFIG_CHELSIO_T3_DEPENDS=y
632# CONFIG_CHELSIO_T3 is not set 655# CONFIG_CHELSIO_T3 is not set
633# CONFIG_ENIC is not set 656# CONFIG_ENIC is not set
634# CONFIG_IXGBE is not set 657# CONFIG_IXGBE is not set
@@ -651,6 +674,10 @@ CONFIG_NETDEV_10000=y
651# CONFIG_WLAN_PRE80211 is not set 674# CONFIG_WLAN_PRE80211 is not set
652# CONFIG_WLAN_80211 is not set 675# CONFIG_WLAN_80211 is not set
653# CONFIG_IWLWIFI_LEDS is not set 676# CONFIG_IWLWIFI_LEDS is not set
677
678#
679# Enable WiMAX (Networking options) to see the WiMAX drivers
680#
654# CONFIG_WAN is not set 681# CONFIG_WAN is not set
655# CONFIG_FDDI is not set 682# CONFIG_FDDI is not set
656# CONFIG_HIPPI is not set 683# CONFIG_HIPPI is not set
@@ -721,8 +748,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
721# CONFIG_SERIAL_JSM is not set 748# CONFIG_SERIAL_JSM is not set
722# CONFIG_SERIAL_OF_PLATFORM is not set 749# CONFIG_SERIAL_OF_PLATFORM is not set
723CONFIG_UNIX98_PTYS=y 750CONFIG_UNIX98_PTYS=y
751# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
724CONFIG_LEGACY_PTYS=y 752CONFIG_LEGACY_PTYS=y
725CONFIG_LEGACY_PTY_COUNT=256 753CONFIG_LEGACY_PTY_COUNT=256
754# CONFIG_HVC_UDBG is not set
726# CONFIG_IPMI_HANDLER is not set 755# CONFIG_IPMI_HANDLER is not set
727CONFIG_HW_RANDOM=y 756CONFIG_HW_RANDOM=y
728# CONFIG_NVRAM is not set 757# CONFIG_NVRAM is not set
@@ -787,8 +816,8 @@ CONFIG_I2C_MPC=y
787# Miscellaneous I2C Chip support 816# Miscellaneous I2C Chip support
788# 817#
789# CONFIG_DS1682 is not set 818# CONFIG_DS1682 is not set
790# CONFIG_AT24 is not set 819# CONFIG_EEPROM_AT24 is not set
791# CONFIG_SENSORS_EEPROM is not set 820# CONFIG_EEPROM_LEGACY is not set
792# CONFIG_SENSORS_PCF8574 is not set 821# CONFIG_SENSORS_PCF8574 is not set
793# CONFIG_PCF8575 is not set 822# CONFIG_PCF8575 is not set
794# CONFIG_SENSORS_PCA9539 is not set 823# CONFIG_SENSORS_PCA9539 is not set
@@ -814,8 +843,10 @@ CONFIG_HWMON=y
814# CONFIG_SENSORS_ADM1029 is not set 843# CONFIG_SENSORS_ADM1029 is not set
815# CONFIG_SENSORS_ADM1031 is not set 844# CONFIG_SENSORS_ADM1031 is not set
816# CONFIG_SENSORS_ADM9240 is not set 845# CONFIG_SENSORS_ADM9240 is not set
846# CONFIG_SENSORS_ADT7462 is not set
817# CONFIG_SENSORS_ADT7470 is not set 847# CONFIG_SENSORS_ADT7470 is not set
818# CONFIG_SENSORS_ADT7473 is not set 848# CONFIG_SENSORS_ADT7473 is not set
849# CONFIG_SENSORS_ADT7475 is not set
819# CONFIG_SENSORS_ATXP1 is not set 850# CONFIG_SENSORS_ATXP1 is not set
820# CONFIG_SENSORS_DS1621 is not set 851# CONFIG_SENSORS_DS1621 is not set
821# CONFIG_SENSORS_I5K_AMB is not set 852# CONFIG_SENSORS_I5K_AMB is not set
@@ -836,6 +867,7 @@ CONFIG_SENSORS_LM75=y
836# CONFIG_SENSORS_LM90 is not set 867# CONFIG_SENSORS_LM90 is not set
837# CONFIG_SENSORS_LM92 is not set 868# CONFIG_SENSORS_LM92 is not set
838# CONFIG_SENSORS_LM93 is not set 869# CONFIG_SENSORS_LM93 is not set
870# CONFIG_SENSORS_LTC4245 is not set
839# CONFIG_SENSORS_MAX1619 is not set 871# CONFIG_SENSORS_MAX1619 is not set
840# CONFIG_SENSORS_MAX6650 is not set 872# CONFIG_SENSORS_MAX6650 is not set
841# CONFIG_SENSORS_PC87360 is not set 873# CONFIG_SENSORS_PC87360 is not set
@@ -862,11 +894,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
862# CONFIG_THERMAL is not set 894# CONFIG_THERMAL is not set
863# CONFIG_THERMAL_HWMON is not set 895# CONFIG_THERMAL_HWMON is not set
864# CONFIG_WATCHDOG is not set 896# CONFIG_WATCHDOG is not set
897CONFIG_SSB_POSSIBLE=y
865 898
866# 899#
867# Sonics Silicon Backplane 900# Sonics Silicon Backplane
868# 901#
869CONFIG_SSB_POSSIBLE=y
870# CONFIG_SSB is not set 902# CONFIG_SSB is not set
871 903
872# 904#
@@ -875,18 +907,13 @@ CONFIG_SSB_POSSIBLE=y
875# CONFIG_MFD_CORE is not set 907# CONFIG_MFD_CORE is not set
876# CONFIG_MFD_SM501 is not set 908# CONFIG_MFD_SM501 is not set
877# CONFIG_HTC_PASIC3 is not set 909# CONFIG_HTC_PASIC3 is not set
910# CONFIG_TWL4030_CORE is not set
878# CONFIG_MFD_TMIO is not set 911# CONFIG_MFD_TMIO is not set
879# CONFIG_PMIC_DA903X is not set 912# CONFIG_PMIC_DA903X is not set
880# CONFIG_MFD_WM8400 is not set 913# CONFIG_MFD_WM8400 is not set
881# CONFIG_MFD_WM8350_I2C is not set 914# CONFIG_MFD_WM8350_I2C is not set
882 915# CONFIG_MFD_PCF50633 is not set
883#
884# Voltage and Current regulators
885#
886# CONFIG_REGULATOR is not set 916# CONFIG_REGULATOR is not set
887# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
888# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
889# CONFIG_REGULATOR_BQ24022 is not set
890 917
891# 918#
892# Multimedia devices 919# Multimedia devices
@@ -942,9 +969,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
942# 969#
943 970
944# 971#
945# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 972# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
946# 973#
947# CONFIG_USB_GADGET is not set 974# CONFIG_USB_GADGET is not set
975
976#
977# OTG and related infrastructure
978#
948# CONFIG_UWB is not set 979# CONFIG_UWB is not set
949# CONFIG_MMC is not set 980# CONFIG_MMC is not set
950# CONFIG_MEMSTICK is not set 981# CONFIG_MEMSTICK is not set
@@ -976,6 +1007,7 @@ CONFIG_FS_MBCACHE=y
976CONFIG_FILE_LOCKING=y 1007CONFIG_FILE_LOCKING=y
977# CONFIG_XFS_FS is not set 1008# CONFIG_XFS_FS is not set
978# CONFIG_OCFS2_FS is not set 1009# CONFIG_OCFS2_FS is not set
1010# CONFIG_BTRFS_FS is not set
979CONFIG_DNOTIFY=y 1011CONFIG_DNOTIFY=y
980CONFIG_INOTIFY=y 1012CONFIG_INOTIFY=y
981CONFIG_INOTIFY_USER=y 1013CONFIG_INOTIFY_USER=y
@@ -1009,10 +1041,7 @@ CONFIG_TMPFS=y
1009# CONFIG_TMPFS_POSIX_ACL is not set 1041# CONFIG_TMPFS_POSIX_ACL is not set
1010# CONFIG_HUGETLB_PAGE is not set 1042# CONFIG_HUGETLB_PAGE is not set
1011# CONFIG_CONFIGFS_FS is not set 1043# CONFIG_CONFIGFS_FS is not set
1012 1044CONFIG_MISC_FILESYSTEMS=y
1013#
1014# Miscellaneous filesystems
1015#
1016# CONFIG_ADFS_FS is not set 1045# CONFIG_ADFS_FS is not set
1017# CONFIG_AFFS_FS is not set 1046# CONFIG_AFFS_FS is not set
1018# CONFIG_HFS_FS is not set 1047# CONFIG_HFS_FS is not set
@@ -1032,6 +1061,7 @@ CONFIG_JFFS2_ZLIB=y
1032CONFIG_JFFS2_RTIME=y 1061CONFIG_JFFS2_RTIME=y
1033# CONFIG_JFFS2_RUBIN is not set 1062# CONFIG_JFFS2_RUBIN is not set
1034CONFIG_CRAMFS=y 1063CONFIG_CRAMFS=y
1064# CONFIG_SQUASHFS is not set
1035# CONFIG_VXFS_FS is not set 1065# CONFIG_VXFS_FS is not set
1036# CONFIG_MINIX_FS is not set 1066# CONFIG_MINIX_FS is not set
1037# CONFIG_OMFS_FS is not set 1067# CONFIG_OMFS_FS is not set
@@ -1082,6 +1112,7 @@ CONFIG_PARTITION_ADVANCED=y
1082# Library routines 1112# Library routines
1083# 1113#
1084CONFIG_BITREVERSE=y 1114CONFIG_BITREVERSE=y
1115CONFIG_GENERIC_FIND_LAST_BIT=y
1085# CONFIG_CRC_CCITT is not set 1116# CONFIG_CRC_CCITT is not set
1086# CONFIG_CRC16 is not set 1117# CONFIG_CRC16 is not set
1087# CONFIG_CRC_T10DIF is not set 1118# CONFIG_CRC_T10DIF is not set
@@ -1117,6 +1148,8 @@ CONFIG_FRAME_WARN=1024
1117# CONFIG_LATENCYTOP is not set 1148# CONFIG_LATENCYTOP is not set
1118CONFIG_SYSCTL_SYSCALL_CHECK=y 1149CONFIG_SYSCTL_SYSCALL_CHECK=y
1119CONFIG_HAVE_FUNCTION_TRACER=y 1150CONFIG_HAVE_FUNCTION_TRACER=y
1151CONFIG_HAVE_DYNAMIC_FTRACE=y
1152CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1120 1153
1121# 1154#
1122# Tracers 1155# Tracers
@@ -1124,6 +1157,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1124# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1157# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1125# CONFIG_SAMPLES is not set 1158# CONFIG_SAMPLES is not set
1126CONFIG_HAVE_ARCH_KGDB=y 1159CONFIG_HAVE_ARCH_KGDB=y
1160CONFIG_PRINT_STACK_DEPTH=64
1127# CONFIG_IRQSTACKS is not set 1161# CONFIG_IRQSTACKS is not set
1128# CONFIG_PPC_EARLY_DEBUG is not set 1162# CONFIG_PPC_EARLY_DEBUG is not set
1129 1163
@@ -1141,6 +1175,7 @@ CONFIG_CRYPTO=y
1141# 1175#
1142# CONFIG_CRYPTO_FIPS is not set 1176# CONFIG_CRYPTO_FIPS is not set
1143# CONFIG_CRYPTO_MANAGER is not set 1177# CONFIG_CRYPTO_MANAGER is not set
1178# CONFIG_CRYPTO_MANAGER2 is not set
1144# CONFIG_CRYPTO_GF128MUL is not set 1179# CONFIG_CRYPTO_GF128MUL is not set
1145# CONFIG_CRYPTO_NULL is not set 1180# CONFIG_CRYPTO_NULL is not set
1146# CONFIG_CRYPTO_CRYPTD is not set 1181# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index c62489394535..b8669231c1fe 100644
--- a/arch/powerpc/configs/85xx/tqm8541_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8541_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:21 2008 4# Mon Jan 26 15:36:20 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,12 +78,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -114,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 116CONFIG_SLUB=y
115# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 121CONFIG_HAVE_IOREMAP_PROT=y
@@ -125,13 +126,11 @@ CONFIG_HAVE_CLK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 130# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 131CONFIG_BLOCK=y
132# CONFIG_LBD is not set 132# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_LSF is not set
135# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
137 136
@@ -148,6 +147,10 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
151# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
152 155
153# 156#
@@ -189,6 +192,7 @@ CONFIG_CPM2=y
189# CONFIG_FSL_ULI1575 is not set 192# CONFIG_FSL_ULI1575 is not set
190CONFIG_CPM=y 193CONFIG_CPM=y
191# CONFIG_MPC8xxx_GPIO is not set 194# CONFIG_MPC8xxx_GPIO is not set
195# CONFIG_SIMPLE_GPIO is not set
192 196
193# 197#
194# Kernel options 198# Kernel options
@@ -226,12 +230,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 230CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 232CONFIG_MIGRATION=y
229# CONFIG_RESOURCES_64BIT is not set
230# CONFIG_PHYS_ADDR_T_64BIT is not set 233# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
236# CONFIG_PROC_DEVICETREE is not set 242# CONFIG_PROC_DEVICETREE is not set
237# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +261,7 @@ CONFIG_PCI_SYSCALL=y
255CONFIG_ARCH_SUPPORTS_MSI=y 261CONFIG_ARCH_SUPPORTS_MSI=y
256# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
257# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set
258# CONFIG_HAS_RAPIDIO is not set 265# CONFIG_HAS_RAPIDIO is not set
259 266
260# 267#
@@ -276,6 +283,7 @@ CONFIG_NET=y
276# 283#
277# Networking options 284# Networking options
278# 285#
286CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 287CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 288# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 289CONFIG_UNIX=y
@@ -332,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_ECONET is not set 340# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 341# CONFIG_WAN_ROUTER is not set
334# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set
335 344
336# 345#
337# Network testing 346# Network testing
@@ -347,8 +356,9 @@ CONFIG_WIRELESS=y
347# CONFIG_CFG80211 is not set 356# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y 357CONFIG_WIRELESS_OLD_REGULATORY=y
349# CONFIG_WIRELESS_EXT is not set 358# CONFIG_WIRELESS_EXT is not set
359# CONFIG_LIB80211 is not set
350# CONFIG_MAC80211 is not set 360# CONFIG_MAC80211 is not set
351# CONFIG_IEEE80211 is not set 361# CONFIG_WIMAX is not set
352# CONFIG_RFKILL is not set 362# CONFIG_RFKILL is not set
353# CONFIG_NET_9P is not set 363# CONFIG_NET_9P is not set
354 364
@@ -438,6 +448,12 @@ CONFIG_MTD_CFI_UTIL=y
438# CONFIG_MTD_ONENAND is not set 448# CONFIG_MTD_ONENAND is not set
439 449
440# 450#
451# LPDDR flash memory drivers
452#
453# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455
456#
441# UBI - Unsorted block images 457# UBI - Unsorted block images
442# 458#
443# CONFIG_MTD_UBI is not set 459# CONFIG_MTD_UBI is not set
@@ -468,8 +484,10 @@ CONFIG_MISC_DEVICES=y
468# CONFIG_EEPROM_93CX6 is not set 484# CONFIG_EEPROM_93CX6 is not set
469# CONFIG_SGI_IOC4 is not set 485# CONFIG_SGI_IOC4 is not set
470# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 488# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 489# CONFIG_HP_ILO is not set
490# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 491CONFIG_HAVE_IDE=y
474CONFIG_IDE=y 492CONFIG_IDE=y
475 493
@@ -512,6 +530,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
512# CONFIG_BLK_DEV_JMICRON is not set 530# CONFIG_BLK_DEV_JMICRON is not set
513# CONFIG_BLK_DEV_SC1200 is not set 531# CONFIG_BLK_DEV_SC1200 is not set
514# CONFIG_BLK_DEV_PIIX is not set 532# CONFIG_BLK_DEV_PIIX is not set
533# CONFIG_BLK_DEV_IT8172 is not set
515# CONFIG_BLK_DEV_IT8213 is not set 534# CONFIG_BLK_DEV_IT8213 is not set
516# CONFIG_BLK_DEV_IT821X is not set 535# CONFIG_BLK_DEV_IT821X is not set
517# CONFIG_BLK_DEV_NS87415 is not set 536# CONFIG_BLK_DEV_NS87415 is not set
@@ -571,6 +590,9 @@ CONFIG_PHYLIB=y
571# CONFIG_BROADCOM_PHY is not set 590# CONFIG_BROADCOM_PHY is not set
572# CONFIG_ICPLUS_PHY is not set 591# CONFIG_ICPLUS_PHY is not set
573# CONFIG_REALTEK_PHY is not set 592# CONFIG_REALTEK_PHY is not set
593# CONFIG_NATIONAL_PHY is not set
594# CONFIG_STE10XP is not set
595# CONFIG_LSI_ET1011C_PHY is not set
574# CONFIG_FIXED_PHY is not set 596# CONFIG_FIXED_PHY is not set
575# CONFIG_MDIO_BITBANG is not set 597# CONFIG_MDIO_BITBANG is not set
576CONFIG_NET_ETHERNET=y 598CONFIG_NET_ETHERNET=y
@@ -594,7 +616,6 @@ CONFIG_NET_PCI=y
594# CONFIG_ADAPTEC_STARFIRE is not set 616# CONFIG_ADAPTEC_STARFIRE is not set
595# CONFIG_B44 is not set 617# CONFIG_B44 is not set
596# CONFIG_FORCEDETH is not set 618# CONFIG_FORCEDETH is not set
597# CONFIG_EEPRO100 is not set
598CONFIG_E100=y 619CONFIG_E100=y
599# CONFIG_FEALNX is not set 620# CONFIG_FEALNX is not set
600# CONFIG_NATSEMI is not set 621# CONFIG_NATSEMI is not set
@@ -604,6 +625,7 @@ CONFIG_E100=y
604# CONFIG_R6040 is not set 625# CONFIG_R6040 is not set
605# CONFIG_SIS900 is not set 626# CONFIG_SIS900 is not set
606# CONFIG_EPIC100 is not set 627# CONFIG_EPIC100 is not set
628# CONFIG_SMSC9420 is not set
607# CONFIG_SUNDANCE is not set 629# CONFIG_SUNDANCE is not set
608# CONFIG_TLAN is not set 630# CONFIG_TLAN is not set
609# CONFIG_VIA_RHINE is not set 631# CONFIG_VIA_RHINE is not set
@@ -634,6 +656,7 @@ CONFIG_GIANFAR=y
634# CONFIG_JME is not set 656# CONFIG_JME is not set
635CONFIG_NETDEV_10000=y 657CONFIG_NETDEV_10000=y
636# CONFIG_CHELSIO_T1 is not set 658# CONFIG_CHELSIO_T1 is not set
659CONFIG_CHELSIO_T3_DEPENDS=y
637# CONFIG_CHELSIO_T3 is not set 660# CONFIG_CHELSIO_T3 is not set
638# CONFIG_ENIC is not set 661# CONFIG_ENIC is not set
639# CONFIG_IXGBE is not set 662# CONFIG_IXGBE is not set
@@ -656,6 +679,10 @@ CONFIG_NETDEV_10000=y
656# CONFIG_WLAN_PRE80211 is not set 679# CONFIG_WLAN_PRE80211 is not set
657# CONFIG_WLAN_80211 is not set 680# CONFIG_WLAN_80211 is not set
658# CONFIG_IWLWIFI_LEDS is not set 681# CONFIG_IWLWIFI_LEDS is not set
682
683#
684# Enable WiMAX (Networking options) to see the WiMAX drivers
685#
659# CONFIG_WAN is not set 686# CONFIG_WAN is not set
660# CONFIG_FDDI is not set 687# CONFIG_FDDI is not set
661# CONFIG_HIPPI is not set 688# CONFIG_HIPPI is not set
@@ -728,8 +755,10 @@ CONFIG_SERIAL_CPM_CONSOLE=y
728# CONFIG_SERIAL_JSM is not set 755# CONFIG_SERIAL_JSM is not set
729# CONFIG_SERIAL_OF_PLATFORM is not set 756# CONFIG_SERIAL_OF_PLATFORM is not set
730CONFIG_UNIX98_PTYS=y 757CONFIG_UNIX98_PTYS=y
758# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
731CONFIG_LEGACY_PTYS=y 759CONFIG_LEGACY_PTYS=y
732CONFIG_LEGACY_PTY_COUNT=256 760CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set
733# CONFIG_IPMI_HANDLER is not set 762# CONFIG_IPMI_HANDLER is not set
734CONFIG_HW_RANDOM=y 763CONFIG_HW_RANDOM=y
735# CONFIG_NVRAM is not set 764# CONFIG_NVRAM is not set
@@ -796,13 +825,12 @@ CONFIG_I2C_MPC=y
796# Miscellaneous I2C Chip support 825# Miscellaneous I2C Chip support
797# 826#
798# CONFIG_DS1682 is not set 827# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 828# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_EEPROM is not set 829# CONFIG_EEPROM_LEGACY is not set
801# CONFIG_SENSORS_PCF8574 is not set 830# CONFIG_SENSORS_PCF8574 is not set
802# CONFIG_PCF8575 is not set 831# CONFIG_PCF8575 is not set
803# CONFIG_SENSORS_PCA9539 is not set 832# CONFIG_SENSORS_PCA9539 is not set
804# CONFIG_SENSORS_PCF8591 is not set 833# CONFIG_SENSORS_PCF8591 is not set
805# CONFIG_TPS65010 is not set
806# CONFIG_SENSORS_MAX6875 is not set 834# CONFIG_SENSORS_MAX6875 is not set
807# CONFIG_SENSORS_TSL2550 is not set 835# CONFIG_SENSORS_TSL2550 is not set
808# CONFIG_I2C_DEBUG_CORE is not set 836# CONFIG_I2C_DEBUG_CORE is not set
@@ -816,6 +844,11 @@ CONFIG_GPIOLIB=y
816# CONFIG_GPIO_SYSFS is not set 844# CONFIG_GPIO_SYSFS is not set
817 845
818# 846#
847# Memory mapped GPIO expanders:
848#
849# CONFIG_GPIO_XILINX is not set
850
851#
819# I2C GPIO expanders: 852# I2C GPIO expanders:
820# 853#
821# CONFIG_GPIO_MAX732X is not set 854# CONFIG_GPIO_MAX732X is not set
@@ -842,8 +875,10 @@ CONFIG_HWMON=y
842# CONFIG_SENSORS_ADM1029 is not set 875# CONFIG_SENSORS_ADM1029 is not set
843# CONFIG_SENSORS_ADM1031 is not set 876# CONFIG_SENSORS_ADM1031 is not set
844# CONFIG_SENSORS_ADM9240 is not set 877# CONFIG_SENSORS_ADM9240 is not set
878# CONFIG_SENSORS_ADT7462 is not set
845# CONFIG_SENSORS_ADT7470 is not set 879# CONFIG_SENSORS_ADT7470 is not set
846# CONFIG_SENSORS_ADT7473 is not set 880# CONFIG_SENSORS_ADT7473 is not set
881# CONFIG_SENSORS_ADT7475 is not set
847# CONFIG_SENSORS_ATXP1 is not set 882# CONFIG_SENSORS_ATXP1 is not set
848# CONFIG_SENSORS_DS1621 is not set 883# CONFIG_SENSORS_DS1621 is not set
849# CONFIG_SENSORS_I5K_AMB is not set 884# CONFIG_SENSORS_I5K_AMB is not set
@@ -864,6 +899,7 @@ CONFIG_SENSORS_LM75=y
864# CONFIG_SENSORS_LM90 is not set 899# CONFIG_SENSORS_LM90 is not set
865# CONFIG_SENSORS_LM92 is not set 900# CONFIG_SENSORS_LM92 is not set
866# CONFIG_SENSORS_LM93 is not set 901# CONFIG_SENSORS_LM93 is not set
902# CONFIG_SENSORS_LTC4245 is not set
867# CONFIG_SENSORS_MAX1619 is not set 903# CONFIG_SENSORS_MAX1619 is not set
868# CONFIG_SENSORS_MAX6650 is not set 904# CONFIG_SENSORS_MAX6650 is not set
869# CONFIG_SENSORS_PC87360 is not set 905# CONFIG_SENSORS_PC87360 is not set
@@ -890,11 +926,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
890# CONFIG_THERMAL is not set 926# CONFIG_THERMAL is not set
891# CONFIG_THERMAL_HWMON is not set 927# CONFIG_THERMAL_HWMON is not set
892# CONFIG_WATCHDOG is not set 928# CONFIG_WATCHDOG is not set
929CONFIG_SSB_POSSIBLE=y
893 930
894# 931#
895# Sonics Silicon Backplane 932# Sonics Silicon Backplane
896# 933#
897CONFIG_SSB_POSSIBLE=y
898# CONFIG_SSB is not set 934# CONFIG_SSB is not set
899 935
900# 936#
@@ -903,18 +939,14 @@ CONFIG_SSB_POSSIBLE=y
903# CONFIG_MFD_CORE is not set 939# CONFIG_MFD_CORE is not set
904# CONFIG_MFD_SM501 is not set 940# CONFIG_MFD_SM501 is not set
905# CONFIG_HTC_PASIC3 is not set 941# CONFIG_HTC_PASIC3 is not set
942# CONFIG_TPS65010 is not set
943# CONFIG_TWL4030_CORE is not set
906# CONFIG_MFD_TMIO is not set 944# CONFIG_MFD_TMIO is not set
907# CONFIG_PMIC_DA903X is not set 945# CONFIG_PMIC_DA903X is not set
908# CONFIG_MFD_WM8400 is not set 946# CONFIG_MFD_WM8400 is not set
909# CONFIG_MFD_WM8350_I2C is not set 947# CONFIG_MFD_WM8350_I2C is not set
910 948# CONFIG_MFD_PCF50633 is not set
911#
912# Voltage and Current regulators
913#
914# CONFIG_REGULATOR is not set 949# CONFIG_REGULATOR is not set
915# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
916# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
917# CONFIG_REGULATOR_BQ24022 is not set
918 950
919# 951#
920# Multimedia devices 952# Multimedia devices
@@ -970,9 +1002,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
970# 1002#
971 1003
972# 1004#
973# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
974# 1006#
975# CONFIG_USB_GADGET is not set 1007# CONFIG_USB_GADGET is not set
1008
1009#
1010# OTG and related infrastructure
1011#
976# CONFIG_UWB is not set 1012# CONFIG_UWB is not set
977# CONFIG_MMC is not set 1013# CONFIG_MMC is not set
978# CONFIG_MEMSTICK is not set 1014# CONFIG_MEMSTICK is not set
@@ -1004,6 +1040,7 @@ CONFIG_FS_MBCACHE=y
1004CONFIG_FILE_LOCKING=y 1040CONFIG_FILE_LOCKING=y
1005# CONFIG_XFS_FS is not set 1041# CONFIG_XFS_FS is not set
1006# CONFIG_OCFS2_FS is not set 1042# CONFIG_OCFS2_FS is not set
1043# CONFIG_BTRFS_FS is not set
1007CONFIG_DNOTIFY=y 1044CONFIG_DNOTIFY=y
1008CONFIG_INOTIFY=y 1045CONFIG_INOTIFY=y
1009CONFIG_INOTIFY_USER=y 1046CONFIG_INOTIFY_USER=y
@@ -1037,10 +1074,7 @@ CONFIG_TMPFS=y
1037# CONFIG_TMPFS_POSIX_ACL is not set 1074# CONFIG_TMPFS_POSIX_ACL is not set
1038# CONFIG_HUGETLB_PAGE is not set 1075# CONFIG_HUGETLB_PAGE is not set
1039# CONFIG_CONFIGFS_FS is not set 1076# CONFIG_CONFIGFS_FS is not set
1040 1077CONFIG_MISC_FILESYSTEMS=y
1041#
1042# Miscellaneous filesystems
1043#
1044# CONFIG_ADFS_FS is not set 1078# CONFIG_ADFS_FS is not set
1045# CONFIG_AFFS_FS is not set 1079# CONFIG_AFFS_FS is not set
1046# CONFIG_HFS_FS is not set 1080# CONFIG_HFS_FS is not set
@@ -1060,6 +1094,7 @@ CONFIG_JFFS2_ZLIB=y
1060CONFIG_JFFS2_RTIME=y 1094CONFIG_JFFS2_RTIME=y
1061# CONFIG_JFFS2_RUBIN is not set 1095# CONFIG_JFFS2_RUBIN is not set
1062CONFIG_CRAMFS=y 1096CONFIG_CRAMFS=y
1097# CONFIG_SQUASHFS is not set
1063# CONFIG_VXFS_FS is not set 1098# CONFIG_VXFS_FS is not set
1064# CONFIG_MINIX_FS is not set 1099# CONFIG_MINIX_FS is not set
1065# CONFIG_OMFS_FS is not set 1100# CONFIG_OMFS_FS is not set
@@ -1110,6 +1145,7 @@ CONFIG_PARTITION_ADVANCED=y
1110# Library routines 1145# Library routines
1111# 1146#
1112CONFIG_BITREVERSE=y 1147CONFIG_BITREVERSE=y
1148CONFIG_GENERIC_FIND_LAST_BIT=y
1113# CONFIG_CRC_CCITT is not set 1149# CONFIG_CRC_CCITT is not set
1114# CONFIG_CRC16 is not set 1150# CONFIG_CRC16 is not set
1115# CONFIG_CRC_T10DIF is not set 1151# CONFIG_CRC_T10DIF is not set
@@ -1145,6 +1181,8 @@ CONFIG_FRAME_WARN=1024
1145# CONFIG_LATENCYTOP is not set 1181# CONFIG_LATENCYTOP is not set
1146CONFIG_SYSCTL_SYSCALL_CHECK=y 1182CONFIG_SYSCTL_SYSCALL_CHECK=y
1147CONFIG_HAVE_FUNCTION_TRACER=y 1183CONFIG_HAVE_FUNCTION_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1148 1186
1149# 1187#
1150# Tracers 1188# Tracers
@@ -1152,6 +1190,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1152# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1153# CONFIG_SAMPLES is not set 1191# CONFIG_SAMPLES is not set
1154CONFIG_HAVE_ARCH_KGDB=y 1192CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64
1155# CONFIG_IRQSTACKS is not set 1194# CONFIG_IRQSTACKS is not set
1156# CONFIG_PPC_EARLY_DEBUG is not set 1195# CONFIG_PPC_EARLY_DEBUG is not set
1157 1196
@@ -1169,6 +1208,7 @@ CONFIG_CRYPTO=y
1169# 1208#
1170# CONFIG_CRYPTO_FIPS is not set 1209# CONFIG_CRYPTO_FIPS is not set
1171# CONFIG_CRYPTO_MANAGER is not set 1210# CONFIG_CRYPTO_MANAGER is not set
1211# CONFIG_CRYPTO_MANAGER2 is not set
1172# CONFIG_CRYPTO_GF128MUL is not set 1212# CONFIG_CRYPTO_GF128MUL is not set
1173# CONFIG_CRYPTO_NULL is not set 1213# CONFIG_CRYPTO_NULL is not set
1174# CONFIG_CRYPTO_CRYPTD is not set 1214# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index eef45b97dc3e..0bc45975911a 100644
--- a/arch/powerpc/configs/85xx/tqm8548_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8548_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:22 2008 4# Mon Jan 26 15:36:20 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 81# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -115,7 +117,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 117CONFIG_SLUB=y
116# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 119# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +127,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 130CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 131CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 132# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +134,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 134# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 135# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 136# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 137CONFIG_BLOCK=y
139# CONFIG_LBD is not set 138# CONFIG_LBD is not set
140# CONFIG_BLK_DEV_IO_TRACE is not set 139# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 141# CONFIG_BLK_DEV_INTEGRITY is not set
144 142
@@ -155,6 +153,10 @@ CONFIG_DEFAULT_AS=y
155# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="anticipatory" 154CONFIG_DEFAULT_IOSCHED="anticipatory"
157CONFIG_CLASSIC_RCU=y 155CONFIG_CLASSIC_RCU=y
156# CONFIG_TREE_RCU is not set
157# CONFIG_PREEMPT_RCU is not set
158# CONFIG_TREE_RCU_TRACE is not set
159# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 160# CONFIG_FREEZER is not set
159 161
160# 162#
@@ -195,6 +197,7 @@ CONFIG_MPIC=y
195# CONFIG_CPM2 is not set 197# CONFIG_CPM2 is not set
196# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
197# CONFIG_MPC8xxx_GPIO is not set 199# CONFIG_MPC8xxx_GPIO is not set
200# CONFIG_SIMPLE_GPIO is not set
198 201
199# 202#
200# Kernel options 203# Kernel options
@@ -233,12 +236,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
233CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
234CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
235CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
236# CONFIG_RESOURCES_64BIT is not set
237# CONFIG_PHYS_ADDR_T_64BIT is not set 239# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
241CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set
242CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
243CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
244# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
@@ -265,6 +270,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
265# CONFIG_PCI_MSI is not set 270# CONFIG_PCI_MSI is not set
266# CONFIG_PCI_LEGACY is not set 271# CONFIG_PCI_LEGACY is not set
267# CONFIG_PCI_DEBUG is not set 272# CONFIG_PCI_DEBUG is not set
273# CONFIG_PCI_STUB is not set
268# CONFIG_PCCARD is not set 274# CONFIG_PCCARD is not set
269# CONFIG_HOTPLUG_PCI is not set 275# CONFIG_HOTPLUG_PCI is not set
270# CONFIG_HAS_RAPIDIO is not set 276# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -344,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
346# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
347 355
348# 356#
349# Network testing 357# Network testing
@@ -359,8 +367,9 @@ CONFIG_WIRELESS=y
359# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y 368CONFIG_WIRELESS_OLD_REGULATORY=y
361# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
362# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
363# CONFIG_IEEE80211 is not set 372# CONFIG_WIMAX is not set
364# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
365# CONFIG_NET_9P is not set 374# CONFIG_NET_9P is not set
366 375
@@ -383,6 +392,7 @@ CONFIG_MTD=y
383# CONFIG_MTD_DEBUG is not set 392# CONFIG_MTD_DEBUG is not set
384# CONFIG_MTD_CONCAT is not set 393# CONFIG_MTD_CONCAT is not set
385CONFIG_MTD_PARTITIONS=y 394CONFIG_MTD_PARTITIONS=y
395# CONFIG_MTD_TESTS is not set
386# CONFIG_MTD_REDBOOT_PARTS is not set 396# CONFIG_MTD_REDBOOT_PARTS is not set
387# CONFIG_MTD_CMDLINE_PARTS is not set 397# CONFIG_MTD_CMDLINE_PARTS is not set
388CONFIG_MTD_OF_PARTS=y 398CONFIG_MTD_OF_PARTS=y
@@ -465,6 +475,12 @@ CONFIG_MTD_NAND_IDS=y
465# CONFIG_MTD_ONENAND is not set 475# CONFIG_MTD_ONENAND is not set
466 476
467# 477#
478# LPDDR flash memory drivers
479#
480# CONFIG_MTD_LPDDR is not set
481# CONFIG_MTD_QINFO_PROBE is not set
482
483#
468# UBI - Unsorted block images 484# UBI - Unsorted block images
469# 485#
470CONFIG_MTD_UBI=m 486CONFIG_MTD_UBI=m
@@ -502,8 +518,10 @@ CONFIG_MISC_DEVICES=y
502# CONFIG_EEPROM_93CX6 is not set 518# CONFIG_EEPROM_93CX6 is not set
503# CONFIG_SGI_IOC4 is not set 519# CONFIG_SGI_IOC4 is not set
504# CONFIG_TIFM_CORE is not set 520# CONFIG_TIFM_CORE is not set
521# CONFIG_ICS932S401 is not set
505# CONFIG_ENCLOSURE_SERVICES is not set 522# CONFIG_ENCLOSURE_SERVICES is not set
506# CONFIG_HP_ILO is not set 523# CONFIG_HP_ILO is not set
524# CONFIG_C2PORT is not set
507CONFIG_HAVE_IDE=y 525CONFIG_HAVE_IDE=y
508CONFIG_IDE=y 526CONFIG_IDE=y
509 527
@@ -546,6 +564,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
546# CONFIG_BLK_DEV_JMICRON is not set 564# CONFIG_BLK_DEV_JMICRON is not set
547# CONFIG_BLK_DEV_SC1200 is not set 565# CONFIG_BLK_DEV_SC1200 is not set
548# CONFIG_BLK_DEV_PIIX is not set 566# CONFIG_BLK_DEV_PIIX is not set
567# CONFIG_BLK_DEV_IT8172 is not set
549# CONFIG_BLK_DEV_IT8213 is not set 568# CONFIG_BLK_DEV_IT8213 is not set
550# CONFIG_BLK_DEV_IT821X is not set 569# CONFIG_BLK_DEV_IT821X is not set
551# CONFIG_BLK_DEV_NS87415 is not set 570# CONFIG_BLK_DEV_NS87415 is not set
@@ -605,6 +624,9 @@ CONFIG_PHYLIB=y
605# CONFIG_BROADCOM_PHY is not set 624# CONFIG_BROADCOM_PHY is not set
606# CONFIG_ICPLUS_PHY is not set 625# CONFIG_ICPLUS_PHY is not set
607# CONFIG_REALTEK_PHY is not set 626# CONFIG_REALTEK_PHY is not set
627# CONFIG_NATIONAL_PHY is not set
628# CONFIG_STE10XP is not set
629# CONFIG_LSI_ET1011C_PHY is not set
608# CONFIG_FIXED_PHY is not set 630# CONFIG_FIXED_PHY is not set
609# CONFIG_MDIO_BITBANG is not set 631# CONFIG_MDIO_BITBANG is not set
610CONFIG_NET_ETHERNET=y 632CONFIG_NET_ETHERNET=y
@@ -649,6 +671,7 @@ CONFIG_GIANFAR=y
649# CONFIG_JME is not set 671# CONFIG_JME is not set
650CONFIG_NETDEV_10000=y 672CONFIG_NETDEV_10000=y
651# CONFIG_CHELSIO_T1 is not set 673# CONFIG_CHELSIO_T1 is not set
674CONFIG_CHELSIO_T3_DEPENDS=y
652# CONFIG_CHELSIO_T3 is not set 675# CONFIG_CHELSIO_T3 is not set
653# CONFIG_ENIC is not set 676# CONFIG_ENIC is not set
654# CONFIG_IXGBE is not set 677# CONFIG_IXGBE is not set
@@ -671,6 +694,10 @@ CONFIG_NETDEV_10000=y
671# CONFIG_WLAN_PRE80211 is not set 694# CONFIG_WLAN_PRE80211 is not set
672# CONFIG_WLAN_80211 is not set 695# CONFIG_WLAN_80211 is not set
673# CONFIG_IWLWIFI_LEDS is not set 696# CONFIG_IWLWIFI_LEDS is not set
697
698#
699# Enable WiMAX (Networking options) to see the WiMAX drivers
700#
674# CONFIG_WAN is not set 701# CONFIG_WAN is not set
675# CONFIG_FDDI is not set 702# CONFIG_FDDI is not set
676# CONFIG_HIPPI is not set 703# CONFIG_HIPPI is not set
@@ -741,8 +768,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
741# CONFIG_SERIAL_JSM is not set 768# CONFIG_SERIAL_JSM is not set
742# CONFIG_SERIAL_OF_PLATFORM is not set 769# CONFIG_SERIAL_OF_PLATFORM is not set
743CONFIG_UNIX98_PTYS=y 770CONFIG_UNIX98_PTYS=y
771# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
744CONFIG_LEGACY_PTYS=y 772CONFIG_LEGACY_PTYS=y
745CONFIG_LEGACY_PTY_COUNT=256 773CONFIG_LEGACY_PTY_COUNT=256
774# CONFIG_HVC_UDBG is not set
746# CONFIG_IPMI_HANDLER is not set 775# CONFIG_IPMI_HANDLER is not set
747# CONFIG_HW_RANDOM is not set 776# CONFIG_HW_RANDOM is not set
748# CONFIG_NVRAM is not set 777# CONFIG_NVRAM is not set
@@ -806,8 +835,8 @@ CONFIG_I2C_MPC=y
806# Miscellaneous I2C Chip support 835# Miscellaneous I2C Chip support
807# 836#
808# CONFIG_DS1682 is not set 837# CONFIG_DS1682 is not set
809# CONFIG_AT24 is not set 838# CONFIG_EEPROM_AT24 is not set
810# CONFIG_SENSORS_EEPROM is not set 839# CONFIG_EEPROM_LEGACY is not set
811# CONFIG_SENSORS_PCF8574 is not set 840# CONFIG_SENSORS_PCF8574 is not set
812# CONFIG_PCF8575 is not set 841# CONFIG_PCF8575 is not set
813# CONFIG_SENSORS_PCA9539 is not set 842# CONFIG_SENSORS_PCA9539 is not set
@@ -833,8 +862,10 @@ CONFIG_HWMON=y
833# CONFIG_SENSORS_ADM1029 is not set 862# CONFIG_SENSORS_ADM1029 is not set
834# CONFIG_SENSORS_ADM1031 is not set 863# CONFIG_SENSORS_ADM1031 is not set
835# CONFIG_SENSORS_ADM9240 is not set 864# CONFIG_SENSORS_ADM9240 is not set
865# CONFIG_SENSORS_ADT7462 is not set
836# CONFIG_SENSORS_ADT7470 is not set 866# CONFIG_SENSORS_ADT7470 is not set
837# CONFIG_SENSORS_ADT7473 is not set 867# CONFIG_SENSORS_ADT7473 is not set
868# CONFIG_SENSORS_ADT7475 is not set
838# CONFIG_SENSORS_ATXP1 is not set 869# CONFIG_SENSORS_ATXP1 is not set
839# CONFIG_SENSORS_DS1621 is not set 870# CONFIG_SENSORS_DS1621 is not set
840# CONFIG_SENSORS_I5K_AMB is not set 871# CONFIG_SENSORS_I5K_AMB is not set
@@ -855,6 +886,7 @@ CONFIG_SENSORS_LM75=y
855# CONFIG_SENSORS_LM90 is not set 886# CONFIG_SENSORS_LM90 is not set
856# CONFIG_SENSORS_LM92 is not set 887# CONFIG_SENSORS_LM92 is not set
857# CONFIG_SENSORS_LM93 is not set 888# CONFIG_SENSORS_LM93 is not set
889# CONFIG_SENSORS_LTC4245 is not set
858# CONFIG_SENSORS_MAX1619 is not set 890# CONFIG_SENSORS_MAX1619 is not set
859# CONFIG_SENSORS_MAX6650 is not set 891# CONFIG_SENSORS_MAX6650 is not set
860# CONFIG_SENSORS_PC87360 is not set 892# CONFIG_SENSORS_PC87360 is not set
@@ -881,11 +913,11 @@ CONFIG_SENSORS_LM75=y
881# CONFIG_THERMAL is not set 913# CONFIG_THERMAL is not set
882# CONFIG_THERMAL_HWMON is not set 914# CONFIG_THERMAL_HWMON is not set
883# CONFIG_WATCHDOG is not set 915# CONFIG_WATCHDOG is not set
916CONFIG_SSB_POSSIBLE=y
884 917
885# 918#
886# Sonics Silicon Backplane 919# Sonics Silicon Backplane
887# 920#
888CONFIG_SSB_POSSIBLE=y
889# CONFIG_SSB is not set 921# CONFIG_SSB is not set
890 922
891# 923#
@@ -894,18 +926,13 @@ CONFIG_SSB_POSSIBLE=y
894# CONFIG_MFD_CORE is not set 926# CONFIG_MFD_CORE is not set
895# CONFIG_MFD_SM501 is not set 927# CONFIG_MFD_SM501 is not set
896# CONFIG_HTC_PASIC3 is not set 928# CONFIG_HTC_PASIC3 is not set
929# CONFIG_TWL4030_CORE is not set
897# CONFIG_MFD_TMIO is not set 930# CONFIG_MFD_TMIO is not set
898# CONFIG_PMIC_DA903X is not set 931# CONFIG_PMIC_DA903X is not set
899# CONFIG_MFD_WM8400 is not set 932# CONFIG_MFD_WM8400 is not set
900# CONFIG_MFD_WM8350_I2C is not set 933# CONFIG_MFD_WM8350_I2C is not set
901 934# CONFIG_MFD_PCF50633 is not set
902#
903# Voltage and Current regulators
904#
905# CONFIG_REGULATOR is not set 935# CONFIG_REGULATOR is not set
906# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
907# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
908# CONFIG_REGULATOR_BQ24022 is not set
909 936
910# 937#
911# Multimedia devices 938# Multimedia devices
@@ -961,9 +988,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
961# 988#
962 989
963# 990#
964# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 991# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
965# 992#
966# CONFIG_USB_GADGET is not set 993# CONFIG_USB_GADGET is not set
994
995#
996# OTG and related infrastructure
997#
967# CONFIG_UWB is not set 998# CONFIG_UWB is not set
968# CONFIG_MMC is not set 999# CONFIG_MMC is not set
969# CONFIG_MEMSTICK is not set 1000# CONFIG_MEMSTICK is not set
@@ -1001,6 +1032,7 @@ CONFIG_RTC_DRV_DS1307=y
1001# CONFIG_RTC_DRV_M41T80 is not set 1032# CONFIG_RTC_DRV_M41T80 is not set
1002# CONFIG_RTC_DRV_S35390A is not set 1033# CONFIG_RTC_DRV_S35390A is not set
1003# CONFIG_RTC_DRV_FM3130 is not set 1034# CONFIG_RTC_DRV_FM3130 is not set
1035# CONFIG_RTC_DRV_RX8581 is not set
1004 1036
1005# 1037#
1006# SPI RTC drivers 1038# SPI RTC drivers
@@ -1048,6 +1080,7 @@ CONFIG_FS_MBCACHE=y
1048CONFIG_FILE_LOCKING=y 1080CONFIG_FILE_LOCKING=y
1049# CONFIG_XFS_FS is not set 1081# CONFIG_XFS_FS is not set
1050# CONFIG_OCFS2_FS is not set 1082# CONFIG_OCFS2_FS is not set
1083# CONFIG_BTRFS_FS is not set
1051CONFIG_DNOTIFY=y 1084CONFIG_DNOTIFY=y
1052CONFIG_INOTIFY=y 1085CONFIG_INOTIFY=y
1053CONFIG_INOTIFY_USER=y 1086CONFIG_INOTIFY_USER=y
@@ -1081,10 +1114,7 @@ CONFIG_TMPFS=y
1081# CONFIG_TMPFS_POSIX_ACL is not set 1114# CONFIG_TMPFS_POSIX_ACL is not set
1082# CONFIG_HUGETLB_PAGE is not set 1115# CONFIG_HUGETLB_PAGE is not set
1083# CONFIG_CONFIGFS_FS is not set 1116# CONFIG_CONFIGFS_FS is not set
1084 1117CONFIG_MISC_FILESYSTEMS=y
1085#
1086# Miscellaneous filesystems
1087#
1088# CONFIG_ADFS_FS is not set 1118# CONFIG_ADFS_FS is not set
1089# CONFIG_AFFS_FS is not set 1119# CONFIG_AFFS_FS is not set
1090# CONFIG_HFS_FS is not set 1120# CONFIG_HFS_FS is not set
@@ -1095,6 +1125,7 @@ CONFIG_TMPFS=y
1095# CONFIG_JFFS2_FS is not set 1125# CONFIG_JFFS2_FS is not set
1096# CONFIG_UBIFS_FS is not set 1126# CONFIG_UBIFS_FS is not set
1097# CONFIG_CRAMFS is not set 1127# CONFIG_CRAMFS is not set
1128# CONFIG_SQUASHFS is not set
1098# CONFIG_VXFS_FS is not set 1129# CONFIG_VXFS_FS is not set
1099# CONFIG_MINIX_FS is not set 1130# CONFIG_MINIX_FS is not set
1100# CONFIG_OMFS_FS is not set 1131# CONFIG_OMFS_FS is not set
@@ -1145,6 +1176,7 @@ CONFIG_PARTITION_ADVANCED=y
1145# Library routines 1176# Library routines
1146# 1177#
1147CONFIG_BITREVERSE=y 1178CONFIG_BITREVERSE=y
1179CONFIG_GENERIC_FIND_LAST_BIT=y
1148# CONFIG_CRC_CCITT is not set 1180# CONFIG_CRC_CCITT is not set
1149# CONFIG_CRC16 is not set 1181# CONFIG_CRC16 is not set
1150# CONFIG_CRC_T10DIF is not set 1182# CONFIG_CRC_T10DIF is not set
@@ -1194,6 +1226,7 @@ CONFIG_DEBUG_MUTEXES=y
1194# CONFIG_DEBUG_MEMORY_INIT is not set 1226# CONFIG_DEBUG_MEMORY_INIT is not set
1195# CONFIG_DEBUG_LIST is not set 1227# CONFIG_DEBUG_LIST is not set
1196# CONFIG_DEBUG_SG is not set 1228# CONFIG_DEBUG_SG is not set
1229# CONFIG_DEBUG_NOTIFIERS is not set
1197# CONFIG_BOOT_PRINTK_DELAY is not set 1230# CONFIG_BOOT_PRINTK_DELAY is not set
1198# CONFIG_RCU_TORTURE_TEST is not set 1231# CONFIG_RCU_TORTURE_TEST is not set
1199# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1232# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1203,6 +1236,8 @@ CONFIG_DEBUG_MUTEXES=y
1203# CONFIG_LATENCYTOP is not set 1236# CONFIG_LATENCYTOP is not set
1204CONFIG_SYSCTL_SYSCALL_CHECK=y 1237CONFIG_SYSCTL_SYSCALL_CHECK=y
1205CONFIG_HAVE_FUNCTION_TRACER=y 1238CONFIG_HAVE_FUNCTION_TRACER=y
1239CONFIG_HAVE_DYNAMIC_FTRACE=y
1240CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1206 1241
1207# 1242#
1208# Tracers 1243# Tracers
@@ -1211,11 +1246,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1211# CONFIG_SCHED_TRACER is not set 1246# CONFIG_SCHED_TRACER is not set
1212# CONFIG_CONTEXT_SWITCH_TRACER is not set 1247# CONFIG_CONTEXT_SWITCH_TRACER is not set
1213# CONFIG_BOOT_TRACER is not set 1248# CONFIG_BOOT_TRACER is not set
1249# CONFIG_TRACE_BRANCH_PROFILING is not set
1214# CONFIG_STACK_TRACER is not set 1250# CONFIG_STACK_TRACER is not set
1215# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1251# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1216# CONFIG_SAMPLES is not set 1252# CONFIG_SAMPLES is not set
1217CONFIG_HAVE_ARCH_KGDB=y 1253CONFIG_HAVE_ARCH_KGDB=y
1218# CONFIG_KGDB is not set 1254# CONFIG_KGDB is not set
1255CONFIG_PRINT_STACK_DEPTH=64
1219# CONFIG_DEBUG_STACKOVERFLOW is not set 1256# CONFIG_DEBUG_STACKOVERFLOW is not set
1220# CONFIG_DEBUG_STACK_USAGE is not set 1257# CONFIG_DEBUG_STACK_USAGE is not set
1221# CONFIG_DEBUG_PAGEALLOC is not set 1258# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1241,6 +1278,7 @@ CONFIG_CRYPTO=y
1241# 1278#
1242# CONFIG_CRYPTO_FIPS is not set 1279# CONFIG_CRYPTO_FIPS is not set
1243# CONFIG_CRYPTO_MANAGER is not set 1280# CONFIG_CRYPTO_MANAGER is not set
1281# CONFIG_CRYPTO_MANAGER2 is not set
1244# CONFIG_CRYPTO_GF128MUL is not set 1282# CONFIG_CRYPTO_GF128MUL is not set
1245# CONFIG_CRYPTO_NULL is not set 1283# CONFIG_CRYPTO_NULL is not set
1246# CONFIG_CRYPTO_CRYPTD is not set 1284# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index 11b637e99a54..d5a864d74461 100644
--- a/arch/powerpc/configs/85xx/tqm8555_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8555_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:23 2008 4# Mon Jan 26 15:36:21 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,12 +78,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -114,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 116CONFIG_SLUB=y
115# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 121CONFIG_HAVE_IOREMAP_PROT=y
@@ -125,13 +126,11 @@ CONFIG_HAVE_CLK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 130# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 131CONFIG_BLOCK=y
132# CONFIG_LBD is not set 132# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_LSF is not set
135# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
137 136
@@ -148,6 +147,10 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
151# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
152 155
153# 156#
@@ -189,6 +192,7 @@ CONFIG_CPM2=y
189# CONFIG_FSL_ULI1575 is not set 192# CONFIG_FSL_ULI1575 is not set
190CONFIG_CPM=y 193CONFIG_CPM=y
191# CONFIG_MPC8xxx_GPIO is not set 194# CONFIG_MPC8xxx_GPIO is not set
195# CONFIG_SIMPLE_GPIO is not set
192 196
193# 197#
194# Kernel options 198# Kernel options
@@ -226,12 +230,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 230CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 232CONFIG_MIGRATION=y
229# CONFIG_RESOURCES_64BIT is not set
230# CONFIG_PHYS_ADDR_T_64BIT is not set 233# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
236# CONFIG_PROC_DEVICETREE is not set 242# CONFIG_PROC_DEVICETREE is not set
237# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +261,7 @@ CONFIG_PCI_SYSCALL=y
255CONFIG_ARCH_SUPPORTS_MSI=y 261CONFIG_ARCH_SUPPORTS_MSI=y
256# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
257# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set
258# CONFIG_HAS_RAPIDIO is not set 265# CONFIG_HAS_RAPIDIO is not set
259 266
260# 267#
@@ -276,6 +283,7 @@ CONFIG_NET=y
276# 283#
277# Networking options 284# Networking options
278# 285#
286CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 287CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 288# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 289CONFIG_UNIX=y
@@ -332,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_ECONET is not set 340# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 341# CONFIG_WAN_ROUTER is not set
334# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set
335 344
336# 345#
337# Network testing 346# Network testing
@@ -347,8 +356,9 @@ CONFIG_WIRELESS=y
347# CONFIG_CFG80211 is not set 356# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y 357CONFIG_WIRELESS_OLD_REGULATORY=y
349# CONFIG_WIRELESS_EXT is not set 358# CONFIG_WIRELESS_EXT is not set
359# CONFIG_LIB80211 is not set
350# CONFIG_MAC80211 is not set 360# CONFIG_MAC80211 is not set
351# CONFIG_IEEE80211 is not set 361# CONFIG_WIMAX is not set
352# CONFIG_RFKILL is not set 362# CONFIG_RFKILL is not set
353# CONFIG_NET_9P is not set 363# CONFIG_NET_9P is not set
354 364
@@ -438,6 +448,12 @@ CONFIG_MTD_CFI_UTIL=y
438# CONFIG_MTD_ONENAND is not set 448# CONFIG_MTD_ONENAND is not set
439 449
440# 450#
451# LPDDR flash memory drivers
452#
453# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455
456#
441# UBI - Unsorted block images 457# UBI - Unsorted block images
442# 458#
443# CONFIG_MTD_UBI is not set 459# CONFIG_MTD_UBI is not set
@@ -468,8 +484,10 @@ CONFIG_MISC_DEVICES=y
468# CONFIG_EEPROM_93CX6 is not set 484# CONFIG_EEPROM_93CX6 is not set
469# CONFIG_SGI_IOC4 is not set 485# CONFIG_SGI_IOC4 is not set
470# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 488# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 489# CONFIG_HP_ILO is not set
490# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 491CONFIG_HAVE_IDE=y
474CONFIG_IDE=y 492CONFIG_IDE=y
475 493
@@ -512,6 +530,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
512# CONFIG_BLK_DEV_JMICRON is not set 530# CONFIG_BLK_DEV_JMICRON is not set
513# CONFIG_BLK_DEV_SC1200 is not set 531# CONFIG_BLK_DEV_SC1200 is not set
514# CONFIG_BLK_DEV_PIIX is not set 532# CONFIG_BLK_DEV_PIIX is not set
533# CONFIG_BLK_DEV_IT8172 is not set
515# CONFIG_BLK_DEV_IT8213 is not set 534# CONFIG_BLK_DEV_IT8213 is not set
516# CONFIG_BLK_DEV_IT821X is not set 535# CONFIG_BLK_DEV_IT821X is not set
517# CONFIG_BLK_DEV_NS87415 is not set 536# CONFIG_BLK_DEV_NS87415 is not set
@@ -571,6 +590,9 @@ CONFIG_PHYLIB=y
571# CONFIG_BROADCOM_PHY is not set 590# CONFIG_BROADCOM_PHY is not set
572# CONFIG_ICPLUS_PHY is not set 591# CONFIG_ICPLUS_PHY is not set
573# CONFIG_REALTEK_PHY is not set 592# CONFIG_REALTEK_PHY is not set
593# CONFIG_NATIONAL_PHY is not set
594# CONFIG_STE10XP is not set
595# CONFIG_LSI_ET1011C_PHY is not set
574# CONFIG_FIXED_PHY is not set 596# CONFIG_FIXED_PHY is not set
575# CONFIG_MDIO_BITBANG is not set 597# CONFIG_MDIO_BITBANG is not set
576CONFIG_NET_ETHERNET=y 598CONFIG_NET_ETHERNET=y
@@ -594,7 +616,6 @@ CONFIG_NET_PCI=y
594# CONFIG_ADAPTEC_STARFIRE is not set 616# CONFIG_ADAPTEC_STARFIRE is not set
595# CONFIG_B44 is not set 617# CONFIG_B44 is not set
596# CONFIG_FORCEDETH is not set 618# CONFIG_FORCEDETH is not set
597# CONFIG_EEPRO100 is not set
598CONFIG_E100=y 619CONFIG_E100=y
599# CONFIG_FEALNX is not set 620# CONFIG_FEALNX is not set
600# CONFIG_NATSEMI is not set 621# CONFIG_NATSEMI is not set
@@ -604,6 +625,7 @@ CONFIG_E100=y
604# CONFIG_R6040 is not set 625# CONFIG_R6040 is not set
605# CONFIG_SIS900 is not set 626# CONFIG_SIS900 is not set
606# CONFIG_EPIC100 is not set 627# CONFIG_EPIC100 is not set
628# CONFIG_SMSC9420 is not set
607# CONFIG_SUNDANCE is not set 629# CONFIG_SUNDANCE is not set
608# CONFIG_TLAN is not set 630# CONFIG_TLAN is not set
609# CONFIG_VIA_RHINE is not set 631# CONFIG_VIA_RHINE is not set
@@ -634,6 +656,7 @@ CONFIG_GIANFAR=y
634# CONFIG_JME is not set 656# CONFIG_JME is not set
635CONFIG_NETDEV_10000=y 657CONFIG_NETDEV_10000=y
636# CONFIG_CHELSIO_T1 is not set 658# CONFIG_CHELSIO_T1 is not set
659CONFIG_CHELSIO_T3_DEPENDS=y
637# CONFIG_CHELSIO_T3 is not set 660# CONFIG_CHELSIO_T3 is not set
638# CONFIG_ENIC is not set 661# CONFIG_ENIC is not set
639# CONFIG_IXGBE is not set 662# CONFIG_IXGBE is not set
@@ -656,6 +679,10 @@ CONFIG_NETDEV_10000=y
656# CONFIG_WLAN_PRE80211 is not set 679# CONFIG_WLAN_PRE80211 is not set
657# CONFIG_WLAN_80211 is not set 680# CONFIG_WLAN_80211 is not set
658# CONFIG_IWLWIFI_LEDS is not set 681# CONFIG_IWLWIFI_LEDS is not set
682
683#
684# Enable WiMAX (Networking options) to see the WiMAX drivers
685#
659# CONFIG_WAN is not set 686# CONFIG_WAN is not set
660# CONFIG_FDDI is not set 687# CONFIG_FDDI is not set
661# CONFIG_HIPPI is not set 688# CONFIG_HIPPI is not set
@@ -728,8 +755,10 @@ CONFIG_SERIAL_CPM_CONSOLE=y
728# CONFIG_SERIAL_JSM is not set 755# CONFIG_SERIAL_JSM is not set
729# CONFIG_SERIAL_OF_PLATFORM is not set 756# CONFIG_SERIAL_OF_PLATFORM is not set
730CONFIG_UNIX98_PTYS=y 757CONFIG_UNIX98_PTYS=y
758# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
731CONFIG_LEGACY_PTYS=y 759CONFIG_LEGACY_PTYS=y
732CONFIG_LEGACY_PTY_COUNT=256 760CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set
733# CONFIG_IPMI_HANDLER is not set 762# CONFIG_IPMI_HANDLER is not set
734CONFIG_HW_RANDOM=y 763CONFIG_HW_RANDOM=y
735# CONFIG_NVRAM is not set 764# CONFIG_NVRAM is not set
@@ -796,13 +825,12 @@ CONFIG_I2C_MPC=y
796# Miscellaneous I2C Chip support 825# Miscellaneous I2C Chip support
797# 826#
798# CONFIG_DS1682 is not set 827# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 828# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_EEPROM is not set 829# CONFIG_EEPROM_LEGACY is not set
801# CONFIG_SENSORS_PCF8574 is not set 830# CONFIG_SENSORS_PCF8574 is not set
802# CONFIG_PCF8575 is not set 831# CONFIG_PCF8575 is not set
803# CONFIG_SENSORS_PCA9539 is not set 832# CONFIG_SENSORS_PCA9539 is not set
804# CONFIG_SENSORS_PCF8591 is not set 833# CONFIG_SENSORS_PCF8591 is not set
805# CONFIG_TPS65010 is not set
806# CONFIG_SENSORS_MAX6875 is not set 834# CONFIG_SENSORS_MAX6875 is not set
807# CONFIG_SENSORS_TSL2550 is not set 835# CONFIG_SENSORS_TSL2550 is not set
808# CONFIG_I2C_DEBUG_CORE is not set 836# CONFIG_I2C_DEBUG_CORE is not set
@@ -816,6 +844,11 @@ CONFIG_GPIOLIB=y
816# CONFIG_GPIO_SYSFS is not set 844# CONFIG_GPIO_SYSFS is not set
817 845
818# 846#
847# Memory mapped GPIO expanders:
848#
849# CONFIG_GPIO_XILINX is not set
850
851#
819# I2C GPIO expanders: 852# I2C GPIO expanders:
820# 853#
821# CONFIG_GPIO_MAX732X is not set 854# CONFIG_GPIO_MAX732X is not set
@@ -842,8 +875,10 @@ CONFIG_HWMON=y
842# CONFIG_SENSORS_ADM1029 is not set 875# CONFIG_SENSORS_ADM1029 is not set
843# CONFIG_SENSORS_ADM1031 is not set 876# CONFIG_SENSORS_ADM1031 is not set
844# CONFIG_SENSORS_ADM9240 is not set 877# CONFIG_SENSORS_ADM9240 is not set
878# CONFIG_SENSORS_ADT7462 is not set
845# CONFIG_SENSORS_ADT7470 is not set 879# CONFIG_SENSORS_ADT7470 is not set
846# CONFIG_SENSORS_ADT7473 is not set 880# CONFIG_SENSORS_ADT7473 is not set
881# CONFIG_SENSORS_ADT7475 is not set
847# CONFIG_SENSORS_ATXP1 is not set 882# CONFIG_SENSORS_ATXP1 is not set
848# CONFIG_SENSORS_DS1621 is not set 883# CONFIG_SENSORS_DS1621 is not set
849# CONFIG_SENSORS_I5K_AMB is not set 884# CONFIG_SENSORS_I5K_AMB is not set
@@ -864,6 +899,7 @@ CONFIG_SENSORS_LM75=y
864# CONFIG_SENSORS_LM90 is not set 899# CONFIG_SENSORS_LM90 is not set
865# CONFIG_SENSORS_LM92 is not set 900# CONFIG_SENSORS_LM92 is not set
866# CONFIG_SENSORS_LM93 is not set 901# CONFIG_SENSORS_LM93 is not set
902# CONFIG_SENSORS_LTC4245 is not set
867# CONFIG_SENSORS_MAX1619 is not set 903# CONFIG_SENSORS_MAX1619 is not set
868# CONFIG_SENSORS_MAX6650 is not set 904# CONFIG_SENSORS_MAX6650 is not set
869# CONFIG_SENSORS_PC87360 is not set 905# CONFIG_SENSORS_PC87360 is not set
@@ -890,11 +926,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
890# CONFIG_THERMAL is not set 926# CONFIG_THERMAL is not set
891# CONFIG_THERMAL_HWMON is not set 927# CONFIG_THERMAL_HWMON is not set
892# CONFIG_WATCHDOG is not set 928# CONFIG_WATCHDOG is not set
929CONFIG_SSB_POSSIBLE=y
893 930
894# 931#
895# Sonics Silicon Backplane 932# Sonics Silicon Backplane
896# 933#
897CONFIG_SSB_POSSIBLE=y
898# CONFIG_SSB is not set 934# CONFIG_SSB is not set
899 935
900# 936#
@@ -903,18 +939,14 @@ CONFIG_SSB_POSSIBLE=y
903# CONFIG_MFD_CORE is not set 939# CONFIG_MFD_CORE is not set
904# CONFIG_MFD_SM501 is not set 940# CONFIG_MFD_SM501 is not set
905# CONFIG_HTC_PASIC3 is not set 941# CONFIG_HTC_PASIC3 is not set
942# CONFIG_TPS65010 is not set
943# CONFIG_TWL4030_CORE is not set
906# CONFIG_MFD_TMIO is not set 944# CONFIG_MFD_TMIO is not set
907# CONFIG_PMIC_DA903X is not set 945# CONFIG_PMIC_DA903X is not set
908# CONFIG_MFD_WM8400 is not set 946# CONFIG_MFD_WM8400 is not set
909# CONFIG_MFD_WM8350_I2C is not set 947# CONFIG_MFD_WM8350_I2C is not set
910 948# CONFIG_MFD_PCF50633 is not set
911#
912# Voltage and Current regulators
913#
914# CONFIG_REGULATOR is not set 949# CONFIG_REGULATOR is not set
915# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
916# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
917# CONFIG_REGULATOR_BQ24022 is not set
918 950
919# 951#
920# Multimedia devices 952# Multimedia devices
@@ -970,9 +1002,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
970# 1002#
971 1003
972# 1004#
973# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
974# 1006#
975# CONFIG_USB_GADGET is not set 1007# CONFIG_USB_GADGET is not set
1008
1009#
1010# OTG and related infrastructure
1011#
976# CONFIG_UWB is not set 1012# CONFIG_UWB is not set
977# CONFIG_MMC is not set 1013# CONFIG_MMC is not set
978# CONFIG_MEMSTICK is not set 1014# CONFIG_MEMSTICK is not set
@@ -1004,6 +1040,7 @@ CONFIG_FS_MBCACHE=y
1004CONFIG_FILE_LOCKING=y 1040CONFIG_FILE_LOCKING=y
1005# CONFIG_XFS_FS is not set 1041# CONFIG_XFS_FS is not set
1006# CONFIG_OCFS2_FS is not set 1042# CONFIG_OCFS2_FS is not set
1043# CONFIG_BTRFS_FS is not set
1007CONFIG_DNOTIFY=y 1044CONFIG_DNOTIFY=y
1008CONFIG_INOTIFY=y 1045CONFIG_INOTIFY=y
1009CONFIG_INOTIFY_USER=y 1046CONFIG_INOTIFY_USER=y
@@ -1037,10 +1074,7 @@ CONFIG_TMPFS=y
1037# CONFIG_TMPFS_POSIX_ACL is not set 1074# CONFIG_TMPFS_POSIX_ACL is not set
1038# CONFIG_HUGETLB_PAGE is not set 1075# CONFIG_HUGETLB_PAGE is not set
1039# CONFIG_CONFIGFS_FS is not set 1076# CONFIG_CONFIGFS_FS is not set
1040 1077CONFIG_MISC_FILESYSTEMS=y
1041#
1042# Miscellaneous filesystems
1043#
1044# CONFIG_ADFS_FS is not set 1078# CONFIG_ADFS_FS is not set
1045# CONFIG_AFFS_FS is not set 1079# CONFIG_AFFS_FS is not set
1046# CONFIG_HFS_FS is not set 1080# CONFIG_HFS_FS is not set
@@ -1060,6 +1094,7 @@ CONFIG_JFFS2_ZLIB=y
1060CONFIG_JFFS2_RTIME=y 1094CONFIG_JFFS2_RTIME=y
1061# CONFIG_JFFS2_RUBIN is not set 1095# CONFIG_JFFS2_RUBIN is not set
1062CONFIG_CRAMFS=y 1096CONFIG_CRAMFS=y
1097# CONFIG_SQUASHFS is not set
1063# CONFIG_VXFS_FS is not set 1098# CONFIG_VXFS_FS is not set
1064# CONFIG_MINIX_FS is not set 1099# CONFIG_MINIX_FS is not set
1065# CONFIG_OMFS_FS is not set 1100# CONFIG_OMFS_FS is not set
@@ -1110,6 +1145,7 @@ CONFIG_PARTITION_ADVANCED=y
1110# Library routines 1145# Library routines
1111# 1146#
1112CONFIG_BITREVERSE=y 1147CONFIG_BITREVERSE=y
1148CONFIG_GENERIC_FIND_LAST_BIT=y
1113# CONFIG_CRC_CCITT is not set 1149# CONFIG_CRC_CCITT is not set
1114# CONFIG_CRC16 is not set 1150# CONFIG_CRC16 is not set
1115# CONFIG_CRC_T10DIF is not set 1151# CONFIG_CRC_T10DIF is not set
@@ -1145,6 +1181,8 @@ CONFIG_FRAME_WARN=1024
1145# CONFIG_LATENCYTOP is not set 1181# CONFIG_LATENCYTOP is not set
1146CONFIG_SYSCTL_SYSCALL_CHECK=y 1182CONFIG_SYSCTL_SYSCALL_CHECK=y
1147CONFIG_HAVE_FUNCTION_TRACER=y 1183CONFIG_HAVE_FUNCTION_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1148 1186
1149# 1187#
1150# Tracers 1188# Tracers
@@ -1152,6 +1190,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1152# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1153# CONFIG_SAMPLES is not set 1191# CONFIG_SAMPLES is not set
1154CONFIG_HAVE_ARCH_KGDB=y 1192CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64
1155# CONFIG_IRQSTACKS is not set 1194# CONFIG_IRQSTACKS is not set
1156# CONFIG_PPC_EARLY_DEBUG is not set 1195# CONFIG_PPC_EARLY_DEBUG is not set
1157 1196
@@ -1169,6 +1208,7 @@ CONFIG_CRYPTO=y
1169# 1208#
1170# CONFIG_CRYPTO_FIPS is not set 1209# CONFIG_CRYPTO_FIPS is not set
1171# CONFIG_CRYPTO_MANAGER is not set 1210# CONFIG_CRYPTO_MANAGER is not set
1211# CONFIG_CRYPTO_MANAGER2 is not set
1172# CONFIG_CRYPTO_GF128MUL is not set 1212# CONFIG_CRYPTO_GF128MUL is not set
1173# CONFIG_CRYPTO_NULL is not set 1213# CONFIG_CRYPTO_NULL is not set
1174# CONFIG_CRYPTO_CRYPTD is not set 1214# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index 2519169b6d4b..a25009174f37 100644
--- a/arch/powerpc/configs/85xx/tqm8560_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8560_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:25 2008 4# Mon Jan 26 15:36:22 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,12 +78,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -114,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 116CONFIG_SLUB=y
115# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 121CONFIG_HAVE_IOREMAP_PROT=y
@@ -125,13 +126,11 @@ CONFIG_HAVE_CLK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 130# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 131CONFIG_BLOCK=y
132# CONFIG_LBD is not set 132# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_LSF is not set
135# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
137 136
@@ -148,6 +147,10 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
151# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
152 155
153# 156#
@@ -189,6 +192,7 @@ CONFIG_CPM2=y
189# CONFIG_FSL_ULI1575 is not set 192# CONFIG_FSL_ULI1575 is not set
190CONFIG_CPM=y 193CONFIG_CPM=y
191# CONFIG_MPC8xxx_GPIO is not set 194# CONFIG_MPC8xxx_GPIO is not set
195# CONFIG_SIMPLE_GPIO is not set
192 196
193# 197#
194# Kernel options 198# Kernel options
@@ -226,12 +230,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 230CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 232CONFIG_MIGRATION=y
229# CONFIG_RESOURCES_64BIT is not set
230# CONFIG_PHYS_ADDR_T_64BIT is not set 233# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
236# CONFIG_PROC_DEVICETREE is not set 242# CONFIG_PROC_DEVICETREE is not set
237# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +261,7 @@ CONFIG_PCI_SYSCALL=y
255CONFIG_ARCH_SUPPORTS_MSI=y 261CONFIG_ARCH_SUPPORTS_MSI=y
256# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
257# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set
258# CONFIG_HAS_RAPIDIO is not set 265# CONFIG_HAS_RAPIDIO is not set
259 266
260# 267#
@@ -276,6 +283,7 @@ CONFIG_NET=y
276# 283#
277# Networking options 284# Networking options
278# 285#
286CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 287CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 288# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 289CONFIG_UNIX=y
@@ -332,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_ECONET is not set 340# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 341# CONFIG_WAN_ROUTER is not set
334# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set
335 344
336# 345#
337# Network testing 346# Network testing
@@ -347,8 +356,9 @@ CONFIG_WIRELESS=y
347# CONFIG_CFG80211 is not set 356# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y 357CONFIG_WIRELESS_OLD_REGULATORY=y
349# CONFIG_WIRELESS_EXT is not set 358# CONFIG_WIRELESS_EXT is not set
359# CONFIG_LIB80211 is not set
350# CONFIG_MAC80211 is not set 360# CONFIG_MAC80211 is not set
351# CONFIG_IEEE80211 is not set 361# CONFIG_WIMAX is not set
352# CONFIG_RFKILL is not set 362# CONFIG_RFKILL is not set
353# CONFIG_NET_9P is not set 363# CONFIG_NET_9P is not set
354 364
@@ -438,6 +448,12 @@ CONFIG_MTD_CFI_UTIL=y
438# CONFIG_MTD_ONENAND is not set 448# CONFIG_MTD_ONENAND is not set
439 449
440# 450#
451# LPDDR flash memory drivers
452#
453# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455
456#
441# UBI - Unsorted block images 457# UBI - Unsorted block images
442# 458#
443# CONFIG_MTD_UBI is not set 459# CONFIG_MTD_UBI is not set
@@ -468,8 +484,10 @@ CONFIG_MISC_DEVICES=y
468# CONFIG_EEPROM_93CX6 is not set 484# CONFIG_EEPROM_93CX6 is not set
469# CONFIG_SGI_IOC4 is not set 485# CONFIG_SGI_IOC4 is not set
470# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 488# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 489# CONFIG_HP_ILO is not set
490# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 491CONFIG_HAVE_IDE=y
474CONFIG_IDE=y 492CONFIG_IDE=y
475 493
@@ -512,6 +530,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
512# CONFIG_BLK_DEV_JMICRON is not set 530# CONFIG_BLK_DEV_JMICRON is not set
513# CONFIG_BLK_DEV_SC1200 is not set 531# CONFIG_BLK_DEV_SC1200 is not set
514# CONFIG_BLK_DEV_PIIX is not set 532# CONFIG_BLK_DEV_PIIX is not set
533# CONFIG_BLK_DEV_IT8172 is not set
515# CONFIG_BLK_DEV_IT8213 is not set 534# CONFIG_BLK_DEV_IT8213 is not set
516# CONFIG_BLK_DEV_IT821X is not set 535# CONFIG_BLK_DEV_IT821X is not set
517# CONFIG_BLK_DEV_NS87415 is not set 536# CONFIG_BLK_DEV_NS87415 is not set
@@ -571,6 +590,9 @@ CONFIG_PHYLIB=y
571# CONFIG_BROADCOM_PHY is not set 590# CONFIG_BROADCOM_PHY is not set
572# CONFIG_ICPLUS_PHY is not set 591# CONFIG_ICPLUS_PHY is not set
573# CONFIG_REALTEK_PHY is not set 592# CONFIG_REALTEK_PHY is not set
593# CONFIG_NATIONAL_PHY is not set
594# CONFIG_STE10XP is not set
595# CONFIG_LSI_ET1011C_PHY is not set
574# CONFIG_FIXED_PHY is not set 596# CONFIG_FIXED_PHY is not set
575# CONFIG_MDIO_BITBANG is not set 597# CONFIG_MDIO_BITBANG is not set
576CONFIG_NET_ETHERNET=y 598CONFIG_NET_ETHERNET=y
@@ -594,7 +616,6 @@ CONFIG_NET_PCI=y
594# CONFIG_ADAPTEC_STARFIRE is not set 616# CONFIG_ADAPTEC_STARFIRE is not set
595# CONFIG_B44 is not set 617# CONFIG_B44 is not set
596# CONFIG_FORCEDETH is not set 618# CONFIG_FORCEDETH is not set
597# CONFIG_EEPRO100 is not set
598CONFIG_E100=y 619CONFIG_E100=y
599# CONFIG_FEALNX is not set 620# CONFIG_FEALNX is not set
600# CONFIG_NATSEMI is not set 621# CONFIG_NATSEMI is not set
@@ -604,6 +625,7 @@ CONFIG_E100=y
604# CONFIG_R6040 is not set 625# CONFIG_R6040 is not set
605# CONFIG_SIS900 is not set 626# CONFIG_SIS900 is not set
606# CONFIG_EPIC100 is not set 627# CONFIG_EPIC100 is not set
628# CONFIG_SMSC9420 is not set
607# CONFIG_SUNDANCE is not set 629# CONFIG_SUNDANCE is not set
608# CONFIG_TLAN is not set 630# CONFIG_TLAN is not set
609# CONFIG_VIA_RHINE is not set 631# CONFIG_VIA_RHINE is not set
@@ -634,6 +656,7 @@ CONFIG_GIANFAR=y
634# CONFIG_JME is not set 656# CONFIG_JME is not set
635CONFIG_NETDEV_10000=y 657CONFIG_NETDEV_10000=y
636# CONFIG_CHELSIO_T1 is not set 658# CONFIG_CHELSIO_T1 is not set
659CONFIG_CHELSIO_T3_DEPENDS=y
637# CONFIG_CHELSIO_T3 is not set 660# CONFIG_CHELSIO_T3 is not set
638# CONFIG_ENIC is not set 661# CONFIG_ENIC is not set
639# CONFIG_IXGBE is not set 662# CONFIG_IXGBE is not set
@@ -656,6 +679,10 @@ CONFIG_NETDEV_10000=y
656# CONFIG_WLAN_PRE80211 is not set 679# CONFIG_WLAN_PRE80211 is not set
657# CONFIG_WLAN_80211 is not set 680# CONFIG_WLAN_80211 is not set
658# CONFIG_IWLWIFI_LEDS is not set 681# CONFIG_IWLWIFI_LEDS is not set
682
683#
684# Enable WiMAX (Networking options) to see the WiMAX drivers
685#
659# CONFIG_WAN is not set 686# CONFIG_WAN is not set
660# CONFIG_FDDI is not set 687# CONFIG_FDDI is not set
661# CONFIG_HIPPI is not set 688# CONFIG_HIPPI is not set
@@ -728,8 +755,10 @@ CONFIG_SERIAL_CPM_CONSOLE=y
728# CONFIG_SERIAL_JSM is not set 755# CONFIG_SERIAL_JSM is not set
729# CONFIG_SERIAL_OF_PLATFORM is not set 756# CONFIG_SERIAL_OF_PLATFORM is not set
730CONFIG_UNIX98_PTYS=y 757CONFIG_UNIX98_PTYS=y
758# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
731CONFIG_LEGACY_PTYS=y 759CONFIG_LEGACY_PTYS=y
732CONFIG_LEGACY_PTY_COUNT=256 760CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set
733# CONFIG_IPMI_HANDLER is not set 762# CONFIG_IPMI_HANDLER is not set
734CONFIG_HW_RANDOM=y 763CONFIG_HW_RANDOM=y
735# CONFIG_NVRAM is not set 764# CONFIG_NVRAM is not set
@@ -796,13 +825,12 @@ CONFIG_I2C_MPC=y
796# Miscellaneous I2C Chip support 825# Miscellaneous I2C Chip support
797# 826#
798# CONFIG_DS1682 is not set 827# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 828# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_EEPROM is not set 829# CONFIG_EEPROM_LEGACY is not set
801# CONFIG_SENSORS_PCF8574 is not set 830# CONFIG_SENSORS_PCF8574 is not set
802# CONFIG_PCF8575 is not set 831# CONFIG_PCF8575 is not set
803# CONFIG_SENSORS_PCA9539 is not set 832# CONFIG_SENSORS_PCA9539 is not set
804# CONFIG_SENSORS_PCF8591 is not set 833# CONFIG_SENSORS_PCF8591 is not set
805# CONFIG_TPS65010 is not set
806# CONFIG_SENSORS_MAX6875 is not set 834# CONFIG_SENSORS_MAX6875 is not set
807# CONFIG_SENSORS_TSL2550 is not set 835# CONFIG_SENSORS_TSL2550 is not set
808# CONFIG_I2C_DEBUG_CORE is not set 836# CONFIG_I2C_DEBUG_CORE is not set
@@ -816,6 +844,11 @@ CONFIG_GPIOLIB=y
816# CONFIG_GPIO_SYSFS is not set 844# CONFIG_GPIO_SYSFS is not set
817 845
818# 846#
847# Memory mapped GPIO expanders:
848#
849# CONFIG_GPIO_XILINX is not set
850
851#
819# I2C GPIO expanders: 852# I2C GPIO expanders:
820# 853#
821# CONFIG_GPIO_MAX732X is not set 854# CONFIG_GPIO_MAX732X is not set
@@ -842,8 +875,10 @@ CONFIG_HWMON=y
842# CONFIG_SENSORS_ADM1029 is not set 875# CONFIG_SENSORS_ADM1029 is not set
843# CONFIG_SENSORS_ADM1031 is not set 876# CONFIG_SENSORS_ADM1031 is not set
844# CONFIG_SENSORS_ADM9240 is not set 877# CONFIG_SENSORS_ADM9240 is not set
878# CONFIG_SENSORS_ADT7462 is not set
845# CONFIG_SENSORS_ADT7470 is not set 879# CONFIG_SENSORS_ADT7470 is not set
846# CONFIG_SENSORS_ADT7473 is not set 880# CONFIG_SENSORS_ADT7473 is not set
881# CONFIG_SENSORS_ADT7475 is not set
847# CONFIG_SENSORS_ATXP1 is not set 882# CONFIG_SENSORS_ATXP1 is not set
848# CONFIG_SENSORS_DS1621 is not set 883# CONFIG_SENSORS_DS1621 is not set
849# CONFIG_SENSORS_I5K_AMB is not set 884# CONFIG_SENSORS_I5K_AMB is not set
@@ -864,6 +899,7 @@ CONFIG_SENSORS_LM75=y
864# CONFIG_SENSORS_LM90 is not set 899# CONFIG_SENSORS_LM90 is not set
865# CONFIG_SENSORS_LM92 is not set 900# CONFIG_SENSORS_LM92 is not set
866# CONFIG_SENSORS_LM93 is not set 901# CONFIG_SENSORS_LM93 is not set
902# CONFIG_SENSORS_LTC4245 is not set
867# CONFIG_SENSORS_MAX1619 is not set 903# CONFIG_SENSORS_MAX1619 is not set
868# CONFIG_SENSORS_MAX6650 is not set 904# CONFIG_SENSORS_MAX6650 is not set
869# CONFIG_SENSORS_PC87360 is not set 905# CONFIG_SENSORS_PC87360 is not set
@@ -890,11 +926,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
890# CONFIG_THERMAL is not set 926# CONFIG_THERMAL is not set
891# CONFIG_THERMAL_HWMON is not set 927# CONFIG_THERMAL_HWMON is not set
892# CONFIG_WATCHDOG is not set 928# CONFIG_WATCHDOG is not set
929CONFIG_SSB_POSSIBLE=y
893 930
894# 931#
895# Sonics Silicon Backplane 932# Sonics Silicon Backplane
896# 933#
897CONFIG_SSB_POSSIBLE=y
898# CONFIG_SSB is not set 934# CONFIG_SSB is not set
899 935
900# 936#
@@ -903,18 +939,14 @@ CONFIG_SSB_POSSIBLE=y
903# CONFIG_MFD_CORE is not set 939# CONFIG_MFD_CORE is not set
904# CONFIG_MFD_SM501 is not set 940# CONFIG_MFD_SM501 is not set
905# CONFIG_HTC_PASIC3 is not set 941# CONFIG_HTC_PASIC3 is not set
942# CONFIG_TPS65010 is not set
943# CONFIG_TWL4030_CORE is not set
906# CONFIG_MFD_TMIO is not set 944# CONFIG_MFD_TMIO is not set
907# CONFIG_PMIC_DA903X is not set 945# CONFIG_PMIC_DA903X is not set
908# CONFIG_MFD_WM8400 is not set 946# CONFIG_MFD_WM8400 is not set
909# CONFIG_MFD_WM8350_I2C is not set 947# CONFIG_MFD_WM8350_I2C is not set
910 948# CONFIG_MFD_PCF50633 is not set
911#
912# Voltage and Current regulators
913#
914# CONFIG_REGULATOR is not set 949# CONFIG_REGULATOR is not set
915# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
916# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
917# CONFIG_REGULATOR_BQ24022 is not set
918 950
919# 951#
920# Multimedia devices 952# Multimedia devices
@@ -970,9 +1002,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
970# 1002#
971 1003
972# 1004#
973# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
974# 1006#
975# CONFIG_USB_GADGET is not set 1007# CONFIG_USB_GADGET is not set
1008
1009#
1010# OTG and related infrastructure
1011#
976# CONFIG_UWB is not set 1012# CONFIG_UWB is not set
977# CONFIG_MMC is not set 1013# CONFIG_MMC is not set
978# CONFIG_MEMSTICK is not set 1014# CONFIG_MEMSTICK is not set
@@ -1004,6 +1040,7 @@ CONFIG_FS_MBCACHE=y
1004CONFIG_FILE_LOCKING=y 1040CONFIG_FILE_LOCKING=y
1005# CONFIG_XFS_FS is not set 1041# CONFIG_XFS_FS is not set
1006# CONFIG_OCFS2_FS is not set 1042# CONFIG_OCFS2_FS is not set
1043# CONFIG_BTRFS_FS is not set
1007CONFIG_DNOTIFY=y 1044CONFIG_DNOTIFY=y
1008CONFIG_INOTIFY=y 1045CONFIG_INOTIFY=y
1009CONFIG_INOTIFY_USER=y 1046CONFIG_INOTIFY_USER=y
@@ -1037,10 +1074,7 @@ CONFIG_TMPFS=y
1037# CONFIG_TMPFS_POSIX_ACL is not set 1074# CONFIG_TMPFS_POSIX_ACL is not set
1038# CONFIG_HUGETLB_PAGE is not set 1075# CONFIG_HUGETLB_PAGE is not set
1039# CONFIG_CONFIGFS_FS is not set 1076# CONFIG_CONFIGFS_FS is not set
1040 1077CONFIG_MISC_FILESYSTEMS=y
1041#
1042# Miscellaneous filesystems
1043#
1044# CONFIG_ADFS_FS is not set 1078# CONFIG_ADFS_FS is not set
1045# CONFIG_AFFS_FS is not set 1079# CONFIG_AFFS_FS is not set
1046# CONFIG_HFS_FS is not set 1080# CONFIG_HFS_FS is not set
@@ -1060,6 +1094,7 @@ CONFIG_JFFS2_ZLIB=y
1060CONFIG_JFFS2_RTIME=y 1094CONFIG_JFFS2_RTIME=y
1061# CONFIG_JFFS2_RUBIN is not set 1095# CONFIG_JFFS2_RUBIN is not set
1062CONFIG_CRAMFS=y 1096CONFIG_CRAMFS=y
1097# CONFIG_SQUASHFS is not set
1063# CONFIG_VXFS_FS is not set 1098# CONFIG_VXFS_FS is not set
1064# CONFIG_MINIX_FS is not set 1099# CONFIG_MINIX_FS is not set
1065# CONFIG_OMFS_FS is not set 1100# CONFIG_OMFS_FS is not set
@@ -1110,6 +1145,7 @@ CONFIG_PARTITION_ADVANCED=y
1110# Library routines 1145# Library routines
1111# 1146#
1112CONFIG_BITREVERSE=y 1147CONFIG_BITREVERSE=y
1148CONFIG_GENERIC_FIND_LAST_BIT=y
1113# CONFIG_CRC_CCITT is not set 1149# CONFIG_CRC_CCITT is not set
1114# CONFIG_CRC16 is not set 1150# CONFIG_CRC16 is not set
1115# CONFIG_CRC_T10DIF is not set 1151# CONFIG_CRC_T10DIF is not set
@@ -1145,6 +1181,8 @@ CONFIG_FRAME_WARN=1024
1145# CONFIG_LATENCYTOP is not set 1181# CONFIG_LATENCYTOP is not set
1146CONFIG_SYSCTL_SYSCALL_CHECK=y 1182CONFIG_SYSCTL_SYSCALL_CHECK=y
1147CONFIG_HAVE_FUNCTION_TRACER=y 1183CONFIG_HAVE_FUNCTION_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1148 1186
1149# 1187#
1150# Tracers 1188# Tracers
@@ -1152,6 +1190,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1152# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1153# CONFIG_SAMPLES is not set 1191# CONFIG_SAMPLES is not set
1154CONFIG_HAVE_ARCH_KGDB=y 1192CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64
1155# CONFIG_IRQSTACKS is not set 1194# CONFIG_IRQSTACKS is not set
1156# CONFIG_PPC_EARLY_DEBUG is not set 1195# CONFIG_PPC_EARLY_DEBUG is not set
1157 1196
@@ -1169,6 +1208,7 @@ CONFIG_CRYPTO=y
1169# 1208#
1170# CONFIG_CRYPTO_FIPS is not set 1209# CONFIG_CRYPTO_FIPS is not set
1171# CONFIG_CRYPTO_MANAGER is not set 1210# CONFIG_CRYPTO_MANAGER is not set
1211# CONFIG_CRYPTO_MANAGER2 is not set
1172# CONFIG_CRYPTO_GF128MUL is not set 1212# CONFIG_CRYPTO_GF128MUL is not set
1173# CONFIG_CRYPTO_NULL is not set 1213# CONFIG_CRYPTO_NULL is not set
1174# CONFIG_CRYPTO_CRYPTD is not set 1214# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
index cd1ffa449327..1ab5abae00a2 100644
--- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig
+++ b/arch/powerpc/configs/86xx/gef_sbc610_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:30 2008 4# Mon Jan 26 15:36:26 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -42,11 +42,12 @@ CONFIG_ARCH_HAS_ILOG2_U32=y
42CONFIG_GENERIC_HWEIGHT=y 42CONFIG_GENERIC_HWEIGHT=y
43CONFIG_GENERIC_CALIBRATE_DELAY=y 43CONFIG_GENERIC_CALIBRATE_DELAY=y
44CONFIG_GENERIC_FIND_NEXT_BIT=y 44CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_GENERIC_GPIO=y
45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 46# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
46CONFIG_PPC=y 47CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
52CONFIG_OF=y 53CONFIG_OF=y
@@ -78,12 +79,12 @@ CONFIG_BSD_PROCESS_ACCT_V3=y
78CONFIG_IKCONFIG=y 79CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 80CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 81CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 82CONFIG_GROUP_SCHED=y
83CONFIG_FAIR_GROUP_SCHED=y 83CONFIG_FAIR_GROUP_SCHED=y
84# CONFIG_RT_GROUP_SCHED is not set 84# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 85CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 86# CONFIG_CGROUP_SCHED is not set
87# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 88CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 89CONFIG_SYSFS_DEPRECATED_V2=y
89CONFIG_RELAY=y 90CONFIG_RELAY=y
@@ -117,7 +118,6 @@ CONFIG_SLAB=y
117# CONFIG_SLUB is not set 118# CONFIG_SLUB is not set
118# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
119# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
120# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -129,7 +129,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
132# CONFIG_TINY_SHMEM is not set
133CONFIG_BASE_SMALL=0 132CONFIG_BASE_SMALL=0
134CONFIG_MODULES=y 133CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set 134# CONFIG_MODULE_FORCE_LOAD is not set
@@ -137,12 +136,10 @@ CONFIG_MODULE_UNLOAD=y
137# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
138# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
139# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
140CONFIG_KMOD=y
141CONFIG_STOP_MACHINE=y 139CONFIG_STOP_MACHINE=y
142CONFIG_BLOCK=y 140CONFIG_BLOCK=y
143# CONFIG_LBD is not set 141# CONFIG_LBD is not set
144# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
145# CONFIG_LSF is not set
146# CONFIG_BLK_DEV_BSG is not set 143# CONFIG_BLK_DEV_BSG is not set
147# CONFIG_BLK_DEV_INTEGRITY is not set 144# CONFIG_BLK_DEV_INTEGRITY is not set
148 145
@@ -159,6 +156,10 @@ CONFIG_DEFAULT_CFQ=y
159# CONFIG_DEFAULT_NOOP is not set 156# CONFIG_DEFAULT_NOOP is not set
160CONFIG_DEFAULT_IOSCHED="cfq" 157CONFIG_DEFAULT_IOSCHED="cfq"
161CONFIG_CLASSIC_RCU=y 158CONFIG_CLASSIC_RCU=y
159# CONFIG_TREE_RCU is not set
160# CONFIG_PREEMPT_RCU is not set
161# CONFIG_TREE_RCU_TRACE is not set
162# CONFIG_PREEMPT_RCU_TRACE is not set
162# CONFIG_FREEZER is not set 163# CONFIG_FREEZER is not set
163 164
164# 165#
@@ -197,6 +198,7 @@ CONFIG_MPIC=y
197# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
198# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
200 202
201# 203#
202# Kernel options 204# Kernel options
@@ -215,7 +217,6 @@ CONFIG_SCHED_HRTICK=y
215# CONFIG_PREEMPT_NONE is not set 217# CONFIG_PREEMPT_NONE is not set
216# CONFIG_PREEMPT_VOLUNTARY is not set 218# CONFIG_PREEMPT_VOLUNTARY is not set
217CONFIG_PREEMPT=y 219CONFIG_PREEMPT=y
218# CONFIG_PREEMPT_RCU is not set
219CONFIG_BINFMT_ELF=y 220CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 221# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set 222# CONFIG_HAVE_AOUT is not set
@@ -225,6 +226,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 226CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 228# CONFIG_KEXEC is not set
229# CONFIG_CRASH_DUMP is not set
228CONFIG_IRQ_ALL_CPUS=y 230CONFIG_IRQ_ALL_CPUS=y
229CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -237,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
247# CONFIG_PROC_DEVICETREE is not set 251# CONFIG_PROC_DEVICETREE is not set
248# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -270,6 +274,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
270# CONFIG_PCI_MSI is not set 274# CONFIG_PCI_MSI is not set
271# CONFIG_PCI_LEGACY is not set 275# CONFIG_PCI_LEGACY is not set
272CONFIG_PCI_DEBUG=y 276CONFIG_PCI_DEBUG=y
277# CONFIG_PCI_STUB is not set
273# CONFIG_PCCARD is not set 278# CONFIG_PCCARD is not set
274# CONFIG_HOTPLUG_PCI is not set 279# CONFIG_HOTPLUG_PCI is not set
275CONFIG_HAS_RAPIDIO=y 280CONFIG_HAS_RAPIDIO=y
@@ -293,6 +298,7 @@ CONFIG_NET=y
293# 298#
294# Networking options 299# Networking options
295# 300#
301CONFIG_COMPAT_NET_DEV_OPS=y
296CONFIG_PACKET=y 302CONFIG_PACKET=y
297CONFIG_PACKET_MMAP=y 303CONFIG_PACKET_MMAP=y
298CONFIG_UNIX=y 304CONFIG_UNIX=y
@@ -502,6 +508,7 @@ CONFIG_NET_SCH_TBF=m
502CONFIG_NET_SCH_GRED=m 508CONFIG_NET_SCH_GRED=m
503CONFIG_NET_SCH_DSMARK=m 509CONFIG_NET_SCH_DSMARK=m
504CONFIG_NET_SCH_NETEM=m 510CONFIG_NET_SCH_NETEM=m
511# CONFIG_NET_SCH_DRR is not set
505 512
506# 513#
507# Classification 514# Classification
@@ -522,6 +529,7 @@ CONFIG_NET_CLS_RSVP6=m
522# CONFIG_NET_CLS_ACT is not set 529# CONFIG_NET_CLS_ACT is not set
523# CONFIG_NET_CLS_IND is not set 530# CONFIG_NET_CLS_IND is not set
524CONFIG_NET_SCH_FIFO=y 531CONFIG_NET_SCH_FIFO=y
532# CONFIG_DCB is not set
525 533
526# 534#
527# Network testing 535# Network testing
@@ -538,8 +546,9 @@ CONFIG_WIRELESS=y
538# CONFIG_CFG80211 is not set 546# CONFIG_CFG80211 is not set
539CONFIG_WIRELESS_OLD_REGULATORY=y 547CONFIG_WIRELESS_OLD_REGULATORY=y
540# CONFIG_WIRELESS_EXT is not set 548# CONFIG_WIRELESS_EXT is not set
549# CONFIG_LIB80211 is not set
541# CONFIG_MAC80211 is not set 550# CONFIG_MAC80211 is not set
542# CONFIG_IEEE80211 is not set 551# CONFIG_WIMAX is not set
543# CONFIG_RFKILL is not set 552# CONFIG_RFKILL is not set
544# CONFIG_NET_9P is not set 553# CONFIG_NET_9P is not set
545 554
@@ -562,6 +571,7 @@ CONFIG_MTD=y
562# CONFIG_MTD_DEBUG is not set 571# CONFIG_MTD_DEBUG is not set
563CONFIG_MTD_CONCAT=y 572CONFIG_MTD_CONCAT=y
564CONFIG_MTD_PARTITIONS=y 573CONFIG_MTD_PARTITIONS=y
574# CONFIG_MTD_TESTS is not set
565# CONFIG_MTD_REDBOOT_PARTS is not set 575# CONFIG_MTD_REDBOOT_PARTS is not set
566# CONFIG_MTD_CMDLINE_PARTS is not set 576# CONFIG_MTD_CMDLINE_PARTS is not set
567# CONFIG_MTD_OF_PARTS is not set 577# CONFIG_MTD_OF_PARTS is not set
@@ -638,10 +648,17 @@ CONFIG_MTD_PHYSMAP_OF=y
638# CONFIG_MTD_ONENAND is not set 648# CONFIG_MTD_ONENAND is not set
639 649
640# 650#
651# LPDDR flash memory drivers
652#
653# CONFIG_MTD_LPDDR is not set
654# CONFIG_MTD_QINFO_PROBE is not set
655
656#
641# UBI - Unsorted block images 657# UBI - Unsorted block images
642# 658#
643# CONFIG_MTD_UBI is not set 659# CONFIG_MTD_UBI is not set
644CONFIG_OF_DEVICE=y 660CONFIG_OF_DEVICE=y
661CONFIG_OF_GPIO=y
645CONFIG_OF_I2C=y 662CONFIG_OF_I2C=y
646# CONFIG_PARPORT is not set 663# CONFIG_PARPORT is not set
647CONFIG_BLK_DEV=y 664CONFIG_BLK_DEV=y
@@ -668,8 +685,10 @@ CONFIG_MISC_DEVICES=y
668# CONFIG_EEPROM_93CX6 is not set 685# CONFIG_EEPROM_93CX6 is not set
669# CONFIG_SGI_IOC4 is not set 686# CONFIG_SGI_IOC4 is not set
670# CONFIG_TIFM_CORE is not set 687# CONFIG_TIFM_CORE is not set
688# CONFIG_ICS932S401 is not set
671# CONFIG_ENCLOSURE_SERVICES is not set 689# CONFIG_ENCLOSURE_SERVICES is not set
672# CONFIG_HP_ILO is not set 690# CONFIG_HP_ILO is not set
691# CONFIG_C2PORT is not set
673CONFIG_HAVE_IDE=y 692CONFIG_HAVE_IDE=y
674# CONFIG_IDE is not set 693# CONFIG_IDE is not set
675 694
@@ -729,6 +748,8 @@ CONFIG_SCSI_LOWLEVEL=y
729# CONFIG_MEGARAID_SAS is not set 748# CONFIG_MEGARAID_SAS is not set
730# CONFIG_SCSI_HPTIOP is not set 749# CONFIG_SCSI_HPTIOP is not set
731# CONFIG_SCSI_BUSLOGIC is not set 750# CONFIG_SCSI_BUSLOGIC is not set
751# CONFIG_LIBFC is not set
752# CONFIG_FCOE is not set
732# CONFIG_SCSI_DMX3191D is not set 753# CONFIG_SCSI_DMX3191D is not set
733# CONFIG_SCSI_EATA is not set 754# CONFIG_SCSI_EATA is not set
734# CONFIG_SCSI_FUTURE_DOMAIN is not set 755# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -848,6 +869,9 @@ CONFIG_PHYLIB=y
848# CONFIG_BROADCOM_PHY is not set 869# CONFIG_BROADCOM_PHY is not set
849# CONFIG_ICPLUS_PHY is not set 870# CONFIG_ICPLUS_PHY is not set
850# CONFIG_REALTEK_PHY is not set 871# CONFIG_REALTEK_PHY is not set
872# CONFIG_NATIONAL_PHY is not set
873# CONFIG_STE10XP is not set
874# CONFIG_LSI_ET1011C_PHY is not set
851# CONFIG_FIXED_PHY is not set 875# CONFIG_FIXED_PHY is not set
852# CONFIG_MDIO_BITBANG is not set 876# CONFIG_MDIO_BITBANG is not set
853CONFIG_NET_ETHERNET=y 877CONFIG_NET_ETHERNET=y
@@ -902,6 +926,10 @@ CONFIG_GIANFAR=y
902# CONFIG_IWLWIFI_LEDS is not set 926# CONFIG_IWLWIFI_LEDS is not set
903 927
904# 928#
929# Enable WiMAX (Networking options) to see the WiMAX drivers
930#
931
932#
905# USB Network Adapters 933# USB Network Adapters
906# 934#
907# CONFIG_USB_CATC is not set 935# CONFIG_USB_CATC is not set
@@ -924,6 +952,7 @@ CONFIG_ATM_DRIVERS=y
924# CONFIG_ATM_IA is not set 952# CONFIG_ATM_IA is not set
925# CONFIG_ATM_FORE200E is not set 953# CONFIG_ATM_FORE200E is not set
926# CONFIG_ATM_HE is not set 954# CONFIG_ATM_HE is not set
955# CONFIG_ATM_SOLOS is not set
927# CONFIG_FDDI is not set 956# CONFIG_FDDI is not set
928# CONFIG_HIPPI is not set 957# CONFIG_HIPPI is not set
929CONFIG_PPP=m 958CONFIG_PPP=m
@@ -1016,7 +1045,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
1016# CONFIG_SERIAL_JSM is not set 1045# CONFIG_SERIAL_JSM is not set
1017# CONFIG_SERIAL_OF_PLATFORM is not set 1046# CONFIG_SERIAL_OF_PLATFORM is not set
1018CONFIG_UNIX98_PTYS=y 1047CONFIG_UNIX98_PTYS=y
1048# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1019# CONFIG_LEGACY_PTYS is not set 1049# CONFIG_LEGACY_PTYS is not set
1050# CONFIG_HVC_UDBG is not set
1020# CONFIG_IPMI_HANDLER is not set 1051# CONFIG_IPMI_HANDLER is not set
1021CONFIG_HW_RANDOM=y 1052CONFIG_HW_RANDOM=y
1022# CONFIG_NVRAM is not set 1053# CONFIG_NVRAM is not set
@@ -1055,6 +1086,7 @@ CONFIG_I2C_HELPER_AUTO=y
1055# 1086#
1056# I2C system bus drivers (mostly embedded / system-on-chip) 1087# I2C system bus drivers (mostly embedded / system-on-chip)
1057# 1088#
1089# CONFIG_I2C_GPIO is not set
1058CONFIG_I2C_MPC=y 1090CONFIG_I2C_MPC=y
1059# CONFIG_I2C_OCORES is not set 1091# CONFIG_I2C_OCORES is not set
1060# CONFIG_I2C_SIMTEC is not set 1092# CONFIG_I2C_SIMTEC is not set
@@ -1081,8 +1113,8 @@ CONFIG_I2C_MPC=y
1081# Miscellaneous I2C Chip support 1113# Miscellaneous I2C Chip support
1082# 1114#
1083CONFIG_DS1682=y 1115CONFIG_DS1682=y
1084# CONFIG_AT24 is not set 1116# CONFIG_EEPROM_AT24 is not set
1085# CONFIG_SENSORS_EEPROM is not set 1117# CONFIG_EEPROM_LEGACY is not set
1086# CONFIG_SENSORS_PCF8574 is not set 1118# CONFIG_SENSORS_PCF8574 is not set
1087# CONFIG_PCF8575 is not set 1119# CONFIG_PCF8575 is not set
1088# CONFIG_SENSORS_PCA9539 is not set 1120# CONFIG_SENSORS_PCA9539 is not set
@@ -1095,7 +1127,31 @@ CONFIG_DS1682=y
1095# CONFIG_I2C_DEBUG_CHIP is not set 1127# CONFIG_I2C_DEBUG_CHIP is not set
1096# CONFIG_SPI is not set 1128# CONFIG_SPI is not set
1097CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 1129CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1098# CONFIG_GPIOLIB is not set 1130CONFIG_ARCH_REQUIRE_GPIOLIB=y
1131CONFIG_GPIOLIB=y
1132# CONFIG_DEBUG_GPIO is not set
1133# CONFIG_GPIO_SYSFS is not set
1134
1135#
1136# Memory mapped GPIO expanders:
1137#
1138# CONFIG_GPIO_XILINX is not set
1139
1140#
1141# I2C GPIO expanders:
1142#
1143# CONFIG_GPIO_MAX732X is not set
1144# CONFIG_GPIO_PCA953X is not set
1145# CONFIG_GPIO_PCF857X is not set
1146
1147#
1148# PCI GPIO expanders:
1149#
1150# CONFIG_GPIO_BT8XX is not set
1151
1152#
1153# SPI GPIO expanders:
1154#
1099# CONFIG_W1 is not set 1155# CONFIG_W1 is not set
1100# CONFIG_POWER_SUPPLY is not set 1156# CONFIG_POWER_SUPPLY is not set
1101CONFIG_HWMON=y 1157CONFIG_HWMON=y
@@ -1108,8 +1164,10 @@ CONFIG_HWMON=y
1108# CONFIG_SENSORS_ADM1029 is not set 1164# CONFIG_SENSORS_ADM1029 is not set
1109# CONFIG_SENSORS_ADM1031 is not set 1165# CONFIG_SENSORS_ADM1031 is not set
1110# CONFIG_SENSORS_ADM9240 is not set 1166# CONFIG_SENSORS_ADM9240 is not set
1167# CONFIG_SENSORS_ADT7462 is not set
1111# CONFIG_SENSORS_ADT7470 is not set 1168# CONFIG_SENSORS_ADT7470 is not set
1112# CONFIG_SENSORS_ADT7473 is not set 1169# CONFIG_SENSORS_ADT7473 is not set
1170# CONFIG_SENSORS_ADT7475 is not set
1113# CONFIG_SENSORS_ATXP1 is not set 1171# CONFIG_SENSORS_ATXP1 is not set
1114# CONFIG_SENSORS_DS1621 is not set 1172# CONFIG_SENSORS_DS1621 is not set
1115# CONFIG_SENSORS_I5K_AMB is not set 1173# CONFIG_SENSORS_I5K_AMB is not set
@@ -1130,6 +1188,7 @@ CONFIG_HWMON=y
1130CONFIG_SENSORS_LM90=y 1188CONFIG_SENSORS_LM90=y
1131CONFIG_SENSORS_LM92=y 1189CONFIG_SENSORS_LM92=y
1132# CONFIG_SENSORS_LM93 is not set 1190# CONFIG_SENSORS_LM93 is not set
1191# CONFIG_SENSORS_LTC4245 is not set
1133# CONFIG_SENSORS_MAX1619 is not set 1192# CONFIG_SENSORS_MAX1619 is not set
1134# CONFIG_SENSORS_MAX6650 is not set 1193# CONFIG_SENSORS_MAX6650 is not set
1135# CONFIG_SENSORS_PC87360 is not set 1194# CONFIG_SENSORS_PC87360 is not set
@@ -1163,6 +1222,7 @@ CONFIG_WATCHDOG=y
1163# 1222#
1164# CONFIG_SOFT_WATCHDOG is not set 1223# CONFIG_SOFT_WATCHDOG is not set
1165# CONFIG_ALIM7101_WDT is not set 1224# CONFIG_ALIM7101_WDT is not set
1225CONFIG_GEF_WDT=y
1166# CONFIG_8xxx_WDT is not set 1226# CONFIG_8xxx_WDT is not set
1167 1227
1168# 1228#
@@ -1175,11 +1235,11 @@ CONFIG_WATCHDOG=y
1175# USB-based Watchdog Cards 1235# USB-based Watchdog Cards
1176# 1236#
1177# CONFIG_USBPCWATCHDOG is not set 1237# CONFIG_USBPCWATCHDOG is not set
1238CONFIG_SSB_POSSIBLE=y
1178 1239
1179# 1240#
1180# Sonics Silicon Backplane 1241# Sonics Silicon Backplane
1181# 1242#
1182CONFIG_SSB_POSSIBLE=y
1183# CONFIG_SSB is not set 1243# CONFIG_SSB is not set
1184 1244
1185# 1245#
@@ -1188,18 +1248,14 @@ CONFIG_SSB_POSSIBLE=y
1188# CONFIG_MFD_CORE is not set 1248# CONFIG_MFD_CORE is not set
1189# CONFIG_MFD_SM501 is not set 1249# CONFIG_MFD_SM501 is not set
1190# CONFIG_HTC_PASIC3 is not set 1250# CONFIG_HTC_PASIC3 is not set
1251# CONFIG_TPS65010 is not set
1252# CONFIG_TWL4030_CORE is not set
1191# CONFIG_MFD_TMIO is not set 1253# CONFIG_MFD_TMIO is not set
1192# CONFIG_PMIC_DA903X is not set 1254# CONFIG_PMIC_DA903X is not set
1193# CONFIG_MFD_WM8400 is not set 1255# CONFIG_MFD_WM8400 is not set
1194# CONFIG_MFD_WM8350_I2C is not set 1256# CONFIG_MFD_WM8350_I2C is not set
1195 1257# CONFIG_MFD_PCF50633 is not set
1196#
1197# Voltage and Current regulators
1198#
1199# CONFIG_REGULATOR is not set 1258# CONFIG_REGULATOR is not set
1200# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1201# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1202# CONFIG_REGULATOR_BQ24022 is not set
1203 1259
1204# 1260#
1205# Multimedia devices 1261# Multimedia devices
@@ -1259,11 +1315,9 @@ CONFIG_HID_COMPAT=y
1259CONFIG_HID_A4TECH=y 1315CONFIG_HID_A4TECH=y
1260CONFIG_HID_APPLE=y 1316CONFIG_HID_APPLE=y
1261CONFIG_HID_BELKIN=y 1317CONFIG_HID_BELKIN=y
1262CONFIG_HID_BRIGHT=y
1263CONFIG_HID_CHERRY=y 1318CONFIG_HID_CHERRY=y
1264CONFIG_HID_CHICONY=y 1319CONFIG_HID_CHICONY=y
1265CONFIG_HID_CYPRESS=y 1320CONFIG_HID_CYPRESS=y
1266CONFIG_HID_DELL=y
1267CONFIG_HID_EZKEY=y 1321CONFIG_HID_EZKEY=y
1268CONFIG_HID_GYRATION=y 1322CONFIG_HID_GYRATION=y
1269CONFIG_HID_LOGITECH=y 1323CONFIG_HID_LOGITECH=y
@@ -1271,12 +1325,15 @@ CONFIG_HID_LOGITECH=y
1271# CONFIG_LOGIRUMBLEPAD2_FF is not set 1325# CONFIG_LOGIRUMBLEPAD2_FF is not set
1272CONFIG_HID_MICROSOFT=y 1326CONFIG_HID_MICROSOFT=y
1273CONFIG_HID_MONTEREY=y 1327CONFIG_HID_MONTEREY=y
1328# CONFIG_HID_NTRIG is not set
1274CONFIG_HID_PANTHERLORD=y 1329CONFIG_HID_PANTHERLORD=y
1275# CONFIG_PANTHERLORD_FF is not set 1330# CONFIG_PANTHERLORD_FF is not set
1276CONFIG_HID_PETALYNX=y 1331CONFIG_HID_PETALYNX=y
1277CONFIG_HID_SAMSUNG=y 1332CONFIG_HID_SAMSUNG=y
1278CONFIG_HID_SONY=y 1333CONFIG_HID_SONY=y
1279CONFIG_HID_SUNPLUS=y 1334CONFIG_HID_SUNPLUS=y
1335# CONFIG_GREENASIA_FF is not set
1336# CONFIG_HID_TOPSEED is not set
1280CONFIG_THRUSTMASTER_FF=m 1337CONFIG_THRUSTMASTER_FF=m
1281CONFIG_ZEROPLUS_FF=m 1338CONFIG_ZEROPLUS_FF=m
1282CONFIG_USB_SUPPORT=y 1339CONFIG_USB_SUPPORT=y
@@ -1309,6 +1366,7 @@ CONFIG_USB_EHCI_HCD=y
1309# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1366# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1310# CONFIG_USB_EHCI_FSL is not set 1367# CONFIG_USB_EHCI_FSL is not set
1311# CONFIG_USB_EHCI_HCD_PPC_OF is not set 1368# CONFIG_USB_EHCI_HCD_PPC_OF is not set
1369# CONFIG_USB_OXU210HP_HCD is not set
1312# CONFIG_USB_ISP116X_HCD is not set 1370# CONFIG_USB_ISP116X_HCD is not set
1313# CONFIG_USB_ISP1760_HCD is not set 1371# CONFIG_USB_ISP1760_HCD is not set
1314CONFIG_USB_OHCI_HCD=y 1372CONFIG_USB_OHCI_HCD=y
@@ -1331,18 +1389,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1331# CONFIG_USB_TMC is not set 1389# CONFIG_USB_TMC is not set
1332 1390
1333# 1391#
1334# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1392# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1335# 1393#
1336 1394
1337# 1395#
1338# may also be needed; see USB_STORAGE Help for more information 1396# see USB_STORAGE Help for more information
1339# 1397#
1340CONFIG_USB_STORAGE=y 1398CONFIG_USB_STORAGE=y
1341# CONFIG_USB_STORAGE_DEBUG is not set 1399# CONFIG_USB_STORAGE_DEBUG is not set
1342# CONFIG_USB_STORAGE_DATAFAB is not set 1400# CONFIG_USB_STORAGE_DATAFAB is not set
1343# CONFIG_USB_STORAGE_FREECOM is not set 1401# CONFIG_USB_STORAGE_FREECOM is not set
1344# CONFIG_USB_STORAGE_ISD200 is not set 1402# CONFIG_USB_STORAGE_ISD200 is not set
1345# CONFIG_USB_STORAGE_DPCM is not set
1346# CONFIG_USB_STORAGE_USBAT is not set 1403# CONFIG_USB_STORAGE_USBAT is not set
1347# CONFIG_USB_STORAGE_SDDR09 is not set 1404# CONFIG_USB_STORAGE_SDDR09 is not set
1348# CONFIG_USB_STORAGE_SDDR55 is not set 1405# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1390,6 +1447,11 @@ CONFIG_USB_STORAGE=y
1390# CONFIG_USB_VST is not set 1447# CONFIG_USB_VST is not set
1391# CONFIG_USB_ATM is not set 1448# CONFIG_USB_ATM is not set
1392# CONFIG_USB_GADGET is not set 1449# CONFIG_USB_GADGET is not set
1450
1451#
1452# OTG and related infrastructure
1453#
1454# CONFIG_USB_GPIO_VBUS is not set
1393# CONFIG_UWB is not set 1455# CONFIG_UWB is not set
1394# CONFIG_MMC is not set 1456# CONFIG_MMC is not set
1395# CONFIG_MEMSTICK is not set 1457# CONFIG_MEMSTICK is not set
@@ -1477,6 +1539,7 @@ CONFIG_FS_POSIX_ACL=y
1477CONFIG_FILE_LOCKING=y 1539CONFIG_FILE_LOCKING=y
1478# CONFIG_XFS_FS is not set 1540# CONFIG_XFS_FS is not set
1479# CONFIG_OCFS2_FS is not set 1541# CONFIG_OCFS2_FS is not set
1542# CONFIG_BTRFS_FS is not set
1480CONFIG_DNOTIFY=y 1543CONFIG_DNOTIFY=y
1481CONFIG_INOTIFY=y 1544CONFIG_INOTIFY=y
1482CONFIG_INOTIFY_USER=y 1545CONFIG_INOTIFY_USER=y
@@ -1513,10 +1576,7 @@ CONFIG_TMPFS=y
1513# CONFIG_TMPFS_POSIX_ACL is not set 1576# CONFIG_TMPFS_POSIX_ACL is not set
1514# CONFIG_HUGETLB_PAGE is not set 1577# CONFIG_HUGETLB_PAGE is not set
1515# CONFIG_CONFIGFS_FS is not set 1578# CONFIG_CONFIGFS_FS is not set
1516 1579CONFIG_MISC_FILESYSTEMS=y
1517#
1518# Miscellaneous filesystems
1519#
1520# CONFIG_ADFS_FS is not set 1580# CONFIG_ADFS_FS is not set
1521# CONFIG_AFFS_FS is not set 1581# CONFIG_AFFS_FS is not set
1522# CONFIG_HFS_FS is not set 1582# CONFIG_HFS_FS is not set
@@ -1526,6 +1586,7 @@ CONFIG_TMPFS=y
1526# CONFIG_EFS_FS is not set 1586# CONFIG_EFS_FS is not set
1527# CONFIG_JFFS2_FS is not set 1587# CONFIG_JFFS2_FS is not set
1528# CONFIG_CRAMFS is not set 1588# CONFIG_CRAMFS is not set
1589# CONFIG_SQUASHFS is not set
1529# CONFIG_VXFS_FS is not set 1590# CONFIG_VXFS_FS is not set
1530# CONFIG_MINIX_FS is not set 1591# CONFIG_MINIX_FS is not set
1531# CONFIG_OMFS_FS is not set 1592# CONFIG_OMFS_FS is not set
@@ -1612,6 +1673,7 @@ CONFIG_NLS_UTF8=m
1612# Library routines 1673# Library routines
1613# 1674#
1614CONFIG_BITREVERSE=y 1675CONFIG_BITREVERSE=y
1676CONFIG_GENERIC_FIND_LAST_BIT=y
1615CONFIG_CRC_CCITT=m 1677CONFIG_CRC_CCITT=m
1616# CONFIG_CRC16 is not set 1678# CONFIG_CRC16 is not set
1617# CONFIG_CRC_T10DIF is not set 1679# CONFIG_CRC_T10DIF is not set
@@ -1662,6 +1724,7 @@ CONFIG_DEBUG_INFO=y
1662# CONFIG_DEBUG_MEMORY_INIT is not set 1724# CONFIG_DEBUG_MEMORY_INIT is not set
1663# CONFIG_DEBUG_LIST is not set 1725# CONFIG_DEBUG_LIST is not set
1664# CONFIG_DEBUG_SG is not set 1726# CONFIG_DEBUG_SG is not set
1727# CONFIG_DEBUG_NOTIFIERS is not set
1665# CONFIG_BOOT_PRINTK_DELAY is not set 1728# CONFIG_BOOT_PRINTK_DELAY is not set
1666# CONFIG_RCU_TORTURE_TEST is not set 1729# CONFIG_RCU_TORTURE_TEST is not set
1667# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1730# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1671,6 +1734,8 @@ CONFIG_DEBUG_INFO=y
1671# CONFIG_LATENCYTOP is not set 1734# CONFIG_LATENCYTOP is not set
1672CONFIG_SYSCTL_SYSCALL_CHECK=y 1735CONFIG_SYSCTL_SYSCALL_CHECK=y
1673CONFIG_HAVE_FUNCTION_TRACER=y 1736CONFIG_HAVE_FUNCTION_TRACER=y
1737CONFIG_HAVE_DYNAMIC_FTRACE=y
1738CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1674 1739
1675# 1740#
1676# Tracers 1741# Tracers
@@ -1680,11 +1745,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1680# CONFIG_SCHED_TRACER is not set 1745# CONFIG_SCHED_TRACER is not set
1681# CONFIG_CONTEXT_SWITCH_TRACER is not set 1746# CONFIG_CONTEXT_SWITCH_TRACER is not set
1682# CONFIG_BOOT_TRACER is not set 1747# CONFIG_BOOT_TRACER is not set
1748# CONFIG_TRACE_BRANCH_PROFILING is not set
1683# CONFIG_STACK_TRACER is not set 1749# CONFIG_STACK_TRACER is not set
1684# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1750# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1685# CONFIG_SAMPLES is not set 1751# CONFIG_SAMPLES is not set
1686CONFIG_HAVE_ARCH_KGDB=y 1752CONFIG_HAVE_ARCH_KGDB=y
1687# CONFIG_KGDB is not set 1753# CONFIG_KGDB is not set
1754CONFIG_PRINT_STACK_DEPTH=64
1688# CONFIG_DEBUG_STACKOVERFLOW is not set 1755# CONFIG_DEBUG_STACKOVERFLOW is not set
1689# CONFIG_DEBUG_STACK_USAGE is not set 1756# CONFIG_DEBUG_STACK_USAGE is not set
1690# CONFIG_DEBUG_PAGEALLOC is not set 1757# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1705,6 +1772,7 @@ CONFIG_SECURITY=y
1705# CONFIG_SECURITYFS is not set 1772# CONFIG_SECURITYFS is not set
1706CONFIG_SECURITY_NETWORK=y 1773CONFIG_SECURITY_NETWORK=y
1707# CONFIG_SECURITY_NETWORK_XFRM is not set 1774# CONFIG_SECURITY_NETWORK_XFRM is not set
1775# CONFIG_SECURITY_PATH is not set
1708# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1776# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1709# CONFIG_SECURITY_ROOTPLUG is not set 1777# CONFIG_SECURITY_ROOTPLUG is not set
1710CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1778CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
@@ -1715,11 +1783,16 @@ CONFIG_CRYPTO=y
1715# 1783#
1716# CONFIG_CRYPTO_FIPS is not set 1784# CONFIG_CRYPTO_FIPS is not set
1717CONFIG_CRYPTO_ALGAPI=y 1785CONFIG_CRYPTO_ALGAPI=y
1718CONFIG_CRYPTO_AEAD=y 1786CONFIG_CRYPTO_ALGAPI2=y
1787CONFIG_CRYPTO_AEAD=m
1788CONFIG_CRYPTO_AEAD2=y
1719CONFIG_CRYPTO_BLKCIPHER=y 1789CONFIG_CRYPTO_BLKCIPHER=y
1790CONFIG_CRYPTO_BLKCIPHER2=y
1720CONFIG_CRYPTO_HASH=y 1791CONFIG_CRYPTO_HASH=y
1721CONFIG_CRYPTO_RNG=y 1792CONFIG_CRYPTO_HASH2=y
1793CONFIG_CRYPTO_RNG2=y
1722CONFIG_CRYPTO_MANAGER=y 1794CONFIG_CRYPTO_MANAGER=y
1795CONFIG_CRYPTO_MANAGER2=y
1723# CONFIG_CRYPTO_GF128MUL is not set 1796# CONFIG_CRYPTO_GF128MUL is not set
1724CONFIG_CRYPTO_NULL=m 1797CONFIG_CRYPTO_NULL=m
1725# CONFIG_CRYPTO_CRYPTD is not set 1798# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
index 72854a10dfa1..bbdf4bfc4327 100644
--- a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
+++ b/arch/powerpc/configs/86xx/mpc8610_hpcd_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:28 2008 4# Mon Jan 26 15:36:24 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75CONFIG_IKCONFIG=y 75CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 76CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -115,7 +115,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 115CONFIG_SLUB=y
116# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +125,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 129CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 130# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +132,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 132# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 133# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 134# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 135CONFIG_BLOCK=y
139# CONFIG_LBD is not set 136# CONFIG_LBD is not set
140# CONFIG_BLK_DEV_IO_TRACE is not set 137# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
144 140
@@ -155,6 +151,10 @@ CONFIG_DEFAULT_DEADLINE=y
155# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="deadline" 152CONFIG_DEFAULT_IOSCHED="deadline"
157CONFIG_CLASSIC_RCU=y 153CONFIG_CLASSIC_RCU=y
154# CONFIG_TREE_RCU is not set
155# CONFIG_PREEMPT_RCU is not set
156# CONFIG_TREE_RCU_TRACE is not set
157# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 158# CONFIG_FREEZER is not set
159 159
160# 160#
@@ -194,6 +194,7 @@ CONFIG_MPIC=y
194# CONFIG_QUICC_ENGINE is not set 194# CONFIG_QUICC_ENGINE is not set
195CONFIG_FSL_ULI1575=y 195CONFIG_FSL_ULI1575=y
196# CONFIG_MPC8xxx_GPIO is not set 196# CONFIG_MPC8xxx_GPIO is not set
197# CONFIG_SIMPLE_GPIO is not set
197 198
198# 199#
199# Kernel options 200# Kernel options
@@ -213,7 +214,6 @@ CONFIG_PREEMPT_NONE=y
213# CONFIG_PREEMPT_VOLUNTARY is not set 214# CONFIG_PREEMPT_VOLUNTARY is not set
214# CONFIG_PREEMPT is not set 215# CONFIG_PREEMPT is not set
215CONFIG_BINFMT_ELF=y 216CONFIG_BINFMT_ELF=y
216# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
217# CONFIG_HAVE_AOUT is not set 217# CONFIG_HAVE_AOUT is not set
218# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
219# CONFIG_IOMMU_HELPER is not set 219# CONFIG_IOMMU_HELPER is not set
@@ -221,6 +221,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
221CONFIG_ARCH_HAS_WALK_MEMORY=y 221CONFIG_ARCH_HAS_WALK_MEMORY=y
222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
223# CONFIG_KEXEC is not set 223# CONFIG_KEXEC is not set
224# CONFIG_CRASH_DUMP is not set
224CONFIG_ARCH_FLATMEM_ENABLE=y 225CONFIG_ARCH_FLATMEM_ENABLE=y
225CONFIG_ARCH_POPULATES_NODE_MAP=y 226CONFIG_ARCH_POPULATES_NODE_MAP=y
226CONFIG_SELECT_MEMORY_MODEL=y 227CONFIG_SELECT_MEMORY_MODEL=y
@@ -232,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
232CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
233CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
235# CONFIG_RESOURCES_64BIT is not set
236# CONFIG_PHYS_ADDR_T_64BIT is not set 236# CONFIG_PHYS_ADDR_T_64BIT is not set
237CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=12 244CONFIG_FORCE_MAX_ZONEORDER=12
242CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
243# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -265,6 +268,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
265# CONFIG_PCI_MSI is not set 268# CONFIG_PCI_MSI is not set
266# CONFIG_PCI_LEGACY is not set 269# CONFIG_PCI_LEGACY is not set
267CONFIG_PCI_DEBUG=y 270CONFIG_PCI_DEBUG=y
271# CONFIG_PCI_STUB is not set
268# CONFIG_PCCARD is not set 272# CONFIG_PCCARD is not set
269# CONFIG_HOTPLUG_PCI is not set 273# CONFIG_HOTPLUG_PCI is not set
270# CONFIG_HAS_RAPIDIO is not set 274# CONFIG_HAS_RAPIDIO is not set
@@ -287,6 +291,7 @@ CONFIG_NET=y
287# 291#
288# Networking options 292# Networking options
289# 293#
294CONFIG_COMPAT_NET_DEV_OPS=y
290CONFIG_PACKET=y 295CONFIG_PACKET=y
291# CONFIG_PACKET_MMAP is not set 296# CONFIG_PACKET_MMAP is not set
292CONFIG_UNIX=y 297CONFIG_UNIX=y
@@ -360,6 +365,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
360# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
361# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
362# CONFIG_NET_SCHED is not set 367# CONFIG_NET_SCHED is not set
368# CONFIG_DCB is not set
363 369
364# 370#
365# Network testing 371# Network testing
@@ -375,8 +381,9 @@ CONFIG_WIRELESS=y
375# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
376CONFIG_WIRELESS_OLD_REGULATORY=y 382CONFIG_WIRELESS_OLD_REGULATORY=y
377# CONFIG_WIRELESS_EXT is not set 383# CONFIG_WIRELESS_EXT is not set
384# CONFIG_LIB80211 is not set
378# CONFIG_MAC80211 is not set 385# CONFIG_MAC80211 is not set
379# CONFIG_IEEE80211 is not set 386# CONFIG_WIMAX is not set
380# CONFIG_RFKILL is not set 387# CONFIG_RFKILL is not set
381# CONFIG_NET_9P is not set 388# CONFIG_NET_9P is not set
382 389
@@ -401,6 +408,7 @@ CONFIG_MTD=y
401# CONFIG_MTD_DEBUG is not set 408# CONFIG_MTD_DEBUG is not set
402# CONFIG_MTD_CONCAT is not set 409# CONFIG_MTD_CONCAT is not set
403CONFIG_MTD_PARTITIONS=y 410CONFIG_MTD_PARTITIONS=y
411# CONFIG_MTD_TESTS is not set
404# CONFIG_MTD_REDBOOT_PARTS is not set 412# CONFIG_MTD_REDBOOT_PARTS is not set
405CONFIG_MTD_CMDLINE_PARTS=y 413CONFIG_MTD_CMDLINE_PARTS=y
406# CONFIG_MTD_OF_PARTS is not set 414# CONFIG_MTD_OF_PARTS is not set
@@ -481,6 +489,12 @@ CONFIG_MTD_NAND_FSL_ELBC=y
481# CONFIG_MTD_ONENAND is not set 489# CONFIG_MTD_ONENAND is not set
482 490
483# 491#
492# LPDDR flash memory drivers
493#
494# CONFIG_MTD_LPDDR is not set
495# CONFIG_MTD_QINFO_PROBE is not set
496
497#
484# UBI - Unsorted block images 498# UBI - Unsorted block images
485# 499#
486# CONFIG_MTD_UBI is not set 500# CONFIG_MTD_UBI is not set
@@ -510,8 +524,10 @@ CONFIG_MISC_DEVICES=y
510# CONFIG_EEPROM_93CX6 is not set 524# CONFIG_EEPROM_93CX6 is not set
511# CONFIG_SGI_IOC4 is not set 525# CONFIG_SGI_IOC4 is not set
512# CONFIG_TIFM_CORE is not set 526# CONFIG_TIFM_CORE is not set
527# CONFIG_ICS932S401 is not set
513# CONFIG_ENCLOSURE_SERVICES is not set 528# CONFIG_ENCLOSURE_SERVICES is not set
514# CONFIG_HP_ILO is not set 529# CONFIG_HP_ILO is not set
530# CONFIG_C2PORT is not set
515CONFIG_HAVE_IDE=y 531CONFIG_HAVE_IDE=y
516CONFIG_IDE=y 532CONFIG_IDE=y
517 533
@@ -524,7 +540,6 @@ CONFIG_IDE_GD_ATA=y
524# CONFIG_IDE_GD_ATAPI is not set 540# CONFIG_IDE_GD_ATAPI is not set
525# CONFIG_BLK_DEV_IDECD is not set 541# CONFIG_BLK_DEV_IDECD is not set
526# CONFIG_BLK_DEV_IDETAPE is not set 542# CONFIG_BLK_DEV_IDETAPE is not set
527# CONFIG_BLK_DEV_IDESCSI is not set
528# CONFIG_IDE_TASK_IOCTL is not set 543# CONFIG_IDE_TASK_IOCTL is not set
529CONFIG_IDE_PROC_FS=y 544CONFIG_IDE_PROC_FS=y
530 545
@@ -549,6 +564,7 @@ CONFIG_IDE_PROC_FS=y
549# CONFIG_BLK_DEV_JMICRON is not set 564# CONFIG_BLK_DEV_JMICRON is not set
550# CONFIG_BLK_DEV_SC1200 is not set 565# CONFIG_BLK_DEV_SC1200 is not set
551# CONFIG_BLK_DEV_PIIX is not set 566# CONFIG_BLK_DEV_PIIX is not set
567# CONFIG_BLK_DEV_IT8172 is not set
552# CONFIG_BLK_DEV_IT8213 is not set 568# CONFIG_BLK_DEV_IT8213 is not set
553# CONFIG_BLK_DEV_IT821X is not set 569# CONFIG_BLK_DEV_IT821X is not set
554# CONFIG_BLK_DEV_NS87415 is not set 570# CONFIG_BLK_DEV_NS87415 is not set
@@ -618,6 +634,8 @@ CONFIG_SCSI_LOWLEVEL=y
618# CONFIG_MEGARAID_SAS is not set 634# CONFIG_MEGARAID_SAS is not set
619# CONFIG_SCSI_HPTIOP is not set 635# CONFIG_SCSI_HPTIOP is not set
620# CONFIG_SCSI_BUSLOGIC is not set 636# CONFIG_SCSI_BUSLOGIC is not set
637# CONFIG_LIBFC is not set
638# CONFIG_FCOE is not set
621# CONFIG_SCSI_DMX3191D is not set 639# CONFIG_SCSI_DMX3191D is not set
622# CONFIG_SCSI_EATA is not set 640# CONFIG_SCSI_EATA is not set
623# CONFIG_SCSI_FUTURE_DOMAIN is not set 641# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -757,6 +775,10 @@ CONFIG_ULI526X=y
757# CONFIG_WLAN_PRE80211 is not set 775# CONFIG_WLAN_PRE80211 is not set
758# CONFIG_WLAN_80211 is not set 776# CONFIG_WLAN_80211 is not set
759# CONFIG_IWLWIFI_LEDS is not set 777# CONFIG_IWLWIFI_LEDS is not set
778
779#
780# Enable WiMAX (Networking options) to see the WiMAX drivers
781#
760# CONFIG_WAN is not set 782# CONFIG_WAN is not set
761# CONFIG_FDDI is not set 783# CONFIG_FDDI is not set
762# CONFIG_HIPPI is not set 784# CONFIG_HIPPI is not set
@@ -841,7 +863,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
841# CONFIG_SERIAL_JSM is not set 863# CONFIG_SERIAL_JSM is not set
842# CONFIG_SERIAL_OF_PLATFORM is not set 864# CONFIG_SERIAL_OF_PLATFORM is not set
843CONFIG_UNIX98_PTYS=y 865CONFIG_UNIX98_PTYS=y
866# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
844# CONFIG_LEGACY_PTYS is not set 867# CONFIG_LEGACY_PTYS is not set
868# CONFIG_HVC_UDBG is not set
845# CONFIG_IPMI_HANDLER is not set 869# CONFIG_IPMI_HANDLER is not set
846# CONFIG_HW_RANDOM is not set 870# CONFIG_HW_RANDOM is not set
847# CONFIG_NVRAM is not set 871# CONFIG_NVRAM is not set
@@ -905,8 +929,8 @@ CONFIG_I2C_MPC=y
905# Miscellaneous I2C Chip support 929# Miscellaneous I2C Chip support
906# 930#
907# CONFIG_DS1682 is not set 931# CONFIG_DS1682 is not set
908# CONFIG_AT24 is not set 932# CONFIG_EEPROM_AT24 is not set
909# CONFIG_SENSORS_EEPROM is not set 933# CONFIG_EEPROM_LEGACY is not set
910# CONFIG_SENSORS_PCF8574 is not set 934# CONFIG_SENSORS_PCF8574 is not set
911# CONFIG_PCF8575 is not set 935# CONFIG_PCF8575 is not set
912# CONFIG_SENSORS_PCA9539 is not set 936# CONFIG_SENSORS_PCA9539 is not set
@@ -926,11 +950,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
926# CONFIG_THERMAL is not set 950# CONFIG_THERMAL is not set
927# CONFIG_THERMAL_HWMON is not set 951# CONFIG_THERMAL_HWMON is not set
928# CONFIG_WATCHDOG is not set 952# CONFIG_WATCHDOG is not set
953CONFIG_SSB_POSSIBLE=y
929 954
930# 955#
931# Sonics Silicon Backplane 956# Sonics Silicon Backplane
932# 957#
933CONFIG_SSB_POSSIBLE=y
934# CONFIG_SSB is not set 958# CONFIG_SSB is not set
935 959
936# 960#
@@ -939,18 +963,13 @@ CONFIG_SSB_POSSIBLE=y
939# CONFIG_MFD_CORE is not set 963# CONFIG_MFD_CORE is not set
940# CONFIG_MFD_SM501 is not set 964# CONFIG_MFD_SM501 is not set
941# CONFIG_HTC_PASIC3 is not set 965# CONFIG_HTC_PASIC3 is not set
966# CONFIG_TWL4030_CORE is not set
942# CONFIG_MFD_TMIO is not set 967# CONFIG_MFD_TMIO is not set
943# CONFIG_PMIC_DA903X is not set 968# CONFIG_PMIC_DA903X is not set
944# CONFIG_MFD_WM8400 is not set 969# CONFIG_MFD_WM8400 is not set
945# CONFIG_MFD_WM8350_I2C is not set 970# CONFIG_MFD_WM8350_I2C is not set
946 971# CONFIG_MFD_PCF50633 is not set
947#
948# Voltage and Current regulators
949#
950# CONFIG_REGULATOR is not set 972# CONFIG_REGULATOR is not set
951# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
952# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
953# CONFIG_REGULATOR_BQ24022 is not set
954 973
955# 974#
956# Multimedia devices 975# Multimedia devices
@@ -1029,6 +1048,7 @@ CONFIG_FB_FSL_DIU=y
1029# CONFIG_FB_IBM_GXT4500 is not set 1048# CONFIG_FB_IBM_GXT4500 is not set
1030# CONFIG_FB_VIRTUAL is not set 1049# CONFIG_FB_VIRTUAL is not set
1031# CONFIG_FB_METRONOME is not set 1050# CONFIG_FB_METRONOME is not set
1051# CONFIG_FB_MB862XX is not set
1032# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1052# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1033 1053
1034# 1054#
@@ -1054,6 +1074,7 @@ CONFIG_SND_OSSEMUL=y
1054CONFIG_SND_MIXER_OSS=y 1074CONFIG_SND_MIXER_OSS=y
1055CONFIG_SND_PCM_OSS=y 1075CONFIG_SND_PCM_OSS=y
1056CONFIG_SND_PCM_OSS_PLUGINS=y 1076CONFIG_SND_PCM_OSS_PLUGINS=y
1077# CONFIG_SND_HRTIMER is not set
1057# CONFIG_SND_DYNAMIC_MINORS is not set 1078# CONFIG_SND_DYNAMIC_MINORS is not set
1058# CONFIG_SND_SUPPORT_OLD_API is not set 1079# CONFIG_SND_SUPPORT_OLD_API is not set
1059CONFIG_SND_VERBOSE_PROCFS=y 1080CONFIG_SND_VERBOSE_PROCFS=y
@@ -1130,6 +1151,7 @@ CONFIG_SND_PPC=y
1130CONFIG_SND_SOC=y 1151CONFIG_SND_SOC=y
1131CONFIG_SND_SOC_MPC8610=y 1152CONFIG_SND_SOC_MPC8610=y
1132CONFIG_SND_SOC_MPC8610_HPCD=y 1153CONFIG_SND_SOC_MPC8610_HPCD=y
1154CONFIG_SND_SOC_I2C_AND_SPI=y
1133# CONFIG_SND_SOC_ALL_CODECS is not set 1155# CONFIG_SND_SOC_ALL_CODECS is not set
1134CONFIG_SND_SOC_CS4270=y 1156CONFIG_SND_SOC_CS4270=y
1135CONFIG_SND_SOC_CS4270_VD33_ERRATA=y 1157CONFIG_SND_SOC_CS4270_VD33_ERRATA=y
@@ -1157,9 +1179,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1157# 1179#
1158 1180
1159# 1181#
1160# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1182# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1161# 1183#
1162# CONFIG_USB_GADGET is not set 1184# CONFIG_USB_GADGET is not set
1185
1186#
1187# OTG and related infrastructure
1188#
1163# CONFIG_UWB is not set 1189# CONFIG_UWB is not set
1164# CONFIG_MMC is not set 1190# CONFIG_MMC is not set
1165# CONFIG_MEMSTICK is not set 1191# CONFIG_MEMSTICK is not set
@@ -1197,6 +1223,7 @@ CONFIG_RTC_INTF_DEV=y
1197# CONFIG_RTC_DRV_M41T80 is not set 1223# CONFIG_RTC_DRV_M41T80 is not set
1198# CONFIG_RTC_DRV_S35390A is not set 1224# CONFIG_RTC_DRV_S35390A is not set
1199# CONFIG_RTC_DRV_FM3130 is not set 1225# CONFIG_RTC_DRV_FM3130 is not set
1226# CONFIG_RTC_DRV_RX8581 is not set
1200 1227
1201# 1228#
1202# SPI RTC drivers 1229# SPI RTC drivers
@@ -1244,6 +1271,7 @@ CONFIG_FS_MBCACHE=y
1244CONFIG_FILE_LOCKING=y 1271CONFIG_FILE_LOCKING=y
1245# CONFIG_XFS_FS is not set 1272# CONFIG_XFS_FS is not set
1246# CONFIG_OCFS2_FS is not set 1273# CONFIG_OCFS2_FS is not set
1274# CONFIG_BTRFS_FS is not set
1247# CONFIG_DNOTIFY is not set 1275# CONFIG_DNOTIFY is not set
1248# CONFIG_INOTIFY is not set 1276# CONFIG_INOTIFY is not set
1249# CONFIG_QUOTA is not set 1277# CONFIG_QUOTA is not set
@@ -1276,10 +1304,7 @@ CONFIG_TMPFS=y
1276# CONFIG_TMPFS_POSIX_ACL is not set 1304# CONFIG_TMPFS_POSIX_ACL is not set
1277# CONFIG_HUGETLB_PAGE is not set 1305# CONFIG_HUGETLB_PAGE is not set
1278# CONFIG_CONFIGFS_FS is not set 1306# CONFIG_CONFIGFS_FS is not set
1279 1307CONFIG_MISC_FILESYSTEMS=y
1280#
1281# Miscellaneous filesystems
1282#
1283# CONFIG_ADFS_FS is not set 1308# CONFIG_ADFS_FS is not set
1284# CONFIG_AFFS_FS is not set 1309# CONFIG_AFFS_FS is not set
1285# CONFIG_HFS_FS is not set 1310# CONFIG_HFS_FS is not set
@@ -1289,6 +1314,7 @@ CONFIG_TMPFS=y
1289# CONFIG_EFS_FS is not set 1314# CONFIG_EFS_FS is not set
1290# CONFIG_JFFS2_FS is not set 1315# CONFIG_JFFS2_FS is not set
1291# CONFIG_CRAMFS is not set 1316# CONFIG_CRAMFS is not set
1317# CONFIG_SQUASHFS is not set
1292# CONFIG_VXFS_FS is not set 1318# CONFIG_VXFS_FS is not set
1293# CONFIG_MINIX_FS is not set 1319# CONFIG_MINIX_FS is not set
1294# CONFIG_OMFS_FS is not set 1320# CONFIG_OMFS_FS is not set
@@ -1388,6 +1414,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1388# Library routines 1414# Library routines
1389# 1415#
1390CONFIG_BITREVERSE=y 1416CONFIG_BITREVERSE=y
1417CONFIG_GENERIC_FIND_LAST_BIT=y
1391# CONFIG_CRC_CCITT is not set 1418# CONFIG_CRC_CCITT is not set
1392# CONFIG_CRC16 is not set 1419# CONFIG_CRC16 is not set
1393CONFIG_CRC_T10DIF=y 1420CONFIG_CRC_T10DIF=y
@@ -1438,6 +1465,7 @@ CONFIG_DEBUG_INFO=y
1438# CONFIG_DEBUG_MEMORY_INIT is not set 1465# CONFIG_DEBUG_MEMORY_INIT is not set
1439# CONFIG_DEBUG_LIST is not set 1466# CONFIG_DEBUG_LIST is not set
1440# CONFIG_DEBUG_SG is not set 1467# CONFIG_DEBUG_SG is not set
1468# CONFIG_DEBUG_NOTIFIERS is not set
1441# CONFIG_BOOT_PRINTK_DELAY is not set 1469# CONFIG_BOOT_PRINTK_DELAY is not set
1442# CONFIG_RCU_TORTURE_TEST is not set 1470# CONFIG_RCU_TORTURE_TEST is not set
1443# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1471# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1447,6 +1475,8 @@ CONFIG_DEBUG_INFO=y
1447# CONFIG_LATENCYTOP is not set 1475# CONFIG_LATENCYTOP is not set
1448CONFIG_SYSCTL_SYSCALL_CHECK=y 1476CONFIG_SYSCTL_SYSCALL_CHECK=y
1449CONFIG_HAVE_FUNCTION_TRACER=y 1477CONFIG_HAVE_FUNCTION_TRACER=y
1478CONFIG_HAVE_DYNAMIC_FTRACE=y
1479CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1450 1480
1451# 1481#
1452# Tracers 1482# Tracers
@@ -1455,11 +1485,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1455# CONFIG_SCHED_TRACER is not set 1485# CONFIG_SCHED_TRACER is not set
1456# CONFIG_CONTEXT_SWITCH_TRACER is not set 1486# CONFIG_CONTEXT_SWITCH_TRACER is not set
1457# CONFIG_BOOT_TRACER is not set 1487# CONFIG_BOOT_TRACER is not set
1488# CONFIG_TRACE_BRANCH_PROFILING is not set
1458# CONFIG_STACK_TRACER is not set 1489# CONFIG_STACK_TRACER is not set
1459# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1490# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1460# CONFIG_SAMPLES is not set 1491# CONFIG_SAMPLES is not set
1461CONFIG_HAVE_ARCH_KGDB=y 1492CONFIG_HAVE_ARCH_KGDB=y
1462# CONFIG_KGDB is not set 1493# CONFIG_KGDB is not set
1494CONFIG_PRINT_STACK_DEPTH=64
1463# CONFIG_DEBUG_STACKOVERFLOW is not set 1495# CONFIG_DEBUG_STACKOVERFLOW is not set
1464# CONFIG_DEBUG_STACK_USAGE is not set 1496# CONFIG_DEBUG_STACK_USAGE is not set
1465# CONFIG_DEBUG_PAGEALLOC is not set 1497# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1486,6 +1518,7 @@ CONFIG_CRYPTO=y
1486# 1518#
1487# CONFIG_CRYPTO_FIPS is not set 1519# CONFIG_CRYPTO_FIPS is not set
1488# CONFIG_CRYPTO_MANAGER is not set 1520# CONFIG_CRYPTO_MANAGER is not set
1521# CONFIG_CRYPTO_MANAGER2 is not set
1489# CONFIG_CRYPTO_GF128MUL is not set 1522# CONFIG_CRYPTO_GF128MUL is not set
1490# CONFIG_CRYPTO_NULL is not set 1523# CONFIG_CRYPTO_NULL is not set
1491# CONFIG_CRYPTO_CRYPTD is not set 1524# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
index 41220ece603d..92acfdf3540a 100644
--- a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
+++ b/arch/powerpc/configs/86xx/mpc8641_hpcn_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:29 2008 4# Mon Jan 26 15:36:25 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -45,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 45CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
51CONFIG_OF=y 51CONFIG_OF=y
@@ -78,12 +78,12 @@ CONFIG_AUDIT=y
78CONFIG_IKCONFIG=y 78CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 79CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
83# CONFIG_FAIR_GROUP_SCHED is not set 82# CONFIG_FAIR_GROUP_SCHED is not set
84# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -96,6 +96,7 @@ CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 98CONFIG_KALLSYMS_ALL=y
99CONFIG_KALLSYMS_STRIP_GENERATED=y
99CONFIG_KALLSYMS_EXTRA_PASS=y 100CONFIG_KALLSYMS_EXTRA_PASS=y
100CONFIG_HOTPLUG=y 101CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 102CONFIG_PRINTK=y
@@ -118,7 +119,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 119CONFIG_SLUB=y
119# CONFIG_SLOB is not set 120# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 121# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 122CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 123# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -130,7 +130,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
133# CONFIG_TINY_SHMEM is not set
134CONFIG_BASE_SMALL=0 133CONFIG_BASE_SMALL=0
135CONFIG_MODULES=y 134CONFIG_MODULES=y
136# CONFIG_MODULE_FORCE_LOAD is not set 135# CONFIG_MODULE_FORCE_LOAD is not set
@@ -138,12 +137,10 @@ CONFIG_MODULE_UNLOAD=y
138CONFIG_MODULE_FORCE_UNLOAD=y 137CONFIG_MODULE_FORCE_UNLOAD=y
139CONFIG_MODVERSIONS=y 138CONFIG_MODVERSIONS=y
140# CONFIG_MODULE_SRCVERSION_ALL is not set 139# CONFIG_MODULE_SRCVERSION_ALL is not set
141CONFIG_KMOD=y
142CONFIG_STOP_MACHINE=y 140CONFIG_STOP_MACHINE=y
143CONFIG_BLOCK=y 141CONFIG_BLOCK=y
144CONFIG_LBD=y 142CONFIG_LBD=y
145# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
146# CONFIG_LSF is not set
147# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
149 146
@@ -160,6 +157,10 @@ CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 158CONFIG_DEFAULT_IOSCHED="cfq"
162CONFIG_CLASSIC_RCU=y 159CONFIG_CLASSIC_RCU=y
160# CONFIG_TREE_RCU is not set
161# CONFIG_PREEMPT_RCU is not set
162# CONFIG_TREE_RCU_TRACE is not set
163# CONFIG_PREEMPT_RCU_TRACE is not set
163# CONFIG_FREEZER is not set 164# CONFIG_FREEZER is not set
164 165
165# 166#
@@ -198,6 +199,7 @@ CONFIG_PPC_I8259=y
198# CONFIG_QUICC_ENGINE is not set 199# CONFIG_QUICC_ENGINE is not set
199CONFIG_FSL_ULI1575=y 200CONFIG_FSL_ULI1575=y
200# CONFIG_MPC8xxx_GPIO is not set 201# CONFIG_MPC8xxx_GPIO is not set
202# CONFIG_SIMPLE_GPIO is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228# CONFIG_IRQ_ALL_CPUS is not set 231# CONFIG_IRQ_ALL_CPUS is not set
229CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -237,12 +240,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 242CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 243# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
247CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
248# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -268,6 +273,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
268# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
269# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
270# CONFIG_PCI_DEBUG is not set 275# CONFIG_PCI_DEBUG is not set
276# CONFIG_PCI_STUB is not set
271# CONFIG_PCCARD is not set 277# CONFIG_PCCARD is not set
272# CONFIG_HOTPLUG_PCI is not set 278# CONFIG_HOTPLUG_PCI is not set
273CONFIG_HAS_RAPIDIO=y 279CONFIG_HAS_RAPIDIO=y
@@ -291,6 +297,7 @@ CONFIG_NET=y
291# 297#
292# Networking options 298# Networking options
293# 299#
300CONFIG_COMPAT_NET_DEV_OPS=y
294CONFIG_PACKET=y 301CONFIG_PACKET=y
295# CONFIG_PACKET_MMAP is not set 302# CONFIG_PACKET_MMAP is not set
296CONFIG_UNIX=y 303CONFIG_UNIX=y
@@ -379,6 +386,7 @@ CONFIG_SCTP_HMAC_MD5=y
379# CONFIG_ECONET is not set 386# CONFIG_ECONET is not set
380# CONFIG_WAN_ROUTER is not set 387# CONFIG_WAN_ROUTER is not set
381# CONFIG_NET_SCHED is not set 388# CONFIG_NET_SCHED is not set
389# CONFIG_DCB is not set
382 390
383# 391#
384# Network testing 392# Network testing
@@ -395,8 +403,9 @@ CONFIG_WIRELESS=y
395# CONFIG_CFG80211 is not set 403# CONFIG_CFG80211 is not set
396CONFIG_WIRELESS_OLD_REGULATORY=y 404CONFIG_WIRELESS_OLD_REGULATORY=y
397# CONFIG_WIRELESS_EXT is not set 405# CONFIG_WIRELESS_EXT is not set
406# CONFIG_LIB80211 is not set
398# CONFIG_MAC80211 is not set 407# CONFIG_MAC80211 is not set
399# CONFIG_IEEE80211 is not set 408# CONFIG_WIMAX is not set
400# CONFIG_RFKILL is not set 409# CONFIG_RFKILL is not set
401# CONFIG_NET_9P is not set 410# CONFIG_NET_9P is not set
402 411
@@ -445,8 +454,10 @@ CONFIG_MISC_DEVICES=y
445# CONFIG_EEPROM_93CX6 is not set 454# CONFIG_EEPROM_93CX6 is not set
446# CONFIG_SGI_IOC4 is not set 455# CONFIG_SGI_IOC4 is not set
447# CONFIG_TIFM_CORE is not set 456# CONFIG_TIFM_CORE is not set
457# CONFIG_ICS932S401 is not set
448# CONFIG_ENCLOSURE_SERVICES is not set 458# CONFIG_ENCLOSURE_SERVICES is not set
449# CONFIG_HP_ILO is not set 459# CONFIG_HP_ILO is not set
460# CONFIG_C2PORT is not set
450CONFIG_HAVE_IDE=y 461CONFIG_HAVE_IDE=y
451# CONFIG_IDE is not set 462# CONFIG_IDE is not set
452 463
@@ -490,6 +501,7 @@ CONFIG_SCSI_WAIT_SCAN=m
490# CONFIG_SCSI_SRP_ATTRS is not set 501# CONFIG_SCSI_SRP_ATTRS is not set
491CONFIG_SCSI_LOWLEVEL=y 502CONFIG_SCSI_LOWLEVEL=y
492# CONFIG_ISCSI_TCP is not set 503# CONFIG_ISCSI_TCP is not set
504# CONFIG_SCSI_CXGB3_ISCSI is not set
493# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 505# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
494# CONFIG_SCSI_3W_9XXX is not set 506# CONFIG_SCSI_3W_9XXX is not set
495# CONFIG_SCSI_ACARD is not set 507# CONFIG_SCSI_ACARD is not set
@@ -506,6 +518,8 @@ CONFIG_SCSI_LOWLEVEL=y
506# CONFIG_MEGARAID_SAS is not set 518# CONFIG_MEGARAID_SAS is not set
507# CONFIG_SCSI_HPTIOP is not set 519# CONFIG_SCSI_HPTIOP is not set
508# CONFIG_SCSI_BUSLOGIC is not set 520# CONFIG_SCSI_BUSLOGIC is not set
521# CONFIG_LIBFC is not set
522# CONFIG_FCOE is not set
509# CONFIG_SCSI_DMX3191D is not set 523# CONFIG_SCSI_DMX3191D is not set
510# CONFIG_SCSI_EATA is not set 524# CONFIG_SCSI_EATA is not set
511# CONFIG_SCSI_FUTURE_DOMAIN is not set 525# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -625,6 +639,9 @@ CONFIG_VITESSE_PHY=y
625# CONFIG_BROADCOM_PHY is not set 639# CONFIG_BROADCOM_PHY is not set
626# CONFIG_ICPLUS_PHY is not set 640# CONFIG_ICPLUS_PHY is not set
627# CONFIG_REALTEK_PHY is not set 641# CONFIG_REALTEK_PHY is not set
642# CONFIG_NATIONAL_PHY is not set
643# CONFIG_STE10XP is not set
644# CONFIG_LSI_ET1011C_PHY is not set
628# CONFIG_FIXED_PHY is not set 645# CONFIG_FIXED_PHY is not set
629# CONFIG_MDIO_BITBANG is not set 646# CONFIG_MDIO_BITBANG is not set
630CONFIG_NET_ETHERNET=y 647CONFIG_NET_ETHERNET=y
@@ -670,6 +687,7 @@ CONFIG_GIANFAR=y
670# CONFIG_JME is not set 687# CONFIG_JME is not set
671CONFIG_NETDEV_10000=y 688CONFIG_NETDEV_10000=y
672# CONFIG_CHELSIO_T1 is not set 689# CONFIG_CHELSIO_T1 is not set
690CONFIG_CHELSIO_T3_DEPENDS=y
673# CONFIG_CHELSIO_T3 is not set 691# CONFIG_CHELSIO_T3 is not set
674# CONFIG_ENIC is not set 692# CONFIG_ENIC is not set
675# CONFIG_IXGBE is not set 693# CONFIG_IXGBE is not set
@@ -694,6 +712,10 @@ CONFIG_NETDEV_10000=y
694# CONFIG_IWLWIFI_LEDS is not set 712# CONFIG_IWLWIFI_LEDS is not set
695 713
696# 714#
715# Enable WiMAX (Networking options) to see the WiMAX drivers
716#
717
718#
697# USB Network Adapters 719# USB Network Adapters
698# 720#
699# CONFIG_USB_CATC is not set 721# CONFIG_USB_CATC is not set
@@ -785,8 +807,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
785# CONFIG_SERIAL_JSM is not set 807# CONFIG_SERIAL_JSM is not set
786# CONFIG_SERIAL_OF_PLATFORM is not set 808# CONFIG_SERIAL_OF_PLATFORM is not set
787CONFIG_UNIX98_PTYS=y 809CONFIG_UNIX98_PTYS=y
810# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
788CONFIG_LEGACY_PTYS=y 811CONFIG_LEGACY_PTYS=y
789CONFIG_LEGACY_PTY_COUNT=256 812CONFIG_LEGACY_PTY_COUNT=256
813# CONFIG_HVC_UDBG is not set
790# CONFIG_IPMI_HANDLER is not set 814# CONFIG_IPMI_HANDLER is not set
791# CONFIG_HW_RANDOM is not set 815# CONFIG_HW_RANDOM is not set
792CONFIG_NVRAM=y 816CONFIG_NVRAM=y
@@ -851,8 +875,8 @@ CONFIG_I2C_MPC=y
851# Miscellaneous I2C Chip support 875# Miscellaneous I2C Chip support
852# 876#
853# CONFIG_DS1682 is not set 877# CONFIG_DS1682 is not set
854# CONFIG_AT24 is not set 878# CONFIG_EEPROM_AT24 is not set
855CONFIG_SENSORS_EEPROM=y 879CONFIG_EEPROM_LEGACY=y
856# CONFIG_SENSORS_PCF8574 is not set 880# CONFIG_SENSORS_PCF8574 is not set
857# CONFIG_PCF8575 is not set 881# CONFIG_PCF8575 is not set
858# CONFIG_SENSORS_PCA9539 is not set 882# CONFIG_SENSORS_PCA9539 is not set
@@ -872,11 +896,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
872# CONFIG_THERMAL is not set 896# CONFIG_THERMAL is not set
873# CONFIG_THERMAL_HWMON is not set 897# CONFIG_THERMAL_HWMON is not set
874# CONFIG_WATCHDOG is not set 898# CONFIG_WATCHDOG is not set
899CONFIG_SSB_POSSIBLE=y
875 900
876# 901#
877# Sonics Silicon Backplane 902# Sonics Silicon Backplane
878# 903#
879CONFIG_SSB_POSSIBLE=y
880# CONFIG_SSB is not set 904# CONFIG_SSB is not set
881 905
882# 906#
@@ -885,18 +909,13 @@ CONFIG_SSB_POSSIBLE=y
885# CONFIG_MFD_CORE is not set 909# CONFIG_MFD_CORE is not set
886# CONFIG_MFD_SM501 is not set 910# CONFIG_MFD_SM501 is not set
887# CONFIG_HTC_PASIC3 is not set 911# CONFIG_HTC_PASIC3 is not set
912# CONFIG_TWL4030_CORE is not set
888# CONFIG_MFD_TMIO is not set 913# CONFIG_MFD_TMIO is not set
889# CONFIG_PMIC_DA903X is not set 914# CONFIG_PMIC_DA903X is not set
890# CONFIG_MFD_WM8400 is not set 915# CONFIG_MFD_WM8400 is not set
891# CONFIG_MFD_WM8350_I2C is not set 916# CONFIG_MFD_WM8350_I2C is not set
892 917# CONFIG_MFD_PCF50633 is not set
893#
894# Voltage and Current regulators
895#
896# CONFIG_REGULATOR is not set 918# CONFIG_REGULATOR is not set
897# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
898# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
899# CONFIG_REGULATOR_BQ24022 is not set
900 919
901# 920#
902# Multimedia devices 921# Multimedia devices
@@ -923,6 +942,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
923CONFIG_MEDIA_TUNER_MT20XX=m 942CONFIG_MEDIA_TUNER_MT20XX=m
924CONFIG_MEDIA_TUNER_XC2028=m 943CONFIG_MEDIA_TUNER_XC2028=m
925CONFIG_MEDIA_TUNER_XC5000=m 944CONFIG_MEDIA_TUNER_XC5000=m
945# CONFIG_DVB_DYNAMIC_MINORS is not set
926CONFIG_DVB_CAPTURE_DRIVERS=y 946CONFIG_DVB_CAPTURE_DRIVERS=y
927 947
928# 948#
@@ -968,6 +988,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
968# CONFIG_DVB_FE_CUSTOMISE is not set 988# CONFIG_DVB_FE_CUSTOMISE is not set
969 989
970# 990#
991# Multistandard (satellite) frontends
992#
993# CONFIG_DVB_STB0899 is not set
994# CONFIG_DVB_STB6100 is not set
995
996#
971# DVB-S (satellite) frontends 997# DVB-S (satellite) frontends
972# 998#
973# CONFIG_DVB_CX24110 is not set 999# CONFIG_DVB_CX24110 is not set
@@ -979,8 +1005,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
979# CONFIG_DVB_STV0299 is not set 1005# CONFIG_DVB_STV0299 is not set
980# CONFIG_DVB_TDA8083 is not set 1006# CONFIG_DVB_TDA8083 is not set
981# CONFIG_DVB_TDA10086 is not set 1007# CONFIG_DVB_TDA10086 is not set
1008# CONFIG_DVB_TDA8261 is not set
982# CONFIG_DVB_VES1X93 is not set 1009# CONFIG_DVB_VES1X93 is not set
983# CONFIG_DVB_TUNER_ITD1000 is not set 1010# CONFIG_DVB_TUNER_ITD1000 is not set
1011# CONFIG_DVB_TUNER_CX24113 is not set
984# CONFIG_DVB_TDA826X is not set 1012# CONFIG_DVB_TDA826X is not set
985# CONFIG_DVB_TUA6100 is not set 1013# CONFIG_DVB_TUA6100 is not set
986# CONFIG_DVB_CX24116 is not set 1014# CONFIG_DVB_CX24116 is not set
@@ -1021,11 +1049,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1021# CONFIG_DVB_OR51132 is not set 1049# CONFIG_DVB_OR51132 is not set
1022# CONFIG_DVB_BCM3510 is not set 1050# CONFIG_DVB_BCM3510 is not set
1023# CONFIG_DVB_LGDT330X is not set 1051# CONFIG_DVB_LGDT330X is not set
1052# CONFIG_DVB_LGDT3304 is not set
1024# CONFIG_DVB_S5H1409 is not set 1053# CONFIG_DVB_S5H1409 is not set
1025# CONFIG_DVB_AU8522 is not set 1054# CONFIG_DVB_AU8522 is not set
1026# CONFIG_DVB_S5H1411 is not set 1055# CONFIG_DVB_S5H1411 is not set
1027 1056
1028# 1057#
1058# ISDB-T (terrestrial) frontends
1059#
1060# CONFIG_DVB_S921 is not set
1061
1062#
1029# Digital terrestrial only tuners/PLL 1063# Digital terrestrial only tuners/PLL
1030# 1064#
1031# CONFIG_DVB_PLL is not set 1065# CONFIG_DVB_PLL is not set
@@ -1078,6 +1112,7 @@ CONFIG_SND_OSSEMUL=y
1078CONFIG_SND_MIXER_OSS=y 1112CONFIG_SND_MIXER_OSS=y
1079CONFIG_SND_PCM_OSS=y 1113CONFIG_SND_PCM_OSS=y
1080CONFIG_SND_PCM_OSS_PLUGINS=y 1114CONFIG_SND_PCM_OSS_PLUGINS=y
1115# CONFIG_SND_HRTIMER is not set
1081# CONFIG_SND_DYNAMIC_MINORS is not set 1116# CONFIG_SND_DYNAMIC_MINORS is not set
1082# CONFIG_SND_SUPPORT_OLD_API is not set 1117# CONFIG_SND_SUPPORT_OLD_API is not set
1083CONFIG_SND_VERBOSE_PROCFS=y 1118CONFIG_SND_VERBOSE_PROCFS=y
@@ -1180,11 +1215,9 @@ CONFIG_HID_COMPAT=y
1180CONFIG_HID_A4TECH=y 1215CONFIG_HID_A4TECH=y
1181CONFIG_HID_APPLE=y 1216CONFIG_HID_APPLE=y
1182CONFIG_HID_BELKIN=y 1217CONFIG_HID_BELKIN=y
1183CONFIG_HID_BRIGHT=y
1184CONFIG_HID_CHERRY=y 1218CONFIG_HID_CHERRY=y
1185CONFIG_HID_CHICONY=y 1219CONFIG_HID_CHICONY=y
1186CONFIG_HID_CYPRESS=y 1220CONFIG_HID_CYPRESS=y
1187CONFIG_HID_DELL=y
1188CONFIG_HID_EZKEY=y 1221CONFIG_HID_EZKEY=y
1189CONFIG_HID_GYRATION=y 1222CONFIG_HID_GYRATION=y
1190CONFIG_HID_LOGITECH=y 1223CONFIG_HID_LOGITECH=y
@@ -1192,12 +1225,15 @@ CONFIG_HID_LOGITECH=y
1192# CONFIG_LOGIRUMBLEPAD2_FF is not set 1225# CONFIG_LOGIRUMBLEPAD2_FF is not set
1193CONFIG_HID_MICROSOFT=y 1226CONFIG_HID_MICROSOFT=y
1194CONFIG_HID_MONTEREY=y 1227CONFIG_HID_MONTEREY=y
1228# CONFIG_HID_NTRIG is not set
1195CONFIG_HID_PANTHERLORD=y 1229CONFIG_HID_PANTHERLORD=y
1196# CONFIG_PANTHERLORD_FF is not set 1230# CONFIG_PANTHERLORD_FF is not set
1197CONFIG_HID_PETALYNX=y 1231CONFIG_HID_PETALYNX=y
1198CONFIG_HID_SAMSUNG=y 1232CONFIG_HID_SAMSUNG=y
1199CONFIG_HID_SONY=y 1233CONFIG_HID_SONY=y
1200CONFIG_HID_SUNPLUS=y 1234CONFIG_HID_SUNPLUS=y
1235# CONFIG_GREENASIA_FF is not set
1236# CONFIG_HID_TOPSEED is not set
1201CONFIG_THRUSTMASTER_FF=m 1237CONFIG_THRUSTMASTER_FF=m
1202CONFIG_ZEROPLUS_FF=m 1238CONFIG_ZEROPLUS_FF=m
1203CONFIG_USB_SUPPORT=y 1239CONFIG_USB_SUPPORT=y
@@ -1230,6 +1266,7 @@ CONFIG_USB_EHCI_HCD=y
1230# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1266# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1231# CONFIG_USB_EHCI_FSL is not set 1267# CONFIG_USB_EHCI_FSL is not set
1232CONFIG_USB_EHCI_HCD_PPC_OF=y 1268CONFIG_USB_EHCI_HCD_PPC_OF=y
1269# CONFIG_USB_OXU210HP_HCD is not set
1233# CONFIG_USB_ISP116X_HCD is not set 1270# CONFIG_USB_ISP116X_HCD is not set
1234# CONFIG_USB_ISP1760_HCD is not set 1271# CONFIG_USB_ISP1760_HCD is not set
1235CONFIG_USB_OHCI_HCD=y 1272CONFIG_USB_OHCI_HCD=y
@@ -1255,18 +1292,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1255# CONFIG_USB_TMC is not set 1292# CONFIG_USB_TMC is not set
1256 1293
1257# 1294#
1258# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1295# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1259# 1296#
1260 1297
1261# 1298#
1262# may also be needed; see USB_STORAGE Help for more information 1299# see USB_STORAGE Help for more information
1263# 1300#
1264CONFIG_USB_STORAGE=y 1301CONFIG_USB_STORAGE=y
1265# CONFIG_USB_STORAGE_DEBUG is not set 1302# CONFIG_USB_STORAGE_DEBUG is not set
1266# CONFIG_USB_STORAGE_DATAFAB is not set 1303# CONFIG_USB_STORAGE_DATAFAB is not set
1267# CONFIG_USB_STORAGE_FREECOM is not set 1304# CONFIG_USB_STORAGE_FREECOM is not set
1268# CONFIG_USB_STORAGE_ISD200 is not set 1305# CONFIG_USB_STORAGE_ISD200 is not set
1269# CONFIG_USB_STORAGE_DPCM is not set
1270# CONFIG_USB_STORAGE_USBAT is not set 1306# CONFIG_USB_STORAGE_USBAT is not set
1271# CONFIG_USB_STORAGE_SDDR09 is not set 1307# CONFIG_USB_STORAGE_SDDR09 is not set
1272# CONFIG_USB_STORAGE_SDDR55 is not set 1308# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1314,6 +1350,10 @@ CONFIG_USB_STORAGE=y
1314# CONFIG_USB_ISIGHTFW is not set 1350# CONFIG_USB_ISIGHTFW is not set
1315# CONFIG_USB_VST is not set 1351# CONFIG_USB_VST is not set
1316# CONFIG_USB_GADGET is not set 1352# CONFIG_USB_GADGET is not set
1353
1354#
1355# OTG and related infrastructure
1356#
1317# CONFIG_UWB is not set 1357# CONFIG_UWB is not set
1318# CONFIG_MMC is not set 1358# CONFIG_MMC is not set
1319# CONFIG_MEMSTICK is not set 1359# CONFIG_MEMSTICK is not set
@@ -1351,6 +1391,7 @@ CONFIG_RTC_INTF_DEV=y
1351# CONFIG_RTC_DRV_M41T80 is not set 1391# CONFIG_RTC_DRV_M41T80 is not set
1352# CONFIG_RTC_DRV_S35390A is not set 1392# CONFIG_RTC_DRV_S35390A is not set
1353# CONFIG_RTC_DRV_FM3130 is not set 1393# CONFIG_RTC_DRV_FM3130 is not set
1394# CONFIG_RTC_DRV_RX8581 is not set
1354 1395
1355# 1396#
1356# SPI RTC drivers 1397# SPI RTC drivers
@@ -1397,7 +1438,9 @@ CONFIG_FS_MBCACHE=y
1397# CONFIG_FS_POSIX_ACL is not set 1438# CONFIG_FS_POSIX_ACL is not set
1398CONFIG_FILE_LOCKING=y 1439CONFIG_FILE_LOCKING=y
1399# CONFIG_XFS_FS is not set 1440# CONFIG_XFS_FS is not set
1441# CONFIG_GFS2_FS is not set
1400# CONFIG_OCFS2_FS is not set 1442# CONFIG_OCFS2_FS is not set
1443# CONFIG_BTRFS_FS is not set
1401CONFIG_DNOTIFY=y 1444CONFIG_DNOTIFY=y
1402CONFIG_INOTIFY=y 1445CONFIG_INOTIFY=y
1403CONFIG_INOTIFY_USER=y 1446CONFIG_INOTIFY_USER=y
@@ -1439,10 +1482,7 @@ CONFIG_TMPFS=y
1439# CONFIG_TMPFS_POSIX_ACL is not set 1482# CONFIG_TMPFS_POSIX_ACL is not set
1440# CONFIG_HUGETLB_PAGE is not set 1483# CONFIG_HUGETLB_PAGE is not set
1441# CONFIG_CONFIGFS_FS is not set 1484# CONFIG_CONFIGFS_FS is not set
1442 1485CONFIG_MISC_FILESYSTEMS=y
1443#
1444# Miscellaneous filesystems
1445#
1446CONFIG_ADFS_FS=m 1486CONFIG_ADFS_FS=m
1447# CONFIG_ADFS_FS_RW is not set 1487# CONFIG_ADFS_FS_RW is not set
1448CONFIG_AFFS_FS=m 1488CONFIG_AFFS_FS=m
@@ -1453,6 +1493,7 @@ CONFIG_BEFS_FS=m
1453CONFIG_BFS_FS=m 1493CONFIG_BFS_FS=m
1454CONFIG_EFS_FS=m 1494CONFIG_EFS_FS=m
1455CONFIG_CRAMFS=y 1495CONFIG_CRAMFS=y
1496# CONFIG_SQUASHFS is not set
1456CONFIG_VXFS_FS=m 1497CONFIG_VXFS_FS=m
1457# CONFIG_MINIX_FS is not set 1498# CONFIG_MINIX_FS is not set
1458# CONFIG_OMFS_FS is not set 1499# CONFIG_OMFS_FS is not set
@@ -1554,6 +1595,7 @@ CONFIG_NLS_UTF8=m
1554# Library routines 1595# Library routines
1555# 1596#
1556CONFIG_BITREVERSE=y 1597CONFIG_BITREVERSE=y
1598CONFIG_GENERIC_FIND_LAST_BIT=y
1557# CONFIG_CRC_CCITT is not set 1599# CONFIG_CRC_CCITT is not set
1558# CONFIG_CRC16 is not set 1600# CONFIG_CRC16 is not set
1559CONFIG_CRC_T10DIF=y 1601CONFIG_CRC_T10DIF=y
@@ -1605,6 +1647,7 @@ CONFIG_DEBUG_INFO=y
1605# CONFIG_DEBUG_MEMORY_INIT is not set 1647# CONFIG_DEBUG_MEMORY_INIT is not set
1606# CONFIG_DEBUG_LIST is not set 1648# CONFIG_DEBUG_LIST is not set
1607# CONFIG_DEBUG_SG is not set 1649# CONFIG_DEBUG_SG is not set
1650# CONFIG_DEBUG_NOTIFIERS is not set
1608# CONFIG_BOOT_PRINTK_DELAY is not set 1651# CONFIG_BOOT_PRINTK_DELAY is not set
1609# CONFIG_RCU_TORTURE_TEST is not set 1652# CONFIG_RCU_TORTURE_TEST is not set
1610# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1653# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1614,6 +1657,8 @@ CONFIG_DEBUG_INFO=y
1614# CONFIG_LATENCYTOP is not set 1657# CONFIG_LATENCYTOP is not set
1615CONFIG_SYSCTL_SYSCALL_CHECK=y 1658CONFIG_SYSCTL_SYSCALL_CHECK=y
1616CONFIG_HAVE_FUNCTION_TRACER=y 1659CONFIG_HAVE_FUNCTION_TRACER=y
1660CONFIG_HAVE_DYNAMIC_FTRACE=y
1661CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1617 1662
1618# 1663#
1619# Tracers 1664# Tracers
@@ -1622,11 +1667,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1622# CONFIG_SCHED_TRACER is not set 1667# CONFIG_SCHED_TRACER is not set
1623# CONFIG_CONTEXT_SWITCH_TRACER is not set 1668# CONFIG_CONTEXT_SWITCH_TRACER is not set
1624# CONFIG_BOOT_TRACER is not set 1669# CONFIG_BOOT_TRACER is not set
1670# CONFIG_TRACE_BRANCH_PROFILING is not set
1625# CONFIG_STACK_TRACER is not set 1671# CONFIG_STACK_TRACER is not set
1626# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1672# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1627# CONFIG_SAMPLES is not set 1673# CONFIG_SAMPLES is not set
1628CONFIG_HAVE_ARCH_KGDB=y 1674CONFIG_HAVE_ARCH_KGDB=y
1629# CONFIG_KGDB is not set 1675# CONFIG_KGDB is not set
1676CONFIG_PRINT_STACK_DEPTH=64
1630# CONFIG_DEBUG_STACKOVERFLOW is not set 1677# CONFIG_DEBUG_STACKOVERFLOW is not set
1631# CONFIG_DEBUG_STACK_USAGE is not set 1678# CONFIG_DEBUG_STACK_USAGE is not set
1632# CONFIG_DEBUG_PAGEALLOC is not set 1679# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1653,11 +1700,15 @@ CONFIG_CRYPTO=y
1653# 1700#
1654# CONFIG_CRYPTO_FIPS is not set 1701# CONFIG_CRYPTO_FIPS is not set
1655CONFIG_CRYPTO_ALGAPI=y 1702CONFIG_CRYPTO_ALGAPI=y
1656CONFIG_CRYPTO_AEAD=y 1703CONFIG_CRYPTO_ALGAPI2=y
1704CONFIG_CRYPTO_AEAD2=y
1657CONFIG_CRYPTO_BLKCIPHER=y 1705CONFIG_CRYPTO_BLKCIPHER=y
1706CONFIG_CRYPTO_BLKCIPHER2=y
1658CONFIG_CRYPTO_HASH=y 1707CONFIG_CRYPTO_HASH=y
1659CONFIG_CRYPTO_RNG=y 1708CONFIG_CRYPTO_HASH2=y
1709CONFIG_CRYPTO_RNG2=y
1660CONFIG_CRYPTO_MANAGER=y 1710CONFIG_CRYPTO_MANAGER=y
1711CONFIG_CRYPTO_MANAGER2=y
1661# CONFIG_CRYPTO_GF128MUL is not set 1712# CONFIG_CRYPTO_GF128MUL is not set
1662# CONFIG_CRYPTO_NULL is not set 1713# CONFIG_CRYPTO_NULL is not set
1663# CONFIG_CRYPTO_CRYPTD is not set 1714# CONFIG_CRYPTO_CRYPTD is not set
@@ -1691,7 +1742,7 @@ CONFIG_CRYPTO_HMAC=y
1691# 1742#
1692# Digest 1743# Digest
1693# 1744#
1694# CONFIG_CRYPTO_CRC32C is not set 1745CONFIG_CRYPTO_CRC32C=m
1695# CONFIG_CRYPTO_MD4 is not set 1746# CONFIG_CRYPTO_MD4 is not set
1696CONFIG_CRYPTO_MD5=y 1747CONFIG_CRYPTO_MD5=y
1697# CONFIG_CRYPTO_MICHAEL_MIC is not set 1748# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig
index a4342862f6ef..04797e730c5a 100644
--- a/arch/powerpc/configs/86xx/sbc8641d_defconfig
+++ b/arch/powerpc/configs/86xx/sbc8641d_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:26 2008 4# Mon Jan 26 15:36:23 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -46,7 +46,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
46CONFIG_PPC=y 46CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 48CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 49CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 50CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 51CONFIG_PPC_OF=y
52CONFIG_OF=y 52CONFIG_OF=y
@@ -78,12 +78,12 @@ CONFIG_BSD_PROCESS_ACCT_V3=y
78CONFIG_IKCONFIG=y 78CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 79CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
83CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
84# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
89CONFIG_RELAY=y 89CONFIG_RELAY=y
@@ -117,7 +117,6 @@ CONFIG_SLAB=y
117# CONFIG_SLUB is not set 117# CONFIG_SLUB is not set
118# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
119# CONFIG_PROFILING is not set 119# CONFIG_PROFILING is not set
120# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -129,7 +128,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
132# CONFIG_TINY_SHMEM is not set
133CONFIG_BASE_SMALL=0 131CONFIG_BASE_SMALL=0
134CONFIG_MODULES=y 132CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set 133# CONFIG_MODULE_FORCE_LOAD is not set
@@ -137,12 +135,10 @@ CONFIG_MODULE_UNLOAD=y
137# CONFIG_MODULE_FORCE_UNLOAD is not set 135# CONFIG_MODULE_FORCE_UNLOAD is not set
138# CONFIG_MODVERSIONS is not set 136# CONFIG_MODVERSIONS is not set
139# CONFIG_MODULE_SRCVERSION_ALL is not set 137# CONFIG_MODULE_SRCVERSION_ALL is not set
140CONFIG_KMOD=y
141CONFIG_STOP_MACHINE=y 138CONFIG_STOP_MACHINE=y
142CONFIG_BLOCK=y 139CONFIG_BLOCK=y
143# CONFIG_LBD is not set 140# CONFIG_LBD is not set
144# CONFIG_BLK_DEV_IO_TRACE is not set 141# CONFIG_BLK_DEV_IO_TRACE is not set
145# CONFIG_LSF is not set
146# CONFIG_BLK_DEV_BSG is not set 142# CONFIG_BLK_DEV_BSG is not set
147# CONFIG_BLK_DEV_INTEGRITY is not set 143# CONFIG_BLK_DEV_INTEGRITY is not set
148 144
@@ -159,6 +155,10 @@ CONFIG_DEFAULT_CFQ=y
159# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
160CONFIG_DEFAULT_IOSCHED="cfq" 156CONFIG_DEFAULT_IOSCHED="cfq"
161CONFIG_CLASSIC_RCU=y 157CONFIG_CLASSIC_RCU=y
158# CONFIG_TREE_RCU is not set
159# CONFIG_PREEMPT_RCU is not set
160# CONFIG_TREE_RCU_TRACE is not set
161# CONFIG_PREEMPT_RCU_TRACE is not set
162# CONFIG_FREEZER is not set 162# CONFIG_FREEZER is not set
163 163
164# 164#
@@ -197,6 +197,7 @@ CONFIG_MPIC=y
197# CONFIG_QUICC_ENGINE is not set 197# CONFIG_QUICC_ENGINE is not set
198# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set 199# CONFIG_MPC8xxx_GPIO is not set
200# CONFIG_SIMPLE_GPIO is not set
200 201
201# 202#
202# Kernel options 203# Kernel options
@@ -215,7 +216,6 @@ CONFIG_SCHED_HRTICK=y
215# CONFIG_PREEMPT_NONE is not set 216# CONFIG_PREEMPT_NONE is not set
216# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
217CONFIG_PREEMPT=y 218CONFIG_PREEMPT=y
218# CONFIG_PREEMPT_RCU is not set
219CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set 221# CONFIG_HAVE_AOUT is not set
@@ -225,6 +225,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 227# CONFIG_KEXEC is not set
228# CONFIG_CRASH_DUMP is not set
228CONFIG_IRQ_ALL_CPUS=y 229CONFIG_IRQ_ALL_CPUS=y
229CONFIG_ARCH_FLATMEM_ENABLE=y 230CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 231CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -237,12 +238,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 240CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 241# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
247# CONFIG_PROC_DEVICETREE is not set 250# CONFIG_PROC_DEVICETREE is not set
248# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -270,6 +273,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
270# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
271# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
272# CONFIG_PCI_DEBUG is not set 275# CONFIG_PCI_DEBUG is not set
276# CONFIG_PCI_STUB is not set
273# CONFIG_PCCARD is not set 277# CONFIG_PCCARD is not set
274# CONFIG_HOTPLUG_PCI is not set 278# CONFIG_HOTPLUG_PCI is not set
275# CONFIG_HAS_RAPIDIO is not set 279# CONFIG_HAS_RAPIDIO is not set
@@ -292,6 +296,7 @@ CONFIG_NET=y
292# 296#
293# Networking options 297# Networking options
294# 298#
299CONFIG_COMPAT_NET_DEV_OPS=y
295CONFIG_PACKET=y 300CONFIG_PACKET=y
296CONFIG_PACKET_MMAP=y 301CONFIG_PACKET_MMAP=y
297CONFIG_UNIX=y 302CONFIG_UNIX=y
@@ -501,6 +506,7 @@ CONFIG_NET_SCH_TBF=m
501CONFIG_NET_SCH_GRED=m 506CONFIG_NET_SCH_GRED=m
502CONFIG_NET_SCH_DSMARK=m 507CONFIG_NET_SCH_DSMARK=m
503CONFIG_NET_SCH_NETEM=m 508CONFIG_NET_SCH_NETEM=m
509# CONFIG_NET_SCH_DRR is not set
504 510
505# 511#
506# Classification 512# Classification
@@ -521,6 +527,7 @@ CONFIG_NET_CLS_RSVP6=m
521# CONFIG_NET_CLS_ACT is not set 527# CONFIG_NET_CLS_ACT is not set
522# CONFIG_NET_CLS_IND is not set 528# CONFIG_NET_CLS_IND is not set
523CONFIG_NET_SCH_FIFO=y 529CONFIG_NET_SCH_FIFO=y
530# CONFIG_DCB is not set
524 531
525# 532#
526# Network testing 533# Network testing
@@ -537,8 +544,9 @@ CONFIG_WIRELESS=y
537# CONFIG_CFG80211 is not set 544# CONFIG_CFG80211 is not set
538CONFIG_WIRELESS_OLD_REGULATORY=y 545CONFIG_WIRELESS_OLD_REGULATORY=y
539# CONFIG_WIRELESS_EXT is not set 546# CONFIG_WIRELESS_EXT is not set
547# CONFIG_LIB80211 is not set
540# CONFIG_MAC80211 is not set 548# CONFIG_MAC80211 is not set
541# CONFIG_IEEE80211 is not set 549# CONFIG_WIMAX is not set
542# CONFIG_RFKILL is not set 550# CONFIG_RFKILL is not set
543# CONFIG_NET_9P is not set 551# CONFIG_NET_9P is not set
544 552
@@ -561,6 +569,7 @@ CONFIG_MTD=y
561# CONFIG_MTD_DEBUG is not set 569# CONFIG_MTD_DEBUG is not set
562CONFIG_MTD_CONCAT=y 570CONFIG_MTD_CONCAT=y
563CONFIG_MTD_PARTITIONS=y 571CONFIG_MTD_PARTITIONS=y
572# CONFIG_MTD_TESTS is not set
564# CONFIG_MTD_REDBOOT_PARTS is not set 573# CONFIG_MTD_REDBOOT_PARTS is not set
565# CONFIG_MTD_CMDLINE_PARTS is not set 574# CONFIG_MTD_CMDLINE_PARTS is not set
566# CONFIG_MTD_OF_PARTS is not set 575# CONFIG_MTD_OF_PARTS is not set
@@ -637,6 +646,12 @@ CONFIG_MTD_PHYSMAP_OF=y
637# CONFIG_MTD_ONENAND is not set 646# CONFIG_MTD_ONENAND is not set
638 647
639# 648#
649# LPDDR flash memory drivers
650#
651# CONFIG_MTD_LPDDR is not set
652# CONFIG_MTD_QINFO_PROBE is not set
653
654#
640# UBI - Unsorted block images 655# UBI - Unsorted block images
641# 656#
642# CONFIG_MTD_UBI is not set 657# CONFIG_MTD_UBI is not set
@@ -666,8 +681,10 @@ CONFIG_MISC_DEVICES=y
666# CONFIG_EEPROM_93CX6 is not set 681# CONFIG_EEPROM_93CX6 is not set
667# CONFIG_SGI_IOC4 is not set 682# CONFIG_SGI_IOC4 is not set
668# CONFIG_TIFM_CORE is not set 683# CONFIG_TIFM_CORE is not set
684# CONFIG_ICS932S401 is not set
669# CONFIG_ENCLOSURE_SERVICES is not set 685# CONFIG_ENCLOSURE_SERVICES is not set
670# CONFIG_HP_ILO is not set 686# CONFIG_HP_ILO is not set
687# CONFIG_C2PORT is not set
671CONFIG_HAVE_IDE=y 688CONFIG_HAVE_IDE=y
672# CONFIG_IDE is not set 689# CONFIG_IDE is not set
673 690
@@ -734,6 +751,9 @@ CONFIG_PHYLIB=y
734CONFIG_BROADCOM_PHY=y 751CONFIG_BROADCOM_PHY=y
735# CONFIG_ICPLUS_PHY is not set 752# CONFIG_ICPLUS_PHY is not set
736# CONFIG_REALTEK_PHY is not set 753# CONFIG_REALTEK_PHY is not set
754# CONFIG_NATIONAL_PHY is not set
755# CONFIG_STE10XP is not set
756# CONFIG_LSI_ET1011C_PHY is not set
737# CONFIG_FIXED_PHY is not set 757# CONFIG_FIXED_PHY is not set
738# CONFIG_MDIO_BITBANG is not set 758# CONFIG_MDIO_BITBANG is not set
739CONFIG_NET_ETHERNET=y 759CONFIG_NET_ETHERNET=y
@@ -786,6 +806,10 @@ CONFIG_GIANFAR=y
786# CONFIG_WLAN_PRE80211 is not set 806# CONFIG_WLAN_PRE80211 is not set
787# CONFIG_WLAN_80211 is not set 807# CONFIG_WLAN_80211 is not set
788# CONFIG_IWLWIFI_LEDS is not set 808# CONFIG_IWLWIFI_LEDS is not set
809
810#
811# Enable WiMAX (Networking options) to see the WiMAX drivers
812#
789# CONFIG_WAN is not set 813# CONFIG_WAN is not set
790CONFIG_ATM_DRIVERS=y 814CONFIG_ATM_DRIVERS=y
791# CONFIG_ATM_DUMMY is not set 815# CONFIG_ATM_DUMMY is not set
@@ -801,6 +825,7 @@ CONFIG_ATM_DRIVERS=y
801# CONFIG_ATM_IA is not set 825# CONFIG_ATM_IA is not set
802# CONFIG_ATM_FORE200E is not set 826# CONFIG_ATM_FORE200E is not set
803# CONFIG_ATM_HE is not set 827# CONFIG_ATM_HE is not set
828# CONFIG_ATM_SOLOS is not set
804# CONFIG_FDDI is not set 829# CONFIG_FDDI is not set
805# CONFIG_HIPPI is not set 830# CONFIG_HIPPI is not set
806CONFIG_PPP=m 831CONFIG_PPP=m
@@ -892,8 +917,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
892# CONFIG_SERIAL_JSM is not set 917# CONFIG_SERIAL_JSM is not set
893# CONFIG_SERIAL_OF_PLATFORM is not set 918# CONFIG_SERIAL_OF_PLATFORM is not set
894CONFIG_UNIX98_PTYS=y 919CONFIG_UNIX98_PTYS=y
920# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
895CONFIG_LEGACY_PTYS=y 921CONFIG_LEGACY_PTYS=y
896CONFIG_LEGACY_PTY_COUNT=256 922CONFIG_LEGACY_PTY_COUNT=256
923# CONFIG_HVC_UDBG is not set
897# CONFIG_IPMI_HANDLER is not set 924# CONFIG_IPMI_HANDLER is not set
898CONFIG_HW_RANDOM=m 925CONFIG_HW_RANDOM=m
899# CONFIG_NVRAM is not set 926# CONFIG_NVRAM is not set
@@ -958,8 +985,8 @@ CONFIG_I2C_MPC=y
958# Miscellaneous I2C Chip support 985# Miscellaneous I2C Chip support
959# 986#
960# CONFIG_DS1682 is not set 987# CONFIG_DS1682 is not set
961# CONFIG_AT24 is not set 988# CONFIG_EEPROM_AT24 is not set
962# CONFIG_SENSORS_EEPROM is not set 989# CONFIG_EEPROM_LEGACY is not set
963# CONFIG_SENSORS_PCF8574 is not set 990# CONFIG_SENSORS_PCF8574 is not set
964# CONFIG_PCF8575 is not set 991# CONFIG_PCF8575 is not set
965# CONFIG_SENSORS_PCA9539 is not set 992# CONFIG_SENSORS_PCA9539 is not set
@@ -985,8 +1012,10 @@ CONFIG_HWMON=y
985# CONFIG_SENSORS_ADM1029 is not set 1012# CONFIG_SENSORS_ADM1029 is not set
986# CONFIG_SENSORS_ADM1031 is not set 1013# CONFIG_SENSORS_ADM1031 is not set
987# CONFIG_SENSORS_ADM9240 is not set 1014# CONFIG_SENSORS_ADM9240 is not set
1015# CONFIG_SENSORS_ADT7462 is not set
988# CONFIG_SENSORS_ADT7470 is not set 1016# CONFIG_SENSORS_ADT7470 is not set
989# CONFIG_SENSORS_ADT7473 is not set 1017# CONFIG_SENSORS_ADT7473 is not set
1018# CONFIG_SENSORS_ADT7475 is not set
990# CONFIG_SENSORS_ATXP1 is not set 1019# CONFIG_SENSORS_ATXP1 is not set
991# CONFIG_SENSORS_DS1621 is not set 1020# CONFIG_SENSORS_DS1621 is not set
992# CONFIG_SENSORS_I5K_AMB is not set 1021# CONFIG_SENSORS_I5K_AMB is not set
@@ -1007,6 +1036,7 @@ CONFIG_HWMON=y
1007# CONFIG_SENSORS_LM90 is not set 1036# CONFIG_SENSORS_LM90 is not set
1008# CONFIG_SENSORS_LM92 is not set 1037# CONFIG_SENSORS_LM92 is not set
1009# CONFIG_SENSORS_LM93 is not set 1038# CONFIG_SENSORS_LM93 is not set
1039# CONFIG_SENSORS_LTC4245 is not set
1010# CONFIG_SENSORS_MAX1619 is not set 1040# CONFIG_SENSORS_MAX1619 is not set
1011# CONFIG_SENSORS_MAX6650 is not set 1041# CONFIG_SENSORS_MAX6650 is not set
1012# CONFIG_SENSORS_PC87360 is not set 1042# CONFIG_SENSORS_PC87360 is not set
@@ -1047,11 +1077,11 @@ CONFIG_SOFT_WATCHDOG=m
1047# 1077#
1048# CONFIG_PCIPCWATCHDOG is not set 1078# CONFIG_PCIPCWATCHDOG is not set
1049# CONFIG_WDTPCI is not set 1079# CONFIG_WDTPCI is not set
1080CONFIG_SSB_POSSIBLE=y
1050 1081
1051# 1082#
1052# Sonics Silicon Backplane 1083# Sonics Silicon Backplane
1053# 1084#
1054CONFIG_SSB_POSSIBLE=y
1055# CONFIG_SSB is not set 1085# CONFIG_SSB is not set
1056 1086
1057# 1087#
@@ -1060,18 +1090,13 @@ CONFIG_SSB_POSSIBLE=y
1060# CONFIG_MFD_CORE is not set 1090# CONFIG_MFD_CORE is not set
1061# CONFIG_MFD_SM501 is not set 1091# CONFIG_MFD_SM501 is not set
1062# CONFIG_HTC_PASIC3 is not set 1092# CONFIG_HTC_PASIC3 is not set
1093# CONFIG_TWL4030_CORE is not set
1063# CONFIG_MFD_TMIO is not set 1094# CONFIG_MFD_TMIO is not set
1064# CONFIG_PMIC_DA903X is not set 1095# CONFIG_PMIC_DA903X is not set
1065# CONFIG_MFD_WM8400 is not set 1096# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM8350_I2C is not set 1097# CONFIG_MFD_WM8350_I2C is not set
1067 1098# CONFIG_MFD_PCF50633 is not set
1068#
1069# Voltage and Current regulators
1070#
1071# CONFIG_REGULATOR is not set 1099# CONFIG_REGULATOR is not set
1072# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1073# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1074# CONFIG_REGULATOR_BQ24022 is not set
1075 1100
1076# 1101#
1077# Multimedia devices 1102# Multimedia devices
@@ -1134,9 +1159,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1134# 1159#
1135 1160
1136# 1161#
1137# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1162# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1138# 1163#
1139# CONFIG_USB_GADGET is not set 1164# CONFIG_USB_GADGET is not set
1165
1166#
1167# OTG and related infrastructure
1168#
1140# CONFIG_UWB is not set 1169# CONFIG_UWB is not set
1141# CONFIG_MMC is not set 1170# CONFIG_MMC is not set
1142# CONFIG_MEMSTICK is not set 1171# CONFIG_MEMSTICK is not set
@@ -1182,11 +1211,18 @@ CONFIG_OCFS2_FS_O2CB=m
1182CONFIG_OCFS2_FS_STATS=y 1211CONFIG_OCFS2_FS_STATS=y
1183CONFIG_OCFS2_DEBUG_MASKLOG=y 1212CONFIG_OCFS2_DEBUG_MASKLOG=y
1184# CONFIG_OCFS2_DEBUG_FS is not set 1213# CONFIG_OCFS2_DEBUG_FS is not set
1185# CONFIG_OCFS2_COMPAT_JBD is not set 1214# CONFIG_OCFS2_FS_POSIX_ACL is not set
1215# CONFIG_BTRFS_FS is not set
1186CONFIG_DNOTIFY=y 1216CONFIG_DNOTIFY=y
1187CONFIG_INOTIFY=y 1217CONFIG_INOTIFY=y
1188CONFIG_INOTIFY_USER=y 1218CONFIG_INOTIFY_USER=y
1189# CONFIG_QUOTA is not set 1219CONFIG_QUOTA=y
1220# CONFIG_QUOTA_NETLINK_INTERFACE is not set
1221CONFIG_PRINT_QUOTA_WARNING=y
1222CONFIG_QUOTA_TREE=m
1223# CONFIG_QFMT_V1 is not set
1224# CONFIG_QFMT_V2 is not set
1225CONFIG_QUOTACTL=y
1190CONFIG_AUTOFS_FS=m 1226CONFIG_AUTOFS_FS=m
1191CONFIG_AUTOFS4_FS=m 1227CONFIG_AUTOFS4_FS=m
1192# CONFIG_FUSE_FS is not set 1228# CONFIG_FUSE_FS is not set
@@ -1216,10 +1252,7 @@ CONFIG_TMPFS=y
1216# CONFIG_TMPFS_POSIX_ACL is not set 1252# CONFIG_TMPFS_POSIX_ACL is not set
1217# CONFIG_HUGETLB_PAGE is not set 1253# CONFIG_HUGETLB_PAGE is not set
1218CONFIG_CONFIGFS_FS=m 1254CONFIG_CONFIGFS_FS=m
1219 1255CONFIG_MISC_FILESYSTEMS=y
1220#
1221# Miscellaneous filesystems
1222#
1223# CONFIG_ADFS_FS is not set 1256# CONFIG_ADFS_FS is not set
1224# CONFIG_AFFS_FS is not set 1257# CONFIG_AFFS_FS is not set
1225# CONFIG_HFS_FS is not set 1258# CONFIG_HFS_FS is not set
@@ -1229,6 +1262,7 @@ CONFIG_CONFIGFS_FS=m
1229# CONFIG_EFS_FS is not set 1262# CONFIG_EFS_FS is not set
1230# CONFIG_JFFS2_FS is not set 1263# CONFIG_JFFS2_FS is not set
1231# CONFIG_CRAMFS is not set 1264# CONFIG_CRAMFS is not set
1265# CONFIG_SQUASHFS is not set
1232# CONFIG_VXFS_FS is not set 1266# CONFIG_VXFS_FS is not set
1233CONFIG_MINIX_FS=m 1267CONFIG_MINIX_FS=m
1234# CONFIG_OMFS_FS is not set 1268# CONFIG_OMFS_FS is not set
@@ -1317,6 +1351,7 @@ CONFIG_NLS_UTF8=m
1317# Library routines 1351# Library routines
1318# 1352#
1319CONFIG_BITREVERSE=y 1353CONFIG_BITREVERSE=y
1354CONFIG_GENERIC_FIND_LAST_BIT=y
1320CONFIG_CRC_CCITT=m 1355CONFIG_CRC_CCITT=m
1321# CONFIG_CRC16 is not set 1356# CONFIG_CRC16 is not set
1322# CONFIG_CRC_T10DIF is not set 1357# CONFIG_CRC_T10DIF is not set
@@ -1367,6 +1402,7 @@ CONFIG_DEBUG_INFO=y
1367# CONFIG_DEBUG_MEMORY_INIT is not set 1402# CONFIG_DEBUG_MEMORY_INIT is not set
1368# CONFIG_DEBUG_LIST is not set 1403# CONFIG_DEBUG_LIST is not set
1369# CONFIG_DEBUG_SG is not set 1404# CONFIG_DEBUG_SG is not set
1405# CONFIG_DEBUG_NOTIFIERS is not set
1370# CONFIG_BOOT_PRINTK_DELAY is not set 1406# CONFIG_BOOT_PRINTK_DELAY is not set
1371# CONFIG_RCU_TORTURE_TEST is not set 1407# CONFIG_RCU_TORTURE_TEST is not set
1372# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1408# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1376,6 +1412,8 @@ CONFIG_DEBUG_INFO=y
1376# CONFIG_LATENCYTOP is not set 1412# CONFIG_LATENCYTOP is not set
1377CONFIG_SYSCTL_SYSCALL_CHECK=y 1413CONFIG_SYSCTL_SYSCALL_CHECK=y
1378CONFIG_HAVE_FUNCTION_TRACER=y 1414CONFIG_HAVE_FUNCTION_TRACER=y
1415CONFIG_HAVE_DYNAMIC_FTRACE=y
1416CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1379 1417
1380# 1418#
1381# Tracers 1419# Tracers
@@ -1385,11 +1423,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1385# CONFIG_SCHED_TRACER is not set 1423# CONFIG_SCHED_TRACER is not set
1386# CONFIG_CONTEXT_SWITCH_TRACER is not set 1424# CONFIG_CONTEXT_SWITCH_TRACER is not set
1387# CONFIG_BOOT_TRACER is not set 1425# CONFIG_BOOT_TRACER is not set
1426# CONFIG_TRACE_BRANCH_PROFILING is not set
1388# CONFIG_STACK_TRACER is not set 1427# CONFIG_STACK_TRACER is not set
1389# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1428# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1390# CONFIG_SAMPLES is not set 1429# CONFIG_SAMPLES is not set
1391CONFIG_HAVE_ARCH_KGDB=y 1430CONFIG_HAVE_ARCH_KGDB=y
1392# CONFIG_KGDB is not set 1431# CONFIG_KGDB is not set
1432CONFIG_PRINT_STACK_DEPTH=64
1393# CONFIG_DEBUG_STACKOVERFLOW is not set 1433# CONFIG_DEBUG_STACKOVERFLOW is not set
1394# CONFIG_DEBUG_STACK_USAGE is not set 1434# CONFIG_DEBUG_STACK_USAGE is not set
1395# CONFIG_DEBUG_PAGEALLOC is not set 1435# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1411,6 +1451,7 @@ CONFIG_SECURITY=y
1411# CONFIG_SECURITYFS is not set 1451# CONFIG_SECURITYFS is not set
1412CONFIG_SECURITY_NETWORK=y 1452CONFIG_SECURITY_NETWORK=y
1413# CONFIG_SECURITY_NETWORK_XFRM is not set 1453# CONFIG_SECURITY_NETWORK_XFRM is not set
1454# CONFIG_SECURITY_PATH is not set
1414# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1455# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1415CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1456CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1416CONFIG_CRYPTO=y 1457CONFIG_CRYPTO=y
@@ -1420,11 +1461,16 @@ CONFIG_CRYPTO=y
1420# 1461#
1421# CONFIG_CRYPTO_FIPS is not set 1462# CONFIG_CRYPTO_FIPS is not set
1422CONFIG_CRYPTO_ALGAPI=y 1463CONFIG_CRYPTO_ALGAPI=y
1423CONFIG_CRYPTO_AEAD=y 1464CONFIG_CRYPTO_ALGAPI2=y
1465CONFIG_CRYPTO_AEAD=m
1466CONFIG_CRYPTO_AEAD2=y
1424CONFIG_CRYPTO_BLKCIPHER=y 1467CONFIG_CRYPTO_BLKCIPHER=y
1468CONFIG_CRYPTO_BLKCIPHER2=y
1425CONFIG_CRYPTO_HASH=y 1469CONFIG_CRYPTO_HASH=y
1426CONFIG_CRYPTO_RNG=y 1470CONFIG_CRYPTO_HASH2=y
1471CONFIG_CRYPTO_RNG2=y
1427CONFIG_CRYPTO_MANAGER=y 1472CONFIG_CRYPTO_MANAGER=y
1473CONFIG_CRYPTO_MANAGER2=y
1428# CONFIG_CRYPTO_GF128MUL is not set 1474# CONFIG_CRYPTO_GF128MUL is not set
1429CONFIG_CRYPTO_NULL=m 1475CONFIG_CRYPTO_NULL=m
1430# CONFIG_CRYPTO_CRYPTD is not set 1476# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig
index 024f279af90a..aaab5cc3751c 100644
--- a/arch/powerpc/configs/adder875_defconfig
+++ b/arch/powerpc/configs/adder875_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:32 2008 4# Mon Jan 26 15:35:24 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_8xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_8xx=y 17CONFIG_8xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -109,7 +110,6 @@ CONFIG_SLUB_DEBUG=y
109CONFIG_SLUB=y 110CONFIG_SLUB=y
110# CONFIG_SLOB is not set 111# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
115CONFIG_HAVE_IOREMAP_PROT=y 115CONFIG_HAVE_IOREMAP_PROT=y
@@ -119,13 +119,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
119CONFIG_HAVE_CLK=y 119CONFIG_HAVE_CLK=y
120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 121CONFIG_SLABINFO=y
122# CONFIG_TINY_SHMEM is not set
123CONFIG_BASE_SMALL=1 122CONFIG_BASE_SMALL=1
124# CONFIG_MODULES is not set 123# CONFIG_MODULES is not set
125CONFIG_BLOCK=y 124CONFIG_BLOCK=y
126# CONFIG_LBD is not set 125# CONFIG_LBD is not set
127# CONFIG_BLK_DEV_IO_TRACE is not set 126# CONFIG_BLK_DEV_IO_TRACE is not set
128# CONFIG_LSF is not set
129# CONFIG_BLK_DEV_BSG is not set 127# CONFIG_BLK_DEV_BSG is not set
130# CONFIG_BLK_DEV_INTEGRITY is not set 128# CONFIG_BLK_DEV_INTEGRITY is not set
131 129
@@ -142,6 +140,10 @@ CONFIG_DEFAULT_DEADLINE=y
142# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
143CONFIG_DEFAULT_IOSCHED="deadline" 141CONFIG_DEFAULT_IOSCHED="deadline"
144CONFIG_CLASSIC_RCU=y 142CONFIG_CLASSIC_RCU=y
143# CONFIG_TREE_RCU is not set
144# CONFIG_PREEMPT_RCU is not set
145# CONFIG_TREE_RCU_TRACE is not set
146# CONFIG_PREEMPT_RCU_TRACE is not set
145# CONFIG_FREEZER is not set 147# CONFIG_FREEZER is not set
146 148
147# 149#
@@ -187,6 +189,7 @@ CONFIG_NO_UCODE_PATCH=y
187# CONFIG_QUICC_ENGINE is not set 189# CONFIG_QUICC_ENGINE is not set
188# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
189CONFIG_CPM=y 191CONFIG_CPM=y
192# CONFIG_SIMPLE_GPIO is not set
190 193
191# 194#
192# Kernel options 195# Kernel options
@@ -205,12 +208,12 @@ CONFIG_PREEMPT_NONE=y
205# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
206# CONFIG_PREEMPT is not set 209# CONFIG_PREEMPT is not set
207CONFIG_BINFMT_ELF=y 210CONFIG_BINFMT_ELF=y
208# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
209# CONFIG_HAVE_AOUT is not set 211# CONFIG_HAVE_AOUT is not set
210# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
211# CONFIG_MATH_EMULATION is not set 213# CONFIG_MATH_EMULATION is not set
212# CONFIG_8XX_MINIMAL_FPEMU is not set 214# CONFIG_8XX_MINIMAL_FPEMU is not set
213# CONFIG_IOMMU_HELPER is not set 215# CONFIG_IOMMU_HELPER is not set
216CONFIG_PPC_NEED_DMA_SYNC_OPS=y
214CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 217CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
215CONFIG_ARCH_HAS_WALK_MEMORY=y 218CONFIG_ARCH_HAS_WALK_MEMORY=y
216CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -225,12 +228,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set
229# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=1 232CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 233CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 234CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 235CONFIG_UNEVICTABLE_LRU=y
236CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set
234CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
235# CONFIG_PROC_DEVICETREE is not set 240# CONFIG_PROC_DEVICETREE is not set
236# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +277,7 @@ CONFIG_NET=y
272# 277#
273# Networking options 278# Networking options
274# 279#
280CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 281CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 282# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 283CONFIG_UNIX=y
@@ -323,6 +329,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
323# CONFIG_ECONET is not set 329# CONFIG_ECONET is not set
324# CONFIG_WAN_ROUTER is not set 330# CONFIG_WAN_ROUTER is not set
325# CONFIG_NET_SCHED is not set 331# CONFIG_NET_SCHED is not set
332# CONFIG_DCB is not set
326 333
327# 334#
328# Network testing 335# Network testing
@@ -338,8 +345,9 @@ CONFIG_WIRELESS=y
338# CONFIG_CFG80211 is not set 345# CONFIG_CFG80211 is not set
339CONFIG_WIRELESS_OLD_REGULATORY=y 346CONFIG_WIRELESS_OLD_REGULATORY=y
340# CONFIG_WIRELESS_EXT is not set 347# CONFIG_WIRELESS_EXT is not set
348# CONFIG_LIB80211 is not set
341# CONFIG_MAC80211 is not set 349# CONFIG_MAC80211 is not set
342# CONFIG_IEEE80211 is not set 350# CONFIG_WIMAX is not set
343# CONFIG_RFKILL is not set 351# CONFIG_RFKILL is not set
344# CONFIG_NET_9P is not set 352# CONFIG_NET_9P is not set
345 353
@@ -428,6 +436,12 @@ CONFIG_MTD_PHYSMAP_OF=y
428# CONFIG_MTD_ONENAND is not set 436# CONFIG_MTD_ONENAND is not set
429 437
430# 438#
439# LPDDR flash memory drivers
440#
441# CONFIG_MTD_LPDDR is not set
442# CONFIG_MTD_QINFO_PROBE is not set
443
444#
431# UBI - Unsorted block images 445# UBI - Unsorted block images
432# 446#
433# CONFIG_MTD_UBI is not set 447# CONFIG_MTD_UBI is not set
@@ -470,6 +484,9 @@ CONFIG_DAVICOM_PHY=y
470# CONFIG_BROADCOM_PHY is not set 484# CONFIG_BROADCOM_PHY is not set
471# CONFIG_ICPLUS_PHY is not set 485# CONFIG_ICPLUS_PHY is not set
472# CONFIG_REALTEK_PHY is not set 486# CONFIG_REALTEK_PHY is not set
487# CONFIG_NATIONAL_PHY is not set
488# CONFIG_STE10XP is not set
489# CONFIG_LSI_ET1011C_PHY is not set
473# CONFIG_FIXED_PHY is not set 490# CONFIG_FIXED_PHY is not set
474# CONFIG_MDIO_BITBANG is not set 491# CONFIG_MDIO_BITBANG is not set
475CONFIG_NET_ETHERNET=y 492CONFIG_NET_ETHERNET=y
@@ -495,6 +512,10 @@ CONFIG_FS_ENET_MDIO_FEC=y
495# CONFIG_WLAN_PRE80211 is not set 512# CONFIG_WLAN_PRE80211 is not set
496# CONFIG_WLAN_80211 is not set 513# CONFIG_WLAN_80211 is not set
497# CONFIG_IWLWIFI_LEDS is not set 514# CONFIG_IWLWIFI_LEDS is not set
515
516#
517# Enable WiMAX (Networking options) to see the WiMAX drivers
518#
498# CONFIG_WAN is not set 519# CONFIG_WAN is not set
499# CONFIG_PPP is not set 520# CONFIG_PPP is not set
500# CONFIG_SLIP is not set 521# CONFIG_SLIP is not set
@@ -580,7 +601,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
580CONFIG_SERIAL_CPM=y 601CONFIG_SERIAL_CPM=y
581CONFIG_SERIAL_CPM_CONSOLE=y 602CONFIG_SERIAL_CPM_CONSOLE=y
582CONFIG_UNIX98_PTYS=y 603CONFIG_UNIX98_PTYS=y
604# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
583# CONFIG_LEGACY_PTYS is not set 605# CONFIG_LEGACY_PTYS is not set
606# CONFIG_HVC_UDBG is not set
584# CONFIG_IPMI_HANDLER is not set 607# CONFIG_IPMI_HANDLER is not set
585CONFIG_HW_RANDOM=y 608CONFIG_HW_RANDOM=y
586# CONFIG_NVRAM is not set 609# CONFIG_NVRAM is not set
@@ -598,11 +621,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
598# CONFIG_HWMON is not set 621# CONFIG_HWMON is not set
599CONFIG_THERMAL=y 622CONFIG_THERMAL=y
600# CONFIG_WATCHDOG is not set 623# CONFIG_WATCHDOG is not set
624CONFIG_SSB_POSSIBLE=y
601 625
602# 626#
603# Sonics Silicon Backplane 627# Sonics Silicon Backplane
604# 628#
605CONFIG_SSB_POSSIBLE=y
606# CONFIG_SSB is not set 629# CONFIG_SSB is not set
607 630
608# 631#
@@ -612,14 +635,7 @@ CONFIG_SSB_POSSIBLE=y
612# CONFIG_MFD_SM501 is not set 635# CONFIG_MFD_SM501 is not set
613# CONFIG_HTC_PASIC3 is not set 636# CONFIG_HTC_PASIC3 is not set
614# CONFIG_MFD_TMIO is not set 637# CONFIG_MFD_TMIO is not set
615
616#
617# Voltage and Current regulators
618#
619# CONFIG_REGULATOR is not set 638# CONFIG_REGULATOR is not set
620# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
621# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
622# CONFIG_REGULATOR_BQ24022 is not set
623 639
624# 640#
625# Multimedia devices 641# Multimedia devices
@@ -674,6 +690,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
674CONFIG_FILE_LOCKING=y 690CONFIG_FILE_LOCKING=y
675# CONFIG_XFS_FS is not set 691# CONFIG_XFS_FS is not set
676# CONFIG_OCFS2_FS is not set 692# CONFIG_OCFS2_FS is not set
693# CONFIG_BTRFS_FS is not set
677# CONFIG_DNOTIFY is not set 694# CONFIG_DNOTIFY is not set
678# CONFIG_INOTIFY is not set 695# CONFIG_INOTIFY is not set
679# CONFIG_QUOTA is not set 696# CONFIG_QUOTA is not set
@@ -706,10 +723,7 @@ CONFIG_TMPFS=y
706# CONFIG_TMPFS_POSIX_ACL is not set 723# CONFIG_TMPFS_POSIX_ACL is not set
707# CONFIG_HUGETLB_PAGE is not set 724# CONFIG_HUGETLB_PAGE is not set
708# CONFIG_CONFIGFS_FS is not set 725# CONFIG_CONFIGFS_FS is not set
709 726CONFIG_MISC_FILESYSTEMS=y
710#
711# Miscellaneous filesystems
712#
713# CONFIG_ADFS_FS is not set 727# CONFIG_ADFS_FS is not set
714# CONFIG_AFFS_FS is not set 728# CONFIG_AFFS_FS is not set
715# CONFIG_HFS_FS is not set 729# CONFIG_HFS_FS is not set
@@ -719,6 +733,7 @@ CONFIG_TMPFS=y
719# CONFIG_EFS_FS is not set 733# CONFIG_EFS_FS is not set
720# CONFIG_JFFS2_FS is not set 734# CONFIG_JFFS2_FS is not set
721CONFIG_CRAMFS=y 735CONFIG_CRAMFS=y
736# CONFIG_SQUASHFS is not set
722# CONFIG_VXFS_FS is not set 737# CONFIG_VXFS_FS is not set
723# CONFIG_MINIX_FS is not set 738# CONFIG_MINIX_FS is not set
724# CONFIG_OMFS_FS is not set 739# CONFIG_OMFS_FS is not set
@@ -774,6 +789,7 @@ CONFIG_MSDOS_PARTITION=y
774# 789#
775# Library routines 790# Library routines
776# 791#
792CONFIG_GENERIC_FIND_LAST_BIT=y
777# CONFIG_CRC_CCITT is not set 793# CONFIG_CRC_CCITT is not set
778# CONFIG_CRC16 is not set 794# CONFIG_CRC16 is not set
779# CONFIG_CRC_T10DIF is not set 795# CONFIG_CRC_T10DIF is not set
@@ -821,6 +837,7 @@ CONFIG_DEBUG_INFO=y
821# CONFIG_DEBUG_MEMORY_INIT is not set 837# CONFIG_DEBUG_MEMORY_INIT is not set
822# CONFIG_DEBUG_LIST is not set 838# CONFIG_DEBUG_LIST is not set
823# CONFIG_DEBUG_SG is not set 839# CONFIG_DEBUG_SG is not set
840# CONFIG_DEBUG_NOTIFIERS is not set
824# CONFIG_BOOT_PRINTK_DELAY is not set 841# CONFIG_BOOT_PRINTK_DELAY is not set
825# CONFIG_RCU_TORTURE_TEST is not set 842# CONFIG_RCU_TORTURE_TEST is not set
826# CONFIG_RCU_CPU_STALL_DETECTOR is not set 843# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -829,6 +846,8 @@ CONFIG_DEBUG_INFO=y
829# CONFIG_FAULT_INJECTION is not set 846# CONFIG_FAULT_INJECTION is not set
830# CONFIG_LATENCYTOP is not set 847# CONFIG_LATENCYTOP is not set
831CONFIG_HAVE_FUNCTION_TRACER=y 848CONFIG_HAVE_FUNCTION_TRACER=y
849CONFIG_HAVE_DYNAMIC_FTRACE=y
850CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
832 851
833# 852#
834# Tracers 853# Tracers
@@ -837,11 +856,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
837# CONFIG_SCHED_TRACER is not set 856# CONFIG_SCHED_TRACER is not set
838# CONFIG_CONTEXT_SWITCH_TRACER is not set 857# CONFIG_CONTEXT_SWITCH_TRACER is not set
839# CONFIG_BOOT_TRACER is not set 858# CONFIG_BOOT_TRACER is not set
859# CONFIG_TRACE_BRANCH_PROFILING is not set
840# CONFIG_STACK_TRACER is not set 860# CONFIG_STACK_TRACER is not set
841# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 861# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
842# CONFIG_SAMPLES is not set 862# CONFIG_SAMPLES is not set
843CONFIG_HAVE_ARCH_KGDB=y 863CONFIG_HAVE_ARCH_KGDB=y
844# CONFIG_KGDB is not set 864# CONFIG_KGDB is not set
865CONFIG_PRINT_STACK_DEPTH=64
845# CONFIG_DEBUG_STACKOVERFLOW is not set 866# CONFIG_DEBUG_STACKOVERFLOW is not set
846# CONFIG_DEBUG_STACK_USAGE is not set 867# CONFIG_DEBUG_STACK_USAGE is not set
847# CONFIG_DEBUG_PAGEALLOC is not set 868# CONFIG_DEBUG_PAGEALLOC is not set
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index 5078594cd1f5..5103319a7f56 100644
--- a/arch/powerpc/configs/c2k_defconfig
+++ b/arch/powerpc/configs/c2k_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:34 2008 4# Mon Jan 26 15:35:26 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -45,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 45CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
51CONFIG_OF=y 51CONFIG_OF=y
@@ -78,12 +78,12 @@ CONFIG_AUDITSYSCALL=y
78CONFIG_AUDIT_TREE=y 78CONFIG_AUDIT_TREE=y
79# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=17 80CONFIG_LOG_BUF_SHIFT=17
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
83CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
84# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -122,6 +122,7 @@ CONFIG_SLUB_DEBUG=y
122CONFIG_SLUB=y 122CONFIG_SLUB=y
123# CONFIG_SLOB is not set 123# CONFIG_SLOB is not set
124CONFIG_PROFILING=y 124CONFIG_PROFILING=y
125CONFIG_TRACEPOINTS=y
125# CONFIG_MARKERS is not set 126# CONFIG_MARKERS is not set
126CONFIG_OPROFILE=m 127CONFIG_OPROFILE=m
127CONFIG_HAVE_OPROFILE=y 128CONFIG_HAVE_OPROFILE=y
@@ -135,7 +136,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
135# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 136# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
136CONFIG_SLABINFO=y 137CONFIG_SLABINFO=y
137CONFIG_RT_MUTEXES=y 138CONFIG_RT_MUTEXES=y
138# CONFIG_TINY_SHMEM is not set
139CONFIG_BASE_SMALL=0 139CONFIG_BASE_SMALL=0
140CONFIG_MODULES=y 140CONFIG_MODULES=y
141# CONFIG_MODULE_FORCE_LOAD is not set 141# CONFIG_MODULE_FORCE_LOAD is not set
@@ -143,11 +143,9 @@ CONFIG_MODULE_UNLOAD=y
143# CONFIG_MODULE_FORCE_UNLOAD is not set 143# CONFIG_MODULE_FORCE_UNLOAD is not set
144CONFIG_MODVERSIONS=y 144CONFIG_MODVERSIONS=y
145# CONFIG_MODULE_SRCVERSION_ALL is not set 145# CONFIG_MODULE_SRCVERSION_ALL is not set
146CONFIG_KMOD=y
147CONFIG_BLOCK=y 146CONFIG_BLOCK=y
148CONFIG_LBD=y 147CONFIG_LBD=y
149# CONFIG_BLK_DEV_IO_TRACE is not set 148# CONFIG_BLK_DEV_IO_TRACE is not set
150# CONFIG_LSF is not set
151# CONFIG_BLK_DEV_BSG is not set 149# CONFIG_BLK_DEV_BSG is not set
152# CONFIG_BLK_DEV_INTEGRITY is not set 150# CONFIG_BLK_DEV_INTEGRITY is not set
153 151
@@ -164,6 +162,10 @@ CONFIG_DEFAULT_CFQ=y
164# CONFIG_DEFAULT_NOOP is not set 162# CONFIG_DEFAULT_NOOP is not set
165CONFIG_DEFAULT_IOSCHED="cfq" 163CONFIG_DEFAULT_IOSCHED="cfq"
166CONFIG_CLASSIC_RCU=y 164CONFIG_CLASSIC_RCU=y
165# CONFIG_TREE_RCU is not set
166# CONFIG_PREEMPT_RCU is not set
167# CONFIG_TREE_RCU_TRACE is not set
168# CONFIG_PREEMPT_RCU_TRACE is not set
167# CONFIG_FREEZER is not set 169# CONFIG_FREEZER is not set
168 170
169# 171#
@@ -221,6 +223,7 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=m
221# 223#
222# CONFIG_TAU is not set 224# CONFIG_TAU is not set
223# CONFIG_FSL_ULI1575 is not set 225# CONFIG_FSL_ULI1575 is not set
226# CONFIG_SIMPLE_GPIO is not set
224 227
225# 228#
226# Kernel options 229# Kernel options
@@ -243,10 +246,12 @@ CONFIG_BINFMT_ELF=y
243# CONFIG_HAVE_AOUT is not set 246# CONFIG_HAVE_AOUT is not set
244CONFIG_BINFMT_MISC=y 247CONFIG_BINFMT_MISC=y
245# CONFIG_IOMMU_HELPER is not set 248# CONFIG_IOMMU_HELPER is not set
249CONFIG_PPC_NEED_DMA_SYNC_OPS=y
246CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 250CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
247CONFIG_ARCH_HAS_WALK_MEMORY=y 251CONFIG_ARCH_HAS_WALK_MEMORY=y
248CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 252CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
249# CONFIG_KEXEC is not set 253# CONFIG_KEXEC is not set
254# CONFIG_CRASH_DUMP is not set
250CONFIG_ARCH_FLATMEM_ENABLE=y 255CONFIG_ARCH_FLATMEM_ENABLE=y
251CONFIG_ARCH_POPULATES_NODE_MAP=y 256CONFIG_ARCH_POPULATES_NODE_MAP=y
252CONFIG_SELECT_MEMORY_MODEL=y 257CONFIG_SELECT_MEMORY_MODEL=y
@@ -258,12 +263,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
258CONFIG_PAGEFLAGS_EXTENDED=y 263CONFIG_PAGEFLAGS_EXTENDED=y
259CONFIG_SPLIT_PTLOCK_CPUS=4 264CONFIG_SPLIT_PTLOCK_CPUS=4
260CONFIG_MIGRATION=y 265CONFIG_MIGRATION=y
261# CONFIG_RESOURCES_64BIT is not set
262# CONFIG_PHYS_ADDR_T_64BIT is not set 266# CONFIG_PHYS_ADDR_T_64BIT is not set
263CONFIG_ZONE_DMA_FLAG=1 267CONFIG_ZONE_DMA_FLAG=1
264CONFIG_BOUNCE=y 268CONFIG_BOUNCE=y
265CONFIG_VIRT_TO_BUS=y 269CONFIG_VIRT_TO_BUS=y
266CONFIG_UNEVICTABLE_LRU=y 270CONFIG_UNEVICTABLE_LRU=y
271CONFIG_PPC_4K_PAGES=y
272# CONFIG_PPC_16K_PAGES is not set
273# CONFIG_PPC_64K_PAGES is not set
267CONFIG_FORCE_MAX_ZONEORDER=11 274CONFIG_FORCE_MAX_ZONEORDER=11
268# CONFIG_PROC_DEVICETREE is not set 275# CONFIG_PROC_DEVICETREE is not set
269# CONFIG_CMDLINE_BOOL is not set 276# CONFIG_CMDLINE_BOOL is not set
@@ -287,6 +294,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
287CONFIG_PCI_MSI=y 294CONFIG_PCI_MSI=y
288# CONFIG_PCI_LEGACY is not set 295# CONFIG_PCI_LEGACY is not set
289# CONFIG_PCI_DEBUG is not set 296# CONFIG_PCI_DEBUG is not set
297# CONFIG_PCI_STUB is not set
290# CONFIG_PCCARD is not set 298# CONFIG_PCCARD is not set
291CONFIG_HOTPLUG_PCI=y 299CONFIG_HOTPLUG_PCI=y
292# CONFIG_HOTPLUG_PCI_FAKE is not set 300# CONFIG_HOTPLUG_PCI_FAKE is not set
@@ -314,6 +322,8 @@ CONFIG_NET=y
314# 322#
315# Networking options 323# Networking options
316# 324#
325# CONFIG_NET_NS is not set
326CONFIG_COMPAT_NET_DEV_OPS=y
317CONFIG_PACKET=y 327CONFIG_PACKET=y
318CONFIG_PACKET_MMAP=y 328CONFIG_PACKET_MMAP=y
319CONFIG_UNIX=y 329CONFIG_UNIX=y
@@ -574,6 +584,7 @@ CONFIG_NET_SCH_TBF=m
574CONFIG_NET_SCH_GRED=m 584CONFIG_NET_SCH_GRED=m
575CONFIG_NET_SCH_DSMARK=m 585CONFIG_NET_SCH_DSMARK=m
576CONFIG_NET_SCH_NETEM=m 586CONFIG_NET_SCH_NETEM=m
587# CONFIG_NET_SCH_DRR is not set
577 588
578# 589#
579# Classification 590# Classification
@@ -594,6 +605,7 @@ CONFIG_NET_CLS_RSVP6=m
594# CONFIG_NET_CLS_ACT is not set 605# CONFIG_NET_CLS_ACT is not set
595CONFIG_NET_CLS_IND=y 606CONFIG_NET_CLS_IND=y
596CONFIG_NET_SCH_FIFO=y 607CONFIG_NET_SCH_FIFO=y
608# CONFIG_DCB is not set
597 609
598# 610#
599# Network testing 611# Network testing
@@ -616,8 +628,6 @@ CONFIG_BT_HIDP=m
616# 628#
617# Bluetooth device drivers 629# Bluetooth device drivers
618# 630#
619CONFIG_BT_HCIUSB=m
620CONFIG_BT_HCIUSB_SCO=y
621# CONFIG_BT_HCIBTUSB is not set 631# CONFIG_BT_HCIBTUSB is not set
622CONFIG_BT_HCIUART=m 632CONFIG_BT_HCIUART=m
623CONFIG_BT_HCIUART_H4=y 633CONFIG_BT_HCIUART_H4=y
@@ -635,12 +645,9 @@ CONFIG_WIRELESS=y
635CONFIG_WIRELESS_OLD_REGULATORY=y 645CONFIG_WIRELESS_OLD_REGULATORY=y
636CONFIG_WIRELESS_EXT=y 646CONFIG_WIRELESS_EXT=y
637CONFIG_WIRELESS_EXT_SYSFS=y 647CONFIG_WIRELESS_EXT_SYSFS=y
648# CONFIG_LIB80211 is not set
638# CONFIG_MAC80211 is not set 649# CONFIG_MAC80211 is not set
639CONFIG_IEEE80211=m 650# CONFIG_WIMAX is not set
640# CONFIG_IEEE80211_DEBUG is not set
641CONFIG_IEEE80211_CRYPT_WEP=m
642CONFIG_IEEE80211_CRYPT_CCMP=m
643CONFIG_IEEE80211_CRYPT_TKIP=m
644# CONFIG_RFKILL is not set 651# CONFIG_RFKILL is not set
645# CONFIG_NET_9P is not set 652# CONFIG_NET_9P is not set
646 653
@@ -665,6 +672,7 @@ CONFIG_MTD=y
665# CONFIG_MTD_DEBUG is not set 672# CONFIG_MTD_DEBUG is not set
666CONFIG_MTD_CONCAT=m 673CONFIG_MTD_CONCAT=m
667CONFIG_MTD_PARTITIONS=y 674CONFIG_MTD_PARTITIONS=y
675# CONFIG_MTD_TESTS is not set
668# CONFIG_MTD_REDBOOT_PARTS is not set 676# CONFIG_MTD_REDBOOT_PARTS is not set
669# CONFIG_MTD_CMDLINE_PARTS is not set 677# CONFIG_MTD_CMDLINE_PARTS is not set
670CONFIG_MTD_OF_PARTS=y 678CONFIG_MTD_OF_PARTS=y
@@ -737,6 +745,12 @@ CONFIG_MTD_PHYSMAP_OF=y
737# CONFIG_MTD_ONENAND is not set 745# CONFIG_MTD_ONENAND is not set
738 746
739# 747#
748# LPDDR flash memory drivers
749#
750# CONFIG_MTD_LPDDR is not set
751# CONFIG_MTD_QINFO_PROBE is not set
752
753#
740# UBI - Unsorted block images 754# UBI - Unsorted block images
741# 755#
742# CONFIG_MTD_UBI is not set 756# CONFIG_MTD_UBI is not set
@@ -834,6 +848,8 @@ CONFIG_MEGARAID_MAILBOX=m
834CONFIG_MEGARAID_SAS=m 848CONFIG_MEGARAID_SAS=m
835# CONFIG_SCSI_HPTIOP is not set 849# CONFIG_SCSI_HPTIOP is not set
836# CONFIG_SCSI_BUSLOGIC is not set 850# CONFIG_SCSI_BUSLOGIC is not set
851# CONFIG_LIBFC is not set
852# CONFIG_FCOE is not set
837# CONFIG_SCSI_DMX3191D is not set 853# CONFIG_SCSI_DMX3191D is not set
838# CONFIG_SCSI_EATA is not set 854# CONFIG_SCSI_EATA is not set
839CONFIG_SCSI_FUTURE_DOMAIN=m 855CONFIG_SCSI_FUTURE_DOMAIN=m
@@ -852,6 +868,7 @@ CONFIG_SCSI_QLOGIC_1280=m
852# CONFIG_SCSI_QLA_FC is not set 868# CONFIG_SCSI_QLA_FC is not set
853# CONFIG_SCSI_QLA_ISCSI is not set 869# CONFIG_SCSI_QLA_ISCSI is not set
854CONFIG_SCSI_LPFC=m 870CONFIG_SCSI_LPFC=m
871# CONFIG_SCSI_LPFC_DEBUG_FS is not set
855# CONFIG_SCSI_DC395x is not set 872# CONFIG_SCSI_DC395x is not set
856# CONFIG_SCSI_DC390T is not set 873# CONFIG_SCSI_DC390T is not set
857# CONFIG_SCSI_NSP32 is not set 874# CONFIG_SCSI_NSP32 is not set
@@ -896,6 +913,9 @@ CONFIG_VITESSE_PHY=y
896# CONFIG_BROADCOM_PHY is not set 913# CONFIG_BROADCOM_PHY is not set
897# CONFIG_ICPLUS_PHY is not set 914# CONFIG_ICPLUS_PHY is not set
898# CONFIG_REALTEK_PHY is not set 915# CONFIG_REALTEK_PHY is not set
916# CONFIG_NATIONAL_PHY is not set
917# CONFIG_STE10XP is not set
918# CONFIG_LSI_ET1011C_PHY is not set
899# CONFIG_FIXED_PHY is not set 919# CONFIG_FIXED_PHY is not set
900# CONFIG_MDIO_BITBANG is not set 920# CONFIG_MDIO_BITBANG is not set
901CONFIG_NET_ETHERNET=y 921CONFIG_NET_ETHERNET=y
@@ -949,6 +969,10 @@ CONFIG_MV643XX_ETH=y
949# CONFIG_IWLWIFI_LEDS is not set 969# CONFIG_IWLWIFI_LEDS is not set
950 970
951# 971#
972# Enable WiMAX (Networking options) to see the WiMAX drivers
973#
974
975#
952# USB Network Adapters 976# USB Network Adapters
953# 977#
954# CONFIG_USB_CATC is not set 978# CONFIG_USB_CATC is not set
@@ -1055,7 +1079,9 @@ CONFIG_SERIAL_CORE=y
1055CONFIG_SERIAL_CORE_CONSOLE=y 1079CONFIG_SERIAL_CORE_CONSOLE=y
1056# CONFIG_SERIAL_JSM is not set 1080# CONFIG_SERIAL_JSM is not set
1057CONFIG_UNIX98_PTYS=y 1081CONFIG_UNIX98_PTYS=y
1082# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1058# CONFIG_LEGACY_PTYS is not set 1083# CONFIG_LEGACY_PTYS is not set
1084# CONFIG_HVC_UDBG is not set
1059# CONFIG_IPMI_HANDLER is not set 1085# CONFIG_IPMI_HANDLER is not set
1060CONFIG_HW_RANDOM=m 1086CONFIG_HW_RANDOM=m
1061CONFIG_NVRAM=m 1087CONFIG_NVRAM=m
@@ -1124,8 +1150,8 @@ CONFIG_I2C_MV64XXX=m
1124# Miscellaneous I2C Chip support 1150# Miscellaneous I2C Chip support
1125# 1151#
1126# CONFIG_DS1682 is not set 1152# CONFIG_DS1682 is not set
1127# CONFIG_AT24 is not set 1153# CONFIG_EEPROM_AT24 is not set
1128CONFIG_SENSORS_EEPROM=m 1154CONFIG_EEPROM_LEGACY=m
1129CONFIG_SENSORS_PCF8574=m 1155CONFIG_SENSORS_PCF8574=m
1130# CONFIG_PCF8575 is not set 1156# CONFIG_PCF8575 is not set
1131# CONFIG_SENSORS_PCA9539 is not set 1157# CONFIG_SENSORS_PCA9539 is not set
@@ -1151,8 +1177,10 @@ CONFIG_SENSORS_ADM1026=m
1151# CONFIG_SENSORS_ADM1029 is not set 1177# CONFIG_SENSORS_ADM1029 is not set
1152CONFIG_SENSORS_ADM1031=m 1178CONFIG_SENSORS_ADM1031=m
1153# CONFIG_SENSORS_ADM9240 is not set 1179# CONFIG_SENSORS_ADM9240 is not set
1180# CONFIG_SENSORS_ADT7462 is not set
1154# CONFIG_SENSORS_ADT7470 is not set 1181# CONFIG_SENSORS_ADT7470 is not set
1155# CONFIG_SENSORS_ADT7473 is not set 1182# CONFIG_SENSORS_ADT7473 is not set
1183# CONFIG_SENSORS_ADT7475 is not set
1156# CONFIG_SENSORS_ATXP1 is not set 1184# CONFIG_SENSORS_ATXP1 is not set
1157CONFIG_SENSORS_DS1621=m 1185CONFIG_SENSORS_DS1621=m
1158# CONFIG_SENSORS_I5K_AMB is not set 1186# CONFIG_SENSORS_I5K_AMB is not set
@@ -1173,6 +1201,7 @@ CONFIG_SENSORS_LM87=m
1173CONFIG_SENSORS_LM90=m 1201CONFIG_SENSORS_LM90=m
1174# CONFIG_SENSORS_LM92 is not set 1202# CONFIG_SENSORS_LM92 is not set
1175# CONFIG_SENSORS_LM93 is not set 1203# CONFIG_SENSORS_LM93 is not set
1204# CONFIG_SENSORS_LTC4245 is not set
1176CONFIG_SENSORS_MAX1619=m 1205CONFIG_SENSORS_MAX1619=m
1177# CONFIG_SENSORS_MAX6650 is not set 1206# CONFIG_SENSORS_MAX6650 is not set
1178# CONFIG_SENSORS_PC87360 is not set 1207# CONFIG_SENSORS_PC87360 is not set
@@ -1218,11 +1247,11 @@ CONFIG_WDT_501_PCI=y
1218# USB-based Watchdog Cards 1247# USB-based Watchdog Cards
1219# 1248#
1220CONFIG_USBPCWATCHDOG=m 1249CONFIG_USBPCWATCHDOG=m
1250CONFIG_SSB_POSSIBLE=y
1221 1251
1222# 1252#
1223# Sonics Silicon Backplane 1253# Sonics Silicon Backplane
1224# 1254#
1225CONFIG_SSB_POSSIBLE=y
1226# CONFIG_SSB is not set 1255# CONFIG_SSB is not set
1227 1256
1228# 1257#
@@ -1234,14 +1263,8 @@ CONFIG_SSB_POSSIBLE=y
1234# CONFIG_MFD_TMIO is not set 1263# CONFIG_MFD_TMIO is not set
1235# CONFIG_MFD_WM8400 is not set 1264# CONFIG_MFD_WM8400 is not set
1236# CONFIG_MFD_WM8350_I2C is not set 1265# CONFIG_MFD_WM8350_I2C is not set
1237 1266# CONFIG_MFD_PCF50633 is not set
1238#
1239# Voltage and Current regulators
1240#
1241# CONFIG_REGULATOR is not set 1267# CONFIG_REGULATOR is not set
1242# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1243# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1244# CONFIG_REGULATOR_BQ24022 is not set
1245 1268
1246# 1269#
1247# Multimedia devices 1270# Multimedia devices
@@ -1298,7 +1321,7 @@ CONFIG_USB_DEVICEFS=y
1298# CONFIG_USB_DYNAMIC_MINORS is not set 1321# CONFIG_USB_DYNAMIC_MINORS is not set
1299CONFIG_USB_SUSPEND=y 1322CONFIG_USB_SUSPEND=y
1300# CONFIG_USB_OTG is not set 1323# CONFIG_USB_OTG is not set
1301CONFIG_USB_MON=y 1324CONFIG_USB_MON=m
1302# CONFIG_USB_WUSB is not set 1325# CONFIG_USB_WUSB is not set
1303# CONFIG_USB_WUSB_CBAF is not set 1326# CONFIG_USB_WUSB_CBAF is not set
1304 1327
@@ -1310,6 +1333,7 @@ CONFIG_USB_EHCI_HCD=m
1310CONFIG_USB_EHCI_ROOT_HUB_TT=y 1333CONFIG_USB_EHCI_ROOT_HUB_TT=y
1311# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1334# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1312CONFIG_USB_EHCI_HCD_PPC_OF=y 1335CONFIG_USB_EHCI_HCD_PPC_OF=y
1336# CONFIG_USB_OXU210HP_HCD is not set
1313# CONFIG_USB_ISP116X_HCD is not set 1337# CONFIG_USB_ISP116X_HCD is not set
1314# CONFIG_USB_ISP1760_HCD is not set 1338# CONFIG_USB_ISP1760_HCD is not set
1315CONFIG_USB_OHCI_HCD=m 1339CONFIG_USB_OHCI_HCD=m
@@ -1339,18 +1363,17 @@ CONFIG_USB_PRINTER=m
1339# CONFIG_USB_TMC is not set 1363# CONFIG_USB_TMC is not set
1340 1364
1341# 1365#
1342# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1366# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1343# 1367#
1344 1368
1345# 1369#
1346# may also be needed; see USB_STORAGE Help for more information 1370# see USB_STORAGE Help for more information
1347# 1371#
1348CONFIG_USB_STORAGE=m 1372CONFIG_USB_STORAGE=m
1349# CONFIG_USB_STORAGE_DEBUG is not set 1373# CONFIG_USB_STORAGE_DEBUG is not set
1350CONFIG_USB_STORAGE_DATAFAB=y 1374CONFIG_USB_STORAGE_DATAFAB=y
1351CONFIG_USB_STORAGE_FREECOM=y 1375CONFIG_USB_STORAGE_FREECOM=y
1352CONFIG_USB_STORAGE_ISD200=y 1376CONFIG_USB_STORAGE_ISD200=y
1353CONFIG_USB_STORAGE_DPCM=y
1354# CONFIG_USB_STORAGE_USBAT is not set 1377# CONFIG_USB_STORAGE_USBAT is not set
1355CONFIG_USB_STORAGE_SDDR09=y 1378CONFIG_USB_STORAGE_SDDR09=y
1356CONFIG_USB_STORAGE_SDDR55=y 1379CONFIG_USB_STORAGE_SDDR55=y
@@ -1419,12 +1442,14 @@ CONFIG_USB_SERIAL_PL2303=m
1419# CONFIG_USB_SERIAL_HP4X is not set 1442# CONFIG_USB_SERIAL_HP4X is not set
1420CONFIG_USB_SERIAL_SAFE=m 1443CONFIG_USB_SERIAL_SAFE=m
1421CONFIG_USB_SERIAL_SAFE_PADDED=y 1444CONFIG_USB_SERIAL_SAFE_PADDED=y
1445# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1422# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1446# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1423# CONFIG_USB_SERIAL_TI is not set 1447# CONFIG_USB_SERIAL_TI is not set
1424CONFIG_USB_SERIAL_CYBERJACK=m 1448CONFIG_USB_SERIAL_CYBERJACK=m
1425CONFIG_USB_SERIAL_XIRCOM=m 1449CONFIG_USB_SERIAL_XIRCOM=m
1426# CONFIG_USB_SERIAL_OPTION is not set 1450# CONFIG_USB_SERIAL_OPTION is not set
1427CONFIG_USB_SERIAL_OMNINET=m 1451CONFIG_USB_SERIAL_OMNINET=m
1452# CONFIG_USB_SERIAL_OPTICON is not set
1428# CONFIG_USB_SERIAL_DEBUG is not set 1453# CONFIG_USB_SERIAL_DEBUG is not set
1429 1454
1430# 1455#
@@ -1458,6 +1483,10 @@ CONFIG_USB_SPEEDTOUCH=m
1458# CONFIG_USB_UEAGLEATM is not set 1483# CONFIG_USB_UEAGLEATM is not set
1459# CONFIG_USB_XUSBATM is not set 1484# CONFIG_USB_XUSBATM is not set
1460# CONFIG_USB_GADGET is not set 1485# CONFIG_USB_GADGET is not set
1486
1487#
1488# OTG and related infrastructure
1489#
1461# CONFIG_UWB is not set 1490# CONFIG_UWB is not set
1462# CONFIG_MMC is not set 1491# CONFIG_MMC is not set
1463# CONFIG_MEMSTICK is not set 1492# CONFIG_MEMSTICK is not set
@@ -1500,19 +1529,23 @@ CONFIG_EXT3_FS_POSIX_ACL=y
1500CONFIG_EXT3_FS_SECURITY=y 1529CONFIG_EXT3_FS_SECURITY=y
1501# CONFIG_EXT4_FS is not set 1530# CONFIG_EXT4_FS is not set
1502CONFIG_JBD=m 1531CONFIG_JBD=m
1532# CONFIG_JBD_DEBUG is not set
1503CONFIG_FS_MBCACHE=m 1533CONFIG_FS_MBCACHE=m
1504# CONFIG_REISERFS_FS is not set 1534# CONFIG_REISERFS_FS is not set
1505# CONFIG_JFS_FS is not set 1535# CONFIG_JFS_FS is not set
1506CONFIG_FS_POSIX_ACL=y 1536CONFIG_FS_POSIX_ACL=y
1507CONFIG_FILE_LOCKING=y 1537CONFIG_FILE_LOCKING=y
1508# CONFIG_XFS_FS is not set 1538# CONFIG_XFS_FS is not set
1539# CONFIG_GFS2_FS is not set
1509# CONFIG_OCFS2_FS is not set 1540# CONFIG_OCFS2_FS is not set
1541# CONFIG_BTRFS_FS is not set
1510CONFIG_DNOTIFY=y 1542CONFIG_DNOTIFY=y
1511CONFIG_INOTIFY=y 1543CONFIG_INOTIFY=y
1512CONFIG_INOTIFY_USER=y 1544CONFIG_INOTIFY_USER=y
1513CONFIG_QUOTA=y 1545CONFIG_QUOTA=y
1514# CONFIG_QUOTA_NETLINK_INTERFACE is not set 1546# CONFIG_QUOTA_NETLINK_INTERFACE is not set
1515CONFIG_PRINT_QUOTA_WARNING=y 1547CONFIG_PRINT_QUOTA_WARNING=y
1548CONFIG_QUOTA_TREE=y
1516# CONFIG_QFMT_V1 is not set 1549# CONFIG_QFMT_V1 is not set
1517CONFIG_QFMT_V2=y 1550CONFIG_QFMT_V2=y
1518CONFIG_QUOTACTL=y 1551CONFIG_QUOTACTL=y
@@ -1549,10 +1582,7 @@ CONFIG_TMPFS=y
1549# CONFIG_TMPFS_POSIX_ACL is not set 1582# CONFIG_TMPFS_POSIX_ACL is not set
1550# CONFIG_HUGETLB_PAGE is not set 1583# CONFIG_HUGETLB_PAGE is not set
1551# CONFIG_CONFIGFS_FS is not set 1584# CONFIG_CONFIGFS_FS is not set
1552 1585CONFIG_MISC_FILESYSTEMS=y
1553#
1554# Miscellaneous filesystems
1555#
1556# CONFIG_ADFS_FS is not set 1586# CONFIG_ADFS_FS is not set
1557# CONFIG_AFFS_FS is not set 1587# CONFIG_AFFS_FS is not set
1558# CONFIG_ECRYPT_FS is not set 1588# CONFIG_ECRYPT_FS is not set
@@ -1573,6 +1603,7 @@ CONFIG_JFFS2_ZLIB=y
1573CONFIG_JFFS2_RTIME=y 1603CONFIG_JFFS2_RTIME=y
1574# CONFIG_JFFS2_RUBIN is not set 1604# CONFIG_JFFS2_RUBIN is not set
1575CONFIG_CRAMFS=m 1605CONFIG_CRAMFS=m
1606# CONFIG_SQUASHFS is not set
1576CONFIG_VXFS_FS=m 1607CONFIG_VXFS_FS=m
1577# CONFIG_MINIX_FS is not set 1608# CONFIG_MINIX_FS is not set
1578# CONFIG_OMFS_FS is not set 1609# CONFIG_OMFS_FS is not set
@@ -1678,6 +1709,7 @@ CONFIG_NLS_UTF8=m
1678# Library routines 1709# Library routines
1679# 1710#
1680CONFIG_BITREVERSE=y 1711CONFIG_BITREVERSE=y
1712CONFIG_GENERIC_FIND_LAST_BIT=y
1681CONFIG_CRC_CCITT=m 1713CONFIG_CRC_CCITT=m
1682# CONFIG_CRC16 is not set 1714# CONFIG_CRC16 is not set
1683CONFIG_CRC_T10DIF=m 1715CONFIG_CRC_T10DIF=m
@@ -1703,7 +1735,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1703CONFIG_FRAME_WARN=1024 1735CONFIG_FRAME_WARN=1024
1704CONFIG_MAGIC_SYSRQ=y 1736CONFIG_MAGIC_SYSRQ=y
1705# CONFIG_UNUSED_SYMBOLS is not set 1737# CONFIG_UNUSED_SYMBOLS is not set
1706# CONFIG_DEBUG_FS is not set 1738CONFIG_DEBUG_FS=y
1707# CONFIG_HEADERS_CHECK is not set 1739# CONFIG_HEADERS_CHECK is not set
1708CONFIG_DEBUG_KERNEL=y 1740CONFIG_DEBUG_KERNEL=y
1709# CONFIG_DEBUG_SHIRQ is not set 1741# CONFIG_DEBUG_SHIRQ is not set
@@ -1722,6 +1754,7 @@ CONFIG_DEBUG_SPINLOCK=y
1722# CONFIG_DEBUG_MUTEXES is not set 1754# CONFIG_DEBUG_MUTEXES is not set
1723CONFIG_DEBUG_SPINLOCK_SLEEP=y 1755CONFIG_DEBUG_SPINLOCK_SLEEP=y
1724# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1756# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1757CONFIG_STACKTRACE=y
1725# CONFIG_DEBUG_KOBJECT is not set 1758# CONFIG_DEBUG_KOBJECT is not set
1726CONFIG_DEBUG_HIGHMEM=y 1759CONFIG_DEBUG_HIGHMEM=y
1727CONFIG_DEBUG_BUGVERBOSE=y 1760CONFIG_DEBUG_BUGVERBOSE=y
@@ -1731,6 +1764,7 @@ CONFIG_DEBUG_INFO=y
1731CONFIG_DEBUG_MEMORY_INIT=y 1764CONFIG_DEBUG_MEMORY_INIT=y
1732# CONFIG_DEBUG_LIST is not set 1765# CONFIG_DEBUG_LIST is not set
1733# CONFIG_DEBUG_SG is not set 1766# CONFIG_DEBUG_SG is not set
1767# CONFIG_DEBUG_NOTIFIERS is not set
1734# CONFIG_BOOT_PRINTK_DELAY is not set 1768# CONFIG_BOOT_PRINTK_DELAY is not set
1735# CONFIG_RCU_TORTURE_TEST is not set 1769# CONFIG_RCU_TORTURE_TEST is not set
1736# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1770# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1741,7 +1775,12 @@ CONFIG_DEBUG_MEMORY_INIT=y
1741# CONFIG_FAULT_INJECTION is not set 1775# CONFIG_FAULT_INJECTION is not set
1742# CONFIG_LATENCYTOP is not set 1776# CONFIG_LATENCYTOP is not set
1743CONFIG_SYSCTL_SYSCALL_CHECK=y 1777CONFIG_SYSCTL_SYSCALL_CHECK=y
1778CONFIG_NOP_TRACER=y
1744CONFIG_HAVE_FUNCTION_TRACER=y 1779CONFIG_HAVE_FUNCTION_TRACER=y
1780CONFIG_HAVE_DYNAMIC_FTRACE=y
1781CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1782CONFIG_RING_BUFFER=y
1783CONFIG_TRACING=y
1745 1784
1746# 1785#
1747# Tracers 1786# Tracers
@@ -1750,11 +1789,14 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1750# CONFIG_SCHED_TRACER is not set 1789# CONFIG_SCHED_TRACER is not set
1751# CONFIG_CONTEXT_SWITCH_TRACER is not set 1790# CONFIG_CONTEXT_SWITCH_TRACER is not set
1752# CONFIG_BOOT_TRACER is not set 1791# CONFIG_BOOT_TRACER is not set
1792# CONFIG_TRACE_BRANCH_PROFILING is not set
1753# CONFIG_STACK_TRACER is not set 1793# CONFIG_STACK_TRACER is not set
1794# CONFIG_FTRACE_STARTUP_TEST is not set
1754# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1795# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1755# CONFIG_SAMPLES is not set 1796# CONFIG_SAMPLES is not set
1756CONFIG_HAVE_ARCH_KGDB=y 1797CONFIG_HAVE_ARCH_KGDB=y
1757# CONFIG_KGDB is not set 1798# CONFIG_KGDB is not set
1799CONFIG_PRINT_STACK_DEPTH=64
1758CONFIG_DEBUG_STACKOVERFLOW=y 1800CONFIG_DEBUG_STACKOVERFLOW=y
1759CONFIG_DEBUG_STACK_USAGE=y 1801CONFIG_DEBUG_STACK_USAGE=y
1760# CONFIG_DEBUG_PAGEALLOC is not set 1802# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1763,6 +1805,7 @@ CONFIG_DEBUG_STACK_USAGE=y
1763# CONFIG_MSI_BITMAP_SELFTEST is not set 1805# CONFIG_MSI_BITMAP_SELFTEST is not set
1764# CONFIG_XMON is not set 1806# CONFIG_XMON is not set
1765# CONFIG_IRQSTACKS is not set 1807# CONFIG_IRQSTACKS is not set
1808# CONFIG_VIRQ_DEBUG is not set
1766# CONFIG_BDI_SWITCH is not set 1809# CONFIG_BDI_SWITCH is not set
1767CONFIG_BOOTX_TEXT=y 1810CONFIG_BOOTX_TEXT=y
1768# CONFIG_PPC_EARLY_DEBUG is not set 1811# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1776,6 +1819,7 @@ CONFIG_SECURITY=y
1776# CONFIG_SECURITYFS is not set 1819# CONFIG_SECURITYFS is not set
1777CONFIG_SECURITY_NETWORK=y 1820CONFIG_SECURITY_NETWORK=y
1778# CONFIG_SECURITY_NETWORK_XFRM is not set 1821# CONFIG_SECURITY_NETWORK_XFRM is not set
1822# CONFIG_SECURITY_PATH is not set
1779# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1823# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1780CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1824CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1781CONFIG_SECURITY_SELINUX=y 1825CONFIG_SECURITY_SELINUX=y
@@ -1785,7 +1829,6 @@ CONFIG_SECURITY_SELINUX_DISABLE=y
1785CONFIG_SECURITY_SELINUX_DEVELOP=y 1829CONFIG_SECURITY_SELINUX_DEVELOP=y
1786CONFIG_SECURITY_SELINUX_AVC_STATS=y 1830CONFIG_SECURITY_SELINUX_AVC_STATS=y
1787CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 1831CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
1788# CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set
1789# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set 1832# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
1790CONFIG_CRYPTO=y 1833CONFIG_CRYPTO=y
1791 1834
@@ -1794,11 +1837,16 @@ CONFIG_CRYPTO=y
1794# 1837#
1795# CONFIG_CRYPTO_FIPS is not set 1838# CONFIG_CRYPTO_FIPS is not set
1796CONFIG_CRYPTO_ALGAPI=y 1839CONFIG_CRYPTO_ALGAPI=y
1797CONFIG_CRYPTO_AEAD=y 1840CONFIG_CRYPTO_ALGAPI2=y
1841CONFIG_CRYPTO_AEAD=m
1842CONFIG_CRYPTO_AEAD2=y
1798CONFIG_CRYPTO_BLKCIPHER=y 1843CONFIG_CRYPTO_BLKCIPHER=y
1844CONFIG_CRYPTO_BLKCIPHER2=y
1799CONFIG_CRYPTO_HASH=y 1845CONFIG_CRYPTO_HASH=y
1800CONFIG_CRYPTO_RNG=y 1846CONFIG_CRYPTO_HASH2=y
1847CONFIG_CRYPTO_RNG2=y
1801CONFIG_CRYPTO_MANAGER=y 1848CONFIG_CRYPTO_MANAGER=y
1849CONFIG_CRYPTO_MANAGER2=y
1802# CONFIG_CRYPTO_GF128MUL is not set 1850# CONFIG_CRYPTO_GF128MUL is not set
1803CONFIG_CRYPTO_NULL=m 1851CONFIG_CRYPTO_NULL=m
1804# CONFIG_CRYPTO_CRYPTD is not set 1852# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index c420e47426f8..c6d2baa7aaeb 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -1012,7 +1012,7 @@ CONFIG_I2C_ALGOBIT=y
1012# Miscellaneous I2C Chip support 1012# Miscellaneous I2C Chip support
1013# 1013#
1014# CONFIG_DS1682 is not set 1014# CONFIG_DS1682 is not set
1015# CONFIG_SENSORS_EEPROM is not set 1015# CONFIG_EEPROM_LEGACY is not set
1016# CONFIG_SENSORS_PCF8574 is not set 1016# CONFIG_SENSORS_PCF8574 is not set
1017# CONFIG_PCF8575 is not set 1017# CONFIG_PCF8575 is not set
1018# CONFIG_SENSORS_PCF8591 is not set 1018# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/powerpc/configs/celleb_defconfig b/arch/powerpc/configs/celleb_defconfig
index 9ba3c6fc2fef..d2123779512a 100644
--- a/arch/powerpc/configs/celleb_defconfig
+++ b/arch/powerpc/configs/celleb_defconfig
@@ -834,7 +834,7 @@ CONFIG_I2C_ALGOBIT=y
834# Miscellaneous I2C Chip support 834# Miscellaneous I2C Chip support
835# 835#
836# CONFIG_DS1682 is not set 836# CONFIG_DS1682 is not set
837# CONFIG_SENSORS_EEPROM is not set 837# CONFIG_EEPROM_LEGACY is not set
838# CONFIG_SENSORS_PCF8574 is not set 838# CONFIG_SENSORS_PCF8574 is not set
839# CONFIG_PCF8575 is not set 839# CONFIG_PCF8575 is not set
840# CONFIG_SENSORS_PCF8591 is not set 840# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/powerpc/configs/chrp32_defconfig b/arch/powerpc/configs/chrp32_defconfig
index 63b3c2372ce8..5094a65a4493 100644
--- a/arch/powerpc/configs/chrp32_defconfig
+++ b/arch/powerpc/configs/chrp32_defconfig
@@ -941,8 +941,8 @@ CONFIG_I2C_ALGOBIT=y
941# Miscellaneous I2C Chip support 941# Miscellaneous I2C Chip support
942# 942#
943# CONFIG_DS1682 is not set 943# CONFIG_DS1682 is not set
944# CONFIG_AT24 is not set 944# CONFIG_EEPROM_AT24 is not set
945# CONFIG_SENSORS_EEPROM is not set 945# CONFIG_EEPROM_LEGACY is not set
946# CONFIG_SENSORS_PCF8574 is not set 946# CONFIG_SENSORS_PCF8574 is not set
947# CONFIG_PCF8575 is not set 947# CONFIG_PCF8575 is not set
948# CONFIG_SENSORS_PCA9539 is not set 948# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index a6f1cff564e6..add6419c15d9 100644
--- a/arch/powerpc/configs/ep8248e_defconfig
+++ b/arch/powerpc/configs/ep8248e_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:36 2008 4# Mon Jan 26 15:35:27 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_GPIO=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -86,6 +86,7 @@ CONFIG_EMBEDDED=y
86CONFIG_SYSCTL_SYSCALL=y 86CONFIG_SYSCTL_SYSCALL=y
87CONFIG_KALLSYMS=y 87CONFIG_KALLSYMS=y
88CONFIG_KALLSYMS_ALL=y 88CONFIG_KALLSYMS_ALL=y
89CONFIG_KALLSYMS_STRIP_GENERATED=y
89# CONFIG_KALLSYMS_EXTRA_PASS is not set 90# CONFIG_KALLSYMS_EXTRA_PASS is not set
90CONFIG_HOTPLUG=y 91CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 92CONFIG_PRINTK=y
@@ -107,7 +108,6 @@ CONFIG_SLAB=y
107# CONFIG_SLUB is not set 108# CONFIG_SLUB is not set
108# CONFIG_SLOB is not set 109# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set 110# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y 111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 112CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
113CONFIG_HAVE_IOREMAP_PROT=y 113CONFIG_HAVE_IOREMAP_PROT=y
@@ -118,13 +118,11 @@ CONFIG_HAVE_CLK=y
118# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 118# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set
122CONFIG_BASE_SMALL=0 121CONFIG_BASE_SMALL=0
123# CONFIG_MODULES is not set 122# CONFIG_MODULES is not set
124CONFIG_BLOCK=y 123CONFIG_BLOCK=y
125# CONFIG_LBD is not set 124# CONFIG_LBD is not set
126# CONFIG_BLK_DEV_IO_TRACE is not set 125# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_INTEGRITY is not set 126# CONFIG_BLK_DEV_INTEGRITY is not set
129 127
130# 128#
@@ -140,6 +138,10 @@ CONFIG_DEFAULT_DEADLINE=y
140# CONFIG_DEFAULT_NOOP is not set 138# CONFIG_DEFAULT_NOOP is not set
141CONFIG_DEFAULT_IOSCHED="deadline" 139CONFIG_DEFAULT_IOSCHED="deadline"
142CONFIG_CLASSIC_RCU=y 140CONFIG_CLASSIC_RCU=y
141# CONFIG_TREE_RCU is not set
142# CONFIG_PREEMPT_RCU is not set
143# CONFIG_TREE_RCU_TRACE is not set
144# CONFIG_PREEMPT_RCU_TRACE is not set
143# CONFIG_FREEZER is not set 145# CONFIG_FREEZER is not set
144 146
145# 147#
@@ -181,6 +183,7 @@ CONFIG_8272=y
181CONFIG_CPM2=y 183CONFIG_CPM2=y
182# CONFIG_FSL_ULI1575 is not set 184# CONFIG_FSL_ULI1575 is not set
183CONFIG_CPM=y 185CONFIG_CPM=y
186# CONFIG_SIMPLE_GPIO is not set
184 187
185# 188#
186# Kernel options 189# Kernel options
@@ -206,6 +209,7 @@ CONFIG_BINFMT_MISC=y
206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
207CONFIG_ARCH_HAS_WALK_MEMORY=y 210CONFIG_ARCH_HAS_WALK_MEMORY=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 211CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
212# CONFIG_CRASH_DUMP is not set
209CONFIG_ARCH_FLATMEM_ENABLE=y 213CONFIG_ARCH_FLATMEM_ENABLE=y
210CONFIG_ARCH_POPULATES_NODE_MAP=y 214CONFIG_ARCH_POPULATES_NODE_MAP=y
211CONFIG_FLATMEM=y 215CONFIG_FLATMEM=y
@@ -213,12 +217,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
213CONFIG_PAGEFLAGS_EXTENDED=y 217CONFIG_PAGEFLAGS_EXTENDED=y
214CONFIG_SPLIT_PTLOCK_CPUS=4 218CONFIG_SPLIT_PTLOCK_CPUS=4
215CONFIG_MIGRATION=y 219CONFIG_MIGRATION=y
216# CONFIG_RESOURCES_64BIT is not set
217# CONFIG_PHYS_ADDR_T_64BIT is not set 220# CONFIG_PHYS_ADDR_T_64BIT is not set
218CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
219CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
220CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
221CONFIG_UNEVICTABLE_LRU=y 224CONFIG_UNEVICTABLE_LRU=y
225CONFIG_PPC_4K_PAGES=y
226# CONFIG_PPC_16K_PAGES is not set
227# CONFIG_PPC_64K_PAGES is not set
222CONFIG_FORCE_MAX_ZONEORDER=11 228CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 229CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 230# CONFIG_CMDLINE_BOOL is not set
@@ -243,6 +249,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
243# CONFIG_PCI_MSI is not set 249# CONFIG_PCI_MSI is not set
244# CONFIG_PCI_LEGACY is not set 250# CONFIG_PCI_LEGACY is not set
245# CONFIG_PCI_DEBUG is not set 251# CONFIG_PCI_DEBUG is not set
252# CONFIG_PCI_STUB is not set
246# CONFIG_PCCARD is not set 253# CONFIG_PCCARD is not set
247# CONFIG_HOTPLUG_PCI is not set 254# CONFIG_HOTPLUG_PCI is not set
248# CONFIG_HAS_RAPIDIO is not set 255# CONFIG_HAS_RAPIDIO is not set
@@ -265,6 +272,7 @@ CONFIG_NET=y
265# 272#
266# Networking options 273# Networking options
267# 274#
275CONFIG_COMPAT_NET_DEV_OPS=y
268CONFIG_PACKET=y 276CONFIG_PACKET=y
269# CONFIG_PACKET_MMAP is not set 277# CONFIG_PACKET_MMAP is not set
270CONFIG_UNIX=y 278CONFIG_UNIX=y
@@ -346,6 +354,7 @@ CONFIG_NETFILTER_ADVANCED=y
346# CONFIG_IPX is not set 354# CONFIG_IPX is not set
347# CONFIG_ATALK is not set 355# CONFIG_ATALK is not set
348# CONFIG_NET_SCHED is not set 356# CONFIG_NET_SCHED is not set
357# CONFIG_DCB is not set
349 358
350# 359#
351# Network testing 360# Network testing
@@ -360,8 +369,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 369# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 370CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 371# CONFIG_WIRELESS_EXT is not set
372# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 373# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 374# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 375# CONFIG_RFKILL is not set
366 376
367# 377#
@@ -455,6 +465,12 @@ CONFIG_MTD_PHYSMAP_OF=y
455# CONFIG_MTD_ONENAND is not set 465# CONFIG_MTD_ONENAND is not set
456 466
457# 467#
468# LPDDR flash memory drivers
469#
470# CONFIG_MTD_LPDDR is not set
471# CONFIG_MTD_QINFO_PROBE is not set
472
473#
458# UBI - Unsorted block images 474# UBI - Unsorted block images
459# 475#
460# CONFIG_MTD_UBI is not set 476# CONFIG_MTD_UBI is not set
@@ -522,9 +538,12 @@ CONFIG_DAVICOM_PHY=y
522# CONFIG_BROADCOM_PHY is not set 538# CONFIG_BROADCOM_PHY is not set
523# CONFIG_ICPLUS_PHY is not set 539# CONFIG_ICPLUS_PHY is not set
524# CONFIG_REALTEK_PHY is not set 540# CONFIG_REALTEK_PHY is not set
541# CONFIG_NATIONAL_PHY is not set
542# CONFIG_STE10XP is not set
543# CONFIG_LSI_ET1011C_PHY is not set
525# CONFIG_FIXED_PHY is not set 544# CONFIG_FIXED_PHY is not set
526CONFIG_MDIO_BITBANG=y 545CONFIG_MDIO_BITBANG=y
527# CONFIG_MDIO_OF_GPIO is not set 546# CONFIG_MDIO_GPIO is not set
528CONFIG_NET_ETHERNET=y 547CONFIG_NET_ETHERNET=y
529CONFIG_MII=y 548CONFIG_MII=y
530# CONFIG_HAPPYMEAL is not set 549# CONFIG_HAPPYMEAL is not set
@@ -569,6 +588,7 @@ CONFIG_NETDEV_1000=y
569# CONFIG_JME is not set 588# CONFIG_JME is not set
570CONFIG_NETDEV_10000=y 589CONFIG_NETDEV_10000=y
571# CONFIG_CHELSIO_T1 is not set 590# CONFIG_CHELSIO_T1 is not set
591CONFIG_CHELSIO_T3_DEPENDS=y
572# CONFIG_CHELSIO_T3 is not set 592# CONFIG_CHELSIO_T3 is not set
573# CONFIG_ENIC is not set 593# CONFIG_ENIC is not set
574# CONFIG_IXGBE is not set 594# CONFIG_IXGBE is not set
@@ -591,6 +611,10 @@ CONFIG_NETDEV_10000=y
591# CONFIG_WLAN_PRE80211 is not set 611# CONFIG_WLAN_PRE80211 is not set
592# CONFIG_WLAN_80211 is not set 612# CONFIG_WLAN_80211 is not set
593# CONFIG_IWLWIFI_LEDS is not set 613# CONFIG_IWLWIFI_LEDS is not set
614
615#
616# Enable WiMAX (Networking options) to see the WiMAX drivers
617#
594# CONFIG_WAN is not set 618# CONFIG_WAN is not set
595# CONFIG_FDDI is not set 619# CONFIG_FDDI is not set
596# CONFIG_PPP is not set 620# CONFIG_PPP is not set
@@ -633,6 +657,7 @@ CONFIG_SERIAL_CPM=y
633CONFIG_SERIAL_CPM_CONSOLE=y 657CONFIG_SERIAL_CPM_CONSOLE=y
634# CONFIG_SERIAL_JSM is not set 658# CONFIG_SERIAL_JSM is not set
635CONFIG_UNIX98_PTYS=y 659CONFIG_UNIX98_PTYS=y
660# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
636CONFIG_LEGACY_PTYS=y 661CONFIG_LEGACY_PTYS=y
637CONFIG_LEGACY_PTY_COUNT=256 662CONFIG_LEGACY_PTY_COUNT=256
638# CONFIG_IPMI_HANDLER is not set 663# CONFIG_IPMI_HANDLER is not set
@@ -651,6 +676,11 @@ CONFIG_GPIOLIB=y
651# CONFIG_DEBUG_GPIO is not set 676# CONFIG_DEBUG_GPIO is not set
652 677
653# 678#
679# Memory mapped GPIO expanders:
680#
681# CONFIG_GPIO_XILINX is not set
682
683#
654# I2C GPIO expanders: 684# I2C GPIO expanders:
655# 685#
656 686
@@ -668,11 +698,11 @@ CONFIG_GPIOLIB=y
668# CONFIG_THERMAL is not set 698# CONFIG_THERMAL is not set
669# CONFIG_THERMAL_HWMON is not set 699# CONFIG_THERMAL_HWMON is not set
670# CONFIG_WATCHDOG is not set 700# CONFIG_WATCHDOG is not set
701CONFIG_SSB_POSSIBLE=y
671 702
672# 703#
673# Sonics Silicon Backplane 704# Sonics Silicon Backplane
674# 705#
675CONFIG_SSB_POSSIBLE=y
676# CONFIG_SSB is not set 706# CONFIG_SSB is not set
677 707
678# 708#
@@ -682,14 +712,7 @@ CONFIG_SSB_POSSIBLE=y
682# CONFIG_MFD_SM501 is not set 712# CONFIG_MFD_SM501 is not set
683# CONFIG_HTC_PASIC3 is not set 713# CONFIG_HTC_PASIC3 is not set
684# CONFIG_MFD_TMIO is not set 714# CONFIG_MFD_TMIO is not set
685
686#
687# Voltage and Current regulators
688#
689# CONFIG_REGULATOR is not set 715# CONFIG_REGULATOR is not set
690# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
691# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
692# CONFIG_REGULATOR_BQ24022 is not set
693 716
694# 717#
695# Multimedia devices 718# Multimedia devices
@@ -782,13 +805,11 @@ CONFIG_TMPFS=y
782# CONFIG_TMPFS_POSIX_ACL is not set 805# CONFIG_TMPFS_POSIX_ACL is not set
783# CONFIG_HUGETLB_PAGE is not set 806# CONFIG_HUGETLB_PAGE is not set
784# CONFIG_CONFIGFS_FS is not set 807# CONFIG_CONFIGFS_FS is not set
785 808CONFIG_MISC_FILESYSTEMS=y
786#
787# Miscellaneous filesystems
788#
789# CONFIG_HFSPLUS_FS is not set 809# CONFIG_HFSPLUS_FS is not set
790# CONFIG_JFFS2_FS is not set 810# CONFIG_JFFS2_FS is not set
791CONFIG_CRAMFS=y 811CONFIG_CRAMFS=y
812# CONFIG_SQUASHFS is not set
792# CONFIG_VXFS_FS is not set 813# CONFIG_VXFS_FS is not set
793# CONFIG_MINIX_FS is not set 814# CONFIG_MINIX_FS is not set
794# CONFIG_OMFS_FS is not set 815# CONFIG_OMFS_FS is not set
@@ -877,6 +898,7 @@ CONFIG_NLS_UTF8=y
877# 898#
878# Library routines 899# Library routines
879# 900#
901CONFIG_GENERIC_FIND_LAST_BIT=y
880# CONFIG_CRC_CCITT is not set 902# CONFIG_CRC_CCITT is not set
881# CONFIG_CRC16 is not set 903# CONFIG_CRC16 is not set
882# CONFIG_CRC_T10DIF is not set 904# CONFIG_CRC_T10DIF is not set
@@ -924,6 +946,7 @@ CONFIG_DEBUG_INFO=y
924# CONFIG_DEBUG_MEMORY_INIT is not set 946# CONFIG_DEBUG_MEMORY_INIT is not set
925# CONFIG_DEBUG_LIST is not set 947# CONFIG_DEBUG_LIST is not set
926# CONFIG_DEBUG_SG is not set 948# CONFIG_DEBUG_SG is not set
949# CONFIG_DEBUG_NOTIFIERS is not set
927# CONFIG_BOOT_PRINTK_DELAY is not set 950# CONFIG_BOOT_PRINTK_DELAY is not set
928# CONFIG_RCU_TORTURE_TEST is not set 951# CONFIG_RCU_TORTURE_TEST is not set
929# CONFIG_RCU_CPU_STALL_DETECTOR is not set 952# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -933,6 +956,8 @@ CONFIG_DEBUG_INFO=y
933# CONFIG_LATENCYTOP is not set 956# CONFIG_LATENCYTOP is not set
934CONFIG_SYSCTL_SYSCALL_CHECK=y 957CONFIG_SYSCTL_SYSCALL_CHECK=y
935CONFIG_HAVE_FUNCTION_TRACER=y 958CONFIG_HAVE_FUNCTION_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
936 961
937# 962#
938# Tracers 963# Tracers
@@ -941,10 +966,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
941# CONFIG_SCHED_TRACER is not set 966# CONFIG_SCHED_TRACER is not set
942# CONFIG_CONTEXT_SWITCH_TRACER is not set 967# CONFIG_CONTEXT_SWITCH_TRACER is not set
943# CONFIG_BOOT_TRACER is not set 968# CONFIG_BOOT_TRACER is not set
969# CONFIG_TRACE_BRANCH_PROFILING is not set
944# CONFIG_STACK_TRACER is not set 970# CONFIG_STACK_TRACER is not set
945# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 971# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
946# CONFIG_SAMPLES is not set 972# CONFIG_SAMPLES is not set
947CONFIG_HAVE_ARCH_KGDB=y 973CONFIG_HAVE_ARCH_KGDB=y
974CONFIG_PRINT_STACK_DEPTH=64
948# CONFIG_DEBUG_STACKOVERFLOW is not set 975# CONFIG_DEBUG_STACKOVERFLOW is not set
949# CONFIG_DEBUG_STACK_USAGE is not set 976# CONFIG_DEBUG_STACK_USAGE is not set
950# CONFIG_DEBUG_PAGEALLOC is not set 977# CONFIG_DEBUG_PAGEALLOC is not set
@@ -971,11 +998,15 @@ CONFIG_CRYPTO=y
971# 998#
972# CONFIG_CRYPTO_FIPS is not set 999# CONFIG_CRYPTO_FIPS is not set
973CONFIG_CRYPTO_ALGAPI=y 1000CONFIG_CRYPTO_ALGAPI=y
974CONFIG_CRYPTO_AEAD=y 1001CONFIG_CRYPTO_ALGAPI2=y
1002CONFIG_CRYPTO_AEAD2=y
975CONFIG_CRYPTO_BLKCIPHER=y 1003CONFIG_CRYPTO_BLKCIPHER=y
1004CONFIG_CRYPTO_BLKCIPHER2=y
976CONFIG_CRYPTO_HASH=y 1005CONFIG_CRYPTO_HASH=y
977CONFIG_CRYPTO_RNG=y 1006CONFIG_CRYPTO_HASH2=y
1007CONFIG_CRYPTO_RNG2=y
978CONFIG_CRYPTO_MANAGER=y 1008CONFIG_CRYPTO_MANAGER=y
1009CONFIG_CRYPTO_MANAGER2=y
979# CONFIG_CRYPTO_NULL is not set 1010# CONFIG_CRYPTO_NULL is not set
980# CONFIG_CRYPTO_CRYPTD is not set 1011# CONFIG_CRYPTO_CRYPTD is not set
981# CONFIG_CRYPTO_AUTHENC is not set 1012# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index 870d28976a44..b2fdfd9e183c 100644
--- a/arch/powerpc/configs/ep88xc_defconfig
+++ b/arch/powerpc/configs/ep88xc_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:37 2008 4# Mon Jan 26 15:35:28 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_8xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_8xx=y 17CONFIG_8xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -70,12 +71,12 @@ CONFIG_SYSVIPC_SYSCTL=y
70# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
71# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
72CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y 74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set 76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y 77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set 78# CONFIG_CGROUP_SCHED is not set
79# CONFIG_CGROUPS is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y 81CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
@@ -108,7 +109,6 @@ CONFIG_SLUB_DEBUG=y
108CONFIG_SLUB=y 109CONFIG_SLUB=y
109# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set 111# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 114CONFIG_HAVE_IOREMAP_PROT=y
@@ -118,13 +118,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_HAVE_CLK=y 118CONFIG_HAVE_CLK=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
121# CONFIG_TINY_SHMEM is not set
122CONFIG_BASE_SMALL=1 121CONFIG_BASE_SMALL=1
123# CONFIG_MODULES is not set 122# CONFIG_MODULES is not set
124CONFIG_BLOCK=y 123CONFIG_BLOCK=y
125# CONFIG_LBD is not set 124# CONFIG_LBD is not set
126# CONFIG_BLK_DEV_IO_TRACE is not set 125# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 126# CONFIG_BLK_DEV_BSG is not set
129# CONFIG_BLK_DEV_INTEGRITY is not set 127# CONFIG_BLK_DEV_INTEGRITY is not set
130 128
@@ -141,6 +139,10 @@ CONFIG_DEFAULT_DEADLINE=y
141# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
142CONFIG_DEFAULT_IOSCHED="deadline" 140CONFIG_DEFAULT_IOSCHED="deadline"
143CONFIG_CLASSIC_RCU=y 141CONFIG_CLASSIC_RCU=y
142# CONFIG_TREE_RCU is not set
143# CONFIG_PREEMPT_RCU is not set
144# CONFIG_TREE_RCU_TRACE is not set
145# CONFIG_PREEMPT_RCU_TRACE is not set
144# CONFIG_FREEZER is not set 146# CONFIG_FREEZER is not set
145 147
146# 148#
@@ -186,6 +188,7 @@ CONFIG_NO_UCODE_PATCH=y
186# CONFIG_QUICC_ENGINE is not set 188# CONFIG_QUICC_ENGINE is not set
187# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
188CONFIG_CPM=y 190CONFIG_CPM=y
191# CONFIG_SIMPLE_GPIO is not set
189 192
190# 193#
191# Kernel options 194# Kernel options
@@ -205,12 +208,12 @@ CONFIG_PREEMPT_NONE=y
205# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
206# CONFIG_PREEMPT is not set 209# CONFIG_PREEMPT is not set
207CONFIG_BINFMT_ELF=y 210CONFIG_BINFMT_ELF=y
208# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
209# CONFIG_HAVE_AOUT is not set 211# CONFIG_HAVE_AOUT is not set
210# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
211# CONFIG_MATH_EMULATION is not set 213# CONFIG_MATH_EMULATION is not set
212CONFIG_8XX_MINIMAL_FPEMU=y 214CONFIG_8XX_MINIMAL_FPEMU=y
213# CONFIG_IOMMU_HELPER is not set 215# CONFIG_IOMMU_HELPER is not set
216CONFIG_PPC_NEED_DMA_SYNC_OPS=y
214CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 217CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
215CONFIG_ARCH_HAS_WALK_MEMORY=y 218CONFIG_ARCH_HAS_WALK_MEMORY=y
216CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -225,12 +228,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set
229# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=1 232CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 233CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 234CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 235CONFIG_UNEVICTABLE_LRU=y
236CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set
234CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
235CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
236# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +277,7 @@ CONFIG_NET=y
272# 277#
273# Networking options 278# Networking options
274# 279#
280CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 281CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 282# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 283CONFIG_UNIX=y
@@ -323,6 +329,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
323# CONFIG_ECONET is not set 329# CONFIG_ECONET is not set
324# CONFIG_WAN_ROUTER is not set 330# CONFIG_WAN_ROUTER is not set
325# CONFIG_NET_SCHED is not set 331# CONFIG_NET_SCHED is not set
332# CONFIG_DCB is not set
326 333
327# 334#
328# Network testing 335# Network testing
@@ -338,8 +345,9 @@ CONFIG_WIRELESS=y
338# CONFIG_CFG80211 is not set 345# CONFIG_CFG80211 is not set
339CONFIG_WIRELESS_OLD_REGULATORY=y 346CONFIG_WIRELESS_OLD_REGULATORY=y
340# CONFIG_WIRELESS_EXT is not set 347# CONFIG_WIRELESS_EXT is not set
348# CONFIG_LIB80211 is not set
341# CONFIG_MAC80211 is not set 349# CONFIG_MAC80211 is not set
342# CONFIG_IEEE80211 is not set 350# CONFIG_WIMAX is not set
343# CONFIG_RFKILL is not set 351# CONFIG_RFKILL is not set
344# CONFIG_NET_9P is not set 352# CONFIG_NET_9P is not set
345 353
@@ -428,6 +436,12 @@ CONFIG_MTD_PHYSMAP_OF=y
428# CONFIG_MTD_ONENAND is not set 436# CONFIG_MTD_ONENAND is not set
429 437
430# 438#
439# LPDDR flash memory drivers
440#
441# CONFIG_MTD_LPDDR is not set
442# CONFIG_MTD_QINFO_PROBE is not set
443
444#
431# UBI - Unsorted block images 445# UBI - Unsorted block images
432# 446#
433# CONFIG_MTD_UBI is not set 447# CONFIG_MTD_UBI is not set
@@ -470,6 +484,9 @@ CONFIG_LXT_PHY=y
470# CONFIG_BROADCOM_PHY is not set 484# CONFIG_BROADCOM_PHY is not set
471# CONFIG_ICPLUS_PHY is not set 485# CONFIG_ICPLUS_PHY is not set
472# CONFIG_REALTEK_PHY is not set 486# CONFIG_REALTEK_PHY is not set
487# CONFIG_NATIONAL_PHY is not set
488# CONFIG_STE10XP is not set
489# CONFIG_LSI_ET1011C_PHY is not set
473# CONFIG_FIXED_PHY is not set 490# CONFIG_FIXED_PHY is not set
474# CONFIG_MDIO_BITBANG is not set 491# CONFIG_MDIO_BITBANG is not set
475CONFIG_NET_ETHERNET=y 492CONFIG_NET_ETHERNET=y
@@ -495,6 +512,10 @@ CONFIG_FS_ENET_MDIO_FEC=y
495# CONFIG_WLAN_PRE80211 is not set 512# CONFIG_WLAN_PRE80211 is not set
496# CONFIG_WLAN_80211 is not set 513# CONFIG_WLAN_80211 is not set
497# CONFIG_IWLWIFI_LEDS is not set 514# CONFIG_IWLWIFI_LEDS is not set
515
516#
517# Enable WiMAX (Networking options) to see the WiMAX drivers
518#
498# CONFIG_WAN is not set 519# CONFIG_WAN is not set
499# CONFIG_PPP is not set 520# CONFIG_PPP is not set
500# CONFIG_SLIP is not set 521# CONFIG_SLIP is not set
@@ -536,7 +557,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
536CONFIG_SERIAL_CPM=y 557CONFIG_SERIAL_CPM=y
537CONFIG_SERIAL_CPM_CONSOLE=y 558CONFIG_SERIAL_CPM_CONSOLE=y
538CONFIG_UNIX98_PTYS=y 559CONFIG_UNIX98_PTYS=y
560# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
539# CONFIG_LEGACY_PTYS is not set 561# CONFIG_LEGACY_PTYS is not set
562# CONFIG_HVC_UDBG is not set
540# CONFIG_IPMI_HANDLER is not set 563# CONFIG_IPMI_HANDLER is not set
541CONFIG_HW_RANDOM=y 564CONFIG_HW_RANDOM=y
542# CONFIG_NVRAM is not set 565# CONFIG_NVRAM is not set
@@ -555,11 +578,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
555# CONFIG_THERMAL is not set 578# CONFIG_THERMAL is not set
556# CONFIG_THERMAL_HWMON is not set 579# CONFIG_THERMAL_HWMON is not set
557# CONFIG_WATCHDOG is not set 580# CONFIG_WATCHDOG is not set
581CONFIG_SSB_POSSIBLE=y
558 582
559# 583#
560# Sonics Silicon Backplane 584# Sonics Silicon Backplane
561# 585#
562CONFIG_SSB_POSSIBLE=y
563# CONFIG_SSB is not set 586# CONFIG_SSB is not set
564 587
565# 588#
@@ -569,14 +592,7 @@ CONFIG_SSB_POSSIBLE=y
569# CONFIG_MFD_SM501 is not set 592# CONFIG_MFD_SM501 is not set
570# CONFIG_HTC_PASIC3 is not set 593# CONFIG_HTC_PASIC3 is not set
571# CONFIG_MFD_TMIO is not set 594# CONFIG_MFD_TMIO is not set
572
573#
574# Voltage and Current regulators
575#
576# CONFIG_REGULATOR is not set 595# CONFIG_REGULATOR is not set
577# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
578# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
579# CONFIG_REGULATOR_BQ24022 is not set
580 596
581# 597#
582# Multimedia devices 598# Multimedia devices
@@ -630,6 +646,7 @@ CONFIG_DAB=y
630CONFIG_FILE_LOCKING=y 646CONFIG_FILE_LOCKING=y
631# CONFIG_XFS_FS is not set 647# CONFIG_XFS_FS is not set
632# CONFIG_OCFS2_FS is not set 648# CONFIG_OCFS2_FS is not set
649# CONFIG_BTRFS_FS is not set
633# CONFIG_DNOTIFY is not set 650# CONFIG_DNOTIFY is not set
634# CONFIG_INOTIFY is not set 651# CONFIG_INOTIFY is not set
635# CONFIG_QUOTA is not set 652# CONFIG_QUOTA is not set
@@ -662,10 +679,7 @@ CONFIG_TMPFS=y
662# CONFIG_TMPFS_POSIX_ACL is not set 679# CONFIG_TMPFS_POSIX_ACL is not set
663# CONFIG_HUGETLB_PAGE is not set 680# CONFIG_HUGETLB_PAGE is not set
664# CONFIG_CONFIGFS_FS is not set 681# CONFIG_CONFIGFS_FS is not set
665 682CONFIG_MISC_FILESYSTEMS=y
666#
667# Miscellaneous filesystems
668#
669# CONFIG_ADFS_FS is not set 683# CONFIG_ADFS_FS is not set
670# CONFIG_AFFS_FS is not set 684# CONFIG_AFFS_FS is not set
671# CONFIG_HFS_FS is not set 685# CONFIG_HFS_FS is not set
@@ -675,6 +689,7 @@ CONFIG_TMPFS=y
675# CONFIG_EFS_FS is not set 689# CONFIG_EFS_FS is not set
676# CONFIG_JFFS2_FS is not set 690# CONFIG_JFFS2_FS is not set
677CONFIG_CRAMFS=y 691CONFIG_CRAMFS=y
692# CONFIG_SQUASHFS is not set
678# CONFIG_VXFS_FS is not set 693# CONFIG_VXFS_FS is not set
679# CONFIG_MINIX_FS is not set 694# CONFIG_MINIX_FS is not set
680# CONFIG_OMFS_FS is not set 695# CONFIG_OMFS_FS is not set
@@ -730,6 +745,7 @@ CONFIG_MSDOS_PARTITION=y
730# 745#
731# Library routines 746# Library routines
732# 747#
748CONFIG_GENERIC_FIND_LAST_BIT=y
733# CONFIG_CRC_CCITT is not set 749# CONFIG_CRC_CCITT is not set
734# CONFIG_CRC16 is not set 750# CONFIG_CRC16 is not set
735# CONFIG_CRC_T10DIF is not set 751# CONFIG_CRC_T10DIF is not set
@@ -777,6 +793,7 @@ CONFIG_DEBUG_INFO=y
777# CONFIG_DEBUG_MEMORY_INIT is not set 793# CONFIG_DEBUG_MEMORY_INIT is not set
778# CONFIG_DEBUG_LIST is not set 794# CONFIG_DEBUG_LIST is not set
779# CONFIG_DEBUG_SG is not set 795# CONFIG_DEBUG_SG is not set
796# CONFIG_DEBUG_NOTIFIERS is not set
780# CONFIG_BOOT_PRINTK_DELAY is not set 797# CONFIG_BOOT_PRINTK_DELAY is not set
781# CONFIG_RCU_TORTURE_TEST is not set 798# CONFIG_RCU_TORTURE_TEST is not set
782# CONFIG_RCU_CPU_STALL_DETECTOR is not set 799# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -785,6 +802,8 @@ CONFIG_DEBUG_INFO=y
785# CONFIG_FAULT_INJECTION is not set 802# CONFIG_FAULT_INJECTION is not set
786# CONFIG_LATENCYTOP is not set 803# CONFIG_LATENCYTOP is not set
787CONFIG_HAVE_FUNCTION_TRACER=y 804CONFIG_HAVE_FUNCTION_TRACER=y
805CONFIG_HAVE_DYNAMIC_FTRACE=y
806CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
788 807
789# 808#
790# Tracers 809# Tracers
@@ -793,11 +812,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
793# CONFIG_SCHED_TRACER is not set 812# CONFIG_SCHED_TRACER is not set
794# CONFIG_CONTEXT_SWITCH_TRACER is not set 813# CONFIG_CONTEXT_SWITCH_TRACER is not set
795# CONFIG_BOOT_TRACER is not set 814# CONFIG_BOOT_TRACER is not set
815# CONFIG_TRACE_BRANCH_PROFILING is not set
796# CONFIG_STACK_TRACER is not set 816# CONFIG_STACK_TRACER is not set
797# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 817# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
798# CONFIG_SAMPLES is not set 818# CONFIG_SAMPLES is not set
799CONFIG_HAVE_ARCH_KGDB=y 819CONFIG_HAVE_ARCH_KGDB=y
800# CONFIG_KGDB is not set 820# CONFIG_KGDB is not set
821CONFIG_PRINT_STACK_DEPTH=64
801# CONFIG_DEBUG_STACKOVERFLOW is not set 822# CONFIG_DEBUG_STACKOVERFLOW is not set
802# CONFIG_DEBUG_STACK_USAGE is not set 823# CONFIG_DEBUG_STACK_USAGE is not set
803# CONFIG_DEBUG_PAGEALLOC is not set 824# CONFIG_DEBUG_PAGEALLOC is not set
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index f85e71ccb989..fc905924c022 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -994,8 +994,8 @@ CONFIG_I2C_POWERMAC=y
994# Miscellaneous I2C Chip support 994# Miscellaneous I2C Chip support
995# 995#
996# CONFIG_DS1682 is not set 996# CONFIG_DS1682 is not set
997# CONFIG_AT24 is not set 997# CONFIG_EEPROM_AT24 is not set
998# CONFIG_SENSORS_EEPROM is not set 998# CONFIG_EEPROM_LEGACY is not set
999# CONFIG_SENSORS_PCF8574 is not set 999# CONFIG_SENSORS_PCF8574 is not set
1000# CONFIG_PCF8575 is not set 1000# CONFIG_PCF8575 is not set
1001# CONFIG_SENSORS_PCA9539 is not set 1001# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 54fa62481373..aa5855a156de 100644
--- a/arch/powerpc/configs/linkstation_defconfig
+++ b/arch/powerpc/configs/linkstation_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:38 2008 4# Mon Jan 26 15:35:29 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -74,12 +74,12 @@ CONFIG_POSIX_MQUEUE=y
74CONFIG_IKCONFIG=y 74CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 75CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14 76CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y 77CONFIG_GROUP_SCHED=y
79# CONFIG_FAIR_GROUP_SCHED is not set 78# CONFIG_FAIR_GROUP_SCHED is not set
80# CONFIG_RT_GROUP_SCHED is not set 79# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y 80CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set 81# CONFIG_CGROUP_SCHED is not set
82# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 83CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y 84CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 85# CONFIG_RELAY is not set
@@ -118,7 +118,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 118CONFIG_SLUB=y
119# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -129,7 +128,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
132# CONFIG_TINY_SHMEM is not set
133CONFIG_BASE_SMALL=0 131CONFIG_BASE_SMALL=0
134CONFIG_MODULES=y 132CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set 133# CONFIG_MODULE_FORCE_LOAD is not set
@@ -137,11 +135,9 @@ CONFIG_MODULE_UNLOAD=y
137# CONFIG_MODULE_FORCE_UNLOAD is not set 135# CONFIG_MODULE_FORCE_UNLOAD is not set
138# CONFIG_MODVERSIONS is not set 136# CONFIG_MODVERSIONS is not set
139# CONFIG_MODULE_SRCVERSION_ALL is not set 137# CONFIG_MODULE_SRCVERSION_ALL is not set
140CONFIG_KMOD=y
141CONFIG_BLOCK=y 138CONFIG_BLOCK=y
142# CONFIG_LBD is not set 139# CONFIG_LBD is not set
143# CONFIG_BLK_DEV_IO_TRACE is not set 140# CONFIG_BLK_DEV_IO_TRACE is not set
144# CONFIG_LSF is not set
145# CONFIG_BLK_DEV_BSG is not set 141# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set 142# CONFIG_BLK_DEV_INTEGRITY is not set
147 143
@@ -158,6 +154,10 @@ CONFIG_DEFAULT_AS=y
158# CONFIG_DEFAULT_NOOP is not set 154# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="anticipatory" 155CONFIG_DEFAULT_IOSCHED="anticipatory"
160CONFIG_CLASSIC_RCU=y 156CONFIG_CLASSIC_RCU=y
157# CONFIG_TREE_RCU is not set
158# CONFIG_PREEMPT_RCU is not set
159# CONFIG_TREE_RCU_TRACE is not set
160# CONFIG_PREEMPT_RCU_TRACE is not set
161# CONFIG_FREEZER is not set 161# CONFIG_FREEZER is not set
162 162
163# 163#
@@ -200,6 +200,7 @@ CONFIG_MPIC=y
200# CONFIG_TAU is not set 200# CONFIG_TAU is not set
201# CONFIG_QUICC_ENGINE is not set 201# CONFIG_QUICC_ENGINE is not set
202# CONFIG_FSL_ULI1575 is not set 202# CONFIG_FSL_ULI1575 is not set
203# CONFIG_SIMPLE_GPIO is not set
203 204
204# 205#
205# Kernel options 206# Kernel options
@@ -227,6 +228,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
227CONFIG_ARCH_HAS_WALK_MEMORY=y 228CONFIG_ARCH_HAS_WALK_MEMORY=y
228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
229# CONFIG_KEXEC is not set 230# CONFIG_KEXEC is not set
231# CONFIG_CRASH_DUMP is not set
230CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
231CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
232CONFIG_SELECT_MEMORY_MODEL=y 234CONFIG_SELECT_MEMORY_MODEL=y
@@ -238,12 +240,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
238CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
239CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
240CONFIG_MIGRATION=y 242CONFIG_MIGRATION=y
241# CONFIG_RESOURCES_64BIT is not set
242# CONFIG_PHYS_ADDR_T_64BIT is not set 243# CONFIG_PHYS_ADDR_T_64BIT is not set
243CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
248CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
249# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +271,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 271# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 272# CONFIG_PCI_LEGACY is not set
269# CONFIG_PCI_DEBUG is not set 273# CONFIG_PCI_DEBUG is not set
274# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +294,8 @@ CONFIG_NET=y
289# 294#
290# Networking options 295# Networking options
291# 296#
297# CONFIG_NET_NS is not set
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293CONFIG_PACKET_MMAP=y 300CONFIG_PACKET_MMAP=y
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -455,6 +462,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
455# CONFIG_ECONET is not set 462# CONFIG_ECONET is not set
456# CONFIG_WAN_ROUTER is not set 463# CONFIG_WAN_ROUTER is not set
457# CONFIG_NET_SCHED is not set 464# CONFIG_NET_SCHED is not set
465# CONFIG_DCB is not set
458 466
459# 467#
460# Network testing 468# Network testing
@@ -471,12 +479,9 @@ CONFIG_WIRELESS=y
471CONFIG_WIRELESS_OLD_REGULATORY=y 479CONFIG_WIRELESS_OLD_REGULATORY=y
472CONFIG_WIRELESS_EXT=y 480CONFIG_WIRELESS_EXT=y
473CONFIG_WIRELESS_EXT_SYSFS=y 481CONFIG_WIRELESS_EXT_SYSFS=y
482# CONFIG_LIB80211 is not set
474# CONFIG_MAC80211 is not set 483# CONFIG_MAC80211 is not set
475CONFIG_IEEE80211=m 484# CONFIG_WIMAX is not set
476CONFIG_IEEE80211_DEBUG=y
477CONFIG_IEEE80211_CRYPT_WEP=m
478CONFIG_IEEE80211_CRYPT_CCMP=m
479CONFIG_IEEE80211_CRYPT_TKIP=m
480# CONFIG_RFKILL is not set 485# CONFIG_RFKILL is not set
481# CONFIG_NET_9P is not set 486# CONFIG_NET_9P is not set
482 487
@@ -501,6 +506,7 @@ CONFIG_MTD=y
501# CONFIG_MTD_DEBUG is not set 506# CONFIG_MTD_DEBUG is not set
502CONFIG_MTD_CONCAT=y 507CONFIG_MTD_CONCAT=y
503CONFIG_MTD_PARTITIONS=y 508CONFIG_MTD_PARTITIONS=y
509# CONFIG_MTD_TESTS is not set
504# CONFIG_MTD_REDBOOT_PARTS is not set 510# CONFIG_MTD_REDBOOT_PARTS is not set
505# CONFIG_MTD_CMDLINE_PARTS is not set 511# CONFIG_MTD_CMDLINE_PARTS is not set
506# CONFIG_MTD_OF_PARTS is not set 512# CONFIG_MTD_OF_PARTS is not set
@@ -554,9 +560,7 @@ CONFIG_MTD_CFI_UTIL=y
554# 560#
555# CONFIG_MTD_COMPLEX_MAPPINGS is not set 561# CONFIG_MTD_COMPLEX_MAPPINGS is not set
556CONFIG_MTD_PHYSMAP=y 562CONFIG_MTD_PHYSMAP=y
557CONFIG_MTD_PHYSMAP_START=0xffc00000 563# CONFIG_MTD_PHYSMAP_COMPAT is not set
558CONFIG_MTD_PHYSMAP_LEN=0x400000
559CONFIG_MTD_PHYSMAP_BANKWIDTH=1
560# CONFIG_MTD_PHYSMAP_OF is not set 564# CONFIG_MTD_PHYSMAP_OF is not set
561# CONFIG_MTD_INTEL_VR_NOR is not set 565# CONFIG_MTD_INTEL_VR_NOR is not set
562# CONFIG_MTD_PLATRAM is not set 566# CONFIG_MTD_PLATRAM is not set
@@ -580,6 +584,12 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
580# CONFIG_MTD_ONENAND is not set 584# CONFIG_MTD_ONENAND is not set
581 585
582# 586#
587# LPDDR flash memory drivers
588#
589# CONFIG_MTD_LPDDR is not set
590# CONFIG_MTD_QINFO_PROBE is not set
591
592#
583# UBI - Unsorted block images 593# UBI - Unsorted block images
584# 594#
585# CONFIG_MTD_UBI is not set 595# CONFIG_MTD_UBI is not set
@@ -610,8 +620,10 @@ CONFIG_MISC_DEVICES=y
610# CONFIG_EEPROM_93CX6 is not set 620# CONFIG_EEPROM_93CX6 is not set
611# CONFIG_SGI_IOC4 is not set 621# CONFIG_SGI_IOC4 is not set
612# CONFIG_TIFM_CORE is not set 622# CONFIG_TIFM_CORE is not set
623# CONFIG_ICS932S401 is not set
613# CONFIG_ENCLOSURE_SERVICES is not set 624# CONFIG_ENCLOSURE_SERVICES is not set
614# CONFIG_HP_ILO is not set 625# CONFIG_HP_ILO is not set
626# CONFIG_C2PORT is not set
615CONFIG_HAVE_IDE=y 627CONFIG_HAVE_IDE=y
616# CONFIG_IDE is not set 628# CONFIG_IDE is not set
617 629
@@ -654,6 +666,7 @@ CONFIG_SCSI_WAIT_SCAN=m
654# CONFIG_SCSI_SRP_ATTRS is not set 666# CONFIG_SCSI_SRP_ATTRS is not set
655CONFIG_SCSI_LOWLEVEL=y 667CONFIG_SCSI_LOWLEVEL=y
656# CONFIG_ISCSI_TCP is not set 668# CONFIG_ISCSI_TCP is not set
669# CONFIG_SCSI_CXGB3_ISCSI is not set
657# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 670# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
658# CONFIG_SCSI_3W_9XXX is not set 671# CONFIG_SCSI_3W_9XXX is not set
659# CONFIG_SCSI_ACARD is not set 672# CONFIG_SCSI_ACARD is not set
@@ -670,6 +683,8 @@ CONFIG_SCSI_LOWLEVEL=y
670# CONFIG_MEGARAID_SAS is not set 683# CONFIG_MEGARAID_SAS is not set
671# CONFIG_SCSI_HPTIOP is not set 684# CONFIG_SCSI_HPTIOP is not set
672# CONFIG_SCSI_BUSLOGIC is not set 685# CONFIG_SCSI_BUSLOGIC is not set
686# CONFIG_LIBFC is not set
687# CONFIG_FCOE is not set
673# CONFIG_SCSI_DMX3191D is not set 688# CONFIG_SCSI_DMX3191D is not set
674# CONFIG_SCSI_EATA is not set 689# CONFIG_SCSI_EATA is not set
675# CONFIG_SCSI_FUTURE_DOMAIN is not set 690# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -827,6 +842,7 @@ CONFIG_R8169=y
827# CONFIG_JME is not set 842# CONFIG_JME is not set
828CONFIG_NETDEV_10000=y 843CONFIG_NETDEV_10000=y
829# CONFIG_CHELSIO_T1 is not set 844# CONFIG_CHELSIO_T1 is not set
845CONFIG_CHELSIO_T3_DEPENDS=y
830# CONFIG_CHELSIO_T3 is not set 846# CONFIG_CHELSIO_T3 is not set
831# CONFIG_ENIC is not set 847# CONFIG_ENIC is not set
832# CONFIG_IXGBE is not set 848# CONFIG_IXGBE is not set
@@ -851,6 +867,10 @@ CONFIG_NETDEV_10000=y
851# CONFIG_IWLWIFI_LEDS is not set 867# CONFIG_IWLWIFI_LEDS is not set
852 868
853# 869#
870# Enable WiMAX (Networking options) to see the WiMAX drivers
871#
872
873#
854# USB Network Adapters 874# USB Network Adapters
855# 875#
856# CONFIG_USB_CATC is not set 876# CONFIG_USB_CATC is not set
@@ -949,8 +969,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
949# CONFIG_SERIAL_JSM is not set 969# CONFIG_SERIAL_JSM is not set
950# CONFIG_SERIAL_OF_PLATFORM is not set 970# CONFIG_SERIAL_OF_PLATFORM is not set
951CONFIG_UNIX98_PTYS=y 971CONFIG_UNIX98_PTYS=y
972# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
952CONFIG_LEGACY_PTYS=y 973CONFIG_LEGACY_PTYS=y
953CONFIG_LEGACY_PTY_COUNT=256 974CONFIG_LEGACY_PTY_COUNT=256
975# CONFIG_HVC_UDBG is not set
954# CONFIG_IPMI_HANDLER is not set 976# CONFIG_IPMI_HANDLER is not set
955CONFIG_HW_RANDOM=y 977CONFIG_HW_RANDOM=y
956# CONFIG_NVRAM is not set 978# CONFIG_NVRAM is not set
@@ -1015,8 +1037,8 @@ CONFIG_I2C_MPC=y
1015# Miscellaneous I2C Chip support 1037# Miscellaneous I2C Chip support
1016# 1038#
1017# CONFIG_DS1682 is not set 1039# CONFIG_DS1682 is not set
1018# CONFIG_AT24 is not set 1040# CONFIG_EEPROM_AT24 is not set
1019CONFIG_SENSORS_EEPROM=m 1041CONFIG_EEPROM_LEGACY=m
1020# CONFIG_SENSORS_PCF8574 is not set 1042# CONFIG_SENSORS_PCF8574 is not set
1021# CONFIG_PCF8575 is not set 1043# CONFIG_PCF8575 is not set
1022# CONFIG_SENSORS_PCA9539 is not set 1044# CONFIG_SENSORS_PCA9539 is not set
@@ -1042,8 +1064,10 @@ CONFIG_HWMON=y
1042# CONFIG_SENSORS_ADM1029 is not set 1064# CONFIG_SENSORS_ADM1029 is not set
1043# CONFIG_SENSORS_ADM1031 is not set 1065# CONFIG_SENSORS_ADM1031 is not set
1044# CONFIG_SENSORS_ADM9240 is not set 1066# CONFIG_SENSORS_ADM9240 is not set
1067# CONFIG_SENSORS_ADT7462 is not set
1045# CONFIG_SENSORS_ADT7470 is not set 1068# CONFIG_SENSORS_ADT7470 is not set
1046# CONFIG_SENSORS_ADT7473 is not set 1069# CONFIG_SENSORS_ADT7473 is not set
1070# CONFIG_SENSORS_ADT7475 is not set
1047# CONFIG_SENSORS_ATXP1 is not set 1071# CONFIG_SENSORS_ATXP1 is not set
1048# CONFIG_SENSORS_DS1621 is not set 1072# CONFIG_SENSORS_DS1621 is not set
1049# CONFIG_SENSORS_I5K_AMB is not set 1073# CONFIG_SENSORS_I5K_AMB is not set
@@ -1064,6 +1088,7 @@ CONFIG_HWMON=y
1064# CONFIG_SENSORS_LM90 is not set 1088# CONFIG_SENSORS_LM90 is not set
1065# CONFIG_SENSORS_LM92 is not set 1089# CONFIG_SENSORS_LM92 is not set
1066# CONFIG_SENSORS_LM93 is not set 1090# CONFIG_SENSORS_LM93 is not set
1091# CONFIG_SENSORS_LTC4245 is not set
1067# CONFIG_SENSORS_MAX1619 is not set 1092# CONFIG_SENSORS_MAX1619 is not set
1068# CONFIG_SENSORS_MAX6650 is not set 1093# CONFIG_SENSORS_MAX6650 is not set
1069# CONFIG_SENSORS_PC87360 is not set 1094# CONFIG_SENSORS_PC87360 is not set
@@ -1090,11 +1115,11 @@ CONFIG_HWMON=y
1090# CONFIG_THERMAL is not set 1115# CONFIG_THERMAL is not set
1091# CONFIG_THERMAL_HWMON is not set 1116# CONFIG_THERMAL_HWMON is not set
1092# CONFIG_WATCHDOG is not set 1117# CONFIG_WATCHDOG is not set
1118CONFIG_SSB_POSSIBLE=y
1093 1119
1094# 1120#
1095# Sonics Silicon Backplane 1121# Sonics Silicon Backplane
1096# 1122#
1097CONFIG_SSB_POSSIBLE=y
1098# CONFIG_SSB is not set 1123# CONFIG_SSB is not set
1099 1124
1100# 1125#
@@ -1103,18 +1128,13 @@ CONFIG_SSB_POSSIBLE=y
1103# CONFIG_MFD_CORE is not set 1128# CONFIG_MFD_CORE is not set
1104# CONFIG_MFD_SM501 is not set 1129# CONFIG_MFD_SM501 is not set
1105# CONFIG_HTC_PASIC3 is not set 1130# CONFIG_HTC_PASIC3 is not set
1131# CONFIG_TWL4030_CORE is not set
1106# CONFIG_MFD_TMIO is not set 1132# CONFIG_MFD_TMIO is not set
1107# CONFIG_PMIC_DA903X is not set 1133# CONFIG_PMIC_DA903X is not set
1108# CONFIG_MFD_WM8400 is not set 1134# CONFIG_MFD_WM8400 is not set
1109# CONFIG_MFD_WM8350_I2C is not set 1135# CONFIG_MFD_WM8350_I2C is not set
1110 1136# CONFIG_MFD_PCF50633 is not set
1111#
1112# Voltage and Current regulators
1113#
1114# CONFIG_REGULATOR is not set 1137# CONFIG_REGULATOR is not set
1115# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1116# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1117# CONFIG_REGULATOR_BQ24022 is not set
1118 1138
1119# 1139#
1120# Multimedia devices 1140# Multimedia devices
@@ -1165,12 +1185,6 @@ CONFIG_HID=m
1165# CONFIG_HID_PID is not set 1185# CONFIG_HID_PID is not set
1166 1186
1167# 1187#
1168# USB HID Boot Protocol drivers
1169#
1170# CONFIG_USB_KBD is not set
1171# CONFIG_USB_MOUSE is not set
1172
1173#
1174# Special HID drivers 1188# Special HID drivers
1175# 1189#
1176CONFIG_HID_COMPAT=y 1190CONFIG_HID_COMPAT=y
@@ -1202,6 +1216,7 @@ CONFIG_USB_EHCI_HCD=y
1202# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1216# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1203# CONFIG_USB_EHCI_FSL is not set 1217# CONFIG_USB_EHCI_FSL is not set
1204CONFIG_USB_EHCI_HCD_PPC_OF=y 1218CONFIG_USB_EHCI_HCD_PPC_OF=y
1219# CONFIG_USB_OXU210HP_HCD is not set
1205# CONFIG_USB_ISP116X_HCD is not set 1220# CONFIG_USB_ISP116X_HCD is not set
1206# CONFIG_USB_ISP1760_HCD is not set 1221# CONFIG_USB_ISP1760_HCD is not set
1207CONFIG_USB_OHCI_HCD=y 1222CONFIG_USB_OHCI_HCD=y
@@ -1227,18 +1242,17 @@ CONFIG_USB_PRINTER=m
1227# CONFIG_USB_TMC is not set 1242# CONFIG_USB_TMC is not set
1228 1243
1229# 1244#
1230# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1245# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1231# 1246#
1232 1247
1233# 1248#
1234# may also be needed; see USB_STORAGE Help for more information 1249# see USB_STORAGE Help for more information
1235# 1250#
1236CONFIG_USB_STORAGE=m 1251CONFIG_USB_STORAGE=m
1237# CONFIG_USB_STORAGE_DEBUG is not set 1252# CONFIG_USB_STORAGE_DEBUG is not set
1238# CONFIG_USB_STORAGE_DATAFAB is not set 1253# CONFIG_USB_STORAGE_DATAFAB is not set
1239# CONFIG_USB_STORAGE_FREECOM is not set 1254# CONFIG_USB_STORAGE_FREECOM is not set
1240# CONFIG_USB_STORAGE_ISD200 is not set 1255# CONFIG_USB_STORAGE_ISD200 is not set
1241# CONFIG_USB_STORAGE_DPCM is not set
1242# CONFIG_USB_STORAGE_USBAT is not set 1256# CONFIG_USB_STORAGE_USBAT is not set
1243# CONFIG_USB_STORAGE_SDDR09 is not set 1257# CONFIG_USB_STORAGE_SDDR09 is not set
1244# CONFIG_USB_STORAGE_SDDR55 is not set 1258# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1295,12 +1309,14 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1295# CONFIG_USB_SERIAL_SPCP8X5 is not set 1309# CONFIG_USB_SERIAL_SPCP8X5 is not set
1296# CONFIG_USB_SERIAL_HP4X is not set 1310# CONFIG_USB_SERIAL_HP4X is not set
1297# CONFIG_USB_SERIAL_SAFE is not set 1311# CONFIG_USB_SERIAL_SAFE is not set
1312# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1298# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1313# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1299# CONFIG_USB_SERIAL_TI is not set 1314# CONFIG_USB_SERIAL_TI is not set
1300# CONFIG_USB_SERIAL_CYBERJACK is not set 1315# CONFIG_USB_SERIAL_CYBERJACK is not set
1301# CONFIG_USB_SERIAL_XIRCOM is not set 1316# CONFIG_USB_SERIAL_XIRCOM is not set
1302# CONFIG_USB_SERIAL_OPTION is not set 1317# CONFIG_USB_SERIAL_OPTION is not set
1303# CONFIG_USB_SERIAL_OMNINET is not set 1318# CONFIG_USB_SERIAL_OMNINET is not set
1319# CONFIG_USB_SERIAL_OPTICON is not set
1304# CONFIG_USB_SERIAL_DEBUG is not set 1320# CONFIG_USB_SERIAL_DEBUG is not set
1305 1321
1306# 1322#
@@ -1329,6 +1345,10 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1329# CONFIG_USB_ISIGHTFW is not set 1345# CONFIG_USB_ISIGHTFW is not set
1330# CONFIG_USB_VST is not set 1346# CONFIG_USB_VST is not set
1331# CONFIG_USB_GADGET is not set 1347# CONFIG_USB_GADGET is not set
1348
1349#
1350# OTG and related infrastructure
1351#
1332# CONFIG_UWB is not set 1352# CONFIG_UWB is not set
1333# CONFIG_MMC is not set 1353# CONFIG_MMC is not set
1334# CONFIG_MEMSTICK is not set 1354# CONFIG_MEMSTICK is not set
@@ -1366,6 +1386,7 @@ CONFIG_RTC_DRV_RS5C372=y
1366# CONFIG_RTC_DRV_M41T80 is not set 1386# CONFIG_RTC_DRV_M41T80 is not set
1367# CONFIG_RTC_DRV_S35390A is not set 1387# CONFIG_RTC_DRV_S35390A is not set
1368# CONFIG_RTC_DRV_FM3130 is not set 1388# CONFIG_RTC_DRV_FM3130 is not set
1389# CONFIG_RTC_DRV_RX8581 is not set
1369 1390
1370# 1391#
1371# SPI RTC drivers 1392# SPI RTC drivers
@@ -1417,6 +1438,7 @@ CONFIG_XFS_FS=m
1417# CONFIG_XFS_RT is not set 1438# CONFIG_XFS_RT is not set
1418# CONFIG_XFS_DEBUG is not set 1439# CONFIG_XFS_DEBUG is not set
1419# CONFIG_OCFS2_FS is not set 1440# CONFIG_OCFS2_FS is not set
1441# CONFIG_BTRFS_FS is not set
1420CONFIG_DNOTIFY=y 1442CONFIG_DNOTIFY=y
1421CONFIG_INOTIFY=y 1443CONFIG_INOTIFY=y
1422CONFIG_INOTIFY_USER=y 1444CONFIG_INOTIFY_USER=y
@@ -1458,10 +1480,7 @@ CONFIG_TMPFS=y
1458# CONFIG_TMPFS_POSIX_ACL is not set 1480# CONFIG_TMPFS_POSIX_ACL is not set
1459# CONFIG_HUGETLB_PAGE is not set 1481# CONFIG_HUGETLB_PAGE is not set
1460# CONFIG_CONFIGFS_FS is not set 1482# CONFIG_CONFIGFS_FS is not set
1461 1483CONFIG_MISC_FILESYSTEMS=y
1462#
1463# Miscellaneous filesystems
1464#
1465# CONFIG_ADFS_FS is not set 1484# CONFIG_ADFS_FS is not set
1466# CONFIG_AFFS_FS is not set 1485# CONFIG_AFFS_FS is not set
1467# CONFIG_HFS_FS is not set 1486# CONFIG_HFS_FS is not set
@@ -1471,6 +1490,7 @@ CONFIG_TMPFS=y
1471# CONFIG_EFS_FS is not set 1490# CONFIG_EFS_FS is not set
1472# CONFIG_JFFS2_FS is not set 1491# CONFIG_JFFS2_FS is not set
1473# CONFIG_CRAMFS is not set 1492# CONFIG_CRAMFS is not set
1493# CONFIG_SQUASHFS is not set
1474# CONFIG_VXFS_FS is not set 1494# CONFIG_VXFS_FS is not set
1475# CONFIG_MINIX_FS is not set 1495# CONFIG_MINIX_FS is not set
1476# CONFIG_OMFS_FS is not set 1496# CONFIG_OMFS_FS is not set
@@ -1561,6 +1581,7 @@ CONFIG_NLS_UTF8=m
1561# Library routines 1581# Library routines
1562# 1582#
1563CONFIG_BITREVERSE=y 1583CONFIG_BITREVERSE=y
1584CONFIG_GENERIC_FIND_LAST_BIT=y
1564CONFIG_CRC_CCITT=m 1585CONFIG_CRC_CCITT=m
1565# CONFIG_CRC16 is not set 1586# CONFIG_CRC16 is not set
1566CONFIG_CRC_T10DIF=y 1587CONFIG_CRC_T10DIF=y
@@ -1614,6 +1635,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1614CONFIG_DEBUG_MEMORY_INIT=y 1635CONFIG_DEBUG_MEMORY_INIT=y
1615# CONFIG_DEBUG_LIST is not set 1636# CONFIG_DEBUG_LIST is not set
1616# CONFIG_DEBUG_SG is not set 1637# CONFIG_DEBUG_SG is not set
1638# CONFIG_DEBUG_NOTIFIERS is not set
1617# CONFIG_BOOT_PRINTK_DELAY is not set 1639# CONFIG_BOOT_PRINTK_DELAY is not set
1618# CONFIG_RCU_TORTURE_TEST is not set 1640# CONFIG_RCU_TORTURE_TEST is not set
1619# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1641# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1623,6 +1645,8 @@ CONFIG_DEBUG_MEMORY_INIT=y
1623# CONFIG_LATENCYTOP is not set 1645# CONFIG_LATENCYTOP is not set
1624CONFIG_SYSCTL_SYSCALL_CHECK=y 1646CONFIG_SYSCTL_SYSCALL_CHECK=y
1625CONFIG_HAVE_FUNCTION_TRACER=y 1647CONFIG_HAVE_FUNCTION_TRACER=y
1648CONFIG_HAVE_DYNAMIC_FTRACE=y
1649CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1626 1650
1627# 1651#
1628# Tracers 1652# Tracers
@@ -1631,11 +1655,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1631# CONFIG_SCHED_TRACER is not set 1655# CONFIG_SCHED_TRACER is not set
1632# CONFIG_CONTEXT_SWITCH_TRACER is not set 1656# CONFIG_CONTEXT_SWITCH_TRACER is not set
1633# CONFIG_BOOT_TRACER is not set 1657# CONFIG_BOOT_TRACER is not set
1658# CONFIG_TRACE_BRANCH_PROFILING is not set
1634# CONFIG_STACK_TRACER is not set 1659# CONFIG_STACK_TRACER is not set
1635# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1660# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1636# CONFIG_SAMPLES is not set 1661# CONFIG_SAMPLES is not set
1637CONFIG_HAVE_ARCH_KGDB=y 1662CONFIG_HAVE_ARCH_KGDB=y
1638# CONFIG_KGDB is not set 1663# CONFIG_KGDB is not set
1664CONFIG_PRINT_STACK_DEPTH=64
1639# CONFIG_DEBUG_STACKOVERFLOW is not set 1665# CONFIG_DEBUG_STACKOVERFLOW is not set
1640# CONFIG_DEBUG_STACK_USAGE is not set 1666# CONFIG_DEBUG_STACK_USAGE is not set
1641# CONFIG_DEBUG_PAGEALLOC is not set 1667# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1662,11 +1688,15 @@ CONFIG_CRYPTO=y
1662# 1688#
1663# CONFIG_CRYPTO_FIPS is not set 1689# CONFIG_CRYPTO_FIPS is not set
1664CONFIG_CRYPTO_ALGAPI=y 1690CONFIG_CRYPTO_ALGAPI=y
1665CONFIG_CRYPTO_AEAD=y 1691CONFIG_CRYPTO_ALGAPI2=y
1692CONFIG_CRYPTO_AEAD2=y
1666CONFIG_CRYPTO_BLKCIPHER=y 1693CONFIG_CRYPTO_BLKCIPHER=y
1694CONFIG_CRYPTO_BLKCIPHER2=y
1667CONFIG_CRYPTO_HASH=y 1695CONFIG_CRYPTO_HASH=y
1668CONFIG_CRYPTO_RNG=y 1696CONFIG_CRYPTO_HASH2=y
1697CONFIG_CRYPTO_RNG2=y
1669CONFIG_CRYPTO_MANAGER=y 1698CONFIG_CRYPTO_MANAGER=y
1699CONFIG_CRYPTO_MANAGER2=y
1670# CONFIG_CRYPTO_GF128MUL is not set 1700# CONFIG_CRYPTO_GF128MUL is not set
1671# CONFIG_CRYPTO_NULL is not set 1701# CONFIG_CRYPTO_NULL is not set
1672# CONFIG_CRYPTO_CRYPTD is not set 1702# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig
index 045f1b008ce5..8b244003b9e1 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
@@ -866,8 +866,8 @@ CONFIG_I2C_AMD8111=y
866# Miscellaneous I2C Chip support 866# Miscellaneous I2C Chip support
867# 867#
868# CONFIG_DS1682 is not set 868# CONFIG_DS1682 is not set
869# CONFIG_AT24 is not set 869# CONFIG_EEPROM_AT24 is not set
870# CONFIG_SENSORS_EEPROM is not set 870# CONFIG_EEPROM_LEGACY is not set
871# CONFIG_SENSORS_PCF8574 is not set 871# CONFIG_SENSORS_PCF8574 is not set
872# CONFIG_PCF8575 is not set 872# CONFIG_PCF8575 is not set
873# CONFIG_SENSORS_PCA9539 is not set 873# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/mgcoge_defconfig b/arch/powerpc/configs/mgcoge_defconfig
index 8d3c62324009..c58c38d5b7a6 100644
--- a/arch/powerpc/configs/mgcoge_defconfig
+++ b/arch/powerpc/configs/mgcoge_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:38 2008 4# Mon Jan 26 15:35:30 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_GPIO=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -89,6 +89,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 89CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 90CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 91CONFIG_KALLSYMS_ALL=y
92CONFIG_KALLSYMS_STRIP_GENERATED=y
92# CONFIG_KALLSYMS_EXTRA_PASS is not set 93# CONFIG_KALLSYMS_EXTRA_PASS is not set
93CONFIG_HOTPLUG=y 94CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 95CONFIG_PRINTK=y
@@ -111,7 +112,6 @@ CONFIG_SLAB=y
111# CONFIG_SLUB is not set 112# CONFIG_SLUB is not set
112# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y 117CONFIG_HAVE_IOREMAP_PROT=y
@@ -122,13 +122,11 @@ CONFIG_HAVE_CLK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
127# CONFIG_MODULES is not set 126# CONFIG_MODULES is not set
128CONFIG_BLOCK=y 127CONFIG_BLOCK=y
129# CONFIG_LBD is not set 128# CONFIG_LBD is not set
130# CONFIG_BLK_DEV_IO_TRACE is not set 129# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set 130# CONFIG_BLK_DEV_INTEGRITY is not set
133 131
134# 132#
@@ -144,6 +142,10 @@ CONFIG_DEFAULT_DEADLINE=y
144# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
145CONFIG_DEFAULT_IOSCHED="deadline" 143CONFIG_DEFAULT_IOSCHED="deadline"
146CONFIG_CLASSIC_RCU=y 144CONFIG_CLASSIC_RCU=y
145# CONFIG_TREE_RCU is not set
146# CONFIG_PREEMPT_RCU is not set
147# CONFIG_TREE_RCU_TRACE is not set
148# CONFIG_PREEMPT_RCU_TRACE is not set
147# CONFIG_FREEZER is not set 149# CONFIG_FREEZER is not set
148 150
149# 151#
@@ -190,6 +192,7 @@ CONFIG_PPC_MPC106=y
190CONFIG_CPM2=y 192CONFIG_CPM2=y
191# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
192CONFIG_CPM=y 194CONFIG_CPM=y
195# CONFIG_SIMPLE_GPIO is not set
193 196
194# 197#
195# Kernel options 198# Kernel options
@@ -215,6 +218,7 @@ CONFIG_BINFMT_MISC=y
215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
216CONFIG_ARCH_HAS_WALK_MEMORY=y 219CONFIG_ARCH_HAS_WALK_MEMORY=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
221# CONFIG_CRASH_DUMP is not set
218CONFIG_ARCH_FLATMEM_ENABLE=y 222CONFIG_ARCH_FLATMEM_ENABLE=y
219CONFIG_ARCH_POPULATES_NODE_MAP=y 223CONFIG_ARCH_POPULATES_NODE_MAP=y
220CONFIG_FLATMEM=y 224CONFIG_FLATMEM=y
@@ -222,12 +226,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 229# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 233CONFIG_UNEVICTABLE_LRU=y
234CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
@@ -253,6 +259,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_MSI is not set 259# CONFIG_PCI_MSI is not set
254# CONFIG_PCI_LEGACY is not set 260# CONFIG_PCI_LEGACY is not set
255# CONFIG_PCI_DEBUG is not set 261# CONFIG_PCI_DEBUG is not set
262# CONFIG_PCI_STUB is not set
256# CONFIG_PCCARD is not set 263# CONFIG_PCCARD is not set
257# CONFIG_HOTPLUG_PCI is not set 264# CONFIG_HOTPLUG_PCI is not set
258# CONFIG_HAS_RAPIDIO is not set 265# CONFIG_HAS_RAPIDIO is not set
@@ -275,6 +282,7 @@ CONFIG_NET=y
275# 282#
276# Networking options 283# Networking options
277# 284#
285CONFIG_COMPAT_NET_DEV_OPS=y
278CONFIG_PACKET=y 286CONFIG_PACKET=y
279# CONFIG_PACKET_MMAP is not set 287# CONFIG_PACKET_MMAP is not set
280CONFIG_UNIX=y 288CONFIG_UNIX=y
@@ -337,6 +345,7 @@ CONFIG_NETFILTER_ADVANCED=y
337# CONFIG_IPX is not set 345# CONFIG_IPX is not set
338# CONFIG_ATALK is not set 346# CONFIG_ATALK is not set
339# CONFIG_NET_SCHED is not set 347# CONFIG_NET_SCHED is not set
348# CONFIG_DCB is not set
340 349
341# 350#
342# Network testing 351# Network testing
@@ -351,8 +360,9 @@ CONFIG_WIRELESS=y
351# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
352CONFIG_WIRELESS_OLD_REGULATORY=y 361CONFIG_WIRELESS_OLD_REGULATORY=y
353# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
363# CONFIG_LIB80211 is not set
354# CONFIG_MAC80211 is not set 364# CONFIG_MAC80211 is not set
355# CONFIG_IEEE80211 is not set 365# CONFIG_WIMAX is not set
356# CONFIG_RFKILL is not set 366# CONFIG_RFKILL is not set
357 367
358# 368#
@@ -451,6 +461,12 @@ CONFIG_MTD_PHYSMAP_OF=y
451# CONFIG_MTD_ONENAND is not set 461# CONFIG_MTD_ONENAND is not set
452 462
453# 463#
464# LPDDR flash memory drivers
465#
466# CONFIG_MTD_LPDDR is not set
467# CONFIG_MTD_QINFO_PROBE is not set
468
469#
454# UBI - Unsorted block images 470# UBI - Unsorted block images
455# 471#
456# CONFIG_MTD_UBI is not set 472# CONFIG_MTD_UBI is not set
@@ -522,6 +538,9 @@ CONFIG_PHYLIB=y
522# CONFIG_BROADCOM_PHY is not set 538# CONFIG_BROADCOM_PHY is not set
523# CONFIG_ICPLUS_PHY is not set 539# CONFIG_ICPLUS_PHY is not set
524# CONFIG_REALTEK_PHY is not set 540# CONFIG_REALTEK_PHY is not set
541# CONFIG_NATIONAL_PHY is not set
542# CONFIG_STE10XP is not set
543# CONFIG_LSI_ET1011C_PHY is not set
525CONFIG_FIXED_PHY=y 544CONFIG_FIXED_PHY=y
526# CONFIG_MDIO_BITBANG is not set 545# CONFIG_MDIO_BITBANG is not set
527CONFIG_NET_ETHERNET=y 546CONFIG_NET_ETHERNET=y
@@ -558,6 +577,10 @@ CONFIG_FS_ENET_HAS_SCC=y
558# CONFIG_WLAN_PRE80211 is not set 577# CONFIG_WLAN_PRE80211 is not set
559# CONFIG_WLAN_80211 is not set 578# CONFIG_WLAN_80211 is not set
560# CONFIG_IWLWIFI_LEDS is not set 579# CONFIG_IWLWIFI_LEDS is not set
580
581#
582# Enable WiMAX (Networking options) to see the WiMAX drivers
583#
561# CONFIG_WAN is not set 584# CONFIG_WAN is not set
562# CONFIG_FDDI is not set 585# CONFIG_FDDI is not set
563# CONFIG_PPP is not set 586# CONFIG_PPP is not set
@@ -601,6 +624,7 @@ CONFIG_SERIAL_CPM=y
601CONFIG_SERIAL_CPM_CONSOLE=y 624CONFIG_SERIAL_CPM_CONSOLE=y
602# CONFIG_SERIAL_JSM is not set 625# CONFIG_SERIAL_JSM is not set
603CONFIG_UNIX98_PTYS=y 626CONFIG_UNIX98_PTYS=y
627# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
604CONFIG_LEGACY_PTYS=y 628CONFIG_LEGACY_PTYS=y
605CONFIG_LEGACY_PTY_COUNT=256 629CONFIG_LEGACY_PTY_COUNT=256
606# CONFIG_BRIQ_PANEL is not set 630# CONFIG_BRIQ_PANEL is not set
@@ -621,6 +645,11 @@ CONFIG_GPIOLIB=y
621# CONFIG_DEBUG_GPIO is not set 645# CONFIG_DEBUG_GPIO is not set
622 646
623# 647#
648# Memory mapped GPIO expanders:
649#
650# CONFIG_GPIO_XILINX is not set
651
652#
624# I2C GPIO expanders: 653# I2C GPIO expanders:
625# 654#
626 655
@@ -638,11 +667,11 @@ CONFIG_GPIOLIB=y
638# CONFIG_THERMAL is not set 667# CONFIG_THERMAL is not set
639# CONFIG_THERMAL_HWMON is not set 668# CONFIG_THERMAL_HWMON is not set
640# CONFIG_WATCHDOG is not set 669# CONFIG_WATCHDOG is not set
670CONFIG_SSB_POSSIBLE=y
641 671
642# 672#
643# Sonics Silicon Backplane 673# Sonics Silicon Backplane
644# 674#
645CONFIG_SSB_POSSIBLE=y
646# CONFIG_SSB is not set 675# CONFIG_SSB is not set
647 676
648# 677#
@@ -652,14 +681,7 @@ CONFIG_SSB_POSSIBLE=y
652# CONFIG_MFD_SM501 is not set 681# CONFIG_MFD_SM501 is not set
653# CONFIG_HTC_PASIC3 is not set 682# CONFIG_HTC_PASIC3 is not set
654# CONFIG_MFD_TMIO is not set 683# CONFIG_MFD_TMIO is not set
655
656#
657# Voltage and Current regulators
658#
659# CONFIG_REGULATOR is not set 684# CONFIG_REGULATOR is not set
660# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
661# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
662# CONFIG_REGULATOR_BQ24022 is not set
663 685
664# 686#
665# Multimedia devices 687# Multimedia devices
@@ -753,10 +775,7 @@ CONFIG_TMPFS=y
753# CONFIG_TMPFS_POSIX_ACL is not set 775# CONFIG_TMPFS_POSIX_ACL is not set
754# CONFIG_HUGETLB_PAGE is not set 776# CONFIG_HUGETLB_PAGE is not set
755# CONFIG_CONFIGFS_FS is not set 777# CONFIG_CONFIGFS_FS is not set
756 778CONFIG_MISC_FILESYSTEMS=y
757#
758# Miscellaneous filesystems
759#
760# CONFIG_HFSPLUS_FS is not set 779# CONFIG_HFSPLUS_FS is not set
761CONFIG_JFFS2_FS=y 780CONFIG_JFFS2_FS=y
762CONFIG_JFFS2_FS_DEBUG=0 781CONFIG_JFFS2_FS_DEBUG=0
@@ -768,6 +787,7 @@ CONFIG_JFFS2_ZLIB=y
768CONFIG_JFFS2_RTIME=y 787CONFIG_JFFS2_RTIME=y
769# CONFIG_JFFS2_RUBIN is not set 788# CONFIG_JFFS2_RUBIN is not set
770CONFIG_CRAMFS=y 789CONFIG_CRAMFS=y
790# CONFIG_SQUASHFS is not set
771# CONFIG_VXFS_FS is not set 791# CONFIG_VXFS_FS is not set
772# CONFIG_MINIX_FS is not set 792# CONFIG_MINIX_FS is not set
773# CONFIG_OMFS_FS is not set 793# CONFIG_OMFS_FS is not set
@@ -857,6 +877,7 @@ CONFIG_NLS_UTF8=y
857# Library routines 877# Library routines
858# 878#
859CONFIG_BITREVERSE=y 879CONFIG_BITREVERSE=y
880CONFIG_GENERIC_FIND_LAST_BIT=y
860# CONFIG_CRC_CCITT is not set 881# CONFIG_CRC_CCITT is not set
861# CONFIG_CRC16 is not set 882# CONFIG_CRC16 is not set
862# CONFIG_CRC_T10DIF is not set 883# CONFIG_CRC_T10DIF is not set
@@ -905,6 +926,7 @@ CONFIG_DEBUG_INFO=y
905# CONFIG_DEBUG_MEMORY_INIT is not set 926# CONFIG_DEBUG_MEMORY_INIT is not set
906# CONFIG_DEBUG_LIST is not set 927# CONFIG_DEBUG_LIST is not set
907# CONFIG_DEBUG_SG is not set 928# CONFIG_DEBUG_SG is not set
929# CONFIG_DEBUG_NOTIFIERS is not set
908# CONFIG_BOOT_PRINTK_DELAY is not set 930# CONFIG_BOOT_PRINTK_DELAY is not set
909# CONFIG_RCU_TORTURE_TEST is not set 931# CONFIG_RCU_TORTURE_TEST is not set
910# CONFIG_RCU_CPU_STALL_DETECTOR is not set 932# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -914,6 +936,8 @@ CONFIG_DEBUG_INFO=y
914# CONFIG_LATENCYTOP is not set 936# CONFIG_LATENCYTOP is not set
915CONFIG_SYSCTL_SYSCALL_CHECK=y 937CONFIG_SYSCTL_SYSCALL_CHECK=y
916CONFIG_HAVE_FUNCTION_TRACER=y 938CONFIG_HAVE_FUNCTION_TRACER=y
939CONFIG_HAVE_DYNAMIC_FTRACE=y
940CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
917 941
918# 942#
919# Tracers 943# Tracers
@@ -922,10 +946,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
922# CONFIG_SCHED_TRACER is not set 946# CONFIG_SCHED_TRACER is not set
923# CONFIG_CONTEXT_SWITCH_TRACER is not set 947# CONFIG_CONTEXT_SWITCH_TRACER is not set
924# CONFIG_BOOT_TRACER is not set 948# CONFIG_BOOT_TRACER is not set
949# CONFIG_TRACE_BRANCH_PROFILING is not set
925# CONFIG_STACK_TRACER is not set 950# CONFIG_STACK_TRACER is not set
926# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 951# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
927# CONFIG_SAMPLES is not set 952# CONFIG_SAMPLES is not set
928CONFIG_HAVE_ARCH_KGDB=y 953CONFIG_HAVE_ARCH_KGDB=y
954CONFIG_PRINT_STACK_DEPTH=64
929# CONFIG_DEBUG_STACKOVERFLOW is not set 955# CONFIG_DEBUG_STACKOVERFLOW is not set
930# CONFIG_DEBUG_STACK_USAGE is not set 956# CONFIG_DEBUG_STACK_USAGE is not set
931# CONFIG_DEBUG_PAGEALLOC is not set 957# CONFIG_DEBUG_PAGEALLOC is not set
@@ -953,11 +979,15 @@ CONFIG_CRYPTO=y
953# 979#
954# CONFIG_CRYPTO_FIPS is not set 980# CONFIG_CRYPTO_FIPS is not set
955CONFIG_CRYPTO_ALGAPI=y 981CONFIG_CRYPTO_ALGAPI=y
956CONFIG_CRYPTO_AEAD=y 982CONFIG_CRYPTO_ALGAPI2=y
983CONFIG_CRYPTO_AEAD2=y
957CONFIG_CRYPTO_BLKCIPHER=y 984CONFIG_CRYPTO_BLKCIPHER=y
985CONFIG_CRYPTO_BLKCIPHER2=y
958CONFIG_CRYPTO_HASH=y 986CONFIG_CRYPTO_HASH=y
959CONFIG_CRYPTO_RNG=y 987CONFIG_CRYPTO_HASH2=y
988CONFIG_CRYPTO_RNG2=y
960CONFIG_CRYPTO_MANAGER=y 989CONFIG_CRYPTO_MANAGER=y
990CONFIG_CRYPTO_MANAGER2=y
961# CONFIG_CRYPTO_NULL is not set 991# CONFIG_CRYPTO_NULL is not set
962# CONFIG_CRYPTO_CRYPTD is not set 992# CONFIG_CRYPTO_CRYPTD is not set
963# CONFIG_CRYPTO_AUTHENC is not set 993# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/mgsuvd_defconfig b/arch/powerpc/configs/mgsuvd_defconfig
index fbaa67f7b0ef..297b5d5042be 100644
--- a/arch/powerpc/configs/mgsuvd_defconfig
+++ b/arch/powerpc/configs/mgsuvd_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:39 2008 4# Mon Jan 26 15:35:32 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_8xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_8xx=y 17CONFIG_8xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -69,12 +70,12 @@ CONFIG_SYSVIPC_SYSCTL=y
69# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
70# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
71CONFIG_LOG_BUF_SHIFT=17 72CONFIG_LOG_BUF_SHIFT=17
72# CONFIG_CGROUPS is not set
73CONFIG_GROUP_SCHED=y 73CONFIG_GROUP_SCHED=y
74CONFIG_FAIR_GROUP_SCHED=y 74CONFIG_FAIR_GROUP_SCHED=y
75# CONFIG_RT_GROUP_SCHED is not set 75# CONFIG_RT_GROUP_SCHED is not set
76CONFIG_USER_SCHED=y 76CONFIG_USER_SCHED=y
77# CONFIG_CGROUP_SCHED is not set 77# CONFIG_CGROUP_SCHED is not set
78# CONFIG_CGROUPS is not set
78CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
79CONFIG_SYSFS_DEPRECATED_V2=y 80CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
@@ -106,7 +107,6 @@ CONFIG_SLAB=y
106# CONFIG_SLUB is not set 107# CONFIG_SLUB is not set
107# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set 109# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
112CONFIG_HAVE_IOREMAP_PROT=y 112CONFIG_HAVE_IOREMAP_PROT=y
@@ -117,13 +117,11 @@ CONFIG_HAVE_CLK=y
117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set
121CONFIG_BASE_SMALL=1 120CONFIG_BASE_SMALL=1
122# CONFIG_MODULES is not set 121# CONFIG_MODULES is not set
123CONFIG_BLOCK=y 122CONFIG_BLOCK=y
124# CONFIG_LBD is not set 123# CONFIG_LBD is not set
125# CONFIG_BLK_DEV_IO_TRACE is not set 124# CONFIG_BLK_DEV_IO_TRACE is not set
126# CONFIG_LSF is not set
127# CONFIG_BLK_DEV_BSG is not set 125# CONFIG_BLK_DEV_BSG is not set
128# CONFIG_BLK_DEV_INTEGRITY is not set 126# CONFIG_BLK_DEV_INTEGRITY is not set
129 127
@@ -140,6 +138,10 @@ CONFIG_DEFAULT_AS=y
140# CONFIG_DEFAULT_NOOP is not set 138# CONFIG_DEFAULT_NOOP is not set
141CONFIG_DEFAULT_IOSCHED="anticipatory" 139CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y 140CONFIG_CLASSIC_RCU=y
141# CONFIG_TREE_RCU is not set
142# CONFIG_PREEMPT_RCU is not set
143# CONFIG_TREE_RCU_TRACE is not set
144# CONFIG_PREEMPT_RCU_TRACE is not set
143# CONFIG_FREEZER is not set 145# CONFIG_FREEZER is not set
144 146
145# 147#
@@ -186,6 +188,7 @@ CONFIG_UCODE_PATCH=y
186# CONFIG_QUICC_ENGINE is not set 188# CONFIG_QUICC_ENGINE is not set
187# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
188CONFIG_CPM=y 190CONFIG_CPM=y
191# CONFIG_SIMPLE_GPIO is not set
189 192
190# 193#
191# Kernel options 194# Kernel options
@@ -209,6 +212,7 @@ CONFIG_BINFMT_ELF=y
209# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
210CONFIG_MATH_EMULATION=y 213CONFIG_MATH_EMULATION=y
211# CONFIG_IOMMU_HELPER is not set 214# CONFIG_IOMMU_HELPER is not set
215CONFIG_PPC_NEED_DMA_SYNC_OPS=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
213CONFIG_ARCH_HAS_WALK_MEMORY=y 217CONFIG_ARCH_HAS_WALK_MEMORY=y
214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -223,12 +227,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
223CONFIG_PAGEFLAGS_EXTENDED=y 227CONFIG_PAGEFLAGS_EXTENDED=y
224CONFIG_SPLIT_PTLOCK_CPUS=4 228CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y 229CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set
227# CONFIG_PHYS_ADDR_T_64BIT is not set 230# CONFIG_PHYS_ADDR_T_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
230CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
231CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set
232CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
233# CONFIG_PROC_DEVICETREE is not set 239# CONFIG_PROC_DEVICETREE is not set
234# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +275,7 @@ CONFIG_NET=y
269# 275#
270# Networking options 276# Networking options
271# 277#
278CONFIG_COMPAT_NET_DEV_OPS=y
272CONFIG_PACKET=y 279CONFIG_PACKET=y
273# CONFIG_PACKET_MMAP is not set 280# CONFIG_PACKET_MMAP is not set
274CONFIG_UNIX=y 281CONFIG_UNIX=y
@@ -325,6 +332,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
325# CONFIG_ECONET is not set 332# CONFIG_ECONET is not set
326# CONFIG_WAN_ROUTER is not set 333# CONFIG_WAN_ROUTER is not set
327# CONFIG_NET_SCHED is not set 334# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set
328 336
329# 337#
330# Network testing 338# Network testing
@@ -340,8 +348,9 @@ CONFIG_WIRELESS=y
340# CONFIG_CFG80211 is not set 348# CONFIG_CFG80211 is not set
341CONFIG_WIRELESS_OLD_REGULATORY=y 349CONFIG_WIRELESS_OLD_REGULATORY=y
342# CONFIG_WIRELESS_EXT is not set 350# CONFIG_WIRELESS_EXT is not set
351# CONFIG_LIB80211 is not set
343# CONFIG_MAC80211 is not set 352# CONFIG_MAC80211 is not set
344# CONFIG_IEEE80211 is not set 353# CONFIG_WIMAX is not set
345# CONFIG_RFKILL is not set 354# CONFIG_RFKILL is not set
346# CONFIG_NET_9P is not set 355# CONFIG_NET_9P is not set
347 356
@@ -435,6 +444,12 @@ CONFIG_MTD_PHYSMAP_OF=y
435# CONFIG_MTD_ONENAND is not set 444# CONFIG_MTD_ONENAND is not set
436 445
437# 446#
447# LPDDR flash memory drivers
448#
449# CONFIG_MTD_LPDDR is not set
450# CONFIG_MTD_QINFO_PROBE is not set
451
452#
438# UBI - Unsorted block images 453# UBI - Unsorted block images
439# 454#
440# CONFIG_MTD_UBI is not set 455# CONFIG_MTD_UBI is not set
@@ -489,6 +504,9 @@ CONFIG_PHYLIB=y
489# CONFIG_BROADCOM_PHY is not set 504# CONFIG_BROADCOM_PHY is not set
490# CONFIG_ICPLUS_PHY is not set 505# CONFIG_ICPLUS_PHY is not set
491# CONFIG_REALTEK_PHY is not set 506# CONFIG_REALTEK_PHY is not set
507# CONFIG_NATIONAL_PHY is not set
508# CONFIG_STE10XP is not set
509# CONFIG_LSI_ET1011C_PHY is not set
492CONFIG_FIXED_PHY=y 510CONFIG_FIXED_PHY=y
493# CONFIG_MDIO_BITBANG is not set 511# CONFIG_MDIO_BITBANG is not set
494CONFIG_NET_ETHERNET=y 512CONFIG_NET_ETHERNET=y
@@ -514,6 +532,10 @@ CONFIG_FS_ENET_HAS_SCC=y
514# CONFIG_WLAN_PRE80211 is not set 532# CONFIG_WLAN_PRE80211 is not set
515# CONFIG_WLAN_80211 is not set 533# CONFIG_WLAN_80211 is not set
516# CONFIG_IWLWIFI_LEDS is not set 534# CONFIG_IWLWIFI_LEDS is not set
535
536#
537# Enable WiMAX (Networking options) to see the WiMAX drivers
538#
517# CONFIG_WAN is not set 539# CONFIG_WAN is not set
518# CONFIG_PPP is not set 540# CONFIG_PPP is not set
519# CONFIG_SLIP is not set 541# CONFIG_SLIP is not set
@@ -555,7 +577,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
555CONFIG_SERIAL_CPM=y 577CONFIG_SERIAL_CPM=y
556CONFIG_SERIAL_CPM_CONSOLE=y 578CONFIG_SERIAL_CPM_CONSOLE=y
557CONFIG_UNIX98_PTYS=y 579CONFIG_UNIX98_PTYS=y
580# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
558# CONFIG_LEGACY_PTYS is not set 581# CONFIG_LEGACY_PTYS is not set
582# CONFIG_HVC_UDBG is not set
559# CONFIG_IPMI_HANDLER is not set 583# CONFIG_IPMI_HANDLER is not set
560CONFIG_HW_RANDOM=y 584CONFIG_HW_RANDOM=y
561# CONFIG_NVRAM is not set 585# CONFIG_NVRAM is not set
@@ -574,11 +598,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
574# CONFIG_THERMAL is not set 598# CONFIG_THERMAL is not set
575# CONFIG_THERMAL_HWMON is not set 599# CONFIG_THERMAL_HWMON is not set
576# CONFIG_WATCHDOG is not set 600# CONFIG_WATCHDOG is not set
601CONFIG_SSB_POSSIBLE=y
577 602
578# 603#
579# Sonics Silicon Backplane 604# Sonics Silicon Backplane
580# 605#
581CONFIG_SSB_POSSIBLE=y
582# CONFIG_SSB is not set 606# CONFIG_SSB is not set
583 607
584# 608#
@@ -588,14 +612,7 @@ CONFIG_SSB_POSSIBLE=y
588# CONFIG_MFD_SM501 is not set 612# CONFIG_MFD_SM501 is not set
589# CONFIG_HTC_PASIC3 is not set 613# CONFIG_HTC_PASIC3 is not set
590# CONFIG_MFD_TMIO is not set 614# CONFIG_MFD_TMIO is not set
591
592#
593# Voltage and Current regulators
594#
595# CONFIG_REGULATOR is not set 615# CONFIG_REGULATOR is not set
596# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
597# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
598# CONFIG_REGULATOR_BQ24022 is not set
599 616
600# 617#
601# Multimedia devices 618# Multimedia devices
@@ -659,6 +676,7 @@ CONFIG_FS_MBCACHE=y
659CONFIG_FILE_LOCKING=y 676CONFIG_FILE_LOCKING=y
660# CONFIG_XFS_FS is not set 677# CONFIG_XFS_FS is not set
661# CONFIG_OCFS2_FS is not set 678# CONFIG_OCFS2_FS is not set
679# CONFIG_BTRFS_FS is not set
662CONFIG_DNOTIFY=y 680CONFIG_DNOTIFY=y
663CONFIG_INOTIFY=y 681CONFIG_INOTIFY=y
664CONFIG_INOTIFY_USER=y 682CONFIG_INOTIFY_USER=y
@@ -692,10 +710,7 @@ CONFIG_TMPFS=y
692# CONFIG_TMPFS_POSIX_ACL is not set 710# CONFIG_TMPFS_POSIX_ACL is not set
693# CONFIG_HUGETLB_PAGE is not set 711# CONFIG_HUGETLB_PAGE is not set
694# CONFIG_CONFIGFS_FS is not set 712# CONFIG_CONFIGFS_FS is not set
695 713CONFIG_MISC_FILESYSTEMS=y
696#
697# Miscellaneous filesystems
698#
699# CONFIG_ADFS_FS is not set 714# CONFIG_ADFS_FS is not set
700# CONFIG_AFFS_FS is not set 715# CONFIG_AFFS_FS is not set
701# CONFIG_HFS_FS is not set 716# CONFIG_HFS_FS is not set
@@ -715,6 +730,7 @@ CONFIG_JFFS2_ZLIB=y
715CONFIG_JFFS2_RTIME=y 730CONFIG_JFFS2_RTIME=y
716# CONFIG_JFFS2_RUBIN is not set 731# CONFIG_JFFS2_RUBIN is not set
717CONFIG_CRAMFS=y 732CONFIG_CRAMFS=y
733# CONFIG_SQUASHFS is not set
718# CONFIG_VXFS_FS is not set 734# CONFIG_VXFS_FS is not set
719# CONFIG_MINIX_FS is not set 735# CONFIG_MINIX_FS is not set
720# CONFIG_OMFS_FS is not set 736# CONFIG_OMFS_FS is not set
@@ -771,6 +787,7 @@ CONFIG_MSDOS_PARTITION=y
771# Library routines 787# Library routines
772# 788#
773CONFIG_BITREVERSE=y 789CONFIG_BITREVERSE=y
790CONFIG_GENERIC_FIND_LAST_BIT=y
774CONFIG_CRC_CCITT=y 791CONFIG_CRC_CCITT=y
775# CONFIG_CRC16 is not set 792# CONFIG_CRC16 is not set
776# CONFIG_CRC_T10DIF is not set 793# CONFIG_CRC_T10DIF is not set
@@ -802,6 +819,8 @@ CONFIG_DEBUG_FS=y
802# CONFIG_RCU_CPU_STALL_DETECTOR is not set 819# CONFIG_RCU_CPU_STALL_DETECTOR is not set
803# CONFIG_LATENCYTOP is not set 820# CONFIG_LATENCYTOP is not set
804CONFIG_HAVE_FUNCTION_TRACER=y 821CONFIG_HAVE_FUNCTION_TRACER=y
822CONFIG_HAVE_DYNAMIC_FTRACE=y
823CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
805 824
806# 825#
807# Tracers 826# Tracers
@@ -809,6 +828,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
809# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 828# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
810# CONFIG_SAMPLES is not set 829# CONFIG_SAMPLES is not set
811CONFIG_HAVE_ARCH_KGDB=y 830CONFIG_HAVE_ARCH_KGDB=y
831CONFIG_PRINT_STACK_DEPTH=64
812# CONFIG_IRQSTACKS is not set 832# CONFIG_IRQSTACKS is not set
813# CONFIG_VIRQ_DEBUG is not set 833# CONFIG_VIRQ_DEBUG is not set
814# CONFIG_PPC_EARLY_DEBUG is not set 834# CONFIG_PPC_EARLY_DEBUG is not set
@@ -827,6 +847,7 @@ CONFIG_CRYPTO=y
827# 847#
828# CONFIG_CRYPTO_FIPS is not set 848# CONFIG_CRYPTO_FIPS is not set
829# CONFIG_CRYPTO_MANAGER is not set 849# CONFIG_CRYPTO_MANAGER is not set
850# CONFIG_CRYPTO_MANAGER2 is not set
830# CONFIG_CRYPTO_GF128MUL is not set 851# CONFIG_CRYPTO_GF128MUL is not set
831# CONFIG_CRYPTO_NULL is not set 852# CONFIG_CRYPTO_NULL is not set
832# CONFIG_CRYPTO_CRYPTD is not set 853# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/mpc5200_defconfig b/arch/powerpc/configs/mpc5200_defconfig
index 15c5604d0b26..81afc8b373d7 100644
--- a/arch/powerpc/configs/mpc5200_defconfig
+++ b/arch/powerpc/configs/mpc5200_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:09:07 2008 4# Mon Jan 26 21:40:44 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -72,10 +72,19 @@ CONFIG_SYSVIPC_SYSCTL=y
72# CONFIG_BSD_PROCESS_ACCT is not set 72# CONFIG_BSD_PROCESS_ACCT is not set
73# CONFIG_TASKSTATS is not set 73# CONFIG_TASKSTATS is not set
74# CONFIG_AUDIT is not set 74# CONFIG_AUDIT is not set
75
76#
77# RCU Subsystem
78#
79CONFIG_CLASSIC_RCU=y
80# CONFIG_TREE_RCU is not set
81# CONFIG_PREEMPT_RCU is not set
82# CONFIG_TREE_RCU_TRACE is not set
83# CONFIG_PREEMPT_RCU_TRACE is not set
75# CONFIG_IKCONFIG is not set 84# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 85CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78# CONFIG_GROUP_SCHED is not set 86# CONFIG_GROUP_SCHED is not set
87# CONFIG_CGROUPS is not set
79CONFIG_SYSFS_DEPRECATED=y 88CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y 89CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 90# CONFIG_RELAY is not set
@@ -108,7 +117,6 @@ CONFIG_SLUB_DEBUG=y
108CONFIG_SLUB=y 117CONFIG_SLUB=y
109# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set 119# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 122CONFIG_HAVE_IOREMAP_PROT=y
@@ -119,7 +127,6 @@ CONFIG_HAVE_CLK=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
121CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
122# CONFIG_TINY_SHMEM is not set
123CONFIG_BASE_SMALL=0 130CONFIG_BASE_SMALL=0
124CONFIG_MODULES=y 131CONFIG_MODULES=y
125# CONFIG_MODULE_FORCE_LOAD is not set 132# CONFIG_MODULE_FORCE_LOAD is not set
@@ -127,11 +134,9 @@ CONFIG_MODULE_UNLOAD=y
127# CONFIG_MODULE_FORCE_UNLOAD is not set 134# CONFIG_MODULE_FORCE_UNLOAD is not set
128# CONFIG_MODVERSIONS is not set 135# CONFIG_MODVERSIONS is not set
129# CONFIG_MODULE_SRCVERSION_ALL is not set 136# CONFIG_MODULE_SRCVERSION_ALL is not set
130CONFIG_KMOD=y
131CONFIG_BLOCK=y 137CONFIG_BLOCK=y
132# CONFIG_LBD is not set 138# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set 139# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_LSF is not set
135# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 141# CONFIG_BLK_DEV_INTEGRITY is not set
137 142
@@ -147,7 +152,6 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 152# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 154CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151CONFIG_FREEZER=y 155CONFIG_FREEZER=y
152 156
153# 157#
@@ -192,7 +196,7 @@ CONFIG_RTAS_PROC=y
192CONFIG_PPC_BESTCOMM=y 196CONFIG_PPC_BESTCOMM=y
193CONFIG_PPC_BESTCOMM_ATA=y 197CONFIG_PPC_BESTCOMM_ATA=y
194CONFIG_PPC_BESTCOMM_FEC=y 198CONFIG_PPC_BESTCOMM_FEC=y
195CONFIG_PPC_BESTCOMM_GEN_BD=y 199# CONFIG_SIMPLE_GPIO is not set
196 200
197# 201#
198# Kernel options 202# Kernel options
@@ -220,6 +224,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
220CONFIG_ARCH_HAS_WALK_MEMORY=y 224CONFIG_ARCH_HAS_WALK_MEMORY=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
222# CONFIG_KEXEC is not set 226# CONFIG_KEXEC is not set
227# CONFIG_CRASH_DUMP is not set
223CONFIG_ARCH_FLATMEM_ENABLE=y 228CONFIG_ARCH_FLATMEM_ENABLE=y
224CONFIG_ARCH_POPULATES_NODE_MAP=y 229CONFIG_ARCH_POPULATES_NODE_MAP=y
225CONFIG_SELECT_MEMORY_MODEL=y 230CONFIG_SELECT_MEMORY_MODEL=y
@@ -231,12 +236,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
231CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
232CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
233CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
234# CONFIG_RESOURCES_64BIT is not set
235# CONFIG_PHYS_ADDR_T_64BIT is not set 239# CONFIG_PHYS_ADDR_T_64BIT is not set
236CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
237CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
238CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
239CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set
240CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
241CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
242# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
@@ -264,6 +271,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
264# CONFIG_PCI_MSI is not set 271# CONFIG_PCI_MSI is not set
265CONFIG_PCI_LEGACY=y 272CONFIG_PCI_LEGACY=y
266# CONFIG_PCI_DEBUG is not set 273# CONFIG_PCI_DEBUG is not set
274# CONFIG_PCI_STUB is not set
267# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
268# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
269# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -286,6 +294,7 @@ CONFIG_NET=y
286# 294#
287# Networking options 295# Networking options
288# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
289CONFIG_PACKET=y 298CONFIG_PACKET=y
290# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
291CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -342,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
344# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
345 355
346# 356#
347# Network testing 357# Network testing
@@ -354,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
354# CONFIG_AF_RXRPC is not set 364# CONFIG_AF_RXRPC is not set
355# CONFIG_PHONET is not set 365# CONFIG_PHONET is not set
356# CONFIG_WIRELESS is not set 366# CONFIG_WIRELESS is not set
367# CONFIG_WIMAX is not set
357# CONFIG_RFKILL is not set 368# CONFIG_RFKILL is not set
358# CONFIG_NET_9P is not set 369# CONFIG_NET_9P is not set
359 370
@@ -376,6 +387,7 @@ CONFIG_MTD=y
376# CONFIG_MTD_DEBUG is not set 387# CONFIG_MTD_DEBUG is not set
377CONFIG_MTD_CONCAT=y 388CONFIG_MTD_CONCAT=y
378CONFIG_MTD_PARTITIONS=y 389CONFIG_MTD_PARTITIONS=y
390# CONFIG_MTD_TESTS is not set
379# CONFIG_MTD_REDBOOT_PARTS is not set 391# CONFIG_MTD_REDBOOT_PARTS is not set
380CONFIG_MTD_CMDLINE_PARTS=y 392CONFIG_MTD_CMDLINE_PARTS=y
381# CONFIG_MTD_OF_PARTS is not set 393# CONFIG_MTD_OF_PARTS is not set
@@ -447,6 +459,12 @@ CONFIG_MTD_PHYSMAP_OF=y
447# CONFIG_MTD_ONENAND is not set 459# CONFIG_MTD_ONENAND is not set
448 460
449# 461#
462# LPDDR flash memory drivers
463#
464# CONFIG_MTD_LPDDR is not set
465# CONFIG_MTD_QINFO_PROBE is not set
466
467#
450# UBI - Unsorted block images 468# UBI - Unsorted block images
451# 469#
452# CONFIG_MTD_UBI is not set 470# CONFIG_MTD_UBI is not set
@@ -474,13 +492,19 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
474# CONFIG_BLK_DEV_HD is not set 492# CONFIG_BLK_DEV_HD is not set
475CONFIG_MISC_DEVICES=y 493CONFIG_MISC_DEVICES=y
476# CONFIG_PHANTOM is not set 494# CONFIG_PHANTOM is not set
477# CONFIG_EEPROM_93CX6 is not set
478# CONFIG_SGI_IOC4 is not set 495# CONFIG_SGI_IOC4 is not set
479# CONFIG_TIFM_CORE is not set 496# CONFIG_TIFM_CORE is not set
480# CONFIG_ICS932S401 is not set 497# CONFIG_ICS932S401 is not set
481# CONFIG_ENCLOSURE_SERVICES is not set 498# CONFIG_ENCLOSURE_SERVICES is not set
482# CONFIG_HP_ILO is not set 499# CONFIG_HP_ILO is not set
483# CONFIG_C2PORT is not set 500# CONFIG_C2PORT is not set
501
502#
503# EEPROM support
504#
505# CONFIG_EEPROM_AT24 is not set
506# CONFIG_EEPROM_LEGACY is not set
507# CONFIG_EEPROM_93CX6 is not set
484CONFIG_HAVE_IDE=y 508CONFIG_HAVE_IDE=y
485# CONFIG_IDE is not set 509# CONFIG_IDE is not set
486 510
@@ -539,6 +563,8 @@ CONFIG_SCSI_LOWLEVEL=y
539# CONFIG_MEGARAID_SAS is not set 563# CONFIG_MEGARAID_SAS is not set
540# CONFIG_SCSI_HPTIOP is not set 564# CONFIG_SCSI_HPTIOP is not set
541# CONFIG_SCSI_BUSLOGIC is not set 565# CONFIG_SCSI_BUSLOGIC is not set
566# CONFIG_LIBFC is not set
567# CONFIG_FCOE is not set
542# CONFIG_SCSI_DMX3191D is not set 568# CONFIG_SCSI_DMX3191D is not set
543# CONFIG_SCSI_EATA is not set 569# CONFIG_SCSI_EATA is not set
544# CONFIG_SCSI_FUTURE_DOMAIN is not set 570# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -659,6 +685,9 @@ CONFIG_PHYLIB=y
659# CONFIG_BROADCOM_PHY is not set 685# CONFIG_BROADCOM_PHY is not set
660# CONFIG_ICPLUS_PHY is not set 686# CONFIG_ICPLUS_PHY is not set
661# CONFIG_REALTEK_PHY is not set 687# CONFIG_REALTEK_PHY is not set
688# CONFIG_NATIONAL_PHY is not set
689# CONFIG_STE10XP is not set
690# CONFIG_LSI_ET1011C_PHY is not set
662# CONFIG_FIXED_PHY is not set 691# CONFIG_FIXED_PHY is not set
663# CONFIG_MDIO_BITBANG is not set 692# CONFIG_MDIO_BITBANG is not set
664CONFIG_NET_ETHERNET=y 693CONFIG_NET_ETHERNET=y
@@ -693,6 +722,10 @@ CONFIG_FEC_MPC52xx_MDIO=y
693# CONFIG_IWLWIFI_LEDS is not set 722# CONFIG_IWLWIFI_LEDS is not set
694 723
695# 724#
725# Enable WiMAX (Networking options) to see the WiMAX drivers
726#
727
728#
696# USB Network Adapters 729# USB Network Adapters
697# 730#
698# CONFIG_USB_CATC is not set 731# CONFIG_USB_CATC is not set
@@ -774,9 +807,11 @@ CONFIG_SERIAL_MPC52xx_CONSOLE=y
774CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 807CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
775# CONFIG_SERIAL_JSM is not set 808# CONFIG_SERIAL_JSM is not set
776CONFIG_UNIX98_PTYS=y 809CONFIG_UNIX98_PTYS=y
810# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
777CONFIG_LEGACY_PTYS=y 811CONFIG_LEGACY_PTYS=y
778CONFIG_LEGACY_PTY_COUNT=256 812CONFIG_LEGACY_PTY_COUNT=256
779# CONFIG_HVC_RTAS is not set 813# CONFIG_HVC_RTAS is not set
814# CONFIG_HVC_UDBG is not set
780# CONFIG_IPMI_HANDLER is not set 815# CONFIG_IPMI_HANDLER is not set
781# CONFIG_HW_RANDOM is not set 816# CONFIG_HW_RANDOM is not set
782# CONFIG_NVRAM is not set 817# CONFIG_NVRAM is not set
@@ -844,8 +879,6 @@ CONFIG_I2C_MPC=y
844# Miscellaneous I2C Chip support 879# Miscellaneous I2C Chip support
845# 880#
846# CONFIG_DS1682 is not set 881# CONFIG_DS1682 is not set
847# CONFIG_AT24 is not set
848# CONFIG_SENSORS_EEPROM is not set
849# CONFIG_SENSORS_PCF8574 is not set 882# CONFIG_SENSORS_PCF8574 is not set
850# CONFIG_PCF8575 is not set 883# CONFIG_PCF8575 is not set
851# CONFIG_SENSORS_PCA9539 is not set 884# CONFIG_SENSORS_PCA9539 is not set
@@ -874,6 +907,7 @@ CONFIG_HWMON=y
874# CONFIG_SENSORS_ADT7462 is not set 907# CONFIG_SENSORS_ADT7462 is not set
875# CONFIG_SENSORS_ADT7470 is not set 908# CONFIG_SENSORS_ADT7470 is not set
876# CONFIG_SENSORS_ADT7473 is not set 909# CONFIG_SENSORS_ADT7473 is not set
910# CONFIG_SENSORS_ADT7475 is not set
877# CONFIG_SENSORS_ATXP1 is not set 911# CONFIG_SENSORS_ATXP1 is not set
878# CONFIG_SENSORS_DS1621 is not set 912# CONFIG_SENSORS_DS1621 is not set
879# CONFIG_SENSORS_I5K_AMB is not set 913# CONFIG_SENSORS_I5K_AMB is not set
@@ -894,6 +928,7 @@ CONFIG_HWMON=y
894# CONFIG_SENSORS_LM90 is not set 928# CONFIG_SENSORS_LM90 is not set
895# CONFIG_SENSORS_LM92 is not set 929# CONFIG_SENSORS_LM92 is not set
896# CONFIG_SENSORS_LM93 is not set 930# CONFIG_SENSORS_LM93 is not set
931# CONFIG_SENSORS_LTC4245 is not set
897# CONFIG_SENSORS_MAX1619 is not set 932# CONFIG_SENSORS_MAX1619 is not set
898# CONFIG_SENSORS_MAX6650 is not set 933# CONFIG_SENSORS_MAX6650 is not set
899# CONFIG_SENSORS_PC87360 is not set 934# CONFIG_SENSORS_PC87360 is not set
@@ -953,10 +988,12 @@ CONFIG_SSB_POSSIBLE=y
953# CONFIG_MFD_CORE is not set 988# CONFIG_MFD_CORE is not set
954# CONFIG_MFD_SM501 is not set 989# CONFIG_MFD_SM501 is not set
955# CONFIG_HTC_PASIC3 is not set 990# CONFIG_HTC_PASIC3 is not set
991# CONFIG_TWL4030_CORE is not set
956# CONFIG_MFD_TMIO is not set 992# CONFIG_MFD_TMIO is not set
957# CONFIG_PMIC_DA903X is not set 993# CONFIG_PMIC_DA903X is not set
958# CONFIG_MFD_WM8400 is not set 994# CONFIG_MFD_WM8400 is not set
959# CONFIG_MFD_WM8350_I2C is not set 995# CONFIG_MFD_WM8350_I2C is not set
996# CONFIG_MFD_PCF50633 is not set
960# CONFIG_REGULATOR is not set 997# CONFIG_REGULATOR is not set
961 998
962# 999#
@@ -1051,7 +1088,7 @@ CONFIG_LCD_CLASS_DEVICE=m
1051# CONFIG_LCD_ILI9320 is not set 1088# CONFIG_LCD_ILI9320 is not set
1052# CONFIG_LCD_PLATFORM is not set 1089# CONFIG_LCD_PLATFORM is not set
1053CONFIG_BACKLIGHT_CLASS_DEVICE=y 1090CONFIG_BACKLIGHT_CLASS_DEVICE=y
1054# CONFIG_BACKLIGHT_CORGI is not set 1091CONFIG_BACKLIGHT_GENERIC=y
1055 1092
1056# 1093#
1057# Display device support 1094# Display device support
@@ -1093,21 +1130,22 @@ CONFIG_HID_COMPAT=y
1093CONFIG_HID_A4TECH=y 1130CONFIG_HID_A4TECH=y
1094# CONFIG_HID_APPLE is not set 1131# CONFIG_HID_APPLE is not set
1095CONFIG_HID_BELKIN=y 1132CONFIG_HID_BELKIN=y
1096CONFIG_HID_BRIGHT=y
1097CONFIG_HID_CHERRY=y 1133CONFIG_HID_CHERRY=y
1098# CONFIG_HID_CHICONY is not set 1134# CONFIG_HID_CHICONY is not set
1099CONFIG_HID_CYPRESS=y 1135CONFIG_HID_CYPRESS=y
1100CONFIG_HID_DELL=y
1101CONFIG_HID_EZKEY=y 1136CONFIG_HID_EZKEY=y
1102# CONFIG_HID_GYRATION is not set 1137# CONFIG_HID_GYRATION is not set
1103# CONFIG_HID_LOGITECH is not set 1138# CONFIG_HID_LOGITECH is not set
1104# CONFIG_HID_MICROSOFT is not set 1139# CONFIG_HID_MICROSOFT is not set
1105# CONFIG_HID_MONTEREY is not set 1140# CONFIG_HID_MONTEREY is not set
1141# CONFIG_HID_NTRIG is not set
1106# CONFIG_HID_PANTHERLORD is not set 1142# CONFIG_HID_PANTHERLORD is not set
1107# CONFIG_HID_PETALYNX is not set 1143# CONFIG_HID_PETALYNX is not set
1108# CONFIG_HID_SAMSUNG is not set 1144# CONFIG_HID_SAMSUNG is not set
1109# CONFIG_HID_SONY is not set 1145# CONFIG_HID_SONY is not set
1110# CONFIG_HID_SUNPLUS is not set 1146# CONFIG_HID_SUNPLUS is not set
1147# CONFIG_GREENASIA_FF is not set
1148# CONFIG_HID_TOPSEED is not set
1111# CONFIG_THRUSTMASTER_FF is not set 1149# CONFIG_THRUSTMASTER_FF is not set
1112# CONFIG_ZEROPLUS_FF is not set 1150# CONFIG_ZEROPLUS_FF is not set
1113CONFIG_USB_SUPPORT=y 1151CONFIG_USB_SUPPORT=y
@@ -1137,6 +1175,7 @@ CONFIG_USB_MON=y
1137# 1175#
1138# CONFIG_USB_C67X00_HCD is not set 1176# CONFIG_USB_C67X00_HCD is not set
1139# CONFIG_USB_EHCI_HCD is not set 1177# CONFIG_USB_EHCI_HCD is not set
1178# CONFIG_USB_OXU210HP_HCD is not set
1140# CONFIG_USB_ISP116X_HCD is not set 1179# CONFIG_USB_ISP116X_HCD is not set
1141# CONFIG_USB_ISP1760_HCD is not set 1180# CONFIG_USB_ISP1760_HCD is not set
1142CONFIG_USB_OHCI_HCD=y 1181CONFIG_USB_OHCI_HCD=y
@@ -1164,18 +1203,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1164# CONFIG_USB_TMC is not set 1203# CONFIG_USB_TMC is not set
1165 1204
1166# 1205#
1167# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1206# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1168# 1207#
1169 1208
1170# 1209#
1171# may also be needed; see USB_STORAGE Help for more information 1210# see USB_STORAGE Help for more information
1172# 1211#
1173CONFIG_USB_STORAGE=y 1212CONFIG_USB_STORAGE=y
1174# CONFIG_USB_STORAGE_DEBUG is not set 1213# CONFIG_USB_STORAGE_DEBUG is not set
1175# CONFIG_USB_STORAGE_DATAFAB is not set 1214# CONFIG_USB_STORAGE_DATAFAB is not set
1176# CONFIG_USB_STORAGE_FREECOM is not set 1215# CONFIG_USB_STORAGE_FREECOM is not set
1177# CONFIG_USB_STORAGE_ISD200 is not set 1216# CONFIG_USB_STORAGE_ISD200 is not set
1178# CONFIG_USB_STORAGE_DPCM is not set
1179# CONFIG_USB_STORAGE_USBAT is not set 1217# CONFIG_USB_STORAGE_USBAT is not set
1180# CONFIG_USB_STORAGE_SDDR09 is not set 1218# CONFIG_USB_STORAGE_SDDR09 is not set
1181# CONFIG_USB_STORAGE_SDDR55 is not set 1219# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1222,6 +1260,10 @@ CONFIG_USB_STORAGE=y
1222# CONFIG_USB_ISIGHTFW is not set 1260# CONFIG_USB_ISIGHTFW is not set
1223# CONFIG_USB_VST is not set 1261# CONFIG_USB_VST is not set
1224# CONFIG_USB_GADGET is not set 1262# CONFIG_USB_GADGET is not set
1263
1264#
1265# OTG and related infrastructure
1266#
1225# CONFIG_UWB is not set 1267# CONFIG_UWB is not set
1226# CONFIG_MMC is not set 1268# CONFIG_MMC is not set
1227# CONFIG_MEMSTICK is not set 1269# CONFIG_MEMSTICK is not set
@@ -1243,7 +1285,6 @@ CONFIG_NEW_LEDS=y
1243# CONFIG_DMADEVICES is not set 1285# CONFIG_DMADEVICES is not set
1244# CONFIG_UIO is not set 1286# CONFIG_UIO is not set
1245# CONFIG_STAGING is not set 1287# CONFIG_STAGING is not set
1246CONFIG_STAGING_EXCLUDE_BUILD=y
1247 1288
1248# 1289#
1249# File systems 1290# File systems
@@ -1264,6 +1305,7 @@ CONFIG_FS_MBCACHE=y
1264CONFIG_FILE_LOCKING=y 1305CONFIG_FILE_LOCKING=y
1265# CONFIG_XFS_FS is not set 1306# CONFIG_XFS_FS is not set
1266# CONFIG_OCFS2_FS is not set 1307# CONFIG_OCFS2_FS is not set
1308# CONFIG_BTRFS_FS is not set
1267CONFIG_DNOTIFY=y 1309CONFIG_DNOTIFY=y
1268CONFIG_INOTIFY=y 1310CONFIG_INOTIFY=y
1269CONFIG_INOTIFY_USER=y 1311CONFIG_INOTIFY_USER=y
@@ -1300,10 +1342,7 @@ CONFIG_TMPFS=y
1300# CONFIG_TMPFS_POSIX_ACL is not set 1342# CONFIG_TMPFS_POSIX_ACL is not set
1301# CONFIG_HUGETLB_PAGE is not set 1343# CONFIG_HUGETLB_PAGE is not set
1302# CONFIG_CONFIGFS_FS is not set 1344# CONFIG_CONFIGFS_FS is not set
1303 1345CONFIG_MISC_FILESYSTEMS=y
1304#
1305# Miscellaneous filesystems
1306#
1307# CONFIG_ADFS_FS is not set 1346# CONFIG_ADFS_FS is not set
1308# CONFIG_AFFS_FS is not set 1347# CONFIG_AFFS_FS is not set
1309# CONFIG_HFS_FS is not set 1348# CONFIG_HFS_FS is not set
@@ -1323,6 +1362,7 @@ CONFIG_JFFS2_ZLIB=y
1323CONFIG_JFFS2_RTIME=y 1362CONFIG_JFFS2_RTIME=y
1324# CONFIG_JFFS2_RUBIN is not set 1363# CONFIG_JFFS2_RUBIN is not set
1325CONFIG_CRAMFS=y 1364CONFIG_CRAMFS=y
1365# CONFIG_SQUASHFS is not set
1326# CONFIG_VXFS_FS is not set 1366# CONFIG_VXFS_FS is not set
1327# CONFIG_MINIX_FS is not set 1367# CONFIG_MINIX_FS is not set
1328# CONFIG_OMFS_FS is not set 1368# CONFIG_OMFS_FS is not set
@@ -1403,6 +1443,7 @@ CONFIG_NLS_ISO8859_1=y
1403# Library routines 1443# Library routines
1404# 1444#
1405CONFIG_BITREVERSE=y 1445CONFIG_BITREVERSE=y
1446CONFIG_GENERIC_FIND_LAST_BIT=y
1406# CONFIG_CRC_CCITT is not set 1447# CONFIG_CRC_CCITT is not set
1407# CONFIG_CRC16 is not set 1448# CONFIG_CRC16 is not set
1408# CONFIG_CRC_T10DIF is not set 1449# CONFIG_CRC_T10DIF is not set
@@ -1454,6 +1495,7 @@ CONFIG_DEBUG_INFO=y
1454# CONFIG_DEBUG_MEMORY_INIT is not set 1495# CONFIG_DEBUG_MEMORY_INIT is not set
1455# CONFIG_DEBUG_LIST is not set 1496# CONFIG_DEBUG_LIST is not set
1456# CONFIG_DEBUG_SG is not set 1497# CONFIG_DEBUG_SG is not set
1498# CONFIG_DEBUG_NOTIFIERS is not set
1457# CONFIG_BOOT_PRINTK_DELAY is not set 1499# CONFIG_BOOT_PRINTK_DELAY is not set
1458# CONFIG_RCU_TORTURE_TEST is not set 1500# CONFIG_RCU_TORTURE_TEST is not set
1459# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1501# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1462,6 +1504,8 @@ CONFIG_DEBUG_INFO=y
1462# CONFIG_FAULT_INJECTION is not set 1504# CONFIG_FAULT_INJECTION is not set
1463# CONFIG_LATENCYTOP is not set 1505# CONFIG_LATENCYTOP is not set
1464CONFIG_HAVE_FUNCTION_TRACER=y 1506CONFIG_HAVE_FUNCTION_TRACER=y
1507CONFIG_HAVE_DYNAMIC_FTRACE=y
1508CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1465 1509
1466# 1510#
1467# Tracers 1511# Tracers
@@ -1470,11 +1514,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1470# CONFIG_SCHED_TRACER is not set 1514# CONFIG_SCHED_TRACER is not set
1471# CONFIG_CONTEXT_SWITCH_TRACER is not set 1515# CONFIG_CONTEXT_SWITCH_TRACER is not set
1472# CONFIG_BOOT_TRACER is not set 1516# CONFIG_BOOT_TRACER is not set
1517# CONFIG_TRACE_BRANCH_PROFILING is not set
1473# CONFIG_STACK_TRACER is not set 1518# CONFIG_STACK_TRACER is not set
1474# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1519# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1475# CONFIG_SAMPLES is not set 1520# CONFIG_SAMPLES is not set
1476CONFIG_HAVE_ARCH_KGDB=y 1521CONFIG_HAVE_ARCH_KGDB=y
1477# CONFIG_KGDB is not set 1522# CONFIG_KGDB is not set
1523CONFIG_PRINT_STACK_DEPTH=64
1478# CONFIG_DEBUG_STACKOVERFLOW is not set 1524# CONFIG_DEBUG_STACKOVERFLOW is not set
1479# CONFIG_DEBUG_STACK_USAGE is not set 1525# CONFIG_DEBUG_STACK_USAGE is not set
1480# CONFIG_DEBUG_PAGEALLOC is not set 1526# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1501,11 +1547,15 @@ CONFIG_CRYPTO=y
1501# 1547#
1502# CONFIG_CRYPTO_FIPS is not set 1548# CONFIG_CRYPTO_FIPS is not set
1503CONFIG_CRYPTO_ALGAPI=y 1549CONFIG_CRYPTO_ALGAPI=y
1504CONFIG_CRYPTO_AEAD=y 1550CONFIG_CRYPTO_ALGAPI2=y
1551CONFIG_CRYPTO_AEAD2=y
1505CONFIG_CRYPTO_BLKCIPHER=y 1552CONFIG_CRYPTO_BLKCIPHER=y
1553CONFIG_CRYPTO_BLKCIPHER2=y
1506CONFIG_CRYPTO_HASH=y 1554CONFIG_CRYPTO_HASH=y
1507CONFIG_CRYPTO_RNG=y 1555CONFIG_CRYPTO_HASH2=y
1556CONFIG_CRYPTO_RNG2=y
1508CONFIG_CRYPTO_MANAGER=y 1557CONFIG_CRYPTO_MANAGER=y
1558CONFIG_CRYPTO_MANAGER2=y
1509# CONFIG_CRYPTO_GF128MUL is not set 1559# CONFIG_CRYPTO_GF128MUL is not set
1510# CONFIG_CRYPTO_NULL is not set 1560# CONFIG_CRYPTO_NULL is not set
1511# CONFIG_CRYPTO_CRYPTD is not set 1561# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index f80b1ca43afb..38712e861c46 100644
--- a/arch/powerpc/configs/mpc7448_hpc2_defconfig
+++ b/arch/powerpc/configs/mpc7448_hpc2_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:40 2008 4# Mon Jan 26 15:35:33 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -73,12 +73,12 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74# CONFIG_IKCONFIG is not set 74# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 75CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 76CONFIG_GROUP_SCHED=y
78# CONFIG_FAIR_GROUP_SCHED is not set 77# CONFIG_FAIR_GROUP_SCHED is not set
79# CONFIG_RT_GROUP_SCHED is not set 78# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 79CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 80# CONFIG_CGROUP_SCHED is not set
81# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 83CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
@@ -112,7 +112,6 @@ CONFIG_SLUB_DEBUG=y
112CONFIG_SLUB=y 112CONFIG_SLUB=y
113# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 117CONFIG_HAVE_IOREMAP_PROT=y
@@ -122,13 +121,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 124CONFIG_BASE_SMALL=0
127# CONFIG_MODULES is not set 125# CONFIG_MODULES is not set
128CONFIG_BLOCK=y 126CONFIG_BLOCK=y
129CONFIG_LBD=y 127CONFIG_LBD=y
130# CONFIG_BLK_DEV_IO_TRACE is not set 128# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_BSG is not set 129# CONFIG_BLK_DEV_BSG is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set 130# CONFIG_BLK_DEV_INTEGRITY is not set
134 131
@@ -145,6 +142,10 @@ CONFIG_DEFAULT_AS=y
145# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 143CONFIG_DEFAULT_IOSCHED="anticipatory"
147CONFIG_CLASSIC_RCU=y 144CONFIG_CLASSIC_RCU=y
145# CONFIG_TREE_RCU is not set
146# CONFIG_PREEMPT_RCU is not set
147# CONFIG_TREE_RCU_TRACE is not set
148# CONFIG_PREEMPT_RCU_TRACE is not set
148# CONFIG_FREEZER is not set 149# CONFIG_FREEZER is not set
149 150
150# 151#
@@ -184,6 +185,7 @@ CONFIG_MPIC_WEIRD=y
184# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
185# CONFIG_TAU is not set 186# CONFIG_TAU is not set
186# CONFIG_FSL_ULI1575 is not set 187# CONFIG_FSL_ULI1575 is not set
188# CONFIG_SIMPLE_GPIO is not set
187 189
188# 190#
189# Kernel options 191# Kernel options
@@ -211,6 +213,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
211CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
213# CONFIG_KEXEC is not set 215# CONFIG_KEXEC is not set
216# CONFIG_CRASH_DUMP is not set
214CONFIG_ARCH_FLATMEM_ENABLE=y 217CONFIG_ARCH_FLATMEM_ENABLE=y
215CONFIG_ARCH_POPULATES_NODE_MAP=y 218CONFIG_ARCH_POPULATES_NODE_MAP=y
216CONFIG_SELECT_MEMORY_MODEL=y 219CONFIG_SELECT_MEMORY_MODEL=y
@@ -222,12 +225,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 227CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 228# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 231CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 232CONFIG_UNEVICTABLE_LRU=y
233CONFIG_PPC_4K_PAGES=y
234# CONFIG_PPC_16K_PAGES is not set
235# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 236CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 237CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 238# CONFIG_CMDLINE_BOOL is not set
@@ -249,6 +254,7 @@ CONFIG_PCI_SYSCALL=y
249CONFIG_ARCH_SUPPORTS_MSI=y 254CONFIG_ARCH_SUPPORTS_MSI=y
250# CONFIG_PCI_MSI is not set 255# CONFIG_PCI_MSI is not set
251# CONFIG_PCI_LEGACY is not set 256# CONFIG_PCI_LEGACY is not set
257# CONFIG_PCI_STUB is not set
252# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
253# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
254# CONFIG_HAS_RAPIDIO is not set 260# CONFIG_HAS_RAPIDIO is not set
@@ -271,6 +277,7 @@ CONFIG_NET=y
271# 277#
272# Networking options 278# Networking options
273# 279#
280CONFIG_COMPAT_NET_DEV_OPS=y
274CONFIG_PACKET=y 281CONFIG_PACKET=y
275# CONFIG_PACKET_MMAP is not set 282# CONFIG_PACKET_MMAP is not set
276CONFIG_UNIX=y 283CONFIG_UNIX=y
@@ -327,6 +334,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
327# CONFIG_ECONET is not set 334# CONFIG_ECONET is not set
328# CONFIG_WAN_ROUTER is not set 335# CONFIG_WAN_ROUTER is not set
329# CONFIG_NET_SCHED is not set 336# CONFIG_NET_SCHED is not set
337# CONFIG_DCB is not set
330 338
331# 339#
332# Network testing 340# Network testing
@@ -342,8 +350,9 @@ CONFIG_WIRELESS=y
342# CONFIG_CFG80211 is not set 350# CONFIG_CFG80211 is not set
343CONFIG_WIRELESS_OLD_REGULATORY=y 351CONFIG_WIRELESS_OLD_REGULATORY=y
344# CONFIG_WIRELESS_EXT is not set 352# CONFIG_WIRELESS_EXT is not set
353# CONFIG_LIB80211 is not set
345# CONFIG_MAC80211 is not set 354# CONFIG_MAC80211 is not set
346# CONFIG_IEEE80211 is not set 355# CONFIG_WIMAX is not set
347# CONFIG_RFKILL is not set 356# CONFIG_RFKILL is not set
348# CONFIG_NET_9P is not set 357# CONFIG_NET_9P is not set
349 358
@@ -388,6 +397,7 @@ CONFIG_MISC_DEVICES=y
388# CONFIG_TIFM_CORE is not set 397# CONFIG_TIFM_CORE is not set
389# CONFIG_ENCLOSURE_SERVICES is not set 398# CONFIG_ENCLOSURE_SERVICES is not set
390# CONFIG_HP_ILO is not set 399# CONFIG_HP_ILO is not set
400# CONFIG_C2PORT is not set
391CONFIG_HAVE_IDE=y 401CONFIG_HAVE_IDE=y
392# CONFIG_IDE is not set 402# CONFIG_IDE is not set
393 403
@@ -429,6 +439,7 @@ CONFIG_BLK_DEV_SD=y
429# CONFIG_SCSI_SRP_ATTRS is not set 439# CONFIG_SCSI_SRP_ATTRS is not set
430CONFIG_SCSI_LOWLEVEL=y 440CONFIG_SCSI_LOWLEVEL=y
431# CONFIG_ISCSI_TCP is not set 441# CONFIG_ISCSI_TCP is not set
442# CONFIG_SCSI_CXGB3_ISCSI is not set
432# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 443# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
433# CONFIG_SCSI_3W_9XXX is not set 444# CONFIG_SCSI_3W_9XXX is not set
434# CONFIG_SCSI_ACARD is not set 445# CONFIG_SCSI_ACARD is not set
@@ -445,6 +456,8 @@ CONFIG_SCSI_LOWLEVEL=y
445# CONFIG_MEGARAID_SAS is not set 456# CONFIG_MEGARAID_SAS is not set
446# CONFIG_SCSI_HPTIOP is not set 457# CONFIG_SCSI_HPTIOP is not set
447# CONFIG_SCSI_BUSLOGIC is not set 458# CONFIG_SCSI_BUSLOGIC is not set
459# CONFIG_LIBFC is not set
460# CONFIG_FCOE is not set
448# CONFIG_SCSI_DMX3191D is not set 461# CONFIG_SCSI_DMX3191D is not set
449# CONFIG_SCSI_EATA is not set 462# CONFIG_SCSI_EATA is not set
450# CONFIG_SCSI_FUTURE_DOMAIN is not set 463# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -563,6 +576,9 @@ CONFIG_PHYLIB=y
563# CONFIG_BROADCOM_PHY is not set 576# CONFIG_BROADCOM_PHY is not set
564# CONFIG_ICPLUS_PHY is not set 577# CONFIG_ICPLUS_PHY is not set
565# CONFIG_REALTEK_PHY is not set 578# CONFIG_REALTEK_PHY is not set
579# CONFIG_NATIONAL_PHY is not set
580# CONFIG_STE10XP is not set
581# CONFIG_LSI_ET1011C_PHY is not set
566# CONFIG_FIXED_PHY is not set 582# CONFIG_FIXED_PHY is not set
567# CONFIG_MDIO_BITBANG is not set 583# CONFIG_MDIO_BITBANG is not set
568CONFIG_NET_ETHERNET=y 584CONFIG_NET_ETHERNET=y
@@ -586,7 +602,6 @@ CONFIG_NET_PCI=y
586# CONFIG_ADAPTEC_STARFIRE is not set 602# CONFIG_ADAPTEC_STARFIRE is not set
587# CONFIG_B44 is not set 603# CONFIG_B44 is not set
588# CONFIG_FORCEDETH is not set 604# CONFIG_FORCEDETH is not set
589# CONFIG_EEPRO100 is not set
590CONFIG_E100=y 605CONFIG_E100=y
591# CONFIG_FEALNX is not set 606# CONFIG_FEALNX is not set
592# CONFIG_NATSEMI is not set 607# CONFIG_NATSEMI is not set
@@ -600,6 +615,7 @@ CONFIG_8139TOO=y
600# CONFIG_R6040 is not set 615# CONFIG_R6040 is not set
601# CONFIG_SIS900 is not set 616# CONFIG_SIS900 is not set
602# CONFIG_EPIC100 is not set 617# CONFIG_EPIC100 is not set
618# CONFIG_SMSC9420 is not set
603# CONFIG_SUNDANCE is not set 619# CONFIG_SUNDANCE is not set
604# CONFIG_TLAN is not set 620# CONFIG_TLAN is not set
605# CONFIG_VIA_RHINE is not set 621# CONFIG_VIA_RHINE is not set
@@ -630,6 +646,7 @@ CONFIG_TSI108_ETH=y
630# CONFIG_JME is not set 646# CONFIG_JME is not set
631CONFIG_NETDEV_10000=y 647CONFIG_NETDEV_10000=y
632# CONFIG_CHELSIO_T1 is not set 648# CONFIG_CHELSIO_T1 is not set
649CONFIG_CHELSIO_T3_DEPENDS=y
633# CONFIG_CHELSIO_T3 is not set 650# CONFIG_CHELSIO_T3 is not set
634# CONFIG_ENIC is not set 651# CONFIG_ENIC is not set
635# CONFIG_IXGBE is not set 652# CONFIG_IXGBE is not set
@@ -652,6 +669,10 @@ CONFIG_NETDEV_10000=y
652# CONFIG_WLAN_PRE80211 is not set 669# CONFIG_WLAN_PRE80211 is not set
653# CONFIG_WLAN_80211 is not set 670# CONFIG_WLAN_80211 is not set
654# CONFIG_IWLWIFI_LEDS is not set 671# CONFIG_IWLWIFI_LEDS is not set
672
673#
674# Enable WiMAX (Networking options) to see the WiMAX drivers
675#
655# CONFIG_WAN is not set 676# CONFIG_WAN is not set
656# CONFIG_FDDI is not set 677# CONFIG_FDDI is not set
657# CONFIG_HIPPI is not set 678# CONFIG_HIPPI is not set
@@ -722,8 +743,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
722# CONFIG_SERIAL_JSM is not set 743# CONFIG_SERIAL_JSM is not set
723# CONFIG_SERIAL_OF_PLATFORM is not set 744# CONFIG_SERIAL_OF_PLATFORM is not set
724CONFIG_UNIX98_PTYS=y 745CONFIG_UNIX98_PTYS=y
746# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
725CONFIG_LEGACY_PTYS=y 747CONFIG_LEGACY_PTYS=y
726CONFIG_LEGACY_PTY_COUNT=256 748CONFIG_LEGACY_PTY_COUNT=256
749# CONFIG_HVC_UDBG is not set
727# CONFIG_IPMI_HANDLER is not set 750# CONFIG_IPMI_HANDLER is not set
728# CONFIG_HW_RANDOM is not set 751# CONFIG_HW_RANDOM is not set
729# CONFIG_NVRAM is not set 752# CONFIG_NVRAM is not set
@@ -760,11 +783,11 @@ CONFIG_HWMON=y
760# CONFIG_THERMAL is not set 783# CONFIG_THERMAL is not set
761# CONFIG_THERMAL_HWMON is not set 784# CONFIG_THERMAL_HWMON is not set
762# CONFIG_WATCHDOG is not set 785# CONFIG_WATCHDOG is not set
786CONFIG_SSB_POSSIBLE=y
763 787
764# 788#
765# Sonics Silicon Backplane 789# Sonics Silicon Backplane
766# 790#
767CONFIG_SSB_POSSIBLE=y
768# CONFIG_SSB is not set 791# CONFIG_SSB is not set
769 792
770# 793#
@@ -774,14 +797,7 @@ CONFIG_SSB_POSSIBLE=y
774# CONFIG_MFD_SM501 is not set 797# CONFIG_MFD_SM501 is not set
775# CONFIG_HTC_PASIC3 is not set 798# CONFIG_HTC_PASIC3 is not set
776# CONFIG_MFD_TMIO is not set 799# CONFIG_MFD_TMIO is not set
777
778#
779# Voltage and Current regulators
780#
781# CONFIG_REGULATOR is not set 800# CONFIG_REGULATOR is not set
782# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
783# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
784# CONFIG_REGULATOR_BQ24022 is not set
785 801
786# 802#
787# Multimedia devices 803# Multimedia devices
@@ -837,9 +853,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
837# 853#
838 854
839# 855#
840# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 856# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
841# 857#
842# CONFIG_USB_GADGET is not set 858# CONFIG_USB_GADGET is not set
859
860#
861# OTG and related infrastructure
862#
843# CONFIG_UWB is not set 863# CONFIG_UWB is not set
844# CONFIG_MMC is not set 864# CONFIG_MMC is not set
845# CONFIG_MEMSTICK is not set 865# CONFIG_MEMSTICK is not set
@@ -870,7 +890,9 @@ CONFIG_FS_MBCACHE=y
870# CONFIG_FS_POSIX_ACL is not set 890# CONFIG_FS_POSIX_ACL is not set
871CONFIG_FILE_LOCKING=y 891CONFIG_FILE_LOCKING=y
872# CONFIG_XFS_FS is not set 892# CONFIG_XFS_FS is not set
893# CONFIG_GFS2_FS is not set
873# CONFIG_OCFS2_FS is not set 894# CONFIG_OCFS2_FS is not set
895# CONFIG_BTRFS_FS is not set
874CONFIG_DNOTIFY=y 896CONFIG_DNOTIFY=y
875CONFIG_INOTIFY=y 897CONFIG_INOTIFY=y
876CONFIG_INOTIFY_USER=y 898CONFIG_INOTIFY_USER=y
@@ -904,10 +926,7 @@ CONFIG_TMPFS=y
904# CONFIG_TMPFS_POSIX_ACL is not set 926# CONFIG_TMPFS_POSIX_ACL is not set
905# CONFIG_HUGETLB_PAGE is not set 927# CONFIG_HUGETLB_PAGE is not set
906# CONFIG_CONFIGFS_FS is not set 928# CONFIG_CONFIGFS_FS is not set
907 929CONFIG_MISC_FILESYSTEMS=y
908#
909# Miscellaneous filesystems
910#
911# CONFIG_ADFS_FS is not set 930# CONFIG_ADFS_FS is not set
912# CONFIG_AFFS_FS is not set 931# CONFIG_AFFS_FS is not set
913# CONFIG_HFS_FS is not set 932# CONFIG_HFS_FS is not set
@@ -916,6 +935,7 @@ CONFIG_TMPFS=y
916# CONFIG_BFS_FS is not set 935# CONFIG_BFS_FS is not set
917# CONFIG_EFS_FS is not set 936# CONFIG_EFS_FS is not set
918# CONFIG_CRAMFS is not set 937# CONFIG_CRAMFS is not set
938# CONFIG_SQUASHFS is not set
919# CONFIG_VXFS_FS is not set 939# CONFIG_VXFS_FS is not set
920# CONFIG_MINIX_FS is not set 940# CONFIG_MINIX_FS is not set
921# CONFIG_OMFS_FS is not set 941# CONFIG_OMFS_FS is not set
@@ -970,6 +990,7 @@ CONFIG_MSDOS_PARTITION=y
970# Library routines 990# Library routines
971# 991#
972CONFIG_BITREVERSE=y 992CONFIG_BITREVERSE=y
993CONFIG_GENERIC_FIND_LAST_BIT=y
973# CONFIG_CRC_CCITT is not set 994# CONFIG_CRC_CCITT is not set
974# CONFIG_CRC16 is not set 995# CONFIG_CRC16 is not set
975CONFIG_CRC_T10DIF=y 996CONFIG_CRC_T10DIF=y
@@ -1003,6 +1024,8 @@ CONFIG_FRAME_WARN=1024
1003# CONFIG_LATENCYTOP is not set 1024# CONFIG_LATENCYTOP is not set
1004CONFIG_SYSCTL_SYSCALL_CHECK=y 1025CONFIG_SYSCTL_SYSCALL_CHECK=y
1005CONFIG_HAVE_FUNCTION_TRACER=y 1026CONFIG_HAVE_FUNCTION_TRACER=y
1027CONFIG_HAVE_DYNAMIC_FTRACE=y
1028CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1006 1029
1007# 1030#
1008# Tracers 1031# Tracers
@@ -1010,6 +1033,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1010# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1033# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1011# CONFIG_SAMPLES is not set 1034# CONFIG_SAMPLES is not set
1012CONFIG_HAVE_ARCH_KGDB=y 1035CONFIG_HAVE_ARCH_KGDB=y
1036CONFIG_PRINT_STACK_DEPTH=64
1013# CONFIG_IRQSTACKS is not set 1037# CONFIG_IRQSTACKS is not set
1014# CONFIG_BOOTX_TEXT is not set 1038# CONFIG_BOOTX_TEXT is not set
1015# CONFIG_PPC_EARLY_DEBUG is not set 1039# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1028,6 +1052,7 @@ CONFIG_CRYPTO=y
1028# 1052#
1029# CONFIG_CRYPTO_FIPS is not set 1053# CONFIG_CRYPTO_FIPS is not set
1030# CONFIG_CRYPTO_MANAGER is not set 1054# CONFIG_CRYPTO_MANAGER is not set
1055# CONFIG_CRYPTO_MANAGER2 is not set
1031# CONFIG_CRYPTO_GF128MUL is not set 1056# CONFIG_CRYPTO_GF128MUL is not set
1032# CONFIG_CRYPTO_NULL is not set 1057# CONFIG_CRYPTO_NULL is not set
1033# CONFIG_CRYPTO_CRYPTD is not set 1058# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index c8f5dec1b696..d85a43cb821f 100644
--- a/arch/powerpc/configs/mpc8272_ads_defconfig
+++ b/arch/powerpc/configs/mpc8272_ads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:41 2008 4# Mon Jan 26 15:35:35 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_GPIO=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -86,6 +86,7 @@ CONFIG_EMBEDDED=y
86CONFIG_SYSCTL_SYSCALL=y 86CONFIG_SYSCTL_SYSCALL=y
87CONFIG_KALLSYMS=y 87CONFIG_KALLSYMS=y
88CONFIG_KALLSYMS_ALL=y 88CONFIG_KALLSYMS_ALL=y
89CONFIG_KALLSYMS_STRIP_GENERATED=y
89# CONFIG_KALLSYMS_EXTRA_PASS is not set 90# CONFIG_KALLSYMS_EXTRA_PASS is not set
90CONFIG_HOTPLUG=y 91CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 92CONFIG_PRINTK=y
@@ -108,7 +109,6 @@ CONFIG_SLUB_DEBUG=y
108CONFIG_SLUB=y 109CONFIG_SLUB=y
109# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set 111# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 114CONFIG_HAVE_IOREMAP_PROT=y
@@ -119,13 +119,11 @@ CONFIG_HAVE_CLK=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
121CONFIG_RT_MUTEXES=y 121CONFIG_RT_MUTEXES=y
122# CONFIG_TINY_SHMEM is not set
123CONFIG_BASE_SMALL=0 122CONFIG_BASE_SMALL=0
124# CONFIG_MODULES is not set 123# CONFIG_MODULES is not set
125CONFIG_BLOCK=y 124CONFIG_BLOCK=y
126# CONFIG_LBD is not set 125# CONFIG_LBD is not set
127# CONFIG_BLK_DEV_IO_TRACE is not set 126# CONFIG_BLK_DEV_IO_TRACE is not set
128# CONFIG_LSF is not set
129# CONFIG_BLK_DEV_INTEGRITY is not set 127# CONFIG_BLK_DEV_INTEGRITY is not set
130 128
131# 129#
@@ -141,6 +139,10 @@ CONFIG_DEFAULT_AS=y
141# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
142CONFIG_DEFAULT_IOSCHED="anticipatory" 140CONFIG_DEFAULT_IOSCHED="anticipatory"
143CONFIG_CLASSIC_RCU=y 141CONFIG_CLASSIC_RCU=y
142# CONFIG_TREE_RCU is not set
143# CONFIG_PREEMPT_RCU is not set
144# CONFIG_TREE_RCU_TRACE is not set
145# CONFIG_PREEMPT_RCU_TRACE is not set
144# CONFIG_FREEZER is not set 146# CONFIG_FREEZER is not set
145 147
146# 148#
@@ -183,6 +185,7 @@ CONFIG_PQ2_ADS_PCI_PIC=y
183CONFIG_CPM2=y 185CONFIG_CPM2=y
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
185CONFIG_CPM=y 187CONFIG_CPM=y
188# CONFIG_SIMPLE_GPIO is not set
186 189
187# 190#
188# Kernel options 191# Kernel options
@@ -209,6 +212,7 @@ CONFIG_BINFMT_MISC=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
210CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
211CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
215# CONFIG_CRASH_DUMP is not set
212CONFIG_ARCH_FLATMEM_ENABLE=y 216CONFIG_ARCH_FLATMEM_ENABLE=y
213CONFIG_ARCH_POPULATES_NODE_MAP=y 217CONFIG_ARCH_POPULATES_NODE_MAP=y
214CONFIG_FLATMEM=y 218CONFIG_FLATMEM=y
@@ -216,12 +220,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216CONFIG_PAGEFLAGS_EXTENDED=y 220CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 221CONFIG_SPLIT_PTLOCK_CPUS=4
218CONFIG_MIGRATION=y 222CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set
220# CONFIG_PHYS_ADDR_T_64BIT is not set 223# CONFIG_PHYS_ADDR_T_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 224CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 225CONFIG_BOUNCE=y
223CONFIG_VIRT_TO_BUS=y 226CONFIG_VIRT_TO_BUS=y
224CONFIG_UNEVICTABLE_LRU=y 227CONFIG_UNEVICTABLE_LRU=y
228CONFIG_PPC_4K_PAGES=y
229# CONFIG_PPC_16K_PAGES is not set
230# CONFIG_PPC_64K_PAGES is not set
225CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
226CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
227# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
@@ -246,6 +252,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
246# CONFIG_PCI_MSI is not set 252# CONFIG_PCI_MSI is not set
247# CONFIG_PCI_LEGACY is not set 253# CONFIG_PCI_LEGACY is not set
248# CONFIG_PCI_DEBUG is not set 254# CONFIG_PCI_DEBUG is not set
255# CONFIG_PCI_STUB is not set
249# CONFIG_PCCARD is not set 256# CONFIG_PCCARD is not set
250# CONFIG_HOTPLUG_PCI is not set 257# CONFIG_HOTPLUG_PCI is not set
251# CONFIG_HAS_RAPIDIO is not set 258# CONFIG_HAS_RAPIDIO is not set
@@ -268,6 +275,7 @@ CONFIG_NET=y
268# 275#
269# Networking options 276# Networking options
270# 277#
278CONFIG_COMPAT_NET_DEV_OPS=y
271CONFIG_PACKET=y 279CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 280# CONFIG_PACKET_MMAP is not set
273CONFIG_UNIX=y 281CONFIG_UNIX=y
@@ -349,6 +357,7 @@ CONFIG_NETFILTER_ADVANCED=y
349# CONFIG_IPX is not set 357# CONFIG_IPX is not set
350# CONFIG_ATALK is not set 358# CONFIG_ATALK is not set
351# CONFIG_NET_SCHED is not set 359# CONFIG_NET_SCHED is not set
360# CONFIG_DCB is not set
352 361
353# 362#
354# Network testing 363# Network testing
@@ -363,8 +372,9 @@ CONFIG_WIRELESS=y
363# CONFIG_CFG80211 is not set 372# CONFIG_CFG80211 is not set
364CONFIG_WIRELESS_OLD_REGULATORY=y 373CONFIG_WIRELESS_OLD_REGULATORY=y
365# CONFIG_WIRELESS_EXT is not set 374# CONFIG_WIRELESS_EXT is not set
375# CONFIG_LIB80211 is not set
366# CONFIG_MAC80211 is not set 376# CONFIG_MAC80211 is not set
367# CONFIG_IEEE80211 is not set 377# CONFIG_WIMAX is not set
368# CONFIG_RFKILL is not set 378# CONFIG_RFKILL is not set
369 379
370# 380#
@@ -459,6 +469,12 @@ CONFIG_MTD_PHYSMAP_OF=y
459# CONFIG_MTD_ONENAND is not set 469# CONFIG_MTD_ONENAND is not set
460 470
461# 471#
472# LPDDR flash memory drivers
473#
474# CONFIG_MTD_LPDDR is not set
475# CONFIG_MTD_QINFO_PROBE is not set
476
477#
462# UBI - Unsorted block images 478# UBI - Unsorted block images
463# 479#
464# CONFIG_MTD_UBI is not set 480# CONFIG_MTD_UBI is not set
@@ -526,9 +542,12 @@ CONFIG_DAVICOM_PHY=y
526# CONFIG_BROADCOM_PHY is not set 542# CONFIG_BROADCOM_PHY is not set
527# CONFIG_ICPLUS_PHY is not set 543# CONFIG_ICPLUS_PHY is not set
528# CONFIG_REALTEK_PHY is not set 544# CONFIG_REALTEK_PHY is not set
545# CONFIG_NATIONAL_PHY is not set
546# CONFIG_STE10XP is not set
547# CONFIG_LSI_ET1011C_PHY is not set
529# CONFIG_FIXED_PHY is not set 548# CONFIG_FIXED_PHY is not set
530CONFIG_MDIO_BITBANG=y 549CONFIG_MDIO_BITBANG=y
531# CONFIG_MDIO_OF_GPIO is not set 550# CONFIG_MDIO_GPIO is not set
532CONFIG_NET_ETHERNET=y 551CONFIG_NET_ETHERNET=y
533CONFIG_MII=y 552CONFIG_MII=y
534# CONFIG_HAPPYMEAL is not set 553# CONFIG_HAPPYMEAL is not set
@@ -573,6 +592,7 @@ CONFIG_NETDEV_1000=y
573# CONFIG_JME is not set 592# CONFIG_JME is not set
574CONFIG_NETDEV_10000=y 593CONFIG_NETDEV_10000=y
575# CONFIG_CHELSIO_T1 is not set 594# CONFIG_CHELSIO_T1 is not set
595CONFIG_CHELSIO_T3_DEPENDS=y
576# CONFIG_CHELSIO_T3 is not set 596# CONFIG_CHELSIO_T3 is not set
577# CONFIG_ENIC is not set 597# CONFIG_ENIC is not set
578# CONFIG_IXGBE is not set 598# CONFIG_IXGBE is not set
@@ -595,6 +615,10 @@ CONFIG_NETDEV_10000=y
595# CONFIG_WLAN_PRE80211 is not set 615# CONFIG_WLAN_PRE80211 is not set
596# CONFIG_WLAN_80211 is not set 616# CONFIG_WLAN_80211 is not set
597# CONFIG_IWLWIFI_LEDS is not set 617# CONFIG_IWLWIFI_LEDS is not set
618
619#
620# Enable WiMAX (Networking options) to see the WiMAX drivers
621#
598# CONFIG_WAN is not set 622# CONFIG_WAN is not set
599# CONFIG_FDDI is not set 623# CONFIG_FDDI is not set
600CONFIG_PPP=y 624CONFIG_PPP=y
@@ -690,6 +714,7 @@ CONFIG_SERIAL_CPM=y
690CONFIG_SERIAL_CPM_CONSOLE=y 714CONFIG_SERIAL_CPM_CONSOLE=y
691# CONFIG_SERIAL_JSM is not set 715# CONFIG_SERIAL_JSM is not set
692CONFIG_UNIX98_PTYS=y 716CONFIG_UNIX98_PTYS=y
717# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
693CONFIG_LEGACY_PTYS=y 718CONFIG_LEGACY_PTYS=y
694CONFIG_LEGACY_PTY_COUNT=256 719CONFIG_LEGACY_PTY_COUNT=256
695# CONFIG_IPMI_HANDLER is not set 720# CONFIG_IPMI_HANDLER is not set
@@ -708,6 +733,11 @@ CONFIG_GPIOLIB=y
708# CONFIG_DEBUG_GPIO is not set 733# CONFIG_DEBUG_GPIO is not set
709 734
710# 735#
736# Memory mapped GPIO expanders:
737#
738# CONFIG_GPIO_XILINX is not set
739
740#
711# I2C GPIO expanders: 741# I2C GPIO expanders:
712# 742#
713 743
@@ -725,11 +755,11 @@ CONFIG_GPIOLIB=y
725# CONFIG_THERMAL is not set 755# CONFIG_THERMAL is not set
726# CONFIG_THERMAL_HWMON is not set 756# CONFIG_THERMAL_HWMON is not set
727# CONFIG_WATCHDOG is not set 757# CONFIG_WATCHDOG is not set
758CONFIG_SSB_POSSIBLE=y
728 759
729# 760#
730# Sonics Silicon Backplane 761# Sonics Silicon Backplane
731# 762#
732CONFIG_SSB_POSSIBLE=y
733# CONFIG_SSB is not set 763# CONFIG_SSB is not set
734 764
735# 765#
@@ -739,14 +769,7 @@ CONFIG_SSB_POSSIBLE=y
739# CONFIG_MFD_SM501 is not set 769# CONFIG_MFD_SM501 is not set
740# CONFIG_HTC_PASIC3 is not set 770# CONFIG_HTC_PASIC3 is not set
741# CONFIG_MFD_TMIO is not set 771# CONFIG_MFD_TMIO is not set
742
743#
744# Voltage and Current regulators
745#
746# CONFIG_REGULATOR is not set 772# CONFIG_REGULATOR is not set
747# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
748# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
749# CONFIG_REGULATOR_BQ24022 is not set
750 773
751# 774#
752# Multimedia devices 775# Multimedia devices
@@ -843,13 +866,11 @@ CONFIG_TMPFS=y
843# CONFIG_TMPFS_POSIX_ACL is not set 866# CONFIG_TMPFS_POSIX_ACL is not set
844# CONFIG_HUGETLB_PAGE is not set 867# CONFIG_HUGETLB_PAGE is not set
845# CONFIG_CONFIGFS_FS is not set 868# CONFIG_CONFIGFS_FS is not set
846 869CONFIG_MISC_FILESYSTEMS=y
847#
848# Miscellaneous filesystems
849#
850# CONFIG_HFSPLUS_FS is not set 870# CONFIG_HFSPLUS_FS is not set
851# CONFIG_JFFS2_FS is not set 871# CONFIG_JFFS2_FS is not set
852CONFIG_CRAMFS=y 872CONFIG_CRAMFS=y
873# CONFIG_SQUASHFS is not set
853# CONFIG_VXFS_FS is not set 874# CONFIG_VXFS_FS is not set
854# CONFIG_MINIX_FS is not set 875# CONFIG_MINIX_FS is not set
855# CONFIG_OMFS_FS is not set 876# CONFIG_OMFS_FS is not set
@@ -940,6 +961,7 @@ CONFIG_NLS_UTF8=y
940# Library routines 961# Library routines
941# 962#
942CONFIG_BITREVERSE=y 963CONFIG_BITREVERSE=y
964CONFIG_GENERIC_FIND_LAST_BIT=y
943CONFIG_CRC_CCITT=y 965CONFIG_CRC_CCITT=y
944# CONFIG_CRC16 is not set 966# CONFIG_CRC16 is not set
945# CONFIG_CRC_T10DIF is not set 967# CONFIG_CRC_T10DIF is not set
@@ -991,6 +1013,7 @@ CONFIG_DEBUG_INFO=y
991# CONFIG_DEBUG_MEMORY_INIT is not set 1013# CONFIG_DEBUG_MEMORY_INIT is not set
992# CONFIG_DEBUG_LIST is not set 1014# CONFIG_DEBUG_LIST is not set
993# CONFIG_DEBUG_SG is not set 1015# CONFIG_DEBUG_SG is not set
1016# CONFIG_DEBUG_NOTIFIERS is not set
994# CONFIG_BOOT_PRINTK_DELAY is not set 1017# CONFIG_BOOT_PRINTK_DELAY is not set
995# CONFIG_RCU_TORTURE_TEST is not set 1018# CONFIG_RCU_TORTURE_TEST is not set
996# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1019# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1000,6 +1023,8 @@ CONFIG_DEBUG_INFO=y
1000# CONFIG_LATENCYTOP is not set 1023# CONFIG_LATENCYTOP is not set
1001CONFIG_SYSCTL_SYSCALL_CHECK=y 1024CONFIG_SYSCTL_SYSCALL_CHECK=y
1002CONFIG_HAVE_FUNCTION_TRACER=y 1025CONFIG_HAVE_FUNCTION_TRACER=y
1026CONFIG_HAVE_DYNAMIC_FTRACE=y
1027CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1003 1028
1004# 1029#
1005# Tracers 1030# Tracers
@@ -1008,10 +1033,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1008# CONFIG_SCHED_TRACER is not set 1033# CONFIG_SCHED_TRACER is not set
1009# CONFIG_CONTEXT_SWITCH_TRACER is not set 1034# CONFIG_CONTEXT_SWITCH_TRACER is not set
1010# CONFIG_BOOT_TRACER is not set 1035# CONFIG_BOOT_TRACER is not set
1036# CONFIG_TRACE_BRANCH_PROFILING is not set
1011# CONFIG_STACK_TRACER is not set 1037# CONFIG_STACK_TRACER is not set
1012# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1038# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1013# CONFIG_SAMPLES is not set 1039# CONFIG_SAMPLES is not set
1014CONFIG_HAVE_ARCH_KGDB=y 1040CONFIG_HAVE_ARCH_KGDB=y
1041CONFIG_PRINT_STACK_DEPTH=64
1015# CONFIG_DEBUG_STACKOVERFLOW is not set 1042# CONFIG_DEBUG_STACKOVERFLOW is not set
1016# CONFIG_DEBUG_STACK_USAGE is not set 1043# CONFIG_DEBUG_STACK_USAGE is not set
1017# CONFIG_DEBUG_PAGEALLOC is not set 1044# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1038,11 +1065,15 @@ CONFIG_CRYPTO=y
1038# 1065#
1039# CONFIG_CRYPTO_FIPS is not set 1066# CONFIG_CRYPTO_FIPS is not set
1040CONFIG_CRYPTO_ALGAPI=y 1067CONFIG_CRYPTO_ALGAPI=y
1041CONFIG_CRYPTO_AEAD=y 1068CONFIG_CRYPTO_ALGAPI2=y
1069CONFIG_CRYPTO_AEAD2=y
1042CONFIG_CRYPTO_BLKCIPHER=y 1070CONFIG_CRYPTO_BLKCIPHER=y
1071CONFIG_CRYPTO_BLKCIPHER2=y
1043CONFIG_CRYPTO_HASH=y 1072CONFIG_CRYPTO_HASH=y
1044CONFIG_CRYPTO_RNG=y 1073CONFIG_CRYPTO_HASH2=y
1074CONFIG_CRYPTO_RNG2=y
1045CONFIG_CRYPTO_MANAGER=y 1075CONFIG_CRYPTO_MANAGER=y
1076CONFIG_CRYPTO_MANAGER2=y
1046# CONFIG_CRYPTO_NULL is not set 1077# CONFIG_CRYPTO_NULL is not set
1047# CONFIG_CRYPTO_CRYPTD is not set 1078# CONFIG_CRYPTO_CRYPTD is not set
1048# CONFIG_CRYPTO_AUTHENC is not set 1079# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index d582014b0a38..45f03cad8db6 100644
--- a/arch/powerpc/configs/mpc83xx_defconfig
+++ b/arch/powerpc/configs/mpc83xx_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:42 2008 4# Mon Jan 26 15:35:36 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -45,7 +45,7 @@ CONFIG_GENERIC_GPIO=y
45CONFIG_PPC=y 45CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
51CONFIG_OF=y 51CONFIG_OF=y
@@ -77,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
77# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
80# CONFIG_CGROUPS is not set
81CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
82CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
83# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
84CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
85# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
86CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
87CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
88# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -115,7 +115,6 @@ CONFIG_SLAB=y
115# CONFIG_SLUB is not set 115# CONFIG_SLUB is not set
116# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +125,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 129CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 130# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +132,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 132# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 133# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 134# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 135CONFIG_BLOCK=y
139# CONFIG_LBD is not set 136# CONFIG_LBD is not set
140# CONFIG_BLK_DEV_IO_TRACE is not set 137# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
144 140
@@ -155,6 +151,10 @@ CONFIG_DEFAULT_AS=y
155# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
157CONFIG_CLASSIC_RCU=y 153CONFIG_CLASSIC_RCU=y
154# CONFIG_TREE_RCU is not set
155# CONFIG_PREEMPT_RCU is not set
156# CONFIG_TREE_RCU_TRACE is not set
157# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 158# CONFIG_FREEZER is not set
159 159
160# 160#
@@ -205,6 +205,8 @@ CONFIG_QUICC_ENGINE=y
205CONFIG_QE_GPIO=y 205CONFIG_QE_GPIO=y
206# CONFIG_FSL_ULI1575 is not set 206# CONFIG_FSL_ULI1575 is not set
207# CONFIG_MPC8xxx_GPIO is not set 207# CONFIG_MPC8xxx_GPIO is not set
208# CONFIG_SIMPLE_GPIO is not set
209# CONFIG_MCU_MPC8349EMITX is not set
208 210
209# 211#
210# Kernel options 212# Kernel options
@@ -232,6 +234,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
232CONFIG_ARCH_HAS_WALK_MEMORY=y 234CONFIG_ARCH_HAS_WALK_MEMORY=y
233CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 235CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
234# CONFIG_KEXEC is not set 236# CONFIG_KEXEC is not set
237# CONFIG_CRASH_DUMP is not set
235CONFIG_ARCH_FLATMEM_ENABLE=y 238CONFIG_ARCH_FLATMEM_ENABLE=y
236CONFIG_ARCH_POPULATES_NODE_MAP=y 239CONFIG_ARCH_POPULATES_NODE_MAP=y
237CONFIG_SELECT_MEMORY_MODEL=y 240CONFIG_SELECT_MEMORY_MODEL=y
@@ -243,12 +246,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
243CONFIG_PAGEFLAGS_EXTENDED=y 246CONFIG_PAGEFLAGS_EXTENDED=y
244CONFIG_SPLIT_PTLOCK_CPUS=4 247CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y 248CONFIG_MIGRATION=y
246# CONFIG_RESOURCES_64BIT is not set
247# CONFIG_PHYS_ADDR_T_64BIT is not set 249# CONFIG_PHYS_ADDR_T_64BIT is not set
248CONFIG_ZONE_DMA_FLAG=1 250CONFIG_ZONE_DMA_FLAG=1
249CONFIG_BOUNCE=y 251CONFIG_BOUNCE=y
250CONFIG_VIRT_TO_BUS=y 252CONFIG_VIRT_TO_BUS=y
251CONFIG_UNEVICTABLE_LRU=y 253CONFIG_UNEVICTABLE_LRU=y
254CONFIG_PPC_4K_PAGES=y
255# CONFIG_PPC_16K_PAGES is not set
256# CONFIG_PPC_64K_PAGES is not set
252CONFIG_FORCE_MAX_ZONEORDER=11 257CONFIG_FORCE_MAX_ZONEORDER=11
253CONFIG_PROC_DEVICETREE=y 258CONFIG_PROC_DEVICETREE=y
254# CONFIG_CMDLINE_BOOL is not set 259# CONFIG_CMDLINE_BOOL is not set
@@ -275,6 +280,7 @@ CONFIG_PCI_SYSCALL=y
275CONFIG_ARCH_SUPPORTS_MSI=y 280CONFIG_ARCH_SUPPORTS_MSI=y
276# CONFIG_PCI_MSI is not set 281# CONFIG_PCI_MSI is not set
277# CONFIG_PCI_LEGACY is not set 282# CONFIG_PCI_LEGACY is not set
283# CONFIG_PCI_STUB is not set
278# CONFIG_PCCARD is not set 284# CONFIG_PCCARD is not set
279# CONFIG_HOTPLUG_PCI is not set 285# CONFIG_HOTPLUG_PCI is not set
280# CONFIG_HAS_RAPIDIO is not set 286# CONFIG_HAS_RAPIDIO is not set
@@ -297,6 +303,7 @@ CONFIG_NET=y
297# 303#
298# Networking options 304# Networking options
299# 305#
306CONFIG_COMPAT_NET_DEV_OPS=y
300CONFIG_PACKET=y 307CONFIG_PACKET=y
301# CONFIG_PACKET_MMAP is not set 308# CONFIG_PACKET_MMAP is not set
302CONFIG_UNIX=y 309CONFIG_UNIX=y
@@ -353,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
354# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
355# CONFIG_NET_SCHED is not set 362# CONFIG_NET_SCHED is not set
363# CONFIG_DCB is not set
356 364
357# 365#
358# Network testing 366# Network testing
@@ -368,8 +376,9 @@ CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 377CONFIG_WIRELESS_OLD_REGULATORY=y
370# CONFIG_WIRELESS_EXT is not set 378# CONFIG_WIRELESS_EXT is not set
379# CONFIG_LIB80211 is not set
371# CONFIG_MAC80211 is not set 380# CONFIG_MAC80211 is not set
372# CONFIG_IEEE80211 is not set 381# CONFIG_WIMAX is not set
373# CONFIG_RFKILL is not set 382# CONFIG_RFKILL is not set
374# CONFIG_NET_9P is not set 383# CONFIG_NET_9P is not set
375 384
@@ -390,6 +399,7 @@ CONFIG_MTD=y
390# CONFIG_MTD_DEBUG is not set 399# CONFIG_MTD_DEBUG is not set
391# CONFIG_MTD_CONCAT is not set 400# CONFIG_MTD_CONCAT is not set
392CONFIG_MTD_PARTITIONS=y 401CONFIG_MTD_PARTITIONS=y
402# CONFIG_MTD_TESTS is not set
393# CONFIG_MTD_REDBOOT_PARTS is not set 403# CONFIG_MTD_REDBOOT_PARTS is not set
394# CONFIG_MTD_CMDLINE_PARTS is not set 404# CONFIG_MTD_CMDLINE_PARTS is not set
395CONFIG_MTD_OF_PARTS=y 405CONFIG_MTD_OF_PARTS=y
@@ -472,6 +482,12 @@ CONFIG_MTD_NAND_FSL_ELBC=y
472# CONFIG_MTD_ONENAND is not set 482# CONFIG_MTD_ONENAND is not set
473 483
474# 484#
485# LPDDR flash memory drivers
486#
487# CONFIG_MTD_LPDDR is not set
488# CONFIG_MTD_QINFO_PROBE is not set
489
490#
475# UBI - Unsorted block images 491# UBI - Unsorted block images
476# 492#
477# CONFIG_MTD_UBI is not set 493# CONFIG_MTD_UBI is not set
@@ -503,8 +519,10 @@ CONFIG_MISC_DEVICES=y
503# CONFIG_EEPROM_93CX6 is not set 519# CONFIG_EEPROM_93CX6 is not set
504# CONFIG_SGI_IOC4 is not set 520# CONFIG_SGI_IOC4 is not set
505# CONFIG_TIFM_CORE is not set 521# CONFIG_TIFM_CORE is not set
522# CONFIG_ICS932S401 is not set
506# CONFIG_ENCLOSURE_SERVICES is not set 523# CONFIG_ENCLOSURE_SERVICES is not set
507# CONFIG_HP_ILO is not set 524# CONFIG_HP_ILO is not set
525# CONFIG_C2PORT is not set
508CONFIG_HAVE_IDE=y 526CONFIG_HAVE_IDE=y
509# CONFIG_IDE is not set 527# CONFIG_IDE is not set
510 528
@@ -547,6 +565,7 @@ CONFIG_SCSI_WAIT_SCAN=m
547# CONFIG_SCSI_SRP_ATTRS is not set 565# CONFIG_SCSI_SRP_ATTRS is not set
548CONFIG_SCSI_LOWLEVEL=y 566CONFIG_SCSI_LOWLEVEL=y
549# CONFIG_ISCSI_TCP is not set 567# CONFIG_ISCSI_TCP is not set
568# CONFIG_SCSI_CXGB3_ISCSI is not set
550# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 569# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
551# CONFIG_SCSI_3W_9XXX is not set 570# CONFIG_SCSI_3W_9XXX is not set
552# CONFIG_SCSI_ACARD is not set 571# CONFIG_SCSI_ACARD is not set
@@ -563,6 +582,8 @@ CONFIG_SCSI_LOWLEVEL=y
563# CONFIG_MEGARAID_SAS is not set 582# CONFIG_MEGARAID_SAS is not set
564# CONFIG_SCSI_HPTIOP is not set 583# CONFIG_SCSI_HPTIOP is not set
565# CONFIG_SCSI_BUSLOGIC is not set 584# CONFIG_SCSI_BUSLOGIC is not set
585# CONFIG_LIBFC is not set
586# CONFIG_FCOE is not set
566# CONFIG_SCSI_DMX3191D is not set 587# CONFIG_SCSI_DMX3191D is not set
567# CONFIG_SCSI_EATA is not set 588# CONFIG_SCSI_EATA is not set
568# CONFIG_SCSI_FUTURE_DOMAIN is not set 589# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -682,6 +703,9 @@ CONFIG_VITESSE_PHY=y
682# CONFIG_BROADCOM_PHY is not set 703# CONFIG_BROADCOM_PHY is not set
683CONFIG_ICPLUS_PHY=y 704CONFIG_ICPLUS_PHY=y
684# CONFIG_REALTEK_PHY is not set 705# CONFIG_REALTEK_PHY is not set
706# CONFIG_NATIONAL_PHY is not set
707# CONFIG_STE10XP is not set
708# CONFIG_LSI_ET1011C_PHY is not set
685CONFIG_FIXED_PHY=y 709CONFIG_FIXED_PHY=y
686# CONFIG_MDIO_BITBANG is not set 710# CONFIG_MDIO_BITBANG is not set
687CONFIG_NET_ETHERNET=y 711CONFIG_NET_ETHERNET=y
@@ -722,7 +746,6 @@ CONFIG_NETDEV_1000=y
722CONFIG_GIANFAR=y 746CONFIG_GIANFAR=y
723CONFIG_UCC_GETH=y 747CONFIG_UCC_GETH=y
724# CONFIG_UGETH_MAGIC_PACKET is not set 748# CONFIG_UGETH_MAGIC_PACKET is not set
725# CONFIG_UGETH_FILTERING is not set
726# CONFIG_UGETH_TX_ON_DEMAND is not set 749# CONFIG_UGETH_TX_ON_DEMAND is not set
727# CONFIG_MV643XX_ETH is not set 750# CONFIG_MV643XX_ETH is not set
728# CONFIG_QLA3XXX is not set 751# CONFIG_QLA3XXX is not set
@@ -731,6 +754,7 @@ CONFIG_UCC_GETH=y
731# CONFIG_JME is not set 754# CONFIG_JME is not set
732CONFIG_NETDEV_10000=y 755CONFIG_NETDEV_10000=y
733# CONFIG_CHELSIO_T1 is not set 756# CONFIG_CHELSIO_T1 is not set
757CONFIG_CHELSIO_T3_DEPENDS=y
734# CONFIG_CHELSIO_T3 is not set 758# CONFIG_CHELSIO_T3 is not set
735# CONFIG_ENIC is not set 759# CONFIG_ENIC is not set
736# CONFIG_IXGBE is not set 760# CONFIG_IXGBE is not set
@@ -755,6 +779,10 @@ CONFIG_NETDEV_10000=y
755# CONFIG_IWLWIFI_LEDS is not set 779# CONFIG_IWLWIFI_LEDS is not set
756 780
757# 781#
782# Enable WiMAX (Networking options) to see the WiMAX drivers
783#
784
785#
758# USB Network Adapters 786# USB Network Adapters
759# 787#
760# CONFIG_USB_CATC is not set 788# CONFIG_USB_CATC is not set
@@ -833,8 +861,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
833# CONFIG_SERIAL_OF_PLATFORM is not set 861# CONFIG_SERIAL_OF_PLATFORM is not set
834# CONFIG_SERIAL_QE is not set 862# CONFIG_SERIAL_QE is not set
835CONFIG_UNIX98_PTYS=y 863CONFIG_UNIX98_PTYS=y
864# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
836CONFIG_LEGACY_PTYS=y 865CONFIG_LEGACY_PTYS=y
837CONFIG_LEGACY_PTY_COUNT=256 866CONFIG_LEGACY_PTY_COUNT=256
867# CONFIG_HVC_UDBG is not set
838# CONFIG_IPMI_HANDLER is not set 868# CONFIG_IPMI_HANDLER is not set
839CONFIG_HW_RANDOM=y 869CONFIG_HW_RANDOM=y
840# CONFIG_NVRAM is not set 870# CONFIG_NVRAM is not set
@@ -902,16 +932,14 @@ CONFIG_I2C_MPC=y
902# Miscellaneous I2C Chip support 932# Miscellaneous I2C Chip support
903# 933#
904# CONFIG_DS1682 is not set 934# CONFIG_DS1682 is not set
905# CONFIG_AT24 is not set 935# CONFIG_EEPROM_AT24 is not set
906# CONFIG_SENSORS_EEPROM is not set 936# CONFIG_EEPROM_LEGACY is not set
907# CONFIG_SENSORS_PCF8574 is not set 937# CONFIG_SENSORS_PCF8574 is not set
908# CONFIG_PCF8575 is not set 938# CONFIG_PCF8575 is not set
909# CONFIG_SENSORS_PCA9539 is not set 939# CONFIG_SENSORS_PCA9539 is not set
910# CONFIG_SENSORS_PCF8591 is not set 940# CONFIG_SENSORS_PCF8591 is not set
911# CONFIG_TPS65010 is not set
912# CONFIG_SENSORS_MAX6875 is not set 941# CONFIG_SENSORS_MAX6875 is not set
913# CONFIG_SENSORS_TSL2550 is not set 942# CONFIG_SENSORS_TSL2550 is not set
914# CONFIG_MCU_MPC8349EMITX is not set
915# CONFIG_I2C_DEBUG_CORE is not set 943# CONFIG_I2C_DEBUG_CORE is not set
916# CONFIG_I2C_DEBUG_ALGO is not set 944# CONFIG_I2C_DEBUG_ALGO is not set
917# CONFIG_I2C_DEBUG_BUS is not set 945# CONFIG_I2C_DEBUG_BUS is not set
@@ -923,6 +951,11 @@ CONFIG_GPIOLIB=y
923# CONFIG_GPIO_SYSFS is not set 951# CONFIG_GPIO_SYSFS is not set
924 952
925# 953#
954# Memory mapped GPIO expanders:
955#
956# CONFIG_GPIO_XILINX is not set
957
958#
926# I2C GPIO expanders: 959# I2C GPIO expanders:
927# 960#
928# CONFIG_GPIO_MAX732X is not set 961# CONFIG_GPIO_MAX732X is not set
@@ -949,8 +982,10 @@ CONFIG_HWMON=y
949# CONFIG_SENSORS_ADM1029 is not set 982# CONFIG_SENSORS_ADM1029 is not set
950# CONFIG_SENSORS_ADM1031 is not set 983# CONFIG_SENSORS_ADM1031 is not set
951# CONFIG_SENSORS_ADM9240 is not set 984# CONFIG_SENSORS_ADM9240 is not set
985# CONFIG_SENSORS_ADT7462 is not set
952# CONFIG_SENSORS_ADT7470 is not set 986# CONFIG_SENSORS_ADT7470 is not set
953# CONFIG_SENSORS_ADT7473 is not set 987# CONFIG_SENSORS_ADT7473 is not set
988# CONFIG_SENSORS_ADT7475 is not set
954# CONFIG_SENSORS_ATXP1 is not set 989# CONFIG_SENSORS_ATXP1 is not set
955# CONFIG_SENSORS_DS1621 is not set 990# CONFIG_SENSORS_DS1621 is not set
956# CONFIG_SENSORS_I5K_AMB is not set 991# CONFIG_SENSORS_I5K_AMB is not set
@@ -971,6 +1006,7 @@ CONFIG_HWMON=y
971# CONFIG_SENSORS_LM90 is not set 1006# CONFIG_SENSORS_LM90 is not set
972# CONFIG_SENSORS_LM92 is not set 1007# CONFIG_SENSORS_LM92 is not set
973# CONFIG_SENSORS_LM93 is not set 1008# CONFIG_SENSORS_LM93 is not set
1009# CONFIG_SENSORS_LTC4245 is not set
974# CONFIG_SENSORS_MAX1619 is not set 1010# CONFIG_SENSORS_MAX1619 is not set
975# CONFIG_SENSORS_MAX6650 is not set 1011# CONFIG_SENSORS_MAX6650 is not set
976# CONFIG_SENSORS_PC87360 is not set 1012# CONFIG_SENSORS_PC87360 is not set
@@ -1016,11 +1052,11 @@ CONFIG_WATCHDOG=y
1016# USB-based Watchdog Cards 1052# USB-based Watchdog Cards
1017# 1053#
1018# CONFIG_USBPCWATCHDOG is not set 1054# CONFIG_USBPCWATCHDOG is not set
1055CONFIG_SSB_POSSIBLE=y
1019 1056
1020# 1057#
1021# Sonics Silicon Backplane 1058# Sonics Silicon Backplane
1022# 1059#
1023CONFIG_SSB_POSSIBLE=y
1024# CONFIG_SSB is not set 1060# CONFIG_SSB is not set
1025 1061
1026# 1062#
@@ -1029,18 +1065,14 @@ CONFIG_SSB_POSSIBLE=y
1029# CONFIG_MFD_CORE is not set 1065# CONFIG_MFD_CORE is not set
1030# CONFIG_MFD_SM501 is not set 1066# CONFIG_MFD_SM501 is not set
1031# CONFIG_HTC_PASIC3 is not set 1067# CONFIG_HTC_PASIC3 is not set
1068# CONFIG_TPS65010 is not set
1069# CONFIG_TWL4030_CORE is not set
1032# CONFIG_MFD_TMIO is not set 1070# CONFIG_MFD_TMIO is not set
1033# CONFIG_PMIC_DA903X is not set 1071# CONFIG_PMIC_DA903X is not set
1034# CONFIG_MFD_WM8400 is not set 1072# CONFIG_MFD_WM8400 is not set
1035# CONFIG_MFD_WM8350_I2C is not set 1073# CONFIG_MFD_WM8350_I2C is not set
1036 1074# CONFIG_MFD_PCF50633 is not set
1037#
1038# Voltage and Current regulators
1039#
1040# CONFIG_REGULATOR is not set 1075# CONFIG_REGULATOR is not set
1041# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1042# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1043# CONFIG_REGULATOR_BQ24022 is not set
1044 1076
1045# 1077#
1046# Multimedia devices 1078# Multimedia devices
@@ -1093,11 +1125,9 @@ CONFIG_HID_COMPAT=y
1093CONFIG_HID_A4TECH=y 1125CONFIG_HID_A4TECH=y
1094CONFIG_HID_APPLE=y 1126CONFIG_HID_APPLE=y
1095CONFIG_HID_BELKIN=y 1127CONFIG_HID_BELKIN=y
1096CONFIG_HID_BRIGHT=y
1097CONFIG_HID_CHERRY=y 1128CONFIG_HID_CHERRY=y
1098CONFIG_HID_CHICONY=y 1129CONFIG_HID_CHICONY=y
1099CONFIG_HID_CYPRESS=y 1130CONFIG_HID_CYPRESS=y
1100CONFIG_HID_DELL=y
1101CONFIG_HID_EZKEY=y 1131CONFIG_HID_EZKEY=y
1102CONFIG_HID_GYRATION=y 1132CONFIG_HID_GYRATION=y
1103CONFIG_HID_LOGITECH=y 1133CONFIG_HID_LOGITECH=y
@@ -1105,12 +1135,15 @@ CONFIG_HID_LOGITECH=y
1105# CONFIG_LOGIRUMBLEPAD2_FF is not set 1135# CONFIG_LOGIRUMBLEPAD2_FF is not set
1106CONFIG_HID_MICROSOFT=y 1136CONFIG_HID_MICROSOFT=y
1107CONFIG_HID_MONTEREY=y 1137CONFIG_HID_MONTEREY=y
1138# CONFIG_HID_NTRIG is not set
1108CONFIG_HID_PANTHERLORD=y 1139CONFIG_HID_PANTHERLORD=y
1109# CONFIG_PANTHERLORD_FF is not set 1140# CONFIG_PANTHERLORD_FF is not set
1110CONFIG_HID_PETALYNX=y 1141CONFIG_HID_PETALYNX=y
1111CONFIG_HID_SAMSUNG=y 1142CONFIG_HID_SAMSUNG=y
1112CONFIG_HID_SONY=y 1143CONFIG_HID_SONY=y
1113CONFIG_HID_SUNPLUS=y 1144CONFIG_HID_SUNPLUS=y
1145# CONFIG_GREENASIA_FF is not set
1146# CONFIG_HID_TOPSEED is not set
1114CONFIG_THRUSTMASTER_FF=m 1147CONFIG_THRUSTMASTER_FF=m
1115CONFIG_ZEROPLUS_FF=m 1148CONFIG_ZEROPLUS_FF=m
1116CONFIG_USB_SUPPORT=y 1149CONFIG_USB_SUPPORT=y
@@ -1143,6 +1176,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1143# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1176# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1144CONFIG_USB_EHCI_FSL=y 1177CONFIG_USB_EHCI_FSL=y
1145CONFIG_USB_EHCI_HCD_PPC_OF=y 1178CONFIG_USB_EHCI_HCD_PPC_OF=y
1179# CONFIG_USB_OXU210HP_HCD is not set
1146# CONFIG_USB_ISP116X_HCD is not set 1180# CONFIG_USB_ISP116X_HCD is not set
1147# CONFIG_USB_ISP1760_HCD is not set 1181# CONFIG_USB_ISP1760_HCD is not set
1148# CONFIG_USB_OHCI_HCD is not set 1182# CONFIG_USB_OHCI_HCD is not set
@@ -1161,11 +1195,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1161# CONFIG_USB_TMC is not set 1195# CONFIG_USB_TMC is not set
1162 1196
1163# 1197#
1164# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1198# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1165# 1199#
1166 1200
1167# 1201#
1168# may also be needed; see USB_STORAGE Help for more information 1202# see USB_STORAGE Help for more information
1169# 1203#
1170# CONFIG_USB_STORAGE is not set 1204# CONFIG_USB_STORAGE is not set
1171# CONFIG_USB_LIBUSUAL is not set 1205# CONFIG_USB_LIBUSUAL is not set
@@ -1206,6 +1240,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1206# CONFIG_USB_ISIGHTFW is not set 1240# CONFIG_USB_ISIGHTFW is not set
1207# CONFIG_USB_VST is not set 1241# CONFIG_USB_VST is not set
1208# CONFIG_USB_GADGET is not set 1242# CONFIG_USB_GADGET is not set
1243
1244#
1245# OTG and related infrastructure
1246#
1247# CONFIG_USB_GPIO_VBUS is not set
1209# CONFIG_UWB is not set 1248# CONFIG_UWB is not set
1210# CONFIG_MMC is not set 1249# CONFIG_MMC is not set
1211# CONFIG_MEMSTICK is not set 1250# CONFIG_MEMSTICK is not set
@@ -1237,6 +1276,7 @@ CONFIG_FS_MBCACHE=y
1237CONFIG_FILE_LOCKING=y 1276CONFIG_FILE_LOCKING=y
1238# CONFIG_XFS_FS is not set 1277# CONFIG_XFS_FS is not set
1239# CONFIG_OCFS2_FS is not set 1278# CONFIG_OCFS2_FS is not set
1279# CONFIG_BTRFS_FS is not set
1240CONFIG_DNOTIFY=y 1280CONFIG_DNOTIFY=y
1241CONFIG_INOTIFY=y 1281CONFIG_INOTIFY=y
1242CONFIG_INOTIFY_USER=y 1282CONFIG_INOTIFY_USER=y
@@ -1270,10 +1310,7 @@ CONFIG_TMPFS=y
1270# CONFIG_TMPFS_POSIX_ACL is not set 1310# CONFIG_TMPFS_POSIX_ACL is not set
1271# CONFIG_HUGETLB_PAGE is not set 1311# CONFIG_HUGETLB_PAGE is not set
1272# CONFIG_CONFIGFS_FS is not set 1312# CONFIG_CONFIGFS_FS is not set
1273 1313CONFIG_MISC_FILESYSTEMS=y
1274#
1275# Miscellaneous filesystems
1276#
1277# CONFIG_ADFS_FS is not set 1314# CONFIG_ADFS_FS is not set
1278# CONFIG_AFFS_FS is not set 1315# CONFIG_AFFS_FS is not set
1279# CONFIG_HFS_FS is not set 1316# CONFIG_HFS_FS is not set
@@ -1283,6 +1320,7 @@ CONFIG_TMPFS=y
1283# CONFIG_EFS_FS is not set 1320# CONFIG_EFS_FS is not set
1284# CONFIG_JFFS2_FS is not set 1321# CONFIG_JFFS2_FS is not set
1285# CONFIG_CRAMFS is not set 1322# CONFIG_CRAMFS is not set
1323# CONFIG_SQUASHFS is not set
1286# CONFIG_VXFS_FS is not set 1324# CONFIG_VXFS_FS is not set
1287# CONFIG_MINIX_FS is not set 1325# CONFIG_MINIX_FS is not set
1288# CONFIG_OMFS_FS is not set 1326# CONFIG_OMFS_FS is not set
@@ -1342,6 +1380,7 @@ CONFIG_UCC=y
1342# Library routines 1380# Library routines
1343# 1381#
1344CONFIG_BITREVERSE=y 1382CONFIG_BITREVERSE=y
1383CONFIG_GENERIC_FIND_LAST_BIT=y
1345# CONFIG_CRC_CCITT is not set 1384# CONFIG_CRC_CCITT is not set
1346# CONFIG_CRC16 is not set 1385# CONFIG_CRC16 is not set
1347CONFIG_CRC_T10DIF=y 1386CONFIG_CRC_T10DIF=y
@@ -1373,6 +1412,8 @@ CONFIG_FRAME_WARN=1024
1373# CONFIG_LATENCYTOP is not set 1412# CONFIG_LATENCYTOP is not set
1374CONFIG_SYSCTL_SYSCALL_CHECK=y 1413CONFIG_SYSCTL_SYSCALL_CHECK=y
1375CONFIG_HAVE_FUNCTION_TRACER=y 1414CONFIG_HAVE_FUNCTION_TRACER=y
1415CONFIG_HAVE_DYNAMIC_FTRACE=y
1416CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1376 1417
1377# 1418#
1378# Tracers 1419# Tracers
@@ -1380,6 +1421,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1380# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1421# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1381# CONFIG_SAMPLES is not set 1422# CONFIG_SAMPLES is not set
1382CONFIG_HAVE_ARCH_KGDB=y 1423CONFIG_HAVE_ARCH_KGDB=y
1424CONFIG_PRINT_STACK_DEPTH=64
1383# CONFIG_IRQSTACKS is not set 1425# CONFIG_IRQSTACKS is not set
1384# CONFIG_BOOTX_TEXT is not set 1426# CONFIG_BOOTX_TEXT is not set
1385# CONFIG_PPC_EARLY_DEBUG is not set 1427# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1398,11 +1440,16 @@ CONFIG_CRYPTO=y
1398# 1440#
1399# CONFIG_CRYPTO_FIPS is not set 1441# CONFIG_CRYPTO_FIPS is not set
1400CONFIG_CRYPTO_ALGAPI=y 1442CONFIG_CRYPTO_ALGAPI=y
1443CONFIG_CRYPTO_ALGAPI2=y
1401CONFIG_CRYPTO_AEAD=y 1444CONFIG_CRYPTO_AEAD=y
1445CONFIG_CRYPTO_AEAD2=y
1402CONFIG_CRYPTO_BLKCIPHER=y 1446CONFIG_CRYPTO_BLKCIPHER=y
1447CONFIG_CRYPTO_BLKCIPHER2=y
1403CONFIG_CRYPTO_HASH=y 1448CONFIG_CRYPTO_HASH=y
1404CONFIG_CRYPTO_RNG=y 1449CONFIG_CRYPTO_HASH2=y
1450CONFIG_CRYPTO_RNG2=y
1405CONFIG_CRYPTO_MANAGER=y 1451CONFIG_CRYPTO_MANAGER=y
1452CONFIG_CRYPTO_MANAGER2=y
1406# CONFIG_CRYPTO_GF128MUL is not set 1453# CONFIG_CRYPTO_GF128MUL is not set
1407# CONFIG_CRYPTO_NULL is not set 1454# CONFIG_CRYPTO_NULL is not set
1408# CONFIG_CRYPTO_CRYPTD is not set 1455# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index c87b53abc617..fb08819d7cc4 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:43 2008 4# Mon Jan 26 15:35:37 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -79,12 +81,12 @@ CONFIG_AUDIT=y
79CONFIG_IKCONFIG=y 81CONFIG_IKCONFIG=y
80CONFIG_IKCONFIG_PROC=y 82CONFIG_IKCONFIG_PROC=y
81CONFIG_LOG_BUF_SHIFT=14 83CONFIG_LOG_BUF_SHIFT=14
82# CONFIG_CGROUPS is not set
83CONFIG_GROUP_SCHED=y 84CONFIG_GROUP_SCHED=y
84# CONFIG_FAIR_GROUP_SCHED is not set 85# CONFIG_FAIR_GROUP_SCHED is not set
85# CONFIG_RT_GROUP_SCHED is not set 86# CONFIG_RT_GROUP_SCHED is not set
86CONFIG_USER_SCHED=y 87CONFIG_USER_SCHED=y
87# CONFIG_CGROUP_SCHED is not set 88# CONFIG_CGROUP_SCHED is not set
89# CONFIG_CGROUPS is not set
88CONFIG_SYSFS_DEPRECATED=y 90CONFIG_SYSFS_DEPRECATED=y
89CONFIG_SYSFS_DEPRECATED_V2=y 91CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_RELAY is not set 92# CONFIG_RELAY is not set
@@ -97,6 +99,7 @@ CONFIG_EMBEDDED=y
97CONFIG_SYSCTL_SYSCALL=y 99CONFIG_SYSCTL_SYSCALL=y
98CONFIG_KALLSYMS=y 100CONFIG_KALLSYMS=y
99CONFIG_KALLSYMS_ALL=y 101CONFIG_KALLSYMS_ALL=y
102CONFIG_KALLSYMS_STRIP_GENERATED=y
100CONFIG_KALLSYMS_EXTRA_PASS=y 103CONFIG_KALLSYMS_EXTRA_PASS=y
101CONFIG_HOTPLUG=y 104CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 105CONFIG_PRINTK=y
@@ -119,7 +122,6 @@ CONFIG_SLUB_DEBUG=y
119CONFIG_SLUB=y 122CONFIG_SLUB=y
120# CONFIG_SLOB is not set 123# CONFIG_SLOB is not set
121# CONFIG_PROFILING is not set 124# CONFIG_PROFILING is not set
122# CONFIG_MARKERS is not set
123CONFIG_HAVE_OPROFILE=y 125CONFIG_HAVE_OPROFILE=y
124# CONFIG_KPROBES is not set 126# CONFIG_KPROBES is not set
125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -131,7 +133,6 @@ CONFIG_HAVE_CLK=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 134CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 135CONFIG_RT_MUTEXES=y
134# CONFIG_TINY_SHMEM is not set
135CONFIG_BASE_SMALL=0 136CONFIG_BASE_SMALL=0
136CONFIG_MODULES=y 137CONFIG_MODULES=y
137# CONFIG_MODULE_FORCE_LOAD is not set 138# CONFIG_MODULE_FORCE_LOAD is not set
@@ -139,11 +140,9 @@ CONFIG_MODULE_UNLOAD=y
139CONFIG_MODULE_FORCE_UNLOAD=y 140CONFIG_MODULE_FORCE_UNLOAD=y
140CONFIG_MODVERSIONS=y 141CONFIG_MODVERSIONS=y
141# CONFIG_MODULE_SRCVERSION_ALL is not set 142# CONFIG_MODULE_SRCVERSION_ALL is not set
142CONFIG_KMOD=y
143CONFIG_BLOCK=y 143CONFIG_BLOCK=y
144CONFIG_LBD=y 144CONFIG_LBD=y
145# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
146# CONFIG_LSF is not set
147# CONFIG_BLK_DEV_BSG is not set 146# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set 147# CONFIG_BLK_DEV_INTEGRITY is not set
149 148
@@ -160,6 +159,10 @@ CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 159# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 160CONFIG_DEFAULT_IOSCHED="cfq"
162CONFIG_CLASSIC_RCU=y 161CONFIG_CLASSIC_RCU=y
162# CONFIG_TREE_RCU is not set
163# CONFIG_PREEMPT_RCU is not set
164# CONFIG_TREE_RCU_TRACE is not set
165# CONFIG_PREEMPT_RCU_TRACE is not set
163# CONFIG_FREEZER is not set 166# CONFIG_FREEZER is not set
164 167
165# 168#
@@ -202,6 +205,7 @@ CONFIG_CPM2=y
202CONFIG_FSL_ULI1575=y 205CONFIG_FSL_ULI1575=y
203CONFIG_CPM=y 206CONFIG_CPM=y
204# CONFIG_MPC8xxx_GPIO is not set 207# CONFIG_MPC8xxx_GPIO is not set
208# CONFIG_SIMPLE_GPIO is not set
205 209
206# 210#
207# Kernel options 211# Kernel options
@@ -240,12 +244,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
240CONFIG_PAGEFLAGS_EXTENDED=y 244CONFIG_PAGEFLAGS_EXTENDED=y
241CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
242CONFIG_MIGRATION=y 246CONFIG_MIGRATION=y
243# CONFIG_RESOURCES_64BIT is not set
244# CONFIG_PHYS_ADDR_T_64BIT is not set 247# CONFIG_PHYS_ADDR_T_64BIT is not set
245CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
246CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
247CONFIG_VIRT_TO_BUS=y 250CONFIG_VIRT_TO_BUS=y
248CONFIG_UNEVICTABLE_LRU=y 251CONFIG_UNEVICTABLE_LRU=y
252CONFIG_PPC_4K_PAGES=y
253# CONFIG_PPC_16K_PAGES is not set
254# CONFIG_PPC_64K_PAGES is not set
249CONFIG_FORCE_MAX_ZONEORDER=11 255CONFIG_FORCE_MAX_ZONEORDER=11
250CONFIG_PROC_DEVICETREE=y 256CONFIG_PROC_DEVICETREE=y
251# CONFIG_CMDLINE_BOOL is not set 257# CONFIG_CMDLINE_BOOL is not set
@@ -271,6 +277,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
271# CONFIG_PCI_MSI is not set 277# CONFIG_PCI_MSI is not set
272# CONFIG_PCI_LEGACY is not set 278# CONFIG_PCI_LEGACY is not set
273# CONFIG_PCI_DEBUG is not set 279# CONFIG_PCI_DEBUG is not set
280# CONFIG_PCI_STUB is not set
274# CONFIG_PCCARD is not set 281# CONFIG_PCCARD is not set
275# CONFIG_HOTPLUG_PCI is not set 282# CONFIG_HOTPLUG_PCI is not set
276# CONFIG_HAS_RAPIDIO is not set 283# CONFIG_HAS_RAPIDIO is not set
@@ -294,6 +301,7 @@ CONFIG_NET=y
294# 301#
295# Networking options 302# Networking options
296# 303#
304CONFIG_COMPAT_NET_DEV_OPS=y
297CONFIG_PACKET=y 305CONFIG_PACKET=y
298# CONFIG_PACKET_MMAP is not set 306# CONFIG_PACKET_MMAP is not set
299CONFIG_UNIX=y 307CONFIG_UNIX=y
@@ -382,6 +390,7 @@ CONFIG_SCTP_HMAC_MD5=y
382# CONFIG_ECONET is not set 390# CONFIG_ECONET is not set
383# CONFIG_WAN_ROUTER is not set 391# CONFIG_WAN_ROUTER is not set
384# CONFIG_NET_SCHED is not set 392# CONFIG_NET_SCHED is not set
393# CONFIG_DCB is not set
385 394
386# 395#
387# Network testing 396# Network testing
@@ -398,8 +407,9 @@ CONFIG_WIRELESS=y
398# CONFIG_CFG80211 is not set 407# CONFIG_CFG80211 is not set
399CONFIG_WIRELESS_OLD_REGULATORY=y 408CONFIG_WIRELESS_OLD_REGULATORY=y
400# CONFIG_WIRELESS_EXT is not set 409# CONFIG_WIRELESS_EXT is not set
410# CONFIG_LIB80211 is not set
401# CONFIG_MAC80211 is not set 411# CONFIG_MAC80211 is not set
402# CONFIG_IEEE80211 is not set 412# CONFIG_WIMAX is not set
403# CONFIG_RFKILL is not set 413# CONFIG_RFKILL is not set
404# CONFIG_NET_9P is not set 414# CONFIG_NET_9P is not set
405 415
@@ -449,8 +459,10 @@ CONFIG_MISC_DEVICES=y
449# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
450# CONFIG_SGI_IOC4 is not set 460# CONFIG_SGI_IOC4 is not set
451# CONFIG_TIFM_CORE is not set 461# CONFIG_TIFM_CORE is not set
462# CONFIG_ICS932S401 is not set
452# CONFIG_ENCLOSURE_SERVICES is not set 463# CONFIG_ENCLOSURE_SERVICES is not set
453# CONFIG_HP_ILO is not set 464# CONFIG_HP_ILO is not set
465# CONFIG_C2PORT is not set
454CONFIG_HAVE_IDE=y 466CONFIG_HAVE_IDE=y
455# CONFIG_IDE is not set 467# CONFIG_IDE is not set
456 468
@@ -494,6 +506,7 @@ CONFIG_SCSI_WAIT_SCAN=m
494# CONFIG_SCSI_SRP_ATTRS is not set 506# CONFIG_SCSI_SRP_ATTRS is not set
495CONFIG_SCSI_LOWLEVEL=y 507CONFIG_SCSI_LOWLEVEL=y
496# CONFIG_ISCSI_TCP is not set 508# CONFIG_ISCSI_TCP is not set
509# CONFIG_SCSI_CXGB3_ISCSI is not set
497# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 510# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
498# CONFIG_SCSI_3W_9XXX is not set 511# CONFIG_SCSI_3W_9XXX is not set
499# CONFIG_SCSI_ACARD is not set 512# CONFIG_SCSI_ACARD is not set
@@ -510,6 +523,8 @@ CONFIG_SCSI_LOWLEVEL=y
510# CONFIG_MEGARAID_SAS is not set 523# CONFIG_MEGARAID_SAS is not set
511# CONFIG_SCSI_HPTIOP is not set 524# CONFIG_SCSI_HPTIOP is not set
512# CONFIG_SCSI_BUSLOGIC is not set 525# CONFIG_SCSI_BUSLOGIC is not set
526# CONFIG_LIBFC is not set
527# CONFIG_FCOE is not set
513# CONFIG_SCSI_DMX3191D is not set 528# CONFIG_SCSI_DMX3191D is not set
514# CONFIG_SCSI_EATA is not set 529# CONFIG_SCSI_EATA is not set
515# CONFIG_SCSI_FUTURE_DOMAIN is not set 530# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -629,6 +644,9 @@ CONFIG_VITESSE_PHY=y
629# CONFIG_BROADCOM_PHY is not set 644# CONFIG_BROADCOM_PHY is not set
630# CONFIG_ICPLUS_PHY is not set 645# CONFIG_ICPLUS_PHY is not set
631# CONFIG_REALTEK_PHY is not set 646# CONFIG_REALTEK_PHY is not set
647# CONFIG_NATIONAL_PHY is not set
648# CONFIG_STE10XP is not set
649# CONFIG_LSI_ET1011C_PHY is not set
632# CONFIG_FIXED_PHY is not set 650# CONFIG_FIXED_PHY is not set
633# CONFIG_MDIO_BITBANG is not set 651# CONFIG_MDIO_BITBANG is not set
634CONFIG_NET_ETHERNET=y 652CONFIG_NET_ETHERNET=y
@@ -675,6 +693,7 @@ CONFIG_GIANFAR=y
675# CONFIG_JME is not set 693# CONFIG_JME is not set
676CONFIG_NETDEV_10000=y 694CONFIG_NETDEV_10000=y
677# CONFIG_CHELSIO_T1 is not set 695# CONFIG_CHELSIO_T1 is not set
696CONFIG_CHELSIO_T3_DEPENDS=y
678# CONFIG_CHELSIO_T3 is not set 697# CONFIG_CHELSIO_T3 is not set
679# CONFIG_ENIC is not set 698# CONFIG_ENIC is not set
680# CONFIG_IXGBE is not set 699# CONFIG_IXGBE is not set
@@ -699,6 +718,10 @@ CONFIG_NETDEV_10000=y
699# CONFIG_IWLWIFI_LEDS is not set 718# CONFIG_IWLWIFI_LEDS is not set
700 719
701# 720#
721# Enable WiMAX (Networking options) to see the WiMAX drivers
722#
723
724#
702# USB Network Adapters 725# USB Network Adapters
703# 726#
704# CONFIG_USB_CATC is not set 727# CONFIG_USB_CATC is not set
@@ -792,8 +815,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
792# CONFIG_SERIAL_OF_PLATFORM is not set 815# CONFIG_SERIAL_OF_PLATFORM is not set
793# CONFIG_SERIAL_QE is not set 816# CONFIG_SERIAL_QE is not set
794CONFIG_UNIX98_PTYS=y 817CONFIG_UNIX98_PTYS=y
818# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
795CONFIG_LEGACY_PTYS=y 819CONFIG_LEGACY_PTYS=y
796CONFIG_LEGACY_PTY_COUNT=256 820CONFIG_LEGACY_PTY_COUNT=256
821# CONFIG_HVC_UDBG is not set
797# CONFIG_IPMI_HANDLER is not set 822# CONFIG_IPMI_HANDLER is not set
798# CONFIG_HW_RANDOM is not set 823# CONFIG_HW_RANDOM is not set
799CONFIG_NVRAM=y 824CONFIG_NVRAM=y
@@ -860,13 +885,12 @@ CONFIG_I2C_MPC=y
860# Miscellaneous I2C Chip support 885# Miscellaneous I2C Chip support
861# 886#
862# CONFIG_DS1682 is not set 887# CONFIG_DS1682 is not set
863# CONFIG_AT24 is not set 888# CONFIG_EEPROM_AT24 is not set
864CONFIG_SENSORS_EEPROM=y 889CONFIG_EEPROM_LEGACY=y
865# CONFIG_SENSORS_PCF8574 is not set 890# CONFIG_SENSORS_PCF8574 is not set
866# CONFIG_PCF8575 is not set 891# CONFIG_PCF8575 is not set
867# CONFIG_SENSORS_PCA9539 is not set 892# CONFIG_SENSORS_PCA9539 is not set
868# CONFIG_SENSORS_PCF8591 is not set 893# CONFIG_SENSORS_PCF8591 is not set
869# CONFIG_TPS65010 is not set
870# CONFIG_SENSORS_MAX6875 is not set 894# CONFIG_SENSORS_MAX6875 is not set
871# CONFIG_SENSORS_TSL2550 is not set 895# CONFIG_SENSORS_TSL2550 is not set
872# CONFIG_I2C_DEBUG_CORE is not set 896# CONFIG_I2C_DEBUG_CORE is not set
@@ -881,6 +905,11 @@ CONFIG_GPIOLIB=y
881# CONFIG_GPIO_SYSFS is not set 905# CONFIG_GPIO_SYSFS is not set
882 906
883# 907#
908# Memory mapped GPIO expanders:
909#
910# CONFIG_GPIO_XILINX is not set
911
912#
884# I2C GPIO expanders: 913# I2C GPIO expanders:
885# 914#
886# CONFIG_GPIO_MAX732X is not set 915# CONFIG_GPIO_MAX732X is not set
@@ -901,11 +930,11 @@ CONFIG_GPIOLIB=y
901# CONFIG_THERMAL is not set 930# CONFIG_THERMAL is not set
902# CONFIG_THERMAL_HWMON is not set 931# CONFIG_THERMAL_HWMON is not set
903# CONFIG_WATCHDOG is not set 932# CONFIG_WATCHDOG is not set
933CONFIG_SSB_POSSIBLE=y
904 934
905# 935#
906# Sonics Silicon Backplane 936# Sonics Silicon Backplane
907# 937#
908CONFIG_SSB_POSSIBLE=y
909# CONFIG_SSB is not set 938# CONFIG_SSB is not set
910 939
911# 940#
@@ -915,18 +944,14 @@ CONFIG_SSB_POSSIBLE=y
915# CONFIG_MFD_SM501 is not set 944# CONFIG_MFD_SM501 is not set
916# CONFIG_HTC_PASIC3 is not set 945# CONFIG_HTC_PASIC3 is not set
917# CONFIG_UCB1400_CORE is not set 946# CONFIG_UCB1400_CORE is not set
947# CONFIG_TPS65010 is not set
948# CONFIG_TWL4030_CORE is not set
918# CONFIG_MFD_TMIO is not set 949# CONFIG_MFD_TMIO is not set
919# CONFIG_PMIC_DA903X is not set 950# CONFIG_PMIC_DA903X is not set
920# CONFIG_MFD_WM8400 is not set 951# CONFIG_MFD_WM8400 is not set
921# CONFIG_MFD_WM8350_I2C is not set 952# CONFIG_MFD_WM8350_I2C is not set
922 953# CONFIG_MFD_PCF50633 is not set
923#
924# Voltage and Current regulators
925#
926# CONFIG_REGULATOR is not set 954# CONFIG_REGULATOR is not set
927# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
928# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
929# CONFIG_REGULATOR_BQ24022 is not set
930 955
931# 956#
932# Multimedia devices 957# Multimedia devices
@@ -953,6 +978,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
953CONFIG_MEDIA_TUNER_MT20XX=m 978CONFIG_MEDIA_TUNER_MT20XX=m
954CONFIG_MEDIA_TUNER_XC2028=m 979CONFIG_MEDIA_TUNER_XC2028=m
955CONFIG_MEDIA_TUNER_XC5000=m 980CONFIG_MEDIA_TUNER_XC5000=m
981# CONFIG_DVB_DYNAMIC_MINORS is not set
956CONFIG_DVB_CAPTURE_DRIVERS=y 982CONFIG_DVB_CAPTURE_DRIVERS=y
957 983
958# 984#
@@ -998,6 +1024,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
998# CONFIG_DVB_FE_CUSTOMISE is not set 1024# CONFIG_DVB_FE_CUSTOMISE is not set
999 1025
1000# 1026#
1027# Multistandard (satellite) frontends
1028#
1029# CONFIG_DVB_STB0899 is not set
1030# CONFIG_DVB_STB6100 is not set
1031
1032#
1001# DVB-S (satellite) frontends 1033# DVB-S (satellite) frontends
1002# 1034#
1003# CONFIG_DVB_CX24110 is not set 1035# CONFIG_DVB_CX24110 is not set
@@ -1009,8 +1041,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1009# CONFIG_DVB_STV0299 is not set 1041# CONFIG_DVB_STV0299 is not set
1010# CONFIG_DVB_TDA8083 is not set 1042# CONFIG_DVB_TDA8083 is not set
1011# CONFIG_DVB_TDA10086 is not set 1043# CONFIG_DVB_TDA10086 is not set
1044# CONFIG_DVB_TDA8261 is not set
1012# CONFIG_DVB_VES1X93 is not set 1045# CONFIG_DVB_VES1X93 is not set
1013# CONFIG_DVB_TUNER_ITD1000 is not set 1046# CONFIG_DVB_TUNER_ITD1000 is not set
1047# CONFIG_DVB_TUNER_CX24113 is not set
1014# CONFIG_DVB_TDA826X is not set 1048# CONFIG_DVB_TDA826X is not set
1015# CONFIG_DVB_TUA6100 is not set 1049# CONFIG_DVB_TUA6100 is not set
1016# CONFIG_DVB_CX24116 is not set 1050# CONFIG_DVB_CX24116 is not set
@@ -1051,11 +1085,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1051# CONFIG_DVB_OR51132 is not set 1085# CONFIG_DVB_OR51132 is not set
1052# CONFIG_DVB_BCM3510 is not set 1086# CONFIG_DVB_BCM3510 is not set
1053# CONFIG_DVB_LGDT330X is not set 1087# CONFIG_DVB_LGDT330X is not set
1088# CONFIG_DVB_LGDT3304 is not set
1054# CONFIG_DVB_S5H1409 is not set 1089# CONFIG_DVB_S5H1409 is not set
1055# CONFIG_DVB_AU8522 is not set 1090# CONFIG_DVB_AU8522 is not set
1056# CONFIG_DVB_S5H1411 is not set 1091# CONFIG_DVB_S5H1411 is not set
1057 1092
1058# 1093#
1094# ISDB-T (terrestrial) frontends
1095#
1096# CONFIG_DVB_S921 is not set
1097
1098#
1059# Digital terrestrial only tuners/PLL 1099# Digital terrestrial only tuners/PLL
1060# 1100#
1061# CONFIG_DVB_PLL is not set 1101# CONFIG_DVB_PLL is not set
@@ -1108,6 +1148,7 @@ CONFIG_SND_OSSEMUL=y
1108CONFIG_SND_MIXER_OSS=y 1148CONFIG_SND_MIXER_OSS=y
1109CONFIG_SND_PCM_OSS=y 1149CONFIG_SND_PCM_OSS=y
1110CONFIG_SND_PCM_OSS_PLUGINS=y 1150CONFIG_SND_PCM_OSS_PLUGINS=y
1151# CONFIG_SND_HRTIMER is not set
1111# CONFIG_SND_DYNAMIC_MINORS is not set 1152# CONFIG_SND_DYNAMIC_MINORS is not set
1112# CONFIG_SND_SUPPORT_OLD_API is not set 1153# CONFIG_SND_SUPPORT_OLD_API is not set
1113CONFIG_SND_VERBOSE_PROCFS=y 1154CONFIG_SND_VERBOSE_PROCFS=y
@@ -1210,11 +1251,9 @@ CONFIG_HID_COMPAT=y
1210CONFIG_HID_A4TECH=y 1251CONFIG_HID_A4TECH=y
1211CONFIG_HID_APPLE=y 1252CONFIG_HID_APPLE=y
1212CONFIG_HID_BELKIN=y 1253CONFIG_HID_BELKIN=y
1213CONFIG_HID_BRIGHT=y
1214CONFIG_HID_CHERRY=y 1254CONFIG_HID_CHERRY=y
1215CONFIG_HID_CHICONY=y 1255CONFIG_HID_CHICONY=y
1216CONFIG_HID_CYPRESS=y 1256CONFIG_HID_CYPRESS=y
1217CONFIG_HID_DELL=y
1218CONFIG_HID_EZKEY=y 1257CONFIG_HID_EZKEY=y
1219CONFIG_HID_GYRATION=y 1258CONFIG_HID_GYRATION=y
1220CONFIG_HID_LOGITECH=y 1259CONFIG_HID_LOGITECH=y
@@ -1222,12 +1261,15 @@ CONFIG_HID_LOGITECH=y
1222# CONFIG_LOGIRUMBLEPAD2_FF is not set 1261# CONFIG_LOGIRUMBLEPAD2_FF is not set
1223CONFIG_HID_MICROSOFT=y 1262CONFIG_HID_MICROSOFT=y
1224CONFIG_HID_MONTEREY=y 1263CONFIG_HID_MONTEREY=y
1264# CONFIG_HID_NTRIG is not set
1225CONFIG_HID_PANTHERLORD=y 1265CONFIG_HID_PANTHERLORD=y
1226# CONFIG_PANTHERLORD_FF is not set 1266# CONFIG_PANTHERLORD_FF is not set
1227CONFIG_HID_PETALYNX=y 1267CONFIG_HID_PETALYNX=y
1228CONFIG_HID_SAMSUNG=y 1268CONFIG_HID_SAMSUNG=y
1229CONFIG_HID_SONY=y 1269CONFIG_HID_SONY=y
1230CONFIG_HID_SUNPLUS=y 1270CONFIG_HID_SUNPLUS=y
1271# CONFIG_GREENASIA_FF is not set
1272# CONFIG_HID_TOPSEED is not set
1231CONFIG_THRUSTMASTER_FF=m 1273CONFIG_THRUSTMASTER_FF=m
1232CONFIG_ZEROPLUS_FF=m 1274CONFIG_ZEROPLUS_FF=m
1233CONFIG_USB_SUPPORT=y 1275CONFIG_USB_SUPPORT=y
@@ -1260,6 +1302,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1260# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1302# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1261CONFIG_USB_EHCI_FSL=y 1303CONFIG_USB_EHCI_FSL=y
1262CONFIG_USB_EHCI_HCD_PPC_OF=y 1304CONFIG_USB_EHCI_HCD_PPC_OF=y
1305# CONFIG_USB_OXU210HP_HCD is not set
1263# CONFIG_USB_ISP116X_HCD is not set 1306# CONFIG_USB_ISP116X_HCD is not set
1264# CONFIG_USB_ISP1760_HCD is not set 1307# CONFIG_USB_ISP1760_HCD is not set
1265CONFIG_USB_OHCI_HCD=y 1308CONFIG_USB_OHCI_HCD=y
@@ -1286,18 +1329,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1286# CONFIG_USB_TMC is not set 1329# CONFIG_USB_TMC is not set
1287 1330
1288# 1331#
1289# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1332# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1290# 1333#
1291 1334
1292# 1335#
1293# may also be needed; see USB_STORAGE Help for more information 1336# see USB_STORAGE Help for more information
1294# 1337#
1295CONFIG_USB_STORAGE=y 1338CONFIG_USB_STORAGE=y
1296# CONFIG_USB_STORAGE_DEBUG is not set 1339# CONFIG_USB_STORAGE_DEBUG is not set
1297# CONFIG_USB_STORAGE_DATAFAB is not set 1340# CONFIG_USB_STORAGE_DATAFAB is not set
1298# CONFIG_USB_STORAGE_FREECOM is not set 1341# CONFIG_USB_STORAGE_FREECOM is not set
1299# CONFIG_USB_STORAGE_ISD200 is not set 1342# CONFIG_USB_STORAGE_ISD200 is not set
1300# CONFIG_USB_STORAGE_DPCM is not set
1301# CONFIG_USB_STORAGE_USBAT is not set 1343# CONFIG_USB_STORAGE_USBAT is not set
1302# CONFIG_USB_STORAGE_SDDR09 is not set 1344# CONFIG_USB_STORAGE_SDDR09 is not set
1303# CONFIG_USB_STORAGE_SDDR55 is not set 1345# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1345,6 +1387,11 @@ CONFIG_USB_STORAGE=y
1345# CONFIG_USB_ISIGHTFW is not set 1387# CONFIG_USB_ISIGHTFW is not set
1346# CONFIG_USB_VST is not set 1388# CONFIG_USB_VST is not set
1347# CONFIG_USB_GADGET is not set 1389# CONFIG_USB_GADGET is not set
1390
1391#
1392# OTG and related infrastructure
1393#
1394# CONFIG_USB_GPIO_VBUS is not set
1348# CONFIG_UWB is not set 1395# CONFIG_UWB is not set
1349# CONFIG_MMC is not set 1396# CONFIG_MMC is not set
1350# CONFIG_MEMSTICK is not set 1397# CONFIG_MEMSTICK is not set
@@ -1389,6 +1436,7 @@ CONFIG_RTC_INTF_DEV=y
1389# CONFIG_RTC_DRV_M41T80 is not set 1436# CONFIG_RTC_DRV_M41T80 is not set
1390# CONFIG_RTC_DRV_S35390A is not set 1437# CONFIG_RTC_DRV_S35390A is not set
1391# CONFIG_RTC_DRV_FM3130 is not set 1438# CONFIG_RTC_DRV_FM3130 is not set
1439# CONFIG_RTC_DRV_RX8581 is not set
1392 1440
1393# 1441#
1394# SPI RTC drivers 1442# SPI RTC drivers
@@ -1448,7 +1496,9 @@ CONFIG_FS_MBCACHE=y
1448# CONFIG_FS_POSIX_ACL is not set 1496# CONFIG_FS_POSIX_ACL is not set
1449CONFIG_FILE_LOCKING=y 1497CONFIG_FILE_LOCKING=y
1450# CONFIG_XFS_FS is not set 1498# CONFIG_XFS_FS is not set
1499# CONFIG_GFS2_FS is not set
1451# CONFIG_OCFS2_FS is not set 1500# CONFIG_OCFS2_FS is not set
1501# CONFIG_BTRFS_FS is not set
1452CONFIG_DNOTIFY=y 1502CONFIG_DNOTIFY=y
1453CONFIG_INOTIFY=y 1503CONFIG_INOTIFY=y
1454CONFIG_INOTIFY_USER=y 1504CONFIG_INOTIFY_USER=y
@@ -1490,10 +1540,7 @@ CONFIG_TMPFS=y
1490# CONFIG_TMPFS_POSIX_ACL is not set 1540# CONFIG_TMPFS_POSIX_ACL is not set
1491# CONFIG_HUGETLB_PAGE is not set 1541# CONFIG_HUGETLB_PAGE is not set
1492# CONFIG_CONFIGFS_FS is not set 1542# CONFIG_CONFIGFS_FS is not set
1493 1543CONFIG_MISC_FILESYSTEMS=y
1494#
1495# Miscellaneous filesystems
1496#
1497CONFIG_ADFS_FS=m 1544CONFIG_ADFS_FS=m
1498# CONFIG_ADFS_FS_RW is not set 1545# CONFIG_ADFS_FS_RW is not set
1499CONFIG_AFFS_FS=m 1546CONFIG_AFFS_FS=m
@@ -1504,6 +1551,7 @@ CONFIG_BEFS_FS=m
1504CONFIG_BFS_FS=m 1551CONFIG_BFS_FS=m
1505CONFIG_EFS_FS=m 1552CONFIG_EFS_FS=m
1506CONFIG_CRAMFS=y 1553CONFIG_CRAMFS=y
1554# CONFIG_SQUASHFS is not set
1507CONFIG_VXFS_FS=m 1555CONFIG_VXFS_FS=m
1508# CONFIG_MINIX_FS is not set 1556# CONFIG_MINIX_FS is not set
1509# CONFIG_OMFS_FS is not set 1557# CONFIG_OMFS_FS is not set
@@ -1605,6 +1653,7 @@ CONFIG_NLS_UTF8=m
1605# Library routines 1653# Library routines
1606# 1654#
1607CONFIG_BITREVERSE=y 1655CONFIG_BITREVERSE=y
1656CONFIG_GENERIC_FIND_LAST_BIT=y
1608# CONFIG_CRC_CCITT is not set 1657# CONFIG_CRC_CCITT is not set
1609# CONFIG_CRC16 is not set 1658# CONFIG_CRC16 is not set
1610CONFIG_CRC_T10DIF=y 1659CONFIG_CRC_T10DIF=y
@@ -1656,6 +1705,7 @@ CONFIG_DEBUG_INFO=y
1656# CONFIG_DEBUG_MEMORY_INIT is not set 1705# CONFIG_DEBUG_MEMORY_INIT is not set
1657# CONFIG_DEBUG_LIST is not set 1706# CONFIG_DEBUG_LIST is not set
1658# CONFIG_DEBUG_SG is not set 1707# CONFIG_DEBUG_SG is not set
1708# CONFIG_DEBUG_NOTIFIERS is not set
1659# CONFIG_BOOT_PRINTK_DELAY is not set 1709# CONFIG_BOOT_PRINTK_DELAY is not set
1660# CONFIG_RCU_TORTURE_TEST is not set 1710# CONFIG_RCU_TORTURE_TEST is not set
1661# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1711# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1665,6 +1715,8 @@ CONFIG_DEBUG_INFO=y
1665# CONFIG_LATENCYTOP is not set 1715# CONFIG_LATENCYTOP is not set
1666CONFIG_SYSCTL_SYSCALL_CHECK=y 1716CONFIG_SYSCTL_SYSCALL_CHECK=y
1667CONFIG_HAVE_FUNCTION_TRACER=y 1717CONFIG_HAVE_FUNCTION_TRACER=y
1718CONFIG_HAVE_DYNAMIC_FTRACE=y
1719CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1668 1720
1669# 1721#
1670# Tracers 1722# Tracers
@@ -1673,11 +1725,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1673# CONFIG_SCHED_TRACER is not set 1725# CONFIG_SCHED_TRACER is not set
1674# CONFIG_CONTEXT_SWITCH_TRACER is not set 1726# CONFIG_CONTEXT_SWITCH_TRACER is not set
1675# CONFIG_BOOT_TRACER is not set 1727# CONFIG_BOOT_TRACER is not set
1728# CONFIG_TRACE_BRANCH_PROFILING is not set
1676# CONFIG_STACK_TRACER is not set 1729# CONFIG_STACK_TRACER is not set
1677# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1730# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1678# CONFIG_SAMPLES is not set 1731# CONFIG_SAMPLES is not set
1679CONFIG_HAVE_ARCH_KGDB=y 1732CONFIG_HAVE_ARCH_KGDB=y
1680# CONFIG_KGDB is not set 1733# CONFIG_KGDB is not set
1734CONFIG_PRINT_STACK_DEPTH=64
1681# CONFIG_DEBUG_STACKOVERFLOW is not set 1735# CONFIG_DEBUG_STACKOVERFLOW is not set
1682# CONFIG_DEBUG_STACK_USAGE is not set 1736# CONFIG_DEBUG_STACK_USAGE is not set
1683# CONFIG_DEBUG_PAGEALLOC is not set 1737# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1704,11 +1758,15 @@ CONFIG_CRYPTO=y
1704# 1758#
1705# CONFIG_CRYPTO_FIPS is not set 1759# CONFIG_CRYPTO_FIPS is not set
1706CONFIG_CRYPTO_ALGAPI=y 1760CONFIG_CRYPTO_ALGAPI=y
1707CONFIG_CRYPTO_AEAD=y 1761CONFIG_CRYPTO_ALGAPI2=y
1762CONFIG_CRYPTO_AEAD2=y
1708CONFIG_CRYPTO_BLKCIPHER=y 1763CONFIG_CRYPTO_BLKCIPHER=y
1764CONFIG_CRYPTO_BLKCIPHER2=y
1709CONFIG_CRYPTO_HASH=y 1765CONFIG_CRYPTO_HASH=y
1710CONFIG_CRYPTO_RNG=y 1766CONFIG_CRYPTO_HASH2=y
1767CONFIG_CRYPTO_RNG2=y
1711CONFIG_CRYPTO_MANAGER=y 1768CONFIG_CRYPTO_MANAGER=y
1769CONFIG_CRYPTO_MANAGER2=y
1712# CONFIG_CRYPTO_GF128MUL is not set 1770# CONFIG_CRYPTO_GF128MUL is not set
1713# CONFIG_CRYPTO_NULL is not set 1771# CONFIG_CRYPTO_NULL is not set
1714# CONFIG_CRYPTO_CRYPTD is not set 1772# CONFIG_CRYPTO_CRYPTD is not set
@@ -1742,7 +1800,7 @@ CONFIG_CRYPTO_HMAC=y
1742# 1800#
1743# Digest 1801# Digest
1744# 1802#
1745# CONFIG_CRYPTO_CRC32C is not set 1803CONFIG_CRYPTO_CRC32C=m
1746# CONFIG_CRYPTO_MD4 is not set 1804# CONFIG_CRYPTO_MD4 is not set
1747CONFIG_CRYPTO_MD5=y 1805CONFIG_CRYPTO_MD5=y
1748# CONFIG_CRYPTO_MICHAEL_MIC is not set 1806# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index 8272b1ac71f9..1793d08e9c01 100644
--- a/arch/powerpc/configs/mpc866_ads_defconfig
+++ b/arch/powerpc/configs/mpc866_ads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:43 2008 4# Mon Jan 26 15:35:38 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_8xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_8xx=y 17CONFIG_8xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -69,12 +70,12 @@ CONFIG_SYSVIPC_SYSCTL=y
69# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
70# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
71CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
72# CONFIG_CGROUPS is not set
73CONFIG_GROUP_SCHED=y 73CONFIG_GROUP_SCHED=y
74# CONFIG_FAIR_GROUP_SCHED is not set 74# CONFIG_FAIR_GROUP_SCHED is not set
75# CONFIG_RT_GROUP_SCHED is not set 75# CONFIG_RT_GROUP_SCHED is not set
76CONFIG_USER_SCHED=y 76CONFIG_USER_SCHED=y
77# CONFIG_CGROUP_SCHED is not set 77# CONFIG_CGROUP_SCHED is not set
78# CONFIG_CGROUPS is not set
78CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
79CONFIG_SYSFS_DEPRECATED_V2=y 80CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
@@ -106,7 +107,6 @@ CONFIG_SLUB_DEBUG=y
106CONFIG_SLUB=y 107CONFIG_SLUB=y
107# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set 109# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
112CONFIG_HAVE_IOREMAP_PROT=y 112CONFIG_HAVE_IOREMAP_PROT=y
@@ -117,13 +117,11 @@ CONFIG_HAVE_CLK=y
117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set
121CONFIG_BASE_SMALL=1 120CONFIG_BASE_SMALL=1
122# CONFIG_MODULES is not set 121# CONFIG_MODULES is not set
123CONFIG_BLOCK=y 122CONFIG_BLOCK=y
124# CONFIG_LBD is not set 123# CONFIG_LBD is not set
125# CONFIG_BLK_DEV_IO_TRACE is not set 124# CONFIG_BLK_DEV_IO_TRACE is not set
126# CONFIG_LSF is not set
127# CONFIG_BLK_DEV_BSG is not set 125# CONFIG_BLK_DEV_BSG is not set
128# CONFIG_BLK_DEV_INTEGRITY is not set 126# CONFIG_BLK_DEV_INTEGRITY is not set
129 127
@@ -140,6 +138,10 @@ CONFIG_DEFAULT_AS=y
140# CONFIG_DEFAULT_NOOP is not set 138# CONFIG_DEFAULT_NOOP is not set
141CONFIG_DEFAULT_IOSCHED="anticipatory" 139CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y 140CONFIG_CLASSIC_RCU=y
141# CONFIG_TREE_RCU is not set
142# CONFIG_PREEMPT_RCU is not set
143# CONFIG_TREE_RCU_TRACE is not set
144# CONFIG_PREEMPT_RCU_TRACE is not set
143# CONFIG_FREEZER is not set 145# CONFIG_FREEZER is not set
144 146
145# 147#
@@ -185,6 +187,7 @@ CONFIG_NO_UCODE_PATCH=y
185# CONFIG_QUICC_ENGINE is not set 187# CONFIG_QUICC_ENGINE is not set
186# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
187CONFIG_CPM=y 189CONFIG_CPM=y
190# CONFIG_SIMPLE_GPIO is not set
188 191
189# 192#
190# Kernel options 193# Kernel options
@@ -209,6 +212,7 @@ CONFIG_BINFMT_ELF=y
209# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
210CONFIG_MATH_EMULATION=y 213CONFIG_MATH_EMULATION=y
211# CONFIG_IOMMU_HELPER is not set 214# CONFIG_IOMMU_HELPER is not set
215CONFIG_PPC_NEED_DMA_SYNC_OPS=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
213CONFIG_ARCH_HAS_WALK_MEMORY=y 217CONFIG_ARCH_HAS_WALK_MEMORY=y
214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -223,12 +227,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
223CONFIG_PAGEFLAGS_EXTENDED=y 227CONFIG_PAGEFLAGS_EXTENDED=y
224CONFIG_SPLIT_PTLOCK_CPUS=4 228CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y 229CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set
227# CONFIG_PHYS_ADDR_T_64BIT is not set 230# CONFIG_PHYS_ADDR_T_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
230CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
231CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set
232CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
233# CONFIG_PROC_DEVICETREE is not set 239# CONFIG_PROC_DEVICETREE is not set
234# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +275,7 @@ CONFIG_NET=y
269# 275#
270# Networking options 276# Networking options
271# 277#
278CONFIG_COMPAT_NET_DEV_OPS=y
272CONFIG_PACKET=y 279CONFIG_PACKET=y
273# CONFIG_PACKET_MMAP is not set 280# CONFIG_PACKET_MMAP is not set
274CONFIG_UNIX=y 281CONFIG_UNIX=y
@@ -325,6 +332,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
325# CONFIG_ECONET is not set 332# CONFIG_ECONET is not set
326# CONFIG_WAN_ROUTER is not set 333# CONFIG_WAN_ROUTER is not set
327# CONFIG_NET_SCHED is not set 334# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set
328 336
329# 337#
330# Network testing 338# Network testing
@@ -340,8 +348,9 @@ CONFIG_WIRELESS=y
340# CONFIG_CFG80211 is not set 348# CONFIG_CFG80211 is not set
341CONFIG_WIRELESS_OLD_REGULATORY=y 349CONFIG_WIRELESS_OLD_REGULATORY=y
342# CONFIG_WIRELESS_EXT is not set 350# CONFIG_WIRELESS_EXT is not set
351# CONFIG_LIB80211 is not set
343# CONFIG_MAC80211 is not set 352# CONFIG_MAC80211 is not set
344# CONFIG_IEEE80211 is not set 353# CONFIG_WIMAX is not set
345# CONFIG_RFKILL is not set 354# CONFIG_RFKILL is not set
346# CONFIG_NET_9P is not set 355# CONFIG_NET_9P is not set
347 356
@@ -372,6 +381,7 @@ CONFIG_BLK_DEV_LOOP=y
372CONFIG_MISC_DEVICES=y 381CONFIG_MISC_DEVICES=y
373# CONFIG_EEPROM_93CX6 is not set 382# CONFIG_EEPROM_93CX6 is not set
374# CONFIG_ENCLOSURE_SERVICES is not set 383# CONFIG_ENCLOSURE_SERVICES is not set
384# CONFIG_C2PORT is not set
375CONFIG_HAVE_IDE=y 385CONFIG_HAVE_IDE=y
376# CONFIG_IDE is not set 386# CONFIG_IDE is not set
377 387
@@ -407,6 +417,9 @@ CONFIG_PHYLIB=y
407# CONFIG_BROADCOM_PHY is not set 417# CONFIG_BROADCOM_PHY is not set
408# CONFIG_ICPLUS_PHY is not set 418# CONFIG_ICPLUS_PHY is not set
409# CONFIG_REALTEK_PHY is not set 419# CONFIG_REALTEK_PHY is not set
420# CONFIG_NATIONAL_PHY is not set
421# CONFIG_STE10XP is not set
422# CONFIG_LSI_ET1011C_PHY is not set
410CONFIG_FIXED_PHY=y 423CONFIG_FIXED_PHY=y
411# CONFIG_MDIO_BITBANG is not set 424# CONFIG_MDIO_BITBANG is not set
412CONFIG_NET_ETHERNET=y 425CONFIG_NET_ETHERNET=y
@@ -433,6 +446,10 @@ CONFIG_NETDEV_10000=y
433# CONFIG_WLAN_PRE80211 is not set 446# CONFIG_WLAN_PRE80211 is not set
434# CONFIG_WLAN_80211 is not set 447# CONFIG_WLAN_80211 is not set
435# CONFIG_IWLWIFI_LEDS is not set 448# CONFIG_IWLWIFI_LEDS is not set
449
450#
451# Enable WiMAX (Networking options) to see the WiMAX drivers
452#
436# CONFIG_WAN is not set 453# CONFIG_WAN is not set
437# CONFIG_PPP is not set 454# CONFIG_PPP is not set
438# CONFIG_SLIP is not set 455# CONFIG_SLIP is not set
@@ -518,7 +535,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
518CONFIG_SERIAL_CPM=y 535CONFIG_SERIAL_CPM=y
519CONFIG_SERIAL_CPM_CONSOLE=y 536CONFIG_SERIAL_CPM_CONSOLE=y
520CONFIG_UNIX98_PTYS=y 537CONFIG_UNIX98_PTYS=y
538# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
521# CONFIG_LEGACY_PTYS is not set 539# CONFIG_LEGACY_PTYS is not set
540# CONFIG_HVC_UDBG is not set
522# CONFIG_IPMI_HANDLER is not set 541# CONFIG_IPMI_HANDLER is not set
523CONFIG_HW_RANDOM=y 542CONFIG_HW_RANDOM=y
524# CONFIG_NVRAM is not set 543# CONFIG_NVRAM is not set
@@ -549,11 +568,11 @@ CONFIG_HWMON=y
549# CONFIG_THERMAL is not set 568# CONFIG_THERMAL is not set
550# CONFIG_THERMAL_HWMON is not set 569# CONFIG_THERMAL_HWMON is not set
551# CONFIG_WATCHDOG is not set 570# CONFIG_WATCHDOG is not set
571CONFIG_SSB_POSSIBLE=y
552 572
553# 573#
554# Sonics Silicon Backplane 574# Sonics Silicon Backplane
555# 575#
556CONFIG_SSB_POSSIBLE=y
557# CONFIG_SSB is not set 576# CONFIG_SSB is not set
558 577
559# 578#
@@ -563,14 +582,7 @@ CONFIG_SSB_POSSIBLE=y
563# CONFIG_MFD_SM501 is not set 582# CONFIG_MFD_SM501 is not set
564# CONFIG_HTC_PASIC3 is not set 583# CONFIG_HTC_PASIC3 is not set
565# CONFIG_MFD_TMIO is not set 584# CONFIG_MFD_TMIO is not set
566
567#
568# Voltage and Current regulators
569#
570# CONFIG_REGULATOR is not set 585# CONFIG_REGULATOR is not set
571# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
572# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
573# CONFIG_REGULATOR_BQ24022 is not set
574 586
575# 587#
576# Multimedia devices 588# Multimedia devices
@@ -623,9 +635,13 @@ CONFIG_USB_SUPPORT=y
623# 635#
624 636
625# 637#
626# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 638# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
627# 639#
628# CONFIG_USB_GADGET is not set 640# CONFIG_USB_GADGET is not set
641
642#
643# OTG and related infrastructure
644#
629# CONFIG_MMC is not set 645# CONFIG_MMC is not set
630# CONFIG_MEMSTICK is not set 646# CONFIG_MEMSTICK is not set
631# CONFIG_NEW_LEDS is not set 647# CONFIG_NEW_LEDS is not set
@@ -657,6 +673,7 @@ CONFIG_FS_MBCACHE=y
657CONFIG_FILE_LOCKING=y 673CONFIG_FILE_LOCKING=y
658# CONFIG_XFS_FS is not set 674# CONFIG_XFS_FS is not set
659# CONFIG_OCFS2_FS is not set 675# CONFIG_OCFS2_FS is not set
676# CONFIG_BTRFS_FS is not set
660CONFIG_DNOTIFY=y 677CONFIG_DNOTIFY=y
661CONFIG_INOTIFY=y 678CONFIG_INOTIFY=y
662CONFIG_INOTIFY_USER=y 679CONFIG_INOTIFY_USER=y
@@ -690,10 +707,7 @@ CONFIG_TMPFS=y
690# CONFIG_TMPFS_POSIX_ACL is not set 707# CONFIG_TMPFS_POSIX_ACL is not set
691# CONFIG_HUGETLB_PAGE is not set 708# CONFIG_HUGETLB_PAGE is not set
692# CONFIG_CONFIGFS_FS is not set 709# CONFIG_CONFIGFS_FS is not set
693 710CONFIG_MISC_FILESYSTEMS=y
694#
695# Miscellaneous filesystems
696#
697# CONFIG_ADFS_FS is not set 711# CONFIG_ADFS_FS is not set
698# CONFIG_AFFS_FS is not set 712# CONFIG_AFFS_FS is not set
699# CONFIG_HFS_FS is not set 713# CONFIG_HFS_FS is not set
@@ -702,6 +716,7 @@ CONFIG_TMPFS=y
702# CONFIG_BFS_FS is not set 716# CONFIG_BFS_FS is not set
703# CONFIG_EFS_FS is not set 717# CONFIG_EFS_FS is not set
704CONFIG_CRAMFS=y 718CONFIG_CRAMFS=y
719# CONFIG_SQUASHFS is not set
705# CONFIG_VXFS_FS is not set 720# CONFIG_VXFS_FS is not set
706# CONFIG_MINIX_FS is not set 721# CONFIG_MINIX_FS is not set
707# CONFIG_OMFS_FS is not set 722# CONFIG_OMFS_FS is not set
@@ -758,6 +773,7 @@ CONFIG_MSDOS_PARTITION=y
758# Library routines 773# Library routines
759# 774#
760CONFIG_BITREVERSE=y 775CONFIG_BITREVERSE=y
776CONFIG_GENERIC_FIND_LAST_BIT=y
761CONFIG_CRC_CCITT=y 777CONFIG_CRC_CCITT=y
762# CONFIG_CRC16 is not set 778# CONFIG_CRC16 is not set
763# CONFIG_CRC_T10DIF is not set 779# CONFIG_CRC_T10DIF is not set
@@ -790,6 +806,8 @@ CONFIG_FRAME_WARN=1024
790# CONFIG_RCU_CPU_STALL_DETECTOR is not set 806# CONFIG_RCU_CPU_STALL_DETECTOR is not set
791# CONFIG_LATENCYTOP is not set 807# CONFIG_LATENCYTOP is not set
792CONFIG_HAVE_FUNCTION_TRACER=y 808CONFIG_HAVE_FUNCTION_TRACER=y
809CONFIG_HAVE_DYNAMIC_FTRACE=y
810CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
793 811
794# 812#
795# Tracers 813# Tracers
@@ -797,6 +815,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
797# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 815# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
798# CONFIG_SAMPLES is not set 816# CONFIG_SAMPLES is not set
799CONFIG_HAVE_ARCH_KGDB=y 817CONFIG_HAVE_ARCH_KGDB=y
818CONFIG_PRINT_STACK_DEPTH=64
800# CONFIG_IRQSTACKS is not set 819# CONFIG_IRQSTACKS is not set
801# CONFIG_PPC_EARLY_DEBUG is not set 820# CONFIG_PPC_EARLY_DEBUG is not set
802 821
@@ -814,6 +833,7 @@ CONFIG_CRYPTO=y
814# 833#
815# CONFIG_CRYPTO_FIPS is not set 834# CONFIG_CRYPTO_FIPS is not set
816# CONFIG_CRYPTO_MANAGER is not set 835# CONFIG_CRYPTO_MANAGER is not set
836# CONFIG_CRYPTO_MANAGER2 is not set
817# CONFIG_CRYPTO_GF128MUL is not set 837# CONFIG_CRYPTO_GF128MUL is not set
818# CONFIG_CRYPTO_NULL is not set 838# CONFIG_CRYPTO_NULL is not set
819# CONFIG_CRYPTO_CRYPTD is not set 839# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig
index 1736bbc281ec..adc756e1f252 100644
--- a/arch/powerpc/configs/mpc86xx_defconfig
+++ b/arch/powerpc/configs/mpc86xx_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:44 2008 4# Mon Jan 26 15:35:39 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -41,11 +41,12 @@ CONFIG_ARCH_HAS_ILOG2_U32=y
41CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
42CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
43CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
44# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
45CONFIG_PPC=y 46CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 48CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 49CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 50CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 51CONFIG_PPC_OF=y
51CONFIG_OF=y 52CONFIG_OF=y
@@ -78,12 +79,12 @@ CONFIG_AUDIT=y
78CONFIG_IKCONFIG=y 79CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 80CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 81CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 82CONFIG_GROUP_SCHED=y
83# CONFIG_FAIR_GROUP_SCHED is not set 83# CONFIG_FAIR_GROUP_SCHED is not set
84# CONFIG_RT_GROUP_SCHED is not set 84# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 85CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 86# CONFIG_CGROUP_SCHED is not set
87# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 88CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 89CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_RELAY is not set 90# CONFIG_RELAY is not set
@@ -96,6 +97,7 @@ CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 97CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 98CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 99CONFIG_KALLSYMS_ALL=y
100CONFIG_KALLSYMS_STRIP_GENERATED=y
99CONFIG_KALLSYMS_EXTRA_PASS=y 101CONFIG_KALLSYMS_EXTRA_PASS=y
100CONFIG_HOTPLUG=y 102CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 103CONFIG_PRINTK=y
@@ -118,7 +120,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 120CONFIG_SLUB=y
119# CONFIG_SLOB is not set 121# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 122# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 123CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 124# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -130,7 +131,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
133# CONFIG_TINY_SHMEM is not set
134CONFIG_BASE_SMALL=0 134CONFIG_BASE_SMALL=0
135CONFIG_MODULES=y 135CONFIG_MODULES=y
136# CONFIG_MODULE_FORCE_LOAD is not set 136# CONFIG_MODULE_FORCE_LOAD is not set
@@ -138,12 +138,10 @@ CONFIG_MODULE_UNLOAD=y
138CONFIG_MODULE_FORCE_UNLOAD=y 138CONFIG_MODULE_FORCE_UNLOAD=y
139CONFIG_MODVERSIONS=y 139CONFIG_MODVERSIONS=y
140# CONFIG_MODULE_SRCVERSION_ALL is not set 140# CONFIG_MODULE_SRCVERSION_ALL is not set
141CONFIG_KMOD=y
142CONFIG_STOP_MACHINE=y 141CONFIG_STOP_MACHINE=y
143CONFIG_BLOCK=y 142CONFIG_BLOCK=y
144CONFIG_LBD=y 143CONFIG_LBD=y
145# CONFIG_BLK_DEV_IO_TRACE is not set 144# CONFIG_BLK_DEV_IO_TRACE is not set
146# CONFIG_LSF is not set
147# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set 146# CONFIG_BLK_DEV_INTEGRITY is not set
149 147
@@ -160,6 +158,10 @@ CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 158# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 159CONFIG_DEFAULT_IOSCHED="cfq"
162CONFIG_CLASSIC_RCU=y 160CONFIG_CLASSIC_RCU=y
161# CONFIG_TREE_RCU is not set
162# CONFIG_PREEMPT_RCU is not set
163# CONFIG_TREE_RCU_TRACE is not set
164# CONFIG_PREEMPT_RCU_TRACE is not set
163# CONFIG_FREEZER is not set 165# CONFIG_FREEZER is not set
164 166
165# 167#
@@ -199,6 +201,7 @@ CONFIG_PPC_I8259=y
199# CONFIG_QUICC_ENGINE is not set 201# CONFIG_QUICC_ENGINE is not set
200CONFIG_FSL_ULI1575=y 202CONFIG_FSL_ULI1575=y
201# CONFIG_MPC8xxx_GPIO is not set 203# CONFIG_MPC8xxx_GPIO is not set
204# CONFIG_SIMPLE_GPIO is not set
202 205
203# 206#
204# Kernel options 207# Kernel options
@@ -226,6 +229,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
226CONFIG_ARCH_HAS_WALK_MEMORY=y 229CONFIG_ARCH_HAS_WALK_MEMORY=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set 231# CONFIG_KEXEC is not set
232# CONFIG_CRASH_DUMP is not set
229# CONFIG_IRQ_ALL_CPUS is not set 233# CONFIG_IRQ_ALL_CPUS is not set
230CONFIG_ARCH_FLATMEM_ENABLE=y 234CONFIG_ARCH_FLATMEM_ENABLE=y
231CONFIG_ARCH_POPULATES_NODE_MAP=y 235CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -238,12 +242,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
238CONFIG_PAGEFLAGS_EXTENDED=y 242CONFIG_PAGEFLAGS_EXTENDED=y
239CONFIG_SPLIT_PTLOCK_CPUS=4 243CONFIG_SPLIT_PTLOCK_CPUS=4
240CONFIG_MIGRATION=y 244CONFIG_MIGRATION=y
241# CONFIG_RESOURCES_64BIT is not set
242# CONFIG_PHYS_ADDR_T_64BIT is not set 245# CONFIG_PHYS_ADDR_T_64BIT is not set
243CONFIG_ZONE_DMA_FLAG=1 246CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 248CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 249CONFIG_UNEVICTABLE_LRU=y
250CONFIG_PPC_4K_PAGES=y
251# CONFIG_PPC_16K_PAGES is not set
252# CONFIG_PPC_64K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=11 253CONFIG_FORCE_MAX_ZONEORDER=11
248CONFIG_PROC_DEVICETREE=y 254CONFIG_PROC_DEVICETREE=y
249# CONFIG_CMDLINE_BOOL is not set 255# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +275,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
269# CONFIG_PCI_MSI is not set 275# CONFIG_PCI_MSI is not set
270# CONFIG_PCI_LEGACY is not set 276# CONFIG_PCI_LEGACY is not set
271# CONFIG_PCI_DEBUG is not set 277# CONFIG_PCI_DEBUG is not set
278# CONFIG_PCI_STUB is not set
272# CONFIG_PCCARD is not set 279# CONFIG_PCCARD is not set
273# CONFIG_HOTPLUG_PCI is not set 280# CONFIG_HOTPLUG_PCI is not set
274CONFIG_HAS_RAPIDIO=y 281CONFIG_HAS_RAPIDIO=y
@@ -292,6 +299,7 @@ CONFIG_NET=y
292# 299#
293# Networking options 300# Networking options
294# 301#
302CONFIG_COMPAT_NET_DEV_OPS=y
295CONFIG_PACKET=y 303CONFIG_PACKET=y
296# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
297CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -380,6 +388,7 @@ CONFIG_SCTP_HMAC_MD5=y
380# CONFIG_ECONET is not set 388# CONFIG_ECONET is not set
381# CONFIG_WAN_ROUTER is not set 389# CONFIG_WAN_ROUTER is not set
382# CONFIG_NET_SCHED is not set 390# CONFIG_NET_SCHED is not set
391# CONFIG_DCB is not set
383 392
384# 393#
385# Network testing 394# Network testing
@@ -396,8 +405,9 @@ CONFIG_WIRELESS=y
396# CONFIG_CFG80211 is not set 405# CONFIG_CFG80211 is not set
397CONFIG_WIRELESS_OLD_REGULATORY=y 406CONFIG_WIRELESS_OLD_REGULATORY=y
398# CONFIG_WIRELESS_EXT is not set 407# CONFIG_WIRELESS_EXT is not set
408# CONFIG_LIB80211 is not set
399# CONFIG_MAC80211 is not set 409# CONFIG_MAC80211 is not set
400# CONFIG_IEEE80211 is not set 410# CONFIG_WIMAX is not set
401# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
402# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
403 413
@@ -420,6 +430,7 @@ CONFIG_EXTRA_FIRMWARE=""
420# CONFIG_CONNECTOR is not set 430# CONFIG_CONNECTOR is not set
421# CONFIG_MTD is not set 431# CONFIG_MTD is not set
422CONFIG_OF_DEVICE=y 432CONFIG_OF_DEVICE=y
433CONFIG_OF_GPIO=y
423CONFIG_OF_I2C=y 434CONFIG_OF_I2C=y
424# CONFIG_PARPORT is not set 435# CONFIG_PARPORT is not set
425CONFIG_BLK_DEV=y 436CONFIG_BLK_DEV=y
@@ -446,8 +457,10 @@ CONFIG_MISC_DEVICES=y
446# CONFIG_EEPROM_93CX6 is not set 457# CONFIG_EEPROM_93CX6 is not set
447# CONFIG_SGI_IOC4 is not set 458# CONFIG_SGI_IOC4 is not set
448# CONFIG_TIFM_CORE is not set 459# CONFIG_TIFM_CORE is not set
460# CONFIG_ICS932S401 is not set
449# CONFIG_ENCLOSURE_SERVICES is not set 461# CONFIG_ENCLOSURE_SERVICES is not set
450# CONFIG_HP_ILO is not set 462# CONFIG_HP_ILO is not set
463# CONFIG_C2PORT is not set
451CONFIG_HAVE_IDE=y 464CONFIG_HAVE_IDE=y
452# CONFIG_IDE is not set 465# CONFIG_IDE is not set
453 466
@@ -491,6 +504,7 @@ CONFIG_SCSI_WAIT_SCAN=m
491# CONFIG_SCSI_SRP_ATTRS is not set 504# CONFIG_SCSI_SRP_ATTRS is not set
492CONFIG_SCSI_LOWLEVEL=y 505CONFIG_SCSI_LOWLEVEL=y
493# CONFIG_ISCSI_TCP is not set 506# CONFIG_ISCSI_TCP is not set
507# CONFIG_SCSI_CXGB3_ISCSI is not set
494# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 508# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
495# CONFIG_SCSI_3W_9XXX is not set 509# CONFIG_SCSI_3W_9XXX is not set
496# CONFIG_SCSI_ACARD is not set 510# CONFIG_SCSI_ACARD is not set
@@ -507,6 +521,8 @@ CONFIG_SCSI_LOWLEVEL=y
507# CONFIG_MEGARAID_SAS is not set 521# CONFIG_MEGARAID_SAS is not set
508# CONFIG_SCSI_HPTIOP is not set 522# CONFIG_SCSI_HPTIOP is not set
509# CONFIG_SCSI_BUSLOGIC is not set 523# CONFIG_SCSI_BUSLOGIC is not set
524# CONFIG_LIBFC is not set
525# CONFIG_FCOE is not set
510# CONFIG_SCSI_DMX3191D is not set 526# CONFIG_SCSI_DMX3191D is not set
511# CONFIG_SCSI_EATA is not set 527# CONFIG_SCSI_EATA is not set
512# CONFIG_SCSI_FUTURE_DOMAIN is not set 528# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -626,6 +642,9 @@ CONFIG_VITESSE_PHY=y
626# CONFIG_BROADCOM_PHY is not set 642# CONFIG_BROADCOM_PHY is not set
627# CONFIG_ICPLUS_PHY is not set 643# CONFIG_ICPLUS_PHY is not set
628# CONFIG_REALTEK_PHY is not set 644# CONFIG_REALTEK_PHY is not set
645# CONFIG_NATIONAL_PHY is not set
646# CONFIG_STE10XP is not set
647# CONFIG_LSI_ET1011C_PHY is not set
629# CONFIG_FIXED_PHY is not set 648# CONFIG_FIXED_PHY is not set
630# CONFIG_MDIO_BITBANG is not set 649# CONFIG_MDIO_BITBANG is not set
631CONFIG_NET_ETHERNET=y 650CONFIG_NET_ETHERNET=y
@@ -671,6 +690,7 @@ CONFIG_GIANFAR=y
671# CONFIG_JME is not set 690# CONFIG_JME is not set
672CONFIG_NETDEV_10000=y 691CONFIG_NETDEV_10000=y
673# CONFIG_CHELSIO_T1 is not set 692# CONFIG_CHELSIO_T1 is not set
693CONFIG_CHELSIO_T3_DEPENDS=y
674# CONFIG_CHELSIO_T3 is not set 694# CONFIG_CHELSIO_T3 is not set
675# CONFIG_ENIC is not set 695# CONFIG_ENIC is not set
676# CONFIG_IXGBE is not set 696# CONFIG_IXGBE is not set
@@ -695,6 +715,10 @@ CONFIG_NETDEV_10000=y
695# CONFIG_IWLWIFI_LEDS is not set 715# CONFIG_IWLWIFI_LEDS is not set
696 716
697# 717#
718# Enable WiMAX (Networking options) to see the WiMAX drivers
719#
720
721#
698# USB Network Adapters 722# USB Network Adapters
699# 723#
700# CONFIG_USB_CATC is not set 724# CONFIG_USB_CATC is not set
@@ -786,8 +810,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
786# CONFIG_SERIAL_JSM is not set 810# CONFIG_SERIAL_JSM is not set
787# CONFIG_SERIAL_OF_PLATFORM is not set 811# CONFIG_SERIAL_OF_PLATFORM is not set
788CONFIG_UNIX98_PTYS=y 812CONFIG_UNIX98_PTYS=y
813# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
789CONFIG_LEGACY_PTYS=y 814CONFIG_LEGACY_PTYS=y
790CONFIG_LEGACY_PTY_COUNT=256 815CONFIG_LEGACY_PTY_COUNT=256
816# CONFIG_HVC_UDBG is not set
791# CONFIG_IPMI_HANDLER is not set 817# CONFIG_IPMI_HANDLER is not set
792# CONFIG_HW_RANDOM is not set 818# CONFIG_HW_RANDOM is not set
793CONFIG_NVRAM=y 819CONFIG_NVRAM=y
@@ -826,6 +852,7 @@ CONFIG_I2C_HELPER_AUTO=y
826# 852#
827# I2C system bus drivers (mostly embedded / system-on-chip) 853# I2C system bus drivers (mostly embedded / system-on-chip)
828# 854#
855# CONFIG_I2C_GPIO is not set
829CONFIG_I2C_MPC=y 856CONFIG_I2C_MPC=y
830# CONFIG_I2C_OCORES is not set 857# CONFIG_I2C_OCORES is not set
831# CONFIG_I2C_SIMTEC is not set 858# CONFIG_I2C_SIMTEC is not set
@@ -852,8 +879,8 @@ CONFIG_I2C_MPC=y
852# Miscellaneous I2C Chip support 879# Miscellaneous I2C Chip support
853# 880#
854# CONFIG_DS1682 is not set 881# CONFIG_DS1682 is not set
855# CONFIG_AT24 is not set 882# CONFIG_EEPROM_AT24 is not set
856CONFIG_SENSORS_EEPROM=y 883CONFIG_EEPROM_LEGACY=y
857# CONFIG_SENSORS_PCF8574 is not set 884# CONFIG_SENSORS_PCF8574 is not set
858# CONFIG_PCF8575 is not set 885# CONFIG_PCF8575 is not set
859# CONFIG_SENSORS_PCA9539 is not set 886# CONFIG_SENSORS_PCA9539 is not set
@@ -866,18 +893,42 @@ CONFIG_SENSORS_EEPROM=y
866# CONFIG_I2C_DEBUG_CHIP is not set 893# CONFIG_I2C_DEBUG_CHIP is not set
867# CONFIG_SPI is not set 894# CONFIG_SPI is not set
868CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 895CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
869# CONFIG_GPIOLIB is not set 896CONFIG_ARCH_REQUIRE_GPIOLIB=y
897CONFIG_GPIOLIB=y
898# CONFIG_DEBUG_GPIO is not set
899# CONFIG_GPIO_SYSFS is not set
900
901#
902# Memory mapped GPIO expanders:
903#
904# CONFIG_GPIO_XILINX is not set
905
906#
907# I2C GPIO expanders:
908#
909# CONFIG_GPIO_MAX732X is not set
910# CONFIG_GPIO_PCA953X is not set
911# CONFIG_GPIO_PCF857X is not set
912
913#
914# PCI GPIO expanders:
915#
916# CONFIG_GPIO_BT8XX is not set
917
918#
919# SPI GPIO expanders:
920#
870# CONFIG_W1 is not set 921# CONFIG_W1 is not set
871# CONFIG_POWER_SUPPLY is not set 922# CONFIG_POWER_SUPPLY is not set
872# CONFIG_HWMON is not set 923# CONFIG_HWMON is not set
873# CONFIG_THERMAL is not set 924# CONFIG_THERMAL is not set
874# CONFIG_THERMAL_HWMON is not set 925# CONFIG_THERMAL_HWMON is not set
875# CONFIG_WATCHDOG is not set 926# CONFIG_WATCHDOG is not set
927CONFIG_SSB_POSSIBLE=y
876 928
877# 929#
878# Sonics Silicon Backplane 930# Sonics Silicon Backplane
879# 931#
880CONFIG_SSB_POSSIBLE=y
881# CONFIG_SSB is not set 932# CONFIG_SSB is not set
882 933
883# 934#
@@ -886,18 +937,15 @@ CONFIG_SSB_POSSIBLE=y
886# CONFIG_MFD_CORE is not set 937# CONFIG_MFD_CORE is not set
887# CONFIG_MFD_SM501 is not set 938# CONFIG_MFD_SM501 is not set
888# CONFIG_HTC_PASIC3 is not set 939# CONFIG_HTC_PASIC3 is not set
940# CONFIG_UCB1400_CORE is not set
941# CONFIG_TPS65010 is not set
942# CONFIG_TWL4030_CORE is not set
889# CONFIG_MFD_TMIO is not set 943# CONFIG_MFD_TMIO is not set
890# CONFIG_PMIC_DA903X is not set 944# CONFIG_PMIC_DA903X is not set
891# CONFIG_MFD_WM8400 is not set 945# CONFIG_MFD_WM8400 is not set
892# CONFIG_MFD_WM8350_I2C is not set 946# CONFIG_MFD_WM8350_I2C is not set
893 947# CONFIG_MFD_PCF50633 is not set
894#
895# Voltage and Current regulators
896#
897# CONFIG_REGULATOR is not set 948# CONFIG_REGULATOR is not set
898# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
899# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
900# CONFIG_REGULATOR_BQ24022 is not set
901 949
902# 950#
903# Multimedia devices 951# Multimedia devices
@@ -924,6 +972,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
924CONFIG_MEDIA_TUNER_MT20XX=m 972CONFIG_MEDIA_TUNER_MT20XX=m
925CONFIG_MEDIA_TUNER_XC2028=m 973CONFIG_MEDIA_TUNER_XC2028=m
926CONFIG_MEDIA_TUNER_XC5000=m 974CONFIG_MEDIA_TUNER_XC5000=m
975# CONFIG_DVB_DYNAMIC_MINORS is not set
927CONFIG_DVB_CAPTURE_DRIVERS=y 976CONFIG_DVB_CAPTURE_DRIVERS=y
928 977
929# 978#
@@ -969,6 +1018,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
969# CONFIG_DVB_FE_CUSTOMISE is not set 1018# CONFIG_DVB_FE_CUSTOMISE is not set
970 1019
971# 1020#
1021# Multistandard (satellite) frontends
1022#
1023# CONFIG_DVB_STB0899 is not set
1024# CONFIG_DVB_STB6100 is not set
1025
1026#
972# DVB-S (satellite) frontends 1027# DVB-S (satellite) frontends
973# 1028#
974# CONFIG_DVB_CX24110 is not set 1029# CONFIG_DVB_CX24110 is not set
@@ -980,8 +1035,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
980# CONFIG_DVB_STV0299 is not set 1035# CONFIG_DVB_STV0299 is not set
981# CONFIG_DVB_TDA8083 is not set 1036# CONFIG_DVB_TDA8083 is not set
982# CONFIG_DVB_TDA10086 is not set 1037# CONFIG_DVB_TDA10086 is not set
1038# CONFIG_DVB_TDA8261 is not set
983# CONFIG_DVB_VES1X93 is not set 1039# CONFIG_DVB_VES1X93 is not set
984# CONFIG_DVB_TUNER_ITD1000 is not set 1040# CONFIG_DVB_TUNER_ITD1000 is not set
1041# CONFIG_DVB_TUNER_CX24113 is not set
985# CONFIG_DVB_TDA826X is not set 1042# CONFIG_DVB_TDA826X is not set
986# CONFIG_DVB_TUA6100 is not set 1043# CONFIG_DVB_TUA6100 is not set
987# CONFIG_DVB_CX24116 is not set 1044# CONFIG_DVB_CX24116 is not set
@@ -1022,11 +1079,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1022# CONFIG_DVB_OR51132 is not set 1079# CONFIG_DVB_OR51132 is not set
1023# CONFIG_DVB_BCM3510 is not set 1080# CONFIG_DVB_BCM3510 is not set
1024# CONFIG_DVB_LGDT330X is not set 1081# CONFIG_DVB_LGDT330X is not set
1082# CONFIG_DVB_LGDT3304 is not set
1025# CONFIG_DVB_S5H1409 is not set 1083# CONFIG_DVB_S5H1409 is not set
1026# CONFIG_DVB_AU8522 is not set 1084# CONFIG_DVB_AU8522 is not set
1027# CONFIG_DVB_S5H1411 is not set 1085# CONFIG_DVB_S5H1411 is not set
1028 1086
1029# 1087#
1088# ISDB-T (terrestrial) frontends
1089#
1090# CONFIG_DVB_S921 is not set
1091
1092#
1030# Digital terrestrial only tuners/PLL 1093# Digital terrestrial only tuners/PLL
1031# 1094#
1032# CONFIG_DVB_PLL is not set 1095# CONFIG_DVB_PLL is not set
@@ -1079,6 +1142,7 @@ CONFIG_SND_OSSEMUL=y
1079CONFIG_SND_MIXER_OSS=y 1142CONFIG_SND_MIXER_OSS=y
1080CONFIG_SND_PCM_OSS=y 1143CONFIG_SND_PCM_OSS=y
1081CONFIG_SND_PCM_OSS_PLUGINS=y 1144CONFIG_SND_PCM_OSS_PLUGINS=y
1145# CONFIG_SND_HRTIMER is not set
1082# CONFIG_SND_DYNAMIC_MINORS is not set 1146# CONFIG_SND_DYNAMIC_MINORS is not set
1083# CONFIG_SND_SUPPORT_OLD_API is not set 1147# CONFIG_SND_SUPPORT_OLD_API is not set
1084CONFIG_SND_VERBOSE_PROCFS=y 1148CONFIG_SND_VERBOSE_PROCFS=y
@@ -1181,11 +1245,9 @@ CONFIG_HID_COMPAT=y
1181CONFIG_HID_A4TECH=y 1245CONFIG_HID_A4TECH=y
1182CONFIG_HID_APPLE=y 1246CONFIG_HID_APPLE=y
1183CONFIG_HID_BELKIN=y 1247CONFIG_HID_BELKIN=y
1184CONFIG_HID_BRIGHT=y
1185CONFIG_HID_CHERRY=y 1248CONFIG_HID_CHERRY=y
1186CONFIG_HID_CHICONY=y 1249CONFIG_HID_CHICONY=y
1187CONFIG_HID_CYPRESS=y 1250CONFIG_HID_CYPRESS=y
1188CONFIG_HID_DELL=y
1189CONFIG_HID_EZKEY=y 1251CONFIG_HID_EZKEY=y
1190CONFIG_HID_GYRATION=y 1252CONFIG_HID_GYRATION=y
1191CONFIG_HID_LOGITECH=y 1253CONFIG_HID_LOGITECH=y
@@ -1193,12 +1255,15 @@ CONFIG_HID_LOGITECH=y
1193# CONFIG_LOGIRUMBLEPAD2_FF is not set 1255# CONFIG_LOGIRUMBLEPAD2_FF is not set
1194CONFIG_HID_MICROSOFT=y 1256CONFIG_HID_MICROSOFT=y
1195CONFIG_HID_MONTEREY=y 1257CONFIG_HID_MONTEREY=y
1258# CONFIG_HID_NTRIG is not set
1196CONFIG_HID_PANTHERLORD=y 1259CONFIG_HID_PANTHERLORD=y
1197# CONFIG_PANTHERLORD_FF is not set 1260# CONFIG_PANTHERLORD_FF is not set
1198CONFIG_HID_PETALYNX=y 1261CONFIG_HID_PETALYNX=y
1199CONFIG_HID_SAMSUNG=y 1262CONFIG_HID_SAMSUNG=y
1200CONFIG_HID_SONY=y 1263CONFIG_HID_SONY=y
1201CONFIG_HID_SUNPLUS=y 1264CONFIG_HID_SUNPLUS=y
1265# CONFIG_GREENASIA_FF is not set
1266# CONFIG_HID_TOPSEED is not set
1202CONFIG_THRUSTMASTER_FF=m 1267CONFIG_THRUSTMASTER_FF=m
1203CONFIG_ZEROPLUS_FF=m 1268CONFIG_ZEROPLUS_FF=m
1204CONFIG_USB_SUPPORT=y 1269CONFIG_USB_SUPPORT=y
@@ -1231,6 +1296,7 @@ CONFIG_USB_EHCI_HCD=y
1231# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1296# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1232# CONFIG_USB_EHCI_FSL is not set 1297# CONFIG_USB_EHCI_FSL is not set
1233CONFIG_USB_EHCI_HCD_PPC_OF=y 1298CONFIG_USB_EHCI_HCD_PPC_OF=y
1299# CONFIG_USB_OXU210HP_HCD is not set
1234# CONFIG_USB_ISP116X_HCD is not set 1300# CONFIG_USB_ISP116X_HCD is not set
1235# CONFIG_USB_ISP1760_HCD is not set 1301# CONFIG_USB_ISP1760_HCD is not set
1236CONFIG_USB_OHCI_HCD=y 1302CONFIG_USB_OHCI_HCD=y
@@ -1256,18 +1322,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1256# CONFIG_USB_TMC is not set 1322# CONFIG_USB_TMC is not set
1257 1323
1258# 1324#
1259# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1325# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1260# 1326#
1261 1327
1262# 1328#
1263# may also be needed; see USB_STORAGE Help for more information 1329# see USB_STORAGE Help for more information
1264# 1330#
1265CONFIG_USB_STORAGE=y 1331CONFIG_USB_STORAGE=y
1266# CONFIG_USB_STORAGE_DEBUG is not set 1332# CONFIG_USB_STORAGE_DEBUG is not set
1267# CONFIG_USB_STORAGE_DATAFAB is not set 1333# CONFIG_USB_STORAGE_DATAFAB is not set
1268# CONFIG_USB_STORAGE_FREECOM is not set 1334# CONFIG_USB_STORAGE_FREECOM is not set
1269# CONFIG_USB_STORAGE_ISD200 is not set 1335# CONFIG_USB_STORAGE_ISD200 is not set
1270# CONFIG_USB_STORAGE_DPCM is not set
1271# CONFIG_USB_STORAGE_USBAT is not set 1336# CONFIG_USB_STORAGE_USBAT is not set
1272# CONFIG_USB_STORAGE_SDDR09 is not set 1337# CONFIG_USB_STORAGE_SDDR09 is not set
1273# CONFIG_USB_STORAGE_SDDR55 is not set 1338# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1315,6 +1380,11 @@ CONFIG_USB_STORAGE=y
1315# CONFIG_USB_ISIGHTFW is not set 1380# CONFIG_USB_ISIGHTFW is not set
1316# CONFIG_USB_VST is not set 1381# CONFIG_USB_VST is not set
1317# CONFIG_USB_GADGET is not set 1382# CONFIG_USB_GADGET is not set
1383
1384#
1385# OTG and related infrastructure
1386#
1387# CONFIG_USB_GPIO_VBUS is not set
1318# CONFIG_UWB is not set 1388# CONFIG_UWB is not set
1319# CONFIG_MMC is not set 1389# CONFIG_MMC is not set
1320# CONFIG_MEMSTICK is not set 1390# CONFIG_MEMSTICK is not set
@@ -1352,6 +1422,7 @@ CONFIG_RTC_INTF_DEV=y
1352# CONFIG_RTC_DRV_M41T80 is not set 1422# CONFIG_RTC_DRV_M41T80 is not set
1353# CONFIG_RTC_DRV_S35390A is not set 1423# CONFIG_RTC_DRV_S35390A is not set
1354# CONFIG_RTC_DRV_FM3130 is not set 1424# CONFIG_RTC_DRV_FM3130 is not set
1425# CONFIG_RTC_DRV_RX8581 is not set
1355 1426
1356# 1427#
1357# SPI RTC drivers 1428# SPI RTC drivers
@@ -1398,7 +1469,9 @@ CONFIG_FS_MBCACHE=y
1398# CONFIG_FS_POSIX_ACL is not set 1469# CONFIG_FS_POSIX_ACL is not set
1399CONFIG_FILE_LOCKING=y 1470CONFIG_FILE_LOCKING=y
1400# CONFIG_XFS_FS is not set 1471# CONFIG_XFS_FS is not set
1472# CONFIG_GFS2_FS is not set
1401# CONFIG_OCFS2_FS is not set 1473# CONFIG_OCFS2_FS is not set
1474# CONFIG_BTRFS_FS is not set
1402CONFIG_DNOTIFY=y 1475CONFIG_DNOTIFY=y
1403CONFIG_INOTIFY=y 1476CONFIG_INOTIFY=y
1404CONFIG_INOTIFY_USER=y 1477CONFIG_INOTIFY_USER=y
@@ -1440,10 +1513,7 @@ CONFIG_TMPFS=y
1440# CONFIG_TMPFS_POSIX_ACL is not set 1513# CONFIG_TMPFS_POSIX_ACL is not set
1441# CONFIG_HUGETLB_PAGE is not set 1514# CONFIG_HUGETLB_PAGE is not set
1442# CONFIG_CONFIGFS_FS is not set 1515# CONFIG_CONFIGFS_FS is not set
1443 1516CONFIG_MISC_FILESYSTEMS=y
1444#
1445# Miscellaneous filesystems
1446#
1447CONFIG_ADFS_FS=m 1517CONFIG_ADFS_FS=m
1448# CONFIG_ADFS_FS_RW is not set 1518# CONFIG_ADFS_FS_RW is not set
1449CONFIG_AFFS_FS=m 1519CONFIG_AFFS_FS=m
@@ -1454,6 +1524,7 @@ CONFIG_BEFS_FS=m
1454CONFIG_BFS_FS=m 1524CONFIG_BFS_FS=m
1455CONFIG_EFS_FS=m 1525CONFIG_EFS_FS=m
1456CONFIG_CRAMFS=y 1526CONFIG_CRAMFS=y
1527# CONFIG_SQUASHFS is not set
1457CONFIG_VXFS_FS=m 1528CONFIG_VXFS_FS=m
1458# CONFIG_MINIX_FS is not set 1529# CONFIG_MINIX_FS is not set
1459# CONFIG_OMFS_FS is not set 1530# CONFIG_OMFS_FS is not set
@@ -1555,6 +1626,7 @@ CONFIG_NLS_UTF8=m
1555# Library routines 1626# Library routines
1556# 1627#
1557CONFIG_BITREVERSE=y 1628CONFIG_BITREVERSE=y
1629CONFIG_GENERIC_FIND_LAST_BIT=y
1558# CONFIG_CRC_CCITT is not set 1630# CONFIG_CRC_CCITT is not set
1559# CONFIG_CRC16 is not set 1631# CONFIG_CRC16 is not set
1560CONFIG_CRC_T10DIF=y 1632CONFIG_CRC_T10DIF=y
@@ -1606,6 +1678,7 @@ CONFIG_DEBUG_INFO=y
1606# CONFIG_DEBUG_MEMORY_INIT is not set 1678# CONFIG_DEBUG_MEMORY_INIT is not set
1607# CONFIG_DEBUG_LIST is not set 1679# CONFIG_DEBUG_LIST is not set
1608# CONFIG_DEBUG_SG is not set 1680# CONFIG_DEBUG_SG is not set
1681# CONFIG_DEBUG_NOTIFIERS is not set
1609# CONFIG_BOOT_PRINTK_DELAY is not set 1682# CONFIG_BOOT_PRINTK_DELAY is not set
1610# CONFIG_RCU_TORTURE_TEST is not set 1683# CONFIG_RCU_TORTURE_TEST is not set
1611# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1684# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1615,6 +1688,8 @@ CONFIG_DEBUG_INFO=y
1615# CONFIG_LATENCYTOP is not set 1688# CONFIG_LATENCYTOP is not set
1616CONFIG_SYSCTL_SYSCALL_CHECK=y 1689CONFIG_SYSCTL_SYSCALL_CHECK=y
1617CONFIG_HAVE_FUNCTION_TRACER=y 1690CONFIG_HAVE_FUNCTION_TRACER=y
1691CONFIG_HAVE_DYNAMIC_FTRACE=y
1692CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1618 1693
1619# 1694#
1620# Tracers 1695# Tracers
@@ -1623,11 +1698,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1623# CONFIG_SCHED_TRACER is not set 1698# CONFIG_SCHED_TRACER is not set
1624# CONFIG_CONTEXT_SWITCH_TRACER is not set 1699# CONFIG_CONTEXT_SWITCH_TRACER is not set
1625# CONFIG_BOOT_TRACER is not set 1700# CONFIG_BOOT_TRACER is not set
1701# CONFIG_TRACE_BRANCH_PROFILING is not set
1626# CONFIG_STACK_TRACER is not set 1702# CONFIG_STACK_TRACER is not set
1627# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1703# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1628# CONFIG_SAMPLES is not set 1704# CONFIG_SAMPLES is not set
1629CONFIG_HAVE_ARCH_KGDB=y 1705CONFIG_HAVE_ARCH_KGDB=y
1630# CONFIG_KGDB is not set 1706# CONFIG_KGDB is not set
1707CONFIG_PRINT_STACK_DEPTH=64
1631# CONFIG_DEBUG_STACKOVERFLOW is not set 1708# CONFIG_DEBUG_STACKOVERFLOW is not set
1632# CONFIG_DEBUG_STACK_USAGE is not set 1709# CONFIG_DEBUG_STACK_USAGE is not set
1633# CONFIG_DEBUG_PAGEALLOC is not set 1710# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1654,11 +1731,15 @@ CONFIG_CRYPTO=y
1654# 1731#
1655# CONFIG_CRYPTO_FIPS is not set 1732# CONFIG_CRYPTO_FIPS is not set
1656CONFIG_CRYPTO_ALGAPI=y 1733CONFIG_CRYPTO_ALGAPI=y
1657CONFIG_CRYPTO_AEAD=y 1734CONFIG_CRYPTO_ALGAPI2=y
1735CONFIG_CRYPTO_AEAD2=y
1658CONFIG_CRYPTO_BLKCIPHER=y 1736CONFIG_CRYPTO_BLKCIPHER=y
1737CONFIG_CRYPTO_BLKCIPHER2=y
1659CONFIG_CRYPTO_HASH=y 1738CONFIG_CRYPTO_HASH=y
1660CONFIG_CRYPTO_RNG=y 1739CONFIG_CRYPTO_HASH2=y
1740CONFIG_CRYPTO_RNG2=y
1661CONFIG_CRYPTO_MANAGER=y 1741CONFIG_CRYPTO_MANAGER=y
1742CONFIG_CRYPTO_MANAGER2=y
1662# CONFIG_CRYPTO_GF128MUL is not set 1743# CONFIG_CRYPTO_GF128MUL is not set
1663# CONFIG_CRYPTO_NULL is not set 1744# CONFIG_CRYPTO_NULL is not set
1664# CONFIG_CRYPTO_CRYPTD is not set 1745# CONFIG_CRYPTO_CRYPTD is not set
@@ -1692,7 +1773,7 @@ CONFIG_CRYPTO_HMAC=y
1692# 1773#
1693# Digest 1774# Digest
1694# 1775#
1695# CONFIG_CRYPTO_CRC32C is not set 1776CONFIG_CRYPTO_CRC32C=m
1696# CONFIG_CRYPTO_MD4 is not set 1777# CONFIG_CRYPTO_MD4 is not set
1697CONFIG_CRYPTO_MD5=y 1778CONFIG_CRYPTO_MD5=y
1698# CONFIG_CRYPTO_MICHAEL_MIC is not set 1779# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index a4283b6a43d2..4b76321c0ec4 100644
--- a/arch/powerpc/configs/mpc885_ads_defconfig
+++ b/arch/powerpc/configs/mpc885_ads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:46 2008 4# Mon Jan 26 15:35:41 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_8xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_8xx=y 17CONFIG_8xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -70,12 +71,12 @@ CONFIG_SYSVIPC_SYSCTL=y
70# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
71# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
72CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y 74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set 76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y 77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set 78# CONFIG_CGROUP_SCHED is not set
79# CONFIG_CGROUPS is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y 81CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
@@ -108,7 +109,6 @@ CONFIG_SLUB_DEBUG=y
108CONFIG_SLUB=y 109CONFIG_SLUB=y
109# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set 111# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 114CONFIG_HAVE_IOREMAP_PROT=y
@@ -118,13 +118,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_HAVE_CLK=y 118CONFIG_HAVE_CLK=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
121# CONFIG_TINY_SHMEM is not set
122CONFIG_BASE_SMALL=1 121CONFIG_BASE_SMALL=1
123# CONFIG_MODULES is not set 122# CONFIG_MODULES is not set
124CONFIG_BLOCK=y 123CONFIG_BLOCK=y
125# CONFIG_LBD is not set 124# CONFIG_LBD is not set
126# CONFIG_BLK_DEV_IO_TRACE is not set 125# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 126# CONFIG_BLK_DEV_BSG is not set
129# CONFIG_BLK_DEV_INTEGRITY is not set 127# CONFIG_BLK_DEV_INTEGRITY is not set
130 128
@@ -141,6 +139,10 @@ CONFIG_DEFAULT_DEADLINE=y
141# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
142CONFIG_DEFAULT_IOSCHED="deadline" 140CONFIG_DEFAULT_IOSCHED="deadline"
143CONFIG_CLASSIC_RCU=y 141CONFIG_CLASSIC_RCU=y
142# CONFIG_TREE_RCU is not set
143# CONFIG_PREEMPT_RCU is not set
144# CONFIG_TREE_RCU_TRACE is not set
145# CONFIG_PREEMPT_RCU_TRACE is not set
144# CONFIG_FREEZER is not set 146# CONFIG_FREEZER is not set
145 147
146# 148#
@@ -193,6 +195,7 @@ CONFIG_NO_UCODE_PATCH=y
193# CONFIG_QUICC_ENGINE is not set 195# CONFIG_QUICC_ENGINE is not set
194# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
195CONFIG_CPM=y 197CONFIG_CPM=y
198# CONFIG_SIMPLE_GPIO is not set
196 199
197# 200#
198# Kernel options 201# Kernel options
@@ -212,12 +215,12 @@ CONFIG_PREEMPT_NONE=y
212# CONFIG_PREEMPT_VOLUNTARY is not set 215# CONFIG_PREEMPT_VOLUNTARY is not set
213# CONFIG_PREEMPT is not set 216# CONFIG_PREEMPT is not set
214CONFIG_BINFMT_ELF=y 217CONFIG_BINFMT_ELF=y
215# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
216# CONFIG_HAVE_AOUT is not set 218# CONFIG_HAVE_AOUT is not set
217# CONFIG_BINFMT_MISC is not set 219# CONFIG_BINFMT_MISC is not set
218# CONFIG_MATH_EMULATION is not set 220# CONFIG_MATH_EMULATION is not set
219CONFIG_8XX_MINIMAL_FPEMU=y 221CONFIG_8XX_MINIMAL_FPEMU=y
220# CONFIG_IOMMU_HELPER is not set 222# CONFIG_IOMMU_HELPER is not set
223CONFIG_PPC_NEED_DMA_SYNC_OPS=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
222CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
223CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -232,12 +235,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
232CONFIG_PAGEFLAGS_EXTENDED=y 235CONFIG_PAGEFLAGS_EXTENDED=y
233CONFIG_SPLIT_PTLOCK_CPUS=4 236CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y 237CONFIG_MIGRATION=y
235# CONFIG_RESOURCES_64BIT is not set
236# CONFIG_PHYS_ADDR_T_64BIT is not set 238# CONFIG_PHYS_ADDR_T_64BIT is not set
237CONFIG_ZONE_DMA_FLAG=1 239CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y 240CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=y 241CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y 242CONFIG_UNEVICTABLE_LRU=y
243CONFIG_PPC_4K_PAGES=y
244# CONFIG_PPC_16K_PAGES is not set
245# CONFIG_PPC_64K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=11 246CONFIG_FORCE_MAX_ZONEORDER=11
242CONFIG_PROC_DEVICETREE=y 247CONFIG_PROC_DEVICETREE=y
243# CONFIG_CMDLINE_BOOL is not set 248# CONFIG_CMDLINE_BOOL is not set
@@ -279,6 +284,7 @@ CONFIG_NET=y
279# 284#
280# Networking options 285# Networking options
281# 286#
287CONFIG_COMPAT_NET_DEV_OPS=y
282CONFIG_PACKET=y 288CONFIG_PACKET=y
283# CONFIG_PACKET_MMAP is not set 289# CONFIG_PACKET_MMAP is not set
284CONFIG_UNIX=y 290CONFIG_UNIX=y
@@ -330,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
331# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
332# CONFIG_NET_SCHED is not set 338# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set
333 340
334# 341#
335# Network testing 342# Network testing
@@ -345,8 +352,9 @@ CONFIG_WIRELESS=y
345# CONFIG_CFG80211 is not set 352# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y 353CONFIG_WIRELESS_OLD_REGULATORY=y
347# CONFIG_WIRELESS_EXT is not set 354# CONFIG_WIRELESS_EXT is not set
355# CONFIG_LIB80211 is not set
348# CONFIG_MAC80211 is not set 356# CONFIG_MAC80211 is not set
349# CONFIG_IEEE80211 is not set 357# CONFIG_WIMAX is not set
350# CONFIG_RFKILL is not set 358# CONFIG_RFKILL is not set
351# CONFIG_NET_9P is not set 359# CONFIG_NET_9P is not set
352 360
@@ -439,6 +447,12 @@ CONFIG_MTD_PHYSMAP_OF=y
439# CONFIG_MTD_ONENAND is not set 447# CONFIG_MTD_ONENAND is not set
440 448
441# 449#
450# LPDDR flash memory drivers
451#
452# CONFIG_MTD_LPDDR is not set
453# CONFIG_MTD_QINFO_PROBE is not set
454
455#
442# UBI - Unsorted block images 456# UBI - Unsorted block images
443# 457#
444# CONFIG_MTD_UBI is not set 458# CONFIG_MTD_UBI is not set
@@ -481,6 +495,9 @@ CONFIG_DAVICOM_PHY=y
481# CONFIG_BROADCOM_PHY is not set 495# CONFIG_BROADCOM_PHY is not set
482# CONFIG_ICPLUS_PHY is not set 496# CONFIG_ICPLUS_PHY is not set
483# CONFIG_REALTEK_PHY is not set 497# CONFIG_REALTEK_PHY is not set
498# CONFIG_NATIONAL_PHY is not set
499# CONFIG_STE10XP is not set
500# CONFIG_LSI_ET1011C_PHY is not set
484# CONFIG_FIXED_PHY is not set 501# CONFIG_FIXED_PHY is not set
485# CONFIG_MDIO_BITBANG is not set 502# CONFIG_MDIO_BITBANG is not set
486CONFIG_NET_ETHERNET=y 503CONFIG_NET_ETHERNET=y
@@ -506,6 +523,10 @@ CONFIG_FS_ENET_MDIO_FEC=y
506# CONFIG_WLAN_PRE80211 is not set 523# CONFIG_WLAN_PRE80211 is not set
507# CONFIG_WLAN_80211 is not set 524# CONFIG_WLAN_80211 is not set
508# CONFIG_IWLWIFI_LEDS is not set 525# CONFIG_IWLWIFI_LEDS is not set
526
527#
528# Enable WiMAX (Networking options) to see the WiMAX drivers
529#
509# CONFIG_WAN is not set 530# CONFIG_WAN is not set
510# CONFIG_PPP is not set 531# CONFIG_PPP is not set
511# CONFIG_SLIP is not set 532# CONFIG_SLIP is not set
@@ -547,7 +568,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
547CONFIG_SERIAL_CPM=y 568CONFIG_SERIAL_CPM=y
548CONFIG_SERIAL_CPM_CONSOLE=y 569CONFIG_SERIAL_CPM_CONSOLE=y
549CONFIG_UNIX98_PTYS=y 570CONFIG_UNIX98_PTYS=y
571# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
550# CONFIG_LEGACY_PTYS is not set 572# CONFIG_LEGACY_PTYS is not set
573# CONFIG_HVC_UDBG is not set
551# CONFIG_IPMI_HANDLER is not set 574# CONFIG_IPMI_HANDLER is not set
552CONFIG_HW_RANDOM=y 575CONFIG_HW_RANDOM=y
553# CONFIG_NVRAM is not set 576# CONFIG_NVRAM is not set
@@ -566,11 +589,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
566# CONFIG_THERMAL is not set 589# CONFIG_THERMAL is not set
567# CONFIG_THERMAL_HWMON is not set 590# CONFIG_THERMAL_HWMON is not set
568# CONFIG_WATCHDOG is not set 591# CONFIG_WATCHDOG is not set
592CONFIG_SSB_POSSIBLE=y
569 593
570# 594#
571# Sonics Silicon Backplane 595# Sonics Silicon Backplane
572# 596#
573CONFIG_SSB_POSSIBLE=y
574# CONFIG_SSB is not set 597# CONFIG_SSB is not set
575 598
576# 599#
@@ -580,14 +603,7 @@ CONFIG_SSB_POSSIBLE=y
580# CONFIG_MFD_SM501 is not set 603# CONFIG_MFD_SM501 is not set
581# CONFIG_HTC_PASIC3 is not set 604# CONFIG_HTC_PASIC3 is not set
582# CONFIG_MFD_TMIO is not set 605# CONFIG_MFD_TMIO is not set
583
584#
585# Voltage and Current regulators
586#
587# CONFIG_REGULATOR is not set 606# CONFIG_REGULATOR is not set
588# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
589# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
590# CONFIG_REGULATOR_BQ24022 is not set
591 607
592# 608#
593# Multimedia devices 609# Multimedia devices
@@ -641,6 +657,7 @@ CONFIG_DAB=y
641CONFIG_FILE_LOCKING=y 657CONFIG_FILE_LOCKING=y
642# CONFIG_XFS_FS is not set 658# CONFIG_XFS_FS is not set
643# CONFIG_OCFS2_FS is not set 659# CONFIG_OCFS2_FS is not set
660# CONFIG_BTRFS_FS is not set
644# CONFIG_DNOTIFY is not set 661# CONFIG_DNOTIFY is not set
645# CONFIG_INOTIFY is not set 662# CONFIG_INOTIFY is not set
646# CONFIG_QUOTA is not set 663# CONFIG_QUOTA is not set
@@ -673,10 +690,7 @@ CONFIG_TMPFS=y
673# CONFIG_TMPFS_POSIX_ACL is not set 690# CONFIG_TMPFS_POSIX_ACL is not set
674# CONFIG_HUGETLB_PAGE is not set 691# CONFIG_HUGETLB_PAGE is not set
675# CONFIG_CONFIGFS_FS is not set 692# CONFIG_CONFIGFS_FS is not set
676 693CONFIG_MISC_FILESYSTEMS=y
677#
678# Miscellaneous filesystems
679#
680# CONFIG_ADFS_FS is not set 694# CONFIG_ADFS_FS is not set
681# CONFIG_AFFS_FS is not set 695# CONFIG_AFFS_FS is not set
682# CONFIG_HFS_FS is not set 696# CONFIG_HFS_FS is not set
@@ -686,6 +700,7 @@ CONFIG_TMPFS=y
686# CONFIG_EFS_FS is not set 700# CONFIG_EFS_FS is not set
687# CONFIG_JFFS2_FS is not set 701# CONFIG_JFFS2_FS is not set
688CONFIG_CRAMFS=y 702CONFIG_CRAMFS=y
703# CONFIG_SQUASHFS is not set
689# CONFIG_VXFS_FS is not set 704# CONFIG_VXFS_FS is not set
690# CONFIG_MINIX_FS is not set 705# CONFIG_MINIX_FS is not set
691# CONFIG_OMFS_FS is not set 706# CONFIG_OMFS_FS is not set
@@ -741,6 +756,7 @@ CONFIG_MSDOS_PARTITION=y
741# 756#
742# Library routines 757# Library routines
743# 758#
759CONFIG_GENERIC_FIND_LAST_BIT=y
744# CONFIG_CRC_CCITT is not set 760# CONFIG_CRC_CCITT is not set
745# CONFIG_CRC16 is not set 761# CONFIG_CRC16 is not set
746# CONFIG_CRC_T10DIF is not set 762# CONFIG_CRC_T10DIF is not set
@@ -788,6 +804,7 @@ CONFIG_DEBUG_INFO=y
788# CONFIG_DEBUG_MEMORY_INIT is not set 804# CONFIG_DEBUG_MEMORY_INIT is not set
789# CONFIG_DEBUG_LIST is not set 805# CONFIG_DEBUG_LIST is not set
790# CONFIG_DEBUG_SG is not set 806# CONFIG_DEBUG_SG is not set
807# CONFIG_DEBUG_NOTIFIERS is not set
791# CONFIG_BOOT_PRINTK_DELAY is not set 808# CONFIG_BOOT_PRINTK_DELAY is not set
792# CONFIG_RCU_TORTURE_TEST is not set 809# CONFIG_RCU_TORTURE_TEST is not set
793# CONFIG_RCU_CPU_STALL_DETECTOR is not set 810# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -796,6 +813,8 @@ CONFIG_DEBUG_INFO=y
796# CONFIG_FAULT_INJECTION is not set 813# CONFIG_FAULT_INJECTION is not set
797# CONFIG_LATENCYTOP is not set 814# CONFIG_LATENCYTOP is not set
798CONFIG_HAVE_FUNCTION_TRACER=y 815CONFIG_HAVE_FUNCTION_TRACER=y
816CONFIG_HAVE_DYNAMIC_FTRACE=y
817CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
799 818
800# 819#
801# Tracers 820# Tracers
@@ -804,11 +823,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
804# CONFIG_SCHED_TRACER is not set 823# CONFIG_SCHED_TRACER is not set
805# CONFIG_CONTEXT_SWITCH_TRACER is not set 824# CONFIG_CONTEXT_SWITCH_TRACER is not set
806# CONFIG_BOOT_TRACER is not set 825# CONFIG_BOOT_TRACER is not set
826# CONFIG_TRACE_BRANCH_PROFILING is not set
807# CONFIG_STACK_TRACER is not set 827# CONFIG_STACK_TRACER is not set
808# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 828# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
809# CONFIG_SAMPLES is not set 829# CONFIG_SAMPLES is not set
810CONFIG_HAVE_ARCH_KGDB=y 830CONFIG_HAVE_ARCH_KGDB=y
811# CONFIG_KGDB is not set 831# CONFIG_KGDB is not set
832CONFIG_PRINT_STACK_DEPTH=64
812# CONFIG_DEBUG_STACKOVERFLOW is not set 833# CONFIG_DEBUG_STACKOVERFLOW is not set
813# CONFIG_DEBUG_STACK_USAGE is not set 834# CONFIG_DEBUG_STACK_USAGE is not set
814# CONFIG_DEBUG_PAGEALLOC is not set 835# CONFIG_DEBUG_PAGEALLOC is not set
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig
index 199e5f59d7a6..4f8681cc8d77 100644
--- a/arch/powerpc/configs/pasemi_defconfig
+++ b/arch/powerpc/configs/pasemi_defconfig
@@ -984,7 +984,7 @@ CONFIG_I2C_PASEMI=y
984# Miscellaneous I2C Chip support 984# Miscellaneous I2C Chip support
985# 985#
986# CONFIG_DS1682 is not set 986# CONFIG_DS1682 is not set
987CONFIG_SENSORS_EEPROM=y 987CONFIG_EEPROM_LEGACY=y
988# CONFIG_SENSORS_PCF8574 is not set 988# CONFIG_SENSORS_PCF8574 is not set
989# CONFIG_PCF8575 is not set 989# CONFIG_PCF8575 is not set
990# CONFIG_SENSORS_PCF8591 is not set 990# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index de9b121820a6..5339bb44cce9 100644
--- a/arch/powerpc/configs/pmac32_defconfig
+++ b/arch/powerpc/configs/pmac32_defconfig
@@ -1232,8 +1232,8 @@ CONFIG_I2C_POWERMAC=y
1232# Miscellaneous I2C Chip support 1232# Miscellaneous I2C Chip support
1233# 1233#
1234# CONFIG_DS1682 is not set 1234# CONFIG_DS1682 is not set
1235# CONFIG_AT24 is not set 1235# CONFIG_EEPROM_AT24 is not set
1236# CONFIG_SENSORS_EEPROM is not set 1236# CONFIG_EEPROM_LEGACY is not set
1237# CONFIG_SENSORS_PCF8574 is not set 1237# CONFIG_SENSORS_PCF8574 is not set
1238# CONFIG_PCF8575 is not set 1238# CONFIG_PCF8575 is not set
1239# CONFIG_SENSORS_PCA9539 is not set 1239# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/ppc40x_defconfig b/arch/powerpc/configs/ppc40x_defconfig
index 4256e2c4534b..326205cabf77 100644
--- a/arch/powerpc/configs/ppc40x_defconfig
+++ b/arch/powerpc/configs/ppc40x_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Fri Nov 14 09:54:44 2008 4# Fri Jan 23 08:44:03 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -41,7 +42,7 @@ CONFIG_GENERIC_GPIO=y
41CONFIG_PPC=y 42CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y 43CONFIG_EARLY_PRINTK=y
43CONFIG_GENERIC_NVRAM=y 44CONFIG_GENERIC_NVRAM=y
44CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 45CONFIG_SCHED_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y 46CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y 47CONFIG_PPC_OF=y
47CONFIG_OF=y 48CONFIG_OF=y
@@ -72,12 +73,12 @@ CONFIG_POSIX_MQUEUE=y
72# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 74# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 75CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set
76CONFIG_GROUP_SCHED=y 76CONFIG_GROUP_SCHED=y
77CONFIG_FAIR_GROUP_SCHED=y 77CONFIG_FAIR_GROUP_SCHED=y
78# CONFIG_RT_GROUP_SCHED is not set 78# CONFIG_RT_GROUP_SCHED is not set
79CONFIG_USER_SCHED=y 79CONFIG_USER_SCHED=y
80# CONFIG_CGROUP_SCHED is not set 80# CONFIG_CGROUP_SCHED is not set
81# CONFIG_CGROUPS is not set
81CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
82CONFIG_SYSFS_DEPRECATED_V2=y 83CONFIG_SYSFS_DEPRECATED_V2=y
83# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
@@ -90,6 +91,7 @@ CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
91CONFIG_KALLSYMS=y 92CONFIG_KALLSYMS=y
92CONFIG_KALLSYMS_ALL=y 93CONFIG_KALLSYMS_ALL=y
94CONFIG_KALLSYMS_STRIP_GENERATED=y
93CONFIG_KALLSYMS_EXTRA_PASS=y 95CONFIG_KALLSYMS_EXTRA_PASS=y
94CONFIG_HOTPLUG=y 96CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 97CONFIG_PRINTK=y
@@ -112,7 +114,6 @@ CONFIG_SLUB_DEBUG=y
112CONFIG_SLUB=y 114CONFIG_SLUB=y
113# CONFIG_SLOB is not set 115# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 118# CONFIG_KPROBES is not set
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -123,7 +124,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 128CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 129# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +131,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 131# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 132# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 133# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 134CONFIG_BLOCK=y
136CONFIG_LBD=y 135CONFIG_LBD=y
137# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
141 139
@@ -152,6 +150,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 152CONFIG_CLASSIC_RCU=y
153# CONFIG_TREE_RCU is not set
154# CONFIG_PREEMPT_RCU is not set
155# CONFIG_TREE_RCU_TRACE is not set
156# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
156CONFIG_PPC4xx_PCI_EXPRESS=y 158CONFIG_PPC4xx_PCI_EXPRESS=y
157 159
@@ -192,6 +194,7 @@ CONFIG_IBM405_ERR51=y
192# CONFIG_CPU_FREQ is not set 194# CONFIG_CPU_FREQ is not set
193# CONFIG_FSL_ULI1575 is not set 195# CONFIG_FSL_ULI1575 is not set
194CONFIG_OF_RTC=y 196CONFIG_OF_RTC=y
197# CONFIG_SIMPLE_GPIO is not set
195 198
196# 199#
197# Kernel options 200# Kernel options
@@ -215,6 +218,7 @@ CONFIG_BINFMT_ELF=y
215# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
216# CONFIG_MATH_EMULATION is not set 219# CONFIG_MATH_EMULATION is not set
217# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
221CONFIG_PPC_NEED_DMA_SYNC_OPS=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
219CONFIG_ARCH_HAS_WALK_MEMORY=y 223CONFIG_ARCH_HAS_WALK_MEMORY=y
220CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -229,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
229CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
230CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
232CONFIG_RESOURCES_64BIT=y
233# CONFIG_PHYS_ADDR_T_64BIT is not set 236# CONFIG_PHYS_ADDR_T_64BIT is not set
234CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
236CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
237CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
238CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
239CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
240# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -258,6 +264,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
258# CONFIG_PCI_MSI is not set 264# CONFIG_PCI_MSI is not set
259# CONFIG_PCI_LEGACY is not set 265# CONFIG_PCI_LEGACY is not set
260# CONFIG_PCI_DEBUG is not set 266# CONFIG_PCI_DEBUG is not set
267# CONFIG_PCI_STUB is not set
261# CONFIG_PCCARD is not set 268# CONFIG_PCCARD is not set
262# CONFIG_HOTPLUG_PCI is not set 269# CONFIG_HOTPLUG_PCI is not set
263# CONFIG_HAS_RAPIDIO is not set 270# CONFIG_HAS_RAPIDIO is not set
@@ -282,6 +289,7 @@ CONFIG_NET=y
282# 289#
283# Networking options 290# Networking options
284# 291#
292CONFIG_COMPAT_NET_DEV_OPS=y
285CONFIG_PACKET=y 293CONFIG_PACKET=y
286# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
287CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -355,6 +363,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
355# CONFIG_ECONET is not set 363# CONFIG_ECONET is not set
356# CONFIG_WAN_ROUTER is not set 364# CONFIG_WAN_ROUTER is not set
357# CONFIG_NET_SCHED is not set 365# CONFIG_NET_SCHED is not set
366# CONFIG_DCB is not set
358 367
359# 368#
360# Network testing 369# Network testing
@@ -370,8 +379,9 @@ CONFIG_WIRELESS=y
370# CONFIG_CFG80211 is not set 379# CONFIG_CFG80211 is not set
371CONFIG_WIRELESS_OLD_REGULATORY=y 380CONFIG_WIRELESS_OLD_REGULATORY=y
372# CONFIG_WIRELESS_EXT is not set 381# CONFIG_WIRELESS_EXT is not set
382# CONFIG_LIB80211 is not set
373# CONFIG_MAC80211 is not set 383# CONFIG_MAC80211 is not set
374# CONFIG_IEEE80211 is not set 384# CONFIG_WIMAX is not set
375# CONFIG_RFKILL is not set 385# CONFIG_RFKILL is not set
376# CONFIG_NET_9P is not set 386# CONFIG_NET_9P is not set
377 387
@@ -397,6 +407,7 @@ CONFIG_MTD=y
397# CONFIG_MTD_DEBUG is not set 407# CONFIG_MTD_DEBUG is not set
398# CONFIG_MTD_CONCAT is not set 408# CONFIG_MTD_CONCAT is not set
399CONFIG_MTD_PARTITIONS=y 409CONFIG_MTD_PARTITIONS=y
410# CONFIG_MTD_TESTS is not set
400# CONFIG_MTD_REDBOOT_PARTS is not set 411# CONFIG_MTD_REDBOOT_PARTS is not set
401CONFIG_MTD_CMDLINE_PARTS=y 412CONFIG_MTD_CMDLINE_PARTS=y
402CONFIG_MTD_OF_PARTS=y 413CONFIG_MTD_OF_PARTS=y
@@ -469,6 +480,12 @@ CONFIG_MTD_PHYSMAP_OF=y
469# CONFIG_MTD_ONENAND is not set 480# CONFIG_MTD_ONENAND is not set
470 481
471# 482#
483# LPDDR flash memory drivers
484#
485# CONFIG_MTD_LPDDR is not set
486# CONFIG_MTD_QINFO_PROBE is not set
487
488#
472# UBI - Unsorted block images 489# UBI - Unsorted block images
473# 490#
474CONFIG_MTD_UBI=m 491CONFIG_MTD_UBI=m
@@ -593,6 +610,7 @@ CONFIG_NETDEV_1000=y
593# CONFIG_JME is not set 610# CONFIG_JME is not set
594CONFIG_NETDEV_10000=y 611CONFIG_NETDEV_10000=y
595# CONFIG_CHELSIO_T1 is not set 612# CONFIG_CHELSIO_T1 is not set
613CONFIG_CHELSIO_T3_DEPENDS=y
596# CONFIG_CHELSIO_T3 is not set 614# CONFIG_CHELSIO_T3 is not set
597# CONFIG_ENIC is not set 615# CONFIG_ENIC is not set
598# CONFIG_IXGBE is not set 616# CONFIG_IXGBE is not set
@@ -615,6 +633,10 @@ CONFIG_NETDEV_10000=y
615# CONFIG_WLAN_PRE80211 is not set 633# CONFIG_WLAN_PRE80211 is not set
616# CONFIG_WLAN_80211 is not set 634# CONFIG_WLAN_80211 is not set
617# CONFIG_IWLWIFI_LEDS is not set 635# CONFIG_IWLWIFI_LEDS is not set
636
637#
638# Enable WiMAX (Networking options) to see the WiMAX drivers
639#
618# CONFIG_WAN is not set 640# CONFIG_WAN is not set
619# CONFIG_FDDI is not set 641# CONFIG_FDDI is not set
620# CONFIG_HIPPI is not set 642# CONFIG_HIPPI is not set
@@ -674,9 +696,12 @@ CONFIG_SERIAL_CORE=y
674CONFIG_SERIAL_CORE_CONSOLE=y 696CONFIG_SERIAL_CORE_CONSOLE=y
675# CONFIG_SERIAL_JSM is not set 697# CONFIG_SERIAL_JSM is not set
676CONFIG_SERIAL_OF_PLATFORM=y 698CONFIG_SERIAL_OF_PLATFORM=y
699# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
677CONFIG_UNIX98_PTYS=y 700CONFIG_UNIX98_PTYS=y
701# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
678CONFIG_LEGACY_PTYS=y 702CONFIG_LEGACY_PTYS=y
679CONFIG_LEGACY_PTY_COUNT=256 703CONFIG_LEGACY_PTY_COUNT=256
704# CONFIG_HVC_UDBG is not set
680# CONFIG_IPMI_HANDLER is not set 705# CONFIG_IPMI_HANDLER is not set
681# CONFIG_HW_RANDOM is not set 706# CONFIG_HW_RANDOM is not set
682# CONFIG_NVRAM is not set 707# CONFIG_NVRAM is not set
@@ -745,13 +770,12 @@ CONFIG_I2C_IBM_IIC=m
745# Miscellaneous I2C Chip support 770# Miscellaneous I2C Chip support
746# 771#
747# CONFIG_DS1682 is not set 772# CONFIG_DS1682 is not set
748# CONFIG_AT24 is not set 773# CONFIG_EEPROM_AT24 is not set
749# CONFIG_SENSORS_EEPROM is not set 774# CONFIG_EEPROM_LEGACY is not set
750# CONFIG_SENSORS_PCF8574 is not set 775# CONFIG_SENSORS_PCF8574 is not set
751# CONFIG_PCF8575 is not set 776# CONFIG_PCF8575 is not set
752# CONFIG_SENSORS_PCA9539 is not set 777# CONFIG_SENSORS_PCA9539 is not set
753# CONFIG_SENSORS_PCF8591 is not set 778# CONFIG_SENSORS_PCF8591 is not set
754# CONFIG_TPS65010 is not set
755# CONFIG_SENSORS_MAX6875 is not set 779# CONFIG_SENSORS_MAX6875 is not set
756# CONFIG_SENSORS_TSL2550 is not set 780# CONFIG_SENSORS_TSL2550 is not set
757# CONFIG_I2C_DEBUG_CORE is not set 781# CONFIG_I2C_DEBUG_CORE is not set
@@ -803,9 +827,11 @@ CONFIG_SSB_POSSIBLE=y
803# CONFIG_MFD_CORE is not set 827# CONFIG_MFD_CORE is not set
804# CONFIG_MFD_SM501 is not set 828# CONFIG_MFD_SM501 is not set
805# CONFIG_HTC_PASIC3 is not set 829# CONFIG_HTC_PASIC3 is not set
830# CONFIG_TPS65010 is not set
806# CONFIG_MFD_TMIO is not set 831# CONFIG_MFD_TMIO is not set
807# CONFIG_MFD_WM8400 is not set 832# CONFIG_MFD_WM8400 is not set
808# CONFIG_MFD_WM8350_I2C is not set 833# CONFIG_MFD_WM8350_I2C is not set
834# CONFIG_MFD_PCF50633 is not set
809# CONFIG_REGULATOR is not set 835# CONFIG_REGULATOR is not set
810 836
811# 837#
@@ -904,9 +930,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
904# 930#
905 931
906# 932#
907# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 933# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
908# 934#
909# CONFIG_USB_GADGET is not set 935# CONFIG_USB_GADGET is not set
936
937#
938# OTG and related infrastructure
939#
910# CONFIG_UWB is not set 940# CONFIG_UWB is not set
911# CONFIG_MMC is not set 941# CONFIG_MMC is not set
912# CONFIG_MEMSTICK is not set 942# CONFIG_MEMSTICK is not set
@@ -918,7 +948,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y
918# CONFIG_DMADEVICES is not set 948# CONFIG_DMADEVICES is not set
919# CONFIG_UIO is not set 949# CONFIG_UIO is not set
920# CONFIG_STAGING is not set 950# CONFIG_STAGING is not set
921CONFIG_STAGING_EXCLUDE_BUILD=y
922 951
923# 952#
924# File systems 953# File systems
@@ -939,7 +968,9 @@ CONFIG_FS_MBCACHE=m
939# CONFIG_FS_POSIX_ACL is not set 968# CONFIG_FS_POSIX_ACL is not set
940CONFIG_FILE_LOCKING=y 969CONFIG_FILE_LOCKING=y
941# CONFIG_XFS_FS is not set 970# CONFIG_XFS_FS is not set
971# CONFIG_GFS2_FS is not set
942# CONFIG_OCFS2_FS is not set 972# CONFIG_OCFS2_FS is not set
973# CONFIG_BTRFS_FS is not set
943CONFIG_DNOTIFY=y 974CONFIG_DNOTIFY=y
944CONFIG_INOTIFY=y 975CONFIG_INOTIFY=y
945CONFIG_INOTIFY_USER=y 976CONFIG_INOTIFY_USER=y
@@ -976,10 +1007,7 @@ CONFIG_TMPFS=y
976# CONFIG_TMPFS_POSIX_ACL is not set 1007# CONFIG_TMPFS_POSIX_ACL is not set
977# CONFIG_HUGETLB_PAGE is not set 1008# CONFIG_HUGETLB_PAGE is not set
978# CONFIG_CONFIGFS_FS is not set 1009# CONFIG_CONFIGFS_FS is not set
979 1010CONFIG_MISC_FILESYSTEMS=y
980#
981# Miscellaneous filesystems
982#
983# CONFIG_ADFS_FS is not set 1011# CONFIG_ADFS_FS is not set
984# CONFIG_AFFS_FS is not set 1012# CONFIG_AFFS_FS is not set
985# CONFIG_HFS_FS is not set 1013# CONFIG_HFS_FS is not set
@@ -1005,6 +1033,7 @@ CONFIG_UBIFS_FS_LZO=y
1005CONFIG_UBIFS_FS_ZLIB=y 1033CONFIG_UBIFS_FS_ZLIB=y
1006# CONFIG_UBIFS_FS_DEBUG is not set 1034# CONFIG_UBIFS_FS_DEBUG is not set
1007CONFIG_CRAMFS=y 1035CONFIG_CRAMFS=y
1036# CONFIG_SQUASHFS is not set
1008# CONFIG_VXFS_FS is not set 1037# CONFIG_VXFS_FS is not set
1009# CONFIG_MINIX_FS is not set 1038# CONFIG_MINIX_FS is not set
1010# CONFIG_OMFS_FS is not set 1039# CONFIG_OMFS_FS is not set
@@ -1084,6 +1113,7 @@ CONFIG_NLS_ISO8859_1=m
1084# Library routines 1113# Library routines
1085# 1114#
1086CONFIG_BITREVERSE=y 1115CONFIG_BITREVERSE=y
1116CONFIG_GENERIC_FIND_LAST_BIT=y
1087# CONFIG_CRC_CCITT is not set 1117# CONFIG_CRC_CCITT is not set
1088CONFIG_CRC16=m 1118CONFIG_CRC16=m
1089# CONFIG_CRC_T10DIF is not set 1119# CONFIG_CRC_T10DIF is not set
@@ -1137,6 +1167,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1137# CONFIG_DEBUG_MEMORY_INIT is not set 1167# CONFIG_DEBUG_MEMORY_INIT is not set
1138# CONFIG_DEBUG_LIST is not set 1168# CONFIG_DEBUG_LIST is not set
1139# CONFIG_DEBUG_SG is not set 1169# CONFIG_DEBUG_SG is not set
1170# CONFIG_DEBUG_NOTIFIERS is not set
1140# CONFIG_BOOT_PRINTK_DELAY is not set 1171# CONFIG_BOOT_PRINTK_DELAY is not set
1141# CONFIG_RCU_TORTURE_TEST is not set 1172# CONFIG_RCU_TORTURE_TEST is not set
1142# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1173# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1146,6 +1177,8 @@ CONFIG_DEBUG_BUGVERBOSE=y
1146# CONFIG_LATENCYTOP is not set 1177# CONFIG_LATENCYTOP is not set
1147CONFIG_SYSCTL_SYSCALL_CHECK=y 1178CONFIG_SYSCTL_SYSCALL_CHECK=y
1148CONFIG_HAVE_FUNCTION_TRACER=y 1179CONFIG_HAVE_FUNCTION_TRACER=y
1180CONFIG_HAVE_DYNAMIC_FTRACE=y
1181CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1149 1182
1150# 1183#
1151# Tracers 1184# Tracers
@@ -1154,11 +1187,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1154# CONFIG_SCHED_TRACER is not set 1187# CONFIG_SCHED_TRACER is not set
1155# CONFIG_CONTEXT_SWITCH_TRACER is not set 1188# CONFIG_CONTEXT_SWITCH_TRACER is not set
1156# CONFIG_BOOT_TRACER is not set 1189# CONFIG_BOOT_TRACER is not set
1190# CONFIG_TRACE_BRANCH_PROFILING is not set
1157# CONFIG_STACK_TRACER is not set 1191# CONFIG_STACK_TRACER is not set
1158# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1192# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1159# CONFIG_SAMPLES is not set 1193# CONFIG_SAMPLES is not set
1160CONFIG_HAVE_ARCH_KGDB=y 1194CONFIG_HAVE_ARCH_KGDB=y
1161# CONFIG_KGDB is not set 1195# CONFIG_KGDB is not set
1196CONFIG_PRINT_STACK_DEPTH=64
1162# CONFIG_DEBUG_STACKOVERFLOW is not set 1197# CONFIG_DEBUG_STACKOVERFLOW is not set
1163# CONFIG_DEBUG_STACK_USAGE is not set 1198# CONFIG_DEBUG_STACK_USAGE is not set
1164# CONFIG_DEBUG_PAGEALLOC is not set 1199# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1185,11 +1220,15 @@ CONFIG_CRYPTO=y
1185# 1220#
1186# CONFIG_CRYPTO_FIPS is not set 1221# CONFIG_CRYPTO_FIPS is not set
1187CONFIG_CRYPTO_ALGAPI=y 1222CONFIG_CRYPTO_ALGAPI=y
1188CONFIG_CRYPTO_AEAD=y 1223CONFIG_CRYPTO_ALGAPI2=y
1224CONFIG_CRYPTO_AEAD2=y
1189CONFIG_CRYPTO_BLKCIPHER=y 1225CONFIG_CRYPTO_BLKCIPHER=y
1226CONFIG_CRYPTO_BLKCIPHER2=y
1190CONFIG_CRYPTO_HASH=y 1227CONFIG_CRYPTO_HASH=y
1191CONFIG_CRYPTO_RNG=y 1228CONFIG_CRYPTO_HASH2=y
1229CONFIG_CRYPTO_RNG2=y
1192CONFIG_CRYPTO_MANAGER=y 1230CONFIG_CRYPTO_MANAGER=y
1231CONFIG_CRYPTO_MANAGER2=y
1193# CONFIG_CRYPTO_GF128MUL is not set 1232# CONFIG_CRYPTO_GF128MUL is not set
1194# CONFIG_CRYPTO_NULL is not set 1233# CONFIG_CRYPTO_NULL is not set
1195# CONFIG_CRYPTO_CRYPTD is not set 1234# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig
index 034a1fbdc887..5e6d55f006bb 100644
--- a/arch/powerpc/configs/ppc44x_defconfig
+++ b/arch/powerpc/configs/ppc44x_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Fri Nov 14 10:06:19 2008 4# Fri Jan 23 08:43:46 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -45,7 +46,7 @@ CONFIG_GENERIC_GPIO=y
45CONFIG_PPC=y 46CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 48CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 49CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 50CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 51CONFIG_PPC_OF=y
51CONFIG_OF=y 52CONFIG_OF=y
@@ -76,12 +77,12 @@ CONFIG_POSIX_MQUEUE=y
76# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -94,6 +95,7 @@ CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
95CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
96CONFIG_KALLSYMS_ALL=y 97CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_STRIP_GENERATED=y
97CONFIG_KALLSYMS_EXTRA_PASS=y 99CONFIG_KALLSYMS_EXTRA_PASS=y
98CONFIG_HOTPLUG=y 100CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 101CONFIG_PRINTK=y
@@ -116,7 +118,6 @@ CONFIG_SLUB_DEBUG=y
116CONFIG_SLUB=y 118CONFIG_SLUB=y
117# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -127,7 +128,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
130# CONFIG_TINY_SHMEM is not set
131CONFIG_BASE_SMALL=0 131CONFIG_BASE_SMALL=0
132CONFIG_MODULES=y 132CONFIG_MODULES=y
133# CONFIG_MODULE_FORCE_LOAD is not set 133# CONFIG_MODULE_FORCE_LOAD is not set
@@ -135,11 +135,9 @@ CONFIG_MODULE_UNLOAD=y
135# CONFIG_MODULE_FORCE_UNLOAD is not set 135# CONFIG_MODULE_FORCE_UNLOAD is not set
136# CONFIG_MODVERSIONS is not set 136# CONFIG_MODVERSIONS is not set
137# CONFIG_MODULE_SRCVERSION_ALL is not set 137# CONFIG_MODULE_SRCVERSION_ALL is not set
138CONFIG_KMOD=y
139CONFIG_BLOCK=y 138CONFIG_BLOCK=y
140CONFIG_LBD=y 139CONFIG_LBD=y
141# CONFIG_BLK_DEV_IO_TRACE is not set 140# CONFIG_BLK_DEV_IO_TRACE is not set
142# CONFIG_LSF is not set
143# CONFIG_BLK_DEV_BSG is not set 141# CONFIG_BLK_DEV_BSG is not set
144# CONFIG_BLK_DEV_INTEGRITY is not set 142# CONFIG_BLK_DEV_INTEGRITY is not set
145 143
@@ -157,6 +155,10 @@ CONFIG_DEFAULT_AS=y
157CONFIG_DEFAULT_IOSCHED="anticipatory" 155CONFIG_DEFAULT_IOSCHED="anticipatory"
158CONFIG_PREEMPT_NOTIFIERS=y 156CONFIG_PREEMPT_NOTIFIERS=y
159CONFIG_CLASSIC_RCU=y 157CONFIG_CLASSIC_RCU=y
158# CONFIG_TREE_RCU is not set
159# CONFIG_PREEMPT_RCU is not set
160# CONFIG_TREE_RCU_TRACE is not set
161# CONFIG_PREEMPT_RCU_TRACE is not set
160# CONFIG_FREEZER is not set 162# CONFIG_FREEZER is not set
161CONFIG_PPC4xx_PCI_EXPRESS=y 163CONFIG_PPC4xx_PCI_EXPRESS=y
162 164
@@ -204,6 +206,7 @@ CONFIG_XILINX_VIRTEX_5_FXT=y
204# CONFIG_CPU_FREQ is not set 206# CONFIG_CPU_FREQ is not set
205# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
206CONFIG_OF_RTC=y 208CONFIG_OF_RTC=y
209# CONFIG_SIMPLE_GPIO is not set
207 210
208# 211#
209# Kernel options 212# Kernel options
@@ -227,6 +230,7 @@ CONFIG_BINFMT_ELF=y
227# CONFIG_BINFMT_MISC is not set 230# CONFIG_BINFMT_MISC is not set
228CONFIG_MATH_EMULATION=y 231CONFIG_MATH_EMULATION=y
229# CONFIG_IOMMU_HELPER is not set 232# CONFIG_IOMMU_HELPER is not set
233CONFIG_PPC_NEED_DMA_SYNC_OPS=y
230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 234CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
231CONFIG_ARCH_HAS_WALK_MEMORY=y 235CONFIG_ARCH_HAS_WALK_MEMORY=y
232CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 236CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -241,12 +245,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
241CONFIG_PAGEFLAGS_EXTENDED=y 245CONFIG_PAGEFLAGS_EXTENDED=y
242CONFIG_SPLIT_PTLOCK_CPUS=4 246CONFIG_SPLIT_PTLOCK_CPUS=4
243CONFIG_MIGRATION=y 247CONFIG_MIGRATION=y
244CONFIG_RESOURCES_64BIT=y
245CONFIG_PHYS_ADDR_T_64BIT=y 248CONFIG_PHYS_ADDR_T_64BIT=y
246CONFIG_ZONE_DMA_FLAG=1 249CONFIG_ZONE_DMA_FLAG=1
247CONFIG_BOUNCE=y 250CONFIG_BOUNCE=y
248CONFIG_VIRT_TO_BUS=y 251CONFIG_VIRT_TO_BUS=y
249CONFIG_UNEVICTABLE_LRU=y 252CONFIG_UNEVICTABLE_LRU=y
253CONFIG_PPC_4K_PAGES=y
254# CONFIG_PPC_16K_PAGES is not set
255# CONFIG_PPC_64K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 256CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 257CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 258# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +275,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
269# CONFIG_PCI_MSI is not set 275# CONFIG_PCI_MSI is not set
270# CONFIG_PCI_LEGACY is not set 276# CONFIG_PCI_LEGACY is not set
271# CONFIG_PCI_DEBUG is not set 277# CONFIG_PCI_DEBUG is not set
278# CONFIG_PCI_STUB is not set
272# CONFIG_PCCARD is not set 279# CONFIG_PCCARD is not set
273# CONFIG_HOTPLUG_PCI is not set 280# CONFIG_HOTPLUG_PCI is not set
274# CONFIG_HAS_RAPIDIO is not set 281# CONFIG_HAS_RAPIDIO is not set
@@ -293,6 +300,7 @@ CONFIG_NET=y
293# 300#
294# Networking options 301# Networking options
295# 302#
303CONFIG_COMPAT_NET_DEV_OPS=y
296CONFIG_PACKET=y 304CONFIG_PACKET=y
297# CONFIG_PACKET_MMAP is not set 305# CONFIG_PACKET_MMAP is not set
298CONFIG_UNIX=y 306CONFIG_UNIX=y
@@ -354,10 +362,12 @@ CONFIG_IPV6_NDISC_NODETYPE=y
354# CONFIG_IP_SCTP is not set 362# CONFIG_IP_SCTP is not set
355# CONFIG_TIPC is not set 363# CONFIG_TIPC is not set
356# CONFIG_ATM is not set 364# CONFIG_ATM is not set
365CONFIG_STP=m
357CONFIG_BRIDGE=m 366CONFIG_BRIDGE=m
358# CONFIG_NET_DSA is not set 367# CONFIG_NET_DSA is not set
359# CONFIG_VLAN_8021Q is not set 368# CONFIG_VLAN_8021Q is not set
360# CONFIG_DECNET is not set 369# CONFIG_DECNET is not set
370CONFIG_LLC=m
361# CONFIG_LLC2 is not set 371# CONFIG_LLC2 is not set
362# CONFIG_IPX is not set 372# CONFIG_IPX is not set
363# CONFIG_ATALK is not set 373# CONFIG_ATALK is not set
@@ -366,6 +376,7 @@ CONFIG_BRIDGE=m
366# CONFIG_ECONET is not set 376# CONFIG_ECONET is not set
367# CONFIG_WAN_ROUTER is not set 377# CONFIG_WAN_ROUTER is not set
368# CONFIG_NET_SCHED is not set 378# CONFIG_NET_SCHED is not set
379# CONFIG_DCB is not set
369 380
370# 381#
371# Network testing 382# Network testing
@@ -378,6 +389,7 @@ CONFIG_BRIDGE=m
378# CONFIG_AF_RXRPC is not set 389# CONFIG_AF_RXRPC is not set
379# CONFIG_PHONET is not set 390# CONFIG_PHONET is not set
380# CONFIG_WIRELESS is not set 391# CONFIG_WIRELESS is not set
392# CONFIG_WIMAX is not set
381# CONFIG_RFKILL is not set 393# CONFIG_RFKILL is not set
382# CONFIG_NET_9P is not set 394# CONFIG_NET_9P is not set
383 395
@@ -403,6 +415,7 @@ CONFIG_MTD=y
403# CONFIG_MTD_DEBUG is not set 415# CONFIG_MTD_DEBUG is not set
404# CONFIG_MTD_CONCAT is not set 416# CONFIG_MTD_CONCAT is not set
405CONFIG_MTD_PARTITIONS=y 417CONFIG_MTD_PARTITIONS=y
418# CONFIG_MTD_TESTS is not set
406# CONFIG_MTD_REDBOOT_PARTS is not set 419# CONFIG_MTD_REDBOOT_PARTS is not set
407# CONFIG_MTD_CMDLINE_PARTS is not set 420# CONFIG_MTD_CMDLINE_PARTS is not set
408CONFIG_MTD_OF_PARTS=y 421CONFIG_MTD_OF_PARTS=y
@@ -474,6 +487,12 @@ CONFIG_MTD_PHYSMAP_OF=y
474# CONFIG_MTD_ONENAND is not set 487# CONFIG_MTD_ONENAND is not set
475 488
476# 489#
490# LPDDR flash memory drivers
491#
492# CONFIG_MTD_LPDDR is not set
493# CONFIG_MTD_QINFO_PROBE is not set
494
495#
477# UBI - Unsorted block images 496# UBI - Unsorted block images
478# 497#
479CONFIG_MTD_UBI=m 498CONFIG_MTD_UBI=m
@@ -631,6 +650,7 @@ CONFIG_NETDEV_1000=y
631# CONFIG_JME is not set 650# CONFIG_JME is not set
632CONFIG_NETDEV_10000=y 651CONFIG_NETDEV_10000=y
633# CONFIG_CHELSIO_T1 is not set 652# CONFIG_CHELSIO_T1 is not set
653CONFIG_CHELSIO_T3_DEPENDS=y
634# CONFIG_CHELSIO_T3 is not set 654# CONFIG_CHELSIO_T3 is not set
635# CONFIG_ENIC is not set 655# CONFIG_ENIC is not set
636# CONFIG_IXGBE is not set 656# CONFIG_IXGBE is not set
@@ -655,6 +675,10 @@ CONFIG_NETDEV_10000=y
655# CONFIG_IWLWIFI_LEDS is not set 675# CONFIG_IWLWIFI_LEDS is not set
656 676
657# 677#
678# Enable WiMAX (Networking options) to see the WiMAX drivers
679#
680
681#
658# USB Network Adapters 682# USB Network Adapters
659# 683#
660# CONFIG_USB_CATC is not set 684# CONFIG_USB_CATC is not set
@@ -722,9 +746,12 @@ CONFIG_SERIAL_CORE=y
722CONFIG_SERIAL_CORE_CONSOLE=y 746CONFIG_SERIAL_CORE_CONSOLE=y
723# CONFIG_SERIAL_JSM is not set 747# CONFIG_SERIAL_JSM is not set
724CONFIG_SERIAL_OF_PLATFORM=y 748CONFIG_SERIAL_OF_PLATFORM=y
749# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
725CONFIG_UNIX98_PTYS=y 750CONFIG_UNIX98_PTYS=y
751# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
726CONFIG_LEGACY_PTYS=y 752CONFIG_LEGACY_PTYS=y
727CONFIG_LEGACY_PTY_COUNT=256 753CONFIG_LEGACY_PTY_COUNT=256
754# CONFIG_HVC_UDBG is not set
728# CONFIG_IPMI_HANDLER is not set 755# CONFIG_IPMI_HANDLER is not set
729# CONFIG_HW_RANDOM is not set 756# CONFIG_HW_RANDOM is not set
730# CONFIG_NVRAM is not set 757# CONFIG_NVRAM is not set
@@ -794,13 +821,12 @@ CONFIG_I2C_IBM_IIC=m
794# Miscellaneous I2C Chip support 821# Miscellaneous I2C Chip support
795# 822#
796# CONFIG_DS1682 is not set 823# CONFIG_DS1682 is not set
797# CONFIG_AT24 is not set 824# CONFIG_EEPROM_AT24 is not set
798# CONFIG_SENSORS_EEPROM is not set 825# CONFIG_EEPROM_LEGACY is not set
799# CONFIG_SENSORS_PCF8574 is not set 826# CONFIG_SENSORS_PCF8574 is not set
800# CONFIG_PCF8575 is not set 827# CONFIG_PCF8575 is not set
801# CONFIG_SENSORS_PCA9539 is not set 828# CONFIG_SENSORS_PCA9539 is not set
802# CONFIG_SENSORS_PCF8591 is not set 829# CONFIG_SENSORS_PCF8591 is not set
803# CONFIG_TPS65010 is not set
804# CONFIG_SENSORS_MAX6875 is not set 830# CONFIG_SENSORS_MAX6875 is not set
805# CONFIG_SENSORS_TSL2550 is not set 831# CONFIG_SENSORS_TSL2550 is not set
806# CONFIG_I2C_DEBUG_CORE is not set 832# CONFIG_I2C_DEBUG_CORE is not set
@@ -853,9 +879,11 @@ CONFIG_SSB_POSSIBLE=y
853# CONFIG_MFD_CORE is not set 879# CONFIG_MFD_CORE is not set
854# CONFIG_MFD_SM501 is not set 880# CONFIG_MFD_SM501 is not set
855# CONFIG_HTC_PASIC3 is not set 881# CONFIG_HTC_PASIC3 is not set
882# CONFIG_TPS65010 is not set
856# CONFIG_MFD_TMIO is not set 883# CONFIG_MFD_TMIO is not set
857# CONFIG_MFD_WM8400 is not set 884# CONFIG_MFD_WM8400 is not set
858# CONFIG_MFD_WM8350_I2C is not set 885# CONFIG_MFD_WM8350_I2C is not set
886# CONFIG_MFD_PCF50633 is not set
859# CONFIG_REGULATOR is not set 887# CONFIG_REGULATOR is not set
860 888
861# 889#
@@ -972,6 +1000,7 @@ CONFIG_USB_EHCI_HCD=m
972CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 1000CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
973CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y 1001CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y
974CONFIG_USB_EHCI_HCD_PPC_OF=y 1002CONFIG_USB_EHCI_HCD_PPC_OF=y
1003# CONFIG_USB_OXU210HP_HCD is not set
975# CONFIG_USB_ISP116X_HCD is not set 1004# CONFIG_USB_ISP116X_HCD is not set
976# CONFIG_USB_ISP1760_HCD is not set 1005# CONFIG_USB_ISP1760_HCD is not set
977CONFIG_USB_OHCI_HCD=m 1006CONFIG_USB_OHCI_HCD=m
@@ -1012,7 +1041,6 @@ CONFIG_USB_STORAGE=m
1012# CONFIG_USB_STORAGE_DATAFAB is not set 1041# CONFIG_USB_STORAGE_DATAFAB is not set
1013# CONFIG_USB_STORAGE_FREECOM is not set 1042# CONFIG_USB_STORAGE_FREECOM is not set
1014# CONFIG_USB_STORAGE_ISD200 is not set 1043# CONFIG_USB_STORAGE_ISD200 is not set
1015# CONFIG_USB_STORAGE_DPCM is not set
1016# CONFIG_USB_STORAGE_USBAT is not set 1044# CONFIG_USB_STORAGE_USBAT is not set
1017# CONFIG_USB_STORAGE_SDDR09 is not set 1045# CONFIG_USB_STORAGE_SDDR09 is not set
1018# CONFIG_USB_STORAGE_SDDR55 is not set 1046# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1058,6 +1086,11 @@ CONFIG_USB_STORAGE=m
1058# CONFIG_USB_ISIGHTFW is not set 1086# CONFIG_USB_ISIGHTFW is not set
1059# CONFIG_USB_VST is not set 1087# CONFIG_USB_VST is not set
1060# CONFIG_USB_GADGET is not set 1088# CONFIG_USB_GADGET is not set
1089
1090#
1091# OTG and related infrastructure
1092#
1093# CONFIG_USB_GPIO_VBUS is not set
1061# CONFIG_UWB is not set 1094# CONFIG_UWB is not set
1062# CONFIG_MMC is not set 1095# CONFIG_MMC is not set
1063# CONFIG_MEMSTICK is not set 1096# CONFIG_MEMSTICK is not set
@@ -1069,7 +1102,6 @@ CONFIG_USB_STORAGE=m
1069# CONFIG_DMADEVICES is not set 1102# CONFIG_DMADEVICES is not set
1070# CONFIG_UIO is not set 1103# CONFIG_UIO is not set
1071# CONFIG_STAGING is not set 1104# CONFIG_STAGING is not set
1072CONFIG_STAGING_EXCLUDE_BUILD=y
1073 1105
1074# 1106#
1075# File systems 1107# File systems
@@ -1089,7 +1121,9 @@ CONFIG_FS_MBCACHE=m
1089# CONFIG_FS_POSIX_ACL is not set 1121# CONFIG_FS_POSIX_ACL is not set
1090CONFIG_FILE_LOCKING=y 1122CONFIG_FILE_LOCKING=y
1091# CONFIG_XFS_FS is not set 1123# CONFIG_XFS_FS is not set
1124# CONFIG_GFS2_FS is not set
1092# CONFIG_OCFS2_FS is not set 1125# CONFIG_OCFS2_FS is not set
1126# CONFIG_BTRFS_FS is not set
1093CONFIG_DNOTIFY=y 1127CONFIG_DNOTIFY=y
1094CONFIG_INOTIFY=y 1128CONFIG_INOTIFY=y
1095CONFIG_INOTIFY_USER=y 1129CONFIG_INOTIFY_USER=y
@@ -1126,10 +1160,7 @@ CONFIG_TMPFS=y
1126# CONFIG_TMPFS_POSIX_ACL is not set 1160# CONFIG_TMPFS_POSIX_ACL is not set
1127# CONFIG_HUGETLB_PAGE is not set 1161# CONFIG_HUGETLB_PAGE is not set
1128# CONFIG_CONFIGFS_FS is not set 1162# CONFIG_CONFIGFS_FS is not set
1129 1163CONFIG_MISC_FILESYSTEMS=y
1130#
1131# Miscellaneous filesystems
1132#
1133# CONFIG_ADFS_FS is not set 1164# CONFIG_ADFS_FS is not set
1134# CONFIG_AFFS_FS is not set 1165# CONFIG_AFFS_FS is not set
1135# CONFIG_HFS_FS is not set 1166# CONFIG_HFS_FS is not set
@@ -1155,6 +1186,7 @@ CONFIG_UBIFS_FS_LZO=y
1155CONFIG_UBIFS_FS_ZLIB=y 1186CONFIG_UBIFS_FS_ZLIB=y
1156# CONFIG_UBIFS_FS_DEBUG is not set 1187# CONFIG_UBIFS_FS_DEBUG is not set
1157CONFIG_CRAMFS=y 1188CONFIG_CRAMFS=y
1189# CONFIG_SQUASHFS is not set
1158# CONFIG_VXFS_FS is not set 1190# CONFIG_VXFS_FS is not set
1159# CONFIG_MINIX_FS is not set 1191# CONFIG_MINIX_FS is not set
1160# CONFIG_OMFS_FS is not set 1192# CONFIG_OMFS_FS is not set
@@ -1234,6 +1266,7 @@ CONFIG_NLS_ISO8859_1=m
1234# Library routines 1266# Library routines
1235# 1267#
1236CONFIG_BITREVERSE=y 1268CONFIG_BITREVERSE=y
1269CONFIG_GENERIC_FIND_LAST_BIT=y
1237# CONFIG_CRC_CCITT is not set 1270# CONFIG_CRC_CCITT is not set
1238CONFIG_CRC16=m 1271CONFIG_CRC16=m
1239CONFIG_CRC_T10DIF=m 1272CONFIG_CRC_T10DIF=m
@@ -1287,6 +1320,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1287# CONFIG_DEBUG_MEMORY_INIT is not set 1320# CONFIG_DEBUG_MEMORY_INIT is not set
1288# CONFIG_DEBUG_LIST is not set 1321# CONFIG_DEBUG_LIST is not set
1289# CONFIG_DEBUG_SG is not set 1322# CONFIG_DEBUG_SG is not set
1323# CONFIG_DEBUG_NOTIFIERS is not set
1290# CONFIG_BOOT_PRINTK_DELAY is not set 1324# CONFIG_BOOT_PRINTK_DELAY is not set
1291# CONFIG_RCU_TORTURE_TEST is not set 1325# CONFIG_RCU_TORTURE_TEST is not set
1292# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1326# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1296,6 +1330,8 @@ CONFIG_DEBUG_BUGVERBOSE=y
1296# CONFIG_LATENCYTOP is not set 1330# CONFIG_LATENCYTOP is not set
1297CONFIG_SYSCTL_SYSCALL_CHECK=y 1331CONFIG_SYSCTL_SYSCALL_CHECK=y
1298CONFIG_HAVE_FUNCTION_TRACER=y 1332CONFIG_HAVE_FUNCTION_TRACER=y
1333CONFIG_HAVE_DYNAMIC_FTRACE=y
1334CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1299 1335
1300# 1336#
1301# Tracers 1337# Tracers
@@ -1304,11 +1340,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1304# CONFIG_SCHED_TRACER is not set 1340# CONFIG_SCHED_TRACER is not set
1305# CONFIG_CONTEXT_SWITCH_TRACER is not set 1341# CONFIG_CONTEXT_SWITCH_TRACER is not set
1306# CONFIG_BOOT_TRACER is not set 1342# CONFIG_BOOT_TRACER is not set
1343# CONFIG_TRACE_BRANCH_PROFILING is not set
1307# CONFIG_STACK_TRACER is not set 1344# CONFIG_STACK_TRACER is not set
1308# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1345# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1309# CONFIG_SAMPLES is not set 1346# CONFIG_SAMPLES is not set
1310CONFIG_HAVE_ARCH_KGDB=y 1347CONFIG_HAVE_ARCH_KGDB=y
1311# CONFIG_KGDB is not set 1348# CONFIG_KGDB is not set
1349CONFIG_PRINT_STACK_DEPTH=64
1312# CONFIG_DEBUG_STACKOVERFLOW is not set 1350# CONFIG_DEBUG_STACKOVERFLOW is not set
1313# CONFIG_DEBUG_STACK_USAGE is not set 1351# CONFIG_DEBUG_STACK_USAGE is not set
1314# CONFIG_DEBUG_PAGEALLOC is not set 1352# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1333,11 +1371,15 @@ CONFIG_CRYPTO=y
1333# 1371#
1334# CONFIG_CRYPTO_FIPS is not set 1372# CONFIG_CRYPTO_FIPS is not set
1335CONFIG_CRYPTO_ALGAPI=y 1373CONFIG_CRYPTO_ALGAPI=y
1336CONFIG_CRYPTO_AEAD=y 1374CONFIG_CRYPTO_ALGAPI2=y
1375CONFIG_CRYPTO_AEAD2=y
1337CONFIG_CRYPTO_BLKCIPHER=y 1376CONFIG_CRYPTO_BLKCIPHER=y
1377CONFIG_CRYPTO_BLKCIPHER2=y
1338CONFIG_CRYPTO_HASH=y 1378CONFIG_CRYPTO_HASH=y
1339CONFIG_CRYPTO_RNG=y 1379CONFIG_CRYPTO_HASH2=y
1380CONFIG_CRYPTO_RNG2=y
1340CONFIG_CRYPTO_MANAGER=y 1381CONFIG_CRYPTO_MANAGER=y
1382CONFIG_CRYPTO_MANAGER2=y
1341# CONFIG_CRYPTO_GF128MUL is not set 1383# CONFIG_CRYPTO_GF128MUL is not set
1342# CONFIG_CRYPTO_NULL is not set 1384# CONFIG_CRYPTO_NULL is not set
1343# CONFIG_CRYPTO_CRYPTD is not set 1385# CONFIG_CRYPTO_CRYPTD is not set
@@ -1419,5 +1461,6 @@ CONFIG_CRYPTO_LZO=m
1419CONFIG_VIRTUALIZATION=y 1461CONFIG_VIRTUALIZATION=y
1420CONFIG_KVM=y 1462CONFIG_KVM=y
1421CONFIG_KVM_440=y 1463CONFIG_KVM_440=y
1464# CONFIG_KVM_EXIT_TIMING is not set
1422# CONFIG_VIRTIO_PCI is not set 1465# CONFIG_VIRTIO_PCI is not set
1423# CONFIG_VIRTIO_BALLOON is not set 1466# CONFIG_VIRTIO_BALLOON is not set
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index 069ae1bbac29..88c6295b76c1 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -211,11 +211,28 @@ CONFIG_PPC_PASEMI=y
211CONFIG_PPC_PASEMI_IOMMU=y 211CONFIG_PPC_PASEMI_IOMMU=y
212# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set 212# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
213CONFIG_PPC_PASEMI_MDIO=y 213CONFIG_PPC_PASEMI_MDIO=y
214# CONFIG_PPC_PS3 is not set 214CONFIG_PPC_PS3=y
215
216#
217# PS3 Platform Options
218#
219# CONFIG_PS3_ADVANCED is not set
220CONFIG_PS3_HTAB_SIZE=20
221# CONFIG_PS3_DYNAMIC_DMA is not set
222CONFIG_PS3_VUART=y
223CONFIG_PS3_PS3AV=y
224CONFIG_PS3_SYS_MANAGER=y
225CONFIG_PS3_STORAGE=m
226CONFIG_PS3_DISK=m
227CONFIG_PS3_ROM=m
228CONFIG_PS3_FLASH=m
229CONFIG_PS3_LPM=m
215CONFIG_PPC_CELL=y 230CONFIG_PPC_CELL=y
231CONFIG_PPC_CELL_COMMON=y
216CONFIG_PPC_CELL_NATIVE=y 232CONFIG_PPC_CELL_NATIVE=y
217CONFIG_PPC_IBM_CELL_BLADE=y 233CONFIG_PPC_IBM_CELL_BLADE=y
218CONFIG_PPC_CELLEB=y 234CONFIG_PPC_CELLEB=y
235CONFIG_PPC_CELL_QPACE=y
219 236
220# 237#
221# Cell Broadband Engine options 238# Cell Broadband Engine options
@@ -981,6 +998,9 @@ CONFIG_E1000=y
981CONFIG_TIGON3=y 998CONFIG_TIGON3=y
982# CONFIG_BNX2 is not set 999# CONFIG_BNX2 is not set
983CONFIG_SPIDER_NET=m 1000CONFIG_SPIDER_NET=m
1001CONFIG_GELIC_NET=m
1002CONFIG_GELIC_WIRELESS=y
1003# CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE is not set
984# CONFIG_QLA3XXX is not set 1004# CONFIG_QLA3XXX is not set
985# CONFIG_ATL1 is not set 1005# CONFIG_ATL1 is not set
986# CONFIG_ATL1E is not set 1006# CONFIG_ATL1E is not set
@@ -1241,8 +1261,8 @@ CONFIG_I2C_PASEMI=y
1241# Miscellaneous I2C Chip support 1261# Miscellaneous I2C Chip support
1242# 1262#
1243# CONFIG_DS1682 is not set 1263# CONFIG_DS1682 is not set
1244# CONFIG_AT24 is not set 1264# CONFIG_EEPROM_AT24 is not set
1245# CONFIG_SENSORS_EEPROM is not set 1265# CONFIG_EEPROM_LEGACY is not set
1246# CONFIG_SENSORS_PCF8574 is not set 1266# CONFIG_SENSORS_PCF8574 is not set
1247# CONFIG_PCF8575 is not set 1267# CONFIG_PCF8575 is not set
1248# CONFIG_SENSORS_PCA9539 is not set 1268# CONFIG_SENSORS_PCA9539 is not set
@@ -1370,6 +1390,8 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1370# CONFIG_FB_PM3 is not set 1390# CONFIG_FB_PM3 is not set
1371# CONFIG_FB_CARMINE is not set 1391# CONFIG_FB_CARMINE is not set
1372CONFIG_FB_IBM_GXT4500=y 1392CONFIG_FB_IBM_GXT4500=y
1393CONFIG_FB_PS3=m
1394CONFIG_FB_PS3_DEFAULT_SIZE_M=9
1373# CONFIG_FB_VIRTUAL is not set 1395# CONFIG_FB_VIRTUAL is not set
1374# CONFIG_FB_METRONOME is not set 1396# CONFIG_FB_METRONOME is not set
1375CONFIG_BACKLIGHT_LCD_SUPPORT=y 1397CONFIG_BACKLIGHT_LCD_SUPPORT=y
@@ -1492,6 +1514,8 @@ CONFIG_SND_PCI=y
1492CONFIG_SND_PPC=y 1514CONFIG_SND_PPC=y
1493CONFIG_SND_POWERMAC=m 1515CONFIG_SND_POWERMAC=m
1494CONFIG_SND_POWERMAC_AUTO_DRC=y 1516CONFIG_SND_POWERMAC_AUTO_DRC=y
1517CONFIG_SND_PS3=m
1518CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
1495CONFIG_SND_AOA=m 1519CONFIG_SND_AOA=m
1496CONFIG_SND_AOA_FABRIC_LAYOUT=m 1520CONFIG_SND_AOA_FABRIC_LAYOUT=m
1497CONFIG_SND_AOA_ONYX=m 1521CONFIG_SND_AOA_ONYX=m
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index 01f05ec5abf3..7d044dfd9236 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -1801,8 +1801,8 @@ CONFIG_I2C_STUB=m
1801# Miscellaneous I2C Chip support 1801# Miscellaneous I2C Chip support
1802# 1802#
1803# CONFIG_DS1682 is not set 1803# CONFIG_DS1682 is not set
1804CONFIG_AT24=m 1804CONFIG_EEPROM_AT24=m
1805CONFIG_SENSORS_EEPROM=m 1805CONFIG_EEPROM_LEGACY=m
1806CONFIG_SENSORS_PCF8574=m 1806CONFIG_SENSORS_PCF8574=m
1807CONFIG_PCF8575=m 1807CONFIG_PCF8575=m
1808CONFIG_SENSORS_PCA9539=m 1808CONFIG_SENSORS_PCA9539=m
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index 228099d77c3b..fdded96633a1 100644
--- a/arch/powerpc/configs/pq2fads_defconfig
+++ b/arch/powerpc/configs/pq2fads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:47 2008 4# Mon Jan 26 15:35:42 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_GPIO=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -87,6 +87,7 @@ CONFIG_EMBEDDED=y
87CONFIG_SYSCTL_SYSCALL=y 87CONFIG_SYSCTL_SYSCALL=y
88CONFIG_KALLSYMS=y 88CONFIG_KALLSYMS=y
89CONFIG_KALLSYMS_ALL=y 89CONFIG_KALLSYMS_ALL=y
90CONFIG_KALLSYMS_STRIP_GENERATED=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 91# CONFIG_KALLSYMS_EXTRA_PASS is not set
91CONFIG_HOTPLUG=y 92CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 93CONFIG_PRINTK=y
@@ -109,7 +110,6 @@ CONFIG_SLUB_DEBUG=y
109CONFIG_SLUB=y 110CONFIG_SLUB=y
110# CONFIG_SLOB is not set 111# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
115CONFIG_HAVE_IOREMAP_PROT=y 115CONFIG_HAVE_IOREMAP_PROT=y
@@ -120,13 +120,11 @@ CONFIG_HAVE_CLK=y
120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 121CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set
124CONFIG_BASE_SMALL=0 123CONFIG_BASE_SMALL=0
125# CONFIG_MODULES is not set 124# CONFIG_MODULES is not set
126CONFIG_BLOCK=y 125CONFIG_BLOCK=y
127# CONFIG_LBD is not set 126# CONFIG_LBD is not set
128# CONFIG_BLK_DEV_IO_TRACE is not set 127# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_INTEGRITY is not set 128# CONFIG_BLK_DEV_INTEGRITY is not set
131 129
132# 130#
@@ -142,6 +140,10 @@ CONFIG_DEFAULT_AS=y
142# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
143CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
144CONFIG_CLASSIC_RCU=y 142CONFIG_CLASSIC_RCU=y
143# CONFIG_TREE_RCU is not set
144# CONFIG_PREEMPT_RCU is not set
145# CONFIG_TREE_RCU_TRACE is not set
146# CONFIG_PREEMPT_RCU_TRACE is not set
145# CONFIG_FREEZER is not set 147# CONFIG_FREEZER is not set
146 148
147# 149#
@@ -183,6 +185,7 @@ CONFIG_PQ2_ADS_PCI_PIC=y
183CONFIG_CPM2=y 185CONFIG_CPM2=y
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
185CONFIG_CPM=y 187CONFIG_CPM=y
188# CONFIG_SIMPLE_GPIO is not set
186 189
187# 190#
188# Kernel options 191# Kernel options
@@ -209,6 +212,7 @@ CONFIG_BINFMT_MISC=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
210CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
211CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
215# CONFIG_CRASH_DUMP is not set
212CONFIG_ARCH_FLATMEM_ENABLE=y 216CONFIG_ARCH_FLATMEM_ENABLE=y
213CONFIG_ARCH_POPULATES_NODE_MAP=y 217CONFIG_ARCH_POPULATES_NODE_MAP=y
214CONFIG_FLATMEM=y 218CONFIG_FLATMEM=y
@@ -216,12 +220,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216CONFIG_PAGEFLAGS_EXTENDED=y 220CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 221CONFIG_SPLIT_PTLOCK_CPUS=4
218CONFIG_MIGRATION=y 222CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set
220# CONFIG_PHYS_ADDR_T_64BIT is not set 223# CONFIG_PHYS_ADDR_T_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 224CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 225CONFIG_BOUNCE=y
223CONFIG_VIRT_TO_BUS=y 226CONFIG_VIRT_TO_BUS=y
224CONFIG_UNEVICTABLE_LRU=y 227CONFIG_UNEVICTABLE_LRU=y
228CONFIG_PPC_4K_PAGES=y
229# CONFIG_PPC_16K_PAGES is not set
230# CONFIG_PPC_64K_PAGES is not set
225CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
226CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
227# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
@@ -247,6 +253,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
247# CONFIG_PCI_MSI is not set 253# CONFIG_PCI_MSI is not set
248# CONFIG_PCI_LEGACY is not set 254# CONFIG_PCI_LEGACY is not set
249# CONFIG_PCI_DEBUG is not set 255# CONFIG_PCI_DEBUG is not set
256# CONFIG_PCI_STUB is not set
250# CONFIG_PCCARD is not set 257# CONFIG_PCCARD is not set
251# CONFIG_HOTPLUG_PCI is not set 258# CONFIG_HOTPLUG_PCI is not set
252# CONFIG_HAS_RAPIDIO is not set 259# CONFIG_HAS_RAPIDIO is not set
@@ -269,6 +276,7 @@ CONFIG_NET=y
269# 276#
270# Networking options 277# Networking options
271# 278#
279CONFIG_COMPAT_NET_DEV_OPS=y
272CONFIG_PACKET=y 280CONFIG_PACKET=y
273# CONFIG_PACKET_MMAP is not set 281# CONFIG_PACKET_MMAP is not set
274CONFIG_UNIX=y 282CONFIG_UNIX=y
@@ -350,6 +358,7 @@ CONFIG_NETFILTER_ADVANCED=y
350# CONFIG_IPX is not set 358# CONFIG_IPX is not set
351# CONFIG_ATALK is not set 359# CONFIG_ATALK is not set
352# CONFIG_NET_SCHED is not set 360# CONFIG_NET_SCHED is not set
361# CONFIG_DCB is not set
353 362
354# 363#
355# Network testing 364# Network testing
@@ -364,8 +373,9 @@ CONFIG_WIRELESS=y
364# CONFIG_CFG80211 is not set 373# CONFIG_CFG80211 is not set
365CONFIG_WIRELESS_OLD_REGULATORY=y 374CONFIG_WIRELESS_OLD_REGULATORY=y
366# CONFIG_WIRELESS_EXT is not set 375# CONFIG_WIRELESS_EXT is not set
376# CONFIG_LIB80211 is not set
367# CONFIG_MAC80211 is not set 377# CONFIG_MAC80211 is not set
368# CONFIG_IEEE80211 is not set 378# CONFIG_WIMAX is not set
369# CONFIG_RFKILL is not set 379# CONFIG_RFKILL is not set
370 380
371# 381#
@@ -460,6 +470,12 @@ CONFIG_MTD_PHYSMAP_OF=y
460# CONFIG_MTD_ONENAND is not set 470# CONFIG_MTD_ONENAND is not set
461 471
462# 472#
473# LPDDR flash memory drivers
474#
475# CONFIG_MTD_LPDDR is not set
476# CONFIG_MTD_QINFO_PROBE is not set
477
478#
463# UBI - Unsorted block images 479# UBI - Unsorted block images
464# 480#
465# CONFIG_MTD_UBI is not set 481# CONFIG_MTD_UBI is not set
@@ -520,6 +536,7 @@ CONFIG_IDE_PROC_FS=y
520# CONFIG_BLK_DEV_JMICRON is not set 536# CONFIG_BLK_DEV_JMICRON is not set
521# CONFIG_BLK_DEV_SC1200 is not set 537# CONFIG_BLK_DEV_SC1200 is not set
522# CONFIG_BLK_DEV_PIIX is not set 538# CONFIG_BLK_DEV_PIIX is not set
539# CONFIG_BLK_DEV_IT8172 is not set
523# CONFIG_BLK_DEV_IT8213 is not set 540# CONFIG_BLK_DEV_IT8213 is not set
524# CONFIG_BLK_DEV_IT821X is not set 541# CONFIG_BLK_DEV_IT821X is not set
525# CONFIG_BLK_DEV_NS87415 is not set 542# CONFIG_BLK_DEV_NS87415 is not set
@@ -577,9 +594,12 @@ CONFIG_DAVICOM_PHY=y
577# CONFIG_BROADCOM_PHY is not set 594# CONFIG_BROADCOM_PHY is not set
578# CONFIG_ICPLUS_PHY is not set 595# CONFIG_ICPLUS_PHY is not set
579# CONFIG_REALTEK_PHY is not set 596# CONFIG_REALTEK_PHY is not set
597# CONFIG_NATIONAL_PHY is not set
598# CONFIG_STE10XP is not set
599# CONFIG_LSI_ET1011C_PHY is not set
580# CONFIG_FIXED_PHY is not set 600# CONFIG_FIXED_PHY is not set
581CONFIG_MDIO_BITBANG=y 601CONFIG_MDIO_BITBANG=y
582# CONFIG_MDIO_OF_GPIO is not set 602# CONFIG_MDIO_GPIO is not set
583CONFIG_NET_ETHERNET=y 603CONFIG_NET_ETHERNET=y
584CONFIG_MII=y 604CONFIG_MII=y
585# CONFIG_HAPPYMEAL is not set 605# CONFIG_HAPPYMEAL is not set
@@ -624,6 +644,7 @@ CONFIG_NETDEV_1000=y
624# CONFIG_JME is not set 644# CONFIG_JME is not set
625CONFIG_NETDEV_10000=y 645CONFIG_NETDEV_10000=y
626# CONFIG_CHELSIO_T1 is not set 646# CONFIG_CHELSIO_T1 is not set
647CONFIG_CHELSIO_T3_DEPENDS=y
627# CONFIG_CHELSIO_T3 is not set 648# CONFIG_CHELSIO_T3 is not set
628# CONFIG_ENIC is not set 649# CONFIG_ENIC is not set
629# CONFIG_IXGBE is not set 650# CONFIG_IXGBE is not set
@@ -646,6 +667,10 @@ CONFIG_NETDEV_10000=y
646# CONFIG_WLAN_PRE80211 is not set 667# CONFIG_WLAN_PRE80211 is not set
647# CONFIG_WLAN_80211 is not set 668# CONFIG_WLAN_80211 is not set
648# CONFIG_IWLWIFI_LEDS is not set 669# CONFIG_IWLWIFI_LEDS is not set
670
671#
672# Enable WiMAX (Networking options) to see the WiMAX drivers
673#
649# CONFIG_WAN is not set 674# CONFIG_WAN is not set
650# CONFIG_FDDI is not set 675# CONFIG_FDDI is not set
651CONFIG_PPP=y 676CONFIG_PPP=y
@@ -743,6 +768,7 @@ CONFIG_SERIAL_CPM=y
743CONFIG_SERIAL_CPM_CONSOLE=y 768CONFIG_SERIAL_CPM_CONSOLE=y
744# CONFIG_SERIAL_JSM is not set 769# CONFIG_SERIAL_JSM is not set
745CONFIG_UNIX98_PTYS=y 770CONFIG_UNIX98_PTYS=y
771# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
746CONFIG_LEGACY_PTYS=y 772CONFIG_LEGACY_PTYS=y
747CONFIG_LEGACY_PTY_COUNT=256 773CONFIG_LEGACY_PTY_COUNT=256
748# CONFIG_IPMI_HANDLER is not set 774# CONFIG_IPMI_HANDLER is not set
@@ -761,6 +787,11 @@ CONFIG_GPIOLIB=y
761# CONFIG_DEBUG_GPIO is not set 787# CONFIG_DEBUG_GPIO is not set
762 788
763# 789#
790# Memory mapped GPIO expanders:
791#
792# CONFIG_GPIO_XILINX is not set
793
794#
764# I2C GPIO expanders: 795# I2C GPIO expanders:
765# 796#
766 797
@@ -778,11 +809,11 @@ CONFIG_GPIOLIB=y
778# CONFIG_THERMAL is not set 809# CONFIG_THERMAL is not set
779# CONFIG_THERMAL_HWMON is not set 810# CONFIG_THERMAL_HWMON is not set
780# CONFIG_WATCHDOG is not set 811# CONFIG_WATCHDOG is not set
812CONFIG_SSB_POSSIBLE=y
781 813
782# 814#
783# Sonics Silicon Backplane 815# Sonics Silicon Backplane
784# 816#
785CONFIG_SSB_POSSIBLE=y
786# CONFIG_SSB is not set 817# CONFIG_SSB is not set
787 818
788# 819#
@@ -792,14 +823,7 @@ CONFIG_SSB_POSSIBLE=y
792# CONFIG_MFD_SM501 is not set 823# CONFIG_MFD_SM501 is not set
793# CONFIG_HTC_PASIC3 is not set 824# CONFIG_HTC_PASIC3 is not set
794# CONFIG_MFD_TMIO is not set 825# CONFIG_MFD_TMIO is not set
795
796#
797# Voltage and Current regulators
798#
799# CONFIG_REGULATOR is not set 826# CONFIG_REGULATOR is not set
800# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
801# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
802# CONFIG_REGULATOR_BQ24022 is not set
803 827
804# 828#
805# Multimedia devices 829# Multimedia devices
@@ -844,7 +868,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
844# CONFIG_USB_GADGET_MUSB_HDRC is not set 868# CONFIG_USB_GADGET_MUSB_HDRC is not set
845 869
846# 870#
847# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 871# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
848# 872#
849CONFIG_USB_GADGET=y 873CONFIG_USB_GADGET=y
850# CONFIG_USB_GADGET_DEBUG is not set 874# CONFIG_USB_GADGET_DEBUG is not set
@@ -859,10 +883,12 @@ CONFIG_USB_GADGET_SELECTED=y
859# CONFIG_USB_GADGET_PXA25X is not set 883# CONFIG_USB_GADGET_PXA25X is not set
860# CONFIG_USB_GADGET_PXA27X is not set 884# CONFIG_USB_GADGET_PXA27X is not set
861# CONFIG_USB_GADGET_S3C2410 is not set 885# CONFIG_USB_GADGET_S3C2410 is not set
886# CONFIG_USB_GADGET_IMX is not set
862CONFIG_USB_GADGET_M66592=y 887CONFIG_USB_GADGET_M66592=y
863CONFIG_USB_M66592=y 888CONFIG_USB_M66592=y
864# CONFIG_USB_GADGET_AMD5536UDC is not set 889# CONFIG_USB_GADGET_AMD5536UDC is not set
865# CONFIG_USB_GADGET_FSL_QE is not set 890# CONFIG_USB_GADGET_FSL_QE is not set
891# CONFIG_USB_GADGET_CI13XXX is not set
866# CONFIG_USB_GADGET_NET2280 is not set 892# CONFIG_USB_GADGET_NET2280 is not set
867# CONFIG_USB_GADGET_GOKU is not set 893# CONFIG_USB_GADGET_GOKU is not set
868# CONFIG_USB_GADGET_DUMMY_HCD is not set 894# CONFIG_USB_GADGET_DUMMY_HCD is not set
@@ -876,6 +902,11 @@ CONFIG_USB_ETH_RNDIS=y
876# CONFIG_USB_MIDI_GADGET is not set 902# CONFIG_USB_MIDI_GADGET is not set
877# CONFIG_USB_G_PRINTER is not set 903# CONFIG_USB_G_PRINTER is not set
878# CONFIG_USB_CDC_COMPOSITE is not set 904# CONFIG_USB_CDC_COMPOSITE is not set
905
906#
907# OTG and related infrastructure
908#
909# CONFIG_USB_GPIO_VBUS is not set
879# CONFIG_MMC is not set 910# CONFIG_MMC is not set
880# CONFIG_MEMSTICK is not set 911# CONFIG_MEMSTICK is not set
881# CONFIG_NEW_LEDS is not set 912# CONFIG_NEW_LEDS is not set
@@ -938,13 +969,11 @@ CONFIG_TMPFS=y
938# CONFIG_TMPFS_POSIX_ACL is not set 969# CONFIG_TMPFS_POSIX_ACL is not set
939# CONFIG_HUGETLB_PAGE is not set 970# CONFIG_HUGETLB_PAGE is not set
940# CONFIG_CONFIGFS_FS is not set 971# CONFIG_CONFIGFS_FS is not set
941 972CONFIG_MISC_FILESYSTEMS=y
942#
943# Miscellaneous filesystems
944#
945# CONFIG_HFSPLUS_FS is not set 973# CONFIG_HFSPLUS_FS is not set
946# CONFIG_JFFS2_FS is not set 974# CONFIG_JFFS2_FS is not set
947CONFIG_CRAMFS=y 975CONFIG_CRAMFS=y
976# CONFIG_SQUASHFS is not set
948# CONFIG_VXFS_FS is not set 977# CONFIG_VXFS_FS is not set
949# CONFIG_MINIX_FS is not set 978# CONFIG_MINIX_FS is not set
950# CONFIG_OMFS_FS is not set 979# CONFIG_OMFS_FS is not set
@@ -1035,6 +1064,7 @@ CONFIG_NLS_UTF8=y
1035# Library routines 1064# Library routines
1036# 1065#
1037CONFIG_BITREVERSE=y 1066CONFIG_BITREVERSE=y
1067CONFIG_GENERIC_FIND_LAST_BIT=y
1038CONFIG_CRC_CCITT=y 1068CONFIG_CRC_CCITT=y
1039# CONFIG_CRC16 is not set 1069# CONFIG_CRC16 is not set
1040# CONFIG_CRC_T10DIF is not set 1070# CONFIG_CRC_T10DIF is not set
@@ -1086,6 +1116,7 @@ CONFIG_DEBUG_INFO=y
1086# CONFIG_DEBUG_MEMORY_INIT is not set 1116# CONFIG_DEBUG_MEMORY_INIT is not set
1087# CONFIG_DEBUG_LIST is not set 1117# CONFIG_DEBUG_LIST is not set
1088# CONFIG_DEBUG_SG is not set 1118# CONFIG_DEBUG_SG is not set
1119# CONFIG_DEBUG_NOTIFIERS is not set
1089# CONFIG_BOOT_PRINTK_DELAY is not set 1120# CONFIG_BOOT_PRINTK_DELAY is not set
1090# CONFIG_RCU_TORTURE_TEST is not set 1121# CONFIG_RCU_TORTURE_TEST is not set
1091# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1122# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1095,6 +1126,8 @@ CONFIG_DEBUG_INFO=y
1095# CONFIG_LATENCYTOP is not set 1126# CONFIG_LATENCYTOP is not set
1096CONFIG_SYSCTL_SYSCALL_CHECK=y 1127CONFIG_SYSCTL_SYSCALL_CHECK=y
1097CONFIG_HAVE_FUNCTION_TRACER=y 1128CONFIG_HAVE_FUNCTION_TRACER=y
1129CONFIG_HAVE_DYNAMIC_FTRACE=y
1130CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1098 1131
1099# 1132#
1100# Tracers 1133# Tracers
@@ -1103,10 +1136,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1103# CONFIG_SCHED_TRACER is not set 1136# CONFIG_SCHED_TRACER is not set
1104# CONFIG_CONTEXT_SWITCH_TRACER is not set 1137# CONFIG_CONTEXT_SWITCH_TRACER is not set
1105# CONFIG_BOOT_TRACER is not set 1138# CONFIG_BOOT_TRACER is not set
1139# CONFIG_TRACE_BRANCH_PROFILING is not set
1106# CONFIG_STACK_TRACER is not set 1140# CONFIG_STACK_TRACER is not set
1107# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1141# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1108# CONFIG_SAMPLES is not set 1142# CONFIG_SAMPLES is not set
1109CONFIG_HAVE_ARCH_KGDB=y 1143CONFIG_HAVE_ARCH_KGDB=y
1144CONFIG_PRINT_STACK_DEPTH=64
1110# CONFIG_DEBUG_STACKOVERFLOW is not set 1145# CONFIG_DEBUG_STACKOVERFLOW is not set
1111# CONFIG_DEBUG_STACK_USAGE is not set 1146# CONFIG_DEBUG_STACK_USAGE is not set
1112# CONFIG_DEBUG_PAGEALLOC is not set 1147# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1133,11 +1168,15 @@ CONFIG_CRYPTO=y
1133# 1168#
1134# CONFIG_CRYPTO_FIPS is not set 1169# CONFIG_CRYPTO_FIPS is not set
1135CONFIG_CRYPTO_ALGAPI=y 1170CONFIG_CRYPTO_ALGAPI=y
1136CONFIG_CRYPTO_AEAD=y 1171CONFIG_CRYPTO_ALGAPI2=y
1172CONFIG_CRYPTO_AEAD2=y
1137CONFIG_CRYPTO_BLKCIPHER=y 1173CONFIG_CRYPTO_BLKCIPHER=y
1174CONFIG_CRYPTO_BLKCIPHER2=y
1138CONFIG_CRYPTO_HASH=y 1175CONFIG_CRYPTO_HASH=y
1139CONFIG_CRYPTO_RNG=y 1176CONFIG_CRYPTO_HASH2=y
1177CONFIG_CRYPTO_RNG2=y
1140CONFIG_CRYPTO_MANAGER=y 1178CONFIG_CRYPTO_MANAGER=y
1179CONFIG_CRYPTO_MANAGER2=y
1141# CONFIG_CRYPTO_NULL is not set 1180# CONFIG_CRYPTO_NULL is not set
1142# CONFIG_CRYPTO_CRYPTD is not set 1181# CONFIG_CRYPTO_CRYPTD is not set
1143# CONFIG_CRYPTO_AUTHENC is not set 1182# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index 6046dc0cbd82..e971db171138 100644
--- a/arch/powerpc/configs/prpmc2800_defconfig
+++ b/arch/powerpc/configs/prpmc2800_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:48 2008 4# Mon Jan 26 15:35:44 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -45,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 45CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
51CONFIG_OF=y 51CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_POSIX_MQUEUE=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -118,7 +118,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 118CONFIG_SLUB=y
119# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y 123CONFIG_HAVE_IOREMAP_PROT=y
@@ -128,13 +127,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
131# CONFIG_TINY_SHMEM is not set
132CONFIG_BASE_SMALL=0 130CONFIG_BASE_SMALL=0
133# CONFIG_MODULES is not set 131# CONFIG_MODULES is not set
134CONFIG_BLOCK=y 132CONFIG_BLOCK=y
135CONFIG_LBD=y 133CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
140 137
@@ -151,6 +148,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
155 156
156# 157#
@@ -190,6 +191,7 @@ CONFIG_MV64X60=y
190# CONFIG_CPU_FREQ is not set 191# CONFIG_CPU_FREQ is not set
191# CONFIG_TAU is not set 192# CONFIG_TAU is not set
192# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
194# CONFIG_SIMPLE_GPIO is not set
193 195
194# 196#
195# Kernel options 197# Kernel options
@@ -213,10 +215,12 @@ CONFIG_BINFMT_ELF=y
213# CONFIG_HAVE_AOUT is not set 215# CONFIG_HAVE_AOUT is not set
214CONFIG_BINFMT_MISC=y 216CONFIG_BINFMT_MISC=y
215# CONFIG_IOMMU_HELPER is not set 217# CONFIG_IOMMU_HELPER is not set
218CONFIG_PPC_NEED_DMA_SYNC_OPS=y
216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
217CONFIG_ARCH_HAS_WALK_MEMORY=y 220CONFIG_ARCH_HAS_WALK_MEMORY=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
219# CONFIG_KEXEC is not set 222# CONFIG_KEXEC is not set
223# CONFIG_CRASH_DUMP is not set
220CONFIG_ARCH_FLATMEM_ENABLE=y 224CONFIG_ARCH_FLATMEM_ENABLE=y
221CONFIG_ARCH_POPULATES_NODE_MAP=y 225CONFIG_ARCH_POPULATES_NODE_MAP=y
222CONFIG_SELECT_MEMORY_MODEL=y 226CONFIG_SELECT_MEMORY_MODEL=y
@@ -228,12 +232,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
229CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
230CONFIG_MIGRATION=y 234CONFIG_MIGRATION=y
231# CONFIG_RESOURCES_64BIT is not set
232# CONFIG_PHYS_ADDR_T_64BIT is not set 235# CONFIG_PHYS_ADDR_T_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=1 236CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 237CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 238CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 239CONFIG_UNEVICTABLE_LRU=y
240CONFIG_PPC_4K_PAGES=y
241# CONFIG_PPC_16K_PAGES is not set
242# CONFIG_PPC_64K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 243CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 244CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 245# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +261,7 @@ CONFIG_PCI_SYSCALL=y
255CONFIG_ARCH_SUPPORTS_MSI=y 261CONFIG_ARCH_SUPPORTS_MSI=y
256# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
257# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set
258# CONFIG_PCCARD is not set 265# CONFIG_PCCARD is not set
259# CONFIG_HOTPLUG_PCI is not set 266# CONFIG_HOTPLUG_PCI is not set
260# CONFIG_HAS_RAPIDIO is not set 267# CONFIG_HAS_RAPIDIO is not set
@@ -279,6 +286,8 @@ CONFIG_NET=y
279# 286#
280# Networking options 287# Networking options
281# 288#
289# CONFIG_NET_NS is not set
290CONFIG_COMPAT_NET_DEV_OPS=y
282CONFIG_PACKET=y 291CONFIG_PACKET=y
283# CONFIG_PACKET_MMAP is not set 292# CONFIG_PACKET_MMAP is not set
284CONFIG_UNIX=y 293CONFIG_UNIX=y
@@ -335,6 +344,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
335# CONFIG_ECONET is not set 344# CONFIG_ECONET is not set
336# CONFIG_WAN_ROUTER is not set 345# CONFIG_WAN_ROUTER is not set
337# CONFIG_NET_SCHED is not set 346# CONFIG_NET_SCHED is not set
347# CONFIG_DCB is not set
338 348
339# 349#
340# Network testing 350# Network testing
@@ -350,8 +360,9 @@ CONFIG_WIRELESS=y
350# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
351CONFIG_WIRELESS_OLD_REGULATORY=y 361CONFIG_WIRELESS_OLD_REGULATORY=y
352# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
363# CONFIG_LIB80211 is not set
353# CONFIG_MAC80211 is not set 364# CONFIG_MAC80211 is not set
354# CONFIG_IEEE80211 is not set 365# CONFIG_WIMAX is not set
355# CONFIG_RFKILL is not set 366# CONFIG_RFKILL is not set
356# CONFIG_NET_9P is not set 367# CONFIG_NET_9P is not set
357 368
@@ -445,6 +456,12 @@ CONFIG_MTD_PHYSMAP_OF=y
445# CONFIG_MTD_ONENAND is not set 456# CONFIG_MTD_ONENAND is not set
446 457
447# 458#
459# LPDDR flash memory drivers
460#
461# CONFIG_MTD_LPDDR is not set
462# CONFIG_MTD_QINFO_PROBE is not set
463
464#
448# UBI - Unsorted block images 465# UBI - Unsorted block images
449# 466#
450# CONFIG_MTD_UBI is not set 467# CONFIG_MTD_UBI is not set
@@ -475,8 +492,10 @@ CONFIG_MISC_DEVICES=y
475# CONFIG_EEPROM_93CX6 is not set 492# CONFIG_EEPROM_93CX6 is not set
476# CONFIG_SGI_IOC4 is not set 493# CONFIG_SGI_IOC4 is not set
477# CONFIG_TIFM_CORE is not set 494# CONFIG_TIFM_CORE is not set
495# CONFIG_ICS932S401 is not set
478# CONFIG_ENCLOSURE_SERVICES is not set 496# CONFIG_ENCLOSURE_SERVICES is not set
479# CONFIG_HP_ILO is not set 497# CONFIG_HP_ILO is not set
498# CONFIG_C2PORT is not set
480CONFIG_HAVE_IDE=y 499CONFIG_HAVE_IDE=y
481CONFIG_IDE=y 500CONFIG_IDE=y
482 501
@@ -489,7 +508,6 @@ CONFIG_IDE_GD_ATA=y
489# CONFIG_IDE_GD_ATAPI is not set 508# CONFIG_IDE_GD_ATAPI is not set
490# CONFIG_BLK_DEV_IDECD is not set 509# CONFIG_BLK_DEV_IDECD is not set
491# CONFIG_BLK_DEV_IDETAPE is not set 510# CONFIG_BLK_DEV_IDETAPE is not set
492# CONFIG_BLK_DEV_IDESCSI is not set
493# CONFIG_IDE_TASK_IOCTL is not set 511# CONFIG_IDE_TASK_IOCTL is not set
494CONFIG_IDE_PROC_FS=y 512CONFIG_IDE_PROC_FS=y
495 513
@@ -519,6 +537,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
519# CONFIG_BLK_DEV_JMICRON is not set 537# CONFIG_BLK_DEV_JMICRON is not set
520# CONFIG_BLK_DEV_SC1200 is not set 538# CONFIG_BLK_DEV_SC1200 is not set
521# CONFIG_BLK_DEV_PIIX is not set 539# CONFIG_BLK_DEV_PIIX is not set
540# CONFIG_BLK_DEV_IT8172 is not set
522# CONFIG_BLK_DEV_IT8213 is not set 541# CONFIG_BLK_DEV_IT8213 is not set
523# CONFIG_BLK_DEV_IT821X is not set 542# CONFIG_BLK_DEV_IT821X is not set
524# CONFIG_BLK_DEV_NS87415 is not set 543# CONFIG_BLK_DEV_NS87415 is not set
@@ -571,6 +590,7 @@ CONFIG_BLK_DEV_SD=y
571# CONFIG_SCSI_SRP_ATTRS is not set 590# CONFIG_SCSI_SRP_ATTRS is not set
572CONFIG_SCSI_LOWLEVEL=y 591CONFIG_SCSI_LOWLEVEL=y
573# CONFIG_ISCSI_TCP is not set 592# CONFIG_ISCSI_TCP is not set
593# CONFIG_SCSI_CXGB3_ISCSI is not set
574# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 594# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
575# CONFIG_SCSI_3W_9XXX is not set 595# CONFIG_SCSI_3W_9XXX is not set
576# CONFIG_SCSI_ACARD is not set 596# CONFIG_SCSI_ACARD is not set
@@ -587,6 +607,8 @@ CONFIG_SCSI_LOWLEVEL=y
587# CONFIG_MEGARAID_SAS is not set 607# CONFIG_MEGARAID_SAS is not set
588# CONFIG_SCSI_HPTIOP is not set 608# CONFIG_SCSI_HPTIOP is not set
589# CONFIG_SCSI_BUSLOGIC is not set 609# CONFIG_SCSI_BUSLOGIC is not set
610# CONFIG_LIBFC is not set
611# CONFIG_FCOE is not set
590# CONFIG_SCSI_DMX3191D is not set 612# CONFIG_SCSI_DMX3191D is not set
591# CONFIG_SCSI_EATA is not set 613# CONFIG_SCSI_EATA is not set
592# CONFIG_SCSI_FUTURE_DOMAIN is not set 614# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -707,6 +729,9 @@ CONFIG_PHYLIB=y
707# CONFIG_BROADCOM_PHY is not set 729# CONFIG_BROADCOM_PHY is not set
708# CONFIG_ICPLUS_PHY is not set 730# CONFIG_ICPLUS_PHY is not set
709# CONFIG_REALTEK_PHY is not set 731# CONFIG_REALTEK_PHY is not set
732# CONFIG_NATIONAL_PHY is not set
733# CONFIG_STE10XP is not set
734# CONFIG_LSI_ET1011C_PHY is not set
710# CONFIG_FIXED_PHY is not set 735# CONFIG_FIXED_PHY is not set
711# CONFIG_MDIO_BITBANG is not set 736# CONFIG_MDIO_BITBANG is not set
712CONFIG_NET_ETHERNET=y 737CONFIG_NET_ETHERNET=y
@@ -730,7 +755,6 @@ CONFIG_NET_PCI=y
730# CONFIG_ADAPTEC_STARFIRE is not set 755# CONFIG_ADAPTEC_STARFIRE is not set
731# CONFIG_B44 is not set 756# CONFIG_B44 is not set
732# CONFIG_FORCEDETH is not set 757# CONFIG_FORCEDETH is not set
733# CONFIG_EEPRO100 is not set
734CONFIG_E100=y 758CONFIG_E100=y
735# CONFIG_FEALNX is not set 759# CONFIG_FEALNX is not set
736# CONFIG_NATSEMI is not set 760# CONFIG_NATSEMI is not set
@@ -744,6 +768,7 @@ CONFIG_8139TOO=y
744# CONFIG_R6040 is not set 768# CONFIG_R6040 is not set
745# CONFIG_SIS900 is not set 769# CONFIG_SIS900 is not set
746# CONFIG_EPIC100 is not set 770# CONFIG_EPIC100 is not set
771# CONFIG_SMSC9420 is not set
747# CONFIG_SUNDANCE is not set 772# CONFIG_SUNDANCE is not set
748# CONFIG_TLAN is not set 773# CONFIG_TLAN is not set
749# CONFIG_VIA_RHINE is not set 774# CONFIG_VIA_RHINE is not set
@@ -773,6 +798,7 @@ CONFIG_MV643XX_ETH=y
773# CONFIG_JME is not set 798# CONFIG_JME is not set
774CONFIG_NETDEV_10000=y 799CONFIG_NETDEV_10000=y
775# CONFIG_CHELSIO_T1 is not set 800# CONFIG_CHELSIO_T1 is not set
801CONFIG_CHELSIO_T3_DEPENDS=y
776# CONFIG_CHELSIO_T3 is not set 802# CONFIG_CHELSIO_T3 is not set
777# CONFIG_ENIC is not set 803# CONFIG_ENIC is not set
778# CONFIG_IXGBE is not set 804# CONFIG_IXGBE is not set
@@ -797,6 +823,10 @@ CONFIG_NETDEV_10000=y
797# CONFIG_IWLWIFI_LEDS is not set 823# CONFIG_IWLWIFI_LEDS is not set
798 824
799# 825#
826# Enable WiMAX (Networking options) to see the WiMAX drivers
827#
828
829#
800# USB Network Adapters 830# USB Network Adapters
801# 831#
802# CONFIG_USB_CATC is not set 832# CONFIG_USB_CATC is not set
@@ -877,8 +907,10 @@ CONFIG_SERIAL_CORE=y
877CONFIG_SERIAL_CORE_CONSOLE=y 907CONFIG_SERIAL_CORE_CONSOLE=y
878# CONFIG_SERIAL_JSM is not set 908# CONFIG_SERIAL_JSM is not set
879CONFIG_UNIX98_PTYS=y 909CONFIG_UNIX98_PTYS=y
910# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
880CONFIG_LEGACY_PTYS=y 911CONFIG_LEGACY_PTYS=y
881CONFIG_LEGACY_PTY_COUNT=256 912CONFIG_LEGACY_PTY_COUNT=256
913# CONFIG_HVC_UDBG is not set
882# CONFIG_IPMI_HANDLER is not set 914# CONFIG_IPMI_HANDLER is not set
883# CONFIG_HW_RANDOM is not set 915# CONFIG_HW_RANDOM is not set
884# CONFIG_NVRAM is not set 916# CONFIG_NVRAM is not set
@@ -943,8 +975,8 @@ CONFIG_I2C_MV64XXX=y
943# Miscellaneous I2C Chip support 975# Miscellaneous I2C Chip support
944# 976#
945# CONFIG_DS1682 is not set 977# CONFIG_DS1682 is not set
946# CONFIG_AT24 is not set 978# CONFIG_EEPROM_AT24 is not set
947# CONFIG_SENSORS_EEPROM is not set 979# CONFIG_EEPROM_LEGACY is not set
948# CONFIG_SENSORS_PCF8574 is not set 980# CONFIG_SENSORS_PCF8574 is not set
949# CONFIG_PCF8575 is not set 981# CONFIG_PCF8575 is not set
950# CONFIG_SENSORS_PCA9539 is not set 982# CONFIG_SENSORS_PCA9539 is not set
@@ -970,8 +1002,10 @@ CONFIG_HWMON=y
970# CONFIG_SENSORS_ADM1029 is not set 1002# CONFIG_SENSORS_ADM1029 is not set
971# CONFIG_SENSORS_ADM1031 is not set 1003# CONFIG_SENSORS_ADM1031 is not set
972# CONFIG_SENSORS_ADM9240 is not set 1004# CONFIG_SENSORS_ADM9240 is not set
1005# CONFIG_SENSORS_ADT7462 is not set
973# CONFIG_SENSORS_ADT7470 is not set 1006# CONFIG_SENSORS_ADT7470 is not set
974# CONFIG_SENSORS_ADT7473 is not set 1007# CONFIG_SENSORS_ADT7473 is not set
1008# CONFIG_SENSORS_ADT7475 is not set
975# CONFIG_SENSORS_ATXP1 is not set 1009# CONFIG_SENSORS_ATXP1 is not set
976# CONFIG_SENSORS_DS1621 is not set 1010# CONFIG_SENSORS_DS1621 is not set
977# CONFIG_SENSORS_I5K_AMB is not set 1011# CONFIG_SENSORS_I5K_AMB is not set
@@ -992,6 +1026,7 @@ CONFIG_HWMON=y
992# CONFIG_SENSORS_LM90 is not set 1026# CONFIG_SENSORS_LM90 is not set
993# CONFIG_SENSORS_LM92 is not set 1027# CONFIG_SENSORS_LM92 is not set
994# CONFIG_SENSORS_LM93 is not set 1028# CONFIG_SENSORS_LM93 is not set
1029# CONFIG_SENSORS_LTC4245 is not set
995# CONFIG_SENSORS_MAX1619 is not set 1030# CONFIG_SENSORS_MAX1619 is not set
996# CONFIG_SENSORS_MAX6650 is not set 1031# CONFIG_SENSORS_MAX6650 is not set
997# CONFIG_SENSORS_PC87360 is not set 1032# CONFIG_SENSORS_PC87360 is not set
@@ -1018,11 +1053,11 @@ CONFIG_HWMON=y
1018# CONFIG_THERMAL is not set 1053# CONFIG_THERMAL is not set
1019# CONFIG_THERMAL_HWMON is not set 1054# CONFIG_THERMAL_HWMON is not set
1020# CONFIG_WATCHDOG is not set 1055# CONFIG_WATCHDOG is not set
1056CONFIG_SSB_POSSIBLE=y
1021 1057
1022# 1058#
1023# Sonics Silicon Backplane 1059# Sonics Silicon Backplane
1024# 1060#
1025CONFIG_SSB_POSSIBLE=y
1026# CONFIG_SSB is not set 1061# CONFIG_SSB is not set
1027 1062
1028# 1063#
@@ -1031,18 +1066,13 @@ CONFIG_SSB_POSSIBLE=y
1031# CONFIG_MFD_CORE is not set 1066# CONFIG_MFD_CORE is not set
1032# CONFIG_MFD_SM501 is not set 1067# CONFIG_MFD_SM501 is not set
1033# CONFIG_HTC_PASIC3 is not set 1068# CONFIG_HTC_PASIC3 is not set
1069# CONFIG_TWL4030_CORE is not set
1034# CONFIG_MFD_TMIO is not set 1070# CONFIG_MFD_TMIO is not set
1035# CONFIG_PMIC_DA903X is not set 1071# CONFIG_PMIC_DA903X is not set
1036# CONFIG_MFD_WM8400 is not set 1072# CONFIG_MFD_WM8400 is not set
1037# CONFIG_MFD_WM8350_I2C is not set 1073# CONFIG_MFD_WM8350_I2C is not set
1038 1074# CONFIG_MFD_PCF50633 is not set
1039#
1040# Voltage and Current regulators
1041#
1042# CONFIG_REGULATOR is not set 1075# CONFIG_REGULATOR is not set
1043# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1044# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1045# CONFIG_REGULATOR_BQ24022 is not set
1046 1076
1047# 1077#
1048# Multimedia devices 1078# Multimedia devices
@@ -1101,11 +1131,9 @@ CONFIG_HID_COMPAT=y
1101CONFIG_HID_A4TECH=y 1131CONFIG_HID_A4TECH=y
1102CONFIG_HID_APPLE=y 1132CONFIG_HID_APPLE=y
1103CONFIG_HID_BELKIN=y 1133CONFIG_HID_BELKIN=y
1104CONFIG_HID_BRIGHT=y
1105CONFIG_HID_CHERRY=y 1134CONFIG_HID_CHERRY=y
1106CONFIG_HID_CHICONY=y 1135CONFIG_HID_CHICONY=y
1107CONFIG_HID_CYPRESS=y 1136CONFIG_HID_CYPRESS=y
1108CONFIG_HID_DELL=y
1109CONFIG_HID_EZKEY=y 1137CONFIG_HID_EZKEY=y
1110CONFIG_HID_GYRATION=y 1138CONFIG_HID_GYRATION=y
1111CONFIG_HID_LOGITECH=y 1139CONFIG_HID_LOGITECH=y
@@ -1113,12 +1141,15 @@ CONFIG_HID_LOGITECH=y
1113# CONFIG_LOGIRUMBLEPAD2_FF is not set 1141# CONFIG_LOGIRUMBLEPAD2_FF is not set
1114CONFIG_HID_MICROSOFT=y 1142CONFIG_HID_MICROSOFT=y
1115CONFIG_HID_MONTEREY=y 1143CONFIG_HID_MONTEREY=y
1144CONFIG_HID_NTRIG=y
1116CONFIG_HID_PANTHERLORD=y 1145CONFIG_HID_PANTHERLORD=y
1117# CONFIG_PANTHERLORD_FF is not set 1146# CONFIG_PANTHERLORD_FF is not set
1118CONFIG_HID_PETALYNX=y 1147CONFIG_HID_PETALYNX=y
1119CONFIG_HID_SAMSUNG=y 1148CONFIG_HID_SAMSUNG=y
1120CONFIG_HID_SONY=y 1149CONFIG_HID_SONY=y
1121CONFIG_HID_SUNPLUS=y 1150CONFIG_HID_SUNPLUS=y
1151# CONFIG_GREENASIA_FF is not set
1152CONFIG_HID_TOPSEED=y
1122CONFIG_THRUSTMASTER_FF=y 1153CONFIG_THRUSTMASTER_FF=y
1123CONFIG_ZEROPLUS_FF=y 1154CONFIG_ZEROPLUS_FF=y
1124CONFIG_USB_SUPPORT=y 1155CONFIG_USB_SUPPORT=y
@@ -1148,6 +1179,7 @@ CONFIG_USB_EHCI_HCD=y
1148# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1179# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1149# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1180# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1150CONFIG_USB_EHCI_HCD_PPC_OF=y 1181CONFIG_USB_EHCI_HCD_PPC_OF=y
1182# CONFIG_USB_OXU210HP_HCD is not set
1151# CONFIG_USB_ISP116X_HCD is not set 1183# CONFIG_USB_ISP116X_HCD is not set
1152# CONFIG_USB_ISP1760_HCD is not set 1184# CONFIG_USB_ISP1760_HCD is not set
1153CONFIG_USB_OHCI_HCD=y 1185CONFIG_USB_OHCI_HCD=y
@@ -1170,11 +1202,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1170# CONFIG_USB_TMC is not set 1202# CONFIG_USB_TMC is not set
1171 1203
1172# 1204#
1173# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1205# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1174# 1206#
1175 1207
1176# 1208#
1177# may also be needed; see USB_STORAGE Help for more information 1209# see USB_STORAGE Help for more information
1178# 1210#
1179# CONFIG_USB_STORAGE is not set 1211# CONFIG_USB_STORAGE is not set
1180# CONFIG_USB_LIBUSUAL is not set 1212# CONFIG_USB_LIBUSUAL is not set
@@ -1216,6 +1248,10 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1216# CONFIG_USB_ISIGHTFW is not set 1248# CONFIG_USB_ISIGHTFW is not set
1217# CONFIG_USB_VST is not set 1249# CONFIG_USB_VST is not set
1218# CONFIG_USB_GADGET is not set 1250# CONFIG_USB_GADGET is not set
1251
1252#
1253# OTG and related infrastructure
1254#
1219# CONFIG_UWB is not set 1255# CONFIG_UWB is not set
1220# CONFIG_MMC is not set 1256# CONFIG_MMC is not set
1221# CONFIG_MEMSTICK is not set 1257# CONFIG_MEMSTICK is not set
@@ -1253,6 +1289,7 @@ CONFIG_RTC_DRV_MAX6900=y
1253# CONFIG_RTC_DRV_M41T80 is not set 1289# CONFIG_RTC_DRV_M41T80 is not set
1254# CONFIG_RTC_DRV_S35390A is not set 1290# CONFIG_RTC_DRV_S35390A is not set
1255# CONFIG_RTC_DRV_FM3130 is not set 1291# CONFIG_RTC_DRV_FM3130 is not set
1292# CONFIG_RTC_DRV_RX8581 is not set
1256 1293
1257# 1294#
1258# SPI RTC drivers 1295# SPI RTC drivers
@@ -1299,7 +1336,9 @@ CONFIG_FS_MBCACHE=y
1299# CONFIG_FS_POSIX_ACL is not set 1336# CONFIG_FS_POSIX_ACL is not set
1300CONFIG_FILE_LOCKING=y 1337CONFIG_FILE_LOCKING=y
1301# CONFIG_XFS_FS is not set 1338# CONFIG_XFS_FS is not set
1339# CONFIG_GFS2_FS is not set
1302# CONFIG_OCFS2_FS is not set 1340# CONFIG_OCFS2_FS is not set
1341# CONFIG_BTRFS_FS is not set
1303CONFIG_DNOTIFY=y 1342CONFIG_DNOTIFY=y
1304CONFIG_INOTIFY=y 1343CONFIG_INOTIFY=y
1305CONFIG_INOTIFY_USER=y 1344CONFIG_INOTIFY_USER=y
@@ -1333,10 +1372,7 @@ CONFIG_TMPFS=y
1333# CONFIG_TMPFS_POSIX_ACL is not set 1372# CONFIG_TMPFS_POSIX_ACL is not set
1334# CONFIG_HUGETLB_PAGE is not set 1373# CONFIG_HUGETLB_PAGE is not set
1335# CONFIG_CONFIGFS_FS is not set 1374# CONFIG_CONFIGFS_FS is not set
1336 1375CONFIG_MISC_FILESYSTEMS=y
1337#
1338# Miscellaneous filesystems
1339#
1340# CONFIG_ADFS_FS is not set 1376# CONFIG_ADFS_FS is not set
1341# CONFIG_AFFS_FS is not set 1377# CONFIG_AFFS_FS is not set
1342# CONFIG_HFS_FS is not set 1378# CONFIG_HFS_FS is not set
@@ -1346,6 +1382,7 @@ CONFIG_TMPFS=y
1346# CONFIG_EFS_FS is not set 1382# CONFIG_EFS_FS is not set
1347# CONFIG_JFFS2_FS is not set 1383# CONFIG_JFFS2_FS is not set
1348# CONFIG_CRAMFS is not set 1384# CONFIG_CRAMFS is not set
1385# CONFIG_SQUASHFS is not set
1349# CONFIG_VXFS_FS is not set 1386# CONFIG_VXFS_FS is not set
1350# CONFIG_MINIX_FS is not set 1387# CONFIG_MINIX_FS is not set
1351# CONFIG_OMFS_FS is not set 1388# CONFIG_OMFS_FS is not set
@@ -1400,6 +1437,7 @@ CONFIG_MSDOS_PARTITION=y
1400# Library routines 1437# Library routines
1401# 1438#
1402CONFIG_BITREVERSE=y 1439CONFIG_BITREVERSE=y
1440CONFIG_GENERIC_FIND_LAST_BIT=y
1403# CONFIG_CRC_CCITT is not set 1441# CONFIG_CRC_CCITT is not set
1404# CONFIG_CRC16 is not set 1442# CONFIG_CRC16 is not set
1405CONFIG_CRC_T10DIF=y 1443CONFIG_CRC_T10DIF=y
@@ -1433,6 +1471,8 @@ CONFIG_DEBUG_MEMORY_INIT=y
1433# CONFIG_LATENCYTOP is not set 1471# CONFIG_LATENCYTOP is not set
1434CONFIG_SYSCTL_SYSCALL_CHECK=y 1472CONFIG_SYSCTL_SYSCALL_CHECK=y
1435CONFIG_HAVE_FUNCTION_TRACER=y 1473CONFIG_HAVE_FUNCTION_TRACER=y
1474CONFIG_HAVE_DYNAMIC_FTRACE=y
1475CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1436 1476
1437# 1477#
1438# Tracers 1478# Tracers
@@ -1440,6 +1480,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1440# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1480# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1441# CONFIG_SAMPLES is not set 1481# CONFIG_SAMPLES is not set
1442CONFIG_HAVE_ARCH_KGDB=y 1482CONFIG_HAVE_ARCH_KGDB=y
1483CONFIG_PRINT_STACK_DEPTH=64
1443# CONFIG_IRQSTACKS is not set 1484# CONFIG_IRQSTACKS is not set
1444# CONFIG_BOOTX_TEXT is not set 1485# CONFIG_BOOTX_TEXT is not set
1445# CONFIG_PPC_EARLY_DEBUG is not set 1486# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1458,6 +1499,7 @@ CONFIG_CRYPTO=y
1458# 1499#
1459# CONFIG_CRYPTO_FIPS is not set 1500# CONFIG_CRYPTO_FIPS is not set
1460# CONFIG_CRYPTO_MANAGER is not set 1501# CONFIG_CRYPTO_MANAGER is not set
1502# CONFIG_CRYPTO_MANAGER2 is not set
1461# CONFIG_CRYPTO_GF128MUL is not set 1503# CONFIG_CRYPTO_GF128MUL is not set
1462# CONFIG_CRYPTO_NULL is not set 1504# CONFIG_CRYPTO_NULL is not set
1463# CONFIG_CRYPTO_CRYPTD is not set 1505# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index 1e520ab65118..61b100849715 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -1055,8 +1055,8 @@ CONFIG_I2C_ALGOBIT=y
1055# Miscellaneous I2C Chip support 1055# Miscellaneous I2C Chip support
1056# 1056#
1057# CONFIG_DS1682 is not set 1057# CONFIG_DS1682 is not set
1058# CONFIG_AT24 is not set 1058# CONFIG_EEPROM_AT24 is not set
1059# CONFIG_SENSORS_EEPROM is not set 1059# CONFIG_EEPROM_LEGACY is not set
1060# CONFIG_SENSORS_PCF8574 is not set 1060# CONFIG_SENSORS_PCF8574 is not set
1061# CONFIG_PCF8575 is not set 1061# CONFIG_PCF8575 is not set
1062# CONFIG_SENSORS_PCA9539 is not set 1062# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index b3f5671972a9..86512c8790d1 100644
--- a/arch/powerpc/configs/storcenter_defconfig
+++ b/arch/powerpc/configs/storcenter_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:48 2008 4# Mon Jan 26 15:35:46 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -73,12 +73,12 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74# CONFIG_IKCONFIG is not set 74# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 75CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 76CONFIG_GROUP_SCHED=y
78CONFIG_FAIR_GROUP_SCHED=y 77CONFIG_FAIR_GROUP_SCHED=y
79# CONFIG_RT_GROUP_SCHED is not set 78# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 79CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 80# CONFIG_CGROUP_SCHED is not set
81# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 83CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
@@ -110,7 +110,6 @@ CONFIG_SLUB_DEBUG=y
110CONFIG_SLUB=y 110CONFIG_SLUB=y
111# CONFIG_SLOB is not set 111# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y 115CONFIG_HAVE_IOREMAP_PROT=y
@@ -120,7 +119,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 121CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set
124CONFIG_BASE_SMALL=0 122CONFIG_BASE_SMALL=0
125CONFIG_MODULES=y 123CONFIG_MODULES=y
126# CONFIG_MODULE_FORCE_LOAD is not set 124# CONFIG_MODULE_FORCE_LOAD is not set
@@ -128,11 +126,9 @@ CONFIG_MODULE_UNLOAD=y
128# CONFIG_MODULE_FORCE_UNLOAD is not set 126# CONFIG_MODULE_FORCE_UNLOAD is not set
129# CONFIG_MODVERSIONS is not set 127# CONFIG_MODVERSIONS is not set
130# CONFIG_MODULE_SRCVERSION_ALL is not set 128# CONFIG_MODULE_SRCVERSION_ALL is not set
131CONFIG_KMOD=y
132CONFIG_BLOCK=y 129CONFIG_BLOCK=y
133CONFIG_LBD=y 130CONFIG_LBD=y
134# CONFIG_BLK_DEV_IO_TRACE is not set 131# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_LSF is not set
136# CONFIG_BLK_DEV_BSG is not set 132# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 133# CONFIG_BLK_DEV_INTEGRITY is not set
138 134
@@ -149,6 +145,10 @@ CONFIG_DEFAULT_CFQ=y
149# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="cfq" 146CONFIG_DEFAULT_IOSCHED="cfq"
151CONFIG_CLASSIC_RCU=y 147CONFIG_CLASSIC_RCU=y
148# CONFIG_TREE_RCU is not set
149# CONFIG_PREEMPT_RCU is not set
150# CONFIG_TREE_RCU_TRACE is not set
151# CONFIG_PREEMPT_RCU_TRACE is not set
152# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
153 153
154# 154#
@@ -191,6 +191,7 @@ CONFIG_MPIC=y
191# CONFIG_TAU is not set 191# CONFIG_TAU is not set
192# CONFIG_QUICC_ENGINE is not set 192# CONFIG_QUICC_ENGINE is not set
193# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
194# CONFIG_SIMPLE_GPIO is not set
194 195
195# 196#
196# Kernel options 197# Kernel options
@@ -217,6 +218,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
217CONFIG_ARCH_HAS_WALK_MEMORY=y 218CONFIG_ARCH_HAS_WALK_MEMORY=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
219# CONFIG_KEXEC is not set 220# CONFIG_KEXEC is not set
221# CONFIG_CRASH_DUMP is not set
220CONFIG_ARCH_FLATMEM_ENABLE=y 222CONFIG_ARCH_FLATMEM_ENABLE=y
221CONFIG_ARCH_POPULATES_NODE_MAP=y 223CONFIG_ARCH_POPULATES_NODE_MAP=y
222CONFIG_SELECT_MEMORY_MODEL=y 224CONFIG_SELECT_MEMORY_MODEL=y
@@ -228,12 +230,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228CONFIG_PAGEFLAGS_EXTENDED=y 230CONFIG_PAGEFLAGS_EXTENDED=y
229CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
230CONFIG_MIGRATION=y 232CONFIG_MIGRATION=y
231# CONFIG_RESOURCES_64BIT is not set
232# CONFIG_PHYS_ADDR_T_64BIT is not set 233# CONFIG_PHYS_ADDR_T_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
239CONFIG_CMDLINE_BOOL=y 243CONFIG_CMDLINE_BOOL=y
@@ -257,6 +261,7 @@ CONFIG_PCI_SYSCALL=y
257CONFIG_ARCH_SUPPORTS_MSI=y 261CONFIG_ARCH_SUPPORTS_MSI=y
258# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
259# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set
260# CONFIG_PCCARD is not set 265# CONFIG_PCCARD is not set
261# CONFIG_HOTPLUG_PCI is not set 266# CONFIG_HOTPLUG_PCI is not set
262# CONFIG_HAS_RAPIDIO is not set 267# CONFIG_HAS_RAPIDIO is not set
@@ -279,6 +284,7 @@ CONFIG_NET=y
279# 284#
280# Networking options 285# Networking options
281# 286#
287CONFIG_COMPAT_NET_DEV_OPS=y
282CONFIG_PACKET=m 288CONFIG_PACKET=m
283# CONFIG_PACKET_MMAP is not set 289# CONFIG_PACKET_MMAP is not set
284CONFIG_UNIX=y 290CONFIG_UNIX=y
@@ -330,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
331# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
332# CONFIG_NET_SCHED is not set 338# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set
333 340
334# 341#
335# Network testing 342# Network testing
@@ -345,8 +352,9 @@ CONFIG_WIRELESS=y
345# CONFIG_CFG80211 is not set 352# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y 353CONFIG_WIRELESS_OLD_REGULATORY=y
347# CONFIG_WIRELESS_EXT is not set 354# CONFIG_WIRELESS_EXT is not set
355# CONFIG_LIB80211 is not set
348# CONFIG_MAC80211 is not set 356# CONFIG_MAC80211 is not set
349# CONFIG_IEEE80211 is not set 357# CONFIG_WIMAX is not set
350# CONFIG_RFKILL is not set 358# CONFIG_RFKILL is not set
351# CONFIG_NET_9P is not set 359# CONFIG_NET_9P is not set
352 360
@@ -367,6 +375,7 @@ CONFIG_MTD=y
367# CONFIG_MTD_DEBUG is not set 375# CONFIG_MTD_DEBUG is not set
368# CONFIG_MTD_CONCAT is not set 376# CONFIG_MTD_CONCAT is not set
369CONFIG_MTD_PARTITIONS=y 377CONFIG_MTD_PARTITIONS=y
378# CONFIG_MTD_TESTS is not set
370# CONFIG_MTD_REDBOOT_PARTS is not set 379# CONFIG_MTD_REDBOOT_PARTS is not set
371# CONFIG_MTD_CMDLINE_PARTS is not set 380# CONFIG_MTD_CMDLINE_PARTS is not set
372# CONFIG_MTD_OF_PARTS is not set 381# CONFIG_MTD_OF_PARTS is not set
@@ -416,9 +425,7 @@ CONFIG_MTD_CFI_UTIL=y
416# 425#
417# CONFIG_MTD_COMPLEX_MAPPINGS is not set 426# CONFIG_MTD_COMPLEX_MAPPINGS is not set
418CONFIG_MTD_PHYSMAP=y 427CONFIG_MTD_PHYSMAP=y
419CONFIG_MTD_PHYSMAP_START=0xFF800000 428# CONFIG_MTD_PHYSMAP_COMPAT is not set
420CONFIG_MTD_PHYSMAP_LEN=0x00800000
421CONFIG_MTD_PHYSMAP_BANKWIDTH=1
422# CONFIG_MTD_PHYSMAP_OF is not set 429# CONFIG_MTD_PHYSMAP_OF is not set
423# CONFIG_MTD_INTEL_VR_NOR is not set 430# CONFIG_MTD_INTEL_VR_NOR is not set
424# CONFIG_MTD_PLATRAM is not set 431# CONFIG_MTD_PLATRAM is not set
@@ -442,6 +449,12 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
442# CONFIG_MTD_ONENAND is not set 449# CONFIG_MTD_ONENAND is not set
443 450
444# 451#
452# LPDDR flash memory drivers
453#
454# CONFIG_MTD_LPDDR is not set
455# CONFIG_MTD_QINFO_PROBE is not set
456
457#
445# UBI - Unsorted block images 458# UBI - Unsorted block images
446# 459#
447# CONFIG_MTD_UBI is not set 460# CONFIG_MTD_UBI is not set
@@ -468,8 +481,10 @@ CONFIG_MISC_DEVICES=y
468# CONFIG_EEPROM_93CX6 is not set 481# CONFIG_EEPROM_93CX6 is not set
469# CONFIG_SGI_IOC4 is not set 482# CONFIG_SGI_IOC4 is not set
470# CONFIG_TIFM_CORE is not set 483# CONFIG_TIFM_CORE is not set
484# CONFIG_ICS932S401 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 485# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 486# CONFIG_HP_ILO is not set
487# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 488CONFIG_HAVE_IDE=y
474CONFIG_IDE=y 489CONFIG_IDE=y
475 490
@@ -483,7 +498,6 @@ CONFIG_IDE_GD_ATA=y
483# CONFIG_IDE_GD_ATAPI is not set 498# CONFIG_IDE_GD_ATAPI is not set
484# CONFIG_BLK_DEV_IDECD is not set 499# CONFIG_BLK_DEV_IDECD is not set
485# CONFIG_BLK_DEV_IDETAPE is not set 500# CONFIG_BLK_DEV_IDETAPE is not set
486# CONFIG_BLK_DEV_IDESCSI is not set
487# CONFIG_IDE_TASK_IOCTL is not set 501# CONFIG_IDE_TASK_IOCTL is not set
488CONFIG_IDE_PROC_FS=y 502CONFIG_IDE_PROC_FS=y
489 503
@@ -512,6 +526,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
512# CONFIG_BLK_DEV_JMICRON is not set 526# CONFIG_BLK_DEV_JMICRON is not set
513# CONFIG_BLK_DEV_SC1200 is not set 527# CONFIG_BLK_DEV_SC1200 is not set
514# CONFIG_BLK_DEV_PIIX is not set 528# CONFIG_BLK_DEV_PIIX is not set
529# CONFIG_BLK_DEV_IT8172 is not set
515# CONFIG_BLK_DEV_IT8213 is not set 530# CONFIG_BLK_DEV_IT8213 is not set
516# CONFIG_BLK_DEV_IT821X is not set 531# CONFIG_BLK_DEV_IT821X is not set
517# CONFIG_BLK_DEV_NS87415 is not set 532# CONFIG_BLK_DEV_NS87415 is not set
@@ -582,6 +597,8 @@ CONFIG_SCSI_LOWLEVEL=y
582# CONFIG_MEGARAID_SAS is not set 597# CONFIG_MEGARAID_SAS is not set
583# CONFIG_SCSI_HPTIOP is not set 598# CONFIG_SCSI_HPTIOP is not set
584# CONFIG_SCSI_BUSLOGIC is not set 599# CONFIG_SCSI_BUSLOGIC is not set
600# CONFIG_LIBFC is not set
601# CONFIG_FCOE is not set
585# CONFIG_SCSI_DMX3191D is not set 602# CONFIG_SCSI_DMX3191D is not set
586# CONFIG_SCSI_EATA is not set 603# CONFIG_SCSI_EATA is not set
587# CONFIG_SCSI_FUTURE_DOMAIN is not set 604# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -672,6 +689,10 @@ CONFIG_R8169=y
672# CONFIG_IWLWIFI_LEDS is not set 689# CONFIG_IWLWIFI_LEDS is not set
673 690
674# 691#
692# Enable WiMAX (Networking options) to see the WiMAX drivers
693#
694
695#
675# USB Network Adapters 696# USB Network Adapters
676# 697#
677# CONFIG_USB_CATC is not set 698# CONFIG_USB_CATC is not set
@@ -729,8 +750,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
729# CONFIG_SERIAL_JSM is not set 750# CONFIG_SERIAL_JSM is not set
730# CONFIG_SERIAL_OF_PLATFORM is not set 751# CONFIG_SERIAL_OF_PLATFORM is not set
731CONFIG_UNIX98_PTYS=y 752CONFIG_UNIX98_PTYS=y
753# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
732CONFIG_LEGACY_PTYS=y 754CONFIG_LEGACY_PTYS=y
733CONFIG_LEGACY_PTY_COUNT=256 755CONFIG_LEGACY_PTY_COUNT=256
756# CONFIG_HVC_UDBG is not set
734# CONFIG_IPMI_HANDLER is not set 757# CONFIG_IPMI_HANDLER is not set
735CONFIG_HW_RANDOM=m 758CONFIG_HW_RANDOM=m
736CONFIG_NVRAM=y 759CONFIG_NVRAM=y
@@ -795,8 +818,8 @@ CONFIG_I2C_MPC=y
795# Miscellaneous I2C Chip support 818# Miscellaneous I2C Chip support
796# 819#
797# CONFIG_DS1682 is not set 820# CONFIG_DS1682 is not set
798# CONFIG_AT24 is not set 821# CONFIG_EEPROM_AT24 is not set
799# CONFIG_SENSORS_EEPROM is not set 822# CONFIG_EEPROM_LEGACY is not set
800# CONFIG_SENSORS_PCF8574 is not set 823# CONFIG_SENSORS_PCF8574 is not set
801# CONFIG_PCF8575 is not set 824# CONFIG_PCF8575 is not set
802# CONFIG_SENSORS_PCA9539 is not set 825# CONFIG_SENSORS_PCA9539 is not set
@@ -816,11 +839,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
816# CONFIG_THERMAL is not set 839# CONFIG_THERMAL is not set
817# CONFIG_THERMAL_HWMON is not set 840# CONFIG_THERMAL_HWMON is not set
818# CONFIG_WATCHDOG is not set 841# CONFIG_WATCHDOG is not set
842CONFIG_SSB_POSSIBLE=y
819 843
820# 844#
821# Sonics Silicon Backplane 845# Sonics Silicon Backplane
822# 846#
823CONFIG_SSB_POSSIBLE=y
824# CONFIG_SSB is not set 847# CONFIG_SSB is not set
825 848
826# 849#
@@ -829,18 +852,13 @@ CONFIG_SSB_POSSIBLE=y
829# CONFIG_MFD_CORE is not set 852# CONFIG_MFD_CORE is not set
830# CONFIG_MFD_SM501 is not set 853# CONFIG_MFD_SM501 is not set
831# CONFIG_HTC_PASIC3 is not set 854# CONFIG_HTC_PASIC3 is not set
855# CONFIG_TWL4030_CORE is not set
832# CONFIG_MFD_TMIO is not set 856# CONFIG_MFD_TMIO is not set
833# CONFIG_PMIC_DA903X is not set 857# CONFIG_PMIC_DA903X is not set
834# CONFIG_MFD_WM8400 is not set 858# CONFIG_MFD_WM8400 is not set
835# CONFIG_MFD_WM8350_I2C is not set 859# CONFIG_MFD_WM8350_I2C is not set
836 860# CONFIG_MFD_PCF50633 is not set
837#
838# Voltage and Current regulators
839#
840# CONFIG_REGULATOR is not set 861# CONFIG_REGULATOR is not set
841# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
842# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
843# CONFIG_REGULATOR_BQ24022 is not set
844 862
845# 863#
846# Multimedia devices 864# Multimedia devices
@@ -903,6 +921,7 @@ CONFIG_USB_EHCI_HCD=y
903# CONFIG_USB_EHCI_TT_NEWSCHED is not set 921# CONFIG_USB_EHCI_TT_NEWSCHED is not set
904# CONFIG_USB_EHCI_FSL is not set 922# CONFIG_USB_EHCI_FSL is not set
905CONFIG_USB_EHCI_HCD_PPC_OF=y 923CONFIG_USB_EHCI_HCD_PPC_OF=y
924# CONFIG_USB_OXU210HP_HCD is not set
906# CONFIG_USB_ISP116X_HCD is not set 925# CONFIG_USB_ISP116X_HCD is not set
907# CONFIG_USB_ISP1760_HCD is not set 926# CONFIG_USB_ISP1760_HCD is not set
908CONFIG_USB_OHCI_HCD=y 927CONFIG_USB_OHCI_HCD=y
@@ -925,18 +944,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
925# CONFIG_USB_TMC is not set 944# CONFIG_USB_TMC is not set
926 945
927# 946#
928# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 947# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
929# 948#
930 949
931# 950#
932# may also be needed; see USB_STORAGE Help for more information 951# see USB_STORAGE Help for more information
933# 952#
934CONFIG_USB_STORAGE=y 953CONFIG_USB_STORAGE=y
935# CONFIG_USB_STORAGE_DEBUG is not set 954# CONFIG_USB_STORAGE_DEBUG is not set
936# CONFIG_USB_STORAGE_DATAFAB is not set 955# CONFIG_USB_STORAGE_DATAFAB is not set
937# CONFIG_USB_STORAGE_FREECOM is not set 956# CONFIG_USB_STORAGE_FREECOM is not set
938# CONFIG_USB_STORAGE_ISD200 is not set 957# CONFIG_USB_STORAGE_ISD200 is not set
939# CONFIG_USB_STORAGE_DPCM is not set
940# CONFIG_USB_STORAGE_USBAT is not set 958# CONFIG_USB_STORAGE_USBAT is not set
941# CONFIG_USB_STORAGE_SDDR09 is not set 959# CONFIG_USB_STORAGE_SDDR09 is not set
942# CONFIG_USB_STORAGE_SDDR55 is not set 960# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -983,6 +1001,10 @@ CONFIG_USB_STORAGE=y
983# CONFIG_USB_ISIGHTFW is not set 1001# CONFIG_USB_ISIGHTFW is not set
984# CONFIG_USB_VST is not set 1002# CONFIG_USB_VST is not set
985# CONFIG_USB_GADGET is not set 1003# CONFIG_USB_GADGET is not set
1004
1005#
1006# OTG and related infrastructure
1007#
986# CONFIG_UWB is not set 1008# CONFIG_UWB is not set
987# CONFIG_MMC is not set 1009# CONFIG_MMC is not set
988# CONFIG_MEMSTICK is not set 1010# CONFIG_MEMSTICK is not set
@@ -1020,6 +1042,7 @@ CONFIG_RTC_DRV_DS1307=y
1020# CONFIG_RTC_DRV_M41T80 is not set 1042# CONFIG_RTC_DRV_M41T80 is not set
1021# CONFIG_RTC_DRV_S35390A is not set 1043# CONFIG_RTC_DRV_S35390A is not set
1022# CONFIG_RTC_DRV_FM3130 is not set 1044# CONFIG_RTC_DRV_FM3130 is not set
1045# CONFIG_RTC_DRV_RX8581 is not set
1023 1046
1024# 1047#
1025# SPI RTC drivers 1048# SPI RTC drivers
@@ -1070,7 +1093,9 @@ CONFIG_XFS_FS=m
1070# CONFIG_XFS_POSIX_ACL is not set 1093# CONFIG_XFS_POSIX_ACL is not set
1071# CONFIG_XFS_RT is not set 1094# CONFIG_XFS_RT is not set
1072# CONFIG_XFS_DEBUG is not set 1095# CONFIG_XFS_DEBUG is not set
1096# CONFIG_GFS2_FS is not set
1073# CONFIG_OCFS2_FS is not set 1097# CONFIG_OCFS2_FS is not set
1098# CONFIG_BTRFS_FS is not set
1074CONFIG_DNOTIFY=y 1099CONFIG_DNOTIFY=y
1075CONFIG_INOTIFY=y 1100CONFIG_INOTIFY=y
1076CONFIG_INOTIFY_USER=y 1101CONFIG_INOTIFY_USER=y
@@ -1104,10 +1129,7 @@ CONFIG_TMPFS=y
1104# CONFIG_TMPFS_POSIX_ACL is not set 1129# CONFIG_TMPFS_POSIX_ACL is not set
1105# CONFIG_HUGETLB_PAGE is not set 1130# CONFIG_HUGETLB_PAGE is not set
1106# CONFIG_CONFIGFS_FS is not set 1131# CONFIG_CONFIGFS_FS is not set
1107 1132CONFIG_MISC_FILESYSTEMS=y
1108#
1109# Miscellaneous filesystems
1110#
1111# CONFIG_ADFS_FS is not set 1133# CONFIG_ADFS_FS is not set
1112# CONFIG_AFFS_FS is not set 1134# CONFIG_AFFS_FS is not set
1113# CONFIG_HFS_FS is not set 1135# CONFIG_HFS_FS is not set
@@ -1127,6 +1149,7 @@ CONFIG_JFFS2_ZLIB=y
1127CONFIG_JFFS2_RTIME=y 1149CONFIG_JFFS2_RTIME=y
1128# CONFIG_JFFS2_RUBIN is not set 1150# CONFIG_JFFS2_RUBIN is not set
1129# CONFIG_CRAMFS is not set 1151# CONFIG_CRAMFS is not set
1152# CONFIG_SQUASHFS is not set
1130# CONFIG_VXFS_FS is not set 1153# CONFIG_VXFS_FS is not set
1131# CONFIG_MINIX_FS is not set 1154# CONFIG_MINIX_FS is not set
1132# CONFIG_OMFS_FS is not set 1155# CONFIG_OMFS_FS is not set
@@ -1204,6 +1227,7 @@ CONFIG_NLS_UTF8=y
1204# Library routines 1227# Library routines
1205# 1228#
1206CONFIG_BITREVERSE=y 1229CONFIG_BITREVERSE=y
1230CONFIG_GENERIC_FIND_LAST_BIT=y
1207# CONFIG_CRC_CCITT is not set 1231# CONFIG_CRC_CCITT is not set
1208# CONFIG_CRC16 is not set 1232# CONFIG_CRC16 is not set
1209CONFIG_CRC_T10DIF=y 1233CONFIG_CRC_T10DIF=y
@@ -1239,6 +1263,8 @@ CONFIG_FRAME_WARN=1024
1239# CONFIG_LATENCYTOP is not set 1263# CONFIG_LATENCYTOP is not set
1240CONFIG_SYSCTL_SYSCALL_CHECK=y 1264CONFIG_SYSCTL_SYSCALL_CHECK=y
1241CONFIG_HAVE_FUNCTION_TRACER=y 1265CONFIG_HAVE_FUNCTION_TRACER=y
1266CONFIG_HAVE_DYNAMIC_FTRACE=y
1267CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1242 1268
1243# 1269#
1244# Tracers 1270# Tracers
@@ -1246,6 +1272,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1246# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1272# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1247# CONFIG_SAMPLES is not set 1273# CONFIG_SAMPLES is not set
1248CONFIG_HAVE_ARCH_KGDB=y 1274CONFIG_HAVE_ARCH_KGDB=y
1275CONFIG_PRINT_STACK_DEPTH=64
1249# CONFIG_IRQSTACKS is not set 1276# CONFIG_IRQSTACKS is not set
1250# CONFIG_BOOTX_TEXT is not set 1277# CONFIG_BOOTX_TEXT is not set
1251# CONFIG_PPC_EARLY_DEBUG is not set 1278# CONFIG_PPC_EARLY_DEBUG is not set
diff --git a/arch/powerpc/include/asm/Kbuild b/arch/powerpc/include/asm/Kbuild
index 9268602de5d0..5ab7d7fe198c 100644
--- a/arch/powerpc/include/asm/Kbuild
+++ b/arch/powerpc/include/asm/Kbuild
@@ -35,4 +35,3 @@ unifdef-y += spu_info.h
35unifdef-y += termios.h 35unifdef-y += termios.h
36unifdef-y += types.h 36unifdef-y += types.h
37unifdef-y += unistd.h 37unifdef-y += unistd.h
38unifdef-y += swab.h
diff --git a/arch/powerpc/include/asm/bootx.h b/arch/powerpc/include/asm/bootx.h
index 57b82e3f89ce..60a3c9ef3017 100644
--- a/arch/powerpc/include/asm/bootx.h
+++ b/arch/powerpc/include/asm/bootx.h
@@ -9,7 +9,7 @@
9#ifndef __ASM_BOOTX_H__ 9#ifndef __ASM_BOOTX_H__
10#define __ASM_BOOTX_H__ 10#define __ASM_BOOTX_H__
11 11
12#include <asm/types.h> 12#include <linux/types.h>
13 13
14#ifdef macintosh 14#ifdef macintosh
15#include <Types.h> 15#include <Types.h>
diff --git a/arch/powerpc/include/asm/byteorder.h b/arch/powerpc/include/asm/byteorder.h
index 5cca27a41532..aa6cc4fac965 100644
--- a/arch/powerpc/include/asm/byteorder.h
+++ b/arch/powerpc/include/asm/byteorder.h
@@ -7,8 +7,6 @@
7 * as published by the Free Software Foundation; either version 7 * as published by the Free Software Foundation; either version
8 * 2 of the License, or (at your option) any later version. 8 * 2 of the License, or (at your option) any later version.
9 */ 9 */
10
11#include <asm/swab.h>
12#include <linux/byteorder/big_endian.h> 10#include <linux/byteorder/big_endian.h>
13 11
14#endif /* _ASM_POWERPC_BYTEORDER_H */ 12#endif /* _ASM_POWERPC_BYTEORDER_H */
diff --git a/arch/powerpc/include/asm/compat.h b/arch/powerpc/include/asm/compat.h
index d811a8cd7b58..4774c2f92232 100644
--- a/arch/powerpc/include/asm/compat.h
+++ b/arch/powerpc/include/asm/compat.h
@@ -210,5 +210,10 @@ struct compat_shmid64_ds {
210 compat_ulong_t __unused6; 210 compat_ulong_t __unused6;
211}; 211};
212 212
213static inline int is_compat_task(void)
214{
215 return test_thread_flag(TIF_32BIT);
216}
217
213#endif /* __KERNEL__ */ 218#endif /* __KERNEL__ */
214#endif /* _ASM_POWERPC_COMPAT_H */ 219#endif /* _ASM_POWERPC_COMPAT_H */
diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
index cd46f023ec6d..b5600ce6055e 100644
--- a/arch/powerpc/include/asm/elf.h
+++ b/arch/powerpc/include/asm/elf.h
@@ -7,7 +7,7 @@
7#include <asm/string.h> 7#include <asm/string.h>
8#endif 8#endif
9 9
10#include <asm/types.h> 10#include <linux/types.h>
11#include <asm/ptrace.h> 11#include <asm/ptrace.h>
12#include <asm/cputable.h> 12#include <asm/cputable.h>
13#include <asm/auxvec.h> 13#include <asm/auxvec.h>
diff --git a/arch/powerpc/include/asm/kvm.h b/arch/powerpc/include/asm/kvm.h
index f993e4198d5c..4e0cf65f7f5a 100644
--- a/arch/powerpc/include/asm/kvm.h
+++ b/arch/powerpc/include/asm/kvm.h
@@ -20,7 +20,7 @@
20#ifndef __LINUX_KVM_POWERPC_H 20#ifndef __LINUX_KVM_POWERPC_H
21#define __LINUX_KVM_POWERPC_H 21#define __LINUX_KVM_POWERPC_H
22 22
23#include <asm/types.h> 23#include <linux/types.h>
24 24
25struct kvm_regs { 25struct kvm_regs {
26 __u64 pc; 26 __u64 pc;
diff --git a/arch/powerpc/include/asm/pgtable-4k.h b/arch/powerpc/include/asm/pgtable-4k.h
index 6b18ba9d2d85..1dbca4e7de67 100644
--- a/arch/powerpc/include/asm/pgtable-4k.h
+++ b/arch/powerpc/include/asm/pgtable-4k.h
@@ -60,7 +60,7 @@
60/* It should be preserving the high 48 bits and then specifically */ 60/* It should be preserving the high 48 bits and then specifically */
61/* preserving _PAGE_SECONDARY | _PAGE_GROUP_IX */ 61/* preserving _PAGE_SECONDARY | _PAGE_GROUP_IX */
62#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | \ 62#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | \
63 _PAGE_HPTEFLAGS) 63 _PAGE_HPTEFLAGS | _PAGE_SPECIAL)
64 64
65/* Bits to mask out from a PMD to get to the PTE page */ 65/* Bits to mask out from a PMD to get to the PTE page */
66#define PMD_MASKED_BITS 0 66#define PMD_MASKED_BITS 0
diff --git a/arch/powerpc/include/asm/pgtable-64k.h b/arch/powerpc/include/asm/pgtable-64k.h
index 07b0d8f09cb6..7389003349a6 100644
--- a/arch/powerpc/include/asm/pgtable-64k.h
+++ b/arch/powerpc/include/asm/pgtable-64k.h
@@ -114,7 +114,7 @@ static inline struct subpage_prot_table *pgd_subpage_prot(pgd_t *pgd)
114 * pgprot changes 114 * pgprot changes
115 */ 115 */
116#define _PAGE_CHG_MASK (PTE_RPN_MASK | _PAGE_HPTEFLAGS | _PAGE_DIRTY | \ 116#define _PAGE_CHG_MASK (PTE_RPN_MASK | _PAGE_HPTEFLAGS | _PAGE_DIRTY | \
117 _PAGE_ACCESSED) 117 _PAGE_ACCESSED | _PAGE_SPECIAL)
118 118
119/* Bits to mask out from a PMD to get to the PTE page */ 119/* Bits to mask out from a PMD to get to the PTE page */
120#define PMD_MASKED_BITS 0x1ff 120#define PMD_MASKED_BITS 0x1ff
diff --git a/arch/powerpc/include/asm/pgtable-ppc32.h b/arch/powerpc/include/asm/pgtable-ppc32.h
index f69a4d977729..820b5f0a35ce 100644
--- a/arch/powerpc/include/asm/pgtable-ppc32.h
+++ b/arch/powerpc/include/asm/pgtable-ppc32.h
@@ -429,7 +429,8 @@ extern int icache_44x_need_flush;
429#define PMD_PAGE_SIZE(pmd) bad_call_to_PMD_PAGE_SIZE() 429#define PMD_PAGE_SIZE(pmd) bad_call_to_PMD_PAGE_SIZE()
430#endif 430#endif
431 431
432#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY) 432#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | \
433 _PAGE_SPECIAL)
433 434
434 435
435#define PAGE_PROT_BITS (_PAGE_GUARDED | _PAGE_COHERENT | _PAGE_NO_CACHE | \ 436#define PAGE_PROT_BITS (_PAGE_GUARDED | _PAGE_COHERENT | _PAGE_NO_CACHE | \
diff --git a/arch/powerpc/include/asm/ps3.h b/arch/powerpc/include/asm/ps3.h
index eead5c67197a..67f1812698d2 100644
--- a/arch/powerpc/include/asm/ps3.h
+++ b/arch/powerpc/include/asm/ps3.h
@@ -103,10 +103,10 @@ struct ps3_dma_region_ops {
103 int (*map)(struct ps3_dma_region *, 103 int (*map)(struct ps3_dma_region *,
104 unsigned long virt_addr, 104 unsigned long virt_addr,
105 unsigned long len, 105 unsigned long len,
106 unsigned long *bus_addr, 106 dma_addr_t *bus_addr,
107 u64 iopte_pp); 107 u64 iopte_pp);
108 int (*unmap)(struct ps3_dma_region *, 108 int (*unmap)(struct ps3_dma_region *,
109 unsigned long bus_addr, 109 dma_addr_t bus_addr,
110 unsigned long len); 110 unsigned long len);
111}; 111};
112/** 112/**
@@ -124,9 +124,9 @@ int ps3_dma_region_init(struct ps3_system_bus_device *dev,
124int ps3_dma_region_create(struct ps3_dma_region *r); 124int ps3_dma_region_create(struct ps3_dma_region *r);
125int ps3_dma_region_free(struct ps3_dma_region *r); 125int ps3_dma_region_free(struct ps3_dma_region *r);
126int ps3_dma_map(struct ps3_dma_region *r, unsigned long virt_addr, 126int ps3_dma_map(struct ps3_dma_region *r, unsigned long virt_addr,
127 unsigned long len, unsigned long *bus_addr, 127 unsigned long len, dma_addr_t *bus_addr,
128 u64 iopte_pp); 128 u64 iopte_pp);
129int ps3_dma_unmap(struct ps3_dma_region *r, unsigned long bus_addr, 129int ps3_dma_unmap(struct ps3_dma_region *r, dma_addr_t bus_addr,
130 unsigned long len); 130 unsigned long len);
131 131
132/* mmio routines */ 132/* mmio routines */
diff --git a/arch/powerpc/include/asm/ps3fb.h b/arch/powerpc/include/asm/ps3fb.h
index 3f121fe4010d..e7233a849680 100644
--- a/arch/powerpc/include/asm/ps3fb.h
+++ b/arch/powerpc/include/asm/ps3fb.h
@@ -19,6 +19,7 @@
19#ifndef _ASM_POWERPC_PS3FB_H_ 19#ifndef _ASM_POWERPC_PS3FB_H_
20#define _ASM_POWERPC_PS3FB_H_ 20#define _ASM_POWERPC_PS3FB_H_
21 21
22#include <linux/types.h>
22#include <linux/ioctl.h> 23#include <linux/ioctl.h>
23 24
24/* ioctl */ 25/* ioctl */
diff --git a/arch/powerpc/include/asm/qe.h b/arch/powerpc/include/asm/qe.h
index a0a15311d0d8..2701753d9937 100644
--- a/arch/powerpc/include/asm/qe.h
+++ b/arch/powerpc/include/asm/qe.h
@@ -624,7 +624,7 @@ struct ucc_slow_pram {
624#define UCC_GETH_UCCE_RXF1 0x00000002 624#define UCC_GETH_UCCE_RXF1 0x00000002
625#define UCC_GETH_UCCE_RXF0 0x00000001 625#define UCC_GETH_UCCE_RXF0 0x00000001
626 626
627/* UPSMR, when used as a UART */ 627/* UCC Protocol Specific Mode Register (UPSMR), when used for UART */
628#define UCC_UART_UPSMR_FLC 0x8000 628#define UCC_UART_UPSMR_FLC 0x8000
629#define UCC_UART_UPSMR_SL 0x4000 629#define UCC_UART_UPSMR_SL 0x4000
630#define UCC_UART_UPSMR_CL_MASK 0x3000 630#define UCC_UART_UPSMR_CL_MASK 0x3000
@@ -652,6 +652,23 @@ struct ucc_slow_pram {
652#define UCC_UART_UPSMR_TPM_EVEN 0x0002 652#define UCC_UART_UPSMR_TPM_EVEN 0x0002
653#define UCC_UART_UPSMR_TPM_HIGH 0x0003 653#define UCC_UART_UPSMR_TPM_HIGH 0x0003
654 654
655/* UCC Protocol Specific Mode Register (UPSMR), when used for Ethernet */
656#define UCC_GETH_UPSMR_FTFE 0x80000000
657#define UCC_GETH_UPSMR_PTPE 0x40000000
658#define UCC_GETH_UPSMR_ECM 0x04000000
659#define UCC_GETH_UPSMR_HSE 0x02000000
660#define UCC_GETH_UPSMR_PRO 0x00400000
661#define UCC_GETH_UPSMR_CAP 0x00200000
662#define UCC_GETH_UPSMR_RSH 0x00100000
663#define UCC_GETH_UPSMR_RPM 0x00080000
664#define UCC_GETH_UPSMR_R10M 0x00040000
665#define UCC_GETH_UPSMR_RLPB 0x00020000
666#define UCC_GETH_UPSMR_TBIM 0x00010000
667#define UCC_GETH_UPSMR_RES1 0x00002000
668#define UCC_GETH_UPSMR_RMM 0x00001000
669#define UCC_GETH_UPSMR_CAM 0x00000400
670#define UCC_GETH_UPSMR_BRO 0x00000200
671
655/* UCC Transmit On Demand Register (UTODR) */ 672/* UCC Transmit On Demand Register (UTODR) */
656#define UCC_SLOW_TOD 0x8000 673#define UCC_SLOW_TOD 0x8000
657#define UCC_FAST_TOD 0x8000 674#define UCC_FAST_TOD 0x8000
diff --git a/arch/powerpc/include/asm/rtas.h b/arch/powerpc/include/asm/rtas.h
index e0175beb4462..0aa0315fb7e8 100644
--- a/arch/powerpc/include/asm/rtas.h
+++ b/arch/powerpc/include/asm/rtas.h
@@ -18,7 +18,7 @@
18 */ 18 */
19 19
20#define RTAS_UNKNOWN_SERVICE (-1) 20#define RTAS_UNKNOWN_SERVICE (-1)
21#define RTAS_INSTANTIATE_MAX (1UL<<30) /* Don't instantiate rtas at/above this value */ 21#define RTAS_INSTANTIATE_MAX (1ULL<<30) /* Don't instantiate rtas at/above this value */
22 22
23/* Buffer size for ppc_rtas system call. */ 23/* Buffer size for ppc_rtas system call. */
24#define RTAS_RMOBUF_MAX (64 * 1024) 24#define RTAS_RMOBUF_MAX (64 * 1024)
diff --git a/arch/powerpc/include/asm/seccomp.h b/arch/powerpc/include/asm/seccomp.h
index 853765eb1f65..00c1d9133cfe 100644
--- a/arch/powerpc/include/asm/seccomp.h
+++ b/arch/powerpc/include/asm/seccomp.h
@@ -1,10 +1,6 @@
1#ifndef _ASM_POWERPC_SECCOMP_H 1#ifndef _ASM_POWERPC_SECCOMP_H
2#define _ASM_POWERPC_SECCOMP_H 2#define _ASM_POWERPC_SECCOMP_H
3 3
4#ifdef __KERNEL__
5#include <linux/thread_info.h>
6#endif
7
8#include <linux/unistd.h> 4#include <linux/unistd.h>
9 5
10#define __NR_seccomp_read __NR_read 6#define __NR_seccomp_read __NR_read
diff --git a/arch/powerpc/include/asm/spu_info.h b/arch/powerpc/include/asm/spu_info.h
index 3545efbf9891..1286c823f0d8 100644
--- a/arch/powerpc/include/asm/spu_info.h
+++ b/arch/powerpc/include/asm/spu_info.h
@@ -23,9 +23,10 @@
23#ifndef _SPU_INFO_H 23#ifndef _SPU_INFO_H
24#define _SPU_INFO_H 24#define _SPU_INFO_H
25 25
26#include <linux/types.h>
27
26#ifdef __KERNEL__ 28#ifdef __KERNEL__
27#include <asm/spu.h> 29#include <asm/spu.h>
28#include <linux/types.h>
29#else 30#else
30struct mfc_cq_sr { 31struct mfc_cq_sr {
31 __u64 mfc_cq_data0_RW; 32 __u64 mfc_cq_data0_RW;
diff --git a/arch/powerpc/include/asm/swab.h b/arch/powerpc/include/asm/swab.h
index ef824ae4b79c..c581e3ef73ed 100644
--- a/arch/powerpc/include/asm/swab.h
+++ b/arch/powerpc/include/asm/swab.h
@@ -8,7 +8,7 @@
8 * 2 of the License, or (at your option) any later version. 8 * 2 of the License, or (at your option) any later version.
9 */ 9 */
10 10
11#include <asm/types.h> 11#include <linux/types.h>
12#include <linux/compiler.h> 12#include <linux/compiler.h>
13 13
14#ifdef __GNUC__ 14#ifdef __GNUC__
diff --git a/arch/powerpc/include/asm/systbl.h b/arch/powerpc/include/asm/systbl.h
index 803def236654..72353f6070a4 100644
--- a/arch/powerpc/include/asm/systbl.h
+++ b/arch/powerpc/include/asm/systbl.h
@@ -92,7 +92,7 @@ COMPAT_SYS_SPU(readlink)
92SYSCALL(uselib) 92SYSCALL(uselib)
93SYSCALL(swapon) 93SYSCALL(swapon)
94SYSCALL(reboot) 94SYSCALL(reboot)
95SYSX(sys_ni_syscall,compat_sys_old_readdir,old_readdir) 95SYSX(sys_ni_syscall,compat_sys_old_readdir,sys_old_readdir)
96SYSCALL_SPU(mmap) 96SYSCALL_SPU(mmap)
97SYSCALL_SPU(munmap) 97SYSCALL_SPU(munmap)
98SYSCALL_SPU(truncate) 98SYSCALL_SPU(truncate)
diff --git a/arch/powerpc/include/asm/types.h b/arch/powerpc/include/asm/types.h
index c004c13f291e..7ce27a52bb34 100644
--- a/arch/powerpc/include/asm/types.h
+++ b/arch/powerpc/include/asm/types.h
@@ -1,7 +1,12 @@
1#ifndef _ASM_POWERPC_TYPES_H 1#ifndef _ASM_POWERPC_TYPES_H
2#define _ASM_POWERPC_TYPES_H 2#define _ASM_POWERPC_TYPES_H
3 3
4#ifdef __powerpc64__ 4/*
5 * This is here because we used to use l64 for 64bit powerpc
6 * and we don't want to impact user mode with our change to ll64
7 * in the kernel.
8 */
9#if defined(__powerpc64__) && !defined(__KERNEL__)
5# include <asm-generic/int-l64.h> 10# include <asm-generic/int-l64.h>
6#else 11#else
7# include <asm-generic/int-ll64.h> 12# include <asm-generic/int-ll64.h>
diff --git a/arch/powerpc/kernel/align.c b/arch/powerpc/kernel/align.c
index 5af4e9b2dbe2..73cb6a3229ae 100644
--- a/arch/powerpc/kernel/align.c
+++ b/arch/powerpc/kernel/align.c
@@ -367,27 +367,24 @@ static int emulate_multiple(struct pt_regs *regs, unsigned char __user *addr,
367static int emulate_fp_pair(unsigned char __user *addr, unsigned int reg, 367static int emulate_fp_pair(unsigned char __user *addr, unsigned int reg,
368 unsigned int flags) 368 unsigned int flags)
369{ 369{
370 char *ptr = (char *) &current->thread.TS_FPR(reg); 370 char *ptr0 = (char *) &current->thread.TS_FPR(reg);
371 int i, ret; 371 char *ptr1 = (char *) &current->thread.TS_FPR(reg+1);
372 int i, ret, sw = 0;
372 373
373 if (!(flags & F)) 374 if (!(flags & F))
374 return 0; 375 return 0;
375 if (reg & 1) 376 if (reg & 1)
376 return 0; /* invalid form: FRS/FRT must be even */ 377 return 0; /* invalid form: FRS/FRT must be even */
377 if (!(flags & SW)) { 378 if (flags & SW)
378 /* not byte-swapped - easy */ 379 sw = 7;
379 if (!(flags & ST)) 380 ret = 0;
380 ret = __copy_from_user(ptr, addr, 16); 381 for (i = 0; i < 8; ++i) {
381 else 382 if (!(flags & ST)) {
382 ret = __copy_to_user(addr, ptr, 16); 383 ret |= __get_user(ptr0[i^sw], addr + i);
383 } else { 384 ret |= __get_user(ptr1[i^sw], addr + i + 8);
384 /* each FPR value is byte-swapped separately */ 385 } else {
385 ret = 0; 386 ret |= __put_user(ptr0[i^sw], addr + i);
386 for (i = 0; i < 16; ++i) { 387 ret |= __put_user(ptr1[i^sw], addr + i + 8);
387 if (!(flags & ST))
388 ret |= __get_user(ptr[i^7], addr + i);
389 else
390 ret |= __put_user(ptr[i^7], addr + i);
391 } 388 }
392 } 389 }
393 if (ret) 390 if (ret)
@@ -646,11 +643,16 @@ static int emulate_vsx(unsigned char __user *addr, unsigned int reg,
646 unsigned int areg, struct pt_regs *regs, 643 unsigned int areg, struct pt_regs *regs,
647 unsigned int flags, unsigned int length) 644 unsigned int flags, unsigned int length)
648{ 645{
649 char *ptr = (char *) &current->thread.TS_FPR(reg); 646 char *ptr;
650 int ret = 0; 647 int ret = 0;
651 648
652 flush_vsx_to_thread(current); 649 flush_vsx_to_thread(current);
653 650
651 if (reg < 32)
652 ptr = (char *) &current->thread.TS_FPR(reg);
653 else
654 ptr = (char *) &current->thread.vr[reg - 32];
655
654 if (flags & ST) 656 if (flags & ST)
655 ret = __copy_to_user(addr, ptr, length); 657 ret = __copy_to_user(addr, ptr, length);
656 else { 658 else {
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 9937fe44555f..19ee491e9e23 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -56,6 +56,10 @@
56#include "head_booke.h" 56#include "head_booke.h"
57#endif 57#endif
58 58
59#if defined(CONFIG_FSL_BOOKE)
60#include "../mm/mmu_decl.h"
61#endif
62
59int main(void) 63int main(void)
60{ 64{
61 DEFINE(THREAD, offsetof(struct task_struct, thread)); 65 DEFINE(THREAD, offsetof(struct task_struct, thread));
@@ -382,6 +386,9 @@ int main(void)
382 DEFINE(PGD_T_LOG2, PGD_T_LOG2); 386 DEFINE(PGD_T_LOG2, PGD_T_LOG2);
383 DEFINE(PTE_T_LOG2, PTE_T_LOG2); 387 DEFINE(PTE_T_LOG2, PTE_T_LOG2);
384#endif 388#endif
389#ifdef CONFIG_FSL_BOOKE
390 DEFINE(TLBCAM_SIZE, sizeof(struct tlbcam));
391#endif
385 392
386#ifdef CONFIG_KVM_EXIT_TIMING 393#ifdef CONFIG_KVM_EXIT_TIMING
387 DEFINE(VCPU_TIMING_EXIT_TBU, offsetof(struct kvm_vcpu, 394 DEFINE(VCPU_TIMING_EXIT_TBU, offsetof(struct kvm_vcpu,
diff --git a/arch/powerpc/kernel/cacheinfo.c b/arch/powerpc/kernel/cacheinfo.c
index b33f0417a4bf..bb37b1d19a58 100644
--- a/arch/powerpc/kernel/cacheinfo.c
+++ b/arch/powerpc/kernel/cacheinfo.c
@@ -113,7 +113,7 @@ struct cache {
113 struct cache *next_local; /* next cache of >= level */ 113 struct cache *next_local; /* next cache of >= level */
114}; 114};
115 115
116static DEFINE_PER_CPU(struct cache_dir *, cache_dir); 116static DEFINE_PER_CPU(struct cache_dir *, cache_dir_pcpu);
117 117
118/* traversal/modification of this list occurs only at cpu hotplug time; 118/* traversal/modification of this list occurs only at cpu hotplug time;
119 * access is serialized by cpu hotplug locking 119 * access is serialized by cpu hotplug locking
@@ -468,9 +468,9 @@ static struct cache_dir *__cpuinit cacheinfo_create_cache_dir(unsigned int cpu_i
468 468
469 cache_dir->kobj = kobj; 469 cache_dir->kobj = kobj;
470 470
471 WARN_ON_ONCE(per_cpu(cache_dir, cpu_id) != NULL); 471 WARN_ON_ONCE(per_cpu(cache_dir_pcpu, cpu_id) != NULL);
472 472
473 per_cpu(cache_dir, cpu_id) = cache_dir; 473 per_cpu(cache_dir_pcpu, cpu_id) = cache_dir;
474 474
475 return cache_dir; 475 return cache_dir;
476err: 476err:
@@ -820,13 +820,13 @@ void cacheinfo_cpu_offline(unsigned int cpu_id)
820 820
821 /* Prevent userspace from seeing inconsistent state - remove 821 /* Prevent userspace from seeing inconsistent state - remove
822 * the sysfs hierarchy first */ 822 * the sysfs hierarchy first */
823 cache_dir = per_cpu(cache_dir, cpu_id); 823 cache_dir = per_cpu(cache_dir_pcpu, cpu_id);
824 824
825 /* careful, sysfs population may have failed */ 825 /* careful, sysfs population may have failed */
826 if (cache_dir) 826 if (cache_dir)
827 remove_cache_dir(cache_dir); 827 remove_cache_dir(cache_dir);
828 828
829 per_cpu(cache_dir, cpu_id) = NULL; 829 per_cpu(cache_dir_pcpu, cpu_id) = NULL;
830 830
831 /* clear the CPU's bit in its cache chain, possibly freeing 831 /* clear the CPU's bit in its cache chain, possibly freeing
832 * cache objects */ 832 * cache objects */
diff --git a/arch/powerpc/kernel/dma-iommu.c b/arch/powerpc/kernel/dma-iommu.c
index 14183af1b3fb..2983adac8cc3 100644
--- a/arch/powerpc/kernel/dma-iommu.c
+++ b/arch/powerpc/kernel/dma-iommu.c
@@ -79,10 +79,10 @@ static int dma_iommu_dma_supported(struct device *dev, u64 mask)
79 "Warning: IOMMU offset too big for device mask\n"); 79 "Warning: IOMMU offset too big for device mask\n");
80 if (tbl) 80 if (tbl)
81 printk(KERN_INFO 81 printk(KERN_INFO
82 "mask: 0x%08lx, table offset: 0x%08lx\n", 82 "mask: 0x%08llx, table offset: 0x%08lx\n",
83 mask, tbl->it_offset); 83 mask, tbl->it_offset);
84 else 84 else
85 printk(KERN_INFO "mask: 0x%08lx, table unavailable\n", 85 printk(KERN_INFO "mask: 0x%08llx, table unavailable\n",
86 mask); 86 mask);
87 return 0; 87 return 0;
88 } else 88 } else
diff --git a/arch/powerpc/kernel/ftrace.c b/arch/powerpc/kernel/ftrace.c
index 5355244c99ff..60c60ccf5e3c 100644
--- a/arch/powerpc/kernel/ftrace.c
+++ b/arch/powerpc/kernel/ftrace.c
@@ -195,8 +195,9 @@ __ftrace_make_nop(struct module *mod,
195 return -EINVAL; 195 return -EINVAL;
196 } 196 }
197 197
198 offset = (unsigned)((unsigned short)jmp[0]) << 16 | 198 /* The bottom half is signed extended */
199 (unsigned)((unsigned short)jmp[1]); 199 offset = ((unsigned)((unsigned short)jmp[0]) << 16) +
200 (int)((short)jmp[1]);
200 201
201 DEBUGP(" %x ", offset); 202 DEBUGP(" %x ", offset);
202 203
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
index b4bcf5a930fa..ebaedafc8e67 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -1518,6 +1518,15 @@ _GLOBAL(pmac_secondary_start)
1518 /* turn on 64-bit mode */ 1518 /* turn on 64-bit mode */
1519 bl .enable_64b_mode 1519 bl .enable_64b_mode
1520 1520
1521 li r0,0
1522 mfspr r3,SPRN_HID4
1523 rldimi r3,r0,40,23 /* clear bit 23 (rm_ci) */
1524 sync
1525 mtspr SPRN_HID4,r3
1526 isync
1527 sync
1528 slbia
1529
1521 /* get TOC pointer (real address) */ 1530 /* get TOC pointer (real address) */
1522 bl .relative_toc 1531 bl .relative_toc
1523 1532
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 11b549acc034..36ffb3504a4f 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -389,10 +389,6 @@ skpinv: addi r6,r6,1 /* Increment */
389#endif 389#endif
390#endif 390#endif
391 391
392 mfspr r3,SPRN_TLB1CFG
393 andi. r3,r3,0xfff
394 lis r4,num_tlbcam_entries@ha
395 stw r3,num_tlbcam_entries@l(r4)
396/* 392/*
397 * Decide what sort of machine this is and initialize the MMU. 393 * Decide what sort of machine this is and initialize the MMU.
398 */ 394 */
@@ -711,7 +707,7 @@ interrupt_base:
711 EXCEPTION(0x2060, PerformanceMonitor, performance_monitor_exception, EXC_XFER_STD) 707 EXCEPTION(0x2060, PerformanceMonitor, performance_monitor_exception, EXC_XFER_STD)
712 708
713#ifdef CONFIG_PPC_E500MC 709#ifdef CONFIG_PPC_E500MC
714 EXCEPTION(0x2070, Doorbell, unknown_exception, EXC_XFER_EE) 710 EXCEPTION(0x2070, Doorbell, unknown_exception, EXC_XFER_STD)
715#endif 711#endif
716 712
717 /* Debug Interrupt */ 713 /* Debug Interrupt */
@@ -909,7 +905,7 @@ KernelSPE:
909_GLOBAL(loadcam_entry) 905_GLOBAL(loadcam_entry)
910 lis r4,TLBCAM@ha 906 lis r4,TLBCAM@ha
911 addi r4,r4,TLBCAM@l 907 addi r4,r4,TLBCAM@l
912 mulli r5,r3,20 908 mulli r5,r3,TLBCAM_SIZE
913 add r3,r5,r4 909 add r3,r5,r4
914 lwz r4,0(r3) 910 lwz r4,0(r3)
915 mtspr SPRN_MAS0,r4 911 mtspr SPRN_MAS0,r4
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
index 1bfa706b96e7..fd51578e29dd 100644
--- a/arch/powerpc/kernel/iommu.c
+++ b/arch/powerpc/kernel/iommu.c
@@ -239,12 +239,12 @@ static void __iommu_free(struct iommu_table *tbl, dma_addr_t dma_addr,
239 if (printk_ratelimit()) { 239 if (printk_ratelimit()) {
240 printk(KERN_INFO "iommu_free: invalid entry\n"); 240 printk(KERN_INFO "iommu_free: invalid entry\n");
241 printk(KERN_INFO "\tentry = 0x%lx\n", entry); 241 printk(KERN_INFO "\tentry = 0x%lx\n", entry);
242 printk(KERN_INFO "\tdma_addr = 0x%lx\n", (u64)dma_addr); 242 printk(KERN_INFO "\tdma_addr = 0x%llx\n", (u64)dma_addr);
243 printk(KERN_INFO "\tTable = 0x%lx\n", (u64)tbl); 243 printk(KERN_INFO "\tTable = 0x%llx\n", (u64)tbl);
244 printk(KERN_INFO "\tbus# = 0x%lx\n", (u64)tbl->it_busno); 244 printk(KERN_INFO "\tbus# = 0x%llx\n", (u64)tbl->it_busno);
245 printk(KERN_INFO "\tsize = 0x%lx\n", (u64)tbl->it_size); 245 printk(KERN_INFO "\tsize = 0x%llx\n", (u64)tbl->it_size);
246 printk(KERN_INFO "\tstartOff = 0x%lx\n", (u64)tbl->it_offset); 246 printk(KERN_INFO "\tstartOff = 0x%llx\n", (u64)tbl->it_offset);
247 printk(KERN_INFO "\tindex = 0x%lx\n", (u64)tbl->it_index); 247 printk(KERN_INFO "\tindex = 0x%llx\n", (u64)tbl->it_index);
248 WARN_ON(1); 248 WARN_ON(1);
249 } 249 }
250 return; 250 return;
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 23b8b5e36f98..ad1e5ac721d8 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -231,7 +231,7 @@ void fixup_irqs(cpumask_t map)
231 if (irq_desc[irq].status & IRQ_PER_CPU) 231 if (irq_desc[irq].status & IRQ_PER_CPU)
232 continue; 232 continue;
233 233
234 cpus_and(mask, irq_desc[irq].affinity, map); 234 cpumask_and(&mask, irq_desc[irq].affinity, &map);
235 if (any_online_cpu(mask) == NR_CPUS) { 235 if (any_online_cpu(mask) == NR_CPUS) {
236 printk("Breaking affinity for irq %i\n", irq); 236 printk("Breaking affinity for irq %i\n", irq);
237 mask = map; 237 mask = map;
diff --git a/arch/powerpc/kernel/lparcfg.c b/arch/powerpc/kernel/lparcfg.c
index d051e8cbcd03..182e0f642f36 100644
--- a/arch/powerpc/kernel/lparcfg.c
+++ b/arch/powerpc/kernel/lparcfg.c
@@ -240,7 +240,7 @@ static void parse_ppp_data(struct seq_file *m)
240 if (rc) 240 if (rc)
241 return; 241 return;
242 242
243 seq_printf(m, "partition_entitled_capacity=%ld\n", 243 seq_printf(m, "partition_entitled_capacity=%lld\n",
244 ppp_data.entitlement); 244 ppp_data.entitlement);
245 seq_printf(m, "group=%d\n", ppp_data.group_num); 245 seq_printf(m, "group=%d\n", ppp_data.group_num);
246 seq_printf(m, "system_active_processors=%d\n", 246 seq_printf(m, "system_active_processors=%d\n",
@@ -265,7 +265,7 @@ static void parse_ppp_data(struct seq_file *m)
265 ppp_data.unallocated_weight); 265 ppp_data.unallocated_weight);
266 seq_printf(m, "capacity_weight=%d\n", ppp_data.weight); 266 seq_printf(m, "capacity_weight=%d\n", ppp_data.weight);
267 seq_printf(m, "capped=%d\n", ppp_data.capped); 267 seq_printf(m, "capped=%d\n", ppp_data.capped);
268 seq_printf(m, "unallocated_capacity=%ld\n", 268 seq_printf(m, "unallocated_capacity=%lld\n",
269 ppp_data.unallocated_entitlement); 269 ppp_data.unallocated_entitlement);
270} 270}
271 271
@@ -509,10 +509,10 @@ static ssize_t update_ppp(u64 *entitlement, u8 *weight)
509 } else 509 } else
510 return -EINVAL; 510 return -EINVAL;
511 511
512 pr_debug("%s: current_entitled = %lu, current_weight = %u\n", 512 pr_debug("%s: current_entitled = %llu, current_weight = %u\n",
513 __func__, ppp_data.entitlement, ppp_data.weight); 513 __func__, ppp_data.entitlement, ppp_data.weight);
514 514
515 pr_debug("%s: new_entitled = %lu, new_weight = %u\n", 515 pr_debug("%s: new_entitled = %llu, new_weight = %u\n",
516 __func__, new_entitled, new_weight); 516 __func__, new_entitled, new_weight);
517 517
518 retval = plpar_hcall_norets(H_SET_PPP, new_entitled, new_weight); 518 retval = plpar_hcall_norets(H_SET_PPP, new_entitled, new_weight);
@@ -558,7 +558,7 @@ static ssize_t update_mpp(u64 *entitlement, u8 *weight)
558 pr_debug("%s: current_entitled = %lu, current_weight = %u\n", 558 pr_debug("%s: current_entitled = %lu, current_weight = %u\n",
559 __func__, mpp_data.entitled_mem, mpp_data.mem_weight); 559 __func__, mpp_data.entitled_mem, mpp_data.mem_weight);
560 560
561 pr_debug("%s: new_entitled = %lu, new_weight = %u\n", 561 pr_debug("%s: new_entitled = %llu, new_weight = %u\n",
562 __func__, new_entitled, new_weight); 562 __func__, new_entitled, new_weight);
563 563
564 rc = plpar_hcall_norets(H_SET_MPP, new_entitled, new_weight); 564 rc = plpar_hcall_norets(H_SET_MPP, new_entitled, new_weight);
diff --git a/arch/powerpc/kernel/machine_kexec.c b/arch/powerpc/kernel/machine_kexec.c
index b3abebb7ee64..d59e2b1bdcba 100644
--- a/arch/powerpc/kernel/machine_kexec.c
+++ b/arch/powerpc/kernel/machine_kexec.c
@@ -93,10 +93,35 @@ void __init reserve_crashkernel(void)
93 KDUMP_KERNELBASE); 93 KDUMP_KERNELBASE);
94 94
95 crashk_res.start = KDUMP_KERNELBASE; 95 crashk_res.start = KDUMP_KERNELBASE;
96#else
97 if (!crashk_res.start) {
98 /*
99 * unspecified address, choose a region of specified size
100 * can overlap with initrd (ignoring corruption when retained)
101 * ppc64 requires kernel and some stacks to be in first segemnt
102 */
103 crashk_res.start = KDUMP_KERNELBASE;
104 }
105
106 crash_base = PAGE_ALIGN(crashk_res.start);
107 if (crash_base != crashk_res.start) {
108 printk("Crash kernel base must be aligned to 0x%lx\n",
109 PAGE_SIZE);
110 crashk_res.start = crash_base;
111 }
112
96#endif 113#endif
97 crash_size = PAGE_ALIGN(crash_size); 114 crash_size = PAGE_ALIGN(crash_size);
98 crashk_res.end = crashk_res.start + crash_size - 1; 115 crashk_res.end = crashk_res.start + crash_size - 1;
99 116
117 /* The crash region must not overlap the current kernel */
118 if (overlaps_crashkernel(__pa(_stext), _end - _stext)) {
119 printk(KERN_WARNING
120 "Crash kernel can not overlap current kernel\n");
121 crashk_res.start = crashk_res.end = 0;
122 return;
123 }
124
100 /* Crash kernel trumps memory limit */ 125 /* Crash kernel trumps memory limit */
101 if (memory_limit && memory_limit <= crashk_res.end) { 126 if (memory_limit && memory_limit <= crashk_res.end) {
102 memory_limit = crashk_res.end + 1; 127 memory_limit = crashk_res.end + 1;
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index da5a3855a0c4..0f4181272311 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -16,8 +16,6 @@
16 * 2 of the License, or (at your option) any later version. 16 * 2 of the License, or (at your option) any later version.
17 */ 17 */
18 18
19#define DEBUG
20
21#include <linux/kernel.h> 19#include <linux/kernel.h>
22#include <linux/pci.h> 20#include <linux/pci.h>
23#include <linux/string.h> 21#include <linux/string.h>
@@ -258,7 +256,8 @@ int pci_read_irq_line(struct pci_dev *pci_dev)
258 } else { 256 } else {
259 pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n", 257 pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n",
260 oirq.size, oirq.specifier[0], oirq.specifier[1], 258 oirq.size, oirq.specifier[0], oirq.specifier[1],
261 oirq.controller->full_name); 259 oirq.controller ? oirq.controller->full_name :
260 "<default>");
262 261
263 virq = irq_create_of_mapping(oirq.controller, oirq.specifier, 262 virq = irq_create_of_mapping(oirq.controller, oirq.specifier,
264 oirq.size); 263 oirq.size);
@@ -562,8 +561,21 @@ int pci_mmap_legacy_page_range(struct pci_bus *bus,
562 (unsigned long long)(offset + size - 1)); 561 (unsigned long long)(offset + size - 1));
563 562
564 if (mmap_state == pci_mmap_mem) { 563 if (mmap_state == pci_mmap_mem) {
565 if ((offset + size) > hose->isa_mem_size) 564 /* Hack alert !
566 return -ENXIO; 565 *
566 * Because X is lame and can fail starting if it gets an error trying
567 * to mmap legacy_mem (instead of just moving on without legacy memory
568 * access) we fake it here by giving it anonymous memory, effectively
569 * behaving just like /dev/zero
570 */
571 if ((offset + size) > hose->isa_mem_size) {
572 printk(KERN_DEBUG
573 "Process %s (pid:%d) mapped non-existing PCI legacy memory for 0%04x:%02x\n",
574 current->comm, current->pid, pci_domain_nr(bus), bus->number);
575 if (vma->vm_flags & VM_SHARED)
576 return shmem_zero_setup(vma);
577 return 0;
578 }
567 offset += hose->isa_mem_phys; 579 offset += hose->isa_mem_phys;
568 } else { 580 } else {
569 unsigned long io_offset = (unsigned long)hose->io_base_virt - _IO_BASE; 581 unsigned long io_offset = (unsigned long)hose->io_base_virt - _IO_BASE;
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index 586962f65c2a..ea8eda8c87cf 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -470,7 +470,7 @@ int __devinit pcibios_map_io_space(struct pci_bus *bus)
470 if (bus->self) { 470 if (bus->self) {
471 pr_debug("IO mapping for PCI-PCI bridge %s\n", 471 pr_debug("IO mapping for PCI-PCI bridge %s\n",
472 pci_name(bus->self)); 472 pci_name(bus->self));
473 pr_debug(" virt=0x%016lx...0x%016lx\n", 473 pr_debug(" virt=0x%016llx...0x%016llx\n",
474 bus->resource[0]->start + _IO_BASE, 474 bus->resource[0]->start + _IO_BASE,
475 bus->resource[0]->end + _IO_BASE); 475 bus->resource[0]->end + _IO_BASE);
476 return 0; 476 return 0;
@@ -502,7 +502,7 @@ int __devinit pcibios_map_io_space(struct pci_bus *bus)
502 hose->io_base_phys - phys_page); 502 hose->io_base_phys - phys_page);
503 503
504 pr_debug("IO mapping for PHB %s\n", hose->dn->full_name); 504 pr_debug("IO mapping for PHB %s\n", hose->dn->full_name);
505 pr_debug(" phys=0x%016lx, virt=0x%p (alloc=0x%p)\n", 505 pr_debug(" phys=0x%016llx, virt=0x%p (alloc=0x%p)\n",
506 hose->io_base_phys, hose->io_base_virt, hose->io_base_alloc); 506 hose->io_base_phys, hose->io_base_virt, hose->io_base_alloc);
507 pr_debug(" size=0x%016lx (alloc=0x%016lx)\n", 507 pr_debug(" size=0x%016lx (alloc=0x%016lx)\n",
508 hose->pci_io_size, size_page); 508 hose->pci_io_size, size_page);
@@ -517,7 +517,7 @@ int __devinit pcibios_map_io_space(struct pci_bus *bus)
517 hose->io_resource.start += io_virt_offset; 517 hose->io_resource.start += io_virt_offset;
518 hose->io_resource.end += io_virt_offset; 518 hose->io_resource.end += io_virt_offset;
519 519
520 pr_debug(" hose->io_resource=0x%016lx...0x%016lx\n", 520 pr_debug(" hose->io_resource=0x%016llx...0x%016llx\n",
521 hose->io_resource.start, hose->io_resource.end); 521 hose->io_resource.start, hose->io_resource.end);
522 522
523 return 0; 523 return 0;
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index c09cffafb6ee..f00f83109ab3 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -590,6 +590,11 @@ static void __init check_cpu_slb_size(unsigned long node)
590{ 590{
591 u32 *slb_size_ptr; 591 u32 *slb_size_ptr;
592 592
593 slb_size_ptr = of_get_flat_dt_prop(node, "slb-size", NULL);
594 if (slb_size_ptr != NULL) {
595 mmu_slb_size = *slb_size_ptr;
596 return;
597 }
593 slb_size_ptr = of_get_flat_dt_prop(node, "ibm,slb-size", NULL); 598 slb_size_ptr = of_get_flat_dt_prop(node, "ibm,slb-size", NULL);
594 if (slb_size_ptr != NULL) { 599 if (slb_size_ptr != NULL) {
595 mmu_slb_size = *slb_size_ptr; 600 mmu_slb_size = *slb_size_ptr;
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index d8bd2161e738..2d34196bba8c 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -434,8 +434,8 @@ void __init setup_system(void)
434 printk("Starting Linux PPC64 %s\n", init_utsname()->version); 434 printk("Starting Linux PPC64 %s\n", init_utsname()->version);
435 435
436 printk("-----------------------------------------------------\n"); 436 printk("-----------------------------------------------------\n");
437 printk("ppc64_pft_size = 0x%lx\n", ppc64_pft_size); 437 printk("ppc64_pft_size = 0x%llx\n", ppc64_pft_size);
438 printk("physicalMemorySize = 0x%lx\n", lmb_phys_mem_size()); 438 printk("physicalMemorySize = 0x%llx\n", lmb_phys_mem_size());
439 if (ppc64_caches.dline_size != 0x80) 439 if (ppc64_caches.dline_size != 0x80)
440 printk("ppc64_caches.dcache_line_size = 0x%x\n", 440 printk("ppc64_caches.dcache_line_size = 0x%x\n",
441 ppc64_caches.dline_size); 441 ppc64_caches.dline_size);
@@ -493,7 +493,7 @@ static void __init emergency_stack_init(void)
493 * bringup, we need to get at them in real mode. This means they 493 * bringup, we need to get at them in real mode. This means they
494 * must also be within the RMO region. 494 * must also be within the RMO region.
495 */ 495 */
496 limit = min(0x10000000UL, lmb.rmo_size); 496 limit = min(0x10000000ULL, lmb.rmo_size);
497 497
498 for_each_possible_cpu(i) { 498 for_each_possible_cpu(i) {
499 unsigned long sp; 499 unsigned long sp;
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c
index 94aa7b011b27..d3694498f3af 100644
--- a/arch/powerpc/kernel/vio.c
+++ b/arch/powerpc/kernel/vio.c
@@ -492,14 +492,14 @@ static void *vio_dma_iommu_alloc_coherent(struct device *dev, size_t size,
492 struct vio_dev *viodev = to_vio_dev(dev); 492 struct vio_dev *viodev = to_vio_dev(dev);
493 void *ret; 493 void *ret;
494 494
495 if (vio_cmo_alloc(viodev, roundup(size, IOMMU_PAGE_SIZE))) { 495 if (vio_cmo_alloc(viodev, roundup(size, PAGE_SIZE))) {
496 atomic_inc(&viodev->cmo.allocs_failed); 496 atomic_inc(&viodev->cmo.allocs_failed);
497 return NULL; 497 return NULL;
498 } 498 }
499 499
500 ret = dma_iommu_ops.alloc_coherent(dev, size, dma_handle, flag); 500 ret = dma_iommu_ops.alloc_coherent(dev, size, dma_handle, flag);
501 if (unlikely(ret == NULL)) { 501 if (unlikely(ret == NULL)) {
502 vio_cmo_dealloc(viodev, roundup(size, IOMMU_PAGE_SIZE)); 502 vio_cmo_dealloc(viodev, roundup(size, PAGE_SIZE));
503 atomic_inc(&viodev->cmo.allocs_failed); 503 atomic_inc(&viodev->cmo.allocs_failed);
504 } 504 }
505 505
@@ -513,7 +513,7 @@ static void vio_dma_iommu_free_coherent(struct device *dev, size_t size,
513 513
514 dma_iommu_ops.free_coherent(dev, size, vaddr, dma_handle); 514 dma_iommu_ops.free_coherent(dev, size, vaddr, dma_handle);
515 515
516 vio_cmo_dealloc(viodev, roundup(size, IOMMU_PAGE_SIZE)); 516 vio_cmo_dealloc(viodev, roundup(size, PAGE_SIZE));
517} 517}
518 518
519static dma_addr_t vio_dma_iommu_map_page(struct device *dev, struct page *page, 519static dma_addr_t vio_dma_iommu_map_page(struct device *dev, struct page *page,
@@ -572,6 +572,7 @@ static int vio_dma_iommu_map_sg(struct device *dev, struct scatterlist *sglist,
572 if (unlikely(!ret)) { 572 if (unlikely(!ret)) {
573 vio_cmo_dealloc(viodev, alloc_size); 573 vio_cmo_dealloc(viodev, alloc_size);
574 atomic_inc(&viodev->cmo.allocs_failed); 574 atomic_inc(&viodev->cmo.allocs_failed);
575 return ret;
575 } 576 }
576 577
577 for (sgl = sglist, count = 0; count < ret; count++, sgl++) 578 for (sgl = sglist, count = 0; count < ret; count++, sgl++)
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 47bf15cd2c9e..295ccc5e86b1 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -87,7 +87,9 @@ SECTIONS
87 /* The dummy segment contents for the bug workaround mentioned above 87 /* The dummy segment contents for the bug workaround mentioned above
88 near PHDRS. */ 88 near PHDRS. */
89 .dummy : AT(ADDR(.dummy) - LOAD_OFFSET) { 89 .dummy : AT(ADDR(.dummy) - LOAD_OFFSET) {
90 LONG(0xf177) 90 LONG(0)
91 LONG(0)
92 LONG(0)
91 } :kernel :dummy 93 } :kernel :dummy
92 94
93/* 95/*
@@ -182,6 +184,7 @@ SECTIONS
182 . = ALIGN(PAGE_SIZE); 184 . = ALIGN(PAGE_SIZE);
183 .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { 185 .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) {
184 __per_cpu_start = .; 186 __per_cpu_start = .;
187 *(.data.percpu.page_aligned)
185 *(.data.percpu) 188 *(.data.percpu)
186 *(.data.percpu.shared_aligned) 189 *(.data.percpu.shared_aligned)
187 __per_cpu_end = .; 190 __per_cpu_end = .;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 2822c8ccfaaf..5f81256287f5 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -125,6 +125,10 @@ static void kvmppc_free_vcpus(struct kvm *kvm)
125 } 125 }
126} 126}
127 127
128void kvm_arch_sync_events(struct kvm *kvm)
129{
130}
131
128void kvm_arch_destroy_vm(struct kvm *kvm) 132void kvm_arch_destroy_vm(struct kvm *kvm)
129{ 133{
130 kvmppc_free_vcpus(kvm); 134 kvmppc_free_vcpus(kvm);
diff --git a/arch/powerpc/lib/copyuser_64.S b/arch/powerpc/lib/copyuser_64.S
index 70693a5c12a1..693b14a778fa 100644
--- a/arch/powerpc/lib/copyuser_64.S
+++ b/arch/powerpc/lib/copyuser_64.S
@@ -62,18 +62,19 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
6272: std r8,8(r3) 6272: std r8,8(r3)
63 beq+ 3f 63 beq+ 3f
64 addi r3,r3,16 64 addi r3,r3,16
6523: ld r9,8(r4)
66.Ldo_tail: 65.Ldo_tail:
67 bf cr7*4+1,1f 66 bf cr7*4+1,1f
68 rotldi r9,r9,32 6723: lwz r9,8(r4)
68 addi r4,r4,4
6973: stw r9,0(r3) 6973: stw r9,0(r3)
70 addi r3,r3,4 70 addi r3,r3,4
711: bf cr7*4+2,2f 711: bf cr7*4+2,2f
72 rotldi r9,r9,16 7244: lhz r9,8(r4)
73 addi r4,r4,2
7374: sth r9,0(r3) 7474: sth r9,0(r3)
74 addi r3,r3,2 75 addi r3,r3,2
752: bf cr7*4+3,3f 762: bf cr7*4+3,3f
76 rotldi r9,r9,8 7745: lbz r9,8(r4)
7775: stb r9,0(r3) 7875: stb r9,0(r3)
783: li r3,0 793: li r3,0
79 blr 80 blr
@@ -141,11 +142,24 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
1416: cmpwi cr1,r5,8 1426: cmpwi cr1,r5,8
142 addi r3,r3,32 143 addi r3,r3,32
143 sld r9,r9,r10 144 sld r9,r9,r10
144 ble cr1,.Ldo_tail 145 ble cr1,7f
14534: ld r0,8(r4) 14634: ld r0,8(r4)
146 srd r7,r0,r11 147 srd r7,r0,r11
147 or r9,r7,r9 148 or r9,r7,r9
148 b .Ldo_tail 1497:
150 bf cr7*4+1,1f
151 rotldi r9,r9,32
15294: stw r9,0(r3)
153 addi r3,r3,4
1541: bf cr7*4+2,2f
155 rotldi r9,r9,16
15695: sth r9,0(r3)
157 addi r3,r3,2
1582: bf cr7*4+3,3f
159 rotldi r9,r9,8
16096: stb r9,0(r3)
1613: li r3,0
162 blr
149 163
150.Ldst_unaligned: 164.Ldst_unaligned:
151 PPC_MTOCRF 0x01,r6 /* put #bytes to 8B bdry into cr7 */ 165 PPC_MTOCRF 0x01,r6 /* put #bytes to 8B bdry into cr7 */
@@ -218,7 +232,6 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
218121: 232121:
219132: 233132:
220 addi r3,r3,8 234 addi r3,r3,8
221123:
222134: 235134:
223135: 236135:
224138: 237138:
@@ -226,6 +239,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
226140: 239140:
227141: 240141:
228142: 241142:
242123:
243144:
244145:
229 245
230/* 246/*
231 * here we have had a fault on a load and r3 points to the first 247 * here we have had a fault on a load and r3 points to the first
@@ -309,6 +325,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
309187: 325187:
310188: 326188:
311189: 327189:
328194:
329195:
330196:
3121: 3311:
313 ld r6,-24(r1) 332 ld r6,-24(r1)
314 ld r5,-8(r1) 333 ld r5,-8(r1)
@@ -329,7 +348,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
329 .llong 72b,172b 348 .llong 72b,172b
330 .llong 23b,123b 349 .llong 23b,123b
331 .llong 73b,173b 350 .llong 73b,173b
351 .llong 44b,144b
332 .llong 74b,174b 352 .llong 74b,174b
353 .llong 45b,145b
333 .llong 75b,175b 354 .llong 75b,175b
334 .llong 24b,124b 355 .llong 24b,124b
335 .llong 25b,125b 356 .llong 25b,125b
@@ -347,6 +368,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
347 .llong 79b,179b 368 .llong 79b,179b
348 .llong 80b,180b 369 .llong 80b,180b
349 .llong 34b,134b 370 .llong 34b,134b
371 .llong 94b,194b
372 .llong 95b,195b
373 .llong 96b,196b
350 .llong 35b,135b 374 .llong 35b,135b
351 .llong 81b,181b 375 .llong 81b,181b
352 .llong 36b,136b 376 .llong 36b,136b
diff --git a/arch/powerpc/lib/memcpy_64.S b/arch/powerpc/lib/memcpy_64.S
index fe2d34e5332d..e178922b2c21 100644
--- a/arch/powerpc/lib/memcpy_64.S
+++ b/arch/powerpc/lib/memcpy_64.S
@@ -53,18 +53,19 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
533: std r8,8(r3) 533: std r8,8(r3)
54 beq 3f 54 beq 3f
55 addi r3,r3,16 55 addi r3,r3,16
56 ld r9,8(r4)
57.Ldo_tail: 56.Ldo_tail:
58 bf cr7*4+1,1f 57 bf cr7*4+1,1f
59 rotldi r9,r9,32 58 lwz r9,8(r4)
59 addi r4,r4,4
60 stw r9,0(r3) 60 stw r9,0(r3)
61 addi r3,r3,4 61 addi r3,r3,4
621: bf cr7*4+2,2f 621: bf cr7*4+2,2f
63 rotldi r9,r9,16 63 lhz r9,8(r4)
64 addi r4,r4,2
64 sth r9,0(r3) 65 sth r9,0(r3)
65 addi r3,r3,2 66 addi r3,r3,2
662: bf cr7*4+3,3f 672: bf cr7*4+3,3f
67 rotldi r9,r9,8 68 lbz r9,8(r4)
68 stb r9,0(r3) 69 stb r9,0(r3)
693: ld r3,48(r1) /* return dest pointer */ 703: ld r3,48(r1) /* return dest pointer */
70 blr 71 blr
@@ -133,11 +134,24 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
133 cmpwi cr1,r5,8 134 cmpwi cr1,r5,8
134 addi r3,r3,32 135 addi r3,r3,32
135 sld r9,r9,r10 136 sld r9,r9,r10
136 ble cr1,.Ldo_tail 137 ble cr1,6f
137 ld r0,8(r4) 138 ld r0,8(r4)
138 srd r7,r0,r11 139 srd r7,r0,r11
139 or r9,r7,r9 140 or r9,r7,r9
140 b .Ldo_tail 1416:
142 bf cr7*4+1,1f
143 rotldi r9,r9,32
144 stw r9,0(r3)
145 addi r3,r3,4
1461: bf cr7*4+2,2f
147 rotldi r9,r9,16
148 sth r9,0(r3)
149 addi r3,r3,2
1502: bf cr7*4+3,3f
151 rotldi r9,r9,8
152 stb r9,0(r3)
1533: ld r3,48(r1) /* return dest pointer */
154 blr
141 155
142.Ldst_unaligned: 156.Ldst_unaligned:
143 PPC_MTOCRF 0x01,r6 # put #bytes to 8B bdry into cr7 157 PPC_MTOCRF 0x01,r6 # put #bytes to 8B bdry into cr7
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index 4aae0c387645..13b7d54f185b 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc/lib/sstep.c
@@ -172,6 +172,8 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
172 } 172 }
173 break; 173 break;
174 case 0x378: /* orx */ 174 case 0x378: /* orx */
175 if (instr & 1)
176 break;
175 rs = (instr >> 21) & 0x1f; 177 rs = (instr >> 21) & 0x1f;
176 rb = (instr >> 11) & 0x1f; 178 rb = (instr >> 11) & 0x1f;
177 if (rs == rb) { /* mr */ 179 if (rs == rb) { /* mr */
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c
index 23cee39534fd..ea6e41e39d9f 100644
--- a/arch/powerpc/mm/fsl_booke_mmu.c
+++ b/arch/powerpc/mm/fsl_booke_mmu.c
@@ -56,18 +56,11 @@
56 56
57extern void loadcam_entry(unsigned int index); 57extern void loadcam_entry(unsigned int index);
58unsigned int tlbcam_index; 58unsigned int tlbcam_index;
59unsigned int num_tlbcam_entries;
60static unsigned long __cam0, __cam1, __cam2; 59static unsigned long __cam0, __cam1, __cam2;
61 60
62#define NUM_TLBCAMS (16) 61#define NUM_TLBCAMS (16)
63 62
64struct tlbcam { 63struct tlbcam TLBCAM[NUM_TLBCAMS];
65 u32 MAS0;
66 u32 MAS1;
67 u32 MAS2;
68 u32 MAS3;
69 u32 MAS7;
70} TLBCAM[NUM_TLBCAMS];
71 64
72struct tlbcamrange { 65struct tlbcamrange {
73 unsigned long start; 66 unsigned long start;
@@ -80,7 +73,7 @@ extern unsigned int tlbcam_index;
80/* 73/*
81 * Return PA for this VA if it is mapped by a CAM, or 0 74 * Return PA for this VA if it is mapped by a CAM, or 0
82 */ 75 */
83unsigned long v_mapped_by_tlbcam(unsigned long va) 76phys_addr_t v_mapped_by_tlbcam(unsigned long va)
84{ 77{
85 int b; 78 int b;
86 for (b = 0; b < tlbcam_index; ++b) 79 for (b = 0; b < tlbcam_index; ++b)
@@ -92,7 +85,7 @@ unsigned long v_mapped_by_tlbcam(unsigned long va)
92/* 85/*
93 * Return VA for a given PA or 0 if not mapped 86 * Return VA for a given PA or 0 if not mapped
94 */ 87 */
95unsigned long p_mapped_by_tlbcam(unsigned long pa) 88unsigned long p_mapped_by_tlbcam(phys_addr_t pa)
96{ 89{
97 int b; 90 int b;
98 for (b = 0; b < tlbcam_index; ++b) 91 for (b = 0; b < tlbcam_index; ++b)
diff --git a/arch/powerpc/mm/hash_low_32.S b/arch/powerpc/mm/hash_low_32.S
index 67850ec9feb3..14af8cedab70 100644
--- a/arch/powerpc/mm/hash_low_32.S
+++ b/arch/powerpc/mm/hash_low_32.S
@@ -320,7 +320,7 @@ _GLOBAL(create_hpte)
320 and r8,r8,r0 /* writable if _RW & _DIRTY */ 320 and r8,r8,r0 /* writable if _RW & _DIRTY */
321 rlwimi r5,r5,32-1,30,30 /* _PAGE_USER -> PP msb */ 321 rlwimi r5,r5,32-1,30,30 /* _PAGE_USER -> PP msb */
322 rlwimi r5,r5,32-2,31,31 /* _PAGE_USER -> PP lsb */ 322 rlwimi r5,r5,32-2,31,31 /* _PAGE_USER -> PP lsb */
323 ori r8,r8,0xe14 /* clear out reserved bits and M */ 323 ori r8,r8,0xe04 /* clear out reserved bits */
324 andc r8,r5,r8 /* PP = user? (rw&dirty? 2: 3): 0 */ 324 andc r8,r5,r8 /* PP = user? (rw&dirty? 2: 3): 0 */
325BEGIN_FTR_SECTION 325BEGIN_FTR_SECTION
326 rlwinm r8,r8,0,~_PAGE_COHERENT /* clear M (coherence not required) */ 326 rlwinm r8,r8,0,~_PAGE_COHERENT /* clear M (coherence not required) */
diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h
index ad123bced404..d1f9c62dc177 100644
--- a/arch/powerpc/mm/mmu_decl.h
+++ b/arch/powerpc/mm/mmu_decl.h
@@ -75,6 +75,15 @@ extern void _tlbia(void);
75#endif /* CONFIG_PPC_MMU_NOHASH */ 75#endif /* CONFIG_PPC_MMU_NOHASH */
76 76
77#ifdef CONFIG_PPC32 77#ifdef CONFIG_PPC32
78
79struct tlbcam {
80 u32 MAS0;
81 u32 MAS1;
82 u32 MAS2;
83 u32 MAS3;
84 u32 MAS7;
85};
86
78extern void mapin_ram(void); 87extern void mapin_ram(void);
79extern int map_page(unsigned long va, phys_addr_t pa, int flags); 88extern int map_page(unsigned long va, phys_addr_t pa, int flags);
80extern void setbat(int index, unsigned long virt, phys_addr_t phys, 89extern void setbat(int index, unsigned long virt, phys_addr_t phys,
@@ -90,8 +99,6 @@ extern unsigned int rtas_data, rtas_size;
90struct hash_pte; 99struct hash_pte;
91extern struct hash_pte *Hash, *Hash_end; 100extern struct hash_pte *Hash, *Hash_end;
92extern unsigned long Hash_size, Hash_mask; 101extern unsigned long Hash_size, Hash_mask;
93
94extern unsigned int num_tlbcam_entries;
95#endif 102#endif
96 103
97extern unsigned long ioremap_bot; 104extern unsigned long ioremap_bot;
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 7393bd76d698..5ac08b8ab654 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -19,6 +19,7 @@
19#include <linux/notifier.h> 19#include <linux/notifier.h>
20#include <linux/lmb.h> 20#include <linux/lmb.h>
21#include <linux/of.h> 21#include <linux/of.h>
22#include <linux/pfn.h>
22#include <asm/sparsemem.h> 23#include <asm/sparsemem.h>
23#include <asm/prom.h> 24#include <asm/prom.h>
24#include <asm/system.h> 25#include <asm/system.h>
@@ -882,7 +883,7 @@ static void mark_reserved_regions_for_nid(int nid)
882 unsigned long physbase = lmb.reserved.region[i].base; 883 unsigned long physbase = lmb.reserved.region[i].base;
883 unsigned long size = lmb.reserved.region[i].size; 884 unsigned long size = lmb.reserved.region[i].size;
884 unsigned long start_pfn = physbase >> PAGE_SHIFT; 885 unsigned long start_pfn = physbase >> PAGE_SHIFT;
885 unsigned long end_pfn = ((physbase + size) >> PAGE_SHIFT); 886 unsigned long end_pfn = PFN_UP(physbase + size);
886 struct node_active_region node_ar; 887 struct node_active_region node_ar;
887 unsigned long node_end_pfn = node->node_start_pfn + 888 unsigned long node_end_pfn = node->node_start_pfn +
888 node->node_spanned_pages; 889 node->node_spanned_pages;
@@ -908,7 +909,7 @@ static void mark_reserved_regions_for_nid(int nid)
908 */ 909 */
909 if (end_pfn > node_ar.end_pfn) 910 if (end_pfn > node_ar.end_pfn)
910 reserve_size = (node_ar.end_pfn << PAGE_SHIFT) 911 reserve_size = (node_ar.end_pfn << PAGE_SHIFT)
911 - (start_pfn << PAGE_SHIFT); 912 - physbase;
912 /* 913 /*
913 * Only worry about *this* node, others may not 914 * Only worry about *this* node, others may not
914 * yet have valid NODE_DATA(). 915 * yet have valid NODE_DATA().
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
index 22972cd83cc9..58bcaeba728d 100644
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
@@ -61,8 +61,8 @@ void setbat(int index, unsigned long virt, phys_addr_t phys,
61 61
62#ifdef HAVE_TLBCAM 62#ifdef HAVE_TLBCAM
63extern unsigned int tlbcam_index; 63extern unsigned int tlbcam_index;
64extern unsigned long v_mapped_by_tlbcam(unsigned long va); 64extern phys_addr_t v_mapped_by_tlbcam(unsigned long va);
65extern unsigned long p_mapped_by_tlbcam(unsigned long pa); 65extern unsigned long p_mapped_by_tlbcam(phys_addr_t pa);
66#else /* !HAVE_TLBCAM */ 66#else /* !HAVE_TLBCAM */
67#define v_mapped_by_tlbcam(x) (0UL) 67#define v_mapped_by_tlbcam(x) (0UL)
68#define p_mapped_by_tlbcam(x) (0UL) 68#define p_mapped_by_tlbcam(x) (0UL)
diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c
index 45d925360b89..fe65c405412c 100644
--- a/arch/powerpc/mm/ppc_mmu_32.c
+++ b/arch/powerpc/mm/ppc_mmu_32.c
@@ -123,9 +123,9 @@ void __init setbat(int index, unsigned long virt, phys_addr_t phys,
123 int wimgxpp; 123 int wimgxpp;
124 struct ppc_bat *bat = BATS[index]; 124 struct ppc_bat *bat = BATS[index];
125 125
126 if (((flags & _PAGE_NO_CACHE) == 0) && 126 if ((flags & _PAGE_NO_CACHE) ||
127 cpu_has_feature(CPU_FTR_NEED_COHERENT)) 127 (cpu_has_feature(CPU_FTR_NEED_COHERENT) == 0))
128 flags |= _PAGE_COHERENT; 128 flags &= ~_PAGE_COHERENT;
129 129
130 bl = (size >> 17) - 1; 130 bl = (size >> 17) - 1;
131 if (PVR_VER(mfspr(SPRN_PVR)) != 1) { 131 if (PVR_VER(mfspr(SPRN_PVR)) != 1) {
diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c
index db44e02e045b..ba5194817f8a 100644
--- a/arch/powerpc/mm/slice.c
+++ b/arch/powerpc/mm/slice.c
@@ -710,9 +710,18 @@ int is_hugepage_only_range(struct mm_struct *mm, unsigned long addr,
710 unsigned long len) 710 unsigned long len)
711{ 711{
712 struct slice_mask mask, available; 712 struct slice_mask mask, available;
713 unsigned int psize = mm->context.user_psize;
713 714
714 mask = slice_range_to_mask(addr, len); 715 mask = slice_range_to_mask(addr, len);
715 available = slice_mask_for_size(mm, mm->context.user_psize); 716 available = slice_mask_for_size(mm, psize);
717#ifdef CONFIG_PPC_64K_PAGES
718 /* We need to account for 4k slices too */
719 if (psize == MMU_PAGE_64K) {
720 struct slice_mask compat_mask;
721 compat_mask = slice_mask_for_size(mm, MMU_PAGE_4K);
722 or_mask(available, compat_mask);
723 }
724#endif
716 725
717#if 0 /* too verbose */ 726#if 0 /* too verbose */
718 slice_dbg("is_hugepage_only_range(mm=%p, addr=%lx, len=%lx)\n", 727 slice_dbg("is_hugepage_only_range(mm=%p, addr=%lx, len=%lx)\n",
diff --git a/arch/powerpc/mm/stab.c b/arch/powerpc/mm/stab.c
index 60e6032a8088..98cd1dc2ae75 100644
--- a/arch/powerpc/mm/stab.c
+++ b/arch/powerpc/mm/stab.c
@@ -251,8 +251,8 @@ void __init stabs_alloc(void)
251 251
252 paca[cpu].stab_addr = newstab; 252 paca[cpu].stab_addr = newstab;
253 paca[cpu].stab_real = virt_to_abs(newstab); 253 paca[cpu].stab_real = virt_to_abs(newstab);
254 printk(KERN_INFO "Segment table for CPU %d at 0x%lx " 254 printk(KERN_INFO "Segment table for CPU %d at 0x%llx "
255 "virtual, 0x%lx absolute\n", 255 "virtual, 0x%llx absolute\n",
256 cpu, paca[cpu].stab_addr, paca[cpu].stab_real); 256 cpu, paca[cpu].stab_addr, paca[cpu].stab_real);
257 } 257 }
258} 258}
diff --git a/arch/powerpc/oprofile/cell/spu_profiler.c b/arch/powerpc/oprofile/cell/spu_profiler.c
index 9305ddaac512..b129d007e7fe 100644
--- a/arch/powerpc/oprofile/cell/spu_profiler.c
+++ b/arch/powerpc/oprofile/cell/spu_profiler.c
@@ -16,6 +16,7 @@
16#include <linux/smp.h> 16#include <linux/smp.h>
17#include <linux/slab.h> 17#include <linux/slab.h>
18#include <asm/cell-pmu.h> 18#include <asm/cell-pmu.h>
19#include <asm/time.h>
19#include "pr_util.h" 20#include "pr_util.h"
20 21
21#define SCALE_SHIFT 14 22#define SCALE_SHIFT 14
diff --git a/arch/powerpc/oprofile/op_model_pa6t.c b/arch/powerpc/oprofile/op_model_pa6t.c
index c40de461fd4e..42f778dff919 100644
--- a/arch/powerpc/oprofile/op_model_pa6t.c
+++ b/arch/powerpc/oprofile/op_model_pa6t.c
@@ -132,7 +132,7 @@ static int pa6t_reg_setup(struct op_counter_config *ctr,
132 for (pmc = 0; pmc < cur_cpu_spec->num_pmcs; pmc++) { 132 for (pmc = 0; pmc < cur_cpu_spec->num_pmcs; pmc++) {
133 /* counters are 40 bit. Move to cputable at some point? */ 133 /* counters are 40 bit. Move to cputable at some point? */
134 reset_value[pmc] = (0x1UL << 39) - ctr[pmc].count; 134 reset_value[pmc] = (0x1UL << 39) - ctr[pmc].count;
135 pr_debug("reset_value for pmc%u inited to 0x%lx\n", 135 pr_debug("reset_value for pmc%u inited to 0x%llx\n",
136 pmc, reset_value[pmc]); 136 pmc, reset_value[pmc]);
137 } 137 }
138 138
@@ -177,7 +177,7 @@ static int pa6t_start(struct op_counter_config *ctr)
177 177
178 oprofile_running = 1; 178 oprofile_running = 1;
179 179
180 pr_debug("start on cpu %d, mmcr0 %lx\n", smp_processor_id(), mmcr0); 180 pr_debug("start on cpu %d, mmcr0 %llx\n", smp_processor_id(), mmcr0);
181 181
182 return 0; 182 return 0;
183} 183}
@@ -193,7 +193,7 @@ static void pa6t_stop(void)
193 193
194 oprofile_running = 0; 194 oprofile_running = 0;
195 195
196 pr_debug("stop on cpu %d, mmcr0 %lx\n", smp_processor_id(), mmcr0); 196 pr_debug("stop on cpu %d, mmcr0 %llx\n", smp_processor_id(), mmcr0);
197} 197}
198 198
199/* handle the perfmon overflow vector */ 199/* handle the perfmon overflow vector */
diff --git a/arch/powerpc/platforms/44x/Makefile b/arch/powerpc/platforms/44x/Makefile
index 698133180aee..01f51daace13 100644
--- a/arch/powerpc/platforms/44x/Makefile
+++ b/arch/powerpc/platforms/44x/Makefile
@@ -3,5 +3,4 @@ obj-$(CONFIG_PPC44x_SIMPLE) += ppc44x_simple.o
3obj-$(CONFIG_EBONY) += ebony.o 3obj-$(CONFIG_EBONY) += ebony.o
4obj-$(CONFIG_SAM440EP) += sam440ep.o 4obj-$(CONFIG_SAM440EP) += sam440ep.o
5obj-$(CONFIG_WARP) += warp.o 5obj-$(CONFIG_WARP) += warp.o
6obj-$(CONFIG_WARP) += warp-nand.o
7obj-$(CONFIG_XILINX_VIRTEX_5_FXT) += virtex.o 6obj-$(CONFIG_XILINX_VIRTEX_5_FXT) += virtex.o
diff --git a/arch/powerpc/platforms/44x/warp-nand.c b/arch/powerpc/platforms/44x/warp-nand.c
deleted file mode 100644
index 89ecd76127d8..000000000000
--- a/arch/powerpc/platforms/44x/warp-nand.c
+++ /dev/null
@@ -1,135 +0,0 @@
1/*
2 * PIKA Warp(tm) NAND flash specific routines
3 *
4 * Copyright (c) 2008 PIKA Technologies
5 * Sean MacLennan <smaclennan@pikatech.com>
6 */
7
8#include <linux/platform_device.h>
9#include <linux/mtd/mtd.h>
10#include <linux/mtd/map.h>
11#include <linux/mtd/partitions.h>
12#include <linux/mtd/nand.h>
13#include <linux/mtd/ndfc.h>
14#include <linux/of.h>
15#include <asm/machdep.h>
16
17
18#ifdef CONFIG_MTD_NAND_NDFC
19
20#define CS_NAND_0 1 /* use chip select 1 for NAND device 0 */
21
22#define WARP_NAND_FLASH_REG_ADDR 0xD0000000UL
23#define WARP_NAND_FLASH_REG_SIZE 0x2000
24
25static struct resource warp_ndfc = {
26 .start = WARP_NAND_FLASH_REG_ADDR,
27 .end = WARP_NAND_FLASH_REG_ADDR + WARP_NAND_FLASH_REG_SIZE - 1,
28 .flags = IORESOURCE_MEM,
29};
30
31static struct mtd_partition nand_parts[] = {
32 {
33 .name = "kernel",
34 .offset = 0,
35 .size = 0x0200000
36 },
37 {
38 .name = "root",
39 .offset = 0x0200000,
40 .size = 0x3E00000
41 },
42 {
43 .name = "persistent",
44 .offset = 0x4000000,
45 .size = 0x4000000
46 },
47 {
48 .name = "persistent1",
49 .offset = 0x8000000,
50 .size = 0x4000000
51 },
52 {
53 .name = "persistent2",
54 .offset = 0xC000000,
55 .size = 0x4000000
56 }
57};
58
59struct ndfc_controller_settings warp_ndfc_settings = {
60 .ccr_settings = (NDFC_CCR_BS(CS_NAND_0) | NDFC_CCR_ARAC1),
61 .ndfc_erpn = 0,
62};
63
64static struct ndfc_chip_settings warp_chip0_settings = {
65 .bank_settings = 0x80002222,
66};
67
68struct platform_nand_ctrl warp_nand_ctrl = {
69 .priv = &warp_ndfc_settings,
70};
71
72static struct platform_device warp_ndfc_device = {
73 .name = "ndfc-nand",
74 .id = 0,
75 .dev = {
76 .platform_data = &warp_nand_ctrl,
77 },
78 .num_resources = 1,
79 .resource = &warp_ndfc,
80};
81
82/* Do NOT set the ecclayout: let it default so it is correct for both
83 * 64M and 256M flash chips.
84 */
85static struct platform_nand_chip warp_nand_chip0 = {
86 .nr_chips = 1,
87 .chip_offset = CS_NAND_0,
88 .nr_partitions = ARRAY_SIZE(nand_parts),
89 .partitions = nand_parts,
90 .chip_delay = 20,
91 .priv = &warp_chip0_settings,
92};
93
94static struct platform_device warp_nand_device = {
95 .name = "ndfc-chip",
96 .id = 0,
97 .num_resources = 0,
98 .dev = {
99 .platform_data = &warp_nand_chip0,
100 .parent = &warp_ndfc_device.dev,
101 }
102};
103
104static int warp_setup_nand_flash(void)
105{
106 struct device_node *np;
107
108 /* Try to detect a rev A based on NOR size. */
109 np = of_find_compatible_node(NULL, NULL, "cfi-flash");
110 if (np) {
111 struct property *pp;
112
113 pp = of_find_property(np, "reg", NULL);
114 if (pp && (pp->length == 12)) {
115 u32 *v = pp->value;
116 if (v[2] == 0x4000000) {
117 /* Rev A = 64M NAND */
118 warp_nand_chip0.nr_partitions = 3;
119
120 nand_parts[1].size = 0x3000000;
121 nand_parts[2].offset = 0x3200000;
122 nand_parts[2].size = 0x0e00000;
123 }
124 }
125 of_node_put(np);
126 }
127
128 platform_device_register(&warp_ndfc_device);
129 platform_device_register(&warp_nand_device);
130
131 return 0;
132}
133machine_device_initcall(warp, warp_setup_nand_flash);
134
135#endif
diff --git a/arch/powerpc/platforms/512x/clock.c b/arch/powerpc/platforms/512x/clock.c
index f416014ee727..1bcff94eb924 100644
--- a/arch/powerpc/platforms/512x/clock.c
+++ b/arch/powerpc/platforms/512x/clock.c
@@ -56,12 +56,12 @@ static struct clk *mpc5121_clk_get(struct device *dev, const char *id)
56 int dev_match = 0; 56 int dev_match = 0;
57 int id_match = 0; 57 int id_match = 0;
58 58
59 if (dev == NULL && id == NULL) 59 if (dev == NULL || id == NULL)
60 return NULL; 60 return NULL;
61 61
62 mutex_lock(&clocks_mutex); 62 mutex_lock(&clocks_mutex);
63 list_for_each_entry(p, &clocks, node) { 63 list_for_each_entry(p, &clocks, node) {
64 if (dev && dev == p->dev) 64 if (dev == p->dev)
65 dev_match++; 65 dev_match++;
66 if (strcmp(id, p->name) == 0) 66 if (strcmp(id, p->name) == 0)
67 id_match++; 67 id_match++;
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
index 8a455ebce98d..07f89ae46d04 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
@@ -363,11 +363,8 @@ static int mpc52xx_gpt_gpio_get(struct gpio_chip *gc, unsigned int gpio)
363{ 363{
364 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); 364 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
365 struct mpc52xx_gpt __iomem *regs = mm_gc->regs; 365 struct mpc52xx_gpt __iomem *regs = mm_gc->regs;
366 unsigned int ret;
367 366
368 return (in_be32(&regs->status) & (1 << (31 - 23))) ? 1 : 0; 367 return (in_be32(&regs->status) & (1 << (31 - 23))) ? 1 : 0;
369
370 return ret;
371} 368}
372 369
373static void 370static void
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pci.c b/arch/powerpc/platforms/52xx/mpc52xx_pci.c
index c3f2c21024e3..87ff522f28b5 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pci.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pci.c
@@ -20,14 +20,6 @@
20 20
21 21
22/* ======================================================================== */ 22/* ======================================================================== */
23/* PCI windows config */
24/* ======================================================================== */
25
26#define MPC52xx_PCI_TARGET_IO 0xf0000000
27#define MPC52xx_PCI_TARGET_MEM 0x00000000
28
29
30/* ======================================================================== */
31/* Structures mapping & Defines for PCI Unit */ 23/* Structures mapping & Defines for PCI Unit */
32/* ======================================================================== */ 24/* ======================================================================== */
33 25
@@ -244,7 +236,7 @@ static struct pci_ops mpc52xx_pci_ops = {
244 236
245static void __init 237static void __init
246mpc52xx_pci_setup(struct pci_controller *hose, 238mpc52xx_pci_setup(struct pci_controller *hose,
247 struct mpc52xx_pci __iomem *pci_regs) 239 struct mpc52xx_pci __iomem *pci_regs, phys_addr_t pci_phys)
248{ 240{
249 struct resource *res; 241 struct resource *res;
250 u32 tmp; 242 u32 tmp;
@@ -314,10 +306,14 @@ mpc52xx_pci_setup(struct pci_controller *hose,
314 /* Set all the IWCR fields at once; they're in the same reg */ 306 /* Set all the IWCR fields at once; they're in the same reg */
315 out_be32(&pci_regs->iwcr, MPC52xx_PCI_IWCR_PACK(iwcr0, iwcr1, iwcr2)); 307 out_be32(&pci_regs->iwcr, MPC52xx_PCI_IWCR_PACK(iwcr0, iwcr1, iwcr2));
316 308
317 out_be32(&pci_regs->tbatr0, 309 /* Map IMMR onto PCI bus */
318 MPC52xx_PCI_TBATR_ENABLE | MPC52xx_PCI_TARGET_IO ); 310 pci_phys &= 0xfffc0000; /* bar0 has only 14 significant bits */
319 out_be32(&pci_regs->tbatr1, 311 out_be32(&pci_regs->tbatr0, MPC52xx_PCI_TBATR_ENABLE | pci_phys);
320 MPC52xx_PCI_TBATR_ENABLE | MPC52xx_PCI_TARGET_MEM ); 312 out_be32(&pci_regs->bar0, PCI_BASE_ADDRESS_MEM_PREFETCH | pci_phys);
313
314 /* Map memory onto PCI bus */
315 out_be32(&pci_regs->tbatr1, MPC52xx_PCI_TBATR_ENABLE);
316 out_be32(&pci_regs->bar1, PCI_BASE_ADDRESS_MEM_PREFETCH);
321 317
322 out_be32(&pci_regs->tcr, MPC52xx_PCI_TCR_LD | MPC52xx_PCI_TCR_WCT8); 318 out_be32(&pci_regs->tcr, MPC52xx_PCI_TCR_LD | MPC52xx_PCI_TCR_WCT8);
323 319
@@ -414,7 +410,7 @@ mpc52xx_add_bridge(struct device_node *node)
414 410
415 /* Finish setting up PCI using values obtained by 411 /* Finish setting up PCI using values obtained by
416 * pci_proces_bridge_OF_ranges */ 412 * pci_proces_bridge_OF_ranges */
417 mpc52xx_pci_setup(hose, pci_regs); 413 mpc52xx_pci_setup(hose, pci_regs, rsrc.start);
418 414
419 return 0; 415 return 0;
420} 416}
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
index 72865e8e4b51..0a093f03c758 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
@@ -196,6 +196,7 @@ static void mpc52xx_extirq_ack(unsigned int virq)
196 196
197static int mpc52xx_extirq_set_type(unsigned int virq, unsigned int flow_type) 197static int mpc52xx_extirq_set_type(unsigned int virq, unsigned int flow_type)
198{ 198{
199 struct irq_desc *desc = get_irq_desc(virq);
199 u32 ctrl_reg, type; 200 u32 ctrl_reg, type;
200 int irq; 201 int irq;
201 int l2irq; 202 int l2irq;
@@ -222,6 +223,11 @@ static int mpc52xx_extirq_set_type(unsigned int virq, unsigned int flow_type)
222 type = 0; 223 type = 0;
223 } 224 }
224 225
226 desc->status &= ~(IRQ_TYPE_SENSE_MASK | IRQ_LEVEL);
227 desc->status |= flow_type & IRQ_TYPE_SENSE_MASK;
228 if (flow_type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW))
229 desc->status |= IRQ_LEVEL;
230
225 ctrl_reg = in_be32(&intr->ctrl); 231 ctrl_reg = in_be32(&intr->ctrl);
226 ctrl_reg &= ~(0x3 << (22 - (l2irq * 2))); 232 ctrl_reg &= ~(0x3 << (22 - (l2irq * 2)));
227 ctrl_reg |= (type << (22 - (l2irq * 2))); 233 ctrl_reg |= (type << (22 - (l2irq * 2)));
@@ -231,7 +237,7 @@ static int mpc52xx_extirq_set_type(unsigned int virq, unsigned int flow_type)
231} 237}
232 238
233static struct irq_chip mpc52xx_extirq_irqchip = { 239static struct irq_chip mpc52xx_extirq_irqchip = {
234 .typename = " MPC52xx IRQ[0-3] ", 240 .typename = "MPC52xx External",
235 .mask = mpc52xx_extirq_mask, 241 .mask = mpc52xx_extirq_mask,
236 .unmask = mpc52xx_extirq_unmask, 242 .unmask = mpc52xx_extirq_unmask,
237 .ack = mpc52xx_extirq_ack, 243 .ack = mpc52xx_extirq_ack,
diff --git a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
index 9876d7e072f4..ddf0bdc0fc8b 100644
--- a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
+++ b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
@@ -186,7 +186,7 @@ out_unmap_regs:
186 iounmap(priv->regs); 186 iounmap(priv->regs);
187out_free_bootmem: 187out_free_bootmem:
188 free_bootmem((unsigned long)priv, 188 free_bootmem((unsigned long)priv,
189 sizeof(sizeof(struct pq2ads_pci_pic))); 189 sizeof(struct pq2ads_pci_pic));
190 of_node_put(np); 190 of_node_put(np);
191out_unmap_irq: 191out_unmap_irq:
192 irq_dispose_mapping(irq); 192 irq_dispose_mapping(irq);
diff --git a/arch/powerpc/platforms/83xx/Makefile b/arch/powerpc/platforms/83xx/Makefile
index ba5028e29890..051777c542c7 100644
--- a/arch/powerpc/platforms/83xx/Makefile
+++ b/arch/powerpc/platforms/83xx/Makefile
@@ -3,6 +3,7 @@
3# 3#
4obj-y := misc.o usb.o 4obj-y := misc.o usb.o
5obj-$(CONFIG_SUSPEND) += suspend.o suspend-asm.o 5obj-$(CONFIG_SUSPEND) += suspend.o suspend-asm.o
6obj-$(CONFIG_MCU_MPC8349EMITX) += mcu_mpc8349emitx.o
6obj-$(CONFIG_MPC831x_RDB) += mpc831x_rdb.o 7obj-$(CONFIG_MPC831x_RDB) += mpc831x_rdb.o
7obj-$(CONFIG_MPC832x_RDB) += mpc832x_rdb.o 8obj-$(CONFIG_MPC832x_RDB) += mpc832x_rdb.o
8obj-$(CONFIG_MPC834x_MDS) += mpc834x_mds.o 9obj-$(CONFIG_MPC834x_MDS) += mpc834x_mds.o
diff --git a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
new file mode 100644
index 000000000000..82a9bcb858b6
--- /dev/null
+++ b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
@@ -0,0 +1,209 @@
1/*
2 * Power Management and GPIO expander driver for MPC8349E-mITX-compatible MCU
3 *
4 * Copyright (c) 2008 MontaVista Software, Inc.
5 *
6 * Author: Anton Vorontsov <avorontsov@ru.mvista.com>
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
14#include <linux/init.h>
15#include <linux/kernel.h>
16#include <linux/module.h>
17#include <linux/device.h>
18#include <linux/mutex.h>
19#include <linux/i2c.h>
20#include <linux/gpio.h>
21#include <linux/of.h>
22#include <linux/of_gpio.h>
23#include <asm/prom.h>
24#include <asm/machdep.h>
25
26/*
27 * I don't have specifications for the MCU firmware, I found this register
28 * and bits positions by the trial&error method.
29 */
30#define MCU_REG_CTRL 0x20
31#define MCU_CTRL_POFF 0x40
32
33#define MCU_NUM_GPIO 2
34
35struct mcu {
36 struct mutex lock;
37 struct device_node *np;
38 struct i2c_client *client;
39 struct of_gpio_chip of_gc;
40 u8 reg_ctrl;
41};
42
43static struct mcu *glob_mcu;
44
45static void mcu_power_off(void)
46{
47 struct mcu *mcu = glob_mcu;
48
49 pr_info("Sending power-off request to the MCU...\n");
50 mutex_lock(&mcu->lock);
51 i2c_smbus_write_byte_data(glob_mcu->client, MCU_REG_CTRL,
52 mcu->reg_ctrl | MCU_CTRL_POFF);
53 mutex_unlock(&mcu->lock);
54}
55
56static void mcu_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
57{
58 struct of_gpio_chip *of_gc = to_of_gpio_chip(gc);
59 struct mcu *mcu = container_of(of_gc, struct mcu, of_gc);
60 u8 bit = 1 << (4 + gpio);
61
62 mutex_lock(&mcu->lock);
63 if (val)
64 mcu->reg_ctrl &= ~bit;
65 else
66 mcu->reg_ctrl |= bit;
67
68 i2c_smbus_write_byte_data(mcu->client, MCU_REG_CTRL, mcu->reg_ctrl);
69 mutex_unlock(&mcu->lock);
70}
71
72static int mcu_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
73{
74 mcu_gpio_set(gc, gpio, val);
75 return 0;
76}
77
78static int mcu_gpiochip_add(struct mcu *mcu)
79{
80 struct device_node *np;
81 struct of_gpio_chip *of_gc = &mcu->of_gc;
82 struct gpio_chip *gc = &of_gc->gc;
83 int ret;
84
85 np = of_find_compatible_node(NULL, NULL, "fsl,mcu-mpc8349emitx");
86 if (!np)
87 return -ENODEV;
88
89 gc->owner = THIS_MODULE;
90 gc->label = np->full_name;
91 gc->can_sleep = 1;
92 gc->ngpio = MCU_NUM_GPIO;
93 gc->base = -1;
94 gc->set = mcu_gpio_set;
95 gc->direction_output = mcu_gpio_dir_out;
96 of_gc->gpio_cells = 2;
97 of_gc->xlate = of_gpio_simple_xlate;
98
99 np->data = of_gc;
100 mcu->np = np;
101
102 /*
103 * We don't want to lose the node, its ->data and ->full_name...
104 * So, if succeeded, we don't put the node here.
105 */
106 ret = gpiochip_add(gc);
107 if (ret)
108 of_node_put(np);
109 return ret;
110}
111
112static int mcu_gpiochip_remove(struct mcu *mcu)
113{
114 int ret;
115
116 ret = gpiochip_remove(&mcu->of_gc.gc);
117 if (ret)
118 return ret;
119 of_node_put(mcu->np);
120
121 return 0;
122}
123
124static int __devinit mcu_probe(struct i2c_client *client,
125 const struct i2c_device_id *id)
126{
127 struct mcu *mcu;
128 int ret;
129
130 mcu = kzalloc(sizeof(*mcu), GFP_KERNEL);
131 if (!mcu)
132 return -ENOMEM;
133
134 mutex_init(&mcu->lock);
135 mcu->client = client;
136 i2c_set_clientdata(client, mcu);
137
138 ret = i2c_smbus_read_byte_data(mcu->client, MCU_REG_CTRL);
139 if (ret < 0)
140 goto err;
141 mcu->reg_ctrl = ret;
142
143 ret = mcu_gpiochip_add(mcu);
144 if (ret)
145 goto err;
146
147 /* XXX: this is potentially racy, but there is no lock for ppc_md */
148 if (!ppc_md.power_off) {
149 glob_mcu = mcu;
150 ppc_md.power_off = mcu_power_off;
151 dev_info(&client->dev, "will provide power-off service\n");
152 }
153
154 return 0;
155err:
156 kfree(mcu);
157 return ret;
158}
159
160static int __devexit mcu_remove(struct i2c_client *client)
161{
162 struct mcu *mcu = i2c_get_clientdata(client);
163 int ret;
164
165 if (glob_mcu == mcu) {
166 ppc_md.power_off = NULL;
167 glob_mcu = NULL;
168 }
169
170 ret = mcu_gpiochip_remove(mcu);
171 if (ret)
172 return ret;
173 i2c_set_clientdata(client, NULL);
174 kfree(mcu);
175 return 0;
176}
177
178static const struct i2c_device_id mcu_ids[] = {
179 { "mcu-mpc8349emitx", },
180 {},
181};
182MODULE_DEVICE_TABLE(i2c, mcu_ids);
183
184static struct i2c_driver mcu_driver = {
185 .driver = {
186 .name = "mcu-mpc8349emitx",
187 .owner = THIS_MODULE,
188 },
189 .probe = mcu_probe,
190 .remove = __devexit_p(mcu_remove),
191 .id_table = mcu_ids,
192};
193
194static int __init mcu_init(void)
195{
196 return i2c_add_driver(&mcu_driver);
197}
198module_init(mcu_init);
199
200static void __exit mcu_exit(void)
201{
202 i2c_del_driver(&mcu_driver);
203}
204module_exit(mcu_exit);
205
206MODULE_DESCRIPTION("Power Management and GPIO expander driver for "
207 "MPC8349E-mITX-compatible MCU");
208MODULE_AUTHOR("Anton Vorontsov <avorontsov@ru.mvista.com>");
209MODULE_LICENSE("GPL");
diff --git a/arch/powerpc/platforms/83xx/mpc831x_rdb.c b/arch/powerpc/platforms/83xx/mpc831x_rdb.c
index 5177bdd2c62a..91a2c80b9d72 100644
--- a/arch/powerpc/platforms/83xx/mpc831x_rdb.c
+++ b/arch/powerpc/platforms/83xx/mpc831x_rdb.c
@@ -71,6 +71,7 @@ static int __init mpc831x_rdb_probe(void)
71 71
72static struct of_device_id __initdata of_bus_ids[] = { 72static struct of_device_id __initdata of_bus_ids[] = {
73 { .compatible = "simple-bus" }, 73 { .compatible = "simple-bus" },
74 { .compatible = "gianfar" },
74 {}, 75 {},
75}; 76};
76 77
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
index 47fe2bea9865..200b9cb900ea 100644
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
@@ -323,4 +323,15 @@ config SIMPLE_GPIO
323 chip-selects, Ethernet/USB PHY's power and various other small 323 chip-selects, Ethernet/USB PHY's power and various other small
324 on-board peripherals. 324 on-board peripherals.
325 325
326config MCU_MPC8349EMITX
327 tristate "MPC8349E-mITX MCU driver"
328 depends on I2C && PPC_83xx
329 select GENERIC_GPIO
330 select ARCH_REQUIRE_GPIOLIB
331 help
332 Say Y here to enable soft power-off functionality on the Freescale
333 boards with the MPC8349E-mITX-compatible MCU chips. This driver will
334 also register MCU GPIOs with the generic GPIO API, so you'll able
335 to use MCU pins as GPIOs.
336
326endmenu 337endmenu
diff --git a/arch/powerpc/platforms/cell/beat_interrupt.c b/arch/powerpc/platforms/cell/beat_interrupt.c
index 192a93509372..72254848a228 100644
--- a/arch/powerpc/platforms/cell/beat_interrupt.c
+++ b/arch/powerpc/platforms/cell/beat_interrupt.c
@@ -99,7 +99,7 @@ static void beatic_end_irq(unsigned int irq_plug)
99 err = beat_downcount_of_interrupt(irq_plug); 99 err = beat_downcount_of_interrupt(irq_plug);
100 if (err != 0) { 100 if (err != 0) {
101 if ((err & 0xFFFFFFFF) != 0xFFFFFFF5) /* -11: wrong state */ 101 if ((err & 0xFFFFFFFF) != 0xFFFFFFF5) /* -11: wrong state */
102 panic("Failed to downcount IRQ! Error = %16lx", err); 102 panic("Failed to downcount IRQ! Error = %16llx", err);
103 103
104 printk(KERN_ERR "IRQ over-downcounted, plug %d\n", irq_plug); 104 printk(KERN_ERR "IRQ over-downcounted, plug %d\n", irq_plug);
105 } 105 }
diff --git a/arch/powerpc/platforms/cell/cbe_cpufreq.c b/arch/powerpc/platforms/cell/cbe_cpufreq.c
index ec7c8f45a215..e6506cd0ff94 100644
--- a/arch/powerpc/platforms/cell/cbe_cpufreq.c
+++ b/arch/powerpc/platforms/cell/cbe_cpufreq.c
@@ -118,7 +118,7 @@ static int cbe_cpufreq_cpu_init(struct cpufreq_policy *policy)
118 policy->cur = cbe_freqs[cur_pmode].frequency; 118 policy->cur = cbe_freqs[cur_pmode].frequency;
119 119
120#ifdef CONFIG_SMP 120#ifdef CONFIG_SMP
121 policy->cpus = per_cpu(cpu_sibling_map, policy->cpu); 121 cpumask_copy(policy->cpus, &per_cpu(cpu_sibling_map, policy->cpu));
122#endif 122#endif
123 123
124 cpufreq_frequency_table_get_attr(cbe_freqs, policy->cpu); 124 cpufreq_frequency_table_get_attr(cbe_freqs, policy->cpu);
diff --git a/arch/powerpc/platforms/cell/celleb_scc_epci.c b/arch/powerpc/platforms/cell/celleb_scc_epci.c
index 08c285b10e30..48ec88a38a12 100644
--- a/arch/powerpc/platforms/cell/celleb_scc_epci.c
+++ b/arch/powerpc/platforms/cell/celleb_scc_epci.c
@@ -405,7 +405,7 @@ static int __init celleb_setup_epci(struct device_node *node,
405 hose->cfg_addr = ioremap(r.start, (r.end - r.start + 1)); 405 hose->cfg_addr = ioremap(r.start, (r.end - r.start + 1));
406 if (!hose->cfg_addr) 406 if (!hose->cfg_addr)
407 goto error; 407 goto error;
408 pr_debug("EPCI: cfg_addr map 0x%016lx->0x%016lx + 0x%016lx\n", 408 pr_debug("EPCI: cfg_addr map 0x%016llx->0x%016lx + 0x%016llx\n",
409 r.start, (unsigned long)hose->cfg_addr, (r.end - r.start + 1)); 409 r.start, (unsigned long)hose->cfg_addr, (r.end - r.start + 1));
410 410
411 if (of_address_to_resource(node, 2, &r)) 411 if (of_address_to_resource(node, 2, &r))
@@ -413,7 +413,7 @@ static int __init celleb_setup_epci(struct device_node *node,
413 hose->cfg_data = ioremap(r.start, (r.end - r.start + 1)); 413 hose->cfg_data = ioremap(r.start, (r.end - r.start + 1));
414 if (!hose->cfg_data) 414 if (!hose->cfg_data)
415 goto error; 415 goto error;
416 pr_debug("EPCI: cfg_data map 0x%016lx->0x%016lx + 0x%016lx\n", 416 pr_debug("EPCI: cfg_data map 0x%016llx->0x%016lx + 0x%016llx\n",
417 r.start, (unsigned long)hose->cfg_data, (r.end - r.start + 1)); 417 r.start, (unsigned long)hose->cfg_data, (r.end - r.start + 1));
418 418
419 hose->ops = &celleb_epci_ops; 419 hose->ops = &celleb_epci_ops;
diff --git a/arch/powerpc/platforms/cell/cpufreq_spudemand.c b/arch/powerpc/platforms/cell/cpufreq_spudemand.c
index a3c6c01bd6db..968c1c0b4d5b 100644
--- a/arch/powerpc/platforms/cell/cpufreq_spudemand.c
+++ b/arch/powerpc/platforms/cell/cpufreq_spudemand.c
@@ -110,7 +110,7 @@ static int spu_gov_govern(struct cpufreq_policy *policy, unsigned int event)
110 } 110 }
111 111
112 /* initialize spu_gov_info for all affected cpus */ 112 /* initialize spu_gov_info for all affected cpus */
113 for_each_cpu_mask(i, policy->cpus) { 113 for_each_cpu(i, policy->cpus) {
114 affected_info = &per_cpu(spu_gov_info, i); 114 affected_info = &per_cpu(spu_gov_info, i);
115 affected_info->policy = policy; 115 affected_info->policy = policy;
116 } 116 }
@@ -127,7 +127,7 @@ static int spu_gov_govern(struct cpufreq_policy *policy, unsigned int event)
127 spu_gov_cancel_work(info); 127 spu_gov_cancel_work(info);
128 128
129 /* clean spu_gov_info for all affected cpus */ 129 /* clean spu_gov_info for all affected cpus */
130 for_each_cpu_mask (i, policy->cpus) { 130 for_each_cpu (i, policy->cpus) {
131 info = &per_cpu(spu_gov_info, i); 131 info = &per_cpu(spu_gov_info, i);
132 info->policy = NULL; 132 info->policy = NULL;
133 } 133 }
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index 88d94b59a7cb..ee5033eddf01 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -855,7 +855,7 @@ static int __init cell_iommu_init_disabled(void)
855 */ 855 */
856 if (np && size < lmb_end_of_DRAM()) { 856 if (np && size < lmb_end_of_DRAM()) {
857 printk(KERN_WARNING "iommu: force-enabled, dma window" 857 printk(KERN_WARNING "iommu: force-enabled, dma window"
858 " (%ldMB) smaller than total memory (%ldMB)\n", 858 " (%ldMB) smaller than total memory (%lldMB)\n",
859 size >> 20, lmb_end_of_DRAM() >> 20); 859 size >> 20, lmb_end_of_DRAM() >> 20);
860 return -ENODEV; 860 return -ENODEV;
861 } 861 }
@@ -985,7 +985,7 @@ static void cell_dma_dev_setup_fixed(struct device *dev)
985 addr = cell_iommu_get_fixed_address(dev) + dma_iommu_fixed_base; 985 addr = cell_iommu_get_fixed_address(dev) + dma_iommu_fixed_base;
986 archdata->dma_data = (void *)addr; 986 archdata->dma_data = (void *)addr;
987 987
988 dev_dbg(dev, "iommu: fixed addr = %lx\n", addr); 988 dev_dbg(dev, "iommu: fixed addr = %llx\n", addr);
989} 989}
990 990
991static void insert_16M_pte(unsigned long addr, unsigned long *ptab, 991static void insert_16M_pte(unsigned long addr, unsigned long *ptab,
diff --git a/arch/powerpc/platforms/cell/ras.c b/arch/powerpc/platforms/cell/ras.c
index 7b4cefa2199b..5f961c464cc4 100644
--- a/arch/powerpc/platforms/cell/ras.c
+++ b/arch/powerpc/platforms/cell/ras.c
@@ -38,16 +38,16 @@ static void dump_fir(int cpu)
38 /* Todo: do some nicer parsing of bits and based on them go down 38 /* Todo: do some nicer parsing of bits and based on them go down
39 * to other sub-units FIRs and not only IIC 39 * to other sub-units FIRs and not only IIC
40 */ 40 */
41 printk(KERN_ERR "Global Checkstop FIR : 0x%016lx\n", 41 printk(KERN_ERR "Global Checkstop FIR : 0x%016llx\n",
42 in_be64(&pregs->checkstop_fir)); 42 in_be64(&pregs->checkstop_fir));
43 printk(KERN_ERR "Global Recoverable FIR : 0x%016lx\n", 43 printk(KERN_ERR "Global Recoverable FIR : 0x%016llx\n",
44 in_be64(&pregs->checkstop_fir)); 44 in_be64(&pregs->checkstop_fir));
45 printk(KERN_ERR "Global MachineCheck FIR : 0x%016lx\n", 45 printk(KERN_ERR "Global MachineCheck FIR : 0x%016llx\n",
46 in_be64(&pregs->spec_att_mchk_fir)); 46 in_be64(&pregs->spec_att_mchk_fir));
47 47
48 if (iregs == NULL) 48 if (iregs == NULL)
49 return; 49 return;
50 printk(KERN_ERR "IOC FIR : 0x%016lx\n", 50 printk(KERN_ERR "IOC FIR : 0x%016llx\n",
51 in_be64(&iregs->ioc_fir)); 51 in_be64(&iregs->ioc_fir));
52 52
53} 53}
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index a5bdb89a17c3..e487ad68ac11 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -151,7 +151,7 @@ static inline void spu_load_slb(struct spu *spu, int slbe, struct spu_slb *slb)
151{ 151{
152 struct spu_priv2 __iomem *priv2 = spu->priv2; 152 struct spu_priv2 __iomem *priv2 = spu->priv2;
153 153
154 pr_debug("%s: adding SLB[%d] 0x%016lx 0x%016lx\n", 154 pr_debug("%s: adding SLB[%d] 0x%016llx 0x%016llx\n",
155 __func__, slbe, slb->vsid, slb->esid); 155 __func__, slbe, slb->vsid, slb->esid);
156 156
157 out_be64(&priv2->slb_index_W, slbe); 157 out_be64(&priv2->slb_index_W, slbe);
@@ -221,7 +221,7 @@ static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr)
221{ 221{
222 int ret; 222 int ret;
223 223
224 pr_debug("%s, %lx, %lx\n", __func__, dsisr, ea); 224 pr_debug("%s, %llx, %lx\n", __func__, dsisr, ea);
225 225
226 /* 226 /*
227 * Handle kernel space hash faults immediately. User hash 227 * Handle kernel space hash faults immediately. User hash
diff --git a/arch/powerpc/platforms/cell/spu_callbacks.c b/arch/powerpc/platforms/cell/spu_callbacks.c
index 19f6bfdbb933..fec1495e6b12 100644
--- a/arch/powerpc/platforms/cell/spu_callbacks.c
+++ b/arch/powerpc/platforms/cell/spu_callbacks.c
@@ -54,7 +54,7 @@ long spu_sys_callback(struct spu_syscall_block *s)
54 long (*syscall)(u64 a1, u64 a2, u64 a3, u64 a4, u64 a5, u64 a6); 54 long (*syscall)(u64 a1, u64 a2, u64 a3, u64 a4, u64 a5, u64 a6);
55 55
56 if (s->nr_ret >= ARRAY_SIZE(spu_syscall_table)) { 56 if (s->nr_ret >= ARRAY_SIZE(spu_syscall_table)) {
57 pr_debug("%s: invalid syscall #%ld", __func__, s->nr_ret); 57 pr_debug("%s: invalid syscall #%lld", __func__, s->nr_ret);
58 return -ENOSYS; 58 return -ENOSYS;
59 } 59 }
60 60
diff --git a/arch/powerpc/platforms/cell/spufs/coredump.c b/arch/powerpc/platforms/cell/spufs/coredump.c
index af116aadba10..c4d4a19235e0 100644
--- a/arch/powerpc/platforms/cell/spufs/coredump.c
+++ b/arch/powerpc/platforms/cell/spufs/coredump.c
@@ -42,7 +42,7 @@ static ssize_t do_coredump_read(int num, struct spu_context *ctx, void *buffer,
42 return spufs_coredump_read[num].read(ctx, buffer, size, off); 42 return spufs_coredump_read[num].read(ctx, buffer, size, off);
43 43
44 data = spufs_coredump_read[num].get(ctx); 44 data = spufs_coredump_read[num].get(ctx);
45 ret = snprintf(buffer, size, "0x%.16lx", data); 45 ret = snprintf(buffer, size, "0x%.16llx", data);
46 if (ret >= size) 46 if (ret >= size)
47 return size; 47 return size;
48 return ++ret; /* count trailing NULL */ 48 return ++ret; /* count trailing NULL */
diff --git a/arch/powerpc/platforms/cell/spufs/fault.c b/arch/powerpc/platforms/cell/spufs/fault.c
index f093a581ac74..a4dd3ae7223a 100644
--- a/arch/powerpc/platforms/cell/spufs/fault.c
+++ b/arch/powerpc/platforms/cell/spufs/fault.c
@@ -132,7 +132,7 @@ int spufs_handle_class1(struct spu_context *ctx)
132 132
133 spuctx_switch_state(ctx, SPU_UTIL_IOWAIT); 133 spuctx_switch_state(ctx, SPU_UTIL_IOWAIT);
134 134
135 pr_debug("ctx %p: ea %016lx, dsisr %016lx state %d\n", ctx, ea, 135 pr_debug("ctx %p: ea %016llx, dsisr %016llx state %d\n", ctx, ea,
136 dsisr, ctx->state); 136 dsisr, ctx->state);
137 137
138 ctx->stats.hash_flt++; 138 ctx->stats.hash_flt++;
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
index 7106b63d401b..0da7f2bf5ee1 100644
--- a/arch/powerpc/platforms/cell/spufs/file.c
+++ b/arch/powerpc/platforms/cell/spufs/file.c
@@ -1654,7 +1654,7 @@ out:
1654 1654
1655static int spufs_check_valid_dma(struct mfc_dma_command *cmd) 1655static int spufs_check_valid_dma(struct mfc_dma_command *cmd)
1656{ 1656{
1657 pr_debug("queueing DMA %x %lx %x %x %x\n", cmd->lsa, 1657 pr_debug("queueing DMA %x %llx %x %x %x\n", cmd->lsa,
1658 cmd->ea, cmd->size, cmd->tag, cmd->cmd); 1658 cmd->ea, cmd->size, cmd->tag, cmd->cmd);
1659 1659
1660 switch (cmd->cmd) { 1660 switch (cmd->cmd) {
@@ -1671,7 +1671,7 @@ static int spufs_check_valid_dma(struct mfc_dma_command *cmd)
1671 } 1671 }
1672 1672
1673 if ((cmd->lsa & 0xf) != (cmd->ea &0xf)) { 1673 if ((cmd->lsa & 0xf) != (cmd->ea &0xf)) {
1674 pr_debug("invalid DMA alignment, ea %lx lsa %x\n", 1674 pr_debug("invalid DMA alignment, ea %llx lsa %x\n",
1675 cmd->ea, cmd->lsa); 1675 cmd->ea, cmd->lsa);
1676 return -EIO; 1676 return -EIO;
1677 } 1677 }
@@ -2633,7 +2633,7 @@ static int spufs_show_ctx(struct seq_file *s, void *private)
2633 } 2633 }
2634 2634
2635 seq_printf(s, "%c flgs(%lx) sflgs(%lx) pri(%d) ts(%d) spu(%02d)" 2635 seq_printf(s, "%c flgs(%lx) sflgs(%lx) pri(%d) ts(%d) spu(%02d)"
2636 " %c %lx %lx %lx %lx %x %x\n", 2636 " %c %llx %llx %llx %llx %x %x\n",
2637 ctx->state == SPU_STATE_SAVED ? 'S' : 'R', 2637 ctx->state == SPU_STATE_SAVED ? 'S' : 'R',
2638 ctx->flags, 2638 ctx->flags,
2639 ctx->sched_flags, 2639 ctx->sched_flags,
diff --git a/arch/powerpc/platforms/fsl_uli1575.c b/arch/powerpc/platforms/fsl_uli1575.c
index 8c619963becc..1db6b9e037fc 100644
--- a/arch/powerpc/platforms/fsl_uli1575.c
+++ b/arch/powerpc/platforms/fsl_uli1575.c
@@ -249,6 +249,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288);
249DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229); 249DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229);
250DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x5249, quirk_final_uli5249); 250DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x5249, quirk_final_uli5249);
251DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x1575, quirk_final_uli1575); 251DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x1575, quirk_final_uli1575);
252DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229);
252 253
253static void __devinit hpcd_quirk_uli1575(struct pci_dev *dev) 254static void __devinit hpcd_quirk_uli1575(struct pci_dev *dev)
254{ 255{
diff --git a/arch/powerpc/platforms/iseries/iommu.c b/arch/powerpc/platforms/iseries/iommu.c
index bbe828f1b885..6ed75bffc8ab 100644
--- a/arch/powerpc/platforms/iseries/iommu.c
+++ b/arch/powerpc/platforms/iseries/iommu.c
@@ -66,7 +66,7 @@ static int tce_build_iSeries(struct iommu_table *tbl, long index, long npages,
66 66
67 rc = HvCallXm_setTce((u64)tbl->it_index, (u64)index, tce); 67 rc = HvCallXm_setTce((u64)tbl->it_index, (u64)index, tce);
68 if (rc) 68 if (rc)
69 panic("PCI_DMA: HvCallXm_setTce failed, Rc: 0x%lx\n", 69 panic("PCI_DMA: HvCallXm_setTce failed, Rc: 0x%llx\n",
70 rc); 70 rc);
71 index++; 71 index++;
72 uaddr += TCE_PAGE_SIZE; 72 uaddr += TCE_PAGE_SIZE;
@@ -81,7 +81,7 @@ static void tce_free_iSeries(struct iommu_table *tbl, long index, long npages)
81 while (npages--) { 81 while (npages--) {
82 rc = HvCallXm_setTce((u64)tbl->it_index, (u64)index, 0); 82 rc = HvCallXm_setTce((u64)tbl->it_index, (u64)index, 0);
83 if (rc) 83 if (rc)
84 panic("PCI_DMA: HvCallXm_setTce failed, Rc: 0x%lx\n", 84 panic("PCI_DMA: HvCallXm_setTce failed, Rc: 0x%llx\n",
85 rc); 85 rc);
86 index++; 86 index++;
87 } 87 }
diff --git a/arch/powerpc/platforms/pasemi/cpufreq.c b/arch/powerpc/platforms/pasemi/cpufreq.c
index 86db47c1b665..be2527a516ea 100644
--- a/arch/powerpc/platforms/pasemi/cpufreq.c
+++ b/arch/powerpc/platforms/pasemi/cpufreq.c
@@ -213,7 +213,7 @@ static int pas_cpufreq_cpu_init(struct cpufreq_policy *policy)
213 pr_debug("current astate is at %d\n",cur_astate); 213 pr_debug("current astate is at %d\n",cur_astate);
214 214
215 policy->cur = pas_freqs[cur_astate].frequency; 215 policy->cur = pas_freqs[cur_astate].frequency;
216 policy->cpus = cpu_online_map; 216 cpumask_copy(policy->cpus, &cpu_online_map);
217 217
218 ppc_proc_freq = policy->cur * 1000ul; 218 ppc_proc_freq = policy->cur * 1000ul;
219 219
diff --git a/arch/powerpc/platforms/powermac/cpufreq_64.c b/arch/powerpc/platforms/powermac/cpufreq_64.c
index 4dfb4bc242b5..beb38333b6d2 100644
--- a/arch/powerpc/platforms/powermac/cpufreq_64.c
+++ b/arch/powerpc/platforms/powermac/cpufreq_64.c
@@ -362,7 +362,7 @@ static int g5_cpufreq_cpu_init(struct cpufreq_policy *policy)
362 /* secondary CPUs are tied to the primary one by the 362 /* secondary CPUs are tied to the primary one by the
363 * cpufreq core if in the secondary policy we tell it that 363 * cpufreq core if in the secondary policy we tell it that
364 * it actually must be one policy together with all others. */ 364 * it actually must be one policy together with all others. */
365 policy->cpus = cpu_online_map; 365 cpumask_copy(policy->cpus, &cpu_online_map);
366 cpufreq_frequency_table_get_attr(g5_cpu_freqs, policy->cpu); 366 cpufreq_frequency_table_get_attr(g5_cpu_freqs, policy->cpu);
367 367
368 return cpufreq_frequency_table_cpuinfo(policy, 368 return cpufreq_frequency_table_cpuinfo(policy,
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
index 6b0711c15eca..bd8817b00fa4 100644
--- a/arch/powerpc/platforms/powermac/smp.c
+++ b/arch/powerpc/platforms/powermac/smp.c
@@ -53,7 +53,7 @@
53#include <asm/pmac_low_i2c.h> 53#include <asm/pmac_low_i2c.h>
54#include <asm/pmac_pfunc.h> 54#include <asm/pmac_pfunc.h>
55 55
56#define DEBUG 56#undef DEBUG
57 57
58#ifdef DEBUG 58#ifdef DEBUG
59#define DBG(fmt...) udbg_printf(fmt) 59#define DBG(fmt...) udbg_printf(fmt)
diff --git a/arch/powerpc/platforms/ps3/device-init.c b/arch/powerpc/platforms/ps3/device-init.c
index ca71a12b764c..bb028f165fb3 100644
--- a/arch/powerpc/platforms/ps3/device-init.c
+++ b/arch/powerpc/platforms/ps3/device-init.c
@@ -82,7 +82,7 @@ static int __init ps3_register_lpm_devices(void)
82 goto fail_rights; 82 goto fail_rights;
83 } 83 }
84 84
85 pr_debug("%s:%d: pu_id %lu, rights %lu(%lxh)\n", 85 pr_debug("%s:%d: pu_id %llu, rights %llu(%llxh)\n",
86 __func__, __LINE__, dev->lpm.pu_id, dev->lpm.rights, 86 __func__, __LINE__, dev->lpm.pu_id, dev->lpm.rights,
87 dev->lpm.rights); 87 dev->lpm.rights);
88 88
@@ -348,7 +348,7 @@ static int ps3_setup_storage_dev(const struct ps3_repository_device *repo,
348 return -ENODEV; 348 return -ENODEV;
349 } 349 }
350 350
351 pr_debug("%s:%u: (%u:%u:%u): port %lu blk_size %lu num_blocks %lu " 351 pr_debug("%s:%u: (%u:%u:%u): port %llu blk_size %llu num_blocks %llu "
352 "num_regions %u\n", __func__, __LINE__, repo->bus_index, 352 "num_regions %u\n", __func__, __LINE__, repo->bus_index,
353 repo->dev_index, repo->dev_type, port, blk_size, num_blocks, 353 repo->dev_index, repo->dev_type, port, blk_size, num_blocks,
354 num_regions); 354 num_regions);
@@ -394,7 +394,7 @@ static int ps3_setup_storage_dev(const struct ps3_repository_device *repo,
394 result = -ENODEV; 394 result = -ENODEV;
395 goto fail_read_region; 395 goto fail_read_region;
396 } 396 }
397 pr_debug("%s:%u: region %u: id %u start %lu size %lu\n", 397 pr_debug("%s:%u: region %u: id %u start %llu size %llu\n",
398 __func__, __LINE__, i, id, start, size); 398 __func__, __LINE__, i, id, start, size);
399 399
400 p->regions[i].id = id; 400 p->regions[i].id = id;
@@ -662,13 +662,13 @@ static void ps3_find_and_add_device(u64 bus_id, u64 dev_id)
662 if (rem) 662 if (rem)
663 break; 663 break;
664 } 664 }
665 pr_warning("%s:%u: device %lu:%lu not found\n", __func__, __LINE__, 665 pr_warning("%s:%u: device %llu:%llu not found\n", __func__, __LINE__,
666 bus_id, dev_id); 666 bus_id, dev_id);
667 return; 667 return;
668 668
669found: 669found:
670 if (retries) 670 if (retries)
671 pr_debug("%s:%u: device %lu:%lu found after %u retries\n", 671 pr_debug("%s:%u: device %llu:%llu found after %u retries\n",
672 __func__, __LINE__, bus_id, dev_id, retries); 672 __func__, __LINE__, bus_id, dev_id, retries);
673 673
674 ps3_setup_dynamic_device(&repo); 674 ps3_setup_dynamic_device(&repo);
@@ -715,14 +715,14 @@ static irqreturn_t ps3_notification_interrupt(int irq, void *data)
715 res = lv1_storage_get_async_status(PS3_NOTIFICATION_DEV_ID, &tag, 715 res = lv1_storage_get_async_status(PS3_NOTIFICATION_DEV_ID, &tag,
716 &status); 716 &status);
717 if (tag != dev->tag) 717 if (tag != dev->tag)
718 pr_err("%s:%u: tag mismatch, got %lx, expected %lx\n", 718 pr_err("%s:%u: tag mismatch, got %llx, expected %llx\n",
719 __func__, __LINE__, tag, dev->tag); 719 __func__, __LINE__, tag, dev->tag);
720 720
721 if (res) { 721 if (res) {
722 pr_err("%s:%u: res %d status 0x%lx\n", __func__, __LINE__, res, 722 pr_err("%s:%u: res %d status 0x%llx\n", __func__, __LINE__, res,
723 status); 723 status);
724 } else { 724 } else {
725 pr_debug("%s:%u: completed, status 0x%lx\n", __func__, 725 pr_debug("%s:%u: completed, status 0x%llx\n", __func__,
726 __LINE__, status); 726 __LINE__, status);
727 dev->lv1_status = status; 727 dev->lv1_status = status;
728 complete(&dev->done); 728 complete(&dev->done);
@@ -761,7 +761,7 @@ static int ps3_notification_read_write(struct ps3_notification_device *dev,
761 } 761 }
762 762
763 if (dev->lv1_status) { 763 if (dev->lv1_status) {
764 pr_err("%s:%u: %s not completed, status 0x%lx\n", __func__, 764 pr_err("%s:%u: %s not completed, status 0x%llx\n", __func__,
765 __LINE__, op, dev->lv1_status); 765 __LINE__, op, dev->lv1_status);
766 return -EIO; 766 return -EIO;
767 } 767 }
@@ -850,16 +850,16 @@ static int ps3_probe_thread(void *data)
850 if (res) 850 if (res)
851 break; 851 break;
852 852
853 pr_debug("%s:%u: notify event type 0x%lx bus id %lu dev id %lu" 853 pr_debug("%s:%u: notify event type 0x%llx bus id %llu dev id %llu"
854 " type %lu port %lu\n", __func__, __LINE__, 854 " type %llu port %llu\n", __func__, __LINE__,
855 notify_event->event_type, notify_event->bus_id, 855 notify_event->event_type, notify_event->bus_id,
856 notify_event->dev_id, notify_event->dev_type, 856 notify_event->dev_id, notify_event->dev_type,
857 notify_event->dev_port); 857 notify_event->dev_port);
858 858
859 if (notify_event->event_type != notify_region_probe || 859 if (notify_event->event_type != notify_region_probe ||
860 notify_event->bus_id != dev.sbd.bus_id) { 860 notify_event->bus_id != dev.sbd.bus_id) {
861 pr_warning("%s:%u: bad notify_event: event %lu, " 861 pr_warning("%s:%u: bad notify_event: event %llu, "
862 "dev_id %lu, dev_type %lu\n", 862 "dev_id %llu, dev_type %llu\n",
863 __func__, __LINE__, notify_event->event_type, 863 __func__, __LINE__, notify_event->event_type,
864 notify_event->dev_id, 864 notify_event->dev_id,
865 notify_event->dev_type); 865 notify_event->dev_type);
diff --git a/arch/powerpc/platforms/ps3/htab.c b/arch/powerpc/platforms/ps3/htab.c
index 6eb1d4d182c9..1e8a1e39dfe8 100644
--- a/arch/powerpc/platforms/ps3/htab.c
+++ b/arch/powerpc/platforms/ps3/htab.c
@@ -75,7 +75,7 @@ static long ps3_hpte_insert(unsigned long hpte_group, unsigned long va,
75 75
76 if (result) { 76 if (result) {
77 /* all entries bolted !*/ 77 /* all entries bolted !*/
78 pr_info("%s:result=%d va=%lx pa=%lx ix=%lx v=%lx r=%lx\n", 78 pr_info("%s:result=%d va=%lx pa=%lx ix=%lx v=%llx r=%llx\n",
79 __func__, result, va, pa, hpte_group, hpte_v, hpte_r); 79 __func__, result, va, pa, hpte_group, hpte_v, hpte_r);
80 BUG(); 80 BUG();
81 } 81 }
diff --git a/arch/powerpc/platforms/ps3/interrupt.c b/arch/powerpc/platforms/ps3/interrupt.c
index e59634f7af96..8ec5ccf76b19 100644
--- a/arch/powerpc/platforms/ps3/interrupt.c
+++ b/arch/powerpc/platforms/ps3/interrupt.c
@@ -60,6 +60,8 @@
60 * gives a usable range of plug values of {NUM_ISA_INTERRUPTS..63}. Note 60 * gives a usable range of plug values of {NUM_ISA_INTERRUPTS..63}. Note
61 * that there is no constraint on how many in this set an individual thread 61 * that there is no constraint on how many in this set an individual thread
62 * can acquire. 62 * can acquire.
63 *
64 * The mask is declared as unsigned long so we can use set/clear_bit on it.
63 */ 65 */
64 66
65#define PS3_BMP_MINALIGN 64 67#define PS3_BMP_MINALIGN 64
@@ -68,7 +70,7 @@ struct ps3_bmp {
68 struct { 70 struct {
69 u64 status; 71 u64 status;
70 u64 unused_1[3]; 72 u64 unused_1[3];
71 u64 mask; 73 unsigned long mask;
72 u64 unused_2[3]; 74 u64 unused_2[3];
73 }; 75 };
74 u64 ipi_debug_brk_mask; 76 u64 ipi_debug_brk_mask;
@@ -102,7 +104,7 @@ static void ps3_chip_mask(unsigned int virq)
102 struct ps3_private *pd = get_irq_chip_data(virq); 104 struct ps3_private *pd = get_irq_chip_data(virq);
103 unsigned long flags; 105 unsigned long flags;
104 106
105 pr_debug("%s:%d: thread_id %lu, virq %d\n", __func__, __LINE__, 107 pr_debug("%s:%d: thread_id %llu, virq %d\n", __func__, __LINE__,
106 pd->thread_id, virq); 108 pd->thread_id, virq);
107 109
108 local_irq_save(flags); 110 local_irq_save(flags);
@@ -123,7 +125,7 @@ static void ps3_chip_unmask(unsigned int virq)
123 struct ps3_private *pd = get_irq_chip_data(virq); 125 struct ps3_private *pd = get_irq_chip_data(virq);
124 unsigned long flags; 126 unsigned long flags;
125 127
126 pr_debug("%s:%d: thread_id %lu, virq %d\n", __func__, __LINE__, 128 pr_debug("%s:%d: thread_id %llu, virq %d\n", __func__, __LINE__,
127 pd->thread_id, virq); 129 pd->thread_id, virq);
128 130
129 local_irq_save(flags); 131 local_irq_save(flags);
@@ -221,7 +223,7 @@ static int ps3_virq_destroy(unsigned int virq)
221{ 223{
222 const struct ps3_private *pd = get_irq_chip_data(virq); 224 const struct ps3_private *pd = get_irq_chip_data(virq);
223 225
224 pr_debug("%s:%d: ppe_id %lu, thread_id %lu, virq %u\n", __func__, 226 pr_debug("%s:%d: ppe_id %llu, thread_id %llu, virq %u\n", __func__,
225 __LINE__, pd->ppe_id, pd->thread_id, virq); 227 __LINE__, pd->ppe_id, pd->thread_id, virq);
226 228
227 set_irq_chip_data(virq, NULL); 229 set_irq_chip_data(virq, NULL);
@@ -291,7 +293,7 @@ int ps3_irq_plug_destroy(unsigned int virq)
291 int result; 293 int result;
292 const struct ps3_private *pd = get_irq_chip_data(virq); 294 const struct ps3_private *pd = get_irq_chip_data(virq);
293 295
294 pr_debug("%s:%d: ppe_id %lu, thread_id %lu, virq %u\n", __func__, 296 pr_debug("%s:%d: ppe_id %llu, thread_id %llu, virq %u\n", __func__,
295 __LINE__, pd->ppe_id, pd->thread_id, virq); 297 __LINE__, pd->ppe_id, pd->thread_id, virq);
296 298
297 ps3_chip_mask(virq); 299 ps3_chip_mask(virq);
@@ -322,7 +324,7 @@ EXPORT_SYMBOL_GPL(ps3_irq_plug_destroy);
322int ps3_event_receive_port_setup(enum ps3_cpu_binding cpu, unsigned int *virq) 324int ps3_event_receive_port_setup(enum ps3_cpu_binding cpu, unsigned int *virq)
323{ 325{
324 int result; 326 int result;
325 unsigned long outlet; 327 u64 outlet;
326 328
327 result = lv1_construct_event_receive_port(&outlet); 329 result = lv1_construct_event_receive_port(&outlet);
328 330
@@ -468,7 +470,7 @@ int ps3_io_irq_setup(enum ps3_cpu_binding cpu, unsigned int interrupt_id,
468 unsigned int *virq) 470 unsigned int *virq)
469{ 471{
470 int result; 472 int result;
471 unsigned long outlet; 473 u64 outlet;
472 474
473 result = lv1_construct_io_irq_outlet(interrupt_id, &outlet); 475 result = lv1_construct_io_irq_outlet(interrupt_id, &outlet);
474 476
@@ -525,7 +527,7 @@ int ps3_vuart_irq_setup(enum ps3_cpu_binding cpu, void* virt_addr_bmp,
525 unsigned int *virq) 527 unsigned int *virq)
526{ 528{
527 int result; 529 int result;
528 unsigned long outlet; 530 u64 outlet;
529 u64 lpar_addr; 531 u64 lpar_addr;
530 532
531 BUG_ON(!is_kernel_addr((u64)virt_addr_bmp)); 533 BUG_ON(!is_kernel_addr((u64)virt_addr_bmp));
@@ -581,7 +583,7 @@ int ps3_spe_irq_setup(enum ps3_cpu_binding cpu, unsigned long spe_id,
581 unsigned int class, unsigned int *virq) 583 unsigned int class, unsigned int *virq)
582{ 584{
583 int result; 585 int result;
584 unsigned long outlet; 586 u64 outlet;
585 587
586 BUG_ON(class > 2); 588 BUG_ON(class > 2);
587 589
@@ -691,7 +693,7 @@ void __init ps3_register_ipi_debug_brk(unsigned int cpu, unsigned int virq)
691 693
692 pd->bmp.ipi_debug_brk_mask = 0x8000000000000000UL >> virq; 694 pd->bmp.ipi_debug_brk_mask = 0x8000000000000000UL >> virq;
693 695
694 pr_debug("%s:%d: cpu %u, virq %u, mask %lxh\n", __func__, __LINE__, 696 pr_debug("%s:%d: cpu %u, virq %u, mask %llxh\n", __func__, __LINE__,
695 cpu, virq, pd->bmp.ipi_debug_brk_mask); 697 cpu, virq, pd->bmp.ipi_debug_brk_mask);
696} 698}
697 699
@@ -710,7 +712,7 @@ static unsigned int ps3_get_irq(void)
710 plug &= 0x3f; 712 plug &= 0x3f;
711 713
712 if (unlikely(plug == NO_IRQ)) { 714 if (unlikely(plug == NO_IRQ)) {
713 pr_debug("%s:%d: no plug found: thread_id %lu\n", __func__, 715 pr_debug("%s:%d: no plug found: thread_id %llu\n", __func__,
714 __LINE__, pd->thread_id); 716 __LINE__, pd->thread_id);
715 dump_bmp(&per_cpu(ps3_private, 0)); 717 dump_bmp(&per_cpu(ps3_private, 0));
716 dump_bmp(&per_cpu(ps3_private, 1)); 718 dump_bmp(&per_cpu(ps3_private, 1));
@@ -745,7 +747,7 @@ void __init ps3_init_IRQ(void)
745 pd->thread_id = get_hard_smp_processor_id(cpu); 747 pd->thread_id = get_hard_smp_processor_id(cpu);
746 spin_lock_init(&pd->bmp.lock); 748 spin_lock_init(&pd->bmp.lock);
747 749
748 pr_debug("%s:%d: ppe_id %lu, thread_id %lu, bmp %lxh\n", 750 pr_debug("%s:%d: ppe_id %llu, thread_id %llu, bmp %lxh\n",
749 __func__, __LINE__, pd->ppe_id, pd->thread_id, 751 __func__, __LINE__, pd->ppe_id, pd->thread_id,
750 ps3_mm_phys_to_lpar(__pa(&pd->bmp))); 752 ps3_mm_phys_to_lpar(__pa(&pd->bmp)));
751 753
@@ -770,6 +772,6 @@ void ps3_shutdown_IRQ(int cpu)
770 lv1_get_logical_ppe_id(&ppe_id); 772 lv1_get_logical_ppe_id(&ppe_id);
771 result = lv1_configure_irq_state_bitmap(ppe_id, thread_id, 0); 773 result = lv1_configure_irq_state_bitmap(ppe_id, thread_id, 0);
772 774
773 DBG("%s:%d: lv1_configure_irq_state_bitmap (%lu:%lu/%d) %s\n", __func__, 775 DBG("%s:%d: lv1_configure_irq_state_bitmap (%llu:%llu/%d) %s\n", __func__,
774 __LINE__, ppe_id, thread_id, cpu, ps3_result(result)); 776 __LINE__, ppe_id, thread_id, cpu, ps3_result(result));
775} 777}
diff --git a/arch/powerpc/platforms/ps3/mm.c b/arch/powerpc/platforms/ps3/mm.c
index a4d49dd9e8a9..d281cc0bca71 100644
--- a/arch/powerpc/platforms/ps3/mm.c
+++ b/arch/powerpc/platforms/ps3/mm.c
@@ -79,8 +79,8 @@ enum {
79 */ 79 */
80 80
81struct mem_region { 81struct mem_region {
82 unsigned long base; 82 u64 base;
83 unsigned long size; 83 u64 size;
84 unsigned long offset; 84 unsigned long offset;
85}; 85};
86 86
@@ -103,9 +103,9 @@ struct mem_region {
103 */ 103 */
104 104
105struct map { 105struct map {
106 unsigned long total; 106 u64 total;
107 unsigned long vas_id; 107 u64 vas_id;
108 unsigned long htab_size; 108 u64 htab_size;
109 struct mem_region rm; 109 struct mem_region rm;
110 struct mem_region r1; 110 struct mem_region r1;
111}; 111};
@@ -114,13 +114,13 @@ struct map {
114static void __maybe_unused _debug_dump_map(const struct map *m, 114static void __maybe_unused _debug_dump_map(const struct map *m,
115 const char *func, int line) 115 const char *func, int line)
116{ 116{
117 DBG("%s:%d: map.total = %lxh\n", func, line, m->total); 117 DBG("%s:%d: map.total = %llxh\n", func, line, m->total);
118 DBG("%s:%d: map.rm.size = %lxh\n", func, line, m->rm.size); 118 DBG("%s:%d: map.rm.size = %llxh\n", func, line, m->rm.size);
119 DBG("%s:%d: map.vas_id = %lu\n", func, line, m->vas_id); 119 DBG("%s:%d: map.vas_id = %llu\n", func, line, m->vas_id);
120 DBG("%s:%d: map.htab_size = %lxh\n", func, line, m->htab_size); 120 DBG("%s:%d: map.htab_size = %llxh\n", func, line, m->htab_size);
121 DBG("%s:%d: map.r1.base = %lxh\n", func, line, m->r1.base); 121 DBG("%s:%d: map.r1.base = %llxh\n", func, line, m->r1.base);
122 DBG("%s:%d: map.r1.offset = %lxh\n", func, line, m->r1.offset); 122 DBG("%s:%d: map.r1.offset = %lxh\n", func, line, m->r1.offset);
123 DBG("%s:%d: map.r1.size = %lxh\n", func, line, m->r1.size); 123 DBG("%s:%d: map.r1.size = %llxh\n", func, line, m->r1.size);
124} 124}
125 125
126static struct map map; 126static struct map map;
@@ -146,11 +146,11 @@ EXPORT_SYMBOL(ps3_mm_phys_to_lpar);
146void __init ps3_mm_vas_create(unsigned long* htab_size) 146void __init ps3_mm_vas_create(unsigned long* htab_size)
147{ 147{
148 int result; 148 int result;
149 unsigned long start_address; 149 u64 start_address;
150 unsigned long size; 150 u64 size;
151 unsigned long access_right; 151 u64 access_right;
152 unsigned long max_page_size; 152 u64 max_page_size;
153 unsigned long flags; 153 u64 flags;
154 154
155 result = lv1_query_logical_partition_address_region_info(0, 155 result = lv1_query_logical_partition_address_region_info(0,
156 &start_address, &size, &access_right, &max_page_size, 156 &start_address, &size, &access_right, &max_page_size,
@@ -164,7 +164,7 @@ void __init ps3_mm_vas_create(unsigned long* htab_size)
164 } 164 }
165 165
166 if (max_page_size < PAGE_SHIFT_16M) { 166 if (max_page_size < PAGE_SHIFT_16M) {
167 DBG("%s:%d: bad max_page_size %lxh\n", __func__, __LINE__, 167 DBG("%s:%d: bad max_page_size %llxh\n", __func__, __LINE__,
168 max_page_size); 168 max_page_size);
169 goto fail; 169 goto fail;
170 } 170 }
@@ -208,7 +208,7 @@ void ps3_mm_vas_destroy(void)
208{ 208{
209 int result; 209 int result;
210 210
211 DBG("%s:%d: map.vas_id = %lu\n", __func__, __LINE__, map.vas_id); 211 DBG("%s:%d: map.vas_id = %llu\n", __func__, __LINE__, map.vas_id);
212 212
213 if (map.vas_id) { 213 if (map.vas_id) {
214 result = lv1_select_virtual_address_space(0); 214 result = lv1_select_virtual_address_space(0);
@@ -235,15 +235,14 @@ void ps3_mm_vas_destroy(void)
235static int ps3_mm_region_create(struct mem_region *r, unsigned long size) 235static int ps3_mm_region_create(struct mem_region *r, unsigned long size)
236{ 236{
237 int result; 237 int result;
238 unsigned long muid; 238 u64 muid;
239 239
240 r->size = _ALIGN_DOWN(size, 1 << PAGE_SHIFT_16M); 240 r->size = _ALIGN_DOWN(size, 1 << PAGE_SHIFT_16M);
241 241
242 DBG("%s:%d requested %lxh\n", __func__, __LINE__, size); 242 DBG("%s:%d requested %lxh\n", __func__, __LINE__, size);
243 DBG("%s:%d actual %lxh\n", __func__, __LINE__, r->size); 243 DBG("%s:%d actual %llxh\n", __func__, __LINE__, r->size);
244 DBG("%s:%d difference %lxh (%luMB)\n", __func__, __LINE__, 244 DBG("%s:%d difference %llxh (%lluMB)\n", __func__, __LINE__,
245 (unsigned long)(size - r->size), 245 size - r->size, (size - r->size) / 1024 / 1024);
246 (size - r->size) / 1024 / 1024);
247 246
248 if (r->size == 0) { 247 if (r->size == 0) {
249 DBG("%s:%d: size == 0\n", __func__, __LINE__); 248 DBG("%s:%d: size == 0\n", __func__, __LINE__);
@@ -277,7 +276,7 @@ static void ps3_mm_region_destroy(struct mem_region *r)
277{ 276{
278 int result; 277 int result;
279 278
280 DBG("%s:%d: r->base = %lxh\n", __func__, __LINE__, r->base); 279 DBG("%s:%d: r->base = %llxh\n", __func__, __LINE__, r->base);
281 if (r->base) { 280 if (r->base) {
282 result = lv1_release_memory(r->base); 281 result = lv1_release_memory(r->base);
283 BUG_ON(result); 282 BUG_ON(result);
@@ -329,7 +328,7 @@ static int __init ps3_mm_add_memory(void)
329 return result; 328 return result;
330} 329}
331 330
332core_initcall(ps3_mm_add_memory); 331device_initcall(ps3_mm_add_memory);
333 332
334/*============================================================================*/ 333/*============================================================================*/
335/* dma routines */ 334/* dma routines */
@@ -355,7 +354,7 @@ static unsigned long dma_sb_lpar_to_bus(struct ps3_dma_region *r,
355static void __maybe_unused _dma_dump_region(const struct ps3_dma_region *r, 354static void __maybe_unused _dma_dump_region(const struct ps3_dma_region *r,
356 const char *func, int line) 355 const char *func, int line)
357{ 356{
358 DBG("%s:%d: dev %lu:%lu\n", func, line, r->dev->bus_id, 357 DBG("%s:%d: dev %llu:%llu\n", func, line, r->dev->bus_id,
359 r->dev->dev_id); 358 r->dev->dev_id);
360 DBG("%s:%d: page_size %u\n", func, line, r->page_size); 359 DBG("%s:%d: page_size %u\n", func, line, r->page_size);
361 DBG("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr); 360 DBG("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr);
@@ -390,7 +389,7 @@ struct dma_chunk {
390static void _dma_dump_chunk (const struct dma_chunk* c, const char* func, 389static void _dma_dump_chunk (const struct dma_chunk* c, const char* func,
391 int line) 390 int line)
392{ 391{
393 DBG("%s:%d: r.dev %lu:%lu\n", func, line, 392 DBG("%s:%d: r.dev %llu:%llu\n", func, line,
394 c->region->dev->bus_id, c->region->dev->dev_id); 393 c->region->dev->bus_id, c->region->dev->dev_id);
395 DBG("%s:%d: r.bus_addr %lxh\n", func, line, c->region->bus_addr); 394 DBG("%s:%d: r.bus_addr %lxh\n", func, line, c->region->bus_addr);
396 DBG("%s:%d: r.page_size %u\n", func, line, c->region->page_size); 395 DBG("%s:%d: r.page_size %u\n", func, line, c->region->page_size);
@@ -596,7 +595,7 @@ static int dma_ioc0_map_pages(struct ps3_dma_region *r, unsigned long phys_addr,
596 595
597 /* build ioptes for the area */ 596 /* build ioptes for the area */
598 pages = len >> r->page_size; 597 pages = len >> r->page_size;
599 DBG("%s: pgsize=%#x len=%#lx pages=%#x iopteflag=%#lx\n", __func__, 598 DBG("%s: pgsize=%#x len=%#lx pages=%#x iopteflag=%#llx\n", __func__,
600 r->page_size, r->len, pages, iopte_flag); 599 r->page_size, r->len, pages, iopte_flag);
601 for (iopage = 0; iopage < pages; iopage++) { 600 for (iopage = 0; iopage < pages; iopage++) {
602 offset = (1 << r->page_size) * iopage; 601 offset = (1 << r->page_size) * iopage;
@@ -648,13 +647,14 @@ fail_alloc:
648static int dma_sb_region_create(struct ps3_dma_region *r) 647static int dma_sb_region_create(struct ps3_dma_region *r)
649{ 648{
650 int result; 649 int result;
650 u64 bus_addr;
651 651
652 DBG(" -> %s:%d:\n", __func__, __LINE__); 652 DBG(" -> %s:%d:\n", __func__, __LINE__);
653 653
654 BUG_ON(!r); 654 BUG_ON(!r);
655 655
656 if (!r->dev->bus_id) { 656 if (!r->dev->bus_id) {
657 pr_info("%s:%d: %lu:%lu no dma\n", __func__, __LINE__, 657 pr_info("%s:%d: %llu:%llu no dma\n", __func__, __LINE__,
658 r->dev->bus_id, r->dev->dev_id); 658 r->dev->bus_id, r->dev->dev_id);
659 return 0; 659 return 0;
660 } 660 }
@@ -671,7 +671,8 @@ static int dma_sb_region_create(struct ps3_dma_region *r)
671 671
672 result = lv1_allocate_device_dma_region(r->dev->bus_id, r->dev->dev_id, 672 result = lv1_allocate_device_dma_region(r->dev->bus_id, r->dev->dev_id,
673 roundup_pow_of_two(r->len), r->page_size, r->region_type, 673 roundup_pow_of_two(r->len), r->page_size, r->region_type,
674 &r->bus_addr); 674 &bus_addr);
675 r->bus_addr = bus_addr;
675 676
676 if (result) { 677 if (result) {
677 DBG("%s:%d: lv1_allocate_device_dma_region failed: %s\n", 678 DBG("%s:%d: lv1_allocate_device_dma_region failed: %s\n",
@@ -685,6 +686,7 @@ static int dma_sb_region_create(struct ps3_dma_region *r)
685static int dma_ioc0_region_create(struct ps3_dma_region *r) 686static int dma_ioc0_region_create(struct ps3_dma_region *r)
686{ 687{
687 int result; 688 int result;
689 u64 bus_addr;
688 690
689 INIT_LIST_HEAD(&r->chunk_list.head); 691 INIT_LIST_HEAD(&r->chunk_list.head);
690 spin_lock_init(&r->chunk_list.lock); 692 spin_lock_init(&r->chunk_list.lock);
@@ -692,7 +694,8 @@ static int dma_ioc0_region_create(struct ps3_dma_region *r)
692 result = lv1_allocate_io_segment(0, 694 result = lv1_allocate_io_segment(0,
693 r->len, 695 r->len,
694 r->page_size, 696 r->page_size,
695 &r->bus_addr); 697 &bus_addr);
698 r->bus_addr = bus_addr;
696 if (result) { 699 if (result) {
697 DBG("%s:%d: lv1_allocate_io_segment failed: %s\n", 700 DBG("%s:%d: lv1_allocate_io_segment failed: %s\n",
698 __func__, __LINE__, ps3_result(result)); 701 __func__, __LINE__, ps3_result(result));
@@ -720,7 +723,7 @@ static int dma_sb_region_free(struct ps3_dma_region *r)
720 BUG_ON(!r); 723 BUG_ON(!r);
721 724
722 if (!r->dev->bus_id) { 725 if (!r->dev->bus_id) {
723 pr_info("%s:%d: %lu:%lu no dma\n", __func__, __LINE__, 726 pr_info("%s:%d: %llu:%llu no dma\n", __func__, __LINE__,
724 r->dev->bus_id, r->dev->dev_id); 727 r->dev->bus_id, r->dev->dev_id);
725 return 0; 728 return 0;
726 } 729 }
@@ -777,7 +780,7 @@ static int dma_ioc0_region_free(struct ps3_dma_region *r)
777 */ 780 */
778 781
779static int dma_sb_map_area(struct ps3_dma_region *r, unsigned long virt_addr, 782static int dma_sb_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
780 unsigned long len, unsigned long *bus_addr, 783 unsigned long len, dma_addr_t *bus_addr,
781 u64 iopte_flag) 784 u64 iopte_flag)
782{ 785{
783 int result; 786 int result;
@@ -800,7 +803,7 @@ static int dma_sb_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
800 DBG("%s:%d lpar_addr %lxh\n", __func__, __LINE__, 803 DBG("%s:%d lpar_addr %lxh\n", __func__, __LINE__,
801 lpar_addr); 804 lpar_addr);
802 DBG("%s:%d len %lxh\n", __func__, __LINE__, len); 805 DBG("%s:%d len %lxh\n", __func__, __LINE__, len);
803 DBG("%s:%d bus_addr %lxh (%lxh)\n", __func__, __LINE__, 806 DBG("%s:%d bus_addr %llxh (%lxh)\n", __func__, __LINE__,
804 *bus_addr, len); 807 *bus_addr, len);
805 } 808 }
806 809
@@ -832,7 +835,7 @@ static int dma_sb_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
832} 835}
833 836
834static int dma_ioc0_map_area(struct ps3_dma_region *r, unsigned long virt_addr, 837static int dma_ioc0_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
835 unsigned long len, unsigned long *bus_addr, 838 unsigned long len, dma_addr_t *bus_addr,
836 u64 iopte_flag) 839 u64 iopte_flag)
837{ 840{
838 int result; 841 int result;
@@ -872,7 +875,7 @@ static int dma_ioc0_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
872 return result; 875 return result;
873 } 876 }
874 *bus_addr = c->bus_addr + phys_addr - aligned_phys; 877 *bus_addr = c->bus_addr + phys_addr - aligned_phys;
875 DBG("%s: va=%#lx pa=%#lx a_pa=%#lx bus=%#lx\n", __func__, 878 DBG("%s: va=%#lx pa=%#lx a_pa=%#lx bus=%#llx\n", __func__,
876 virt_addr, phys_addr, aligned_phys, *bus_addr); 879 virt_addr, phys_addr, aligned_phys, *bus_addr);
877 c->usage_count = 1; 880 c->usage_count = 1;
878 881
@@ -889,7 +892,7 @@ static int dma_ioc0_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
889 * This is the common dma unmap routine. 892 * This is the common dma unmap routine.
890 */ 893 */
891 894
892static int dma_sb_unmap_area(struct ps3_dma_region *r, unsigned long bus_addr, 895static int dma_sb_unmap_area(struct ps3_dma_region *r, dma_addr_t bus_addr,
893 unsigned long len) 896 unsigned long len)
894{ 897{
895 unsigned long flags; 898 unsigned long flags;
@@ -903,7 +906,7 @@ static int dma_sb_unmap_area(struct ps3_dma_region *r, unsigned long bus_addr,
903 1 << r->page_size); 906 1 << r->page_size);
904 unsigned long aligned_len = _ALIGN_UP(len + bus_addr 907 unsigned long aligned_len = _ALIGN_UP(len + bus_addr
905 - aligned_bus, 1 << r->page_size); 908 - aligned_bus, 1 << r->page_size);
906 DBG("%s:%d: not found: bus_addr %lxh\n", 909 DBG("%s:%d: not found: bus_addr %llxh\n",
907 __func__, __LINE__, bus_addr); 910 __func__, __LINE__, bus_addr);
908 DBG("%s:%d: not found: len %lxh\n", 911 DBG("%s:%d: not found: len %lxh\n",
909 __func__, __LINE__, len); 912 __func__, __LINE__, len);
@@ -926,12 +929,12 @@ static int dma_sb_unmap_area(struct ps3_dma_region *r, unsigned long bus_addr,
926} 929}
927 930
928static int dma_ioc0_unmap_area(struct ps3_dma_region *r, 931static int dma_ioc0_unmap_area(struct ps3_dma_region *r,
929 unsigned long bus_addr, unsigned long len) 932 dma_addr_t bus_addr, unsigned long len)
930{ 933{
931 unsigned long flags; 934 unsigned long flags;
932 struct dma_chunk *c; 935 struct dma_chunk *c;
933 936
934 DBG("%s: start a=%#lx l=%#lx\n", __func__, bus_addr, len); 937 DBG("%s: start a=%#llx l=%#lx\n", __func__, bus_addr, len);
935 spin_lock_irqsave(&r->chunk_list.lock, flags); 938 spin_lock_irqsave(&r->chunk_list.lock, flags);
936 c = dma_find_chunk(r, bus_addr, len); 939 c = dma_find_chunk(r, bus_addr, len);
937 940
@@ -941,7 +944,7 @@ static int dma_ioc0_unmap_area(struct ps3_dma_region *r,
941 unsigned long aligned_len = _ALIGN_UP(len + bus_addr 944 unsigned long aligned_len = _ALIGN_UP(len + bus_addr
942 - aligned_bus, 945 - aligned_bus,
943 1 << r->page_size); 946 1 << r->page_size);
944 DBG("%s:%d: not found: bus_addr %lxh\n", 947 DBG("%s:%d: not found: bus_addr %llxh\n",
945 __func__, __LINE__, bus_addr); 948 __func__, __LINE__, bus_addr);
946 DBG("%s:%d: not found: len %lxh\n", 949 DBG("%s:%d: not found: len %lxh\n",
947 __func__, __LINE__, len); 950 __func__, __LINE__, len);
@@ -975,7 +978,8 @@ static int dma_ioc0_unmap_area(struct ps3_dma_region *r,
975static int dma_sb_region_create_linear(struct ps3_dma_region *r) 978static int dma_sb_region_create_linear(struct ps3_dma_region *r)
976{ 979{
977 int result; 980 int result;
978 unsigned long virt_addr, len, tmp; 981 unsigned long virt_addr, len;
982 dma_addr_t tmp;
979 983
980 if (r->len > 16*1024*1024) { /* FIXME: need proper fix */ 984 if (r->len > 16*1024*1024) { /* FIXME: need proper fix */
981 /* force 16M dma pages for linear mapping */ 985 /* force 16M dma pages for linear mapping */
@@ -1027,7 +1031,8 @@ static int dma_sb_region_create_linear(struct ps3_dma_region *r)
1027static int dma_sb_region_free_linear(struct ps3_dma_region *r) 1031static int dma_sb_region_free_linear(struct ps3_dma_region *r)
1028{ 1032{
1029 int result; 1033 int result;
1030 unsigned long bus_addr, len, lpar_addr; 1034 dma_addr_t bus_addr;
1035 unsigned long len, lpar_addr;
1031 1036
1032 if (r->offset < map.rm.size) { 1037 if (r->offset < map.rm.size) {
1033 /* Unmap (part of) 1st RAM chunk */ 1038 /* Unmap (part of) 1st RAM chunk */
@@ -1072,7 +1077,7 @@ static int dma_sb_region_free_linear(struct ps3_dma_region *r)
1072 */ 1077 */
1073 1078
1074static int dma_sb_map_area_linear(struct ps3_dma_region *r, 1079static int dma_sb_map_area_linear(struct ps3_dma_region *r,
1075 unsigned long virt_addr, unsigned long len, unsigned long *bus_addr, 1080 unsigned long virt_addr, unsigned long len, dma_addr_t *bus_addr,
1076 u64 iopte_flag) 1081 u64 iopte_flag)
1077{ 1082{
1078 unsigned long phys_addr = is_kernel_addr(virt_addr) ? __pa(virt_addr) 1083 unsigned long phys_addr = is_kernel_addr(virt_addr) ? __pa(virt_addr)
@@ -1091,7 +1096,7 @@ static int dma_sb_map_area_linear(struct ps3_dma_region *r,
1091 */ 1096 */
1092 1097
1093static int dma_sb_unmap_area_linear(struct ps3_dma_region *r, 1098static int dma_sb_unmap_area_linear(struct ps3_dma_region *r,
1094 unsigned long bus_addr, unsigned long len) 1099 dma_addr_t bus_addr, unsigned long len)
1095{ 1100{
1096 return 0; 1101 return 0;
1097}; 1102};
@@ -1169,13 +1174,13 @@ int ps3_dma_region_free(struct ps3_dma_region *r)
1169EXPORT_SYMBOL(ps3_dma_region_free); 1174EXPORT_SYMBOL(ps3_dma_region_free);
1170 1175
1171int ps3_dma_map(struct ps3_dma_region *r, unsigned long virt_addr, 1176int ps3_dma_map(struct ps3_dma_region *r, unsigned long virt_addr,
1172 unsigned long len, unsigned long *bus_addr, 1177 unsigned long len, dma_addr_t *bus_addr,
1173 u64 iopte_flag) 1178 u64 iopte_flag)
1174{ 1179{
1175 return r->region_ops->map(r, virt_addr, len, bus_addr, iopte_flag); 1180 return r->region_ops->map(r, virt_addr, len, bus_addr, iopte_flag);
1176} 1181}
1177 1182
1178int ps3_dma_unmap(struct ps3_dma_region *r, unsigned long bus_addr, 1183int ps3_dma_unmap(struct ps3_dma_region *r, dma_addr_t bus_addr,
1179 unsigned long len) 1184 unsigned long len)
1180{ 1185{
1181 return r->region_ops->unmap(r, bus_addr, len); 1186 return r->region_ops->unmap(r, bus_addr, len);
diff --git a/arch/powerpc/platforms/ps3/os-area.c b/arch/powerpc/platforms/ps3/os-area.c
index 1d201782d4e5..e1c83c23b435 100644
--- a/arch/powerpc/platforms/ps3/os-area.c
+++ b/arch/powerpc/platforms/ps3/os-area.c
@@ -306,7 +306,7 @@ static void _dump_params(const struct os_area_params *p, const char *func,
306{ 306{
307 pr_debug("%s:%d: p.boot_flag: %u\n", func, line, p->boot_flag); 307 pr_debug("%s:%d: p.boot_flag: %u\n", func, line, p->boot_flag);
308 pr_debug("%s:%d: p.num_params: %u\n", func, line, p->num_params); 308 pr_debug("%s:%d: p.num_params: %u\n", func, line, p->num_params);
309 pr_debug("%s:%d: p.rtc_diff %ld\n", func, line, p->rtc_diff); 309 pr_debug("%s:%d: p.rtc_diff %lld\n", func, line, p->rtc_diff);
310 pr_debug("%s:%d: p.av_multi_out %u\n", func, line, p->av_multi_out); 310 pr_debug("%s:%d: p.av_multi_out %u\n", func, line, p->av_multi_out);
311 pr_debug("%s:%d: p.ctrl_button: %u\n", func, line, p->ctrl_button); 311 pr_debug("%s:%d: p.ctrl_button: %u\n", func, line, p->ctrl_button);
312 pr_debug("%s:%d: p.static_ip_addr: %u.%u.%u.%u\n", func, line, 312 pr_debug("%s:%d: p.static_ip_addr: %u.%u.%u.%u\n", func, line,
diff --git a/arch/powerpc/platforms/ps3/repository.c b/arch/powerpc/platforms/ps3/repository.c
index 22063adeb38b..5e304c292f68 100644
--- a/arch/powerpc/platforms/ps3/repository.c
+++ b/arch/powerpc/platforms/ps3/repository.c
@@ -44,7 +44,7 @@ static void _dump_field(const char *hdr, u64 n, const char *func, int line)
44 s[i] = (in[i] <= 126 && in[i] >= 32) ? in[i] : '.'; 44 s[i] = (in[i] <= 126 && in[i] >= 32) ? in[i] : '.';
45 s[i] = 0; 45 s[i] = 0;
46 46
47 pr_debug("%s:%d: %s%016lx : %s\n", func, line, hdr, n, s); 47 pr_debug("%s:%d: %s%016llx : %s\n", func, line, hdr, n, s);
48#endif 48#endif
49} 49}
50 50
@@ -70,8 +70,8 @@ static void _dump_node(unsigned int lpar_id, u64 n1, u64 n2, u64 n3, u64 n4,
70 _dump_field("n2: ", n2, func, line); 70 _dump_field("n2: ", n2, func, line);
71 _dump_field("n3: ", n3, func, line); 71 _dump_field("n3: ", n3, func, line);
72 _dump_field("n4: ", n4, func, line); 72 _dump_field("n4: ", n4, func, line);
73 pr_debug("%s:%d: v1: %016lx\n", func, line, v1); 73 pr_debug("%s:%d: v1: %016llx\n", func, line, v1);
74 pr_debug("%s:%d: v2: %016lx\n", func, line, v2); 74 pr_debug("%s:%d: v2: %016llx\n", func, line, v2);
75} 75}
76 76
77/** 77/**
@@ -149,10 +149,10 @@ static int read_node(unsigned int lpar_id, u64 n1, u64 n2, u64 n3, u64 n4,
149 *_v2 = v2; 149 *_v2 = v2;
150 150
151 if (v1 && !_v1) 151 if (v1 && !_v1)
152 pr_debug("%s:%d: warning: discarding non-zero v1: %016lx\n", 152 pr_debug("%s:%d: warning: discarding non-zero v1: %016llx\n",
153 __func__, __LINE__, v1); 153 __func__, __LINE__, v1);
154 if (v2 && !_v2) 154 if (v2 && !_v2)
155 pr_debug("%s:%d: warning: discarding non-zero v2: %016lx\n", 155 pr_debug("%s:%d: warning: discarding non-zero v2: %016llx\n",
156 __func__, __LINE__, v2); 156 __func__, __LINE__, v2);
157 157
158 return 0; 158 return 0;
@@ -327,7 +327,7 @@ int ps3_repository_find_device(struct ps3_repository_device *repo)
327 return result; 327 return result;
328 } 328 }
329 329
330 pr_debug("%s:%d: bus_type %u, bus_index %u, bus_id %lu, num_dev %u\n", 330 pr_debug("%s:%d: bus_type %u, bus_index %u, bus_id %llu, num_dev %u\n",
331 __func__, __LINE__, tmp.bus_type, tmp.bus_index, tmp.bus_id, 331 __func__, __LINE__, tmp.bus_type, tmp.bus_index, tmp.bus_id,
332 num_dev); 332 num_dev);
333 333
@@ -353,7 +353,7 @@ int ps3_repository_find_device(struct ps3_repository_device *repo)
353 return result; 353 return result;
354 } 354 }
355 355
356 pr_debug("%s:%d: found: dev_type %u, dev_index %u, dev_id %lu\n", 356 pr_debug("%s:%d: found: dev_type %u, dev_index %u, dev_id %llu\n",
357 __func__, __LINE__, tmp.dev_type, tmp.dev_index, tmp.dev_id); 357 __func__, __LINE__, tmp.dev_type, tmp.dev_index, tmp.dev_id);
358 358
359 *repo = tmp; 359 *repo = tmp;
@@ -367,7 +367,7 @@ int ps3_repository_find_device_by_id(struct ps3_repository_device *repo,
367 struct ps3_repository_device tmp; 367 struct ps3_repository_device tmp;
368 unsigned int num_dev; 368 unsigned int num_dev;
369 369
370 pr_debug(" -> %s:%u: find device by id %lu:%lu\n", __func__, __LINE__, 370 pr_debug(" -> %s:%u: find device by id %llu:%llu\n", __func__, __LINE__,
371 bus_id, dev_id); 371 bus_id, dev_id);
372 372
373 for (tmp.bus_index = 0; tmp.bus_index < 10; tmp.bus_index++) { 373 for (tmp.bus_index = 0; tmp.bus_index < 10; tmp.bus_index++) {
@@ -382,7 +382,7 @@ int ps3_repository_find_device_by_id(struct ps3_repository_device *repo,
382 if (tmp.bus_id == bus_id) 382 if (tmp.bus_id == bus_id)
383 goto found_bus; 383 goto found_bus;
384 384
385 pr_debug("%s:%u: skip, bus_id %lu\n", __func__, __LINE__, 385 pr_debug("%s:%u: skip, bus_id %llu\n", __func__, __LINE__,
386 tmp.bus_id); 386 tmp.bus_id);
387 } 387 }
388 pr_debug(" <- %s:%u: bus not found\n", __func__, __LINE__); 388 pr_debug(" <- %s:%u: bus not found\n", __func__, __LINE__);
@@ -416,7 +416,7 @@ found_bus:
416 if (tmp.dev_id == dev_id) 416 if (tmp.dev_id == dev_id)
417 goto found_dev; 417 goto found_dev;
418 418
419 pr_debug("%s:%u: skip, dev_id %lu\n", __func__, __LINE__, 419 pr_debug("%s:%u: skip, dev_id %llu\n", __func__, __LINE__,
420 tmp.dev_id); 420 tmp.dev_id);
421 } 421 }
422 pr_debug(" <- %s:%u: dev not found\n", __func__, __LINE__); 422 pr_debug(" <- %s:%u: dev not found\n", __func__, __LINE__);
@@ -430,7 +430,7 @@ found_dev:
430 return result; 430 return result;
431 } 431 }
432 432
433 pr_debug(" <- %s:%u: found: type (%u:%u) index (%u:%u) id (%lu:%lu)\n", 433 pr_debug(" <- %s:%u: found: type (%u:%u) index (%u:%u) id (%llu:%llu)\n",
434 __func__, __LINE__, tmp.bus_type, tmp.dev_type, tmp.bus_index, 434 __func__, __LINE__, tmp.bus_type, tmp.dev_type, tmp.bus_index,
435 tmp.dev_index, tmp.bus_id, tmp.dev_id); 435 tmp.dev_index, tmp.bus_id, tmp.dev_id);
436 *repo = tmp; 436 *repo = tmp;
diff --git a/arch/powerpc/platforms/ps3/setup.c b/arch/powerpc/platforms/ps3/setup.c
index 35f3e85cf60e..3331ccbb8d38 100644
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
@@ -186,7 +186,7 @@ early_param("ps3flash", early_parse_ps3flash);
186#define prealloc_ps3flash_bounce_buffer() do { } while (0) 186#define prealloc_ps3flash_bounce_buffer() do { } while (0)
187#endif 187#endif
188 188
189static int ps3_set_dabr(u64 dabr) 189static int ps3_set_dabr(unsigned long dabr)
190{ 190{
191 enum {DABR_USER = 1, DABR_KERNEL = 2,}; 191 enum {DABR_USER = 1, DABR_KERNEL = 2,};
192 192
diff --git a/arch/powerpc/platforms/ps3/spu.c b/arch/powerpc/platforms/ps3/spu.c
index ccae3d446b98..b3c6a993f9f3 100644
--- a/arch/powerpc/platforms/ps3/spu.c
+++ b/arch/powerpc/platforms/ps3/spu.c
@@ -149,7 +149,7 @@ EXPORT_SYMBOL_GPL(ps3_get_spe_id);
149 149
150static unsigned long get_vas_id(void) 150static unsigned long get_vas_id(void)
151{ 151{
152 unsigned long id; 152 u64 id;
153 153
154 lv1_get_logical_ppe_id(&id); 154 lv1_get_logical_ppe_id(&id);
155 lv1_get_virtual_address_space_id_of_ppe(id, &id); 155 lv1_get_virtual_address_space_id_of_ppe(id, &id);
@@ -160,14 +160,18 @@ static unsigned long get_vas_id(void)
160static int __init construct_spu(struct spu *spu) 160static int __init construct_spu(struct spu *spu)
161{ 161{
162 int result; 162 int result;
163 unsigned long unused; 163 u64 unused;
164 u64 problem_phys;
165 u64 local_store_phys;
164 166
165 result = lv1_construct_logical_spe(PAGE_SHIFT, PAGE_SHIFT, PAGE_SHIFT, 167 result = lv1_construct_logical_spe(PAGE_SHIFT, PAGE_SHIFT, PAGE_SHIFT,
166 PAGE_SHIFT, PAGE_SHIFT, get_vas_id(), SPE_TYPE_LOGICAL, 168 PAGE_SHIFT, PAGE_SHIFT, get_vas_id(), SPE_TYPE_LOGICAL,
167 &spu_pdata(spu)->priv2_addr, &spu->problem_phys, 169 &spu_pdata(spu)->priv2_addr, &problem_phys,
168 &spu->local_store_phys, &unused, 170 &local_store_phys, &unused,
169 &spu_pdata(spu)->shadow_addr, 171 &spu_pdata(spu)->shadow_addr,
170 &spu_pdata(spu)->spe_id); 172 &spu_pdata(spu)->spe_id);
173 spu->problem_phys = problem_phys;
174 spu->local_store_phys = local_store_phys;
171 175
172 if (result) { 176 if (result) {
173 pr_debug("%s:%d: lv1_construct_logical_spe failed: %s\n", 177 pr_debug("%s:%d: lv1_construct_logical_spe failed: %s\n",
diff --git a/arch/powerpc/platforms/ps3/system-bus.c b/arch/powerpc/platforms/ps3/system-bus.c
index ee0d22911621..58311a867851 100644
--- a/arch/powerpc/platforms/ps3/system-bus.c
+++ b/arch/powerpc/platforms/ps3/system-bus.c
@@ -182,7 +182,7 @@ int ps3_open_hv_device(struct ps3_system_bus_device *dev)
182 case PS3_MATCH_ID_SYSTEM_MANAGER: 182 case PS3_MATCH_ID_SYSTEM_MANAGER:
183 pr_debug("%s:%d: unsupported match_id: %u\n", __func__, 183 pr_debug("%s:%d: unsupported match_id: %u\n", __func__,
184 __LINE__, dev->match_id); 184 __LINE__, dev->match_id);
185 pr_debug("%s:%d: bus_id: %lu\n", __func__, __LINE__, 185 pr_debug("%s:%d: bus_id: %llu\n", __func__, __LINE__,
186 dev->bus_id); 186 dev->bus_id);
187 BUG(); 187 BUG();
188 return -EINVAL; 188 return -EINVAL;
@@ -220,7 +220,7 @@ int ps3_close_hv_device(struct ps3_system_bus_device *dev)
220 case PS3_MATCH_ID_SYSTEM_MANAGER: 220 case PS3_MATCH_ID_SYSTEM_MANAGER:
221 pr_debug("%s:%d: unsupported match_id: %u\n", __func__, 221 pr_debug("%s:%d: unsupported match_id: %u\n", __func__,
222 __LINE__, dev->match_id); 222 __LINE__, dev->match_id);
223 pr_debug("%s:%d: bus_id: %lu\n", __func__, __LINE__, 223 pr_debug("%s:%d: bus_id: %llu\n", __func__, __LINE__,
224 dev->bus_id); 224 dev->bus_id);
225 BUG(); 225 BUG();
226 return -EINVAL; 226 return -EINVAL;
@@ -240,7 +240,7 @@ EXPORT_SYMBOL_GPL(ps3_close_hv_device);
240static void _dump_mmio_region(const struct ps3_mmio_region* r, 240static void _dump_mmio_region(const struct ps3_mmio_region* r,
241 const char* func, int line) 241 const char* func, int line)
242{ 242{
243 pr_debug("%s:%d: dev %lu:%lu\n", func, line, r->dev->bus_id, 243 pr_debug("%s:%d: dev %llu:%llu\n", func, line, r->dev->bus_id,
244 r->dev->dev_id); 244 r->dev->dev_id);
245 pr_debug("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr); 245 pr_debug("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr);
246 pr_debug("%s:%d: len %lxh\n", func, line, r->len); 246 pr_debug("%s:%d: len %lxh\n", func, line, r->len);
@@ -250,9 +250,11 @@ static void _dump_mmio_region(const struct ps3_mmio_region* r,
250static int ps3_sb_mmio_region_create(struct ps3_mmio_region *r) 250static int ps3_sb_mmio_region_create(struct ps3_mmio_region *r)
251{ 251{
252 int result; 252 int result;
253 u64 lpar_addr;
253 254
254 result = lv1_map_device_mmio_region(r->dev->bus_id, r->dev->dev_id, 255 result = lv1_map_device_mmio_region(r->dev->bus_id, r->dev->dev_id,
255 r->bus_addr, r->len, r->page_size, &r->lpar_addr); 256 r->bus_addr, r->len, r->page_size, &lpar_addr);
257 r->lpar_addr = lpar_addr;
256 258
257 if (result) { 259 if (result) {
258 pr_debug("%s:%d: lv1_map_device_mmio_region failed: %s\n", 260 pr_debug("%s:%d: lv1_map_device_mmio_region failed: %s\n",
@@ -568,7 +570,7 @@ static dma_addr_t ps3_sb_map_page(struct device *_dev, struct page *page,
568{ 570{
569 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev); 571 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
570 int result; 572 int result;
571 unsigned long bus_addr; 573 dma_addr_t bus_addr;
572 void *ptr = page_address(page) + offset; 574 void *ptr = page_address(page) + offset;
573 575
574 result = ps3_dma_map(dev->d_region, (unsigned long)ptr, size, 576 result = ps3_dma_map(dev->d_region, (unsigned long)ptr, size,
@@ -590,7 +592,7 @@ static dma_addr_t ps3_ioc0_map_page(struct device *_dev, struct page *page,
590{ 592{
591 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev); 593 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
592 int result; 594 int result;
593 unsigned long bus_addr; 595 dma_addr_t bus_addr;
594 u64 iopte_flag; 596 u64 iopte_flag;
595 void *ptr = page_address(page) + offset; 597 void *ptr = page_address(page) + offset;
596 598
diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c b/arch/powerpc/platforms/pseries/hotplug-memory.c
index a623ad256e9e..9b21ee68ea50 100644
--- a/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ b/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -14,6 +14,7 @@
14#include <asm/firmware.h> 14#include <asm/firmware.h>
15#include <asm/machdep.h> 15#include <asm/machdep.h>
16#include <asm/pSeries_reconfig.h> 16#include <asm/pSeries_reconfig.h>
17#include <asm/sparsemem.h>
17 18
18static int pseries_remove_lmb(unsigned long base, unsigned int lmb_size) 19static int pseries_remove_lmb(unsigned long base, unsigned int lmb_size)
19{ 20{
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
index c90817acb472..3ee01b4f4257 100644
--- a/arch/powerpc/platforms/pseries/iommu.c
+++ b/arch/powerpc/platforms/pseries/iommu.c
@@ -127,10 +127,10 @@ static int tce_build_pSeriesLP(struct iommu_table *tbl, long tcenum,
127 } 127 }
128 128
129 if (rc && printk_ratelimit()) { 129 if (rc && printk_ratelimit()) {
130 printk("tce_build_pSeriesLP: plpar_tce_put failed. rc=%ld\n", rc); 130 printk("tce_build_pSeriesLP: plpar_tce_put failed. rc=%lld\n", rc);
131 printk("\tindex = 0x%lx\n", (u64)tbl->it_index); 131 printk("\tindex = 0x%llx\n", (u64)tbl->it_index);
132 printk("\ttcenum = 0x%lx\n", (u64)tcenum); 132 printk("\ttcenum = 0x%llx\n", (u64)tcenum);
133 printk("\ttce val = 0x%lx\n", tce ); 133 printk("\ttce val = 0x%llx\n", tce );
134 show_stack(current, (unsigned long *)__get_SP()); 134 show_stack(current, (unsigned long *)__get_SP());
135 } 135 }
136 136
@@ -210,10 +210,10 @@ static int tce_buildmulti_pSeriesLP(struct iommu_table *tbl, long tcenum,
210 } 210 }
211 211
212 if (rc && printk_ratelimit()) { 212 if (rc && printk_ratelimit()) {
213 printk("tce_buildmulti_pSeriesLP: plpar_tce_put failed. rc=%ld\n", rc); 213 printk("tce_buildmulti_pSeriesLP: plpar_tce_put failed. rc=%lld\n", rc);
214 printk("\tindex = 0x%lx\n", (u64)tbl->it_index); 214 printk("\tindex = 0x%llx\n", (u64)tbl->it_index);
215 printk("\tnpages = 0x%lx\n", (u64)npages); 215 printk("\tnpages = 0x%llx\n", (u64)npages);
216 printk("\ttce[0] val = 0x%lx\n", tcep[0]); 216 printk("\ttce[0] val = 0x%llx\n", tcep[0]);
217 show_stack(current, (unsigned long *)__get_SP()); 217 show_stack(current, (unsigned long *)__get_SP());
218 } 218 }
219 return ret; 219 return ret;
@@ -227,9 +227,9 @@ static void tce_free_pSeriesLP(struct iommu_table *tbl, long tcenum, long npages
227 rc = plpar_tce_put((u64)tbl->it_index, (u64)tcenum << 12, 0); 227 rc = plpar_tce_put((u64)tbl->it_index, (u64)tcenum << 12, 0);
228 228
229 if (rc && printk_ratelimit()) { 229 if (rc && printk_ratelimit()) {
230 printk("tce_free_pSeriesLP: plpar_tce_put failed. rc=%ld\n", rc); 230 printk("tce_free_pSeriesLP: plpar_tce_put failed. rc=%lld\n", rc);
231 printk("\tindex = 0x%lx\n", (u64)tbl->it_index); 231 printk("\tindex = 0x%llx\n", (u64)tbl->it_index);
232 printk("\ttcenum = 0x%lx\n", (u64)tcenum); 232 printk("\ttcenum = 0x%llx\n", (u64)tcenum);
233 show_stack(current, (unsigned long *)__get_SP()); 233 show_stack(current, (unsigned long *)__get_SP());
234 } 234 }
235 235
@@ -246,9 +246,9 @@ static void tce_freemulti_pSeriesLP(struct iommu_table *tbl, long tcenum, long n
246 246
247 if (rc && printk_ratelimit()) { 247 if (rc && printk_ratelimit()) {
248 printk("tce_freemulti_pSeriesLP: plpar_tce_stuff failed\n"); 248 printk("tce_freemulti_pSeriesLP: plpar_tce_stuff failed\n");
249 printk("\trc = %ld\n", rc); 249 printk("\trc = %lld\n", rc);
250 printk("\tindex = 0x%lx\n", (u64)tbl->it_index); 250 printk("\tindex = 0x%llx\n", (u64)tbl->it_index);
251 printk("\tnpages = 0x%lx\n", (u64)npages); 251 printk("\tnpages = 0x%llx\n", (u64)npages);
252 show_stack(current, (unsigned long *)__get_SP()); 252 show_stack(current, (unsigned long *)__get_SP());
253 } 253 }
254} 254}
@@ -261,10 +261,9 @@ static unsigned long tce_get_pSeriesLP(struct iommu_table *tbl, long tcenum)
261 rc = plpar_tce_get((u64)tbl->it_index, (u64)tcenum << 12, &tce_ret); 261 rc = plpar_tce_get((u64)tbl->it_index, (u64)tcenum << 12, &tce_ret);
262 262
263 if (rc && printk_ratelimit()) { 263 if (rc && printk_ratelimit()) {
264 printk("tce_get_pSeriesLP: plpar_tce_get failed. rc=%ld\n", 264 printk("tce_get_pSeriesLP: plpar_tce_get failed. rc=%lld\n", rc);
265 rc); 265 printk("\tindex = 0x%llx\n", (u64)tbl->it_index);
266 printk("\tindex = 0x%lx\n", (u64)tbl->it_index); 266 printk("\ttcenum = 0x%llx\n", (u64)tcenum);
267 printk("\ttcenum = 0x%lx\n", (u64)tcenum);
268 show_stack(current, (unsigned long *)__get_SP()); 267 show_stack(current, (unsigned long *)__get_SP());
269 } 268 }
270 269
diff --git a/arch/powerpc/platforms/pseries/phyp_dump.c b/arch/powerpc/platforms/pseries/phyp_dump.c
index 6cf35cd8d0b5..15eb6107bcd2 100644
--- a/arch/powerpc/platforms/pseries/phyp_dump.c
+++ b/arch/powerpc/platforms/pseries/phyp_dump.c
@@ -144,8 +144,8 @@ static void print_dump_header(const struct phyp_dump_header *ph)
144 ph->first_offset_section); 144 ph->first_offset_section);
145 printk(KERN_INFO "dump disk sections should be zero\n"); 145 printk(KERN_INFO "dump disk sections should be zero\n");
146 printk(KERN_INFO "dump disk section = %d\n", ph->dump_disk_section); 146 printk(KERN_INFO "dump disk section = %d\n", ph->dump_disk_section);
147 printk(KERN_INFO "block num = %ld\n", ph->block_num_dd); 147 printk(KERN_INFO "block num = %lld\n", ph->block_num_dd);
148 printk(KERN_INFO "number of blocks = %ld\n", ph->num_of_blocks_dd); 148 printk(KERN_INFO "number of blocks = %lld\n", ph->num_of_blocks_dd);
149 printk(KERN_INFO "dump disk offset = %d\n", ph->offset_dd); 149 printk(KERN_INFO "dump disk offset = %d\n", ph->offset_dd);
150 printk(KERN_INFO "Max auto time= %d\n", ph->maxtime_to_auto); 150 printk(KERN_INFO "Max auto time= %d\n", ph->maxtime_to_auto);
151 151
@@ -154,33 +154,33 @@ static void print_dump_header(const struct phyp_dump_header *ph)
154 printk(KERN_INFO "cpu dump_flags =%d\n", ph->cpu_data.dump_flags); 154 printk(KERN_INFO "cpu dump_flags =%d\n", ph->cpu_data.dump_flags);
155 printk(KERN_INFO "cpu source_type =%d\n", ph->cpu_data.source_type); 155 printk(KERN_INFO "cpu source_type =%d\n", ph->cpu_data.source_type);
156 printk(KERN_INFO "cpu error_flags =%d\n", ph->cpu_data.error_flags); 156 printk(KERN_INFO "cpu error_flags =%d\n", ph->cpu_data.error_flags);
157 printk(KERN_INFO "cpu source_address =%lx\n", 157 printk(KERN_INFO "cpu source_address =%llx\n",
158 ph->cpu_data.source_address); 158 ph->cpu_data.source_address);
159 printk(KERN_INFO "cpu source_length =%lx\n", 159 printk(KERN_INFO "cpu source_length =%llx\n",
160 ph->cpu_data.source_length); 160 ph->cpu_data.source_length);
161 printk(KERN_INFO "cpu length_copied =%lx\n", 161 printk(KERN_INFO "cpu length_copied =%llx\n",
162 ph->cpu_data.length_copied); 162 ph->cpu_data.length_copied);
163 163
164 printk(KERN_INFO " HPTE AREA \n"); 164 printk(KERN_INFO " HPTE AREA \n");
165 printk(KERN_INFO "HPTE dump_flags =%d\n", ph->hpte_data.dump_flags); 165 printk(KERN_INFO "HPTE dump_flags =%d\n", ph->hpte_data.dump_flags);
166 printk(KERN_INFO "HPTE source_type =%d\n", ph->hpte_data.source_type); 166 printk(KERN_INFO "HPTE source_type =%d\n", ph->hpte_data.source_type);
167 printk(KERN_INFO "HPTE error_flags =%d\n", ph->hpte_data.error_flags); 167 printk(KERN_INFO "HPTE error_flags =%d\n", ph->hpte_data.error_flags);
168 printk(KERN_INFO "HPTE source_address =%lx\n", 168 printk(KERN_INFO "HPTE source_address =%llx\n",
169 ph->hpte_data.source_address); 169 ph->hpte_data.source_address);
170 printk(KERN_INFO "HPTE source_length =%lx\n", 170 printk(KERN_INFO "HPTE source_length =%llx\n",
171 ph->hpte_data.source_length); 171 ph->hpte_data.source_length);
172 printk(KERN_INFO "HPTE length_copied =%lx\n", 172 printk(KERN_INFO "HPTE length_copied =%llx\n",
173 ph->hpte_data.length_copied); 173 ph->hpte_data.length_copied);
174 174
175 printk(KERN_INFO " SRSD AREA \n"); 175 printk(KERN_INFO " SRSD AREA \n");
176 printk(KERN_INFO "SRSD dump_flags =%d\n", ph->kernel_data.dump_flags); 176 printk(KERN_INFO "SRSD dump_flags =%d\n", ph->kernel_data.dump_flags);
177 printk(KERN_INFO "SRSD source_type =%d\n", ph->kernel_data.source_type); 177 printk(KERN_INFO "SRSD source_type =%d\n", ph->kernel_data.source_type);
178 printk(KERN_INFO "SRSD error_flags =%d\n", ph->kernel_data.error_flags); 178 printk(KERN_INFO "SRSD error_flags =%d\n", ph->kernel_data.error_flags);
179 printk(KERN_INFO "SRSD source_address =%lx\n", 179 printk(KERN_INFO "SRSD source_address =%llx\n",
180 ph->kernel_data.source_address); 180 ph->kernel_data.source_address);
181 printk(KERN_INFO "SRSD source_length =%lx\n", 181 printk(KERN_INFO "SRSD source_length =%llx\n",
182 ph->kernel_data.source_length); 182 ph->kernel_data.source_length);
183 printk(KERN_INFO "SRSD length_copied =%lx\n", 183 printk(KERN_INFO "SRSD length_copied =%llx\n",
184 ph->kernel_data.length_copied); 184 ph->kernel_data.length_copied);
185#endif 185#endif
186} 186}
@@ -367,8 +367,8 @@ static ssize_t show_release_region(struct kobject *kobj,
367 /* total reserved size - start of scratch area */ 367 /* total reserved size - start of scratch area */
368 second_addr_range = phyp_dump_info->init_reserve_size - 368 second_addr_range = phyp_dump_info->init_reserve_size -
369 phyp_dump_info->reserved_scratch_size; 369 phyp_dump_info->reserved_scratch_size;
370 return sprintf(buf, "CPU:0x%lx-0x%lx: HPTE:0x%lx-0x%lx:" 370 return sprintf(buf, "CPU:0x%llx-0x%llx: HPTE:0x%llx-0x%llx:"
371 " DUMP:0x%lx-0x%lx, 0x%lx-0x%lx:\n", 371 " DUMP:0x%llx-0x%llx, 0x%lx-0x%llx:\n",
372 phdr.cpu_data.destination_address, 372 phdr.cpu_data.destination_address,
373 phdr.cpu_data.length_copied, 373 phdr.cpu_data.length_copied,
374 phdr.hpte_data.destination_address, 374 phdr.hpte_data.destination_address,
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index 84e058f1e1cc..80b513449f4c 100644
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
@@ -153,9 +153,10 @@ static int get_irq_server(unsigned int virq, unsigned int strict_check)
153{ 153{
154 int server; 154 int server;
155 /* For the moment only implement delivery to all cpus or one cpu */ 155 /* For the moment only implement delivery to all cpus or one cpu */
156 cpumask_t cpumask = irq_desc[virq].affinity; 156 cpumask_t cpumask;
157 cpumask_t tmp = CPU_MASK_NONE; 157 cpumask_t tmp = CPU_MASK_NONE;
158 158
159 cpumask_copy(&cpumask, irq_desc[virq].affinity);
159 if (!distribute_irqs) 160 if (!distribute_irqs)
160 return default_server; 161 return default_server;
161 162
@@ -869,7 +870,7 @@ void xics_migrate_irqs_away(void)
869 virq, cpu); 870 virq, cpu);
870 871
871 /* Reset affinity to all cpus */ 872 /* Reset affinity to all cpus */
872 irq_desc[virq].affinity = CPU_MASK_ALL; 873 cpumask_setall(irq_desc[virq].affinity);
873 desc->chip->set_affinity(virq, cpu_all_mask); 874 desc->chip->set_affinity(virq, cpu_all_mask);
874unlock: 875unlock:
875 spin_unlock_irqrestore(&desc->lock, flags); 876 spin_unlock_irqrestore(&desc->lock, flags);
diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c
index b16ca3ed65d2..78f1f7cca0a0 100644
--- a/arch/powerpc/sysdev/cpm2_pic.c
+++ b/arch/powerpc/sysdev/cpm2_pic.c
@@ -165,7 +165,7 @@ static int cpm2_set_irq_type(unsigned int virq, unsigned int flow_type)
165 edibit = (14 - (src - CPM2_IRQ_EXT1)); 165 edibit = (14 - (src - CPM2_IRQ_EXT1));
166 else 166 else
167 if (src >= CPM2_IRQ_PORTC15 && src <= CPM2_IRQ_PORTC0) 167 if (src >= CPM2_IRQ_PORTC15 && src <= CPM2_IRQ_PORTC0)
168 edibit = (31 - (src - CPM2_IRQ_PORTC15)); 168 edibit = (31 - (CPM2_IRQ_PORTC0 - src));
169 else 169 else
170 return (flow_type & IRQ_TYPE_LEVEL_LOW) ? 0 : -EINVAL; 170 return (flow_type & IRQ_TYPE_LEVEL_LOW) ? 0 : -EINVAL;
171 171
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index f611d0369cc8..9817f63723dd 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -28,63 +28,104 @@
28#include <sysdev/fsl_pci.h> 28#include <sysdev/fsl_pci.h>
29 29
30#if defined(CONFIG_PPC_85xx) || defined(CONFIG_PPC_86xx) 30#if defined(CONFIG_PPC_85xx) || defined(CONFIG_PPC_86xx)
31static int __init setup_one_atmu(struct ccsr_pci __iomem *pci,
32 unsigned int index, const struct resource *res,
33 resource_size_t offset)
34{
35 resource_size_t pci_addr = res->start - offset;
36 resource_size_t phys_addr = res->start;
37 resource_size_t size = res->end - res->start + 1;
38 u32 flags = 0x80044000; /* enable & mem R/W */
39 unsigned int i;
40
41 pr_debug("PCI MEM resource start 0x%016llx, size 0x%016llx.\n",
42 (u64)res->start, (u64)size);
43
44 if (res->flags & IORESOURCE_PREFETCH)
45 flags |= 0x10000000; /* enable relaxed ordering */
46
47 for (i = 0; size > 0; i++) {
48 unsigned int bits = min(__ilog2(size),
49 __ffs(pci_addr | phys_addr));
50
51 if (index + i >= 5)
52 return -1;
53
54 out_be32(&pci->pow[index + i].potar, pci_addr >> 12);
55 out_be32(&pci->pow[index + i].potear, (u64)pci_addr >> 44);
56 out_be32(&pci->pow[index + i].powbar, phys_addr >> 12);
57 out_be32(&pci->pow[index + i].powar, flags | (bits - 1));
58
59 pci_addr += (resource_size_t)1U << bits;
60 phys_addr += (resource_size_t)1U << bits;
61 size -= (resource_size_t)1U << bits;
62 }
63
64 return i;
65}
66
31/* atmu setup for fsl pci/pcie controller */ 67/* atmu setup for fsl pci/pcie controller */
32static void __init setup_pci_atmu(struct pci_controller *hose, 68static void __init setup_pci_atmu(struct pci_controller *hose,
33 struct resource *rsrc) 69 struct resource *rsrc)
34{ 70{
35 struct ccsr_pci __iomem *pci; 71 struct ccsr_pci __iomem *pci;
36 int i; 72 int i, j, n;
37 73
38 pr_debug("PCI memory map start 0x%016llx, size 0x%016llx\n", 74 pr_debug("PCI memory map start 0x%016llx, size 0x%016llx\n",
39 (u64)rsrc->start, (u64)rsrc->end - (u64)rsrc->start + 1); 75 (u64)rsrc->start, (u64)rsrc->end - (u64)rsrc->start + 1);
40 pci = ioremap(rsrc->start, rsrc->end - rsrc->start + 1); 76 pci = ioremap(rsrc->start, rsrc->end - rsrc->start + 1);
77 if (!pci) {
78 dev_err(hose->parent, "Unable to map ATMU registers\n");
79 return;
80 }
41 81
42 /* Disable all windows (except powar0 since its ignored) */ 82 /* Disable all windows (except powar0 since it's ignored) */
43 for(i = 1; i < 5; i++) 83 for(i = 1; i < 5; i++)
44 out_be32(&pci->pow[i].powar, 0); 84 out_be32(&pci->pow[i].powar, 0);
45 for(i = 0; i < 3; i++) 85 for(i = 0; i < 3; i++)
46 out_be32(&pci->piw[i].piwar, 0); 86 out_be32(&pci->piw[i].piwar, 0);
47 87
48 /* Setup outbound MEM window */ 88 /* Setup outbound MEM window */
49 for(i = 0; i < 3; i++) 89 for(i = 0, j = 1; i < 3; i++) {
50 if (hose->mem_resources[i].flags & IORESOURCE_MEM){ 90 if (!(hose->mem_resources[i].flags & IORESOURCE_MEM))
51 resource_size_t pci_addr_start = 91 continue;
52 hose->mem_resources[i].start - 92
53 hose->pci_mem_offset; 93 n = setup_one_atmu(pci, j, &hose->mem_resources[i],
54 pr_debug("PCI MEM resource start 0x%016llx, size 0x%016llx.\n", 94 hose->pci_mem_offset);
55 (u64)hose->mem_resources[i].start, 95
56 (u64)hose->mem_resources[i].end 96 if (n < 0 || j >= 5) {
57 - (u64)hose->mem_resources[i].start + 1); 97 pr_err("Ran out of outbound PCI ATMUs for resource %d!\n", i);
58 out_be32(&pci->pow[i+1].potar, (pci_addr_start >> 12)); 98 hose->mem_resources[i].flags |= IORESOURCE_DISABLED;
59 out_be32(&pci->pow[i+1].potear, 0); 99 } else
60 out_be32(&pci->pow[i+1].powbar, 100 j += n;
61 (hose->mem_resources[i].start >> 12)); 101 }
62 /* Enable, Mem R/W */
63 out_be32(&pci->pow[i+1].powar, 0x80044000
64 | (__ilog2(hose->mem_resources[i].end
65 - hose->mem_resources[i].start + 1) - 1));
66 }
67 102
68 /* Setup outbound IO window */ 103 /* Setup outbound IO window */
69 if (hose->io_resource.flags & IORESOURCE_IO){ 104 if (hose->io_resource.flags & IORESOURCE_IO) {
70 pr_debug("PCI IO resource start 0x%016llx, size 0x%016llx, " 105 if (j >= 5) {
71 "phy base 0x%016llx.\n", 106 pr_err("Ran out of outbound PCI ATMUs for IO resource\n");
72 (u64)hose->io_resource.start, 107 } else {
73 (u64)hose->io_resource.end - (u64)hose->io_resource.start + 1, 108 pr_debug("PCI IO resource start 0x%016llx, size 0x%016llx, "
74 (u64)hose->io_base_phys); 109 "phy base 0x%016llx.\n",
75 out_be32(&pci->pow[i+1].potar, (hose->io_resource.start >> 12)); 110 (u64)hose->io_resource.start,
76 out_be32(&pci->pow[i+1].potear, 0); 111 (u64)hose->io_resource.end - (u64)hose->io_resource.start + 1,
77 out_be32(&pci->pow[i+1].powbar, (hose->io_base_phys >> 12)); 112 (u64)hose->io_base_phys);
78 /* Enable, IO R/W */ 113 out_be32(&pci->pow[j].potar, (hose->io_resource.start >> 12));
79 out_be32(&pci->pow[i+1].powar, 0x80088000 114 out_be32(&pci->pow[j].potear, 0);
80 | (__ilog2(hose->io_resource.end 115 out_be32(&pci->pow[j].powbar, (hose->io_base_phys >> 12));
81 - hose->io_resource.start + 1) - 1)); 116 /* Enable, IO R/W */
117 out_be32(&pci->pow[j].powar, 0x80088000
118 | (__ilog2(hose->io_resource.end
119 - hose->io_resource.start + 1) - 1));
120 }
82 } 121 }
83 122
84 /* Setup 2G inbound Memory Window @ 1 */ 123 /* Setup 2G inbound Memory Window @ 1 */
85 out_be32(&pci->piw[2].pitar, 0x00000000); 124 out_be32(&pci->piw[2].pitar, 0x00000000);
86 out_be32(&pci->piw[2].piwbar,0x00000000); 125 out_be32(&pci->piw[2].piwbar,0x00000000);
87 out_be32(&pci->piw[2].piwar, PIWAR_2G); 126 out_be32(&pci->piw[2].piwar, PIWAR_2G);
127
128 iounmap(pci);
88} 129}
89 130
90static void __init setup_pci_cmd(struct pci_controller *hose) 131static void __init setup_pci_cmd(struct pci_controller *hose)
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index 88a983ece5c9..9a89cd3e80a2 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -890,7 +890,7 @@ unsigned int ipic_get_irq(void)
890 return irq_linear_revmap(primary_ipic->irqhost, irq); 890 return irq_linear_revmap(primary_ipic->irqhost, irq);
891} 891}
892 892
893#ifdef CONFIG_PM 893#ifdef CONFIG_SUSPEND
894static struct { 894static struct {
895 u32 sicfr; 895 u32 sicfr;
896 u32 siprr[2]; 896 u32 siprr[2];
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 3e0d89dcdba2..532e205303a2 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -435,7 +435,7 @@ static void __init mpic_scan_ht_msi(struct mpic *mpic, u8 __iomem *devbase,
435 addr = addr | ((u64)readl(base + HT_MSI_ADDR_HI) << 32); 435 addr = addr | ((u64)readl(base + HT_MSI_ADDR_HI) << 32);
436 } 436 }
437 437
438 printk(KERN_DEBUG "mpic: - HT:%02x.%x %s MSI mapping found @ 0x%lx\n", 438 printk(KERN_DEBUG "mpic: - HT:%02x.%x %s MSI mapping found @ 0x%llx\n",
439 PCI_SLOT(devfn), PCI_FUNC(devfn), 439 PCI_SLOT(devfn), PCI_FUNC(devfn),
440 flags & HT_MSI_FLAGS_ENABLE ? "enabled" : "disabled", addr); 440 flags & HT_MSI_FLAGS_ENABLE ? "enabled" : "disabled", addr);
441 441
@@ -566,9 +566,10 @@ static void __init mpic_scan_ht_pics(struct mpic *mpic)
566#ifdef CONFIG_SMP 566#ifdef CONFIG_SMP
567static int irq_choose_cpu(unsigned int virt_irq) 567static int irq_choose_cpu(unsigned int virt_irq)
568{ 568{
569 cpumask_t mask = irq_desc[virt_irq].affinity; 569 cpumask_t mask;
570 int cpuid; 570 int cpuid;
571 571
572 cpumask_copy(&mask, irq_desc[virt_irq].affinity);
572 if (cpus_equal(mask, CPU_MASK_ALL)) { 573 if (cpus_equal(mask, CPU_MASK_ALL)) {
573 static int irq_rover; 574 static int irq_rover;
574 static DEFINE_SPINLOCK(irq_rover_lock); 575 static DEFINE_SPINLOCK(irq_rover_lock);
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c
index 77fae5f64f2e..5558d932b4d5 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -204,6 +204,23 @@ static int __init ppc4xx_setup_one_pci_PMM(struct pci_controller *hose,
204{ 204{
205 u32 ma, pcila, pciha; 205 u32 ma, pcila, pciha;
206 206
207 /* Hack warning ! The "old" PCI 2.x cell only let us configure the low
208 * 32-bit of incoming PLB addresses. The top 4 bits of the 36-bit
209 * address are actually hard wired to a value that appears to depend
210 * on the specific SoC. For example, it's 0 on 440EP and 1 on 440EPx.
211 *
212 * The trick here is we just crop those top bits and ignore them when
213 * programming the chip. That means the device-tree has to be right
214 * for the specific part used (we don't print a warning if it's wrong
215 * but on the other hand, you'll crash quickly enough), but at least
216 * this code should work whatever the hard coded value is
217 */
218 plb_addr &= 0xffffffffull;
219
220 /* Note: Due to the above hack, the test below doesn't actually test
221 * if you address is above 4G, but it tests that address and
222 * (address + size) are both contained in the same 4G
223 */
207 if ((plb_addr + size) > 0xffffffffull || !is_power_of_2(size) || 224 if ((plb_addr + size) > 0xffffffffull || !is_power_of_2(size) ||
208 size < 0x1000 || (plb_addr & (size - 1)) != 0) { 225 size < 0x1000 || (plb_addr & (size - 1)) != 0) {
209 printk(KERN_WARNING "%s: Resource out of range\n", 226 printk(KERN_WARNING "%s: Resource out of range\n",
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index a94a3c3ae932..6b0a3538dc63 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -77,6 +77,7 @@ mainmenu "Linux Kernel Configuration"
77config S390 77config S390
78 def_bool y 78 def_bool y
79 select USE_GENERIC_SMP_HELPERS if SMP 79 select USE_GENERIC_SMP_HELPERS if SMP
80 select HAVE_SYSCALL_WRAPPERS
80 select HAVE_FUNCTION_TRACER 81 select HAVE_FUNCTION_TRACER
81 select HAVE_OPROFILE 82 select HAVE_OPROFILE
82 select HAVE_KPROBES 83 select HAVE_KPROBES
diff --git a/arch/s390/defconfig b/arch/s390/defconfig
index a0e748da9909..31e809c77790 100644
--- a/arch/s390/defconfig
+++ b/arch/s390/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.28-rc6 3# Linux kernel version: 2.6.29-rc4
4# Thu Nov 27 11:00:49 2008 4# Wed Feb 11 10:07:16 2009
5# 5#
6CONFIG_SCHED_MC=y 6CONFIG_SCHED_MC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,12 +14,14 @@ CONFIG_RWSEM_XCHGADD_ALGORITHM=y
14# CONFIG_ARCH_HAS_ILOG2_U64 is not set 14# CONFIG_ARCH_HAS_ILOG2_U64 is not set
15CONFIG_GENERIC_HWEIGHT=y 15CONFIG_GENERIC_HWEIGHT=y
16CONFIG_GENERIC_TIME=y 16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_TIME_VSYSCALL=y
17CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
18CONFIG_GENERIC_BUG=y 19CONFIG_GENERIC_BUG=y
19CONFIG_NO_IOMEM=y 20CONFIG_NO_IOMEM=y
20CONFIG_NO_DMA=y 21CONFIG_NO_DMA=y
21CONFIG_GENERIC_LOCKBREAK=y 22CONFIG_GENERIC_LOCKBREAK=y
22CONFIG_PGSTE=y 23CONFIG_PGSTE=y
24CONFIG_VIRT_CPU_ACCOUNTING=y
23CONFIG_S390=y 25CONFIG_S390=y
24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
25 27
@@ -39,20 +41,29 @@ CONFIG_POSIX_MQUEUE=y
39# CONFIG_TASKSTATS is not set 41# CONFIG_TASKSTATS is not set
40CONFIG_AUDIT=y 42CONFIG_AUDIT=y
41# CONFIG_AUDITSYSCALL is not set 43# CONFIG_AUDITSYSCALL is not set
44
45#
46# RCU Subsystem
47#
48CONFIG_CLASSIC_RCU=y
49# CONFIG_TREE_RCU is not set
50# CONFIG_PREEMPT_RCU is not set
51# CONFIG_TREE_RCU_TRACE is not set
52# CONFIG_PREEMPT_RCU_TRACE is not set
42CONFIG_IKCONFIG=y 53CONFIG_IKCONFIG=y
43CONFIG_IKCONFIG_PROC=y 54CONFIG_IKCONFIG_PROC=y
44CONFIG_LOG_BUF_SHIFT=17 55CONFIG_LOG_BUF_SHIFT=17
56CONFIG_GROUP_SCHED=y
57CONFIG_FAIR_GROUP_SCHED=y
58# CONFIG_RT_GROUP_SCHED is not set
59CONFIG_USER_SCHED=y
60# CONFIG_CGROUP_SCHED is not set
45CONFIG_CGROUPS=y 61CONFIG_CGROUPS=y
46# CONFIG_CGROUP_DEBUG is not set 62# CONFIG_CGROUP_DEBUG is not set
47CONFIG_CGROUP_NS=y 63CONFIG_CGROUP_NS=y
48# CONFIG_CGROUP_FREEZER is not set 64# CONFIG_CGROUP_FREEZER is not set
49# CONFIG_CGROUP_DEVICE is not set 65# CONFIG_CGROUP_DEVICE is not set
50# CONFIG_CPUSETS is not set 66# CONFIG_CPUSETS is not set
51CONFIG_GROUP_SCHED=y
52CONFIG_FAIR_GROUP_SCHED=y
53# CONFIG_RT_GROUP_SCHED is not set
54CONFIG_USER_SCHED=y
55# CONFIG_CGROUP_SCHED is not set
56# CONFIG_CGROUP_CPUACCT is not set 67# CONFIG_CGROUP_CPUACCT is not set
57# CONFIG_RESOURCE_COUNTERS is not set 68# CONFIG_RESOURCE_COUNTERS is not set
58CONFIG_SYSFS_DEPRECATED=y 69CONFIG_SYSFS_DEPRECATED=y
@@ -63,6 +74,7 @@ CONFIG_UTS_NS=y
63CONFIG_IPC_NS=y 74CONFIG_IPC_NS=y
64# CONFIG_USER_NS is not set 75# CONFIG_USER_NS is not set
65# CONFIG_PID_NS is not set 76# CONFIG_PID_NS is not set
77# CONFIG_NET_NS is not set
66CONFIG_BLK_DEV_INITRD=y 78CONFIG_BLK_DEV_INITRD=y
67CONFIG_INITRAMFS_SOURCE="" 79CONFIG_INITRAMFS_SOURCE=""
68# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -91,17 +103,17 @@ CONFIG_SLAB=y
91# CONFIG_SLUB is not set 103# CONFIG_SLUB is not set
92# CONFIG_SLOB is not set 104# CONFIG_SLOB is not set
93# CONFIG_PROFILING is not set 105# CONFIG_PROFILING is not set
94# CONFIG_MARKERS is not set
95CONFIG_HAVE_OPROFILE=y 106CONFIG_HAVE_OPROFILE=y
96CONFIG_KPROBES=y 107CONFIG_KPROBES=y
108CONFIG_HAVE_SYSCALL_WRAPPERS=y
97CONFIG_KRETPROBES=y 109CONFIG_KRETPROBES=y
98CONFIG_HAVE_KPROBES=y 110CONFIG_HAVE_KPROBES=y
99CONFIG_HAVE_KRETPROBES=y 111CONFIG_HAVE_KRETPROBES=y
100CONFIG_HAVE_ARCH_TRACEHOOK=y 112CONFIG_HAVE_ARCH_TRACEHOOK=y
113CONFIG_USE_GENERIC_SMP_HELPERS=y
101# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 114# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
102CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
103CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
104# CONFIG_TINY_SHMEM is not set
105CONFIG_BASE_SMALL=0 117CONFIG_BASE_SMALL=0
106CONFIG_MODULES=y 118CONFIG_MODULES=y
107# CONFIG_MODULE_FORCE_LOAD is not set 119# CONFIG_MODULE_FORCE_LOAD is not set
@@ -109,7 +121,7 @@ CONFIG_MODULE_UNLOAD=y
109# CONFIG_MODULE_FORCE_UNLOAD is not set 121# CONFIG_MODULE_FORCE_UNLOAD is not set
110CONFIG_MODVERSIONS=y 122CONFIG_MODVERSIONS=y
111# CONFIG_MODULE_SRCVERSION_ALL is not set 123# CONFIG_MODULE_SRCVERSION_ALL is not set
112CONFIG_KMOD=y 124CONFIG_INIT_ALL_POSSIBLE=y
113CONFIG_STOP_MACHINE=y 125CONFIG_STOP_MACHINE=y
114CONFIG_BLOCK=y 126CONFIG_BLOCK=y
115# CONFIG_BLK_DEV_IO_TRACE is not set 127# CONFIG_BLK_DEV_IO_TRACE is not set
@@ -130,7 +142,6 @@ CONFIG_DEFAULT_DEADLINE=y
130# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
131CONFIG_DEFAULT_IOSCHED="deadline" 143CONFIG_DEFAULT_IOSCHED="deadline"
132CONFIG_PREEMPT_NOTIFIERS=y 144CONFIG_PREEMPT_NOTIFIERS=y
133CONFIG_CLASSIC_RCU=y
134# CONFIG_FREEZER is not set 145# CONFIG_FREEZER is not set
135 146
136# 147#
@@ -161,6 +172,7 @@ CONFIG_S390_EXEC_PROTECT=y
161CONFIG_MARCH_Z900=y 172CONFIG_MARCH_Z900=y
162# CONFIG_MARCH_Z990 is not set 173# CONFIG_MARCH_Z990 is not set
163# CONFIG_MARCH_Z9_109 is not set 174# CONFIG_MARCH_Z9_109 is not set
175# CONFIG_MARCH_Z10 is not set
164CONFIG_PACK_STACK=y 176CONFIG_PACK_STACK=y
165# CONFIG_SMALL_STACK is not set 177# CONFIG_SMALL_STACK is not set
166CONFIG_CHECK_STACK=y 178CONFIG_CHECK_STACK=y
@@ -174,7 +186,6 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y
174# CONFIG_PREEMPT_NONE is not set 186# CONFIG_PREEMPT_NONE is not set
175# CONFIG_PREEMPT_VOLUNTARY is not set 187# CONFIG_PREEMPT_VOLUNTARY is not set
176CONFIG_PREEMPT=y 188CONFIG_PREEMPT=y
177# CONFIG_PREEMPT_RCU is not set
178CONFIG_ARCH_SPARSEMEM_ENABLE=y 189CONFIG_ARCH_SPARSEMEM_ENABLE=y
179CONFIG_ARCH_SPARSEMEM_DEFAULT=y 190CONFIG_ARCH_SPARSEMEM_DEFAULT=y
180CONFIG_ARCH_SELECT_MEMORY_MODEL=y 191CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@@ -195,7 +206,6 @@ CONFIG_MEMORY_HOTREMOVE=y
195CONFIG_PAGEFLAGS_EXTENDED=y 206CONFIG_PAGEFLAGS_EXTENDED=y
196CONFIG_SPLIT_PTLOCK_CPUS=4 207CONFIG_SPLIT_PTLOCK_CPUS=4
197CONFIG_MIGRATION=y 208CONFIG_MIGRATION=y
198CONFIG_RESOURCES_64BIT=y
199CONFIG_PHYS_ADDR_T_64BIT=y 209CONFIG_PHYS_ADDR_T_64BIT=y
200CONFIG_ZONE_DMA_FLAG=1 210CONFIG_ZONE_DMA_FLAG=1
201CONFIG_BOUNCE=y 211CONFIG_BOUNCE=y
@@ -207,7 +217,6 @@ CONFIG_UNEVICTABLE_LRU=y
207# 217#
208CONFIG_MACHCHK_WARNING=y 218CONFIG_MACHCHK_WARNING=y
209CONFIG_QDIO=y 219CONFIG_QDIO=y
210# CONFIG_QDIO_DEBUG is not set
211CONFIG_CHSC_SCH=m 220CONFIG_CHSC_SCH=m
212 221
213# 222#
@@ -227,15 +236,13 @@ CONFIG_PFAULT=y
227# CONFIG_SHARED_KERNEL is not set 236# CONFIG_SHARED_KERNEL is not set
228# CONFIG_CMM is not set 237# CONFIG_CMM is not set
229# CONFIG_PAGE_STATES is not set 238# CONFIG_PAGE_STATES is not set
230CONFIG_VIRT_TIMER=y
231CONFIG_VIRT_CPU_ACCOUNTING=y
232# CONFIG_APPLDATA_BASE is not set 239# CONFIG_APPLDATA_BASE is not set
233CONFIG_HZ_100=y 240CONFIG_HZ_100=y
234# CONFIG_HZ_250 is not set 241# CONFIG_HZ_250 is not set
235# CONFIG_HZ_300 is not set 242# CONFIG_HZ_300 is not set
236# CONFIG_HZ_1000 is not set 243# CONFIG_HZ_1000 is not set
237CONFIG_HZ=100 244CONFIG_HZ=100
238# CONFIG_SCHED_HRTICK is not set 245CONFIG_SCHED_HRTICK=y
239CONFIG_S390_HYPFS_FS=y 246CONFIG_S390_HYPFS_FS=y
240CONFIG_KEXEC=y 247CONFIG_KEXEC=y
241# CONFIG_ZFCPDUMP is not set 248# CONFIG_ZFCPDUMP is not set
@@ -245,6 +252,7 @@ CONFIG_NET=y
245# 252#
246# Networking options 253# Networking options
247# 254#
255CONFIG_COMPAT_NET_DEV_OPS=y
248CONFIG_PACKET=y 256CONFIG_PACKET=y
249# CONFIG_PACKET_MMAP is not set 257# CONFIG_PACKET_MMAP is not set
250CONFIG_UNIX=y 258CONFIG_UNIX=y
@@ -383,6 +391,7 @@ CONFIG_NET_SCH_TBF=m
383CONFIG_NET_SCH_GRED=m 391CONFIG_NET_SCH_GRED=m
384CONFIG_NET_SCH_DSMARK=m 392CONFIG_NET_SCH_DSMARK=m
385# CONFIG_NET_SCH_NETEM is not set 393# CONFIG_NET_SCH_NETEM is not set
394# CONFIG_NET_SCH_DRR is not set
386# CONFIG_NET_SCH_INGRESS is not set 395# CONFIG_NET_SCH_INGRESS is not set
387 396
388# 397#
@@ -400,6 +409,7 @@ CONFIG_CLS_U32_MARK=y
400CONFIG_NET_CLS_RSVP=m 409CONFIG_NET_CLS_RSVP=m
401CONFIG_NET_CLS_RSVP6=m 410CONFIG_NET_CLS_RSVP6=m
402CONFIG_NET_CLS_FLOW=m 411CONFIG_NET_CLS_FLOW=m
412# CONFIG_NET_CLS_CGROUP is not set
403# CONFIG_NET_EMATCH is not set 413# CONFIG_NET_EMATCH is not set
404CONFIG_NET_CLS_ACT=y 414CONFIG_NET_CLS_ACT=y
405CONFIG_NET_ACT_POLICE=y 415CONFIG_NET_ACT_POLICE=y
@@ -411,6 +421,7 @@ CONFIG_NET_ACT_NAT=m
411# CONFIG_NET_ACT_SKBEDIT is not set 421# CONFIG_NET_ACT_SKBEDIT is not set
412# CONFIG_NET_CLS_IND is not set 422# CONFIG_NET_CLS_IND is not set
413CONFIG_NET_SCH_FIFO=y 423CONFIG_NET_SCH_FIFO=y
424# CONFIG_DCB is not set
414 425
415# 426#
416# Network testing 427# Network testing
@@ -428,6 +439,7 @@ CONFIG_CAN_VCAN=m
428# CONFIG_CAN_DEBUG_DEVICES is not set 439# CONFIG_CAN_DEBUG_DEVICES is not set
429# CONFIG_AF_RXRPC is not set 440# CONFIG_AF_RXRPC is not set
430# CONFIG_PHONET is not set 441# CONFIG_PHONET is not set
442# CONFIG_WIMAX is not set
431# CONFIG_RFKILL is not set 443# CONFIG_RFKILL is not set
432# CONFIG_NET_9P is not set 444# CONFIG_NET_9P is not set
433# CONFIG_PCMCIA is not set 445# CONFIG_PCMCIA is not set
@@ -475,11 +487,15 @@ CONFIG_DASD_DIAG=y
475CONFIG_DASD_EER=y 487CONFIG_DASD_EER=y
476CONFIG_VIRTIO_BLK=m 488CONFIG_VIRTIO_BLK=m
477CONFIG_MISC_DEVICES=y 489CONFIG_MISC_DEVICES=y
478# CONFIG_EEPROM_93CX6 is not set
479# CONFIG_ENCLOSURE_SERVICES is not set 490# CONFIG_ENCLOSURE_SERVICES is not set
480# CONFIG_C2PORT is not set 491# CONFIG_C2PORT is not set
481 492
482# 493#
494# EEPROM support
495#
496# CONFIG_EEPROM_93CX6 is not set
497
498#
483# SCSI device support 499# SCSI device support
484# 500#
485# CONFIG_RAID_ATTRS is not set 501# CONFIG_RAID_ATTRS is not set
@@ -520,6 +536,7 @@ CONFIG_SCSI_FC_ATTRS=y
520# CONFIG_SCSI_SRP_ATTRS is not set 536# CONFIG_SCSI_SRP_ATTRS is not set
521CONFIG_SCSI_LOWLEVEL=y 537CONFIG_SCSI_LOWLEVEL=y
522# CONFIG_ISCSI_TCP is not set 538# CONFIG_ISCSI_TCP is not set
539# CONFIG_LIBFC is not set
523# CONFIG_SCSI_DEBUG is not set 540# CONFIG_SCSI_DEBUG is not set
524CONFIG_ZFCP=y 541CONFIG_ZFCP=y
525CONFIG_SCSI_DH=m 542CONFIG_SCSI_DH=m
@@ -566,6 +583,10 @@ CONFIG_NET_ETHERNET=y
566CONFIG_NETDEV_1000=y 583CONFIG_NETDEV_1000=y
567CONFIG_NETDEV_10000=y 584CONFIG_NETDEV_10000=y
568# CONFIG_TR is not set 585# CONFIG_TR is not set
586
587#
588# Enable WiMAX (Networking options) to see the WiMAX drivers
589#
569# CONFIG_WAN is not set 590# CONFIG_WAN is not set
570 591
571# 592#
@@ -593,9 +614,11 @@ CONFIG_VIRTIO_NET=m
593# 614#
594CONFIG_DEVKMEM=y 615CONFIG_DEVKMEM=y
595CONFIG_UNIX98_PTYS=y 616CONFIG_UNIX98_PTYS=y
617# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
596CONFIG_LEGACY_PTYS=y 618CONFIG_LEGACY_PTYS=y
597CONFIG_LEGACY_PTY_COUNT=256 619CONFIG_LEGACY_PTY_COUNT=256
598CONFIG_HVC_DRIVER=y 620CONFIG_HVC_DRIVER=y
621CONFIG_HVC_IUCV=y
599CONFIG_VIRTIO_CONSOLE=y 622CONFIG_VIRTIO_CONSOLE=y
600CONFIG_HW_RANDOM=m 623CONFIG_HW_RANDOM=m
601CONFIG_HW_RANDOM_VIRTIO=m 624CONFIG_HW_RANDOM_VIRTIO=m
@@ -645,7 +668,6 @@ CONFIG_S390_VMUR=m
645# CONFIG_NEW_LEDS is not set 668# CONFIG_NEW_LEDS is not set
646CONFIG_ACCESSIBILITY=y 669CONFIG_ACCESSIBILITY=y
647# CONFIG_STAGING is not set 670# CONFIG_STAGING is not set
648CONFIG_STAGING_EXCLUDE_BUILD=y
649 671
650# 672#
651# File systems 673# File systems
@@ -668,6 +690,7 @@ CONFIG_FILE_LOCKING=y
668# CONFIG_XFS_FS is not set 690# CONFIG_XFS_FS is not set
669# CONFIG_GFS2_FS is not set 691# CONFIG_GFS2_FS is not set
670# CONFIG_OCFS2_FS is not set 692# CONFIG_OCFS2_FS is not set
693# CONFIG_BTRFS_FS is not set
671CONFIG_DNOTIFY=y 694CONFIG_DNOTIFY=y
672CONFIG_INOTIFY=y 695CONFIG_INOTIFY=y
673CONFIG_INOTIFY_USER=y 696CONFIG_INOTIFY_USER=y
@@ -703,10 +726,7 @@ CONFIG_TMPFS_POSIX_ACL=y
703# CONFIG_HUGETLBFS is not set 726# CONFIG_HUGETLBFS is not set
704# CONFIG_HUGETLB_PAGE is not set 727# CONFIG_HUGETLB_PAGE is not set
705CONFIG_CONFIGFS_FS=m 728CONFIG_CONFIGFS_FS=m
706 729CONFIG_MISC_FILESYSTEMS=y
707#
708# Miscellaneous filesystems
709#
710# CONFIG_ADFS_FS is not set 730# CONFIG_ADFS_FS is not set
711# CONFIG_AFFS_FS is not set 731# CONFIG_AFFS_FS is not set
712# CONFIG_HFS_FS is not set 732# CONFIG_HFS_FS is not set
@@ -715,6 +735,7 @@ CONFIG_CONFIGFS_FS=m
715# CONFIG_BFS_FS is not set 735# CONFIG_BFS_FS is not set
716# CONFIG_EFS_FS is not set 736# CONFIG_EFS_FS is not set
717# CONFIG_CRAMFS is not set 737# CONFIG_CRAMFS is not set
738# CONFIG_SQUASHFS is not set
718# CONFIG_VXFS_FS is not set 739# CONFIG_VXFS_FS is not set
719# CONFIG_MINIX_FS is not set 740# CONFIG_MINIX_FS is not set
720# CONFIG_OMFS_FS is not set 741# CONFIG_OMFS_FS is not set
@@ -808,6 +829,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
808CONFIG_DEBUG_MEMORY_INIT=y 829CONFIG_DEBUG_MEMORY_INIT=y
809# CONFIG_DEBUG_LIST is not set 830# CONFIG_DEBUG_LIST is not set
810# CONFIG_DEBUG_SG is not set 831# CONFIG_DEBUG_SG is not set
832# CONFIG_DEBUG_NOTIFIERS is not set
811# CONFIG_FRAME_POINTER is not set 833# CONFIG_FRAME_POINTER is not set
812# CONFIG_RCU_TORTURE_TEST is not set 834# CONFIG_RCU_TORTURE_TEST is not set
813# CONFIG_RCU_CPU_STALL_DETECTOR is not set 835# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -818,15 +840,19 @@ CONFIG_DEBUG_MEMORY_INIT=y
818# CONFIG_FAULT_INJECTION is not set 840# CONFIG_FAULT_INJECTION is not set
819# CONFIG_LATENCYTOP is not set 841# CONFIG_LATENCYTOP is not set
820CONFIG_SYSCTL_SYSCALL_CHECK=y 842CONFIG_SYSCTL_SYSCALL_CHECK=y
843CONFIG_HAVE_FUNCTION_TRACER=y
821 844
822# 845#
823# Tracers 846# Tracers
824# 847#
848# CONFIG_FUNCTION_TRACER is not set
825# CONFIG_IRQSOFF_TRACER is not set 849# CONFIG_IRQSOFF_TRACER is not set
826# CONFIG_PREEMPT_TRACER is not set 850# CONFIG_PREEMPT_TRACER is not set
827# CONFIG_SCHED_TRACER is not set 851# CONFIG_SCHED_TRACER is not set
828# CONFIG_CONTEXT_SWITCH_TRACER is not set 852# CONFIG_CONTEXT_SWITCH_TRACER is not set
829# CONFIG_BOOT_TRACER is not set 853# CONFIG_BOOT_TRACER is not set
854# CONFIG_TRACE_BRANCH_PROFILING is not set
855# CONFIG_STACK_TRACER is not set
830# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 856# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
831CONFIG_SAMPLES=y 857CONFIG_SAMPLES=y
832# CONFIG_SAMPLE_KOBJECT is not set 858# CONFIG_SAMPLE_KOBJECT is not set
@@ -847,11 +873,17 @@ CONFIG_CRYPTO=y
847# 873#
848CONFIG_CRYPTO_FIPS=y 874CONFIG_CRYPTO_FIPS=y
849CONFIG_CRYPTO_ALGAPI=y 875CONFIG_CRYPTO_ALGAPI=y
850CONFIG_CRYPTO_AEAD=y 876CONFIG_CRYPTO_ALGAPI2=y
877CONFIG_CRYPTO_AEAD=m
878CONFIG_CRYPTO_AEAD2=y
851CONFIG_CRYPTO_BLKCIPHER=y 879CONFIG_CRYPTO_BLKCIPHER=y
852CONFIG_CRYPTO_HASH=y 880CONFIG_CRYPTO_BLKCIPHER2=y
853CONFIG_CRYPTO_RNG=y 881CONFIG_CRYPTO_HASH=m
882CONFIG_CRYPTO_HASH2=y
883CONFIG_CRYPTO_RNG=m
884CONFIG_CRYPTO_RNG2=y
854CONFIG_CRYPTO_MANAGER=y 885CONFIG_CRYPTO_MANAGER=y
886CONFIG_CRYPTO_MANAGER2=y
855CONFIG_CRYPTO_GF128MUL=m 887CONFIG_CRYPTO_GF128MUL=m
856# CONFIG_CRYPTO_NULL is not set 888# CONFIG_CRYPTO_NULL is not set
857# CONFIG_CRYPTO_CRYPTD is not set 889# CONFIG_CRYPTO_CRYPTD is not set
@@ -885,7 +917,7 @@ CONFIG_CRYPTO_HMAC=m
885# 917#
886# Digest 918# Digest
887# 919#
888# CONFIG_CRYPTO_CRC32C is not set 920CONFIG_CRYPTO_CRC32C=m
889# CONFIG_CRYPTO_MD4 is not set 921# CONFIG_CRYPTO_MD4 is not set
890CONFIG_CRYPTO_MD5=m 922CONFIG_CRYPTO_MD5=m
891# CONFIG_CRYPTO_MICHAEL_MIC is not set 923# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -942,6 +974,7 @@ CONFIG_S390_PRNG=m
942# Library routines 974# Library routines
943# 975#
944CONFIG_BITREVERSE=m 976CONFIG_BITREVERSE=m
977CONFIG_GENERIC_FIND_LAST_BIT=y
945# CONFIG_CRC_CCITT is not set 978# CONFIG_CRC_CCITT is not set
946# CONFIG_CRC16 is not set 979# CONFIG_CRC16 is not set
947CONFIG_CRC_T10DIF=y 980CONFIG_CRC_T10DIF=y
diff --git a/arch/s390/include/asm/Kbuild b/arch/s390/include/asm/Kbuild
index f2af4167bd5f..63a23415fba6 100644
--- a/arch/s390/include/asm/Kbuild
+++ b/arch/s390/include/asm/Kbuild
@@ -13,4 +13,3 @@ unifdef-y += cmb.h
13unifdef-y += debug.h 13unifdef-y += debug.h
14unifdef-y += chpid.h 14unifdef-y += chpid.h
15unifdef-y += schid.h 15unifdef-y += schid.h
16unifdef-y += swab.h
diff --git a/arch/s390/include/asm/byteorder.h b/arch/s390/include/asm/byteorder.h
index b95a2b2933fb..a332e59e26fc 100644
--- a/arch/s390/include/asm/byteorder.h
+++ b/arch/s390/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _S390_BYTEORDER_H 1#ifndef _S390_BYTEORDER_H
2#define _S390_BYTEORDER_H 2#define _S390_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/big_endian.h> 4#include <linux/byteorder/big_endian.h>
6 5
7#endif /* _S390_BYTEORDER_H */ 6#endif /* _S390_BYTEORDER_H */
diff --git a/arch/s390/include/asm/cputime.h b/arch/s390/include/asm/cputime.h
index 521726430afa..95b0f7db3c69 100644
--- a/arch/s390/include/asm/cputime.h
+++ b/arch/s390/include/asm/cputime.h
@@ -145,7 +145,7 @@ cputime_to_timeval(const cputime_t cputime, struct timeval *value)
145 value->tv_usec = rp.subreg.even / 4096; 145 value->tv_usec = rp.subreg.even / 4096;
146 value->tv_sec = rp.subreg.odd; 146 value->tv_sec = rp.subreg.odd;
147#else 147#else
148 value->tv_usec = cputime % 4096000000ULL; 148 value->tv_usec = (cputime % 4096000000ULL) / 4096;
149 value->tv_sec = cputime / 4096000000ULL; 149 value->tv_sec = cputime / 4096000000ULL;
150#endif 150#endif
151} 151}
diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
index d480f39d65e6..74d0bbb7d955 100644
--- a/arch/s390/include/asm/elf.h
+++ b/arch/s390/include/asm/elf.h
@@ -172,14 +172,14 @@ extern char elf_platform[];
172#ifndef __s390x__ 172#ifndef __s390x__
173#define SET_PERSONALITY(ex) set_personality(PER_LINUX) 173#define SET_PERSONALITY(ex) set_personality(PER_LINUX)
174#else /* __s390x__ */ 174#else /* __s390x__ */
175#define SET_PERSONALITY(ex) \ 175#define SET_PERSONALITY(ex) \
176do { \ 176do { \
177 if (current->personality != PER_LINUX32) \ 177 if (personality(current->personality) != PER_LINUX32) \
178 set_personality(PER_LINUX); \ 178 set_personality(PER_LINUX); \
179 if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \ 179 if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \
180 set_thread_flag(TIF_31BIT); \ 180 set_thread_flag(TIF_31BIT); \
181 else \ 181 else \
182 clear_thread_flag(TIF_31BIT); \ 182 clear_thread_flag(TIF_31BIT); \
183} while (0) 183} while (0)
184#endif /* __s390x__ */ 184#endif /* __s390x__ */
185 185
diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h
index ffdef5fe8587..f3720defdd16 100644
--- a/arch/s390/include/asm/lowcore.h
+++ b/arch/s390/include/asm/lowcore.h
@@ -384,8 +384,8 @@ struct _lowcore
384 __u32 panic_magic; /* 0xe00 */ 384 __u32 panic_magic; /* 0xe00 */
385 385
386 /* Per cpu primary space access list */ 386 /* Per cpu primary space access list */
387 __u8 pad_0xe04[0xe3c-0xe04]; /* 0xe04 */ 387 __u8 pad_0xe04[0xe38-0xe04]; /* 0xe04 */
388 __u32 vdso_per_cpu_data; /* 0xe3c */ 388 __u64 vdso_per_cpu_data; /* 0xe38 */
389 __u32 paste[16]; /* 0xe40 */ 389 __u32 paste[16]; /* 0xe40 */
390 390
391 __u8 pad13[0x11b8-0xe80]; /* 0xe80 */ 391 __u8 pad13[0x11b8-0xe80]; /* 0xe80 */
diff --git a/arch/s390/include/asm/setup.h b/arch/s390/include/asm/setup.h
index 2bd9faeb3919..e8bd6ac22c99 100644
--- a/arch/s390/include/asm/setup.h
+++ b/arch/s390/include/asm/setup.h
@@ -43,6 +43,8 @@ struct mem_chunk {
43 43
44extern struct mem_chunk memory_chunk[]; 44extern struct mem_chunk memory_chunk[];
45extern unsigned long real_memory_size; 45extern unsigned long real_memory_size;
46extern int memory_end_set;
47extern unsigned long memory_end;
46 48
47void detect_memory_layout(struct mem_chunk chunk[]); 49void detect_memory_layout(struct mem_chunk chunk[]);
48 50
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index fc2c97197a53..62c706eb0de6 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -547,7 +547,7 @@ sys32_setdomainname_wrapper:
547 .globl sys32_newuname_wrapper 547 .globl sys32_newuname_wrapper
548sys32_newuname_wrapper: 548sys32_newuname_wrapper:
549 llgtr %r2,%r2 # struct new_utsname * 549 llgtr %r2,%r2 # struct new_utsname *
550 jg s390x_newuname # branch to system call 550 jg sys_s390_newuname # branch to system call
551 551
552 .globl compat_sys_adjtimex_wrapper 552 .globl compat_sys_adjtimex_wrapper
553compat_sys_adjtimex_wrapper: 553compat_sys_adjtimex_wrapper:
@@ -615,7 +615,7 @@ sys32_sysfs_wrapper:
615 .globl sys32_personality_wrapper 615 .globl sys32_personality_wrapper
616sys32_personality_wrapper: 616sys32_personality_wrapper:
617 llgfr %r2,%r2 # unsigned long 617 llgfr %r2,%r2 # unsigned long
618 jg s390x_personality # branch to system call 618 jg sys_s390_personality # branch to system call
619 619
620 .globl sys32_setfsuid16_wrapper 620 .globl sys32_setfsuid16_wrapper
621sys32_setfsuid16_wrapper: 621sys32_setfsuid16_wrapper:
@@ -1767,3 +1767,41 @@ sys_dup3_wrapper:
1767sys_epoll_create1_wrapper: 1767sys_epoll_create1_wrapper:
1768 lgfr %r2,%r2 # int 1768 lgfr %r2,%r2 # int
1769 jg sys_epoll_create1 # branch to system call 1769 jg sys_epoll_create1 # branch to system call
1770
1771 .globl sys32_readahead_wrapper
1772sys32_readahead_wrapper:
1773 lgfr %r2,%r2 # int
1774 llgfr %r3,%r3 # u32
1775 llgfr %r4,%r4 # u32
1776 lgfr %r5,%r5 # s32
1777 jg sys32_readahead # branch to system call
1778
1779 .globl sys32_sendfile64_wrapper
1780sys32_sendfile64_wrapper:
1781 lgfr %r2,%r2 # int
1782 lgfr %r3,%r3 # int
1783 llgtr %r4,%r4 # compat_loff_t *
1784 lgfr %r5,%r5 # s32
1785 jg sys32_sendfile64 # branch to system call
1786
1787 .globl sys_tkill_wrapper
1788sys_tkill_wrapper:
1789 lgfr %r2,%r2 # pid_t
1790 lgfr %r3,%r3 # int
1791 jg sys_tkill # branch to system call
1792
1793 .globl sys_tgkill_wrapper
1794sys_tgkill_wrapper:
1795 lgfr %r2,%r2 # pid_t
1796 lgfr %r3,%r3 # pid_t
1797 lgfr %r4,%r4 # int
1798 jg sys_tgkill # branch to system call
1799
1800 .globl compat_sys_keyctl_wrapper
1801compat_sys_keyctl_wrapper:
1802 llgfr %r2,%r2 # u32
1803 llgfr %r3,%r3 # u32
1804 llgfr %r4,%r4 # u32
1805 llgfr %r5,%r5 # u32
1806 llgfr %r6,%r6 # u32
1807 jg compat_sys_keyctl # branch to system call
diff --git a/arch/s390/kernel/entry.h b/arch/s390/kernel/entry.h
index a65afc91e8aa..950c59c6688b 100644
--- a/arch/s390/kernel/entry.h
+++ b/arch/s390/kernel/entry.h
@@ -30,23 +30,23 @@ struct fadvise64_64_args;
30struct old_sigaction; 30struct old_sigaction;
31struct sel_arg_struct; 31struct sel_arg_struct;
32 32
33long sys_pipe(unsigned long __user *fildes);
34long sys_mmap2(struct mmap_arg_struct __user *arg); 33long sys_mmap2(struct mmap_arg_struct __user *arg);
35long old_mmap(struct mmap_arg_struct __user *arg); 34long sys_s390_old_mmap(struct mmap_arg_struct __user *arg);
36long sys_ipc(uint call, int first, unsigned long second, 35long sys_ipc(uint call, int first, unsigned long second,
37 unsigned long third, void __user *ptr); 36 unsigned long third, void __user *ptr);
38long s390x_newuname(struct new_utsname __user *name); 37long sys_s390_newuname(struct new_utsname __user *name);
39long s390x_personality(unsigned long personality); 38long sys_s390_personality(unsigned long personality);
40long s390_fadvise64(int fd, u32 offset_high, u32 offset_low, 39long sys_s390_fadvise64(int fd, u32 offset_high, u32 offset_low,
41 size_t len, int advice); 40 size_t len, int advice);
42long s390_fadvise64_64(struct fadvise64_64_args __user *args); 41long sys_s390_fadvise64_64(struct fadvise64_64_args __user *args);
43long s390_fallocate(int fd, int mode, loff_t offset, u32 len_high, u32 len_low); 42long sys_s390_fallocate(int fd, int mode, loff_t offset, u32 len_high,
43 u32 len_low);
44long sys_fork(void); 44long sys_fork(void);
45long sys_clone(void); 45long sys_clone(void);
46long sys_vfork(void); 46long sys_vfork(void);
47void execve_tail(void); 47void execve_tail(void);
48long sys_execve(void); 48long sys_execve(void);
49int sys_sigsuspend(int history0, int history1, old_sigset_t mask); 49long sys_sigsuspend(int history0, int history1, old_sigset_t mask);
50long sys_sigaction(int sig, const struct old_sigaction __user *act, 50long sys_sigaction(int sig, const struct old_sigaction __user *act,
51 struct old_sigaction __user *oact); 51 struct old_sigaction __user *oact);
52long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss); 52long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss);
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c
index e7c5bfb7c755..026a37a94fc9 100644
--- a/arch/s390/kernel/irq.c
+++ b/arch/s390/kernel/irq.c
@@ -95,6 +95,7 @@ asmlinkage void do_softirq(void)
95 local_irq_restore(flags); 95 local_irq_restore(flags);
96} 96}
97 97
98#ifdef CONFIG_PROC_FS
98void init_irq_proc(void) 99void init_irq_proc(void)
99{ 100{
100 struct proc_dir_entry *root_irq_dir; 101 struct proc_dir_entry *root_irq_dir;
@@ -102,3 +103,4 @@ void init_irq_proc(void)
102 root_irq_dir = proc_mkdir("irq", NULL); 103 root_irq_dir = proc_mkdir("irq", NULL);
103 create_prof_cpu_mask(root_irq_dir); 104 create_prof_cpu_mask(root_irq_dir);
104} 105}
106#endif
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
index b6110bdf8dc2..5cd38a90e64d 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
@@ -39,6 +39,7 @@
39#include <linux/tick.h> 39#include <linux/tick.h>
40#include <linux/elfcore.h> 40#include <linux/elfcore.h>
41#include <linux/kernel_stat.h> 41#include <linux/kernel_stat.h>
42#include <linux/syscalls.h>
42#include <asm/uaccess.h> 43#include <asm/uaccess.h>
43#include <asm/pgtable.h> 44#include <asm/pgtable.h>
44#include <asm/system.h> 45#include <asm/system.h>
@@ -225,13 +226,13 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long new_stackp,
225 return 0; 226 return 0;
226} 227}
227 228
228asmlinkage long sys_fork(void) 229SYSCALL_DEFINE0(fork)
229{ 230{
230 struct pt_regs *regs = task_pt_regs(current); 231 struct pt_regs *regs = task_pt_regs(current);
231 return do_fork(SIGCHLD, regs->gprs[15], regs, 0, NULL, NULL); 232 return do_fork(SIGCHLD, regs->gprs[15], regs, 0, NULL, NULL);
232} 233}
233 234
234asmlinkage long sys_clone(void) 235SYSCALL_DEFINE0(clone)
235{ 236{
236 struct pt_regs *regs = task_pt_regs(current); 237 struct pt_regs *regs = task_pt_regs(current);
237 unsigned long clone_flags; 238 unsigned long clone_flags;
@@ -258,7 +259,7 @@ asmlinkage long sys_clone(void)
258 * do not have enough call-clobbered registers to hold all 259 * do not have enough call-clobbered registers to hold all
259 * the information you need. 260 * the information you need.
260 */ 261 */
261asmlinkage long sys_vfork(void) 262SYSCALL_DEFINE0(vfork)
262{ 263{
263 struct pt_regs *regs = task_pt_regs(current); 264 struct pt_regs *regs = task_pt_regs(current);
264 return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, 265 return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD,
@@ -278,7 +279,7 @@ asmlinkage void execve_tail(void)
278/* 279/*
279 * sys_execve() executes a new program. 280 * sys_execve() executes a new program.
280 */ 281 */
281asmlinkage long sys_execve(void) 282SYSCALL_DEFINE0(execve)
282{ 283{
283 struct pt_regs *regs = task_pt_regs(current); 284 struct pt_regs *regs = task_pt_regs(current);
284 char *filename; 285 char *filename;
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index d825f4950e4e..c5cfb6185eac 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -82,7 +82,9 @@ char elf_platform[ELF_PLATFORM_SIZE];
82 82
83struct mem_chunk __initdata memory_chunk[MEMORY_CHUNKS]; 83struct mem_chunk __initdata memory_chunk[MEMORY_CHUNKS];
84volatile int __cpu_logical_map[NR_CPUS]; /* logical cpu to cpu address */ 84volatile int __cpu_logical_map[NR_CPUS]; /* logical cpu to cpu address */
85static unsigned long __initdata memory_end; 85
86int __initdata memory_end_set;
87unsigned long __initdata memory_end;
86 88
87/* 89/*
88 * This is set up by the setup-routine at boot-time 90 * This is set up by the setup-routine at boot-time
@@ -281,6 +283,7 @@ void (*pm_power_off)(void) = machine_power_off;
281static int __init early_parse_mem(char *p) 283static int __init early_parse_mem(char *p)
282{ 284{
283 memory_end = memparse(p, &p); 285 memory_end = memparse(p, &p);
286 memory_end_set = 1;
284 return 0; 287 return 0;
285} 288}
286early_param("mem", early_parse_mem); 289early_param("mem", early_parse_mem);
@@ -508,8 +511,10 @@ static void __init setup_memory_end(void)
508 int i; 511 int i;
509 512
510#if defined(CONFIG_ZFCPDUMP) || defined(CONFIG_ZFCPDUMP_MODULE) 513#if defined(CONFIG_ZFCPDUMP) || defined(CONFIG_ZFCPDUMP_MODULE)
511 if (ipl_info.type == IPL_TYPE_FCP_DUMP) 514 if (ipl_info.type == IPL_TYPE_FCP_DUMP) {
512 memory_end = ZFCPDUMP_HSA_SIZE; 515 memory_end = ZFCPDUMP_HSA_SIZE;
516 memory_end_set = 1;
517 }
513#endif 518#endif
514 memory_size = 0; 519 memory_size = 0;
515 memory_end &= PAGE_MASK; 520 memory_end &= PAGE_MASK;
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c
index 8e6812a22670..3cf74c3ccb69 100644
--- a/arch/s390/kernel/signal.c
+++ b/arch/s390/kernel/signal.c
@@ -25,6 +25,7 @@
25#include <linux/personality.h> 25#include <linux/personality.h>
26#include <linux/binfmts.h> 26#include <linux/binfmts.h>
27#include <linux/tracehook.h> 27#include <linux/tracehook.h>
28#include <linux/syscalls.h>
28#include <asm/ucontext.h> 29#include <asm/ucontext.h>
29#include <asm/uaccess.h> 30#include <asm/uaccess.h>
30#include <asm/lowcore.h> 31#include <asm/lowcore.h>
@@ -53,8 +54,7 @@ typedef struct
53/* 54/*
54 * Atomically swap in the new signal mask, and wait for a signal. 55 * Atomically swap in the new signal mask, and wait for a signal.
55 */ 56 */
56asmlinkage int 57SYSCALL_DEFINE3(sigsuspend, int, history0, int, history1, old_sigset_t, mask)
57sys_sigsuspend(int history0, int history1, old_sigset_t mask)
58{ 58{
59 mask &= _BLOCKABLE; 59 mask &= _BLOCKABLE;
60 spin_lock_irq(&current->sighand->siglock); 60 spin_lock_irq(&current->sighand->siglock);
@@ -70,9 +70,8 @@ sys_sigsuspend(int history0, int history1, old_sigset_t mask)
70 return -ERESTARTNOHAND; 70 return -ERESTARTNOHAND;
71} 71}
72 72
73asmlinkage long 73SYSCALL_DEFINE3(sigaction, int, sig, const struct old_sigaction __user *, act,
74sys_sigaction(int sig, const struct old_sigaction __user *act, 74 struct old_sigaction __user *, oact)
75 struct old_sigaction __user *oact)
76{ 75{
77 struct k_sigaction new_ka, old_ka; 76 struct k_sigaction new_ka, old_ka;
78 int ret; 77 int ret;
@@ -102,15 +101,13 @@ sys_sigaction(int sig, const struct old_sigaction __user *act,
102 return ret; 101 return ret;
103} 102}
104 103
105asmlinkage long 104SYSCALL_DEFINE2(sigaltstack, const stack_t __user *, uss,
106sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) 105 stack_t __user *, uoss)
107{ 106{
108 struct pt_regs *regs = task_pt_regs(current); 107 struct pt_regs *regs = task_pt_regs(current);
109 return do_sigaltstack(uss, uoss, regs->gprs[15]); 108 return do_sigaltstack(uss, uoss, regs->gprs[15]);
110} 109}
111 110
112
113
114/* Returns non-zero on fault. */ 111/* Returns non-zero on fault. */
115static int save_sigregs(struct pt_regs *regs, _sigregs __user *sregs) 112static int save_sigregs(struct pt_regs *regs, _sigregs __user *sregs)
116{ 113{
@@ -164,7 +161,7 @@ static int restore_sigregs(struct pt_regs *regs, _sigregs __user *sregs)
164 return 0; 161 return 0;
165} 162}
166 163
167asmlinkage long sys_sigreturn(void) 164SYSCALL_DEFINE0(sigreturn)
168{ 165{
169 struct pt_regs *regs = task_pt_regs(current); 166 struct pt_regs *regs = task_pt_regs(current);
170 sigframe __user *frame = (sigframe __user *)regs->gprs[15]; 167 sigframe __user *frame = (sigframe __user *)regs->gprs[15];
@@ -191,7 +188,7 @@ badframe:
191 return 0; 188 return 0;
192} 189}
193 190
194asmlinkage long sys_rt_sigreturn(void) 191SYSCALL_DEFINE0(rt_sigreturn)
195{ 192{
196 struct pt_regs *regs = task_pt_regs(current); 193 struct pt_regs *regs = task_pt_regs(current);
197 rt_sigframe __user *frame = (rt_sigframe __user *)regs->gprs[15]; 194 rt_sigframe __user *frame = (rt_sigframe __user *)regs->gprs[15];
diff --git a/arch/s390/kernel/sys_s390.c b/arch/s390/kernel/sys_s390.c
index c34be4568b80..c7ae4b17e0e3 100644
--- a/arch/s390/kernel/sys_s390.c
+++ b/arch/s390/kernel/sys_s390.c
@@ -29,6 +29,7 @@
29#include <linux/personality.h> 29#include <linux/personality.h>
30#include <linux/unistd.h> 30#include <linux/unistd.h>
31#include <linux/ipc.h> 31#include <linux/ipc.h>
32#include <linux/syscalls.h>
32#include <asm/uaccess.h> 33#include <asm/uaccess.h>
33#include "entry.h" 34#include "entry.h"
34 35
@@ -74,7 +75,7 @@ struct mmap_arg_struct {
74 unsigned long offset; 75 unsigned long offset;
75}; 76};
76 77
77asmlinkage long sys_mmap2(struct mmap_arg_struct __user *arg) 78SYSCALL_DEFINE1(mmap2, struct mmap_arg_struct __user *, arg)
78{ 79{
79 struct mmap_arg_struct a; 80 struct mmap_arg_struct a;
80 int error = -EFAULT; 81 int error = -EFAULT;
@@ -86,7 +87,7 @@ out:
86 return error; 87 return error;
87} 88}
88 89
89asmlinkage long old_mmap(struct mmap_arg_struct __user *arg) 90SYSCALL_DEFINE1(s390_old_mmap, struct mmap_arg_struct __user *, arg)
90{ 91{
91 struct mmap_arg_struct a; 92 struct mmap_arg_struct a;
92 long error = -EFAULT; 93 long error = -EFAULT;
@@ -108,8 +109,8 @@ out:
108 * 109 *
109 * This is really horribly ugly. 110 * This is really horribly ugly.
110 */ 111 */
111asmlinkage long sys_ipc(uint call, int first, unsigned long second, 112SYSCALL_DEFINE5(ipc, uint, call, int, first, unsigned long, second,
112 unsigned long third, void __user *ptr) 113 unsigned long, third, void __user *, ptr)
113{ 114{
114 struct ipc_kludge tmp; 115 struct ipc_kludge tmp;
115 int ret; 116 int ret;
@@ -175,7 +176,7 @@ asmlinkage long sys_ipc(uint call, int first, unsigned long second,
175} 176}
176 177
177#ifdef CONFIG_64BIT 178#ifdef CONFIG_64BIT
178asmlinkage long s390x_newuname(struct new_utsname __user *name) 179SYSCALL_DEFINE1(s390_newuname, struct new_utsname __user *, name)
179{ 180{
180 int ret = sys_newuname(name); 181 int ret = sys_newuname(name);
181 182
@@ -186,7 +187,7 @@ asmlinkage long s390x_newuname(struct new_utsname __user *name)
186 return ret; 187 return ret;
187} 188}
188 189
189asmlinkage long s390x_personality(unsigned long personality) 190SYSCALL_DEFINE1(s390_personality, unsigned long, personality)
190{ 191{
191 int ret; 192 int ret;
192 193
@@ -205,15 +206,13 @@ asmlinkage long s390x_personality(unsigned long personality)
205 */ 206 */
206#ifndef CONFIG_64BIT 207#ifndef CONFIG_64BIT
207 208
208asmlinkage long 209SYSCALL_DEFINE5(s390_fadvise64, int, fd, u32, offset_high, u32, offset_low,
209s390_fadvise64(int fd, u32 offset_high, u32 offset_low, size_t len, int advice) 210 size_t, len, int, advice)
210{ 211{
211 return sys_fadvise64(fd, (u64) offset_high << 32 | offset_low, 212 return sys_fadvise64(fd, (u64) offset_high << 32 | offset_low,
212 len, advice); 213 len, advice);
213} 214}
214 215
215#endif
216
217struct fadvise64_64_args { 216struct fadvise64_64_args {
218 int fd; 217 int fd;
219 long long offset; 218 long long offset;
@@ -221,8 +220,7 @@ struct fadvise64_64_args {
221 int advice; 220 int advice;
222}; 221};
223 222
224asmlinkage long 223SYSCALL_DEFINE1(s390_fadvise64_64, struct fadvise64_64_args __user *, args)
225s390_fadvise64_64(struct fadvise64_64_args __user *args)
226{ 224{
227 struct fadvise64_64_args a; 225 struct fadvise64_64_args a;
228 226
@@ -231,7 +229,6 @@ s390_fadvise64_64(struct fadvise64_64_args __user *args)
231 return sys_fadvise64_64(a.fd, a.offset, a.len, a.advice); 229 return sys_fadvise64_64(a.fd, a.offset, a.len, a.advice);
232} 230}
233 231
234#ifndef CONFIG_64BIT
235/* 232/*
236 * This is a wrapper to call sys_fallocate(). For 31 bit s390 the last 233 * This is a wrapper to call sys_fallocate(). For 31 bit s390 the last
237 * 64 bit argument "len" is split into the upper and lower 32 bits. The 234 * 64 bit argument "len" is split into the upper and lower 32 bits. The
@@ -244,9 +241,19 @@ s390_fadvise64_64(struct fadvise64_64_args __user *args)
244 * to 241 * to
245 * %r2: fd, %r3: mode, %r4/%r5: offset, 96(%r15)-103(%r15): len 242 * %r2: fd, %r3: mode, %r4/%r5: offset, 96(%r15)-103(%r15): len
246 */ 243 */
247asmlinkage long s390_fallocate(int fd, int mode, loff_t offset, 244SYSCALL_DEFINE(s390_fallocate)(int fd, int mode, loff_t offset,
248 u32 len_high, u32 len_low) 245 u32 len_high, u32 len_low)
249{ 246{
250 return sys_fallocate(fd, mode, offset, ((u64)len_high << 32) | len_low); 247 return sys_fallocate(fd, mode, offset, ((u64)len_high << 32) | len_low);
251} 248}
249#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
250asmlinkage long SyS_s390_fallocate(long fd, long mode, loff_t offset,
251 long len_high, long len_low)
252{
253 return SYSC_s390_fallocate((int) fd, (int) mode, offset,
254 (u32) len_high, (u32) len_low);
255}
256SYSCALL_ALIAS(sys_s390_fallocate, SyS_s390_fallocate);
257#endif
258
252#endif 259#endif
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index 2d61787949d5..fe5b25a988ab 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -98,7 +98,7 @@ SYSCALL(sys_uselib,sys_uselib,sys32_uselib_wrapper)
98SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper) 98SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper)
99SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper) 99SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper)
100SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */ 100SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */
101SYSCALL(old_mmap,old_mmap,old32_mmap_wrapper) /* 90 */ 101SYSCALL(sys_s390_old_mmap,sys_s390_old_mmap,old32_mmap_wrapper) /* 90 */
102SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper) 102SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper)
103SYSCALL(sys_truncate,sys_truncate,sys32_truncate_wrapper) 103SYSCALL(sys_truncate,sys_truncate,sys32_truncate_wrapper)
104SYSCALL(sys_ftruncate,sys_ftruncate,sys32_ftruncate_wrapper) 104SYSCALL(sys_ftruncate,sys_ftruncate,sys32_ftruncate_wrapper)
@@ -130,7 +130,7 @@ SYSCALL(sys_fsync,sys_fsync,sys32_fsync_wrapper)
130SYSCALL(sys_sigreturn,sys_sigreturn,sys32_sigreturn) 130SYSCALL(sys_sigreturn,sys_sigreturn,sys32_sigreturn)
131SYSCALL(sys_clone,sys_clone,sys32_clone) /* 120 */ 131SYSCALL(sys_clone,sys_clone,sys32_clone) /* 120 */
132SYSCALL(sys_setdomainname,sys_setdomainname,sys32_setdomainname_wrapper) 132SYSCALL(sys_setdomainname,sys_setdomainname,sys32_setdomainname_wrapper)
133SYSCALL(sys_newuname,s390x_newuname,sys32_newuname_wrapper) 133SYSCALL(sys_newuname,sys_s390_newuname,sys32_newuname_wrapper)
134NI_SYSCALL /* modify_ldt for i386 */ 134NI_SYSCALL /* modify_ldt for i386 */
135SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper) 135SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper)
136SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */ 136SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */
@@ -144,7 +144,7 @@ SYSCALL(sys_getpgid,sys_getpgid,sys32_getpgid_wrapper)
144SYSCALL(sys_fchdir,sys_fchdir,sys32_fchdir_wrapper) 144SYSCALL(sys_fchdir,sys_fchdir,sys32_fchdir_wrapper)
145SYSCALL(sys_bdflush,sys_bdflush,sys32_bdflush_wrapper) 145SYSCALL(sys_bdflush,sys_bdflush,sys32_bdflush_wrapper)
146SYSCALL(sys_sysfs,sys_sysfs,sys32_sysfs_wrapper) /* 135 */ 146SYSCALL(sys_sysfs,sys_sysfs,sys32_sysfs_wrapper) /* 135 */
147SYSCALL(sys_personality,s390x_personality,sys32_personality_wrapper) 147SYSCALL(sys_personality,sys_s390_personality,sys32_personality_wrapper)
148NI_SYSCALL /* for afs_syscall */ 148NI_SYSCALL /* for afs_syscall */
149SYSCALL(sys_setfsuid16,sys_ni_syscall,sys32_setfsuid16_wrapper) /* old setfsuid16 syscall */ 149SYSCALL(sys_setfsuid16,sys_ni_syscall,sys32_setfsuid16_wrapper) /* old setfsuid16 syscall */
150SYSCALL(sys_setfsgid16,sys_ni_syscall,sys32_setfsgid16_wrapper) /* old setfsgid16 syscall */ 150SYSCALL(sys_setfsgid16,sys_ni_syscall,sys32_setfsgid16_wrapper) /* old setfsgid16 syscall */
@@ -194,7 +194,7 @@ SYSCALL(sys_chown16,sys_ni_syscall,sys32_chown16_wrapper) /* old chown16 syscall
194SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper) 194SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper)
195SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper) 195SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper)
196SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */ 196SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */
197SYSCALL(sys_sigaltstack,sys_sigaltstack,sys32_sigaltstack) 197SYSCALL(sys_sigaltstack,sys_sigaltstack,sys32_sigaltstack_wrapper)
198SYSCALL(sys_sendfile,sys_sendfile64,sys32_sendfile_wrapper) 198SYSCALL(sys_sendfile,sys_sendfile64,sys32_sendfile_wrapper)
199NI_SYSCALL /* streams1 */ 199NI_SYSCALL /* streams1 */
200NI_SYSCALL /* streams2 */ 200NI_SYSCALL /* streams2 */
@@ -230,8 +230,8 @@ SYSCALL(sys_mincore,sys_mincore,sys32_mincore_wrapper)
230SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper) 230SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper)
231SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper) /* 220 */ 231SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper) /* 220 */
232SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper) 232SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper)
233SYSCALL(sys_readahead,sys_readahead,sys32_readahead) 233SYSCALL(sys_readahead,sys_readahead,sys32_readahead_wrapper)
234SYSCALL(sys_sendfile64,sys_ni_syscall,sys32_sendfile64) 234SYSCALL(sys_sendfile64,sys_ni_syscall,sys32_sendfile64_wrapper)
235SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper) 235SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper)
236SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper) /* 225 */ 236SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper) /* 225 */
237SYSCALL(sys_fsetxattr,sys_fsetxattr,sys32_fsetxattr_wrapper) 237SYSCALL(sys_fsetxattr,sys_fsetxattr,sys32_fsetxattr_wrapper)
@@ -245,11 +245,11 @@ SYSCALL(sys_removexattr,sys_removexattr,sys32_removexattr_wrapper)
245SYSCALL(sys_lremovexattr,sys_lremovexattr,sys32_lremovexattr_wrapper) 245SYSCALL(sys_lremovexattr,sys_lremovexattr,sys32_lremovexattr_wrapper)
246SYSCALL(sys_fremovexattr,sys_fremovexattr,sys32_fremovexattr_wrapper) /* 235 */ 246SYSCALL(sys_fremovexattr,sys_fremovexattr,sys32_fremovexattr_wrapper) /* 235 */
247SYSCALL(sys_gettid,sys_gettid,sys_gettid) 247SYSCALL(sys_gettid,sys_gettid,sys_gettid)
248SYSCALL(sys_tkill,sys_tkill,sys_tkill) 248SYSCALL(sys_tkill,sys_tkill,sys_tkill_wrapper)
249SYSCALL(sys_futex,sys_futex,compat_sys_futex_wrapper) 249SYSCALL(sys_futex,sys_futex,compat_sys_futex_wrapper)
250SYSCALL(sys_sched_setaffinity,sys_sched_setaffinity,sys32_sched_setaffinity_wrapper) 250SYSCALL(sys_sched_setaffinity,sys_sched_setaffinity,sys32_sched_setaffinity_wrapper)
251SYSCALL(sys_sched_getaffinity,sys_sched_getaffinity,sys32_sched_getaffinity_wrapper) /* 240 */ 251SYSCALL(sys_sched_getaffinity,sys_sched_getaffinity,sys32_sched_getaffinity_wrapper) /* 240 */
252SYSCALL(sys_tgkill,sys_tgkill,sys_tgkill) 252SYSCALL(sys_tgkill,sys_tgkill,sys_tgkill_wrapper)
253NI_SYSCALL /* reserved for TUX */ 253NI_SYSCALL /* reserved for TUX */
254SYSCALL(sys_io_setup,sys_io_setup,sys32_io_setup_wrapper) 254SYSCALL(sys_io_setup,sys_io_setup,sys32_io_setup_wrapper)
255SYSCALL(sys_io_destroy,sys_io_destroy,sys32_io_destroy_wrapper) 255SYSCALL(sys_io_destroy,sys_io_destroy,sys32_io_destroy_wrapper)
@@ -261,7 +261,7 @@ SYSCALL(sys_epoll_create,sys_epoll_create,sys_epoll_create_wrapper)
261SYSCALL(sys_epoll_ctl,sys_epoll_ctl,sys_epoll_ctl_wrapper) /* 250 */ 261SYSCALL(sys_epoll_ctl,sys_epoll_ctl,sys_epoll_ctl_wrapper) /* 250 */
262SYSCALL(sys_epoll_wait,sys_epoll_wait,sys_epoll_wait_wrapper) 262SYSCALL(sys_epoll_wait,sys_epoll_wait,sys_epoll_wait_wrapper)
263SYSCALL(sys_set_tid_address,sys_set_tid_address,sys32_set_tid_address_wrapper) 263SYSCALL(sys_set_tid_address,sys_set_tid_address,sys32_set_tid_address_wrapper)
264SYSCALL(s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper) 264SYSCALL(sys_s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper)
265SYSCALL(sys_timer_create,sys_timer_create,sys32_timer_create_wrapper) 265SYSCALL(sys_timer_create,sys_timer_create,sys32_timer_create_wrapper)
266SYSCALL(sys_timer_settime,sys_timer_settime,sys32_timer_settime_wrapper) /* 255 */ 266SYSCALL(sys_timer_settime,sys_timer_settime,sys32_timer_settime_wrapper) /* 255 */
267SYSCALL(sys_timer_gettime,sys_timer_gettime,sys32_timer_gettime_wrapper) 267SYSCALL(sys_timer_gettime,sys_timer_gettime,sys32_timer_gettime_wrapper)
@@ -272,7 +272,7 @@ SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260
272SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper) 272SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper)
273SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper) 273SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper)
274NI_SYSCALL /* reserved for vserver */ 274NI_SYSCALL /* reserved for vserver */
275SYSCALL(s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper) 275SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
276SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper) 276SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper)
277SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper) 277SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper)
278SYSCALL(sys_remap_file_pages,sys_remap_file_pages,sys32_remap_file_pages_wrapper) 278SYSCALL(sys_remap_file_pages,sys_remap_file_pages,sys32_remap_file_pages_wrapper)
@@ -288,7 +288,7 @@ SYSCALL(sys_mq_getsetattr,sys_mq_getsetattr,compat_sys_mq_getsetattr_wrapper)
288SYSCALL(sys_kexec_load,sys_kexec_load,compat_sys_kexec_load_wrapper) 288SYSCALL(sys_kexec_load,sys_kexec_load,compat_sys_kexec_load_wrapper)
289SYSCALL(sys_add_key,sys_add_key,compat_sys_add_key_wrapper) 289SYSCALL(sys_add_key,sys_add_key,compat_sys_add_key_wrapper)
290SYSCALL(sys_request_key,sys_request_key,compat_sys_request_key_wrapper) 290SYSCALL(sys_request_key,sys_request_key,compat_sys_request_key_wrapper)
291SYSCALL(sys_keyctl,sys_keyctl,compat_sys_keyctl) /* 280 */ 291SYSCALL(sys_keyctl,sys_keyctl,compat_sys_keyctl_wrapper) /* 280 */
292SYSCALL(sys_waitid,sys_waitid,compat_sys_waitid_wrapper) 292SYSCALL(sys_waitid,sys_waitid,compat_sys_waitid_wrapper)
293SYSCALL(sys_ioprio_set,sys_ioprio_set,sys_ioprio_set_wrapper) 293SYSCALL(sys_ioprio_set,sys_ioprio_set,sys_ioprio_set_wrapper)
294SYSCALL(sys_ioprio_get,sys_ioprio_get,sys_ioprio_get_wrapper) 294SYSCALL(sys_ioprio_get,sys_ioprio_get,sys_ioprio_get_wrapper)
@@ -322,7 +322,7 @@ NI_SYSCALL /* 310 sys_move_pages */
322SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) 322SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper)
323SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) 323SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper)
324SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) 324SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper)
325SYSCALL(s390_fallocate,sys_fallocate,sys_fallocate_wrapper) 325SYSCALL(sys_s390_fallocate,sys_fallocate,sys_fallocate_wrapper)
326SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ 326SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */
327SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper) 327SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper)
328NI_SYSCALL /* 317 old sys_timer_fd */ 328NI_SYSCALL /* 317 old sys_timer_fd */
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index d649600df5b9..fc468cae4460 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -399,8 +399,10 @@ static struct workqueue_struct *time_sync_wq;
399 399
400static void __init time_init_wq(void) 400static void __init time_init_wq(void)
401{ 401{
402 if (!time_sync_wq) 402 if (time_sync_wq)
403 time_sync_wq = create_singlethread_workqueue("timesync"); 403 return;
404 time_sync_wq = create_singlethread_workqueue("timesync");
405 stop_machine_create();
404} 406}
405 407
406/* 408/*
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c
index 2fb36e462194..ecf0304e61c1 100644
--- a/arch/s390/kernel/vtime.c
+++ b/arch/s390/kernel/vtime.c
@@ -516,8 +516,12 @@ EXPORT_SYMBOL(del_virt_timer);
516 */ 516 */
517void init_cpu_vtimer(void) 517void init_cpu_vtimer(void)
518{ 518{
519 struct thread_info *ti = current_thread_info();
519 struct vtimer_queue *vq; 520 struct vtimer_queue *vq;
520 521
522 S390_lowcore.user_timer = ti->user_timer;
523 S390_lowcore.system_timer = ti->system_timer;
524
521 /* kick the virtual timer */ 525 /* kick the virtual timer */
522 asm volatile ("STCK %0" : "=m" (S390_lowcore.last_update_clock)); 526 asm volatile ("STCK %0" : "=m" (S390_lowcore.last_update_clock));
523 asm volatile ("STPT %0" : "=m" (S390_lowcore.last_update_timer)); 527 asm volatile ("STPT %0" : "=m" (S390_lowcore.last_update_timer));
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index be8497186b96..0d33893e1e89 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -212,6 +212,10 @@ static void kvm_free_vcpus(struct kvm *kvm)
212 } 212 }
213} 213}
214 214
215void kvm_arch_sync_events(struct kvm *kvm)
216{
217}
218
215void kvm_arch_destroy_vm(struct kvm *kvm) 219void kvm_arch_destroy_vm(struct kvm *kvm)
216{ 220{
217 kvm_free_vcpus(kvm); 221 kvm_free_vcpus(kvm);
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index f32a5197128d..ebabe518e729 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -644,66 +644,25 @@ endmenu
644 644
645menu "Bus options" 645menu "Bus options"
646 646
647# Even on SuperH devices which don't have an ISA bus,
648# this variable helps the PCMCIA modules handle
649# IRQ requesting properly -- Greg Banks.
650#
651# Though we're generally not interested in it when
652# we're not using PCMCIA, so we make it dependent on
653# PCMCIA outright. -- PFM.
654config ISA
655 def_bool y
656 depends on PCMCIA && HD6446X_SERIES
657 help
658 Find out whether you have ISA slots on your motherboard. ISA is the
659 name of a bus system, i.e. the way the CPU talks to the other stuff
660 inside your box. Other bus systems are PCI, EISA, MicroChannel
661 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
662 newer boards don't support it. If you have ISA, say Y, otherwise N.
663
664config EISA
665 bool
666 ---help---
667 The Extended Industry Standard Architecture (EISA) bus was
668 developed as an open alternative to the IBM MicroChannel bus.
669
670 The EISA bus provided some of the features of the IBM MicroChannel
671 bus while maintaining backward compatibility with cards made for
672 the older ISA bus. The EISA bus saw limited use between 1988 and
673 1995 when it was made obsolete by the PCI bus.
674
675 Say Y here if you are building a kernel for an EISA-based machine.
676
677 Otherwise, say N.
678
679config MCA
680 bool
681 help
682 MicroChannel Architecture is found in some IBM PS/2 machines and
683 laptops. It is a bus system similar to PCI or ISA. See
684 <file:Documentation/mca.txt> (and especially the web page given
685 there) before attempting to build an MCA bus kernel.
686
687config SBUS
688 bool
689
690config SUPERHYWAY 647config SUPERHYWAY
691 tristate "SuperHyway Bus support" 648 tristate "SuperHyway Bus support"
692 depends on CPU_SUBTYPE_SH4_202 649 depends on CPU_SUBTYPE_SH4_202
693 650
694config MAPLE 651config MAPLE
695 bool "Maple Bus support" 652 bool "Maple Bus support"
696 depends on SH_DREAMCAST 653 depends on SH_DREAMCAST
697 help 654 help
698 The Maple Bus is SEGA's serial communication bus for peripherals 655 The Maple Bus is SEGA's serial communication bus for peripherals
699 on the Dreamcast. Without this bus support you won't be able to 656 on the Dreamcast. Without this bus support you won't be able to
700 get your Dreamcast keyboard etc to work, so most users 657 get your Dreamcast keyboard etc to work, so most users
701 probably want to say 'Y' here, unless you are only using the 658 probably want to say 'Y' here, unless you are only using the
702 Dreamcast with a serial line terminal or a remote network 659 Dreamcast with a serial line terminal or a remote network
703 connection. 660 connection.
704 661
705source "arch/sh/drivers/pci/Kconfig" 662source "arch/sh/drivers/pci/Kconfig"
706 663
664source "drivers/pci/pcie/Kconfig"
665
707source "drivers/pci/Kconfig" 666source "drivers/pci/Kconfig"
708 667
709source "drivers/pcmcia/Kconfig" 668source "drivers/pcmcia/Kconfig"
diff --git a/arch/sh/boards/board-ap325rxa.c b/arch/sh/boards/board-ap325rxa.c
index 1c67cba6e34f..72da416f6162 100644
--- a/arch/sh/boards/board-ap325rxa.c
+++ b/arch/sh/boards/board-ap325rxa.c
@@ -18,8 +18,10 @@
18#include <linux/mtd/sh_flctl.h> 18#include <linux/mtd/sh_flctl.h>
19#include <linux/delay.h> 19#include <linux/delay.h>
20#include <linux/i2c.h> 20#include <linux/i2c.h>
21#include <linux/smc911x.h> 21#include <linux/smsc911x.h>
22#include <linux/gpio.h> 22#include <linux/gpio.h>
23#include <linux/spi/spi.h>
24#include <linux/spi/spi_gpio.h>
23#include <media/soc_camera_platform.h> 25#include <media/soc_camera_platform.h>
24#include <media/sh_mobile_ceu.h> 26#include <media/sh_mobile_ceu.h>
25#include <video/sh_mobile_lcdc.h> 27#include <video/sh_mobile_lcdc.h>
@@ -27,12 +29,14 @@
27#include <asm/clock.h> 29#include <asm/clock.h>
28#include <cpu/sh7723.h> 30#include <cpu/sh7723.h>
29 31
30static struct smc911x_platdata smc911x_info = { 32static struct smsc911x_platform_config smsc911x_config = {
31 .flags = SMC911X_USE_32BIT, 33 .phy_interface = PHY_INTERFACE_MODE_MII,
32 .irq_flags = IRQF_TRIGGER_LOW, 34 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
35 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
36 .flags = SMSC911X_USE_32BIT,
33}; 37};
34 38
35static struct resource smc9118_resources[] = { 39static struct resource smsc9118_resources[] = {
36 [0] = { 40 [0] = {
37 .start = 0xb6080000, 41 .start = 0xb6080000,
38 .end = 0xb60fffff, 42 .end = 0xb60fffff,
@@ -45,13 +49,13 @@ static struct resource smc9118_resources[] = {
45 } 49 }
46}; 50};
47 51
48static struct platform_device smc9118_device = { 52static struct platform_device smsc9118_device = {
49 .name = "smc911x", 53 .name = "smsc911x",
50 .id = -1, 54 .id = -1,
51 .num_resources = ARRAY_SIZE(smc9118_resources), 55 .num_resources = ARRAY_SIZE(smsc9118_resources),
52 .resource = smc9118_resources, 56 .resource = smsc9118_resources,
53 .dev = { 57 .dev = {
54 .platform_data = &smc911x_info, 58 .platform_data = &smsc911x_config,
55 }, 59 },
56}; 60};
57 61
@@ -212,6 +216,12 @@ static struct platform_device lcdc_device = {
212 }, 216 },
213}; 217};
214 218
219static void camera_power(int val)
220{
221 gpio_set_value(GPIO_PTZ5, val); /* RST_CAM/RSTB */
222 mdelay(10);
223}
224
215#ifdef CONFIG_I2C 225#ifdef CONFIG_I2C
216static unsigned char camera_ncm03j_magic[] = 226static unsigned char camera_ncm03j_magic[] =
217{ 227{
@@ -241,9 +251,11 @@ static int camera_set_capture(struct soc_camera_platform_info *info,
241 int ret = 0; 251 int ret = 0;
242 int i; 252 int i;
243 253
254 camera_power(0);
244 if (!enable) 255 if (!enable)
245 return 0; /* no disable for now */ 256 return 0; /* no disable for now */
246 257
258 camera_power(1);
247 for (i = 0; i < ARRAY_SIZE(camera_ncm03j_magic); i += 2) { 259 for (i = 0; i < ARRAY_SIZE(camera_ncm03j_magic); i += 2) {
248 u_int8_t buf[8]; 260 u_int8_t buf[8];
249 261
@@ -315,8 +327,22 @@ static struct platform_device ceu_device = {
315 }, 327 },
316}; 328};
317 329
330struct spi_gpio_platform_data sdcard_cn3_platform_data = {
331 .sck = GPIO_PTD0,
332 .mosi = GPIO_PTD1,
333 .miso = GPIO_PTD2,
334 .num_chipselect = 1,
335};
336
337static struct platform_device sdcard_cn3_device = {
338 .name = "spi_gpio",
339 .dev = {
340 .platform_data = &sdcard_cn3_platform_data,
341 },
342};
343
318static struct platform_device *ap325rxa_devices[] __initdata = { 344static struct platform_device *ap325rxa_devices[] __initdata = {
319 &smc9118_device, 345 &smsc9118_device,
320 &ap325rxa_nor_flash_device, 346 &ap325rxa_nor_flash_device,
321 &lcdc_device, 347 &lcdc_device,
322 &ceu_device, 348 &ceu_device,
@@ -324,6 +350,7 @@ static struct platform_device *ap325rxa_devices[] __initdata = {
324 &camera_device, 350 &camera_device,
325#endif 351#endif
326 &nand_flash_device, 352 &nand_flash_device,
353 &sdcard_cn3_device,
327}; 354};
328 355
329static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = { 356static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = {
@@ -332,6 +359,15 @@ static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = {
332 }, 359 },
333}; 360};
334 361
362static struct spi_board_info ap325rxa_spi_devices[] = {
363 {
364 .modalias = "mmc_spi",
365 .max_speed_hz = 5000000,
366 .chip_select = 0,
367 .controller_data = (void *) GPIO_PTD5,
368 },
369};
370
335static int __init ap325rxa_devices_setup(void) 371static int __init ap325rxa_devices_setup(void)
336{ 372{
337 /* LD3 and LD4 LEDs */ 373 /* LD3 and LD4 LEDs */
@@ -398,7 +434,7 @@ static int __init ap325rxa_devices_setup(void)
398 gpio_request(GPIO_PTZ6, NULL); 434 gpio_request(GPIO_PTZ6, NULL);
399 gpio_direction_output(GPIO_PTZ6, 0); /* STBY_CAM */ 435 gpio_direction_output(GPIO_PTZ6, 0); /* STBY_CAM */
400 gpio_request(GPIO_PTZ5, NULL); 436 gpio_request(GPIO_PTZ5, NULL);
401 gpio_direction_output(GPIO_PTZ5, 1); /* RST_CAM */ 437 gpio_direction_output(GPIO_PTZ5, 0); /* RST_CAM */
402 gpio_request(GPIO_PTZ4, NULL); 438 gpio_request(GPIO_PTZ4, NULL);
403 gpio_direction_output(GPIO_PTZ4, 0); /* SADDR */ 439 gpio_direction_output(GPIO_PTZ4, 0); /* SADDR */
404 440
@@ -429,6 +465,9 @@ static int __init ap325rxa_devices_setup(void)
429 i2c_register_board_info(0, ap325rxa_i2c_devices, 465 i2c_register_board_info(0, ap325rxa_i2c_devices,
430 ARRAY_SIZE(ap325rxa_i2c_devices)); 466 ARRAY_SIZE(ap325rxa_i2c_devices));
431 467
468 spi_register_board_info(ap325rxa_spi_devices,
469 ARRAY_SIZE(ap325rxa_spi_devices));
470
432 return platform_add_devices(ap325rxa_devices, 471 return platform_add_devices(ap325rxa_devices,
433 ARRAY_SIZE(ap325rxa_devices)); 472 ARRAY_SIZE(ap325rxa_devices));
434} 473}
diff --git a/arch/sh/boards/board-magicpanelr2.c b/arch/sh/boards/board-magicpanelr2.c
index 3de22ccdeb7e..0a37c8bfc959 100644
--- a/arch/sh/boards/board-magicpanelr2.c
+++ b/arch/sh/boards/board-magicpanelr2.c
@@ -14,6 +14,7 @@
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/delay.h> 15#include <linux/delay.h>
16#include <linux/gpio.h> 16#include <linux/gpio.h>
17#include <linux/smsc911x.h>
17#include <linux/mtd/mtd.h> 18#include <linux/mtd/mtd.h>
18#include <linux/mtd/partitions.h> 19#include <linux/mtd/partitions.h>
19#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
@@ -242,7 +243,7 @@ static void __init mpr2_setup(char **cmdline_p)
242 printk(KERN_WARNING "Ethernet not ready\n"); 243 printk(KERN_WARNING "Ethernet not ready\n");
243} 244}
244 245
245static struct resource smc911x_resources[] = { 246static struct resource smsc911x_resources[] = {
246 [0] = { 247 [0] = {
247 .start = 0xa8000000, 248 .start = 0xa8000000,
248 .end = 0xabffffff, 249 .end = 0xabffffff,
@@ -255,11 +256,21 @@ static struct resource smc911x_resources[] = {
255 }, 256 },
256}; 257};
257 258
258static struct platform_device smc911x_device = { 259static struct smsc911x_platform_config smsc911x_config = {
259 .name = "smc911x", 260 .phy_interface = PHY_INTERFACE_MODE_MII,
261 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
262 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
263 .flags = SMSC911X_USE_32BIT,
264};
265
266static struct platform_device smsc911x_device = {
267 .name = "smsc911x",
260 .id = -1, 268 .id = -1,
261 .num_resources = ARRAY_SIZE(smc911x_resources), 269 .num_resources = ARRAY_SIZE(smsc911x_resources),
262 .resource = smc911x_resources, 270 .resource = smsc911x_resources,
271 .dev = {
272 .platform_data = &smsc911x_config,
273 },
263}; 274};
264 275
265static struct resource heartbeat_resources[] = { 276static struct resource heartbeat_resources[] = {
@@ -360,7 +371,7 @@ static void __init set_mtd_partitions(void)
360 371
361static struct platform_device *mpr2_devices[] __initdata = { 372static struct platform_device *mpr2_devices[] __initdata = {
362 &heartbeat_device, 373 &heartbeat_device,
363 &smc911x_device, 374 &smsc911x_device,
364 &flash_device, 375 &flash_device,
365}; 376};
366 377
diff --git a/arch/sh/boards/board-sh7785lcr.c b/arch/sh/boards/board-sh7785lcr.c
index 408bbddaf325..38a64968d7bf 100644
--- a/arch/sh/boards/board-sh7785lcr.c
+++ b/arch/sh/boards/board-sh7785lcr.c
@@ -18,6 +18,7 @@
18#include <linux/i2c.h> 18#include <linux/i2c.h>
19#include <linux/i2c-pca-platform.h> 19#include <linux/i2c-pca-platform.h>
20#include <linux/i2c-algo-pca.h> 20#include <linux/i2c-algo-pca.h>
21#include <linux/irq.h>
21#include <asm/heartbeat.h> 22#include <asm/heartbeat.h>
22#include <mach/sh7785lcr.h> 23#include <mach/sh7785lcr.h>
23 24
diff --git a/arch/sh/boards/mach-highlander/setup.c b/arch/sh/boards/mach-highlander/setup.c
index 806438b42cac..20fe72c515d5 100644
--- a/arch/sh/boards/mach-highlander/setup.c
+++ b/arch/sh/boards/mach-highlander/setup.c
@@ -18,6 +18,7 @@
18#include <linux/ata_platform.h> 18#include <linux/ata_platform.h>
19#include <linux/types.h> 19#include <linux/types.h>
20#include <linux/i2c.h> 20#include <linux/i2c.h>
21#include <linux/irq.h>
21#include <net/ax88796.h> 22#include <net/ax88796.h>
22#include <asm/machvec.h> 23#include <asm/machvec.h>
23#include <mach/highlander.h> 24#include <mach/highlander.h>
diff --git a/arch/sh/boards/mach-hp6xx/setup.c b/arch/sh/boards/mach-hp6xx/setup.c
index 48fece78ff54..746742bdc014 100644
--- a/arch/sh/boards/mach-hp6xx/setup.c
+++ b/arch/sh/boards/mach-hp6xx/setup.c
@@ -12,9 +12,9 @@
12#include <linux/types.h> 12#include <linux/types.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/irq.h>
15#include <asm/hd64461.h> 16#include <asm/hd64461.h>
16#include <asm/io.h> 17#include <asm/io.h>
17#include <asm/irq.h>
18#include <mach/hp6xx.h> 18#include <mach/hp6xx.h>
19#include <cpu/dac.h> 19#include <cpu/dac.h>
20 20
diff --git a/arch/sh/boards/mach-migor/setup.c b/arch/sh/boards/mach-migor/setup.c
index cc1408119c24..28e56c5809a2 100644
--- a/arch/sh/boards/mach-migor/setup.c
+++ b/arch/sh/boards/mach-migor/setup.c
@@ -18,9 +18,12 @@
18#include <linux/delay.h> 18#include <linux/delay.h>
19#include <linux/clk.h> 19#include <linux/clk.h>
20#include <linux/gpio.h> 20#include <linux/gpio.h>
21#include <media/soc_camera_platform.h> 21#include <linux/spi/spi.h>
22#include <media/sh_mobile_ceu.h> 22#include <linux/spi/spi_gpio.h>
23#include <video/sh_mobile_lcdc.h> 23#include <video/sh_mobile_lcdc.h>
24#include <media/sh_mobile_ceu.h>
25#include <media/ov772x.h>
26#include <media/tw9910.h>
24#include <asm/clock.h> 27#include <asm/clock.h>
25#include <asm/machvec.h> 28#include <asm/machvec.h>
26#include <asm/io.h> 29#include <asm/io.h>
@@ -292,9 +295,12 @@ static struct platform_device migor_lcdc_device = {
292}; 295};
293 296
294static struct clk *camera_clk; 297static struct clk *camera_clk;
298static DEFINE_MUTEX(camera_lock);
295 299
296static void camera_power_on(void) 300static void camera_power_on(int is_tw)
297{ 301{
302 mutex_lock(&camera_lock);
303
298 /* Use 10 MHz VIO_CKO instead of 24 MHz to work 304 /* Use 10 MHz VIO_CKO instead of 24 MHz to work
299 * around signal quality issues on Panel Board V2.1. 305 * around signal quality issues on Panel Board V2.1.
300 */ 306 */
@@ -304,6 +310,12 @@ static void camera_power_on(void)
304 310
305 /* use VIO_RST to take camera out of reset */ 311 /* use VIO_RST to take camera out of reset */
306 mdelay(10); 312 mdelay(10);
313 if (is_tw) {
314 gpio_set_value(GPIO_PTT2, 0);
315 gpio_set_value(GPIO_PTT0, 0);
316 } else {
317 gpio_set_value(GPIO_PTT0, 1);
318 }
307 gpio_set_value(GPIO_PTT3, 0); 319 gpio_set_value(GPIO_PTT3, 0);
308 mdelay(10); 320 mdelay(10);
309 gpio_set_value(GPIO_PTT3, 1); 321 gpio_set_value(GPIO_PTT3, 1);
@@ -316,107 +328,29 @@ static void camera_power_off(void)
316 clk_put(camera_clk); 328 clk_put(camera_clk);
317 329
318 gpio_set_value(GPIO_PTT3, 0); 330 gpio_set_value(GPIO_PTT3, 0);
331 mutex_unlock(&camera_lock);
319} 332}
320 333
321static void camera_power(int mode) 334static int ov7725_power(struct device *dev, int mode)
322{ 335{
323 if (mode) 336 if (mode)
324 camera_power_on(); 337 camera_power_on(0);
325 else 338 else
326 camera_power_off(); 339 camera_power_off();
327}
328 340
329#ifdef CONFIG_I2C 341 return 0;
330static unsigned char camera_ov772x_magic[] = 342}
331{
332 0x09, 0x01, 0x0c, 0x20, 0x0d, 0x41, 0x0e, 0x01,
333 0x12, 0x00, 0x13, 0x8F, 0x14, 0x4A, 0x15, 0x00,
334 0x16, 0x00, 0x17, 0x23, 0x18, 0xa0, 0x19, 0x07,
335 0x1a, 0xf0, 0x1b, 0x40, 0x1f, 0x00, 0x20, 0x10,
336 0x22, 0xff, 0x23, 0x01, 0x28, 0x00, 0x29, 0xa0,
337 0x2a, 0x00, 0x2b, 0x00, 0x2c, 0xf0, 0x2d, 0x00,
338 0x2e, 0x00, 0x30, 0x80, 0x31, 0x60, 0x32, 0x00,
339 0x33, 0x00, 0x34, 0x00, 0x3d, 0x80, 0x3e, 0xe2,
340 0x3f, 0x1f, 0x42, 0x80, 0x43, 0x80, 0x44, 0x80,
341 0x45, 0x80, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00,
342 0x49, 0x50, 0x4a, 0x30, 0x4b, 0x50, 0x4c, 0x50,
343 0x4d, 0x00, 0x4e, 0xef, 0x4f, 0x10, 0x50, 0x60,
344 0x51, 0x00, 0x52, 0x00, 0x53, 0x24, 0x54, 0x7a,
345 0x55, 0xfc, 0x62, 0xff, 0x63, 0xf0, 0x64, 0x1f,
346 0x65, 0x00, 0x66, 0x10, 0x67, 0x00, 0x68, 0x00,
347 0x69, 0x5c, 0x6a, 0x11, 0x6b, 0xa2, 0x6c, 0x01,
348 0x6d, 0x50, 0x6e, 0x80, 0x6f, 0x80, 0x70, 0x0f,
349 0x71, 0x00, 0x72, 0x00, 0x73, 0x0f, 0x74, 0x0f,
350 0x75, 0xff, 0x78, 0x10, 0x79, 0x70, 0x7a, 0x70,
351 0x7b, 0xf0, 0x7c, 0xf0, 0x7d, 0xf0, 0x7e, 0x0e,
352 0x7f, 0x1a, 0x80, 0x31, 0x81, 0x5a, 0x82, 0x69,
353 0x83, 0x75, 0x84, 0x7e, 0x85, 0x88, 0x86, 0x8f,
354 0x87, 0x96, 0x88, 0xa3, 0x89, 0xaf, 0x8a, 0xc4,
355 0x8b, 0xd7, 0x8c, 0xe8, 0x8d, 0x20, 0x8e, 0x00,
356 0x8f, 0x00, 0x90, 0x08, 0x91, 0x10, 0x92, 0x1f,
357 0x93, 0x01, 0x94, 0x2c, 0x95, 0x24, 0x96, 0x08,
358 0x97, 0x14, 0x98, 0x24, 0x99, 0x38, 0x9a, 0x9e,
359 0x9b, 0x00, 0x9c, 0x40, 0x9e, 0x11, 0x9f, 0x02,
360 0xa0, 0x00, 0xa1, 0x40, 0xa2, 0x40, 0xa3, 0x06,
361 0xa4, 0x00, 0xa6, 0x00, 0xa7, 0x40, 0xa8, 0x40,
362 0xa9, 0x80, 0xaa, 0x80, 0xab, 0x06, 0xac, 0xff,
363 0x12, 0x06, 0x64, 0x3f, 0x12, 0x46, 0x17, 0x3f,
364 0x18, 0x50, 0x19, 0x03, 0x1a, 0x78, 0x29, 0x50,
365 0x2c, 0x78,
366};
367 343
368static int ov772x_set_capture(struct soc_camera_platform_info *info, 344static int tw9910_power(struct device *dev, int mode)
369 int enable)
370{ 345{
371 struct i2c_adapter *a = i2c_get_adapter(0); 346 if (mode)
372 struct i2c_msg msg; 347 camera_power_on(1);
373 int ret = 0; 348 else
374 int i; 349 camera_power_off();
375
376 if (!enable)
377 return 0; /* camera_power_off() is enough */
378
379 for (i = 0; i < ARRAY_SIZE(camera_ov772x_magic); i += 2) {
380 u_int8_t buf[8];
381
382 msg.addr = 0x21;
383 msg.buf = buf;
384 msg.len = 2;
385 msg.flags = 0;
386
387 buf[0] = camera_ov772x_magic[i];
388 buf[1] = camera_ov772x_magic[i + 1];
389
390 ret = (ret < 0) ? ret : i2c_transfer(a, &msg, 1);
391 }
392 350
393 return ret; 351 return 0;
394} 352}
395 353
396static struct soc_camera_platform_info ov772x_info = {
397 .iface = 0,
398 .format_name = "RGB565",
399 .format_depth = 16,
400 .format = {
401 .pixelformat = V4L2_PIX_FMT_RGB565,
402 .colorspace = V4L2_COLORSPACE_SRGB,
403 .width = 320,
404 .height = 240,
405 },
406 .bus_param = SOCAM_PCLK_SAMPLE_RISING | SOCAM_HSYNC_ACTIVE_HIGH |
407 SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_MASTER | SOCAM_DATAWIDTH_8,
408 .power = camera_power,
409 .set_capture = ov772x_set_capture,
410};
411
412static struct platform_device migor_camera_device = {
413 .name = "soc_camera_platform",
414 .dev = {
415 .platform_data = &ov772x_info,
416 },
417};
418#endif /* CONFIG_I2C */
419
420static struct sh_mobile_ceu_info sh_mobile_ceu_info = { 354static struct sh_mobile_ceu_info sh_mobile_ceu_info = {
421 .flags = SOCAM_MASTER | SOCAM_DATAWIDTH_8 | SOCAM_PCLK_SAMPLE_RISING \ 355 .flags = SOCAM_MASTER | SOCAM_DATAWIDTH_8 | SOCAM_PCLK_SAMPLE_RISING \
422 | SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH, 356 | SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH,
@@ -448,16 +382,43 @@ static struct platform_device migor_ceu_device = {
448 }, 382 },
449}; 383};
450 384
385static struct ov772x_camera_info ov7725_info = {
386 .buswidth = SOCAM_DATAWIDTH_8,
387 .link = {
388 .power = ov7725_power,
389 },
390};
391
392static struct tw9910_video_info tw9910_info = {
393 .buswidth = SOCAM_DATAWIDTH_8,
394 .mpout = TW9910_MPO_FIELD,
395 .link = {
396 .power = tw9910_power,
397 }
398};
399
400struct spi_gpio_platform_data sdcard_cn9_platform_data = {
401 .sck = GPIO_PTD0,
402 .mosi = GPIO_PTD1,
403 .miso = GPIO_PTD2,
404 .num_chipselect = 1,
405};
406
407static struct platform_device sdcard_cn9_device = {
408 .name = "spi_gpio",
409 .dev = {
410 .platform_data = &sdcard_cn9_platform_data,
411 },
412};
413
451static struct platform_device *migor_devices[] __initdata = { 414static struct platform_device *migor_devices[] __initdata = {
452 &smc91x_eth_device, 415 &smc91x_eth_device,
453 &sh_keysc_device, 416 &sh_keysc_device,
454 &migor_lcdc_device, 417 &migor_lcdc_device,
455 &migor_ceu_device, 418 &migor_ceu_device,
456#ifdef CONFIG_I2C
457 &migor_camera_device,
458#endif
459 &migor_nor_flash_device, 419 &migor_nor_flash_device,
460 &migor_nand_flash_device, 420 &migor_nand_flash_device,
421 &sdcard_cn9_device,
461}; 422};
462 423
463static struct i2c_board_info migor_i2c_devices[] = { 424static struct i2c_board_info migor_i2c_devices[] = {
@@ -468,6 +429,23 @@ static struct i2c_board_info migor_i2c_devices[] = {
468 I2C_BOARD_INFO("migor_ts", 0x51), 429 I2C_BOARD_INFO("migor_ts", 0x51),
469 .irq = 38, /* IRQ6 */ 430 .irq = 38, /* IRQ6 */
470 }, 431 },
432 {
433 I2C_BOARD_INFO("ov772x", 0x21),
434 .platform_data = &ov7725_info,
435 },
436 {
437 I2C_BOARD_INFO("tw9910", 0x45),
438 .platform_data = &tw9910_info,
439 },
440};
441
442static struct spi_board_info migor_spi_devices[] = {
443 {
444 .modalias = "mmc_spi",
445 .max_speed_hz = 5000000,
446 .chip_select = 0,
447 .controller_data = (void *) GPIO_PTD5,
448 },
471}; 449};
472 450
473static int __init migor_devices_setup(void) 451static int __init migor_devices_setup(void)
@@ -592,6 +570,9 @@ static int __init migor_devices_setup(void)
592 i2c_register_board_info(0, migor_i2c_devices, 570 i2c_register_board_info(0, migor_i2c_devices,
593 ARRAY_SIZE(migor_i2c_devices)); 571 ARRAY_SIZE(migor_i2c_devices));
594 572
573 spi_register_board_info(migor_spi_devices,
574 ARRAY_SIZE(migor_spi_devices));
575
595 return platform_add_devices(migor_devices, ARRAY_SIZE(migor_devices)); 576 return platform_add_devices(migor_devices, ARRAY_SIZE(migor_devices));
596} 577}
597__initcall(migor_devices_setup); 578__initcall(migor_devices_setup);
diff --git a/arch/sh/boards/mach-rsk/devices-rsk7203.c b/arch/sh/boards/mach-rsk/devices-rsk7203.c
index 73f743b9be8d..d8a65ea91665 100644
--- a/arch/sh/boards/mach-rsk/devices-rsk7203.c
+++ b/arch/sh/boards/mach-rsk/devices-rsk7203.c
@@ -15,19 +15,21 @@
15#include <linux/mtd/partitions.h> 15#include <linux/mtd/partitions.h>
16#include <linux/mtd/physmap.h> 16#include <linux/mtd/physmap.h>
17#include <linux/mtd/map.h> 17#include <linux/mtd/map.h>
18#include <linux/smc911x.h> 18#include <linux/smsc911x.h>
19#include <linux/gpio.h> 19#include <linux/gpio.h>
20#include <linux/leds.h> 20#include <linux/leds.h>
21#include <asm/machvec.h> 21#include <asm/machvec.h>
22#include <asm/io.h> 22#include <asm/io.h>
23#include <cpu/sh7203.h> 23#include <cpu/sh7203.h>
24 24
25static struct smc911x_platdata smc911x_info = { 25static struct smsc911x_platform_config smsc911x_config = {
26 .flags = SMC911X_USE_16BIT, 26 .phy_interface = PHY_INTERFACE_MODE_MII,
27 .irq_flags = IRQF_TRIGGER_LOW, 27 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
28 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
29 .flags = SMSC911X_USE_16BIT,
28}; 30};
29 31
30static struct resource smc911x_resources[] = { 32static struct resource smsc911x_resources[] = {
31 [0] = { 33 [0] = {
32 .start = 0x24000000, 34 .start = 0x24000000,
33 .end = 0x24000000 + 0x100, 35 .end = 0x24000000 + 0x100,
@@ -40,13 +42,13 @@ static struct resource smc911x_resources[] = {
40 }, 42 },
41}; 43};
42 44
43static struct platform_device smc911x_device = { 45static struct platform_device smsc911x_device = {
44 .name = "smc911x", 46 .name = "smsc911x",
45 .id = -1, 47 .id = -1,
46 .num_resources = ARRAY_SIZE(smc911x_resources), 48 .num_resources = ARRAY_SIZE(smsc911x_resources),
47 .resource = smc911x_resources, 49 .resource = smsc911x_resources,
48 .dev = { 50 .dev = {
49 .platform_data = &smc911x_info, 51 .platform_data = &smsc911x_config,
50 }, 52 },
51}; 53};
52 54
@@ -87,7 +89,7 @@ static struct platform_device led_device = {
87}; 89};
88 90
89static struct platform_device *rsk7203_devices[] __initdata = { 91static struct platform_device *rsk7203_devices[] __initdata = {
90 &smc911x_device, 92 &smsc911x_device,
91 &led_device, 93 &led_device,
92}; 94};
93 95
diff --git a/arch/sh/boards/mach-x3proto/setup.c b/arch/sh/boards/mach-x3proto/setup.c
index a70d23b21788..a340492087fa 100644
--- a/arch/sh/boards/mach-x3proto/setup.c
+++ b/arch/sh/boards/mach-x3proto/setup.c
@@ -14,6 +14,7 @@
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/io.h> 15#include <linux/io.h>
16#include <linux/smc91x.h> 16#include <linux/smc91x.h>
17#include <linux/irq.h>
17#include <asm/ilsel.h> 18#include <asm/ilsel.h>
18 19
19static struct resource heartbeat_resources[] = { 20static struct resource heartbeat_resources[] = {
diff --git a/arch/sh/configs/ap325rxa_defconfig b/arch/sh/configs/ap325rxa_defconfig
index 874dd9726e52..352f87d50fdc 100644
--- a/arch/sh/configs/ap325rxa_defconfig
+++ b/arch/sh/configs/ap325rxa_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.27 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 21 18:20:06 2008 4# Tue Jan 27 11:45:08 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -43,12 +45,12 @@ CONFIG_BSD_PROCESS_ACCT=y
43# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
44# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
45CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
46# CONFIG_CGROUPS is not set
47CONFIG_GROUP_SCHED=y 48CONFIG_GROUP_SCHED=y
48CONFIG_FAIR_GROUP_SCHED=y 49CONFIG_FAIR_GROUP_SCHED=y
49# CONFIG_RT_GROUP_SCHED is not set 50# CONFIG_RT_GROUP_SCHED is not set
50CONFIG_USER_SCHED=y 51CONFIG_USER_SCHED=y
51# CONFIG_CGROUP_SCHED is not set 52# CONFIG_CGROUP_SCHED is not set
53# CONFIG_CGROUPS is not set
52CONFIG_SYSFS_DEPRECATED=y 54CONFIG_SYSFS_DEPRECATED=y
53CONFIG_SYSFS_DEPRECATED_V2=y 55CONFIG_SYSFS_DEPRECATED_V2=y
54# CONFIG_RELAY is not set 56# CONFIG_RELAY is not set
@@ -75,12 +77,10 @@ CONFIG_EVENTFD=y
75CONFIG_SHMEM=y 77CONFIG_SHMEM=y
76CONFIG_AIO=y 78CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 79CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLAB=y 80CONFIG_SLAB=y
80# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
81# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
82# CONFIG_PROFILING is not set 83# CONFIG_PROFILING is not set
83# CONFIG_MARKERS is not set
84CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
85CONFIG_HAVE_IOREMAP_PROT=y 85CONFIG_HAVE_IOREMAP_PROT=y
86CONFIG_HAVE_KPROBES=y 86CONFIG_HAVE_KPROBES=y
@@ -90,7 +90,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 92CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 93CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 94CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 95# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +97,9 @@ CONFIG_MODULE_UNLOAD=y
98# CONFIG_MODULE_FORCE_UNLOAD is not set 97# CONFIG_MODULE_FORCE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 98# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 99# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 100CONFIG_BLOCK=y
103# CONFIG_LBD is not set 101# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 102# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 103# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 104# CONFIG_BLK_DEV_INTEGRITY is not set
108 105
@@ -119,6 +116,10 @@ CONFIG_DEFAULT_CFQ=y
119# CONFIG_DEFAULT_NOOP is not set 116# CONFIG_DEFAULT_NOOP is not set
120CONFIG_DEFAULT_IOSCHED="cfq" 117CONFIG_DEFAULT_IOSCHED="cfq"
121CONFIG_CLASSIC_RCU=y 118CONFIG_CLASSIC_RCU=y
119# CONFIG_TREE_RCU is not set
120# CONFIG_PREEMPT_RCU is not set
121# CONFIG_TREE_RCU_TRACE is not set
122# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 123# CONFIG_FREEZER is not set
123 124
124# 125#
@@ -128,6 +129,7 @@ CONFIG_CPU_SH4=y
128CONFIG_CPU_SH4A=y 129CONFIG_CPU_SH4A=y
129CONFIG_CPU_SHX2=y 130CONFIG_CPU_SHX2=y
130# CONFIG_CPU_SUBTYPE_SH7619 is not set 131# CONFIG_CPU_SUBTYPE_SH7619 is not set
132# CONFIG_CPU_SUBTYPE_SH7201 is not set
131# CONFIG_CPU_SUBTYPE_SH7203 is not set 133# CONFIG_CPU_SUBTYPE_SH7203 is not set
132# CONFIG_CPU_SUBTYPE_SH7206 is not set 134# CONFIG_CPU_SUBTYPE_SH7206 is not set
133# CONFIG_CPU_SUBTYPE_SH7263 is not set 135# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -192,7 +194,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
192CONFIG_SPARSEMEM_STATIC=y 194CONFIG_SPARSEMEM_STATIC=y
193CONFIG_PAGEFLAGS_EXTENDED=y 195CONFIG_PAGEFLAGS_EXTENDED=y
194CONFIG_SPLIT_PTLOCK_CPUS=4 196CONFIG_SPLIT_PTLOCK_CPUS=4
195# CONFIG_RESOURCES_64BIT is not set
196# CONFIG_PHYS_ADDR_T_64BIT is not set 197# CONFIG_PHYS_ADDR_T_64BIT is not set
197CONFIG_ZONE_DMA_FLAG=0 198CONFIG_ZONE_DMA_FLAG=0
198CONFIG_NR_QUICK=2 199CONFIG_NR_QUICK=2
@@ -269,7 +270,6 @@ CONFIG_SECCOMP=y
269# CONFIG_PREEMPT_NONE is not set 270# CONFIG_PREEMPT_NONE is not set
270# CONFIG_PREEMPT_VOLUNTARY is not set 271# CONFIG_PREEMPT_VOLUNTARY is not set
271CONFIG_PREEMPT=y 272CONFIG_PREEMPT=y
272# CONFIG_PREEMPT_RCU is not set
273CONFIG_GUSA=y 273CONFIG_GUSA=y
274 274
275# 275#
@@ -293,11 +293,18 @@ CONFIG_BINFMT_ELF=y
293# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 293# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
294# CONFIG_HAVE_AOUT is not set 294# CONFIG_HAVE_AOUT is not set
295# CONFIG_BINFMT_MISC is not set 295# CONFIG_BINFMT_MISC is not set
296
297#
298# Power management options (EXPERIMENTAL)
299#
300# CONFIG_PM is not set
301# CONFIG_CPU_IDLE is not set
296CONFIG_NET=y 302CONFIG_NET=y
297 303
298# 304#
299# Networking options 305# Networking options
300# 306#
307CONFIG_COMPAT_NET_DEV_OPS=y
301CONFIG_PACKET=y 308CONFIG_PACKET=y
302# CONFIG_PACKET_MMAP is not set 309# CONFIG_PACKET_MMAP is not set
303CONFIG_UNIX=y 310CONFIG_UNIX=y
@@ -353,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
354# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
355# CONFIG_NET_SCHED is not set 362# CONFIG_NET_SCHED is not set
363# CONFIG_DCB is not set
356 364
357# 365#
358# Network testing 366# Network testing
@@ -368,8 +376,9 @@ CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
369# CONFIG_WIRELESS_OLD_REGULATORY is not set 377# CONFIG_WIRELESS_OLD_REGULATORY is not set
370# CONFIG_WIRELESS_EXT is not set 378# CONFIG_WIRELESS_EXT is not set
379# CONFIG_LIB80211 is not set
371# CONFIG_MAC80211 is not set 380# CONFIG_MAC80211 is not set
372# CONFIG_IEEE80211 is not set 381# CONFIG_WIMAX is not set
373# CONFIG_RFKILL is not set 382# CONFIG_RFKILL is not set
374# CONFIG_NET_9P is not set 383# CONFIG_NET_9P is not set
375 384
@@ -392,6 +401,7 @@ CONFIG_MTD=y
392# CONFIG_MTD_DEBUG is not set 401# CONFIG_MTD_DEBUG is not set
393CONFIG_MTD_CONCAT=y 402CONFIG_MTD_CONCAT=y
394CONFIG_MTD_PARTITIONS=y 403CONFIG_MTD_PARTITIONS=y
404# CONFIG_MTD_TESTS is not set
395# CONFIG_MTD_REDBOOT_PARTS is not set 405# CONFIG_MTD_REDBOOT_PARTS is not set
396CONFIG_MTD_CMDLINE_PARTS=y 406CONFIG_MTD_CMDLINE_PARTS=y
397# CONFIG_MTD_AR7_PARTS is not set 407# CONFIG_MTD_AR7_PARTS is not set
@@ -439,14 +449,14 @@ CONFIG_MTD_CFI_UTIL=y
439# 449#
440# CONFIG_MTD_COMPLEX_MAPPINGS is not set 450# CONFIG_MTD_COMPLEX_MAPPINGS is not set
441CONFIG_MTD_PHYSMAP=y 451CONFIG_MTD_PHYSMAP=y
442CONFIG_MTD_PHYSMAP_START=0xffffffff 452# CONFIG_MTD_PHYSMAP_COMPAT is not set
443CONFIG_MTD_PHYSMAP_LEN=0
444CONFIG_MTD_PHYSMAP_BANKWIDTH=0
445# CONFIG_MTD_PLATRAM is not set 453# CONFIG_MTD_PLATRAM is not set
446 454
447# 455#
448# Self-contained MTD device drivers 456# Self-contained MTD device drivers
449# 457#
458# CONFIG_MTD_DATAFLASH is not set
459# CONFIG_MTD_M25P80 is not set
450# CONFIG_MTD_SLRAM is not set 460# CONFIG_MTD_SLRAM is not set
451# CONFIG_MTD_PHRAM is not set 461# CONFIG_MTD_PHRAM is not set
452# CONFIG_MTD_MTDRAM is not set 462# CONFIG_MTD_MTDRAM is not set
@@ -470,9 +480,23 @@ CONFIG_MTD_NAND_SH_FLCTL=y
470# CONFIG_MTD_ONENAND is not set 480# CONFIG_MTD_ONENAND is not set
471 481
472# 482#
483# LPDDR flash memory drivers
484#
485# CONFIG_MTD_LPDDR is not set
486# CONFIG_MTD_QINFO_PROBE is not set
487
488#
473# UBI - Unsorted block images 489# UBI - Unsorted block images
474# 490#
475# CONFIG_MTD_UBI is not set 491CONFIG_MTD_UBI=y
492CONFIG_MTD_UBI_WL_THRESHOLD=4096
493CONFIG_MTD_UBI_BEB_RESERVE=1
494# CONFIG_MTD_UBI_GLUEBI is not set
495
496#
497# UBI debugging options
498#
499# CONFIG_MTD_UBI_DEBUG is not set
476# CONFIG_PARPORT is not set 500# CONFIG_PARPORT is not set
477CONFIG_BLK_DEV=y 501CONFIG_BLK_DEV=y
478# CONFIG_BLK_DEV_COW_COMMON is not set 502# CONFIG_BLK_DEV_COW_COMMON is not set
@@ -487,7 +511,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
487# CONFIG_BLK_DEV_HD is not set 511# CONFIG_BLK_DEV_HD is not set
488CONFIG_MISC_DEVICES=y 512CONFIG_MISC_DEVICES=y
489# CONFIG_EEPROM_93CX6 is not set 513# CONFIG_EEPROM_93CX6 is not set
514# CONFIG_ICS932S401 is not set
490# CONFIG_ENCLOSURE_SERVICES is not set 515# CONFIG_ENCLOSURE_SERVICES is not set
516# CONFIG_C2PORT is not set
491CONFIG_HAVE_IDE=y 517CONFIG_HAVE_IDE=y
492# CONFIG_IDE is not set 518# CONFIG_IDE is not set
493 519
@@ -530,6 +556,7 @@ CONFIG_SCSI_WAIT_SCAN=m
530# CONFIG_SCSI_SRP_ATTRS is not set 556# CONFIG_SCSI_SRP_ATTRS is not set
531CONFIG_SCSI_LOWLEVEL=y 557CONFIG_SCSI_LOWLEVEL=y
532# CONFIG_ISCSI_TCP is not set 558# CONFIG_ISCSI_TCP is not set
559# CONFIG_LIBFC is not set
533# CONFIG_SCSI_DEBUG is not set 560# CONFIG_SCSI_DEBUG is not set
534# CONFIG_SCSI_DH is not set 561# CONFIG_SCSI_DH is not set
535# CONFIG_ATA is not set 562# CONFIG_ATA is not set
@@ -541,13 +568,34 @@ CONFIG_NETDEVICES=y
541# CONFIG_EQUALIZER is not set 568# CONFIG_EQUALIZER is not set
542# CONFIG_TUN is not set 569# CONFIG_TUN is not set
543# CONFIG_VETH is not set 570# CONFIG_VETH is not set
544# CONFIG_PHYLIB is not set 571CONFIG_PHYLIB=y
572
573#
574# MII PHY device drivers
575#
576# CONFIG_MARVELL_PHY is not set
577# CONFIG_DAVICOM_PHY is not set
578# CONFIG_QSEMI_PHY is not set
579# CONFIG_LXT_PHY is not set
580# CONFIG_CICADA_PHY is not set
581# CONFIG_VITESSE_PHY is not set
582CONFIG_SMSC_PHY=y
583# CONFIG_BROADCOM_PHY is not set
584# CONFIG_ICPLUS_PHY is not set
585# CONFIG_REALTEK_PHY is not set
586# CONFIG_NATIONAL_PHY is not set
587# CONFIG_STE10XP is not set
588# CONFIG_LSI_ET1011C_PHY is not set
589# CONFIG_FIXED_PHY is not set
590# CONFIG_MDIO_BITBANG is not set
545CONFIG_NET_ETHERNET=y 591CONFIG_NET_ETHERNET=y
546CONFIG_MII=y 592CONFIG_MII=y
547# CONFIG_AX88796 is not set 593# CONFIG_AX88796 is not set
548# CONFIG_STNIC is not set 594# CONFIG_STNIC is not set
549# CONFIG_SMC91X is not set 595# CONFIG_SMC91X is not set
550CONFIG_SMC911X=y 596# CONFIG_ENC28J60 is not set
597# CONFIG_SMC911X is not set
598CONFIG_SMSC911X=y
551# CONFIG_IBM_NEW_EMAC_ZMII is not set 599# CONFIG_IBM_NEW_EMAC_ZMII is not set
552# CONFIG_IBM_NEW_EMAC_RGMII is not set 600# CONFIG_IBM_NEW_EMAC_RGMII is not set
553# CONFIG_IBM_NEW_EMAC_TAH is not set 601# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -565,6 +613,10 @@ CONFIG_SMC911X=y
565# CONFIG_WLAN_PRE80211 is not set 613# CONFIG_WLAN_PRE80211 is not set
566# CONFIG_WLAN_80211 is not set 614# CONFIG_WLAN_80211 is not set
567# CONFIG_IWLWIFI_LEDS is not set 615# CONFIG_IWLWIFI_LEDS is not set
616
617#
618# Enable WiMAX (Networking options) to see the WiMAX drivers
619#
568# CONFIG_WAN is not set 620# CONFIG_WAN is not set
569# CONFIG_PPP is not set 621# CONFIG_PPP is not set
570# CONFIG_SLIP is not set 622# CONFIG_SLIP is not set
@@ -630,6 +682,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
630CONFIG_SERIAL_CORE=y 682CONFIG_SERIAL_CORE=y
631CONFIG_SERIAL_CORE_CONSOLE=y 683CONFIG_SERIAL_CORE_CONSOLE=y
632CONFIG_UNIX98_PTYS=y 684CONFIG_UNIX98_PTYS=y
685# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
633CONFIG_LEGACY_PTYS=y 686CONFIG_LEGACY_PTYS=y
634CONFIG_LEGACY_PTY_COUNT=256 687CONFIG_LEGACY_PTY_COUNT=256
635# CONFIG_IPMI_HANDLER is not set 688# CONFIG_IPMI_HANDLER is not set
@@ -637,19 +690,102 @@ CONFIG_HW_RANDOM=y
637# CONFIG_R3964 is not set 690# CONFIG_R3964 is not set
638# CONFIG_RAW_DRIVER is not set 691# CONFIG_RAW_DRIVER is not set
639# CONFIG_TCG_TPM is not set 692# CONFIG_TCG_TPM is not set
640# CONFIG_I2C is not set 693CONFIG_I2C=y
641# CONFIG_SPI is not set 694CONFIG_I2C_BOARDINFO=y
695CONFIG_I2C_CHARDEV=y
696CONFIG_I2C_HELPER_AUTO=y
697
698#
699# I2C Hardware Bus support
700#
701
702#
703# I2C system bus drivers (mostly embedded / system-on-chip)
704#
705# CONFIG_I2C_GPIO is not set
706# CONFIG_I2C_OCORES is not set
707CONFIG_I2C_SH_MOBILE=y
708# CONFIG_I2C_SIMTEC is not set
709
710#
711# External I2C/SMBus adapter drivers
712#
713# CONFIG_I2C_PARPORT_LIGHT is not set
714# CONFIG_I2C_TAOS_EVM is not set
715
716#
717# Other I2C/SMBus bus drivers
718#
719# CONFIG_I2C_PCA_PLATFORM is not set
720# CONFIG_I2C_STUB is not set
721
722#
723# Miscellaneous I2C Chip support
724#
725# CONFIG_DS1682 is not set
726# CONFIG_AT24 is not set
727# CONFIG_SENSORS_EEPROM is not set
728# CONFIG_SENSORS_PCF8574 is not set
729# CONFIG_PCF8575 is not set
730# CONFIG_SENSORS_PCA9539 is not set
731# CONFIG_SENSORS_PCF8591 is not set
732# CONFIG_SENSORS_MAX6875 is not set
733# CONFIG_SENSORS_TSL2550 is not set
734# CONFIG_I2C_DEBUG_CORE is not set
735# CONFIG_I2C_DEBUG_ALGO is not set
736# CONFIG_I2C_DEBUG_BUS is not set
737# CONFIG_I2C_DEBUG_CHIP is not set
738CONFIG_SPI=y
739CONFIG_SPI_MASTER=y
740
741#
742# SPI Master Controller Drivers
743#
744CONFIG_SPI_BITBANG=y
745CONFIG_SPI_GPIO=y
746# CONFIG_SPI_SH_SCI is not set
747
748#
749# SPI Protocol Masters
750#
751# CONFIG_SPI_AT25 is not set
752# CONFIG_SPI_SPIDEV is not set
753# CONFIG_SPI_TLE62X0 is not set
754CONFIG_ARCH_REQUIRE_GPIOLIB=y
755CONFIG_GPIOLIB=y
756# CONFIG_GPIO_SYSFS is not set
757
758#
759# Memory mapped GPIO expanders:
760#
761
762#
763# I2C GPIO expanders:
764#
765# CONFIG_GPIO_MAX732X is not set
766# CONFIG_GPIO_PCA953X is not set
767# CONFIG_GPIO_PCF857X is not set
768
769#
770# PCI GPIO expanders:
771#
772
773#
774# SPI GPIO expanders:
775#
776# CONFIG_GPIO_MAX7301 is not set
777# CONFIG_GPIO_MCP23S08 is not set
642# CONFIG_W1 is not set 778# CONFIG_W1 is not set
643# CONFIG_POWER_SUPPLY is not set 779# CONFIG_POWER_SUPPLY is not set
644# CONFIG_HWMON is not set 780# CONFIG_HWMON is not set
645# CONFIG_THERMAL is not set 781# CONFIG_THERMAL is not set
646# CONFIG_THERMAL_HWMON is not set 782# CONFIG_THERMAL_HWMON is not set
647# CONFIG_WATCHDOG is not set 783# CONFIG_WATCHDOG is not set
784CONFIG_SSB_POSSIBLE=y
648 785
649# 786#
650# Sonics Silicon Backplane 787# Sonics Silicon Backplane
651# 788#
652CONFIG_SSB_POSSIBLE=y
653# CONFIG_SSB is not set 789# CONFIG_SSB is not set
654 790
655# 791#
@@ -658,8 +794,14 @@ CONFIG_SSB_POSSIBLE=y
658# CONFIG_MFD_CORE is not set 794# CONFIG_MFD_CORE is not set
659# CONFIG_MFD_SM501 is not set 795# CONFIG_MFD_SM501 is not set
660# CONFIG_HTC_PASIC3 is not set 796# CONFIG_HTC_PASIC3 is not set
797# CONFIG_TPS65010 is not set
798# CONFIG_TWL4030_CORE is not set
661# CONFIG_MFD_TMIO is not set 799# CONFIG_MFD_TMIO is not set
800# CONFIG_PMIC_DA903X is not set
662# CONFIG_MFD_WM8400 is not set 801# CONFIG_MFD_WM8400 is not set
802# CONFIG_MFD_WM8350_I2C is not set
803# CONFIG_MFD_PCF50633 is not set
804# CONFIG_REGULATOR is not set
663 805
664# 806#
665# Multimedia devices 807# Multimedia devices
@@ -668,13 +810,47 @@ CONFIG_SSB_POSSIBLE=y
668# 810#
669# Multimedia core support 811# Multimedia core support
670# 812#
671# CONFIG_VIDEO_DEV is not set 813CONFIG_VIDEO_DEV=y
814CONFIG_VIDEO_V4L2_COMMON=y
815# CONFIG_VIDEO_ALLOW_V4L1 is not set
816CONFIG_VIDEO_V4L1_COMPAT=y
672# CONFIG_DVB_CORE is not set 817# CONFIG_DVB_CORE is not set
673# CONFIG_VIDEO_MEDIA is not set 818CONFIG_VIDEO_MEDIA=y
674 819
675# 820#
676# Multimedia drivers 821# Multimedia drivers
677# 822#
823# CONFIG_MEDIA_ATTACH is not set
824CONFIG_MEDIA_TUNER=y
825# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
826CONFIG_MEDIA_TUNER_SIMPLE=y
827CONFIG_MEDIA_TUNER_TDA8290=y
828CONFIG_MEDIA_TUNER_TDA9887=y
829CONFIG_MEDIA_TUNER_TEA5761=y
830CONFIG_MEDIA_TUNER_TEA5767=y
831CONFIG_MEDIA_TUNER_MT20XX=y
832CONFIG_MEDIA_TUNER_XC2028=y
833CONFIG_MEDIA_TUNER_XC5000=y
834CONFIG_VIDEO_V4L2=y
835CONFIG_VIDEOBUF_GEN=y
836CONFIG_VIDEOBUF_DMA_CONTIG=y
837CONFIG_VIDEO_CAPTURE_DRIVERS=y
838# CONFIG_VIDEO_ADV_DEBUG is not set
839# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
840CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
841# CONFIG_VIDEO_VIVI is not set
842# CONFIG_VIDEO_SAA5246A is not set
843# CONFIG_VIDEO_SAA5249 is not set
844CONFIG_SOC_CAMERA=y
845# CONFIG_SOC_CAMERA_MT9M001 is not set
846# CONFIG_SOC_CAMERA_MT9M111 is not set
847# CONFIG_SOC_CAMERA_MT9T031 is not set
848# CONFIG_SOC_CAMERA_MT9V022 is not set
849# CONFIG_SOC_CAMERA_TW9910 is not set
850CONFIG_SOC_CAMERA_PLATFORM=y
851CONFIG_SOC_CAMERA_OV772X=y
852CONFIG_VIDEO_SH_MOBILE_CEU=y
853# CONFIG_RADIO_ADAPTERS is not set
678# CONFIG_DAB is not set 854# CONFIG_DAB is not set
679 855
680# 856#
@@ -682,7 +858,34 @@ CONFIG_SSB_POSSIBLE=y
682# 858#
683# CONFIG_VGASTATE is not set 859# CONFIG_VGASTATE is not set
684# CONFIG_VIDEO_OUTPUT_CONTROL is not set 860# CONFIG_VIDEO_OUTPUT_CONTROL is not set
685# CONFIG_FB is not set 861CONFIG_FB=y
862# CONFIG_FIRMWARE_EDID is not set
863# CONFIG_FB_DDC is not set
864# CONFIG_FB_BOOT_VESA_SUPPORT is not set
865# CONFIG_FB_CFB_FILLRECT is not set
866# CONFIG_FB_CFB_COPYAREA is not set
867# CONFIG_FB_CFB_IMAGEBLIT is not set
868# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
869CONFIG_FB_SYS_FILLRECT=y
870CONFIG_FB_SYS_COPYAREA=y
871CONFIG_FB_SYS_IMAGEBLIT=y
872# CONFIG_FB_FOREIGN_ENDIAN is not set
873CONFIG_FB_SYS_FOPS=y
874CONFIG_FB_DEFERRED_IO=y
875# CONFIG_FB_SVGALIB is not set
876# CONFIG_FB_MACMODES is not set
877# CONFIG_FB_BACKLIGHT is not set
878# CONFIG_FB_MODE_HELPERS is not set
879# CONFIG_FB_TILEBLITTING is not set
880
881#
882# Frame buffer hardware drivers
883#
884# CONFIG_FB_S1D13XXX is not set
885CONFIG_FB_SH_MOBILE_LCDC=y
886# CONFIG_FB_VIRTUAL is not set
887# CONFIG_FB_METRONOME is not set
888# CONFIG_FB_MB862XX is not set
686# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 889# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
687 890
688# 891#
@@ -694,14 +897,103 @@ CONFIG_SSB_POSSIBLE=y
694# Console display driver support 897# Console display driver support
695# 898#
696CONFIG_DUMMY_CONSOLE=y 899CONFIG_DUMMY_CONSOLE=y
900CONFIG_FRAMEBUFFER_CONSOLE=y
901# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
902# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
903# CONFIG_FONTS is not set
904CONFIG_FONT_8x8=y
905CONFIG_FONT_8x16=y
906CONFIG_LOGO=y
907CONFIG_LOGO_LINUX_MONO=y
908CONFIG_LOGO_LINUX_VGA16=y
909CONFIG_LOGO_LINUX_CLUT224=y
910CONFIG_LOGO_SUPERH_MONO=y
911CONFIG_LOGO_SUPERH_VGA16=y
912CONFIG_LOGO_SUPERH_CLUT224=y
697# CONFIG_SOUND is not set 913# CONFIG_SOUND is not set
698# CONFIG_HID_SUPPORT is not set 914# CONFIG_HID_SUPPORT is not set
699# CONFIG_USB_SUPPORT is not set 915# CONFIG_USB_SUPPORT is not set
700# CONFIG_MMC is not set 916CONFIG_MMC=y
917# CONFIG_MMC_DEBUG is not set
918# CONFIG_MMC_UNSAFE_RESUME is not set
919
920#
921# MMC/SD/SDIO Card Drivers
922#
923CONFIG_MMC_BLOCK=y
924CONFIG_MMC_BLOCK_BOUNCE=y
925# CONFIG_SDIO_UART is not set
926# CONFIG_MMC_TEST is not set
927
928#
929# MMC/SD/SDIO Host Controller Drivers
930#
931# CONFIG_MMC_SDHCI is not set
932CONFIG_MMC_SPI=y
701# CONFIG_MEMSTICK is not set 933# CONFIG_MEMSTICK is not set
702# CONFIG_NEW_LEDS is not set 934# CONFIG_NEW_LEDS is not set
703# CONFIG_ACCESSIBILITY is not set 935# CONFIG_ACCESSIBILITY is not set
704# CONFIG_RTC_CLASS is not set 936CONFIG_RTC_LIB=y
937CONFIG_RTC_CLASS=y
938CONFIG_RTC_HCTOSYS=y
939CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
940# CONFIG_RTC_DEBUG is not set
941
942#
943# RTC interfaces
944#
945CONFIG_RTC_INTF_SYSFS=y
946CONFIG_RTC_INTF_PROC=y
947CONFIG_RTC_INTF_DEV=y
948# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
949# CONFIG_RTC_DRV_TEST is not set
950
951#
952# I2C RTC drivers
953#
954# CONFIG_RTC_DRV_DS1307 is not set
955# CONFIG_RTC_DRV_DS1374 is not set
956# CONFIG_RTC_DRV_DS1672 is not set
957# CONFIG_RTC_DRV_MAX6900 is not set
958# CONFIG_RTC_DRV_RS5C372 is not set
959# CONFIG_RTC_DRV_ISL1208 is not set
960# CONFIG_RTC_DRV_X1205 is not set
961CONFIG_RTC_DRV_PCF8563=y
962# CONFIG_RTC_DRV_PCF8583 is not set
963# CONFIG_RTC_DRV_M41T80 is not set
964# CONFIG_RTC_DRV_S35390A is not set
965# CONFIG_RTC_DRV_FM3130 is not set
966# CONFIG_RTC_DRV_RX8581 is not set
967
968#
969# SPI RTC drivers
970#
971# CONFIG_RTC_DRV_M41T94 is not set
972# CONFIG_RTC_DRV_DS1305 is not set
973# CONFIG_RTC_DRV_DS1390 is not set
974# CONFIG_RTC_DRV_MAX6902 is not set
975# CONFIG_RTC_DRV_R9701 is not set
976# CONFIG_RTC_DRV_RS5C348 is not set
977# CONFIG_RTC_DRV_DS3234 is not set
978
979#
980# Platform RTC drivers
981#
982# CONFIG_RTC_DRV_DS1286 is not set
983# CONFIG_RTC_DRV_DS1511 is not set
984# CONFIG_RTC_DRV_DS1553 is not set
985# CONFIG_RTC_DRV_DS1742 is not set
986# CONFIG_RTC_DRV_STK17TA8 is not set
987# CONFIG_RTC_DRV_M48T86 is not set
988# CONFIG_RTC_DRV_M48T35 is not set
989# CONFIG_RTC_DRV_M48T59 is not set
990# CONFIG_RTC_DRV_BQ4802 is not set
991# CONFIG_RTC_DRV_V3020 is not set
992
993#
994# on-CPU RTC drivers
995#
996# CONFIG_RTC_DRV_SH is not set
705# CONFIG_DMADEVICES is not set 997# CONFIG_DMADEVICES is not set
706CONFIG_UIO=y 998CONFIG_UIO=y
707# CONFIG_UIO_PDRV is not set 999# CONFIG_UIO_PDRV is not set
@@ -731,6 +1023,7 @@ CONFIG_FS_POSIX_ACL=y
731CONFIG_FILE_LOCKING=y 1023CONFIG_FILE_LOCKING=y
732# CONFIG_XFS_FS is not set 1024# CONFIG_XFS_FS is not set
733# CONFIG_OCFS2_FS is not set 1025# CONFIG_OCFS2_FS is not set
1026# CONFIG_BTRFS_FS is not set
734CONFIG_DNOTIFY=y 1027CONFIG_DNOTIFY=y
735CONFIG_INOTIFY=y 1028CONFIG_INOTIFY=y
736CONFIG_INOTIFY_USER=y 1029CONFIG_INOTIFY_USER=y
@@ -768,10 +1061,7 @@ CONFIG_TMPFS=y
768# CONFIG_HUGETLBFS is not set 1061# CONFIG_HUGETLBFS is not set
769# CONFIG_HUGETLB_PAGE is not set 1062# CONFIG_HUGETLB_PAGE is not set
770# CONFIG_CONFIGFS_FS is not set 1063# CONFIG_CONFIGFS_FS is not set
771 1064CONFIG_MISC_FILESYSTEMS=y
772#
773# Miscellaneous filesystems
774#
775# CONFIG_ADFS_FS is not set 1065# CONFIG_ADFS_FS is not set
776# CONFIG_AFFS_FS is not set 1066# CONFIG_AFFS_FS is not set
777# CONFIG_HFS_FS is not set 1067# CONFIG_HFS_FS is not set
@@ -780,7 +1070,9 @@ CONFIG_TMPFS=y
780# CONFIG_BFS_FS is not set 1070# CONFIG_BFS_FS is not set
781# CONFIG_EFS_FS is not set 1071# CONFIG_EFS_FS is not set
782# CONFIG_JFFS2_FS is not set 1072# CONFIG_JFFS2_FS is not set
1073# CONFIG_UBIFS_FS is not set
783# CONFIG_CRAMFS is not set 1074# CONFIG_CRAMFS is not set
1075# CONFIG_SQUASHFS is not set
784# CONFIG_VXFS_FS is not set 1076# CONFIG_VXFS_FS is not set
785# CONFIG_MINIX_FS is not set 1077# CONFIG_MINIX_FS is not set
786# CONFIG_OMFS_FS is not set 1078# CONFIG_OMFS_FS is not set
@@ -878,13 +1170,19 @@ CONFIG_FRAME_WARN=1024
878# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1170# CONFIG_RCU_CPU_STALL_DETECTOR is not set
879# CONFIG_LATENCYTOP is not set 1171# CONFIG_LATENCYTOP is not set
880CONFIG_SYSCTL_SYSCALL_CHECK=y 1172CONFIG_SYSCTL_SYSCALL_CHECK=y
881CONFIG_NOP_TRACER=y 1173CONFIG_HAVE_FUNCTION_TRACER=y
882CONFIG_HAVE_FTRACE=y 1174CONFIG_HAVE_DYNAMIC_FTRACE=y
1175CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1176
1177#
1178# Tracers
1179#
883# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1180# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
884# CONFIG_SAMPLES is not set 1181# CONFIG_SAMPLES is not set
1182CONFIG_HAVE_ARCH_KGDB=y
885# CONFIG_SH_STANDARD_BIOS is not set 1183# CONFIG_SH_STANDARD_BIOS is not set
886# CONFIG_EARLY_SCIF_CONSOLE is not set 1184# CONFIG_EARLY_SCIF_CONSOLE is not set
887# CONFIG_SH_KGDB is not set 1185# CONFIG_MORE_COMPILE_OPTIONS is not set
888 1186
889# 1187#
890# Security options 1188# Security options
@@ -900,11 +1198,14 @@ CONFIG_CRYPTO=y
900# 1198#
901# CONFIG_CRYPTO_FIPS is not set 1199# CONFIG_CRYPTO_FIPS is not set
902CONFIG_CRYPTO_ALGAPI=y 1200CONFIG_CRYPTO_ALGAPI=y
903CONFIG_CRYPTO_AEAD=y 1201CONFIG_CRYPTO_ALGAPI2=y
1202CONFIG_CRYPTO_AEAD2=y
904CONFIG_CRYPTO_BLKCIPHER=y 1203CONFIG_CRYPTO_BLKCIPHER=y
905CONFIG_CRYPTO_HASH=y 1204CONFIG_CRYPTO_BLKCIPHER2=y
906CONFIG_CRYPTO_RNG=y 1205CONFIG_CRYPTO_HASH2=y
1206CONFIG_CRYPTO_RNG2=y
907CONFIG_CRYPTO_MANAGER=y 1207CONFIG_CRYPTO_MANAGER=y
1208CONFIG_CRYPTO_MANAGER2=y
908# CONFIG_CRYPTO_GF128MUL is not set 1209# CONFIG_CRYPTO_GF128MUL is not set
909# CONFIG_CRYPTO_NULL is not set 1210# CONFIG_CRYPTO_NULL is not set
910# CONFIG_CRYPTO_CRYPTD is not set 1211# CONFIG_CRYPTO_CRYPTD is not set
@@ -987,12 +1288,13 @@ CONFIG_CRYPTO_HW=y
987# Library routines 1288# Library routines
988# 1289#
989CONFIG_BITREVERSE=y 1290CONFIG_BITREVERSE=y
1291CONFIG_GENERIC_FIND_LAST_BIT=y
990# CONFIG_CRC_CCITT is not set 1292# CONFIG_CRC_CCITT is not set
991# CONFIG_CRC16 is not set 1293# CONFIG_CRC16 is not set
992CONFIG_CRC_T10DIF=y 1294CONFIG_CRC_T10DIF=y
993# CONFIG_CRC_ITU_T is not set 1295CONFIG_CRC_ITU_T=y
994CONFIG_CRC32=y 1296CONFIG_CRC32=y
995# CONFIG_CRC7 is not set 1297CONFIG_CRC7=y
996# CONFIG_LIBCRC32C is not set 1298# CONFIG_LIBCRC32C is not set
997CONFIG_PLIST=y 1299CONFIG_PLIST=y
998CONFIG_HAS_IOMEM=y 1300CONFIG_HAS_IOMEM=y
diff --git a/arch/sh/configs/cayman_defconfig b/arch/sh/configs/cayman_defconfig
index e21c0e8e22d9..92895013813d 100644
--- a/arch/sh/configs/cayman_defconfig
+++ b/arch/sh/configs/cayman_defconfig
@@ -700,8 +700,8 @@ CONFIG_I2C_HELPER_AUTO=y
700# Miscellaneous I2C Chip support 700# Miscellaneous I2C Chip support
701# 701#
702# CONFIG_DS1682 is not set 702# CONFIG_DS1682 is not set
703# CONFIG_AT24 is not set 703# CONFIG_EEPROM_AT24 is not set
704# CONFIG_SENSORS_EEPROM is not set 704# CONFIG_EEPROM_LEGACY is not set
705# CONFIG_SENSORS_PCF8574 is not set 705# CONFIG_SENSORS_PCF8574 is not set
706# CONFIG_PCF8575 is not set 706# CONFIG_PCF8575 is not set
707# CONFIG_SENSORS_PCA9539 is not set 707# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/sh/configs/dreamcast_defconfig b/arch/sh/configs/dreamcast_defconfig
index be4c2e0dbb26..2d86e0487517 100644
--- a/arch/sh/configs/dreamcast_defconfig
+++ b/arch/sh/configs/dreamcast_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:18:02 2008 4# Fri Jan 9 16:54:55 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -78,7 +80,6 @@ CONFIG_SLAB=y
78# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
79# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
80CONFIG_PROFILING=y 82CONFIG_PROFILING=y
81# CONFIG_MARKERS is not set
82# CONFIG_OPROFILE is not set 83# CONFIG_OPROFILE is not set
83CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 85# CONFIG_KPROBES is not set
@@ -90,7 +91,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 94CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 95CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 96# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +98,9 @@ CONFIG_MODULE_UNLOAD=y
98# CONFIG_MODULE_FORCE_UNLOAD is not set 98# CONFIG_MODULE_FORCE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_DEFAULT_AS=y
119# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
120CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -195,7 +198,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
195CONFIG_SPARSEMEM_STATIC=y 198CONFIG_SPARSEMEM_STATIC=y
196CONFIG_PAGEFLAGS_EXTENDED=y 199CONFIG_PAGEFLAGS_EXTENDED=y
197CONFIG_SPLIT_PTLOCK_CPUS=4 200CONFIG_SPLIT_PTLOCK_CPUS=4
198# CONFIG_RESOURCES_64BIT is not set
199# CONFIG_PHYS_ADDR_T_64BIT is not set 201# CONFIG_PHYS_ADDR_T_64BIT is not set
200CONFIG_ZONE_DMA_FLAG=0 202CONFIG_ZONE_DMA_FLAG=0
201CONFIG_NR_QUICK=2 203CONFIG_NR_QUICK=2
@@ -290,7 +292,6 @@ CONFIG_SECCOMP=y
290# CONFIG_PREEMPT_NONE is not set 292# CONFIG_PREEMPT_NONE is not set
291# CONFIG_PREEMPT_VOLUNTARY is not set 293# CONFIG_PREEMPT_VOLUNTARY is not set
292CONFIG_PREEMPT=y 294CONFIG_PREEMPT=y
293# CONFIG_PREEMPT_RCU is not set
294CONFIG_GUSA=y 295CONFIG_GUSA=y
295# CONFIG_GUSA_RB is not set 296# CONFIG_GUSA_RB is not set
296 297
@@ -310,6 +311,7 @@ CONFIG_MAPLE=y
310CONFIG_PCI=y 311CONFIG_PCI=y
311CONFIG_SH_PCIDMA_NONCOHERENT=y 312CONFIG_SH_PCIDMA_NONCOHERENT=y
312CONFIG_PCI_AUTO=y 313CONFIG_PCI_AUTO=y
314# CONFIG_PCIEPORTBUS is not set
313# CONFIG_ARCH_SUPPORTS_MSI is not set 315# CONFIG_ARCH_SUPPORTS_MSI is not set
314CONFIG_PCI_LEGACY=y 316CONFIG_PCI_LEGACY=y
315# CONFIG_PCCARD is not set 317# CONFIG_PCCARD is not set
@@ -322,11 +324,18 @@ CONFIG_BINFMT_ELF=y
322# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 324# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
323# CONFIG_HAVE_AOUT is not set 325# CONFIG_HAVE_AOUT is not set
324# CONFIG_BINFMT_MISC is not set 326# CONFIG_BINFMT_MISC is not set
327
328#
329# Power management options (EXPERIMENTAL)
330#
331# CONFIG_PM is not set
332# CONFIG_CPU_IDLE is not set
325CONFIG_NET=y 333CONFIG_NET=y
326 334
327# 335#
328# Networking options 336# Networking options
329# 337#
338CONFIG_COMPAT_NET_DEV_OPS=y
330CONFIG_PACKET=y 339CONFIG_PACKET=y
331# CONFIG_PACKET_MMAP is not set 340# CONFIG_PACKET_MMAP is not set
332CONFIG_UNIX=y 341CONFIG_UNIX=y
@@ -379,6 +388,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
379# CONFIG_ECONET is not set 388# CONFIG_ECONET is not set
380# CONFIG_WAN_ROUTER is not set 389# CONFIG_WAN_ROUTER is not set
381# CONFIG_NET_SCHED is not set 390# CONFIG_NET_SCHED is not set
391# CONFIG_DCB is not set
382 392
383# 393#
384# Network testing 394# Network testing
@@ -394,8 +404,8 @@ CONFIG_WIRELESS=y
394# CONFIG_CFG80211 is not set 404# CONFIG_CFG80211 is not set
395# CONFIG_WIRELESS_OLD_REGULATORY is not set 405# CONFIG_WIRELESS_OLD_REGULATORY is not set
396# CONFIG_WIRELESS_EXT is not set 406# CONFIG_WIRELESS_EXT is not set
407# CONFIG_LIB80211 is not set
397# CONFIG_MAC80211 is not set 408# CONFIG_MAC80211 is not set
398# CONFIG_IEEE80211 is not set
399# CONFIG_RFKILL is not set 409# CONFIG_RFKILL is not set
400# CONFIG_NET_9P is not set 410# CONFIG_NET_9P is not set
401 411
@@ -434,6 +444,7 @@ CONFIG_MISC_DEVICES=y
434# CONFIG_TIFM_CORE is not set 444# CONFIG_TIFM_CORE is not set
435# CONFIG_ENCLOSURE_SERVICES is not set 445# CONFIG_ENCLOSURE_SERVICES is not set
436# CONFIG_HP_ILO is not set 446# CONFIG_HP_ILO is not set
447# CONFIG_C2PORT is not set
437CONFIG_HAVE_IDE=y 448CONFIG_HAVE_IDE=y
438# CONFIG_IDE is not set 449# CONFIG_IDE is not set
439 450
@@ -477,6 +488,7 @@ CONFIG_MII=y
477# CONFIG_NET_VENDOR_3COM is not set 488# CONFIG_NET_VENDOR_3COM is not set
478# CONFIG_SMC91X is not set 489# CONFIG_SMC91X is not set
479# CONFIG_SMC911X is not set 490# CONFIG_SMC911X is not set
491# CONFIG_SMSC911X is not set
480# CONFIG_NET_TULIP is not set 492# CONFIG_NET_TULIP is not set
481# CONFIG_HP100 is not set 493# CONFIG_HP100 is not set
482# CONFIG_IBM_NEW_EMAC_ZMII is not set 494# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -492,7 +504,6 @@ CONFIG_NET_PCI=y
492# CONFIG_ADAPTEC_STARFIRE is not set 504# CONFIG_ADAPTEC_STARFIRE is not set
493# CONFIG_B44 is not set 505# CONFIG_B44 is not set
494# CONFIG_FORCEDETH is not set 506# CONFIG_FORCEDETH is not set
495# CONFIG_EEPRO100 is not set
496# CONFIG_E100 is not set 507# CONFIG_E100 is not set
497# CONFIG_FEALNX is not set 508# CONFIG_FEALNX is not set
498# CONFIG_NATSEMI is not set 509# CONFIG_NATSEMI is not set
@@ -506,6 +517,7 @@ CONFIG_8139TOO=y
506# CONFIG_R6040 is not set 517# CONFIG_R6040 is not set
507# CONFIG_SIS900 is not set 518# CONFIG_SIS900 is not set
508# CONFIG_EPIC100 is not set 519# CONFIG_EPIC100 is not set
520# CONFIG_SMSC9420 is not set
509# CONFIG_SUNDANCE is not set 521# CONFIG_SUNDANCE is not set
510# CONFIG_TLAN is not set 522# CONFIG_TLAN is not set
511# CONFIG_VIA_RHINE is not set 523# CONFIG_VIA_RHINE is not set
@@ -611,6 +623,7 @@ CONFIG_SERIAL_CORE=y
611CONFIG_SERIAL_CORE_CONSOLE=y 623CONFIG_SERIAL_CORE_CONSOLE=y
612# CONFIG_SERIAL_JSM is not set 624# CONFIG_SERIAL_JSM is not set
613CONFIG_UNIX98_PTYS=y 625CONFIG_UNIX98_PTYS=y
626# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
614CONFIG_LEGACY_PTYS=y 627CONFIG_LEGACY_PTYS=y
615CONFIG_LEGACY_PTY_COUNT=256 628CONFIG_LEGACY_PTY_COUNT=256
616# CONFIG_IPMI_HANDLER is not set 629# CONFIG_IPMI_HANDLER is not set
@@ -643,11 +656,11 @@ CONFIG_SH_WDT=y
643# 656#
644# CONFIG_PCIPCWATCHDOG is not set 657# CONFIG_PCIPCWATCHDOG is not set
645# CONFIG_WDTPCI is not set 658# CONFIG_WDTPCI is not set
659CONFIG_SSB_POSSIBLE=y
646 660
647# 661#
648# Sonics Silicon Backplane 662# Sonics Silicon Backplane
649# 663#
650CONFIG_SSB_POSSIBLE=y
651# CONFIG_SSB is not set 664# CONFIG_SSB is not set
652 665
653# 666#
@@ -657,7 +670,7 @@ CONFIG_SSB_POSSIBLE=y
657# CONFIG_MFD_SM501 is not set 670# CONFIG_MFD_SM501 is not set
658# CONFIG_HTC_PASIC3 is not set 671# CONFIG_HTC_PASIC3 is not set
659# CONFIG_MFD_TMIO is not set 672# CONFIG_MFD_TMIO is not set
660# CONFIG_MFD_WM8400 is not set 673# CONFIG_REGULATOR is not set
661 674
662# 675#
663# Multimedia devices 676# Multimedia devices
@@ -732,6 +745,7 @@ CONFIG_FB_PVR2=y
732# CONFIG_FB_SH_MOBILE_LCDC is not set 745# CONFIG_FB_SH_MOBILE_LCDC is not set
733# CONFIG_FB_VIRTUAL is not set 746# CONFIG_FB_VIRTUAL is not set
734# CONFIG_FB_METRONOME is not set 747# CONFIG_FB_METRONOME is not set
748# CONFIG_FB_MB862XX is not set
735# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 749# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
736 750
737# 751#
@@ -788,9 +802,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
788# 802#
789 803
790# 804#
791# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 805# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
792# 806#
793# CONFIG_USB_GADGET is not set 807# CONFIG_USB_GADGET is not set
808# CONFIG_UWB is not set
794# CONFIG_MMC is not set 809# CONFIG_MMC is not set
795# CONFIG_MEMSTICK is not set 810# CONFIG_MEMSTICK is not set
796# CONFIG_NEW_LEDS is not set 811# CONFIG_NEW_LEDS is not set
@@ -847,10 +862,7 @@ CONFIG_TMPFS=y
847CONFIG_HUGETLBFS=y 862CONFIG_HUGETLBFS=y
848CONFIG_HUGETLB_PAGE=y 863CONFIG_HUGETLB_PAGE=y
849# CONFIG_CONFIGFS_FS is not set 864# CONFIG_CONFIGFS_FS is not set
850 865CONFIG_MISC_FILESYSTEMS=y
851#
852# Miscellaneous filesystems
853#
854# CONFIG_ADFS_FS is not set 866# CONFIG_ADFS_FS is not set
855# CONFIG_AFFS_FS is not set 867# CONFIG_AFFS_FS is not set
856# CONFIG_HFS_FS is not set 868# CONFIG_HFS_FS is not set
@@ -901,13 +913,19 @@ CONFIG_FRAME_WARN=1024
901# CONFIG_DEBUG_MEMORY_INIT is not set 913# CONFIG_DEBUG_MEMORY_INIT is not set
902# CONFIG_RCU_CPU_STALL_DETECTOR is not set 914# CONFIG_RCU_CPU_STALL_DETECTOR is not set
903# CONFIG_LATENCYTOP is not set 915# CONFIG_LATENCYTOP is not set
904CONFIG_NOP_TRACER=y 916CONFIG_HAVE_FUNCTION_TRACER=y
905CONFIG_HAVE_FTRACE=y 917CONFIG_HAVE_DYNAMIC_FTRACE=y
918CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
919
920#
921# Tracers
922#
906# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 923# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
907# CONFIG_SAMPLES is not set 924# CONFIG_SAMPLES is not set
925CONFIG_HAVE_ARCH_KGDB=y
908# CONFIG_SH_STANDARD_BIOS is not set 926# CONFIG_SH_STANDARD_BIOS is not set
909# CONFIG_EARLY_SCIF_CONSOLE is not set 927# CONFIG_EARLY_SCIF_CONSOLE is not set
910# CONFIG_SH_KGDB is not set 928# CONFIG_MORE_COMPILE_OPTIONS is not set
911 929
912# 930#
913# Security options 931# Security options
@@ -923,6 +941,7 @@ CONFIG_CRYPTO=y
923# 941#
924# CONFIG_CRYPTO_FIPS is not set 942# CONFIG_CRYPTO_FIPS is not set
925# CONFIG_CRYPTO_MANAGER is not set 943# CONFIG_CRYPTO_MANAGER is not set
944# CONFIG_CRYPTO_MANAGER2 is not set
926# CONFIG_CRYPTO_GF128MUL is not set 945# CONFIG_CRYPTO_GF128MUL is not set
927# CONFIG_CRYPTO_NULL is not set 946# CONFIG_CRYPTO_NULL is not set
928# CONFIG_CRYPTO_CRYPTD is not set 947# CONFIG_CRYPTO_CRYPTD is not set
@@ -1006,6 +1025,7 @@ CONFIG_CRYPTO_HW=y
1006# Library routines 1025# Library routines
1007# 1026#
1008CONFIG_BITREVERSE=y 1027CONFIG_BITREVERSE=y
1028CONFIG_GENERIC_FIND_LAST_BIT=y
1009# CONFIG_CRC_CCITT is not set 1029# CONFIG_CRC_CCITT is not set
1010# CONFIG_CRC16 is not set 1030# CONFIG_CRC16 is not set
1011# CONFIG_CRC_T10DIF is not set 1031# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/edosk7705_defconfig b/arch/sh/configs/edosk7705_defconfig
index 8f4329fbbd39..461bfb350221 100644
--- a/arch/sh/configs/edosk7705_defconfig
+++ b/arch/sh/configs/edosk7705_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.28-rc6 3# Linux kernel version: 2.6.28
4# Wed Dec 17 13:53:02 2008 4# Fri Jan 9 16:55:29 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -64,7 +64,6 @@ CONFIG_SHMEM=y
64CONFIG_SLUB=y 64CONFIG_SLUB=y
65# CONFIG_SLOB is not set 65# CONFIG_SLOB is not set
66# CONFIG_PROFILING is not set 66# CONFIG_PROFILING is not set
67# CONFIG_MARKERS is not set
68CONFIG_HAVE_OPROFILE=y 67CONFIG_HAVE_OPROFILE=y
69CONFIG_HAVE_IOREMAP_PROT=y 68CONFIG_HAVE_IOREMAP_PROT=y
70CONFIG_HAVE_KPROBES=y 69CONFIG_HAVE_KPROBES=y
@@ -72,11 +71,14 @@ CONFIG_HAVE_KRETPROBES=y
72CONFIG_HAVE_ARCH_TRACEHOOK=y 71CONFIG_HAVE_ARCH_TRACEHOOK=y
73CONFIG_HAVE_CLK=y 72CONFIG_HAVE_CLK=y
74CONFIG_HAVE_GENERIC_DMA_COHERENT=y 73CONFIG_HAVE_GENERIC_DMA_COHERENT=y
75# CONFIG_TINY_SHMEM is not set
76CONFIG_BASE_SMALL=1 74CONFIG_BASE_SMALL=1
77# CONFIG_MODULES is not set 75# CONFIG_MODULES is not set
78# CONFIG_BLOCK is not set 76# CONFIG_BLOCK is not set
79CONFIG_CLASSIC_RCU=y 77CONFIG_CLASSIC_RCU=y
78# CONFIG_TREE_RCU is not set
79# CONFIG_PREEMPT_RCU is not set
80# CONFIG_TREE_RCU_TRACE is not set
81# CONFIG_PREEMPT_RCU_TRACE is not set
80# CONFIG_FREEZER is not set 82# CONFIG_FREEZER is not set
81 83
82# 84#
@@ -151,7 +153,6 @@ CONFIG_SPARSEMEM_STATIC=y
151CONFIG_PAGEFLAGS_EXTENDED=y 153CONFIG_PAGEFLAGS_EXTENDED=y
152CONFIG_SPLIT_PTLOCK_CPUS=4 154CONFIG_SPLIT_PTLOCK_CPUS=4
153CONFIG_MIGRATION=y 155CONFIG_MIGRATION=y
154# CONFIG_RESOURCES_64BIT is not set
155# CONFIG_PHYS_ADDR_T_64BIT is not set 156# CONFIG_PHYS_ADDR_T_64BIT is not set
156CONFIG_ZONE_DMA_FLAG=0 157CONFIG_ZONE_DMA_FLAG=0
157CONFIG_NR_QUICK=2 158CONFIG_NR_QUICK=2
@@ -362,7 +363,6 @@ CONFIG_SSB_POSSIBLE=y
362# CONFIG_DMADEVICES is not set 363# CONFIG_DMADEVICES is not set
363# CONFIG_UIO is not set 364# CONFIG_UIO is not set
364# CONFIG_STAGING is not set 365# CONFIG_STAGING is not set
365CONFIG_STAGING_EXCLUDE_BUILD=y
366 366
367# 367#
368# File systems 368# File systems
@@ -382,10 +382,7 @@ CONFIG_STAGING_EXCLUDE_BUILD=y
382# CONFIG_TMPFS is not set 382# CONFIG_TMPFS is not set
383# CONFIG_HUGETLBFS is not set 383# CONFIG_HUGETLBFS is not set
384# CONFIG_HUGETLB_PAGE is not set 384# CONFIG_HUGETLB_PAGE is not set
385 385CONFIG_MISC_FILESYSTEMS=y
386#
387# Miscellaneous filesystems
388#
389# CONFIG_NLS is not set 386# CONFIG_NLS is not set
390 387
391# 388#
@@ -426,6 +423,7 @@ CONFIG_HAVE_ARCH_KGDB=y
426# 423#
427# Library routines 424# Library routines
428# 425#
426CONFIG_GENERIC_FIND_LAST_BIT=y
429# CONFIG_CRC_CCITT is not set 427# CONFIG_CRC_CCITT is not set
430# CONFIG_CRC16 is not set 428# CONFIG_CRC16 is not set
431# CONFIG_CRC_T10DIF is not set 429# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/edosk7760_defconfig b/arch/sh/configs/edosk7760_defconfig
index 158006847ad6..14d4b35685a1 100644
--- a/arch/sh/configs/edosk7760_defconfig
+++ b/arch/sh/configs/edosk7760_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:20:09 2008 4# Fri Jan 9 16:55:48 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -59,6 +61,7 @@ CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y 61CONFIG_SYSCTL_SYSCALL=y
60CONFIG_KALLSYMS=y 62CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 63CONFIG_KALLSYMS_ALL=y
64CONFIG_KALLSYMS_STRIP_GENERATED=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 65# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y 66CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 67CONFIG_PRINTK=y
@@ -75,13 +78,11 @@ CONFIG_EVENTFD=y
75CONFIG_SHMEM=y 78CONFIG_SHMEM=y
76CONFIG_AIO=y 79CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 80CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLUB_DEBUG=y 81CONFIG_SLUB_DEBUG=y
80# CONFIG_SLAB is not set 82# CONFIG_SLAB is not set
81CONFIG_SLUB=y 83CONFIG_SLUB=y
82# CONFIG_SLOB is not set 84# CONFIG_SLOB is not set
83# CONFIG_PROFILING is not set 85# CONFIG_PROFILING is not set
84# CONFIG_MARKERS is not set
85CONFIG_HAVE_OPROFILE=y 86CONFIG_HAVE_OPROFILE=y
86# CONFIG_KPROBES is not set 87# CONFIG_KPROBES is not set
87CONFIG_HAVE_IOREMAP_PROT=y 88CONFIG_HAVE_IOREMAP_PROT=y
@@ -92,7 +93,6 @@ CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 93CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 94CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 97CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,11 +100,9 @@ CONFIG_MODULE_UNLOAD=y
100CONFIG_MODULE_FORCE_UNLOAD=y 100CONFIG_MODULE_FORCE_UNLOAD=y
101# CONFIG_MODVERSIONS is not set 101# CONFIG_MODVERSIONS is not set
102# CONFIG_MODULE_SRCVERSION_ALL is not set 102# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 103CONFIG_BLOCK=y
105# CONFIG_LBD is not set 104# CONFIG_LBD is not set
106# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
107# CONFIG_LSF is not set
108# CONFIG_BLK_DEV_BSG is not set 106# CONFIG_BLK_DEV_BSG is not set
109# CONFIG_BLK_DEV_INTEGRITY is not set 107# CONFIG_BLK_DEV_INTEGRITY is not set
110 108
@@ -121,6 +119,10 @@ CONFIG_DEFAULT_CFQ=y
121# CONFIG_DEFAULT_NOOP is not set 119# CONFIG_DEFAULT_NOOP is not set
122CONFIG_DEFAULT_IOSCHED="cfq" 120CONFIG_DEFAULT_IOSCHED="cfq"
123CONFIG_CLASSIC_RCU=y 121CONFIG_CLASSIC_RCU=y
122# CONFIG_TREE_RCU is not set
123# CONFIG_PREEMPT_RCU is not set
124# CONFIG_TREE_RCU_TRACE is not set
125# CONFIG_PREEMPT_RCU_TRACE is not set
124# CONFIG_FREEZER is not set 126# CONFIG_FREEZER is not set
125 127
126# 128#
@@ -128,6 +130,7 @@ CONFIG_CLASSIC_RCU=y
128# 130#
129CONFIG_CPU_SH4=y 131CONFIG_CPU_SH4=y
130# CONFIG_CPU_SUBTYPE_SH7619 is not set 132# CONFIG_CPU_SUBTYPE_SH7619 is not set
133# CONFIG_CPU_SUBTYPE_SH7201 is not set
131# CONFIG_CPU_SUBTYPE_SH7203 is not set 134# CONFIG_CPU_SUBTYPE_SH7203 is not set
132# CONFIG_CPU_SUBTYPE_SH7206 is not set 135# CONFIG_CPU_SUBTYPE_SH7206 is not set
133# CONFIG_CPU_SUBTYPE_SH7263 is not set 136# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -191,7 +194,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
191CONFIG_SPARSEMEM_STATIC=y 194CONFIG_SPARSEMEM_STATIC=y
192CONFIG_PAGEFLAGS_EXTENDED=y 195CONFIG_PAGEFLAGS_EXTENDED=y
193CONFIG_SPLIT_PTLOCK_CPUS=4 196CONFIG_SPLIT_PTLOCK_CPUS=4
194# CONFIG_RESOURCES_64BIT is not set
195# CONFIG_PHYS_ADDR_T_64BIT is not set 197# CONFIG_PHYS_ADDR_T_64BIT is not set
196CONFIG_ZONE_DMA_FLAG=0 198CONFIG_ZONE_DMA_FLAG=0
197CONFIG_NR_QUICK=2 199CONFIG_NR_QUICK=2
@@ -272,7 +274,6 @@ CONFIG_SCHED_HRTICK=y
272# CONFIG_PREEMPT_NONE is not set 274# CONFIG_PREEMPT_NONE is not set
273# CONFIG_PREEMPT_VOLUNTARY is not set 275# CONFIG_PREEMPT_VOLUNTARY is not set
274CONFIG_PREEMPT=y 276CONFIG_PREEMPT=y
275# CONFIG_PREEMPT_RCU is not set
276CONFIG_GUSA=y 277CONFIG_GUSA=y
277# CONFIG_GUSA_RB is not set 278# CONFIG_GUSA_RB is not set
278 279
@@ -298,11 +299,18 @@ CONFIG_BINFMT_ELF=y
298# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 299# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
299# CONFIG_HAVE_AOUT is not set 300# CONFIG_HAVE_AOUT is not set
300# CONFIG_BINFMT_MISC is not set 301# CONFIG_BINFMT_MISC is not set
302
303#
304# Power management options (EXPERIMENTAL)
305#
306# CONFIG_PM is not set
307# CONFIG_CPU_IDLE is not set
301CONFIG_NET=y 308CONFIG_NET=y
302 309
303# 310#
304# Networking options 311# Networking options
305# 312#
313CONFIG_COMPAT_NET_DEV_OPS=y
306CONFIG_PACKET=y 314CONFIG_PACKET=y
307# CONFIG_PACKET_MMAP is not set 315# CONFIG_PACKET_MMAP is not set
308CONFIG_UNIX=y 316CONFIG_UNIX=y
@@ -353,6 +361,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_ECONET is not set 361# CONFIG_ECONET is not set
354# CONFIG_WAN_ROUTER is not set 362# CONFIG_WAN_ROUTER is not set
355# CONFIG_NET_SCHED is not set 363# CONFIG_NET_SCHED is not set
364# CONFIG_DCB is not set
356 365
357# 366#
358# Network testing 367# Network testing
@@ -368,8 +377,8 @@ CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 377# CONFIG_CFG80211 is not set
369# CONFIG_WIRELESS_OLD_REGULATORY is not set 378# CONFIG_WIRELESS_OLD_REGULATORY is not set
370# CONFIG_WIRELESS_EXT is not set 379# CONFIG_WIRELESS_EXT is not set
380# CONFIG_LIB80211 is not set
371# CONFIG_MAC80211 is not set 381# CONFIG_MAC80211 is not set
372# CONFIG_IEEE80211 is not set
373# CONFIG_RFKILL is not set 382# CONFIG_RFKILL is not set
374# CONFIG_NET_9P is not set 383# CONFIG_NET_9P is not set
375 384
@@ -510,6 +519,7 @@ CONFIG_MII=y
510# CONFIG_STNIC is not set 519# CONFIG_STNIC is not set
511CONFIG_SMC91X=y 520CONFIG_SMC91X=y
512# CONFIG_SMC911X is not set 521# CONFIG_SMC911X is not set
522# CONFIG_SMSC911X is not set
513# CONFIG_IBM_NEW_EMAC_ZMII is not set 523# CONFIG_IBM_NEW_EMAC_ZMII is not set
514# CONFIG_IBM_NEW_EMAC_RGMII is not set 524# CONFIG_IBM_NEW_EMAC_RGMII is not set
515# CONFIG_IBM_NEW_EMAC_TAH is not set 525# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -592,6 +602,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
592CONFIG_SERIAL_CORE=y 602CONFIG_SERIAL_CORE=y
593CONFIG_SERIAL_CORE_CONSOLE=y 603CONFIG_SERIAL_CORE_CONSOLE=y
594CONFIG_UNIX98_PTYS=y 604CONFIG_UNIX98_PTYS=y
605# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
595CONFIG_LEGACY_PTYS=y 606CONFIG_LEGACY_PTYS=y
596CONFIG_LEGACY_PTY_COUNT=256 607CONFIG_LEGACY_PTY_COUNT=256
597# CONFIG_IPMI_HANDLER is not set 608# CONFIG_IPMI_HANDLER is not set
@@ -632,8 +643,8 @@ CONFIG_I2C_SH7760=y
632# Miscellaneous I2C Chip support 643# Miscellaneous I2C Chip support
633# 644#
634# CONFIG_DS1682 is not set 645# CONFIG_DS1682 is not set
635# CONFIG_AT24 is not set 646# CONFIG_EEPROM_AT24 is not set
636# CONFIG_SENSORS_EEPROM is not set 647# CONFIG_EEPROM_LEGACY is not set
637# CONFIG_SENSORS_PCF8574 is not set 648# CONFIG_SENSORS_PCF8574 is not set
638# CONFIG_PCF8575 is not set 649# CONFIG_PCF8575 is not set
639# CONFIG_SENSORS_PCA9539 is not set 650# CONFIG_SENSORS_PCA9539 is not set
@@ -651,11 +662,11 @@ CONFIG_I2C_DEBUG_CHIP=y
651# CONFIG_THERMAL is not set 662# CONFIG_THERMAL is not set
652# CONFIG_THERMAL_HWMON is not set 663# CONFIG_THERMAL_HWMON is not set
653# CONFIG_WATCHDOG is not set 664# CONFIG_WATCHDOG is not set
665CONFIG_SSB_POSSIBLE=y
654 666
655# 667#
656# Sonics Silicon Backplane 668# Sonics Silicon Backplane
657# 669#
658CONFIG_SSB_POSSIBLE=y
659# CONFIG_SSB is not set 670# CONFIG_SSB is not set
660 671
661# 672#
@@ -664,9 +675,12 @@ CONFIG_SSB_POSSIBLE=y
664# CONFIG_MFD_CORE is not set 675# CONFIG_MFD_CORE is not set
665# CONFIG_MFD_SM501 is not set 676# CONFIG_MFD_SM501 is not set
666# CONFIG_HTC_PASIC3 is not set 677# CONFIG_HTC_PASIC3 is not set
678# CONFIG_TWL4030_CORE is not set
667# CONFIG_MFD_TMIO is not set 679# CONFIG_MFD_TMIO is not set
680# CONFIG_PMIC_DA903X is not set
668# CONFIG_MFD_WM8400 is not set 681# CONFIG_MFD_WM8400 is not set
669# CONFIG_MFD_WM8350_I2C is not set 682# CONFIG_MFD_WM8350_I2C is not set
683# CONFIG_REGULATOR is not set
670 684
671# 685#
672# Multimedia devices 686# Multimedia devices
@@ -693,15 +707,16 @@ CONFIG_FB=m
693# CONFIG_FIRMWARE_EDID is not set 707# CONFIG_FIRMWARE_EDID is not set
694# CONFIG_FB_DDC is not set 708# CONFIG_FB_DDC is not set
695# CONFIG_FB_BOOT_VESA_SUPPORT is not set 709# CONFIG_FB_BOOT_VESA_SUPPORT is not set
696CONFIG_FB_CFB_FILLRECT=m 710# CONFIG_FB_CFB_FILLRECT is not set
697CONFIG_FB_CFB_COPYAREA=m 711# CONFIG_FB_CFB_COPYAREA is not set
698CONFIG_FB_CFB_IMAGEBLIT=m 712# CONFIG_FB_CFB_IMAGEBLIT is not set
699# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 713# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
700# CONFIG_FB_SYS_FILLRECT is not set 714CONFIG_FB_SYS_FILLRECT=m
701# CONFIG_FB_SYS_COPYAREA is not set 715CONFIG_FB_SYS_COPYAREA=m
702# CONFIG_FB_SYS_IMAGEBLIT is not set 716CONFIG_FB_SYS_IMAGEBLIT=m
703# CONFIG_FB_FOREIGN_ENDIAN is not set 717# CONFIG_FB_FOREIGN_ENDIAN is not set
704# CONFIG_FB_SYS_FOPS is not set 718CONFIG_FB_SYS_FOPS=m
719CONFIG_FB_DEFERRED_IO=y
705# CONFIG_FB_SVGALIB is not set 720# CONFIG_FB_SVGALIB is not set
706# CONFIG_FB_MACMODES is not set 721# CONFIG_FB_MACMODES is not set
707# CONFIG_FB_BACKLIGHT is not set 722# CONFIG_FB_BACKLIGHT is not set
@@ -716,6 +731,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
716# CONFIG_FB_SH7760 is not set 731# CONFIG_FB_SH7760 is not set
717# CONFIG_FB_VIRTUAL is not set 732# CONFIG_FB_VIRTUAL is not set
718# CONFIG_FB_METRONOME is not set 733# CONFIG_FB_METRONOME is not set
734# CONFIG_FB_MB862XX is not set
719# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 735# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
720 736
721# 737#
@@ -737,6 +753,7 @@ CONFIG_SND_PCM=y
737# CONFIG_SND_SEQUENCER is not set 753# CONFIG_SND_SEQUENCER is not set
738# CONFIG_SND_MIXER_OSS is not set 754# CONFIG_SND_MIXER_OSS is not set
739# CONFIG_SND_PCM_OSS is not set 755# CONFIG_SND_PCM_OSS is not set
756# CONFIG_SND_HRTIMER is not set
740# CONFIG_SND_DYNAMIC_MINORS is not set 757# CONFIG_SND_DYNAMIC_MINORS is not set
741# CONFIG_SND_SUPPORT_OLD_API is not set 758# CONFIG_SND_SUPPORT_OLD_API is not set
742# CONFIG_SND_VERBOSE_PROCFS is not set 759# CONFIG_SND_VERBOSE_PROCFS is not set
@@ -753,6 +770,7 @@ CONFIG_SND_SOC=y
753# 770#
754# SoC Audio support for SuperH 771# SoC Audio support for SuperH
755# 772#
773CONFIG_SND_SOC_I2C_AND_SPI=y
756# CONFIG_SND_SOC_ALL_CODECS is not set 774# CONFIG_SND_SOC_ALL_CODECS is not set
757# CONFIG_SOUND_PRIME is not set 775# CONFIG_SOUND_PRIME is not set
758# CONFIG_HID_SUPPORT is not set 776# CONFIG_HID_SUPPORT is not set
@@ -823,10 +841,7 @@ CONFIG_TMPFS_POSIX_ACL=y
823# CONFIG_HUGETLBFS is not set 841# CONFIG_HUGETLBFS is not set
824# CONFIG_HUGETLB_PAGE is not set 842# CONFIG_HUGETLB_PAGE is not set
825# CONFIG_CONFIGFS_FS is not set 843# CONFIG_CONFIGFS_FS is not set
826 844CONFIG_MISC_FILESYSTEMS=y
827#
828# Miscellaneous filesystems
829#
830# CONFIG_ADFS_FS is not set 845# CONFIG_ADFS_FS is not set
831# CONFIG_AFFS_FS is not set 846# CONFIG_AFFS_FS is not set
832# CONFIG_HFS_FS is not set 847# CONFIG_HFS_FS is not set
@@ -950,6 +965,7 @@ CONFIG_DEBUG_INFO=y
950# CONFIG_DEBUG_MEMORY_INIT is not set 965# CONFIG_DEBUG_MEMORY_INIT is not set
951# CONFIG_DEBUG_LIST is not set 966# CONFIG_DEBUG_LIST is not set
952# CONFIG_DEBUG_SG is not set 967# CONFIG_DEBUG_SG is not set
968# CONFIG_DEBUG_NOTIFIERS is not set
953# CONFIG_FRAME_POINTER is not set 969# CONFIG_FRAME_POINTER is not set
954# CONFIG_RCU_TORTURE_TEST is not set 970# CONFIG_RCU_TORTURE_TEST is not set
955# CONFIG_RCU_CPU_STALL_DETECTOR is not set 971# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -958,17 +974,25 @@ CONFIG_DEBUG_INFO=y
958# CONFIG_FAULT_INJECTION is not set 974# CONFIG_FAULT_INJECTION is not set
959# CONFIG_LATENCYTOP is not set 975# CONFIG_LATENCYTOP is not set
960CONFIG_SYSCTL_SYSCALL_CHECK=y 976CONFIG_SYSCTL_SYSCALL_CHECK=y
961CONFIG_NOP_TRACER=y 977CONFIG_HAVE_FUNCTION_TRACER=y
962CONFIG_HAVE_FTRACE=y 978CONFIG_HAVE_DYNAMIC_FTRACE=y
963# CONFIG_FTRACE is not set 979CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
980
981#
982# Tracers
983#
984# CONFIG_FUNCTION_TRACER is not set
964# CONFIG_IRQSOFF_TRACER is not set 985# CONFIG_IRQSOFF_TRACER is not set
965# CONFIG_PREEMPT_TRACER is not set 986# CONFIG_PREEMPT_TRACER is not set
966# CONFIG_SCHED_TRACER is not set 987# CONFIG_SCHED_TRACER is not set
967# CONFIG_CONTEXT_SWITCH_TRACER is not set 988# CONFIG_CONTEXT_SWITCH_TRACER is not set
968# CONFIG_BOOT_TRACER is not set 989# CONFIG_BOOT_TRACER is not set
990# CONFIG_TRACE_BRANCH_PROFILING is not set
969# CONFIG_STACK_TRACER is not set 991# CONFIG_STACK_TRACER is not set
970# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 992# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
971# CONFIG_SAMPLES is not set 993# CONFIG_SAMPLES is not set
994CONFIG_HAVE_ARCH_KGDB=y
995# CONFIG_KGDB is not set
972# CONFIG_SH_STANDARD_BIOS is not set 996# CONFIG_SH_STANDARD_BIOS is not set
973CONFIG_EARLY_SCIF_CONSOLE=y 997CONFIG_EARLY_SCIF_CONSOLE=y
974CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 998CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
@@ -978,7 +1002,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
978# CONFIG_DEBUG_STACK_USAGE is not set 1002# CONFIG_DEBUG_STACK_USAGE is not set
979# CONFIG_4KSTACKS is not set 1003# CONFIG_4KSTACKS is not set
980# CONFIG_IRQSTACKS is not set 1004# CONFIG_IRQSTACKS is not set
981# CONFIG_SH_KGDB is not set 1005CONFIG_DUMP_CODE=y
1006# CONFIG_SH_NO_BSS_INIT is not set
1007# CONFIG_MORE_COMPILE_OPTIONS is not set
982 1008
983# 1009#
984# Security options 1010# Security options
@@ -994,7 +1020,11 @@ CONFIG_CRYPTO=y
994# 1020#
995# CONFIG_CRYPTO_FIPS is not set 1021# CONFIG_CRYPTO_FIPS is not set
996CONFIG_CRYPTO_ALGAPI=y 1022CONFIG_CRYPTO_ALGAPI=y
1023CONFIG_CRYPTO_ALGAPI2=y
1024CONFIG_CRYPTO_HASH=y
1025CONFIG_CRYPTO_HASH2=y
997# CONFIG_CRYPTO_MANAGER is not set 1026# CONFIG_CRYPTO_MANAGER is not set
1027# CONFIG_CRYPTO_MANAGER2 is not set
998# CONFIG_CRYPTO_GF128MUL is not set 1028# CONFIG_CRYPTO_GF128MUL is not set
999# CONFIG_CRYPTO_NULL is not set 1029# CONFIG_CRYPTO_NULL is not set
1000# CONFIG_CRYPTO_CRYPTD is not set 1030# CONFIG_CRYPTO_CRYPTD is not set
@@ -1077,6 +1107,7 @@ CONFIG_CRYPTO_HW=y
1077# Library routines 1107# Library routines
1078# 1108#
1079CONFIG_BITREVERSE=y 1109CONFIG_BITREVERSE=y
1110CONFIG_GENERIC_FIND_LAST_BIT=y
1080# CONFIG_CRC_CCITT is not set 1111# CONFIG_CRC_CCITT is not set
1081# CONFIG_CRC16 is not set 1112# CONFIG_CRC16 is not set
1082# CONFIG_CRC_T10DIF is not set 1113# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/hp6xx_defconfig b/arch/sh/configs/hp6xx_defconfig
index 1032b235f080..847a25106635 100644
--- a/arch/sh/configs/hp6xx_defconfig
+++ b/arch/sh/configs/hp6xx_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:23:53 2008 4# Fri Jan 9 16:56:55 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,7 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19CONFIG_SYS_SUPPORTS_PM=y 19CONFIG_ARCH_SUSPEND_POSSIBLE=y
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
20CONFIG_SYS_SUPPORTS_APM_EMULATION=y 21CONFIG_SYS_SUPPORTS_APM_EMULATION=y
21CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -70,12 +71,10 @@ CONFIG_EVENTFD=y
70CONFIG_SHMEM=y 71CONFIG_SHMEM=y
71CONFIG_AIO=y 72CONFIG_AIO=y
72CONFIG_VM_EVENT_COUNTERS=y 73CONFIG_VM_EVENT_COUNTERS=y
73CONFIG_PCI_QUIRKS=y
74CONFIG_SLAB=y 74CONFIG_SLAB=y
75# CONFIG_SLUB is not set 75# CONFIG_SLUB is not set
76# CONFIG_SLOB is not set 76# CONFIG_SLOB is not set
77# CONFIG_PROFILING is not set 77# CONFIG_PROFILING is not set
78# CONFIG_MARKERS is not set
79CONFIG_HAVE_OPROFILE=y 78CONFIG_HAVE_OPROFILE=y
80CONFIG_HAVE_IOREMAP_PROT=y 79CONFIG_HAVE_IOREMAP_PROT=y
81CONFIG_HAVE_KPROBES=y 80CONFIG_HAVE_KPROBES=y
@@ -85,13 +84,11 @@ CONFIG_HAVE_CLK=y
85CONFIG_HAVE_GENERIC_DMA_COHERENT=y 84CONFIG_HAVE_GENERIC_DMA_COHERENT=y
86CONFIG_SLABINFO=y 85CONFIG_SLABINFO=y
87CONFIG_RT_MUTEXES=y 86CONFIG_RT_MUTEXES=y
88# CONFIG_TINY_SHMEM is not set
89CONFIG_BASE_SMALL=0 87CONFIG_BASE_SMALL=0
90# CONFIG_MODULES is not set 88# CONFIG_MODULES is not set
91CONFIG_BLOCK=y 89CONFIG_BLOCK=y
92# CONFIG_LBD is not set 90# CONFIG_LBD is not set
93# CONFIG_BLK_DEV_IO_TRACE is not set 91# CONFIG_BLK_DEV_IO_TRACE is not set
94# CONFIG_LSF is not set
95# CONFIG_BLK_DEV_BSG is not set 92# CONFIG_BLK_DEV_BSG is not set
96# CONFIG_BLK_DEV_INTEGRITY is not set 93# CONFIG_BLK_DEV_INTEGRITY is not set
97 94
@@ -108,6 +105,10 @@ CONFIG_DEFAULT_AS=y
108# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
109CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
110CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_TREE_RCU is not set
109# CONFIG_PREEMPT_RCU is not set
110# CONFIG_TREE_RCU_TRACE is not set
111# CONFIG_PREEMPT_RCU_TRACE is not set
111CONFIG_FREEZER=y 112CONFIG_FREEZER=y
112 113
113# 114#
@@ -115,6 +116,7 @@ CONFIG_FREEZER=y
115# 116#
116CONFIG_CPU_SH3=y 117CONFIG_CPU_SH3=y
117# CONFIG_CPU_SUBTYPE_SH7619 is not set 118# CONFIG_CPU_SUBTYPE_SH7619 is not set
119# CONFIG_CPU_SUBTYPE_SH7201 is not set
118# CONFIG_CPU_SUBTYPE_SH7203 is not set 120# CONFIG_CPU_SUBTYPE_SH7203 is not set
119# CONFIG_CPU_SUBTYPE_SH7206 is not set 121# CONFIG_CPU_SUBTYPE_SH7206 is not set
120# CONFIG_CPU_SUBTYPE_SH7263 is not set 122# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -178,7 +180,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
178CONFIG_SPARSEMEM_STATIC=y 180CONFIG_SPARSEMEM_STATIC=y
179CONFIG_PAGEFLAGS_EXTENDED=y 181CONFIG_PAGEFLAGS_EXTENDED=y
180CONFIG_SPLIT_PTLOCK_CPUS=4 182CONFIG_SPLIT_PTLOCK_CPUS=4
181# CONFIG_RESOURCES_64BIT is not set
182# CONFIG_PHYS_ADDR_T_64BIT is not set 183# CONFIG_PHYS_ADDR_T_64BIT is not set
183CONFIG_ZONE_DMA_FLAG=0 184CONFIG_ZONE_DMA_FLAG=0
184CONFIG_NR_QUICK=2 185CONFIG_NR_QUICK=2
@@ -236,7 +237,6 @@ CONFIG_NR_ONCHIP_DMA_CHANNELS=4
236# 237#
237CONFIG_HD6446X_SERIES=y 238CONFIG_HD6446X_SERIES=y
238CONFIG_HD64461=y 239CONFIG_HD64461=y
239# CONFIG_HD64465 is not set
240CONFIG_HD64461_IRQ=36 240CONFIG_HD64461_IRQ=36
241CONFIG_HD64461_IOBASE=0xb0000000 241CONFIG_HD64461_IOBASE=0xb0000000
242CONFIG_HD64461_ENABLER=y 242CONFIG_HD64461_ENABLER=y
@@ -275,7 +275,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
275# 275#
276# Bus options 276# Bus options
277# 277#
278CONFIG_ISA=y
279# CONFIG_ARCH_SUPPORTS_MSI is not set 278# CONFIG_ARCH_SUPPORTS_MSI is not set
280CONFIG_PCCARD=y 279CONFIG_PCCARD=y
281# CONFIG_PCMCIA_DEBUG is not set 280# CONFIG_PCMCIA_DEBUG is not set
@@ -286,9 +285,6 @@ CONFIG_PCMCIA_IOCTL=y
286# 285#
287# PC-card bridges 286# PC-card bridges
288# 287#
289# CONFIG_I82365 is not set
290# CONFIG_TCIC is not set
291CONFIG_PCMCIA_PROBE=y
292 288
293# 289#
294# Executable file formats 290# Executable file formats
@@ -301,13 +297,13 @@ CONFIG_BINFMT_ELF=y
301# 297#
302# Power management options (EXPERIMENTAL) 298# Power management options (EXPERIMENTAL)
303# 299#
304CONFIG_ARCH_SUSPEND_POSSIBLE=y
305CONFIG_PM=y 300CONFIG_PM=y
306# CONFIG_PM_DEBUG is not set 301# CONFIG_PM_DEBUG is not set
307CONFIG_PM_SLEEP=y 302CONFIG_PM_SLEEP=y
308CONFIG_SUSPEND=y 303CONFIG_SUSPEND=y
309CONFIG_SUSPEND_FREEZER=y 304CONFIG_SUSPEND_FREEZER=y
310CONFIG_APM_EMULATION=y 305CONFIG_APM_EMULATION=y
306# CONFIG_CPU_IDLE is not set
311# CONFIG_NET is not set 307# CONFIG_NET is not set
312 308
313# 309#
@@ -326,7 +322,6 @@ CONFIG_EXTRA_FIRMWARE=""
326# CONFIG_SYS_HYPERVISOR is not set 322# CONFIG_SYS_HYPERVISOR is not set
327# CONFIG_MTD is not set 323# CONFIG_MTD is not set
328# CONFIG_PARPORT is not set 324# CONFIG_PARPORT is not set
329# CONFIG_PNP is not set
330CONFIG_BLK_DEV=y 325CONFIG_BLK_DEV=y
331# CONFIG_BLK_DEV_COW_COMMON is not set 326# CONFIG_BLK_DEV_COW_COMMON is not set
332# CONFIG_BLK_DEV_LOOP is not set 327# CONFIG_BLK_DEV_LOOP is not set
@@ -336,6 +331,7 @@ CONFIG_BLK_DEV=y
336CONFIG_MISC_DEVICES=y 331CONFIG_MISC_DEVICES=y
337# CONFIG_EEPROM_93CX6 is not set 332# CONFIG_EEPROM_93CX6 is not set
338# CONFIG_ENCLOSURE_SERVICES is not set 333# CONFIG_ENCLOSURE_SERVICES is not set
334# CONFIG_C2PORT is not set
339CONFIG_HAVE_IDE=y 335CONFIG_HAVE_IDE=y
340# CONFIG_IDE is not set 336# CONFIG_IDE is not set
341 337
@@ -375,18 +371,7 @@ CONFIG_BLK_DEV_SD=y
375# CONFIG_SCSI_SAS_LIBSAS is not set 371# CONFIG_SCSI_SAS_LIBSAS is not set
376# CONFIG_SCSI_SRP_ATTRS is not set 372# CONFIG_SCSI_SRP_ATTRS is not set
377CONFIG_SCSI_LOWLEVEL=y 373CONFIG_SCSI_LOWLEVEL=y
378# CONFIG_SCSI_AHA152X is not set 374# CONFIG_LIBFC is not set
379# CONFIG_SCSI_AIC7XXX_OLD is not set
380# CONFIG_SCSI_IN2000 is not set
381# CONFIG_SCSI_DTC3280 is not set
382# CONFIG_SCSI_FUTURE_DOMAIN is not set
383# CONFIG_SCSI_GENERIC_NCR5380 is not set
384# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
385# CONFIG_SCSI_NCR53C406A is not set
386# CONFIG_SCSI_PAS16 is not set
387# CONFIG_SCSI_QLOGIC_FAS is not set
388# CONFIG_SCSI_SYM53C416 is not set
389# CONFIG_SCSI_T128 is not set
390# CONFIG_SCSI_DEBUG is not set 375# CONFIG_SCSI_DEBUG is not set
391# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 376# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
392# CONFIG_SCSI_DH is not set 377# CONFIG_SCSI_DH is not set
@@ -395,10 +380,7 @@ CONFIG_ATA=y
395CONFIG_SATA_PMP=y 380CONFIG_SATA_PMP=y
396CONFIG_ATA_SFF=y 381CONFIG_ATA_SFF=y
397# CONFIG_SATA_MV is not set 382# CONFIG_SATA_MV is not set
398# CONFIG_PATA_LEGACY is not set
399# CONFIG_PATA_PCMCIA is not set 383# CONFIG_PATA_PCMCIA is not set
400# CONFIG_PATA_QDI is not set
401# CONFIG_PATA_WINBOND_VLB is not set
402CONFIG_PATA_PLATFORM=y 384CONFIG_PATA_PLATFORM=y
403# CONFIG_MD is not set 385# CONFIG_MD is not set
404# CONFIG_PHONE is not set 386# CONFIG_PHONE is not set
@@ -438,11 +420,11 @@ CONFIG_INPUT_TOUCHSCREEN=y
438# CONFIG_TOUCHSCREEN_FUJITSU is not set 420# CONFIG_TOUCHSCREEN_FUJITSU is not set
439# CONFIG_TOUCHSCREEN_GUNZE is not set 421# CONFIG_TOUCHSCREEN_GUNZE is not set
440# CONFIG_TOUCHSCREEN_ELO is not set 422# CONFIG_TOUCHSCREEN_ELO is not set
423# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
441# CONFIG_TOUCHSCREEN_MTOUCH is not set 424# CONFIG_TOUCHSCREEN_MTOUCH is not set
442# CONFIG_TOUCHSCREEN_INEXIO is not set 425# CONFIG_TOUCHSCREEN_INEXIO is not set
443# CONFIG_TOUCHSCREEN_MK712 is not set 426# CONFIG_TOUCHSCREEN_MK712 is not set
444CONFIG_TOUCHSCREEN_HP600=y 427CONFIG_TOUCHSCREEN_HP600=y
445# CONFIG_TOUCHSCREEN_HTCPEN is not set
446# CONFIG_TOUCHSCREEN_PENMOUNT is not set 428# CONFIG_TOUCHSCREEN_PENMOUNT is not set
447# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 429# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
448# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 430# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
@@ -484,11 +466,11 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
484CONFIG_SERIAL_CORE=y 466CONFIG_SERIAL_CORE=y
485CONFIG_SERIAL_CORE_CONSOLE=y 467CONFIG_SERIAL_CORE_CONSOLE=y
486CONFIG_UNIX98_PTYS=y 468CONFIG_UNIX98_PTYS=y
469# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
487CONFIG_LEGACY_PTYS=y 470CONFIG_LEGACY_PTYS=y
488CONFIG_LEGACY_PTY_COUNT=64 471CONFIG_LEGACY_PTY_COUNT=64
489# CONFIG_IPMI_HANDLER is not set 472# CONFIG_IPMI_HANDLER is not set
490CONFIG_HW_RANDOM=y 473CONFIG_HW_RANDOM=y
491# CONFIG_DTLK is not set
492# CONFIG_R3964 is not set 474# CONFIG_R3964 is not set
493 475
494# 476#
@@ -499,7 +481,6 @@ CONFIG_HW_RANDOM=y
499# CONFIG_CARDMAN_4040 is not set 481# CONFIG_CARDMAN_4040 is not set
500# CONFIG_RAW_DRIVER is not set 482# CONFIG_RAW_DRIVER is not set
501# CONFIG_TCG_TPM is not set 483# CONFIG_TCG_TPM is not set
502CONFIG_DEVPORT=y
503# CONFIG_I2C is not set 484# CONFIG_I2C is not set
504# CONFIG_SPI is not set 485# CONFIG_SPI is not set
505# CONFIG_W1 is not set 486# CONFIG_W1 is not set
@@ -508,11 +489,11 @@ CONFIG_DEVPORT=y
508# CONFIG_THERMAL is not set 489# CONFIG_THERMAL is not set
509# CONFIG_THERMAL_HWMON is not set 490# CONFIG_THERMAL_HWMON is not set
510# CONFIG_WATCHDOG is not set 491# CONFIG_WATCHDOG is not set
492CONFIG_SSB_POSSIBLE=y
511 493
512# 494#
513# Sonics Silicon Backplane 495# Sonics Silicon Backplane
514# 496#
515CONFIG_SSB_POSSIBLE=y
516# CONFIG_SSB is not set 497# CONFIG_SSB is not set
517 498
518# 499#
@@ -522,7 +503,7 @@ CONFIG_SSB_POSSIBLE=y
522# CONFIG_MFD_SM501 is not set 503# CONFIG_MFD_SM501 is not set
523# CONFIG_HTC_PASIC3 is not set 504# CONFIG_HTC_PASIC3 is not set
524# CONFIG_MFD_TMIO is not set 505# CONFIG_MFD_TMIO is not set
525# CONFIG_MFD_WM8400 is not set 506# CONFIG_REGULATOR is not set
526 507
527# 508#
528# Multimedia devices 509# Multimedia devices
@@ -552,11 +533,12 @@ CONFIG_FB_CFB_FILLRECT=y
552CONFIG_FB_CFB_COPYAREA=y 533CONFIG_FB_CFB_COPYAREA=y
553CONFIG_FB_CFB_IMAGEBLIT=y 534CONFIG_FB_CFB_IMAGEBLIT=y
554# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 535# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
555# CONFIG_FB_SYS_FILLRECT is not set 536CONFIG_FB_SYS_FILLRECT=y
556# CONFIG_FB_SYS_COPYAREA is not set 537CONFIG_FB_SYS_COPYAREA=y
557# CONFIG_FB_SYS_IMAGEBLIT is not set 538CONFIG_FB_SYS_IMAGEBLIT=y
558# CONFIG_FB_FOREIGN_ENDIAN is not set 539# CONFIG_FB_FOREIGN_ENDIAN is not set
559# CONFIG_FB_SYS_FOPS is not set 540CONFIG_FB_SYS_FOPS=y
541CONFIG_FB_DEFERRED_IO=y
560# CONFIG_FB_SVGALIB is not set 542# CONFIG_FB_SVGALIB is not set
561# CONFIG_FB_MACMODES is not set 543# CONFIG_FB_MACMODES is not set
562# CONFIG_FB_BACKLIGHT is not set 544# CONFIG_FB_BACKLIGHT is not set
@@ -571,6 +553,7 @@ CONFIG_FB_HIT=y
571CONFIG_FB_SH_MOBILE_LCDC=y 553CONFIG_FB_SH_MOBILE_LCDC=y
572# CONFIG_FB_VIRTUAL is not set 554# CONFIG_FB_VIRTUAL is not set
573# CONFIG_FB_METRONOME is not set 555# CONFIG_FB_METRONOME is not set
556# CONFIG_FB_MB862XX is not set
574CONFIG_BACKLIGHT_LCD_SUPPORT=y 557CONFIG_BACKLIGHT_LCD_SUPPORT=y
575CONFIG_LCD_CLASS_DEVICE=y 558CONFIG_LCD_CLASS_DEVICE=y
576# CONFIG_LCD_ILI9320 is not set 559# CONFIG_LCD_ILI9320 is not set
@@ -587,7 +570,6 @@ CONFIG_BACKLIGHT_HP680=y
587# 570#
588# Console display driver support 571# Console display driver support
589# 572#
590# CONFIG_MDA_CONSOLE is not set
591CONFIG_DUMMY_CONSOLE=y 573CONFIG_DUMMY_CONSOLE=y
592CONFIG_FRAMEBUFFER_CONSOLE=y 574CONFIG_FRAMEBUFFER_CONSOLE=y
593# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set 575# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
@@ -701,10 +683,7 @@ CONFIG_SYSFS=y
701# CONFIG_HUGETLBFS is not set 683# CONFIG_HUGETLBFS is not set
702# CONFIG_HUGETLB_PAGE is not set 684# CONFIG_HUGETLB_PAGE is not set
703# CONFIG_CONFIGFS_FS is not set 685# CONFIG_CONFIGFS_FS is not set
704 686CONFIG_MISC_FILESYSTEMS=y
705#
706# Miscellaneous filesystems
707#
708# CONFIG_ADFS_FS is not set 687# CONFIG_ADFS_FS is not set
709# CONFIG_AFFS_FS is not set 688# CONFIG_AFFS_FS is not set
710# CONFIG_HFS_FS is not set 689# CONFIG_HFS_FS is not set
@@ -785,13 +764,19 @@ CONFIG_FRAME_WARN=1024
785# CONFIG_DEBUG_MEMORY_INIT is not set 764# CONFIG_DEBUG_MEMORY_INIT is not set
786# CONFIG_RCU_CPU_STALL_DETECTOR is not set 765# CONFIG_RCU_CPU_STALL_DETECTOR is not set
787# CONFIG_LATENCYTOP is not set 766# CONFIG_LATENCYTOP is not set
788CONFIG_NOP_TRACER=y 767CONFIG_HAVE_FUNCTION_TRACER=y
789CONFIG_HAVE_FTRACE=y 768CONFIG_HAVE_DYNAMIC_FTRACE=y
769CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
770
771#
772# Tracers
773#
790# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 774# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
791# CONFIG_SAMPLES is not set 775# CONFIG_SAMPLES is not set
776CONFIG_HAVE_ARCH_KGDB=y
792# CONFIG_SH_STANDARD_BIOS is not set 777# CONFIG_SH_STANDARD_BIOS is not set
793# CONFIG_EARLY_SCIF_CONSOLE is not set 778# CONFIG_EARLY_SCIF_CONSOLE is not set
794# CONFIG_SH_KGDB is not set 779# CONFIG_MORE_COMPILE_OPTIONS is not set
795 780
796# 781#
797# Security options 782# Security options
@@ -807,11 +792,15 @@ CONFIG_CRYPTO=y
807# 792#
808# CONFIG_CRYPTO_FIPS is not set 793# CONFIG_CRYPTO_FIPS is not set
809CONFIG_CRYPTO_ALGAPI=y 794CONFIG_CRYPTO_ALGAPI=y
810CONFIG_CRYPTO_AEAD=y 795CONFIG_CRYPTO_ALGAPI2=y
796CONFIG_CRYPTO_AEAD2=y
811CONFIG_CRYPTO_BLKCIPHER=y 797CONFIG_CRYPTO_BLKCIPHER=y
798CONFIG_CRYPTO_BLKCIPHER2=y
812CONFIG_CRYPTO_HASH=y 799CONFIG_CRYPTO_HASH=y
813CONFIG_CRYPTO_RNG=y 800CONFIG_CRYPTO_HASH2=y
801CONFIG_CRYPTO_RNG2=y
814CONFIG_CRYPTO_MANAGER=y 802CONFIG_CRYPTO_MANAGER=y
803CONFIG_CRYPTO_MANAGER2=y
815# CONFIG_CRYPTO_GF128MUL is not set 804# CONFIG_CRYPTO_GF128MUL is not set
816# CONFIG_CRYPTO_NULL is not set 805# CONFIG_CRYPTO_NULL is not set
817# CONFIG_CRYPTO_CRYPTD is not set 806# CONFIG_CRYPTO_CRYPTD is not set
@@ -893,6 +882,7 @@ CONFIG_CRYPTO_MD5=y
893# Library routines 882# Library routines
894# 883#
895CONFIG_BITREVERSE=y 884CONFIG_BITREVERSE=y
885CONFIG_GENERIC_FIND_LAST_BIT=y
896# CONFIG_CRC_CCITT is not set 886# CONFIG_CRC_CCITT is not set
897CONFIG_CRC16=y 887CONFIG_CRC16=y
898CONFIG_CRC_T10DIF=y 888CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/landisk_defconfig b/arch/sh/configs/landisk_defconfig
index b82dfb4da3aa..d3bbbb037716 100644
--- a/arch/sh/configs/landisk_defconfig
+++ b/arch/sh/configs/landisk_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:25:51 2008 4# Fri Jan 9 16:58:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -76,7 +78,6 @@ CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
82CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -87,7 +88,6 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90# CONFIG_TINY_SHMEM is not set
91CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
@@ -95,11 +95,9 @@ CONFIG_MODULE_UNLOAD=y
95CONFIG_MODULE_FORCE_UNLOAD=y 95CONFIG_MODULE_FORCE_UNLOAD=y
96# CONFIG_MODVERSIONS is not set 96# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 97# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 98CONFIG_BLOCK=y
100# CONFIG_LBD is not set 99# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 101# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 102# CONFIG_BLK_DEV_INTEGRITY is not set
105 103
@@ -116,6 +114,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 114# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 115CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 116CONFIG_CLASSIC_RCU=y
117# CONFIG_TREE_RCU is not set
118# CONFIG_PREEMPT_RCU is not set
119# CONFIG_TREE_RCU_TRACE is not set
120# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 121# CONFIG_FREEZER is not set
120 122
121# 123#
@@ -123,6 +125,7 @@ CONFIG_CLASSIC_RCU=y
123# 125#
124CONFIG_CPU_SH4=y 126CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 127# CONFIG_CPU_SUBTYPE_SH7619 is not set
128# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 129# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 130# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 131# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +189,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 189CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 190CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 191CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 192# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 193CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 194CONFIG_NR_QUICK=2
@@ -285,6 +287,7 @@ CONFIG_PCI=y
285CONFIG_SH_PCIDMA_NONCOHERENT=y 287CONFIG_SH_PCIDMA_NONCOHERENT=y
286CONFIG_PCI_AUTO=y 288CONFIG_PCI_AUTO=y
287CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 289CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
290# CONFIG_PCIEPORTBUS is not set
288# CONFIG_ARCH_SUPPORTS_MSI is not set 291# CONFIG_ARCH_SUPPORTS_MSI is not set
289CONFIG_PCI_LEGACY=y 292CONFIG_PCI_LEGACY=y
290CONFIG_PCCARD=y 293CONFIG_PCCARD=y
@@ -315,11 +318,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 318# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 319# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 320# CONFIG_BINFMT_MISC is not set
321
322#
323# Power management options (EXPERIMENTAL)
324#
325# CONFIG_PM is not set
326# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 327CONFIG_NET=y
319 328
320# 329#
321# Networking options 330# Networking options
322# 331#
332CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 333CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 334# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 335CONFIG_UNIX=y
@@ -401,6 +411,7 @@ CONFIG_ATALK=m
401# CONFIG_ECONET is not set 411# CONFIG_ECONET is not set
402# CONFIG_WAN_ROUTER is not set 412# CONFIG_WAN_ROUTER is not set
403# CONFIG_NET_SCHED is not set 413# CONFIG_NET_SCHED is not set
414# CONFIG_DCB is not set
404 415
405# 416#
406# Network testing 417# Network testing
@@ -416,8 +427,8 @@ CONFIG_WIRELESS=y
416# CONFIG_CFG80211 is not set 427# CONFIG_CFG80211 is not set
417# CONFIG_WIRELESS_OLD_REGULATORY is not set 428# CONFIG_WIRELESS_OLD_REGULATORY is not set
418# CONFIG_WIRELESS_EXT is not set 429# CONFIG_WIRELESS_EXT is not set
430# CONFIG_LIB80211 is not set
419# CONFIG_MAC80211 is not set 431# CONFIG_MAC80211 is not set
420# CONFIG_IEEE80211 is not set
421# CONFIG_RFKILL is not set 432# CONFIG_RFKILL is not set
422# CONFIG_NET_9P is not set 433# CONFIG_NET_9P is not set
423 434
@@ -462,6 +473,7 @@ CONFIG_MISC_DEVICES=y
462# CONFIG_TIFM_CORE is not set 473# CONFIG_TIFM_CORE is not set
463# CONFIG_ENCLOSURE_SERVICES is not set 474# CONFIG_ENCLOSURE_SERVICES is not set
464# CONFIG_HP_ILO is not set 475# CONFIG_HP_ILO is not set
476# CONFIG_C2PORT is not set
465CONFIG_HAVE_IDE=y 477CONFIG_HAVE_IDE=y
466CONFIG_IDE=y 478CONFIG_IDE=y
467 479
@@ -478,7 +490,6 @@ CONFIG_IDE_GD_ATA=y
478CONFIG_BLK_DEV_IDECD=y 490CONFIG_BLK_DEV_IDECD=y
479CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 491CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
480# CONFIG_BLK_DEV_IDETAPE is not set 492# CONFIG_BLK_DEV_IDETAPE is not set
481CONFIG_BLK_DEV_IDESCSI=y
482# CONFIG_IDE_TASK_IOCTL is not set 493# CONFIG_IDE_TASK_IOCTL is not set
483CONFIG_IDE_PROC_FS=y 494CONFIG_IDE_PROC_FS=y
484 495
@@ -508,6 +519,7 @@ CONFIG_BLK_DEV_AEC62XX=y
508# CONFIG_BLK_DEV_JMICRON is not set 519# CONFIG_BLK_DEV_JMICRON is not set
509# CONFIG_BLK_DEV_SC1200 is not set 520# CONFIG_BLK_DEV_SC1200 is not set
510# CONFIG_BLK_DEV_PIIX is not set 521# CONFIG_BLK_DEV_PIIX is not set
522# CONFIG_BLK_DEV_IT8172 is not set
511# CONFIG_BLK_DEV_IT8213 is not set 523# CONFIG_BLK_DEV_IT8213 is not set
512# CONFIG_BLK_DEV_IT821X is not set 524# CONFIG_BLK_DEV_IT821X is not set
513# CONFIG_BLK_DEV_NS87415 is not set 525# CONFIG_BLK_DEV_NS87415 is not set
@@ -560,6 +572,7 @@ CONFIG_SCSI_WAIT_SCAN=m
560# CONFIG_SCSI_SRP_ATTRS is not set 572# CONFIG_SCSI_SRP_ATTRS is not set
561CONFIG_SCSI_LOWLEVEL=y 573CONFIG_SCSI_LOWLEVEL=y
562# CONFIG_ISCSI_TCP is not set 574# CONFIG_ISCSI_TCP is not set
575# CONFIG_SCSI_CXGB3_ISCSI is not set
563# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 576# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
564# CONFIG_SCSI_3W_9XXX is not set 577# CONFIG_SCSI_3W_9XXX is not set
565# CONFIG_SCSI_ACARD is not set 578# CONFIG_SCSI_ACARD is not set
@@ -573,6 +586,8 @@ CONFIG_SCSI_LOWLEVEL=y
573# CONFIG_MEGARAID_LEGACY is not set 586# CONFIG_MEGARAID_LEGACY is not set
574# CONFIG_MEGARAID_SAS is not set 587# CONFIG_MEGARAID_SAS is not set
575# CONFIG_SCSI_HPTIOP is not set 588# CONFIG_SCSI_HPTIOP is not set
589# CONFIG_LIBFC is not set
590# CONFIG_FCOE is not set
576# CONFIG_SCSI_DMX3191D is not set 591# CONFIG_SCSI_DMX3191D is not set
577# CONFIG_SCSI_FUTURE_DOMAIN is not set 592# CONFIG_SCSI_FUTURE_DOMAIN is not set
578# CONFIG_SCSI_IPS is not set 593# CONFIG_SCSI_IPS is not set
@@ -634,6 +649,7 @@ CONFIG_MII=y
634# CONFIG_NET_VENDOR_3COM is not set 649# CONFIG_NET_VENDOR_3COM is not set
635# CONFIG_SMC91X is not set 650# CONFIG_SMC91X is not set
636# CONFIG_SMC911X is not set 651# CONFIG_SMC911X is not set
652# CONFIG_SMSC911X is not set
637# CONFIG_NET_TULIP is not set 653# CONFIG_NET_TULIP is not set
638# CONFIG_HP100 is not set 654# CONFIG_HP100 is not set
639# CONFIG_IBM_NEW_EMAC_ZMII is not set 655# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -649,7 +665,6 @@ CONFIG_NET_PCI=y
649# CONFIG_ADAPTEC_STARFIRE is not set 665# CONFIG_ADAPTEC_STARFIRE is not set
650# CONFIG_B44 is not set 666# CONFIG_B44 is not set
651# CONFIG_FORCEDETH is not set 667# CONFIG_FORCEDETH is not set
652# CONFIG_EEPRO100 is not set
653# CONFIG_E100 is not set 668# CONFIG_E100 is not set
654# CONFIG_FEALNX is not set 669# CONFIG_FEALNX is not set
655# CONFIG_NATSEMI is not set 670# CONFIG_NATSEMI is not set
@@ -659,6 +674,7 @@ CONFIG_8139CP=y
659# CONFIG_R6040 is not set 674# CONFIG_R6040 is not set
660# CONFIG_SIS900 is not set 675# CONFIG_SIS900 is not set
661# CONFIG_EPIC100 is not set 676# CONFIG_EPIC100 is not set
677# CONFIG_SMSC9420 is not set
662# CONFIG_SUNDANCE is not set 678# CONFIG_SUNDANCE is not set
663# CONFIG_TLAN is not set 679# CONFIG_TLAN is not set
664# CONFIG_VIA_RHINE is not set 680# CONFIG_VIA_RHINE is not set
@@ -687,6 +703,7 @@ CONFIG_NETDEV_1000=y
687# CONFIG_JME is not set 703# CONFIG_JME is not set
688CONFIG_NETDEV_10000=y 704CONFIG_NETDEV_10000=y
689# CONFIG_CHELSIO_T1 is not set 705# CONFIG_CHELSIO_T1 is not set
706CONFIG_CHELSIO_T3_DEPENDS=y
690# CONFIG_CHELSIO_T3 is not set 707# CONFIG_CHELSIO_T3 is not set
691# CONFIG_ENIC is not set 708# CONFIG_ENIC is not set
692# CONFIG_IXGBE is not set 709# CONFIG_IXGBE is not set
@@ -695,6 +712,7 @@ CONFIG_NETDEV_10000=y
695# CONFIG_MYRI10GE is not set 712# CONFIG_MYRI10GE is not set
696# CONFIG_NETXEN_NIC is not set 713# CONFIG_NETXEN_NIC is not set
697# CONFIG_NIU is not set 714# CONFIG_NIU is not set
715# CONFIG_MLX4_EN is not set
698# CONFIG_MLX4_CORE is not set 716# CONFIG_MLX4_CORE is not set
699# CONFIG_TEHUTI is not set 717# CONFIG_TEHUTI is not set
700# CONFIG_BNX2X is not set 718# CONFIG_BNX2X is not set
@@ -791,6 +809,7 @@ CONFIG_SERIAL_CORE=y
791CONFIG_SERIAL_CORE_CONSOLE=y 809CONFIG_SERIAL_CORE_CONSOLE=y
792# CONFIG_SERIAL_JSM is not set 810# CONFIG_SERIAL_JSM is not set
793CONFIG_UNIX98_PTYS=y 811CONFIG_UNIX98_PTYS=y
812# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
794CONFIG_LEGACY_PTYS=y 813CONFIG_LEGACY_PTYS=y
795CONFIG_LEGACY_PTY_COUNT=256 814CONFIG_LEGACY_PTY_COUNT=256
796# CONFIG_IPMI_HANDLER is not set 815# CONFIG_IPMI_HANDLER is not set
@@ -832,11 +851,11 @@ CONFIG_HWMON=y
832# CONFIG_THERMAL is not set 851# CONFIG_THERMAL is not set
833# CONFIG_THERMAL_HWMON is not set 852# CONFIG_THERMAL_HWMON is not set
834# CONFIG_WATCHDOG is not set 853# CONFIG_WATCHDOG is not set
854CONFIG_SSB_POSSIBLE=y
835 855
836# 856#
837# Sonics Silicon Backplane 857# Sonics Silicon Backplane
838# 858#
839CONFIG_SSB_POSSIBLE=y
840# CONFIG_SSB is not set 859# CONFIG_SSB is not set
841 860
842# 861#
@@ -846,7 +865,7 @@ CONFIG_SSB_POSSIBLE=y
846# CONFIG_MFD_SM501 is not set 865# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set 866# CONFIG_HTC_PASIC3 is not set
848# CONFIG_MFD_TMIO is not set 867# CONFIG_MFD_TMIO is not set
849# CONFIG_MFD_WM8400 is not set 868# CONFIG_REGULATOR is not set
850 869
851# 870#
852# Multimedia devices 871# Multimedia devices
@@ -952,11 +971,9 @@ CONFIG_HID_COMPAT=y
952CONFIG_HID_A4TECH=m 971CONFIG_HID_A4TECH=m
953CONFIG_HID_APPLE=m 972CONFIG_HID_APPLE=m
954CONFIG_HID_BELKIN=m 973CONFIG_HID_BELKIN=m
955CONFIG_HID_BRIGHT=m
956CONFIG_HID_CHERRY=m 974CONFIG_HID_CHERRY=m
957CONFIG_HID_CHICONY=m 975CONFIG_HID_CHICONY=m
958CONFIG_HID_CYPRESS=m 976CONFIG_HID_CYPRESS=m
959CONFIG_HID_DELL=m
960CONFIG_HID_EZKEY=m 977CONFIG_HID_EZKEY=m
961CONFIG_HID_GYRATION=m 978CONFIG_HID_GYRATION=m
962CONFIG_HID_LOGITECH=m 979CONFIG_HID_LOGITECH=m
@@ -964,12 +981,15 @@ CONFIG_HID_LOGITECH=m
964# CONFIG_LOGIRUMBLEPAD2_FF is not set 981# CONFIG_LOGIRUMBLEPAD2_FF is not set
965CONFIG_HID_MICROSOFT=m 982CONFIG_HID_MICROSOFT=m
966CONFIG_HID_MONTEREY=m 983CONFIG_HID_MONTEREY=m
984# CONFIG_HID_NTRIG is not set
967CONFIG_HID_PANTHERLORD=m 985CONFIG_HID_PANTHERLORD=m
968# CONFIG_PANTHERLORD_FF is not set 986# CONFIG_PANTHERLORD_FF is not set
969CONFIG_HID_PETALYNX=m 987CONFIG_HID_PETALYNX=m
970CONFIG_HID_SAMSUNG=m 988CONFIG_HID_SAMSUNG=m
971CONFIG_HID_SONY=m 989CONFIG_HID_SONY=m
972CONFIG_HID_SUNPLUS=m 990CONFIG_HID_SUNPLUS=m
991# CONFIG_GREENASIA_FF is not set
992# CONFIG_HID_TOPSEED is not set
973CONFIG_THRUSTMASTER_FF=m 993CONFIG_THRUSTMASTER_FF=m
974CONFIG_ZEROPLUS_FF=m 994CONFIG_ZEROPLUS_FF=m
975CONFIG_USB_SUPPORT=y 995CONFIG_USB_SUPPORT=y
@@ -990,6 +1010,8 @@ CONFIG_USB_DEVICE_CLASS=y
990# CONFIG_USB_OTG_WHITELIST is not set 1010# CONFIG_USB_OTG_WHITELIST is not set
991# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1011# CONFIG_USB_OTG_BLACKLIST_HUB is not set
992CONFIG_USB_MON=y 1012CONFIG_USB_MON=y
1013# CONFIG_USB_WUSB is not set
1014# CONFIG_USB_WUSB_CBAF is not set
993 1015
994# 1016#
995# USB Host Controller Drivers 1017# USB Host Controller Drivers
@@ -1007,6 +1029,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1007# CONFIG_USB_UHCI_HCD is not set 1029# CONFIG_USB_UHCI_HCD is not set
1008# CONFIG_USB_SL811_HCD is not set 1030# CONFIG_USB_SL811_HCD is not set
1009# CONFIG_USB_R8A66597_HCD is not set 1031# CONFIG_USB_R8A66597_HCD is not set
1032# CONFIG_USB_WHCI_HCD is not set
1033# CONFIG_USB_HWA_HCD is not set
1010 1034
1011# 1035#
1012# USB Device Class drivers 1036# USB Device Class drivers
@@ -1017,11 +1041,11 @@ CONFIG_USB_PRINTER=m
1017# CONFIG_USB_TMC is not set 1041# CONFIG_USB_TMC is not set
1018 1042
1019# 1043#
1020# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1044# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1021# 1045#
1022 1046
1023# 1047#
1024# may also be needed; see USB_STORAGE Help for more information 1048# see USB_STORAGE Help for more information
1025# 1049#
1026CONFIG_USB_STORAGE=m 1050CONFIG_USB_STORAGE=m
1027# CONFIG_USB_STORAGE_DEBUG is not set 1051# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1119,6 +1143,7 @@ CONFIG_USB_SISUSBVGA_CON=y
1119# CONFIG_USB_ISIGHTFW is not set 1143# CONFIG_USB_ISIGHTFW is not set
1120# CONFIG_USB_VST is not set 1144# CONFIG_USB_VST is not set
1121# CONFIG_USB_GADGET is not set 1145# CONFIG_USB_GADGET is not set
1146# CONFIG_UWB is not set
1122# CONFIG_MMC is not set 1147# CONFIG_MMC is not set
1123# CONFIG_MEMSTICK is not set 1148# CONFIG_MEMSTICK is not set
1124# CONFIG_NEW_LEDS is not set 1149# CONFIG_NEW_LEDS is not set
@@ -1192,10 +1217,7 @@ CONFIG_TMPFS=y
1192# CONFIG_HUGETLBFS is not set 1217# CONFIG_HUGETLBFS is not set
1193# CONFIG_HUGETLB_PAGE is not set 1218# CONFIG_HUGETLB_PAGE is not set
1194# CONFIG_CONFIGFS_FS is not set 1219# CONFIG_CONFIGFS_FS is not set
1195 1220CONFIG_MISC_FILESYSTEMS=y
1196#
1197# Miscellaneous filesystems
1198#
1199# CONFIG_ADFS_FS is not set 1221# CONFIG_ADFS_FS is not set
1200# CONFIG_AFFS_FS is not set 1222# CONFIG_AFFS_FS is not set
1201# CONFIG_HFS_FS is not set 1223# CONFIG_HFS_FS is not set
@@ -1302,14 +1324,20 @@ CONFIG_FRAME_WARN=1024
1302# CONFIG_DEBUG_MEMORY_INIT is not set 1324# CONFIG_DEBUG_MEMORY_INIT is not set
1303# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1325# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1304# CONFIG_LATENCYTOP is not set 1326# CONFIG_LATENCYTOP is not set
1305CONFIG_NOP_TRACER=y 1327CONFIG_HAVE_FUNCTION_TRACER=y
1306CONFIG_HAVE_FTRACE=y 1328CONFIG_HAVE_DYNAMIC_FTRACE=y
1329CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1330
1331#
1332# Tracers
1333#
1307# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1334# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1308# CONFIG_SAMPLES is not set 1335# CONFIG_SAMPLES is not set
1336CONFIG_HAVE_ARCH_KGDB=y
1309CONFIG_SH_STANDARD_BIOS=y 1337CONFIG_SH_STANDARD_BIOS=y
1310# CONFIG_EARLY_SCIF_CONSOLE is not set 1338# CONFIG_EARLY_SCIF_CONSOLE is not set
1311# CONFIG_EARLY_PRINTK is not set 1339# CONFIG_EARLY_PRINTK is not set
1312# CONFIG_SH_KGDB is not set 1340# CONFIG_MORE_COMPILE_OPTIONS is not set
1313 1341
1314# 1342#
1315# Security options 1343# Security options
@@ -1325,6 +1353,7 @@ CONFIG_CRYPTO=y
1325# 1353#
1326# CONFIG_CRYPTO_FIPS is not set 1354# CONFIG_CRYPTO_FIPS is not set
1327# CONFIG_CRYPTO_MANAGER is not set 1355# CONFIG_CRYPTO_MANAGER is not set
1356# CONFIG_CRYPTO_MANAGER2 is not set
1328# CONFIG_CRYPTO_GF128MUL is not set 1357# CONFIG_CRYPTO_GF128MUL is not set
1329# CONFIG_CRYPTO_NULL is not set 1358# CONFIG_CRYPTO_NULL is not set
1330# CONFIG_CRYPTO_CRYPTD is not set 1359# CONFIG_CRYPTO_CRYPTD is not set
@@ -1408,6 +1437,7 @@ CONFIG_CRYPTO_HW=y
1408# Library routines 1437# Library routines
1409# 1438#
1410CONFIG_BITREVERSE=y 1439CONFIG_BITREVERSE=y
1440CONFIG_GENERIC_FIND_LAST_BIT=y
1411# CONFIG_CRC_CCITT is not set 1441# CONFIG_CRC_CCITT is not set
1412# CONFIG_CRC16 is not set 1442# CONFIG_CRC16 is not set
1413CONFIG_CRC_T10DIF=y 1443CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/lboxre2_defconfig b/arch/sh/configs/lboxre2_defconfig
index c3ecedfc1bc7..d5c5a1dbaa62 100644
--- a/arch/sh/configs/lboxre2_defconfig
+++ b/arch/sh/configs/lboxre2_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:29:42 2008 4# Fri Jan 9 17:02:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -76,7 +78,6 @@ CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
82CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -87,7 +88,6 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90# CONFIG_TINY_SHMEM is not set
91CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
@@ -95,11 +95,9 @@ CONFIG_MODULE_UNLOAD=y
95CONFIG_MODULE_FORCE_UNLOAD=y 95CONFIG_MODULE_FORCE_UNLOAD=y
96# CONFIG_MODVERSIONS is not set 96# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 97# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 98CONFIG_BLOCK=y
100# CONFIG_LBD is not set 99# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 101# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 102# CONFIG_BLK_DEV_INTEGRITY is not set
105 103
@@ -116,6 +114,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 114# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 115CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 116CONFIG_CLASSIC_RCU=y
117# CONFIG_TREE_RCU is not set
118# CONFIG_PREEMPT_RCU is not set
119# CONFIG_TREE_RCU_TRACE is not set
120# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 121# CONFIG_FREEZER is not set
120 122
121# 123#
@@ -123,6 +125,7 @@ CONFIG_CLASSIC_RCU=y
123# 125#
124CONFIG_CPU_SH4=y 126CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 127# CONFIG_CPU_SUBTYPE_SH7619 is not set
128# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 129# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 130# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 131# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +189,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 189CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 190CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 191CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 192# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 193CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 194CONFIG_NR_QUICK=2
@@ -286,6 +288,7 @@ CONFIG_PCI=y
286CONFIG_SH_PCIDMA_NONCOHERENT=y 288CONFIG_SH_PCIDMA_NONCOHERENT=y
287CONFIG_PCI_AUTO=y 289CONFIG_PCI_AUTO=y
288CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 290CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
291# CONFIG_PCIEPORTBUS is not set
289# CONFIG_ARCH_SUPPORTS_MSI is not set 292# CONFIG_ARCH_SUPPORTS_MSI is not set
290CONFIG_PCI_LEGACY=y 293CONFIG_PCI_LEGACY=y
291CONFIG_PCCARD=y 294CONFIG_PCCARD=y
@@ -315,11 +318,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 318# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 319# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 320# CONFIG_BINFMT_MISC is not set
321
322#
323# Power management options (EXPERIMENTAL)
324#
325# CONFIG_PM is not set
326# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 327CONFIG_NET=y
319 328
320# 329#
321# Networking options 330# Networking options
322# 331#
332CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 333CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 334# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 335CONFIG_UNIX=y
@@ -399,6 +409,7 @@ CONFIG_NETFILTER_ADVANCED=y
399# CONFIG_ECONET is not set 409# CONFIG_ECONET is not set
400# CONFIG_WAN_ROUTER is not set 410# CONFIG_WAN_ROUTER is not set
401# CONFIG_NET_SCHED is not set 411# CONFIG_NET_SCHED is not set
412# CONFIG_DCB is not set
402 413
403# 414#
404# Network testing 415# Network testing
@@ -414,8 +425,8 @@ CONFIG_WIRELESS=y
414# CONFIG_CFG80211 is not set 425# CONFIG_CFG80211 is not set
415# CONFIG_WIRELESS_OLD_REGULATORY is not set 426# CONFIG_WIRELESS_OLD_REGULATORY is not set
416# CONFIG_WIRELESS_EXT is not set 427# CONFIG_WIRELESS_EXT is not set
428# CONFIG_LIB80211 is not set
417# CONFIG_MAC80211 is not set 429# CONFIG_MAC80211 is not set
418# CONFIG_IEEE80211 is not set
419# CONFIG_RFKILL is not set 430# CONFIG_RFKILL is not set
420# CONFIG_NET_9P is not set 431# CONFIG_NET_9P is not set
421 432
@@ -459,6 +470,7 @@ CONFIG_MISC_DEVICES=y
459# CONFIG_TIFM_CORE is not set 470# CONFIG_TIFM_CORE is not set
460# CONFIG_ENCLOSURE_SERVICES is not set 471# CONFIG_ENCLOSURE_SERVICES is not set
461# CONFIG_HP_ILO is not set 472# CONFIG_HP_ILO is not set
473# CONFIG_C2PORT is not set
462CONFIG_HAVE_IDE=y 474CONFIG_HAVE_IDE=y
463# CONFIG_IDE is not set 475# CONFIG_IDE is not set
464 476
@@ -501,6 +513,7 @@ CONFIG_SCSI_WAIT_SCAN=m
501# CONFIG_SCSI_SRP_ATTRS is not set 513# CONFIG_SCSI_SRP_ATTRS is not set
502CONFIG_SCSI_LOWLEVEL=y 514CONFIG_SCSI_LOWLEVEL=y
503# CONFIG_ISCSI_TCP is not set 515# CONFIG_ISCSI_TCP is not set
516# CONFIG_SCSI_CXGB3_ISCSI is not set
504# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 517# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
505# CONFIG_SCSI_3W_9XXX is not set 518# CONFIG_SCSI_3W_9XXX is not set
506# CONFIG_SCSI_ACARD is not set 519# CONFIG_SCSI_ACARD is not set
@@ -514,6 +527,8 @@ CONFIG_SCSI_LOWLEVEL=y
514# CONFIG_MEGARAID_LEGACY is not set 527# CONFIG_MEGARAID_LEGACY is not set
515# CONFIG_MEGARAID_SAS is not set 528# CONFIG_MEGARAID_SAS is not set
516# CONFIG_SCSI_HPTIOP is not set 529# CONFIG_SCSI_HPTIOP is not set
530# CONFIG_LIBFC is not set
531# CONFIG_FCOE is not set
517# CONFIG_SCSI_DMX3191D is not set 532# CONFIG_SCSI_DMX3191D is not set
518# CONFIG_SCSI_FUTURE_DOMAIN is not set 533# CONFIG_SCSI_FUTURE_DOMAIN is not set
519# CONFIG_SCSI_IPS is not set 534# CONFIG_SCSI_IPS is not set
@@ -627,6 +642,7 @@ CONFIG_MII=y
627# CONFIG_NET_VENDOR_3COM is not set 642# CONFIG_NET_VENDOR_3COM is not set
628# CONFIG_SMC91X is not set 643# CONFIG_SMC91X is not set
629# CONFIG_SMC911X is not set 644# CONFIG_SMC911X is not set
645# CONFIG_SMSC911X is not set
630# CONFIG_NET_TULIP is not set 646# CONFIG_NET_TULIP is not set
631# CONFIG_HP100 is not set 647# CONFIG_HP100 is not set
632# CONFIG_IBM_NEW_EMAC_ZMII is not set 648# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -642,7 +658,6 @@ CONFIG_NET_PCI=y
642# CONFIG_ADAPTEC_STARFIRE is not set 658# CONFIG_ADAPTEC_STARFIRE is not set
643# CONFIG_B44 is not set 659# CONFIG_B44 is not set
644# CONFIG_FORCEDETH is not set 660# CONFIG_FORCEDETH is not set
645# CONFIG_EEPRO100 is not set
646# CONFIG_E100 is not set 661# CONFIG_E100 is not set
647# CONFIG_FEALNX is not set 662# CONFIG_FEALNX is not set
648# CONFIG_NATSEMI is not set 663# CONFIG_NATSEMI is not set
@@ -656,6 +671,7 @@ CONFIG_8139TOO_TUNE_TWISTER=y
656# CONFIG_R6040 is not set 671# CONFIG_R6040 is not set
657# CONFIG_SIS900 is not set 672# CONFIG_SIS900 is not set
658# CONFIG_EPIC100 is not set 673# CONFIG_EPIC100 is not set
674# CONFIG_SMSC9420 is not set
659# CONFIG_SUNDANCE is not set 675# CONFIG_SUNDANCE is not set
660# CONFIG_TLAN is not set 676# CONFIG_TLAN is not set
661# CONFIG_VIA_RHINE is not set 677# CONFIG_VIA_RHINE is not set
@@ -684,6 +700,7 @@ CONFIG_NETDEV_1000=y
684# CONFIG_JME is not set 700# CONFIG_JME is not set
685CONFIG_NETDEV_10000=y 701CONFIG_NETDEV_10000=y
686# CONFIG_CHELSIO_T1 is not set 702# CONFIG_CHELSIO_T1 is not set
703CONFIG_CHELSIO_T3_DEPENDS=y
687# CONFIG_CHELSIO_T3 is not set 704# CONFIG_CHELSIO_T3 is not set
688# CONFIG_ENIC is not set 705# CONFIG_ENIC is not set
689# CONFIG_IXGBE is not set 706# CONFIG_IXGBE is not set
@@ -692,6 +709,7 @@ CONFIG_NETDEV_10000=y
692# CONFIG_MYRI10GE is not set 709# CONFIG_MYRI10GE is not set
693# CONFIG_NETXEN_NIC is not set 710# CONFIG_NETXEN_NIC is not set
694# CONFIG_NIU is not set 711# CONFIG_NIU is not set
712# CONFIG_MLX4_EN is not set
695# CONFIG_MLX4_CORE is not set 713# CONFIG_MLX4_CORE is not set
696# CONFIG_TEHUTI is not set 714# CONFIG_TEHUTI is not set
697# CONFIG_BNX2X is not set 715# CONFIG_BNX2X is not set
@@ -787,6 +805,7 @@ CONFIG_SERIAL_CORE=y
787CONFIG_SERIAL_CORE_CONSOLE=y 805CONFIG_SERIAL_CORE_CONSOLE=y
788# CONFIG_SERIAL_JSM is not set 806# CONFIG_SERIAL_JSM is not set
789CONFIG_UNIX98_PTYS=y 807CONFIG_UNIX98_PTYS=y
808# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
790CONFIG_LEGACY_PTYS=y 809CONFIG_LEGACY_PTYS=y
791CONFIG_LEGACY_PTY_COUNT=256 810CONFIG_LEGACY_PTY_COUNT=256
792# CONFIG_IPMI_HANDLER is not set 811# CONFIG_IPMI_HANDLER is not set
@@ -828,11 +847,11 @@ CONFIG_HWMON=y
828# CONFIG_THERMAL is not set 847# CONFIG_THERMAL is not set
829# CONFIG_THERMAL_HWMON is not set 848# CONFIG_THERMAL_HWMON is not set
830# CONFIG_WATCHDOG is not set 849# CONFIG_WATCHDOG is not set
850CONFIG_SSB_POSSIBLE=y
831 851
832# 852#
833# Sonics Silicon Backplane 853# Sonics Silicon Backplane
834# 854#
835CONFIG_SSB_POSSIBLE=y
836# CONFIG_SSB is not set 855# CONFIG_SSB is not set
837 856
838# 857#
@@ -842,7 +861,7 @@ CONFIG_SSB_POSSIBLE=y
842# CONFIG_MFD_SM501 is not set 861# CONFIG_MFD_SM501 is not set
843# CONFIG_HTC_PASIC3 is not set 862# CONFIG_HTC_PASIC3 is not set
844# CONFIG_MFD_TMIO is not set 863# CONFIG_MFD_TMIO is not set
845# CONFIG_MFD_WM8400 is not set 864# CONFIG_REGULATOR is not set
846 865
847# 866#
848# Multimedia devices 867# Multimedia devices
@@ -902,9 +921,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
902# 921#
903 922
904# 923#
905# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 924# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
906# 925#
907# CONFIG_USB_GADGET is not set 926# CONFIG_USB_GADGET is not set
927# CONFIG_UWB is not set
908# CONFIG_MMC is not set 928# CONFIG_MMC is not set
909# CONFIG_MEMSTICK is not set 929# CONFIG_MEMSTICK is not set
910# CONFIG_NEW_LEDS is not set 930# CONFIG_NEW_LEDS is not set
@@ -1007,10 +1027,7 @@ CONFIG_TMPFS=y
1007# CONFIG_HUGETLBFS is not set 1027# CONFIG_HUGETLBFS is not set
1008# CONFIG_HUGETLB_PAGE is not set 1028# CONFIG_HUGETLB_PAGE is not set
1009# CONFIG_CONFIGFS_FS is not set 1029# CONFIG_CONFIGFS_FS is not set
1010 1030CONFIG_MISC_FILESYSTEMS=y
1011#
1012# Miscellaneous filesystems
1013#
1014# CONFIG_ADFS_FS is not set 1031# CONFIG_ADFS_FS is not set
1015# CONFIG_AFFS_FS is not set 1032# CONFIG_AFFS_FS is not set
1016# CONFIG_HFS_FS is not set 1033# CONFIG_HFS_FS is not set
@@ -1100,14 +1117,20 @@ CONFIG_FRAME_WARN=1024
1100# CONFIG_DEBUG_MEMORY_INIT is not set 1117# CONFIG_DEBUG_MEMORY_INIT is not set
1101# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1118# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1102# CONFIG_LATENCYTOP is not set 1119# CONFIG_LATENCYTOP is not set
1103CONFIG_NOP_TRACER=y 1120CONFIG_HAVE_FUNCTION_TRACER=y
1104CONFIG_HAVE_FTRACE=y 1121CONFIG_HAVE_DYNAMIC_FTRACE=y
1122CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1123
1124#
1125# Tracers
1126#
1105# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1127# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1106# CONFIG_SAMPLES is not set 1128# CONFIG_SAMPLES is not set
1129CONFIG_HAVE_ARCH_KGDB=y
1107CONFIG_SH_STANDARD_BIOS=y 1130CONFIG_SH_STANDARD_BIOS=y
1108# CONFIG_EARLY_SCIF_CONSOLE is not set 1131# CONFIG_EARLY_SCIF_CONSOLE is not set
1109# CONFIG_EARLY_PRINTK is not set 1132# CONFIG_EARLY_PRINTK is not set
1110# CONFIG_SH_KGDB is not set 1133# CONFIG_MORE_COMPILE_OPTIONS is not set
1111 1134
1112# 1135#
1113# Security options 1136# Security options
@@ -1123,6 +1146,7 @@ CONFIG_CRYPTO=y
1123# 1146#
1124# CONFIG_CRYPTO_FIPS is not set 1147# CONFIG_CRYPTO_FIPS is not set
1125# CONFIG_CRYPTO_MANAGER is not set 1148# CONFIG_CRYPTO_MANAGER is not set
1149# CONFIG_CRYPTO_MANAGER2 is not set
1126# CONFIG_CRYPTO_GF128MUL is not set 1150# CONFIG_CRYPTO_GF128MUL is not set
1127# CONFIG_CRYPTO_NULL is not set 1151# CONFIG_CRYPTO_NULL is not set
1128# CONFIG_CRYPTO_CRYPTD is not set 1152# CONFIG_CRYPTO_CRYPTD is not set
@@ -1206,6 +1230,7 @@ CONFIG_CRYPTO_HW=y
1206# Library routines 1230# Library routines
1207# 1231#
1208CONFIG_BITREVERSE=y 1232CONFIG_BITREVERSE=y
1233CONFIG_GENERIC_FIND_LAST_BIT=y
1209# CONFIG_CRC_CCITT is not set 1234# CONFIG_CRC_CCITT is not set
1210# CONFIG_CRC16 is not set 1235# CONFIG_CRC16 is not set
1211CONFIG_CRC_T10DIF=y 1236CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/magicpanelr2_defconfig b/arch/sh/configs/magicpanelr2_defconfig
index 499ed7204385..125d8019dc2f 100644
--- a/arch/sh/configs/magicpanelr2_defconfig
+++ b/arch/sh/configs/magicpanelr2_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:32:23 2008 4# Fri Jan 9 17:03:37 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -58,6 +60,7 @@ CONFIG_UID16=y
58CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
59CONFIG_KALLSYMS=y 61CONFIG_KALLSYMS=y
60CONFIG_KALLSYMS_ALL=y 62CONFIG_KALLSYMS_ALL=y
63CONFIG_KALLSYMS_STRIP_GENERATED=y
61# CONFIG_KALLSYMS_EXTRA_PASS is not set 64# CONFIG_KALLSYMS_EXTRA_PASS is not set
62CONFIG_HOTPLUG=y 65CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y 66CONFIG_PRINTK=y
@@ -74,12 +77,10 @@ CONFIG_EVENTFD=y
74CONFIG_SHMEM=y 77CONFIG_SHMEM=y
75CONFIG_AIO=y 78CONFIG_AIO=y
76CONFIG_VM_EVENT_COUNTERS=y 79CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y
78CONFIG_SLAB=y 80CONFIG_SLAB=y
79# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
81# CONFIG_PROFILING is not set 83# CONFIG_PROFILING is not set
82# CONFIG_MARKERS is not set
83CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 85# CONFIG_KPROBES is not set
85CONFIG_HAVE_IOREMAP_PROT=y 86CONFIG_HAVE_IOREMAP_PROT=y
@@ -90,7 +91,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 94CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 95CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 96# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +98,9 @@ CONFIG_MODULE_UNLOAD=y
98# CONFIG_MODULE_FORCE_UNLOAD is not set 98# CONFIG_MODULE_FORCE_UNLOAD is not set
99CONFIG_MODVERSIONS=y 99CONFIG_MODVERSIONS=y
100CONFIG_MODULE_SRCVERSION_ALL=y 100CONFIG_MODULE_SRCVERSION_ALL=y
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_IOSCHED_NOOP=y
119CONFIG_DEFAULT_NOOP=y 117CONFIG_DEFAULT_NOOP=y
120CONFIG_DEFAULT_IOSCHED="noop" 118CONFIG_DEFAULT_IOSCHED="noop"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH3=y 129CONFIG_CPU_SH3=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -296,11 +298,18 @@ CONFIG_BINFMT_ELF=y
296# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 298# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
297# CONFIG_HAVE_AOUT is not set 299# CONFIG_HAVE_AOUT is not set
298# CONFIG_BINFMT_MISC is not set 300# CONFIG_BINFMT_MISC is not set
301
302#
303# Power management options (EXPERIMENTAL)
304#
305# CONFIG_PM is not set
306# CONFIG_CPU_IDLE is not set
299CONFIG_NET=y 307CONFIG_NET=y
300 308
301# 309#
302# Networking options 310# Networking options
303# 311#
312CONFIG_COMPAT_NET_DEV_OPS=y
304CONFIG_PACKET=y 313CONFIG_PACKET=y
305CONFIG_PACKET_MMAP=y 314CONFIG_PACKET_MMAP=y
306CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
353# CONFIG_NET_SCHED is not set 362# CONFIG_NET_SCHED is not set
363# CONFIG_DCB is not set
354 364
355# 365#
356# Network testing 366# Network testing
@@ -366,8 +376,8 @@ CONFIG_WIRELESS=y
366# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
367# CONFIG_WIRELESS_OLD_REGULATORY is not set 377# CONFIG_WIRELESS_OLD_REGULATORY is not set
368# CONFIG_WIRELESS_EXT is not set 378# CONFIG_WIRELESS_EXT is not set
379# CONFIG_LIB80211 is not set
369# CONFIG_MAC80211 is not set 380# CONFIG_MAC80211 is not set
370# CONFIG_IEEE80211 is not set
371# CONFIG_RFKILL is not set 381# CONFIG_RFKILL is not set
372# CONFIG_NET_9P is not set 382# CONFIG_NET_9P is not set
373 383
@@ -483,6 +493,7 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
483CONFIG_MISC_DEVICES=y 493CONFIG_MISC_DEVICES=y
484# CONFIG_EEPROM_93CX6 is not set 494# CONFIG_EEPROM_93CX6 is not set
485# CONFIG_ENCLOSURE_SERVICES is not set 495# CONFIG_ENCLOSURE_SERVICES is not set
496# CONFIG_C2PORT is not set
486CONFIG_HAVE_IDE=y 497CONFIG_HAVE_IDE=y
487# CONFIG_IDE is not set 498# CONFIG_IDE is not set
488 499
@@ -502,13 +513,33 @@ CONFIG_NETDEVICES=y
502# CONFIG_EQUALIZER is not set 513# CONFIG_EQUALIZER is not set
503# CONFIG_TUN is not set 514# CONFIG_TUN is not set
504# CONFIG_VETH is not set 515# CONFIG_VETH is not set
505# CONFIG_PHYLIB is not set 516CONFIG_PHYLIB=y
517
518#
519# MII PHY device drivers
520#
521# CONFIG_MARVELL_PHY is not set
522# CONFIG_DAVICOM_PHY is not set
523# CONFIG_QSEMI_PHY is not set
524# CONFIG_LXT_PHY is not set
525# CONFIG_CICADA_PHY is not set
526# CONFIG_VITESSE_PHY is not set
527CONFIG_SMSC_PHY=y
528# CONFIG_BROADCOM_PHY is not set
529# CONFIG_ICPLUS_PHY is not set
530# CONFIG_REALTEK_PHY is not set
531# CONFIG_NATIONAL_PHY is not set
532# CONFIG_STE10XP is not set
533# CONFIG_LSI_ET1011C_PHY is not set
534# CONFIG_FIXED_PHY is not set
535# CONFIG_MDIO_BITBANG is not set
506CONFIG_NET_ETHERNET=y 536CONFIG_NET_ETHERNET=y
507CONFIG_MII=y 537CONFIG_MII=y
508# CONFIG_AX88796 is not set 538# CONFIG_AX88796 is not set
509# CONFIG_STNIC is not set 539# CONFIG_STNIC is not set
510# CONFIG_SMC91X is not set 540# CONFIG_SMC91X is not set
511CONFIG_SMC911X=y 541# CONFIG_SMC911X is not set
542CONFIG_SMSC911X=y
512# CONFIG_IBM_NEW_EMAC_ZMII is not set 543# CONFIG_IBM_NEW_EMAC_ZMII is not set
513# CONFIG_IBM_NEW_EMAC_RGMII is not set 544# CONFIG_IBM_NEW_EMAC_RGMII is not set
514# CONFIG_IBM_NEW_EMAC_TAH is not set 545# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -618,6 +649,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
618CONFIG_SERIAL_CORE=y 649CONFIG_SERIAL_CORE=y
619CONFIG_SERIAL_CORE_CONSOLE=y 650CONFIG_SERIAL_CORE_CONSOLE=y
620CONFIG_UNIX98_PTYS=y 651CONFIG_UNIX98_PTYS=y
652# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
621CONFIG_LEGACY_PTYS=y 653CONFIG_LEGACY_PTYS=y
622CONFIG_LEGACY_PTY_COUNT=256 654CONFIG_LEGACY_PTY_COUNT=256
623# CONFIG_IPMI_HANDLER is not set 655# CONFIG_IPMI_HANDLER is not set
@@ -627,17 +659,37 @@ CONFIG_LEGACY_PTY_COUNT=256
627# CONFIG_TCG_TPM is not set 659# CONFIG_TCG_TPM is not set
628# CONFIG_I2C is not set 660# CONFIG_I2C is not set
629# CONFIG_SPI is not set 661# CONFIG_SPI is not set
662CONFIG_ARCH_REQUIRE_GPIOLIB=y
663CONFIG_GPIOLIB=y
664# CONFIG_DEBUG_GPIO is not set
665# CONFIG_GPIO_SYSFS is not set
666
667#
668# Memory mapped GPIO expanders:
669#
670
671#
672# I2C GPIO expanders:
673#
674
675#
676# PCI GPIO expanders:
677#
678
679#
680# SPI GPIO expanders:
681#
630# CONFIG_W1 is not set 682# CONFIG_W1 is not set
631# CONFIG_POWER_SUPPLY is not set 683# CONFIG_POWER_SUPPLY is not set
632# CONFIG_HWMON is not set 684# CONFIG_HWMON is not set
633# CONFIG_THERMAL is not set 685# CONFIG_THERMAL is not set
634# CONFIG_THERMAL_HWMON is not set 686# CONFIG_THERMAL_HWMON is not set
635# CONFIG_WATCHDOG is not set 687# CONFIG_WATCHDOG is not set
688CONFIG_SSB_POSSIBLE=y
636 689
637# 690#
638# Sonics Silicon Backplane 691# Sonics Silicon Backplane
639# 692#
640CONFIG_SSB_POSSIBLE=y
641# CONFIG_SSB is not set 693# CONFIG_SSB is not set
642 694
643# 695#
@@ -647,7 +699,7 @@ CONFIG_SSB_POSSIBLE=y
647# CONFIG_MFD_SM501 is not set 699# CONFIG_MFD_SM501 is not set
648# CONFIG_HTC_PASIC3 is not set 700# CONFIG_HTC_PASIC3 is not set
649# CONFIG_MFD_TMIO is not set 701# CONFIG_MFD_TMIO is not set
650# CONFIG_MFD_WM8400 is not set 702# CONFIG_REGULATOR is not set
651 703
652# 704#
653# Multimedia devices 705# Multimedia devices
@@ -778,10 +830,7 @@ CONFIG_TMPFS=y
778# CONFIG_HUGETLBFS is not set 830# CONFIG_HUGETLBFS is not set
779# CONFIG_HUGETLB_PAGE is not set 831# CONFIG_HUGETLB_PAGE is not set
780# CONFIG_CONFIGFS_FS is not set 832# CONFIG_CONFIGFS_FS is not set
781 833CONFIG_MISC_FILESYSTEMS=y
782#
783# Miscellaneous filesystems
784#
785# CONFIG_ADFS_FS is not set 834# CONFIG_ADFS_FS is not set
786# CONFIG_AFFS_FS is not set 835# CONFIG_AFFS_FS is not set
787# CONFIG_HFS_FS is not set 836# CONFIG_HFS_FS is not set
@@ -912,6 +961,7 @@ CONFIG_DEBUG_INFO=y
912# CONFIG_DEBUG_MEMORY_INIT is not set 961# CONFIG_DEBUG_MEMORY_INIT is not set
913# CONFIG_DEBUG_LIST is not set 962# CONFIG_DEBUG_LIST is not set
914# CONFIG_DEBUG_SG is not set 963# CONFIG_DEBUG_SG is not set
964# CONFIG_DEBUG_NOTIFIERS is not set
915CONFIG_FRAME_POINTER=y 965CONFIG_FRAME_POINTER=y
916# CONFIG_RCU_TORTURE_TEST is not set 966# CONFIG_RCU_TORTURE_TEST is not set
917# CONFIG_RCU_CPU_STALL_DETECTOR is not set 967# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -920,16 +970,24 @@ CONFIG_FRAME_POINTER=y
920# CONFIG_FAULT_INJECTION is not set 970# CONFIG_FAULT_INJECTION is not set
921# CONFIG_LATENCYTOP is not set 971# CONFIG_LATENCYTOP is not set
922CONFIG_SYSCTL_SYSCALL_CHECK=y 972CONFIG_SYSCTL_SYSCALL_CHECK=y
923CONFIG_NOP_TRACER=y 973CONFIG_HAVE_FUNCTION_TRACER=y
924CONFIG_HAVE_FTRACE=y 974CONFIG_HAVE_DYNAMIC_FTRACE=y
925# CONFIG_FTRACE is not set 975CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
976
977#
978# Tracers
979#
980# CONFIG_FUNCTION_TRACER is not set
926# CONFIG_IRQSOFF_TRACER is not set 981# CONFIG_IRQSOFF_TRACER is not set
927# CONFIG_SCHED_TRACER is not set 982# CONFIG_SCHED_TRACER is not set
928# CONFIG_CONTEXT_SWITCH_TRACER is not set 983# CONFIG_CONTEXT_SWITCH_TRACER is not set
929# CONFIG_BOOT_TRACER is not set 984# CONFIG_BOOT_TRACER is not set
985# CONFIG_TRACE_BRANCH_PROFILING is not set
930# CONFIG_STACK_TRACER is not set 986# CONFIG_STACK_TRACER is not set
931# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 987# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
932# CONFIG_SAMPLES is not set 988# CONFIG_SAMPLES is not set
989CONFIG_HAVE_ARCH_KGDB=y
990# CONFIG_KGDB is not set
933# CONFIG_SH_STANDARD_BIOS is not set 991# CONFIG_SH_STANDARD_BIOS is not set
934CONFIG_EARLY_SCIF_CONSOLE=y 992CONFIG_EARLY_SCIF_CONSOLE=y
935CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4430000 993CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4430000
@@ -939,25 +997,9 @@ CONFIG_EARLY_PRINTK=y
939# CONFIG_DEBUG_STACK_USAGE is not set 997# CONFIG_DEBUG_STACK_USAGE is not set
940# CONFIG_4KSTACKS is not set 998# CONFIG_4KSTACKS is not set
941# CONFIG_IRQSTACKS is not set 999# CONFIG_IRQSTACKS is not set
942CONFIG_SH_KGDB=y 1000CONFIG_DUMP_CODE=y
943 1001# CONFIG_SH_NO_BSS_INIT is not set
944#
945# KGDB configuration options
946#
947# CONFIG_MORE_COMPILE_OPTIONS is not set 1002# CONFIG_MORE_COMPILE_OPTIONS is not set
948# CONFIG_KGDB_NMI is not set
949CONFIG_KGDB_SYSRQ=y
950
951#
952# Serial port setup
953#
954CONFIG_KGDB_DEFPORT=0
955CONFIG_KGDB_DEFBAUD=115200
956CONFIG_KGDB_DEFPARITY_N=y
957# CONFIG_KGDB_DEFPARITY_E is not set
958# CONFIG_KGDB_DEFPARITY_O is not set
959CONFIG_KGDB_DEFBITS_8=y
960# CONFIG_KGDB_DEFBITS_7 is not set
961 1003
962# 1004#
963# Security options 1005# Security options
@@ -972,6 +1014,7 @@ CONFIG_KGDB_DEFBITS_8=y
972# Library routines 1014# Library routines
973# 1015#
974CONFIG_BITREVERSE=y 1016CONFIG_BITREVERSE=y
1017CONFIG_GENERIC_FIND_LAST_BIT=y
975CONFIG_CRC_CCITT=m 1018CONFIG_CRC_CCITT=m
976CONFIG_CRC16=m 1019CONFIG_CRC16=m
977# CONFIG_CRC_T10DIF is not set 1020# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/microdev_defconfig b/arch/sh/configs/microdev_defconfig
index b8ada8ce98d9..5a1c0485a354 100644
--- a/arch/sh/configs/microdev_defconfig
+++ b/arch/sh/configs/microdev_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:37:41 2008 4# Fri Jan 9 17:06:47 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -72,12 +74,10 @@ CONFIG_EVENTFD=y
72CONFIG_SHMEM=y 74CONFIG_SHMEM=y
73CONFIG_AIO=y 75CONFIG_AIO=y
74CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_PCI_QUIRKS=y
76CONFIG_SLAB=y 77CONFIG_SLAB=y
77# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
79# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
80# CONFIG_MARKERS is not set
81CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
82CONFIG_HAVE_IOREMAP_PROT=y 82CONFIG_HAVE_IOREMAP_PROT=y
83CONFIG_HAVE_KPROBES=y 83CONFIG_HAVE_KPROBES=y
@@ -87,13 +87,11 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 87CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 88CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 89CONFIG_RT_MUTEXES=y
90# CONFIG_TINY_SHMEM is not set
91CONFIG_BASE_SMALL=0 90CONFIG_BASE_SMALL=0
92# CONFIG_MODULES is not set 91# CONFIG_MODULES is not set
93CONFIG_BLOCK=y 92CONFIG_BLOCK=y
94# CONFIG_LBD is not set 93# CONFIG_LBD is not set
95# CONFIG_BLK_DEV_IO_TRACE is not set 94# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set
97# CONFIG_BLK_DEV_BSG is not set 95# CONFIG_BLK_DEV_BSG is not set
98# CONFIG_BLK_DEV_INTEGRITY is not set 96# CONFIG_BLK_DEV_INTEGRITY is not set
99 97
@@ -110,6 +108,10 @@ CONFIG_DEFAULT_AS=y
110# CONFIG_DEFAULT_NOOP is not set 108# CONFIG_DEFAULT_NOOP is not set
111CONFIG_DEFAULT_IOSCHED="anticipatory" 109CONFIG_DEFAULT_IOSCHED="anticipatory"
112CONFIG_CLASSIC_RCU=y 110CONFIG_CLASSIC_RCU=y
111# CONFIG_TREE_RCU is not set
112# CONFIG_PREEMPT_RCU is not set
113# CONFIG_TREE_RCU_TRACE is not set
114# CONFIG_PREEMPT_RCU_TRACE is not set
113# CONFIG_FREEZER is not set 115# CONFIG_FREEZER is not set
114 116
115# 117#
@@ -117,6 +119,7 @@ CONFIG_CLASSIC_RCU=y
117# 119#
118CONFIG_CPU_SH4=y 120CONFIG_CPU_SH4=y
119# CONFIG_CPU_SUBTYPE_SH7619 is not set 121# CONFIG_CPU_SUBTYPE_SH7619 is not set
122# CONFIG_CPU_SUBTYPE_SH7201 is not set
120# CONFIG_CPU_SUBTYPE_SH7203 is not set 123# CONFIG_CPU_SUBTYPE_SH7203 is not set
121# CONFIG_CPU_SUBTYPE_SH7206 is not set 124# CONFIG_CPU_SUBTYPE_SH7206 is not set
122# CONFIG_CPU_SUBTYPE_SH7263 is not set 125# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +189,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 189CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 190CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 191CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 192# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 193CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 194CONFIG_NR_QUICK=2
@@ -265,7 +267,6 @@ CONFIG_HZ=250
265# CONFIG_PREEMPT_NONE is not set 267# CONFIG_PREEMPT_NONE is not set
266# CONFIG_PREEMPT_VOLUNTARY is not set 268# CONFIG_PREEMPT_VOLUNTARY is not set
267CONFIG_PREEMPT=y 269CONFIG_PREEMPT=y
268# CONFIG_PREEMPT_RCU is not set
269CONFIG_GUSA=y 270CONFIG_GUSA=y
270# CONFIG_GUSA_RB is not set 271# CONFIG_GUSA_RB is not set
271 272
@@ -292,11 +293,18 @@ CONFIG_BINFMT_ELF=y
292# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 293# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
293# CONFIG_HAVE_AOUT is not set 294# CONFIG_HAVE_AOUT is not set
294# CONFIG_BINFMT_MISC is not set 295# CONFIG_BINFMT_MISC is not set
296
297#
298# Power management options (EXPERIMENTAL)
299#
300# CONFIG_PM is not set
301# CONFIG_CPU_IDLE is not set
295CONFIG_NET=y 302CONFIG_NET=y
296 303
297# 304#
298# Networking options 305# Networking options
299# 306#
307CONFIG_COMPAT_NET_DEV_OPS=y
300# CONFIG_PACKET is not set 308# CONFIG_PACKET is not set
301# CONFIG_UNIX is not set 309# CONFIG_UNIX is not set
302CONFIG_XFRM=y 310CONFIG_XFRM=y
@@ -351,6 +359,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_ECONET is not set 359# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 360# CONFIG_WAN_ROUTER is not set
353# CONFIG_NET_SCHED is not set 361# CONFIG_NET_SCHED is not set
362# CONFIG_DCB is not set
354 363
355# 364#
356# Network testing 365# Network testing
@@ -366,8 +375,8 @@ CONFIG_WIRELESS=y
366# CONFIG_CFG80211 is not set 375# CONFIG_CFG80211 is not set
367# CONFIG_WIRELESS_OLD_REGULATORY is not set 376# CONFIG_WIRELESS_OLD_REGULATORY is not set
368# CONFIG_WIRELESS_EXT is not set 377# CONFIG_WIRELESS_EXT is not set
378# CONFIG_LIB80211 is not set
369# CONFIG_MAC80211 is not set 379# CONFIG_MAC80211 is not set
370# CONFIG_IEEE80211 is not set
371# CONFIG_RFKILL is not set 380# CONFIG_RFKILL is not set
372# CONFIG_NET_9P is not set 381# CONFIG_NET_9P is not set
373 382
@@ -400,12 +409,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
400CONFIG_MISC_DEVICES=y 409CONFIG_MISC_DEVICES=y
401# CONFIG_EEPROM_93CX6 is not set 410# CONFIG_EEPROM_93CX6 is not set
402# CONFIG_ENCLOSURE_SERVICES is not set 411# CONFIG_ENCLOSURE_SERVICES is not set
412# CONFIG_C2PORT is not set
403CONFIG_HAVE_IDE=y 413CONFIG_HAVE_IDE=y
404CONFIG_IDE=y 414CONFIG_IDE=y
405 415
406# 416#
407# Please see Documentation/ide/ide.txt for help/info on IDE drives 417# Please see Documentation/ide/ide.txt for help/info on IDE drives
408# 418#
419CONFIG_IDE_ATAPI=y
409# CONFIG_BLK_DEV_IDE_SATA is not set 420# CONFIG_BLK_DEV_IDE_SATA is not set
410CONFIG_IDE_GD=y 421CONFIG_IDE_GD=y
411CONFIG_IDE_GD_ATA=y 422CONFIG_IDE_GD_ATA=y
@@ -445,6 +456,7 @@ CONFIG_MII=y
445# CONFIG_STNIC is not set 456# CONFIG_STNIC is not set
446CONFIG_SMC91X=y 457CONFIG_SMC91X=y
447# CONFIG_SMC911X is not set 458# CONFIG_SMC911X is not set
459# CONFIG_SMSC911X is not set
448# CONFIG_IBM_NEW_EMAC_ZMII is not set 460# CONFIG_IBM_NEW_EMAC_ZMII is not set
449# CONFIG_IBM_NEW_EMAC_RGMII is not set 461# CONFIG_IBM_NEW_EMAC_RGMII is not set
450# CONFIG_IBM_NEW_EMAC_TAH is not set 462# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -503,6 +515,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
503CONFIG_SERIAL_CORE=y 515CONFIG_SERIAL_CORE=y
504CONFIG_SERIAL_CORE_CONSOLE=y 516CONFIG_SERIAL_CORE_CONSOLE=y
505CONFIG_UNIX98_PTYS=y 517CONFIG_UNIX98_PTYS=y
518# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
506CONFIG_LEGACY_PTYS=y 519CONFIG_LEGACY_PTYS=y
507CONFIG_LEGACY_PTY_COUNT=256 520CONFIG_LEGACY_PTY_COUNT=256
508# CONFIG_IPMI_HANDLER is not set 521# CONFIG_IPMI_HANDLER is not set
@@ -530,11 +543,11 @@ CONFIG_HWMON=y
530# CONFIG_THERMAL is not set 543# CONFIG_THERMAL is not set
531# CONFIG_THERMAL_HWMON is not set 544# CONFIG_THERMAL_HWMON is not set
532# CONFIG_WATCHDOG is not set 545# CONFIG_WATCHDOG is not set
546CONFIG_SSB_POSSIBLE=y
533 547
534# 548#
535# Sonics Silicon Backplane 549# Sonics Silicon Backplane
536# 550#
537CONFIG_SSB_POSSIBLE=y
538# CONFIG_SSB is not set 551# CONFIG_SSB is not set
539 552
540# 553#
@@ -544,7 +557,7 @@ CONFIG_SSB_POSSIBLE=y
544# CONFIG_MFD_SM501 is not set 557# CONFIG_MFD_SM501 is not set
545# CONFIG_HTC_PASIC3 is not set 558# CONFIG_HTC_PASIC3 is not set
546# CONFIG_MFD_TMIO is not set 559# CONFIG_MFD_TMIO is not set
547# CONFIG_MFD_WM8400 is not set 560# CONFIG_REGULATOR is not set
548 561
549# 562#
550# Multimedia devices 563# Multimedia devices
@@ -588,7 +601,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
588# 601#
589 602
590# 603#
591# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 604# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
592# 605#
593# CONFIG_USB_GADGET is not set 606# CONFIG_USB_GADGET is not set
594# CONFIG_MMC is not set 607# CONFIG_MMC is not set
@@ -656,10 +669,7 @@ CONFIG_TMPFS=y
656CONFIG_HUGETLBFS=y 669CONFIG_HUGETLBFS=y
657CONFIG_HUGETLB_PAGE=y 670CONFIG_HUGETLB_PAGE=y
658# CONFIG_CONFIGFS_FS is not set 671# CONFIG_CONFIGFS_FS is not set
659 672CONFIG_MISC_FILESYSTEMS=y
660#
661# Miscellaneous filesystems
662#
663# CONFIG_ADFS_FS is not set 673# CONFIG_ADFS_FS is not set
664# CONFIG_AFFS_FS is not set 674# CONFIG_AFFS_FS is not set
665# CONFIG_HFS_FS is not set 675# CONFIG_HFS_FS is not set
@@ -761,13 +771,19 @@ CONFIG_FRAME_WARN=1024
761# CONFIG_DEBUG_MEMORY_INIT is not set 771# CONFIG_DEBUG_MEMORY_INIT is not set
762# CONFIG_RCU_CPU_STALL_DETECTOR is not set 772# CONFIG_RCU_CPU_STALL_DETECTOR is not set
763# CONFIG_LATENCYTOP is not set 773# CONFIG_LATENCYTOP is not set
764CONFIG_NOP_TRACER=y 774CONFIG_HAVE_FUNCTION_TRACER=y
765CONFIG_HAVE_FTRACE=y 775CONFIG_HAVE_DYNAMIC_FTRACE=y
776CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
777
778#
779# Tracers
780#
766# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 781# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
767# CONFIG_SAMPLES is not set 782# CONFIG_SAMPLES is not set
783CONFIG_HAVE_ARCH_KGDB=y
768# CONFIG_SH_STANDARD_BIOS is not set 784# CONFIG_SH_STANDARD_BIOS is not set
769# CONFIG_EARLY_SCIF_CONSOLE is not set 785# CONFIG_EARLY_SCIF_CONSOLE is not set
770# CONFIG_SH_KGDB is not set 786# CONFIG_MORE_COMPILE_OPTIONS is not set
771 787
772# 788#
773# Security options 789# Security options
@@ -783,11 +799,15 @@ CONFIG_CRYPTO=y
783# 799#
784# CONFIG_CRYPTO_FIPS is not set 800# CONFIG_CRYPTO_FIPS is not set
785CONFIG_CRYPTO_ALGAPI=y 801CONFIG_CRYPTO_ALGAPI=y
786CONFIG_CRYPTO_AEAD=y 802CONFIG_CRYPTO_ALGAPI2=y
803CONFIG_CRYPTO_AEAD2=y
787CONFIG_CRYPTO_BLKCIPHER=y 804CONFIG_CRYPTO_BLKCIPHER=y
805CONFIG_CRYPTO_BLKCIPHER2=y
788CONFIG_CRYPTO_HASH=y 806CONFIG_CRYPTO_HASH=y
789CONFIG_CRYPTO_RNG=y 807CONFIG_CRYPTO_HASH2=y
808CONFIG_CRYPTO_RNG2=y
790CONFIG_CRYPTO_MANAGER=y 809CONFIG_CRYPTO_MANAGER=y
810CONFIG_CRYPTO_MANAGER2=y
791# CONFIG_CRYPTO_GF128MUL is not set 811# CONFIG_CRYPTO_GF128MUL is not set
792# CONFIG_CRYPTO_NULL is not set 812# CONFIG_CRYPTO_NULL is not set
793# CONFIG_CRYPTO_CRYPTD is not set 813# CONFIG_CRYPTO_CRYPTD is not set
@@ -869,6 +889,7 @@ CONFIG_CRYPTO_HW=y
869# Library routines 889# Library routines
870# 890#
871CONFIG_BITREVERSE=y 891CONFIG_BITREVERSE=y
892CONFIG_GENERIC_FIND_LAST_BIT=y
872# CONFIG_CRC_CCITT is not set 893# CONFIG_CRC_CCITT is not set
873# CONFIG_CRC16 is not set 894# CONFIG_CRC16 is not set
874# CONFIG_CRC_T10DIF is not set 895# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defconfig
index 30cac42f25e7..678576796bdf 100644
--- a/arch/sh/configs/migor_defconfig
+++ b/arch/sh/configs/migor_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.28-rc2 3# Linux kernel version: 2.6.29-rc1
4# Fri Oct 31 15:58:06 2008 4# Thu Jan 22 09:16:16 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -43,8 +45,12 @@ CONFIG_SYSVIPC_SYSCTL=y
43CONFIG_IKCONFIG=y 45CONFIG_IKCONFIG=y
44CONFIG_IKCONFIG_PROC=y 46CONFIG_IKCONFIG_PROC=y
45CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
46# CONFIG_CGROUPS is not set
47# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49
50#
51# Control Group support
52#
53# CONFIG_CGROUPS is not set
48CONFIG_SYSFS_DEPRECATED=y 54CONFIG_SYSFS_DEPRECATED=y
49CONFIG_SYSFS_DEPRECATED_V2=y 55CONFIG_SYSFS_DEPRECATED_V2=y
50# CONFIG_RELAY is not set 56# CONFIG_RELAY is not set
@@ -77,6 +83,7 @@ CONFIG_SLAB=y
77# CONFIG_SLUB is not set 83# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 84# CONFIG_SLOB is not set
79CONFIG_PROFILING=y 85CONFIG_PROFILING=y
86CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 87# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 88CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 89CONFIG_HAVE_OPROFILE=y
@@ -89,18 +96,15 @@ CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 96CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 97CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 98CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 99CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 100CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 101# CONFIG_MODULE_FORCE_LOAD is not set
96# CONFIG_MODULE_UNLOAD is not set 102# CONFIG_MODULE_UNLOAD is not set
97# CONFIG_MODVERSIONS is not set 103# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 104# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 105CONFIG_BLOCK=y
101# CONFIG_LBD is not set 106# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 107# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 108# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 109# CONFIG_BLK_DEV_INTEGRITY is not set
106 110
@@ -117,6 +121,10 @@ CONFIG_DEFAULT_AS=y
117# CONFIG_DEFAULT_NOOP is not set 121# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="anticipatory" 122CONFIG_DEFAULT_IOSCHED="anticipatory"
119CONFIG_CLASSIC_RCU=y 123CONFIG_CLASSIC_RCU=y
124# CONFIG_TREE_RCU is not set
125# CONFIG_PREEMPT_RCU is not set
126# CONFIG_TREE_RCU_TRACE is not set
127# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 128# CONFIG_FREEZER is not set
121 129
122# 130#
@@ -127,6 +135,7 @@ CONFIG_CPU_SH4A=y
127CONFIG_CPU_SH4AL_DSP=y 135CONFIG_CPU_SH4AL_DSP=y
128CONFIG_CPU_SHX2=y 136CONFIG_CPU_SHX2=y
129# CONFIG_CPU_SUBTYPE_SH7619 is not set 137# CONFIG_CPU_SUBTYPE_SH7619 is not set
138# CONFIG_CPU_SUBTYPE_SH7201 is not set
130# CONFIG_CPU_SUBTYPE_SH7203 is not set 139# CONFIG_CPU_SUBTYPE_SH7203 is not set
131# CONFIG_CPU_SUBTYPE_SH7206 is not set 140# CONFIG_CPU_SUBTYPE_SH7206 is not set
132# CONFIG_CPU_SUBTYPE_SH7263 is not set 141# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -196,7 +205,6 @@ CONFIG_SPARSEMEM_STATIC=y
196# CONFIG_MEMORY_HOTPLUG is not set 205# CONFIG_MEMORY_HOTPLUG is not set
197CONFIG_SPLIT_PTLOCK_CPUS=4 206CONFIG_SPLIT_PTLOCK_CPUS=4
198# CONFIG_MIGRATION is not set 207# CONFIG_MIGRATION is not set
199# CONFIG_RESOURCES_64BIT is not set
200# CONFIG_PHYS_ADDR_T_64BIT is not set 208# CONFIG_PHYS_ADDR_T_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=0 209CONFIG_ZONE_DMA_FLAG=0
202CONFIG_NR_QUICK=2 210CONFIG_NR_QUICK=2
@@ -299,11 +307,18 @@ CONFIG_BINFMT_ELF=y
299# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 307# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
300# CONFIG_HAVE_AOUT is not set 308# CONFIG_HAVE_AOUT is not set
301# CONFIG_BINFMT_MISC is not set 309# CONFIG_BINFMT_MISC is not set
310
311#
312# Power management options (EXPERIMENTAL)
313#
314# CONFIG_PM is not set
315# CONFIG_CPU_IDLE is not set
302CONFIG_NET=y 316CONFIG_NET=y
303 317
304# 318#
305# Networking options 319# Networking options
306# 320#
321CONFIG_COMPAT_NET_DEV_OPS=y
307CONFIG_PACKET=y 322CONFIG_PACKET=y
308# CONFIG_PACKET_MMAP is not set 323# CONFIG_PACKET_MMAP is not set
309CONFIG_UNIX=y 324CONFIG_UNIX=y
@@ -359,6 +374,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_ECONET is not set 374# CONFIG_ECONET is not set
360# CONFIG_WAN_ROUTER is not set 375# CONFIG_WAN_ROUTER is not set
361# CONFIG_NET_SCHED is not set 376# CONFIG_NET_SCHED is not set
377# CONFIG_DCB is not set
362 378
363# 379#
364# Network testing 380# Network testing
@@ -375,8 +391,9 @@ CONFIG_WIRELESS=y
375# CONFIG_WIRELESS_OLD_REGULATORY is not set 391# CONFIG_WIRELESS_OLD_REGULATORY is not set
376CONFIG_WIRELESS_EXT=y 392CONFIG_WIRELESS_EXT=y
377CONFIG_WIRELESS_EXT_SYSFS=y 393CONFIG_WIRELESS_EXT_SYSFS=y
394# CONFIG_LIB80211 is not set
378# CONFIG_MAC80211 is not set 395# CONFIG_MAC80211 is not set
379# CONFIG_IEEE80211 is not set 396# CONFIG_WIMAX is not set
380# CONFIG_RFKILL is not set 397# CONFIG_RFKILL is not set
381# CONFIG_NET_9P is not set 398# CONFIG_NET_9P is not set
382 399
@@ -399,6 +416,7 @@ CONFIG_MTD=y
399# CONFIG_MTD_DEBUG is not set 416# CONFIG_MTD_DEBUG is not set
400CONFIG_MTD_CONCAT=y 417CONFIG_MTD_CONCAT=y
401CONFIG_MTD_PARTITIONS=y 418CONFIG_MTD_PARTITIONS=y
419# CONFIG_MTD_TESTS is not set
402# CONFIG_MTD_REDBOOT_PARTS is not set 420# CONFIG_MTD_REDBOOT_PARTS is not set
403CONFIG_MTD_CMDLINE_PARTS=y 421CONFIG_MTD_CMDLINE_PARTS=y
404# CONFIG_MTD_AR7_PARTS is not set 422# CONFIG_MTD_AR7_PARTS is not set
@@ -446,9 +464,7 @@ CONFIG_MTD_CFI_UTIL=y
446# 464#
447# CONFIG_MTD_COMPLEX_MAPPINGS is not set 465# CONFIG_MTD_COMPLEX_MAPPINGS is not set
448CONFIG_MTD_PHYSMAP=y 466CONFIG_MTD_PHYSMAP=y
449CONFIG_MTD_PHYSMAP_START=0xffffffff 467# CONFIG_MTD_PHYSMAP_COMPAT is not set
450CONFIG_MTD_PHYSMAP_LEN=0
451CONFIG_MTD_PHYSMAP_BANKWIDTH=0
452# CONFIG_MTD_PLATRAM is not set 468# CONFIG_MTD_PLATRAM is not set
453 469
454# 470#
@@ -476,6 +492,12 @@ CONFIG_MTD_NAND_PLATFORM=y
476# CONFIG_MTD_ONENAND is not set 492# CONFIG_MTD_ONENAND is not set
477 493
478# 494#
495# LPDDR flash memory drivers
496#
497# CONFIG_MTD_LPDDR is not set
498# CONFIG_MTD_QINFO_PROBE is not set
499
500#
479# UBI - Unsorted block images 501# UBI - Unsorted block images
480# 502#
481# CONFIG_MTD_UBI is not set 503# CONFIG_MTD_UBI is not set
@@ -493,7 +515,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
493# CONFIG_BLK_DEV_HD is not set 515# CONFIG_BLK_DEV_HD is not set
494CONFIG_MISC_DEVICES=y 516CONFIG_MISC_DEVICES=y
495# CONFIG_EEPROM_93CX6 is not set 517# CONFIG_EEPROM_93CX6 is not set
518# CONFIG_ICS932S401 is not set
496# CONFIG_ENCLOSURE_SERVICES is not set 519# CONFIG_ENCLOSURE_SERVICES is not set
520# CONFIG_C2PORT is not set
497CONFIG_HAVE_IDE=y 521CONFIG_HAVE_IDE=y
498# CONFIG_IDE is not set 522# CONFIG_IDE is not set
499 523
@@ -536,6 +560,7 @@ CONFIG_SCSI_WAIT_SCAN=m
536# CONFIG_SCSI_SRP_ATTRS is not set 560# CONFIG_SCSI_SRP_ATTRS is not set
537CONFIG_SCSI_LOWLEVEL=y 561CONFIG_SCSI_LOWLEVEL=y
538# CONFIG_ISCSI_TCP is not set 562# CONFIG_ISCSI_TCP is not set
563# CONFIG_LIBFC is not set
539# CONFIG_SCSI_DEBUG is not set 564# CONFIG_SCSI_DEBUG is not set
540# CONFIG_SCSI_DH is not set 565# CONFIG_SCSI_DH is not set
541# CONFIG_ATA is not set 566# CONFIG_ATA is not set
@@ -554,6 +579,7 @@ CONFIG_MII=y
554# CONFIG_STNIC is not set 579# CONFIG_STNIC is not set
555CONFIG_SMC91X=y 580CONFIG_SMC91X=y
556# CONFIG_SMC911X is not set 581# CONFIG_SMC911X is not set
582# CONFIG_SMSC911X is not set
557# CONFIG_IBM_NEW_EMAC_ZMII is not set 583# CONFIG_IBM_NEW_EMAC_ZMII is not set
558# CONFIG_IBM_NEW_EMAC_RGMII is not set 584# CONFIG_IBM_NEW_EMAC_RGMII is not set
559# CONFIG_IBM_NEW_EMAC_TAH is not set 585# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -571,6 +597,10 @@ CONFIG_SMC91X=y
571# CONFIG_WLAN_PRE80211 is not set 597# CONFIG_WLAN_PRE80211 is not set
572# CONFIG_WLAN_80211 is not set 598# CONFIG_WLAN_80211 is not set
573# CONFIG_IWLWIFI_LEDS is not set 599# CONFIG_IWLWIFI_LEDS is not set
600
601#
602# Enable WiMAX (Networking options) to see the WiMAX drivers
603#
574# CONFIG_WAN is not set 604# CONFIG_WAN is not set
575# CONFIG_PPP is not set 605# CONFIG_PPP is not set
576# CONFIG_SLIP is not set 606# CONFIG_SLIP is not set
@@ -644,6 +674,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
644CONFIG_SERIAL_CORE=y 674CONFIG_SERIAL_CORE=y
645CONFIG_SERIAL_CORE_CONSOLE=y 675CONFIG_SERIAL_CORE_CONSOLE=y
646CONFIG_UNIX98_PTYS=y 676CONFIG_UNIX98_PTYS=y
677# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
647CONFIG_LEGACY_PTYS=y 678CONFIG_LEGACY_PTYS=y
648CONFIG_LEGACY_PTY_COUNT=256 679CONFIG_LEGACY_PTY_COUNT=256
649# CONFIG_IPMI_HANDLER is not set 680# CONFIG_IPMI_HANDLER is not set
@@ -684,8 +715,8 @@ CONFIG_I2C_SH_MOBILE=y
684# Miscellaneous I2C Chip support 715# Miscellaneous I2C Chip support
685# 716#
686# CONFIG_DS1682 is not set 717# CONFIG_DS1682 is not set
687# CONFIG_AT24 is not set 718# CONFIG_EEPROM_AT24 is not set
688# CONFIG_SENSORS_EEPROM is not set 719# CONFIG_EEPROM_LEGACY is not set
689# CONFIG_SENSORS_PCF8574 is not set 720# CONFIG_SENSORS_PCF8574 is not set
690# CONFIG_PCF8575 is not set 721# CONFIG_PCF8575 is not set
691# CONFIG_SENSORS_PCA9539 is not set 722# CONFIG_SENSORS_PCA9539 is not set
@@ -697,17 +728,39 @@ CONFIG_I2C_SH_MOBILE=y
697# CONFIG_I2C_DEBUG_BUS is not set 728# CONFIG_I2C_DEBUG_BUS is not set
698# CONFIG_I2C_DEBUG_CHIP is not set 729# CONFIG_I2C_DEBUG_CHIP is not set
699# CONFIG_SPI is not set 730# CONFIG_SPI is not set
731CONFIG_ARCH_REQUIRE_GPIOLIB=y
732CONFIG_GPIOLIB=y
733# CONFIG_GPIO_SYSFS is not set
734
735#
736# Memory mapped GPIO expanders:
737#
738
739#
740# I2C GPIO expanders:
741#
742# CONFIG_GPIO_MAX732X is not set
743# CONFIG_GPIO_PCA953X is not set
744# CONFIG_GPIO_PCF857X is not set
745
746#
747# PCI GPIO expanders:
748#
749
750#
751# SPI GPIO expanders:
752#
700# CONFIG_W1 is not set 753# CONFIG_W1 is not set
701# CONFIG_POWER_SUPPLY is not set 754# CONFIG_POWER_SUPPLY is not set
702# CONFIG_HWMON is not set 755# CONFIG_HWMON is not set
703# CONFIG_THERMAL is not set 756# CONFIG_THERMAL is not set
704# CONFIG_THERMAL_HWMON is not set 757# CONFIG_THERMAL_HWMON is not set
705# CONFIG_WATCHDOG is not set 758# CONFIG_WATCHDOG is not set
759CONFIG_SSB_POSSIBLE=y
706 760
707# 761#
708# Sonics Silicon Backplane 762# Sonics Silicon Backplane
709# 763#
710CONFIG_SSB_POSSIBLE=y
711# CONFIG_SSB is not set 764# CONFIG_SSB is not set
712 765
713# 766#
@@ -716,10 +769,14 @@ CONFIG_SSB_POSSIBLE=y
716# CONFIG_MFD_CORE is not set 769# CONFIG_MFD_CORE is not set
717# CONFIG_MFD_SM501 is not set 770# CONFIG_MFD_SM501 is not set
718# CONFIG_HTC_PASIC3 is not set 771# CONFIG_HTC_PASIC3 is not set
772# CONFIG_TPS65010 is not set
773# CONFIG_TWL4030_CORE is not set
719# CONFIG_MFD_TMIO is not set 774# CONFIG_MFD_TMIO is not set
720# CONFIG_PMIC_DA903X is not set 775# CONFIG_PMIC_DA903X is not set
721# CONFIG_MFD_WM8400 is not set 776# CONFIG_MFD_WM8400 is not set
722# CONFIG_MFD_WM8350_I2C is not set 777# CONFIG_MFD_WM8350_I2C is not set
778# CONFIG_MFD_PCF50633 is not set
779# CONFIG_REGULATOR is not set
723 780
724# 781#
725# Multimedia devices 782# Multimedia devices
@@ -762,8 +819,11 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
762CONFIG_SOC_CAMERA=y 819CONFIG_SOC_CAMERA=y
763# CONFIG_SOC_CAMERA_MT9M001 is not set 820# CONFIG_SOC_CAMERA_MT9M001 is not set
764# CONFIG_SOC_CAMERA_MT9M111 is not set 821# CONFIG_SOC_CAMERA_MT9M111 is not set
822# CONFIG_SOC_CAMERA_MT9T031 is not set
765# CONFIG_SOC_CAMERA_MT9V022 is not set 823# CONFIG_SOC_CAMERA_MT9V022 is not set
766CONFIG_SOC_CAMERA_PLATFORM=y 824CONFIG_SOC_CAMERA_TW9910=y
825# CONFIG_SOC_CAMERA_PLATFORM is not set
826CONFIG_SOC_CAMERA_OV772X=y
767CONFIG_VIDEO_SH_MOBILE_CEU=y 827CONFIG_VIDEO_SH_MOBILE_CEU=y
768# CONFIG_RADIO_ADAPTERS is not set 828# CONFIG_RADIO_ADAPTERS is not set
769# CONFIG_DAB is not set 829# CONFIG_DAB is not set
@@ -806,7 +866,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
806# CONFIG_USB_GADGET_MUSB_HDRC is not set 866# CONFIG_USB_GADGET_MUSB_HDRC is not set
807 867
808# 868#
809# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 869# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
810# 870#
811CONFIG_USB_GADGET=y 871CONFIG_USB_GADGET=y
812# CONFIG_USB_GADGET_DEBUG_FILES is not set 872# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -821,11 +881,13 @@ CONFIG_USB_GADGET_SELECTED=y
821# CONFIG_USB_GADGET_PXA25X is not set 881# CONFIG_USB_GADGET_PXA25X is not set
822# CONFIG_USB_GADGET_PXA27X is not set 882# CONFIG_USB_GADGET_PXA27X is not set
823# CONFIG_USB_GADGET_S3C2410 is not set 883# CONFIG_USB_GADGET_S3C2410 is not set
884# CONFIG_USB_GADGET_IMX is not set
824CONFIG_USB_GADGET_M66592=y 885CONFIG_USB_GADGET_M66592=y
825CONFIG_USB_M66592=y 886CONFIG_USB_M66592=y
826CONFIG_SUPERH_BUILT_IN_M66592=y 887CONFIG_SUPERH_BUILT_IN_M66592=y
827# CONFIG_USB_GADGET_AMD5536UDC is not set 888# CONFIG_USB_GADGET_AMD5536UDC is not set
828# CONFIG_USB_GADGET_FSL_QE is not set 889# CONFIG_USB_GADGET_FSL_QE is not set
890# CONFIG_USB_GADGET_CI13XXX is not set
829# CONFIG_USB_GADGET_NET2280 is not set 891# CONFIG_USB_GADGET_NET2280 is not set
830# CONFIG_USB_GADGET_GOKU is not set 892# CONFIG_USB_GADGET_GOKU is not set
831# CONFIG_USB_GADGET_DUMMY_HCD is not set 893# CONFIG_USB_GADGET_DUMMY_HCD is not set
@@ -838,6 +900,11 @@ CONFIG_USB_G_SERIAL=y
838# CONFIG_USB_MIDI_GADGET is not set 900# CONFIG_USB_MIDI_GADGET is not set
839# CONFIG_USB_G_PRINTER is not set 901# CONFIG_USB_G_PRINTER is not set
840# CONFIG_USB_CDC_COMPOSITE is not set 902# CONFIG_USB_CDC_COMPOSITE is not set
903
904#
905# OTG and related infrastructure
906#
907# CONFIG_USB_GPIO_VBUS is not set
841# CONFIG_MMC is not set 908# CONFIG_MMC is not set
842# CONFIG_MEMSTICK is not set 909# CONFIG_MEMSTICK is not set
843# CONFIG_NEW_LEDS is not set 910# CONFIG_NEW_LEDS is not set
@@ -872,6 +939,7 @@ CONFIG_RTC_DRV_RS5C372=y
872# CONFIG_RTC_DRV_M41T80 is not set 939# CONFIG_RTC_DRV_M41T80 is not set
873# CONFIG_RTC_DRV_S35390A is not set 940# CONFIG_RTC_DRV_S35390A is not set
874# CONFIG_RTC_DRV_FM3130 is not set 941# CONFIG_RTC_DRV_FM3130 is not set
942# CONFIG_RTC_DRV_RX8581 is not set
875 943
876# 944#
877# SPI RTC drivers 945# SPI RTC drivers
@@ -915,6 +983,7 @@ CONFIG_UIO_PDRV_GENIRQ=y
915CONFIG_FILE_LOCKING=y 983CONFIG_FILE_LOCKING=y
916# CONFIG_XFS_FS is not set 984# CONFIG_XFS_FS is not set
917# CONFIG_OCFS2_FS is not set 985# CONFIG_OCFS2_FS is not set
986# CONFIG_BTRFS_FS is not set
918# CONFIG_DNOTIFY is not set 987# CONFIG_DNOTIFY is not set
919# CONFIG_INOTIFY is not set 988# CONFIG_INOTIFY is not set
920# CONFIG_QUOTA is not set 989# CONFIG_QUOTA is not set
@@ -948,10 +1017,7 @@ CONFIG_TMPFS=y
948# CONFIG_HUGETLBFS is not set 1017# CONFIG_HUGETLBFS is not set
949# CONFIG_HUGETLB_PAGE is not set 1018# CONFIG_HUGETLB_PAGE is not set
950# CONFIG_CONFIGFS_FS is not set 1019# CONFIG_CONFIGFS_FS is not set
951 1020CONFIG_MISC_FILESYSTEMS=y
952#
953# Miscellaneous filesystems
954#
955# CONFIG_ADFS_FS is not set 1021# CONFIG_ADFS_FS is not set
956# CONFIG_AFFS_FS is not set 1022# CONFIG_AFFS_FS is not set
957# CONFIG_HFS_FS is not set 1023# CONFIG_HFS_FS is not set
@@ -961,6 +1027,7 @@ CONFIG_TMPFS=y
961# CONFIG_EFS_FS is not set 1027# CONFIG_EFS_FS is not set
962# CONFIG_JFFS2_FS is not set 1028# CONFIG_JFFS2_FS is not set
963# CONFIG_CRAMFS is not set 1029# CONFIG_CRAMFS is not set
1030# CONFIG_SQUASHFS is not set
964# CONFIG_VXFS_FS is not set 1031# CONFIG_VXFS_FS is not set
965# CONFIG_MINIX_FS is not set 1032# CONFIG_MINIX_FS is not set
966# CONFIG_OMFS_FS is not set 1033# CONFIG_OMFS_FS is not set
@@ -1008,19 +1075,29 @@ CONFIG_FRAME_WARN=1024
1008CONFIG_DEBUG_FS=y 1075CONFIG_DEBUG_FS=y
1009# CONFIG_HEADERS_CHECK is not set 1076# CONFIG_HEADERS_CHECK is not set
1010# CONFIG_DEBUG_KERNEL is not set 1077# CONFIG_DEBUG_KERNEL is not set
1078CONFIG_STACKTRACE=y
1011# CONFIG_DEBUG_BUGVERBOSE is not set 1079# CONFIG_DEBUG_BUGVERBOSE is not set
1012# CONFIG_DEBUG_MEMORY_INIT is not set 1080# CONFIG_DEBUG_MEMORY_INIT is not set
1013# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1081# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1014# CONFIG_LATENCYTOP is not set 1082# CONFIG_LATENCYTOP is not set
1015CONFIG_NOP_TRACER=y 1083CONFIG_NOP_TRACER=y
1016CONFIG_HAVE_FTRACE=y 1084CONFIG_HAVE_FUNCTION_TRACER=y
1085CONFIG_HAVE_DYNAMIC_FTRACE=y
1086CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1087CONFIG_RING_BUFFER=y
1088CONFIG_TRACING=y
1089
1090#
1091# Tracers
1092#
1017# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1093# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1018# CONFIG_SAMPLES is not set 1094# CONFIG_SAMPLES is not set
1095CONFIG_HAVE_ARCH_KGDB=y
1019# CONFIG_SH_STANDARD_BIOS is not set 1096# CONFIG_SH_STANDARD_BIOS is not set
1020CONFIG_EARLY_SCIF_CONSOLE=y 1097CONFIG_EARLY_SCIF_CONSOLE=y
1021CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000 1098CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1022CONFIG_EARLY_PRINTK=y 1099CONFIG_EARLY_PRINTK=y
1023# CONFIG_SH_KGDB is not set 1100# CONFIG_MORE_COMPILE_OPTIONS is not set
1024 1101
1025# 1102#
1026# Security options 1103# Security options
@@ -1035,12 +1112,13 @@ CONFIG_CRYPTO=y
1035# Crypto core or helper 1112# Crypto core or helper
1036# 1113#
1037# CONFIG_CRYPTO_FIPS is not set 1114# CONFIG_CRYPTO_FIPS is not set
1038CONFIG_CRYPTO_ALGAPI=y 1115CONFIG_CRYPTO_ALGAPI2=y
1039CONFIG_CRYPTO_AEAD=y 1116CONFIG_CRYPTO_AEAD2=y
1040CONFIG_CRYPTO_BLKCIPHER=y 1117CONFIG_CRYPTO_BLKCIPHER2=y
1041CONFIG_CRYPTO_HASH=y 1118CONFIG_CRYPTO_HASH2=y
1042CONFIG_CRYPTO_RNG=y 1119CONFIG_CRYPTO_RNG2=y
1043CONFIG_CRYPTO_MANAGER=y 1120CONFIG_CRYPTO_MANAGER=y
1121CONFIG_CRYPTO_MANAGER2=y
1044# CONFIG_CRYPTO_GF128MUL is not set 1122# CONFIG_CRYPTO_GF128MUL is not set
1045# CONFIG_CRYPTO_NULL is not set 1123# CONFIG_CRYPTO_NULL is not set
1046# CONFIG_CRYPTO_CRYPTD is not set 1124# CONFIG_CRYPTO_CRYPTD is not set
@@ -1123,6 +1201,7 @@ CONFIG_CRYPTO_MANAGER=y
1123# Library routines 1201# Library routines
1124# 1202#
1125CONFIG_BITREVERSE=y 1203CONFIG_BITREVERSE=y
1204CONFIG_GENERIC_FIND_LAST_BIT=y
1126# CONFIG_CRC_CCITT is not set 1205# CONFIG_CRC_CCITT is not set
1127# CONFIG_CRC16 is not set 1206# CONFIG_CRC16 is not set
1128CONFIG_CRC_T10DIF=y 1207CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/r7780mp_defconfig b/arch/sh/configs/r7780mp_defconfig
index 2e65149e9502..65b01a9e5934 100644
--- a/arch/sh/configs/r7780mp_defconfig
+++ b/arch/sh/configs/r7780mp_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 20:03:46 2008 4# Fri Jan 9 17:10:19 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -85,6 +87,7 @@ CONFIG_SLAB=y
85# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
86# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
87CONFIG_PROFILING=y 89CONFIG_PROFILING=y
90CONFIG_TRACEPOINTS=y
88# CONFIG_MARKERS is not set 91# CONFIG_MARKERS is not set
89CONFIG_OPROFILE=m 92CONFIG_OPROFILE=m
90CONFIG_HAVE_OPROFILE=y 93CONFIG_HAVE_OPROFILE=y
@@ -96,7 +99,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
96CONFIG_HAVE_CLK=y 99CONFIG_HAVE_CLK=y
97CONFIG_HAVE_GENERIC_DMA_COHERENT=y 100CONFIG_HAVE_GENERIC_DMA_COHERENT=y
98CONFIG_SLABINFO=y 101CONFIG_SLABINFO=y
99# CONFIG_TINY_SHMEM is not set
100CONFIG_BASE_SMALL=0 102CONFIG_BASE_SMALL=0
101CONFIG_MODULES=y 103CONFIG_MODULES=y
102# CONFIG_MODULE_FORCE_LOAD is not set 104# CONFIG_MODULE_FORCE_LOAD is not set
@@ -104,11 +106,9 @@ CONFIG_MODULE_UNLOAD=y
104# CONFIG_MODULE_FORCE_UNLOAD is not set 106# CONFIG_MODULE_FORCE_UNLOAD is not set
105# CONFIG_MODVERSIONS is not set 107# CONFIG_MODVERSIONS is not set
106# CONFIG_MODULE_SRCVERSION_ALL is not set 108# CONFIG_MODULE_SRCVERSION_ALL is not set
107CONFIG_KMOD=y
108CONFIG_BLOCK=y 109CONFIG_BLOCK=y
109# CONFIG_LBD is not set 110# CONFIG_LBD is not set
110# CONFIG_BLK_DEV_IO_TRACE is not set 111# CONFIG_BLK_DEV_IO_TRACE is not set
111# CONFIG_LSF is not set
112# CONFIG_BLK_DEV_BSG is not set 112# CONFIG_BLK_DEV_BSG is not set
113# CONFIG_BLK_DEV_INTEGRITY is not set 113# CONFIG_BLK_DEV_INTEGRITY is not set
114 114
@@ -125,6 +125,10 @@ CONFIG_IOSCHED_NOOP=y
125CONFIG_DEFAULT_NOOP=y 125CONFIG_DEFAULT_NOOP=y
126CONFIG_DEFAULT_IOSCHED="noop" 126CONFIG_DEFAULT_IOSCHED="noop"
127CONFIG_CLASSIC_RCU=y 127CONFIG_CLASSIC_RCU=y
128# CONFIG_TREE_RCU is not set
129# CONFIG_PREEMPT_RCU is not set
130# CONFIG_TREE_RCU_TRACE is not set
131# CONFIG_PREEMPT_RCU_TRACE is not set
128# CONFIG_FREEZER is not set 132# CONFIG_FREEZER is not set
129 133
130# 134#
@@ -133,6 +137,7 @@ CONFIG_CLASSIC_RCU=y
133CONFIG_CPU_SH4=y 137CONFIG_CPU_SH4=y
134CONFIG_CPU_SH4A=y 138CONFIG_CPU_SH4A=y
135# CONFIG_CPU_SUBTYPE_SH7619 is not set 139# CONFIG_CPU_SUBTYPE_SH7619 is not set
140# CONFIG_CPU_SUBTYPE_SH7201 is not set
136# CONFIG_CPU_SUBTYPE_SH7203 is not set 141# CONFIG_CPU_SUBTYPE_SH7203 is not set
137# CONFIG_CPU_SUBTYPE_SH7206 is not set 142# CONFIG_CPU_SUBTYPE_SH7206 is not set
138# CONFIG_CPU_SUBTYPE_SH7263 is not set 143# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -203,7 +208,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
203CONFIG_SPARSEMEM_STATIC=y 208CONFIG_SPARSEMEM_STATIC=y
204CONFIG_PAGEFLAGS_EXTENDED=y 209CONFIG_PAGEFLAGS_EXTENDED=y
205CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
206# CONFIG_RESOURCES_64BIT is not set
207# CONFIG_PHYS_ADDR_T_64BIT is not set 211# CONFIG_PHYS_ADDR_T_64BIT is not set
208CONFIG_ZONE_DMA_FLAG=0 212CONFIG_ZONE_DMA_FLAG=0
209CONFIG_NR_QUICK=2 213CONFIG_NR_QUICK=2
@@ -284,7 +288,6 @@ CONFIG_KEXEC=y
284# CONFIG_PREEMPT_NONE is not set 288# CONFIG_PREEMPT_NONE is not set
285# CONFIG_PREEMPT_VOLUNTARY is not set 289# CONFIG_PREEMPT_VOLUNTARY is not set
286CONFIG_PREEMPT=y 290CONFIG_PREEMPT=y
287# CONFIG_PREEMPT_RCU is not set
288CONFIG_GUSA=y 291CONFIG_GUSA=y
289 292
290# 293#
@@ -302,6 +305,7 @@ CONFIG_PCI=y
302CONFIG_SH_PCIDMA_NONCOHERENT=y 305CONFIG_SH_PCIDMA_NONCOHERENT=y
303CONFIG_PCI_AUTO=y 306CONFIG_PCI_AUTO=y
304CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 307CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
308# CONFIG_PCIEPORTBUS is not set
305# CONFIG_ARCH_SUPPORTS_MSI is not set 309# CONFIG_ARCH_SUPPORTS_MSI is not set
306CONFIG_PCI_LEGACY=y 310CONFIG_PCI_LEGACY=y
307# CONFIG_PCI_DEBUG is not set 311# CONFIG_PCI_DEBUG is not set
@@ -315,11 +319,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 319# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 320# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 321# CONFIG_BINFMT_MISC is not set
322
323#
324# Power management options (EXPERIMENTAL)
325#
326# CONFIG_PM is not set
327# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 328CONFIG_NET=y
319 329
320# 330#
321# Networking options 331# Networking options
322# 332#
333CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 334CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 335# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 336CONFIG_UNIX=y
@@ -382,6 +393,7 @@ CONFIG_LLC=m
382# CONFIG_ECONET is not set 393# CONFIG_ECONET is not set
383# CONFIG_WAN_ROUTER is not set 394# CONFIG_WAN_ROUTER is not set
384# CONFIG_NET_SCHED is not set 395# CONFIG_NET_SCHED is not set
396# CONFIG_DCB is not set
385 397
386# 398#
387# Network testing 399# Network testing
@@ -398,8 +410,8 @@ CONFIG_WIRELESS=y
398# CONFIG_WIRELESS_OLD_REGULATORY is not set 410# CONFIG_WIRELESS_OLD_REGULATORY is not set
399CONFIG_WIRELESS_EXT=y 411CONFIG_WIRELESS_EXT=y
400CONFIG_WIRELESS_EXT_SYSFS=y 412CONFIG_WIRELESS_EXT_SYSFS=y
413# CONFIG_LIB80211 is not set
401# CONFIG_MAC80211 is not set 414# CONFIG_MAC80211 is not set
402# CONFIG_IEEE80211 is not set
403# CONFIG_RFKILL is not set 415# CONFIG_RFKILL is not set
404# CONFIG_NET_9P is not set 416# CONFIG_NET_9P is not set
405 417
@@ -442,8 +454,10 @@ CONFIG_MISC_DEVICES=y
442CONFIG_EEPROM_93CX6=y 454CONFIG_EEPROM_93CX6=y
443# CONFIG_SGI_IOC4 is not set 455# CONFIG_SGI_IOC4 is not set
444# CONFIG_TIFM_CORE is not set 456# CONFIG_TIFM_CORE is not set
457# CONFIG_ICS932S401 is not set
445# CONFIG_ENCLOSURE_SERVICES is not set 458# CONFIG_ENCLOSURE_SERVICES is not set
446# CONFIG_HP_ILO is not set 459# CONFIG_HP_ILO is not set
460# CONFIG_C2PORT is not set
447CONFIG_HAVE_IDE=y 461CONFIG_HAVE_IDE=y
448# CONFIG_IDE is not set 462# CONFIG_IDE is not set
449 463
@@ -486,6 +500,7 @@ CONFIG_SCSI_WAIT_SCAN=m
486# CONFIG_SCSI_SRP_ATTRS is not set 500# CONFIG_SCSI_SRP_ATTRS is not set
487CONFIG_SCSI_LOWLEVEL=y 501CONFIG_SCSI_LOWLEVEL=y
488# CONFIG_ISCSI_TCP is not set 502# CONFIG_ISCSI_TCP is not set
503# CONFIG_SCSI_CXGB3_ISCSI is not set
489# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 504# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
490# CONFIG_SCSI_3W_9XXX is not set 505# CONFIG_SCSI_3W_9XXX is not set
491# CONFIG_SCSI_ACARD is not set 506# CONFIG_SCSI_ACARD is not set
@@ -499,6 +514,8 @@ CONFIG_SCSI_LOWLEVEL=y
499# CONFIG_MEGARAID_LEGACY is not set 514# CONFIG_MEGARAID_LEGACY is not set
500# CONFIG_MEGARAID_SAS is not set 515# CONFIG_MEGARAID_SAS is not set
501# CONFIG_SCSI_HPTIOP is not set 516# CONFIG_SCSI_HPTIOP is not set
517# CONFIG_LIBFC is not set
518# CONFIG_FCOE is not set
502# CONFIG_SCSI_DMX3191D is not set 519# CONFIG_SCSI_DMX3191D is not set
503# CONFIG_SCSI_FUTURE_DOMAIN is not set 520# CONFIG_SCSI_FUTURE_DOMAIN is not set
504# CONFIG_SCSI_IPS is not set 521# CONFIG_SCSI_IPS is not set
@@ -611,6 +628,7 @@ CONFIG_AX88796_93CX6=y
611# CONFIG_NET_VENDOR_3COM is not set 628# CONFIG_NET_VENDOR_3COM is not set
612# CONFIG_SMC91X is not set 629# CONFIG_SMC91X is not set
613# CONFIG_SMC911X is not set 630# CONFIG_SMC911X is not set
631# CONFIG_SMSC911X is not set
614# CONFIG_NET_TULIP is not set 632# CONFIG_NET_TULIP is not set
615# CONFIG_HP100 is not set 633# CONFIG_HP100 is not set
616# CONFIG_IBM_NEW_EMAC_ZMII is not set 634# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -626,7 +644,6 @@ CONFIG_PCNET32=m
626# CONFIG_ADAPTEC_STARFIRE is not set 644# CONFIG_ADAPTEC_STARFIRE is not set
627# CONFIG_B44 is not set 645# CONFIG_B44 is not set
628# CONFIG_FORCEDETH is not set 646# CONFIG_FORCEDETH is not set
629# CONFIG_EEPRO100 is not set
630# CONFIG_E100 is not set 647# CONFIG_E100 is not set
631# CONFIG_FEALNX is not set 648# CONFIG_FEALNX is not set
632# CONFIG_NATSEMI is not set 649# CONFIG_NATSEMI is not set
@@ -640,6 +657,7 @@ CONFIG_8139TOO_8129=y
640# CONFIG_R6040 is not set 657# CONFIG_R6040 is not set
641# CONFIG_SIS900 is not set 658# CONFIG_SIS900 is not set
642# CONFIG_EPIC100 is not set 659# CONFIG_EPIC100 is not set
660# CONFIG_SMSC9420 is not set
643# CONFIG_SUNDANCE is not set 661# CONFIG_SUNDANCE is not set
644# CONFIG_TLAN is not set 662# CONFIG_TLAN is not set
645CONFIG_VIA_RHINE=m 663CONFIG_VIA_RHINE=m
@@ -669,6 +687,7 @@ CONFIG_R8169=y
669# CONFIG_JME is not set 687# CONFIG_JME is not set
670CONFIG_NETDEV_10000=y 688CONFIG_NETDEV_10000=y
671# CONFIG_CHELSIO_T1 is not set 689# CONFIG_CHELSIO_T1 is not set
690CONFIG_CHELSIO_T3_DEPENDS=y
672# CONFIG_CHELSIO_T3 is not set 691# CONFIG_CHELSIO_T3 is not set
673# CONFIG_ENIC is not set 692# CONFIG_ENIC is not set
674# CONFIG_IXGBE is not set 693# CONFIG_IXGBE is not set
@@ -677,6 +696,7 @@ CONFIG_NETDEV_10000=y
677# CONFIG_MYRI10GE is not set 696# CONFIG_MYRI10GE is not set
678# CONFIG_NETXEN_NIC is not set 697# CONFIG_NETXEN_NIC is not set
679# CONFIG_NIU is not set 698# CONFIG_NIU is not set
699# CONFIG_MLX4_EN is not set
680# CONFIG_MLX4_CORE is not set 700# CONFIG_MLX4_CORE is not set
681# CONFIG_TEHUTI is not set 701# CONFIG_TEHUTI is not set
682# CONFIG_BNX2X is not set 702# CONFIG_BNX2X is not set
@@ -771,6 +791,7 @@ CONFIG_SERIAL_CORE=y
771CONFIG_SERIAL_CORE_CONSOLE=y 791CONFIG_SERIAL_CORE_CONSOLE=y
772# CONFIG_SERIAL_JSM is not set 792# CONFIG_SERIAL_JSM is not set
773CONFIG_UNIX98_PTYS=y 793CONFIG_UNIX98_PTYS=y
794# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
774CONFIG_LEGACY_PTYS=y 795CONFIG_LEGACY_PTYS=y
775CONFIG_LEGACY_PTY_COUNT=256 796CONFIG_LEGACY_PTY_COUNT=256
776# CONFIG_IPMI_HANDLER is not set 797# CONFIG_IPMI_HANDLER is not set
@@ -836,8 +857,8 @@ CONFIG_I2C_HIGHLANDER=y
836# Miscellaneous I2C Chip support 857# Miscellaneous I2C Chip support
837# 858#
838# CONFIG_DS1682 is not set 859# CONFIG_DS1682 is not set
839# CONFIG_AT24 is not set 860# CONFIG_EEPROM_AT24 is not set
840# CONFIG_SENSORS_EEPROM is not set 861# CONFIG_EEPROM_LEGACY is not set
841# CONFIG_SENSORS_PCF8574 is not set 862# CONFIG_SENSORS_PCF8574 is not set
842# CONFIG_PCF8575 is not set 863# CONFIG_PCF8575 is not set
843# CONFIG_SENSORS_PCA9539 is not set 864# CONFIG_SENSORS_PCA9539 is not set
@@ -861,6 +882,7 @@ CONFIG_HWMON=y
861# CONFIG_SENSORS_ADM1029 is not set 882# CONFIG_SENSORS_ADM1029 is not set
862# CONFIG_SENSORS_ADM1031 is not set 883# CONFIG_SENSORS_ADM1031 is not set
863# CONFIG_SENSORS_ADM9240 is not set 884# CONFIG_SENSORS_ADM9240 is not set
885# CONFIG_SENSORS_ADT7462 is not set
864# CONFIG_SENSORS_ADT7470 is not set 886# CONFIG_SENSORS_ADT7470 is not set
865# CONFIG_SENSORS_ADT7473 is not set 887# CONFIG_SENSORS_ADT7473 is not set
866# CONFIG_SENSORS_ATXP1 is not set 888# CONFIG_SENSORS_ATXP1 is not set
@@ -909,11 +931,11 @@ CONFIG_HWMON=y
909CONFIG_THERMAL=y 931CONFIG_THERMAL=y
910# CONFIG_THERMAL_HWMON is not set 932# CONFIG_THERMAL_HWMON is not set
911# CONFIG_WATCHDOG is not set 933# CONFIG_WATCHDOG is not set
934CONFIG_SSB_POSSIBLE=y
912 935
913# 936#
914# Sonics Silicon Backplane 937# Sonics Silicon Backplane
915# 938#
916CONFIG_SSB_POSSIBLE=y
917# CONFIG_SSB is not set 939# CONFIG_SSB is not set
918 940
919# 941#
@@ -922,9 +944,12 @@ CONFIG_SSB_POSSIBLE=y
922# CONFIG_MFD_CORE is not set 944# CONFIG_MFD_CORE is not set
923# CONFIG_MFD_SM501 is not set 945# CONFIG_MFD_SM501 is not set
924# CONFIG_HTC_PASIC3 is not set 946# CONFIG_HTC_PASIC3 is not set
947# CONFIG_TWL4030_CORE is not set
925# CONFIG_MFD_TMIO is not set 948# CONFIG_MFD_TMIO is not set
949# CONFIG_PMIC_DA903X is not set
926# CONFIG_MFD_WM8400 is not set 950# CONFIG_MFD_WM8400 is not set
927# CONFIG_MFD_WM8350_I2C is not set 951# CONFIG_MFD_WM8350_I2C is not set
952# CONFIG_REGULATOR is not set
928 953
929# 954#
930# Multimedia devices 955# Multimedia devices
@@ -982,9 +1007,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
982# 1007#
983 1008
984# 1009#
985# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1010# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
986# 1011#
987# CONFIG_USB_GADGET is not set 1012# CONFIG_USB_GADGET is not set
1013# CONFIG_UWB is not set
988# CONFIG_MMC is not set 1014# CONFIG_MMC is not set
989# CONFIG_MEMSTICK is not set 1015# CONFIG_MEMSTICK is not set
990# CONFIG_NEW_LEDS is not set 1016# CONFIG_NEW_LEDS is not set
@@ -1020,6 +1046,7 @@ CONFIG_RTC_DRV_RS5C372=y
1020# CONFIG_RTC_DRV_M41T80 is not set 1046# CONFIG_RTC_DRV_M41T80 is not set
1021# CONFIG_RTC_DRV_S35390A is not set 1047# CONFIG_RTC_DRV_S35390A is not set
1022# CONFIG_RTC_DRV_FM3130 is not set 1048# CONFIG_RTC_DRV_FM3130 is not set
1049# CONFIG_RTC_DRV_RX8581 is not set
1023 1050
1024# 1051#
1025# SPI RTC drivers 1052# SPI RTC drivers
@@ -1106,10 +1133,7 @@ CONFIG_TMPFS=y
1106CONFIG_HUGETLBFS=y 1133CONFIG_HUGETLBFS=y
1107CONFIG_HUGETLB_PAGE=y 1134CONFIG_HUGETLB_PAGE=y
1108CONFIG_CONFIGFS_FS=m 1135CONFIG_CONFIGFS_FS=m
1109 1136CONFIG_MISC_FILESYSTEMS=y
1110#
1111# Miscellaneous filesystems
1112#
1113# CONFIG_ADFS_FS is not set 1137# CONFIG_ADFS_FS is not set
1114# CONFIG_AFFS_FS is not set 1138# CONFIG_AFFS_FS is not set
1115# CONFIG_HFS_FS is not set 1139# CONFIG_HFS_FS is not set
@@ -1228,6 +1252,7 @@ CONFIG_SCHED_DEBUG=y
1228# CONFIG_LOCK_STAT is not set 1252# CONFIG_LOCK_STAT is not set
1229# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1253# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1230# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1254# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1255CONFIG_STACKTRACE=y
1231# CONFIG_DEBUG_KOBJECT is not set 1256# CONFIG_DEBUG_KOBJECT is not set
1232CONFIG_DEBUG_BUGVERBOSE=y 1257CONFIG_DEBUG_BUGVERBOSE=y
1233CONFIG_DEBUG_INFO=y 1258CONFIG_DEBUG_INFO=y
@@ -1236,6 +1261,7 @@ CONFIG_DEBUG_INFO=y
1236# CONFIG_DEBUG_MEMORY_INIT is not set 1261# CONFIG_DEBUG_MEMORY_INIT is not set
1237# CONFIG_DEBUG_LIST is not set 1262# CONFIG_DEBUG_LIST is not set
1238# CONFIG_DEBUG_SG is not set 1263# CONFIG_DEBUG_SG is not set
1264# CONFIG_DEBUG_NOTIFIERS is not set
1239# CONFIG_FRAME_POINTER is not set 1265# CONFIG_FRAME_POINTER is not set
1240# CONFIG_RCU_TORTURE_TEST is not set 1266# CONFIG_RCU_TORTURE_TEST is not set
1241# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1267# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1244,16 +1270,28 @@ CONFIG_DEBUG_INFO=y
1244# CONFIG_FAULT_INJECTION is not set 1270# CONFIG_FAULT_INJECTION is not set
1245# CONFIG_LATENCYTOP is not set 1271# CONFIG_LATENCYTOP is not set
1246CONFIG_NOP_TRACER=y 1272CONFIG_NOP_TRACER=y
1247CONFIG_HAVE_FTRACE=y 1273CONFIG_HAVE_FUNCTION_TRACER=y
1248# CONFIG_FTRACE is not set 1274CONFIG_HAVE_DYNAMIC_FTRACE=y
1275CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1276CONFIG_RING_BUFFER=y
1277CONFIG_TRACING=y
1278
1279#
1280# Tracers
1281#
1282# CONFIG_FUNCTION_TRACER is not set
1249# CONFIG_IRQSOFF_TRACER is not set 1283# CONFIG_IRQSOFF_TRACER is not set
1250# CONFIG_PREEMPT_TRACER is not set 1284# CONFIG_PREEMPT_TRACER is not set
1251# CONFIG_SCHED_TRACER is not set 1285# CONFIG_SCHED_TRACER is not set
1252# CONFIG_CONTEXT_SWITCH_TRACER is not set 1286# CONFIG_CONTEXT_SWITCH_TRACER is not set
1253# CONFIG_BOOT_TRACER is not set 1287# CONFIG_BOOT_TRACER is not set
1288# CONFIG_TRACE_BRANCH_PROFILING is not set
1254# CONFIG_STACK_TRACER is not set 1289# CONFIG_STACK_TRACER is not set
1290# CONFIG_FTRACE_STARTUP_TEST is not set
1255# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1291# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1256# CONFIG_SAMPLES is not set 1292# CONFIG_SAMPLES is not set
1293CONFIG_HAVE_ARCH_KGDB=y
1294# CONFIG_KGDB is not set
1257CONFIG_SH_STANDARD_BIOS=y 1295CONFIG_SH_STANDARD_BIOS=y
1258# CONFIG_EARLY_SCIF_CONSOLE is not set 1296# CONFIG_EARLY_SCIF_CONSOLE is not set
1259CONFIG_EARLY_PRINTK=y 1297CONFIG_EARLY_PRINTK=y
@@ -1262,7 +1300,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
1262# CONFIG_DEBUG_STACK_USAGE is not set 1300# CONFIG_DEBUG_STACK_USAGE is not set
1263# CONFIG_4KSTACKS is not set 1301# CONFIG_4KSTACKS is not set
1264# CONFIG_IRQSTACKS is not set 1302# CONFIG_IRQSTACKS is not set
1265# CONFIG_SH_KGDB is not set 1303CONFIG_DUMP_CODE=y
1304# CONFIG_SH_NO_BSS_INIT is not set
1305# CONFIG_MORE_COMPILE_OPTIONS is not set
1266 1306
1267# 1307#
1268# Security options 1308# Security options
@@ -1278,11 +1318,15 @@ CONFIG_CRYPTO=y
1278# 1318#
1279# CONFIG_CRYPTO_FIPS is not set 1319# CONFIG_CRYPTO_FIPS is not set
1280CONFIG_CRYPTO_ALGAPI=y 1320CONFIG_CRYPTO_ALGAPI=y
1281CONFIG_CRYPTO_AEAD=y 1321CONFIG_CRYPTO_ALGAPI2=y
1322CONFIG_CRYPTO_AEAD2=y
1282CONFIG_CRYPTO_BLKCIPHER=y 1323CONFIG_CRYPTO_BLKCIPHER=y
1324CONFIG_CRYPTO_BLKCIPHER2=y
1283CONFIG_CRYPTO_HASH=y 1325CONFIG_CRYPTO_HASH=y
1284CONFIG_CRYPTO_RNG=y 1326CONFIG_CRYPTO_HASH2=y
1327CONFIG_CRYPTO_RNG2=y
1285CONFIG_CRYPTO_MANAGER=y 1328CONFIG_CRYPTO_MANAGER=y
1329CONFIG_CRYPTO_MANAGER2=y
1286# CONFIG_CRYPTO_GF128MUL is not set 1330# CONFIG_CRYPTO_GF128MUL is not set
1287# CONFIG_CRYPTO_NULL is not set 1331# CONFIG_CRYPTO_NULL is not set
1288# CONFIG_CRYPTO_CRYPTD is not set 1332# CONFIG_CRYPTO_CRYPTD is not set
@@ -1366,6 +1410,7 @@ CONFIG_CRYPTO_HW=y
1366# Library routines 1410# Library routines
1367# 1411#
1368CONFIG_BITREVERSE=y 1412CONFIG_BITREVERSE=y
1413CONFIG_GENERIC_FIND_LAST_BIT=y
1369# CONFIG_CRC_CCITT is not set 1414# CONFIG_CRC_CCITT is not set
1370# CONFIG_CRC16 is not set 1415# CONFIG_CRC16 is not set
1371CONFIG_CRC_T10DIF=y 1416CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/r7785rp_defconfig b/arch/sh/configs/r7785rp_defconfig
index 043a8a509e09..8defaa5f13b9 100644
--- a/arch/sh/configs/r7785rp_defconfig
+++ b/arch/sh/configs/r7785rp_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 16:25:30 2008 4# Fri Jan 9 17:14:41 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -13,9 +13,11 @@ CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
21CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
@@ -63,6 +65,7 @@ CONFIG_UID16=y
63# CONFIG_SYSCTL_SYSCALL is not set 65# CONFIG_SYSCTL_SYSCALL is not set
64CONFIG_KALLSYMS=y 66CONFIG_KALLSYMS=y
65CONFIG_KALLSYMS_ALL=y 67CONFIG_KALLSYMS_ALL=y
68CONFIG_KALLSYMS_STRIP_GENERATED=y
66# CONFIG_KALLSYMS_EXTRA_PASS is not set 69# CONFIG_KALLSYMS_EXTRA_PASS is not set
67CONFIG_HOTPLUG=y 70CONFIG_HOTPLUG=y
68CONFIG_PRINTK=y 71CONFIG_PRINTK=y
@@ -84,6 +87,7 @@ CONFIG_SLAB=y
84# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
85# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
86CONFIG_PROFILING=y 89CONFIG_PROFILING=y
90CONFIG_TRACEPOINTS=y
87# CONFIG_MARKERS is not set 91# CONFIG_MARKERS is not set
88CONFIG_OPROFILE=y 92CONFIG_OPROFILE=y
89CONFIG_HAVE_OPROFILE=y 93CONFIG_HAVE_OPROFILE=y
@@ -97,7 +101,6 @@ CONFIG_HAVE_CLK=y
97CONFIG_HAVE_GENERIC_DMA_COHERENT=y 101CONFIG_HAVE_GENERIC_DMA_COHERENT=y
98CONFIG_SLABINFO=y 102CONFIG_SLABINFO=y
99CONFIG_RT_MUTEXES=y 103CONFIG_RT_MUTEXES=y
100# CONFIG_TINY_SHMEM is not set
101CONFIG_BASE_SMALL=0 104CONFIG_BASE_SMALL=0
102CONFIG_MODULES=y 105CONFIG_MODULES=y
103# CONFIG_MODULE_FORCE_LOAD is not set 106# CONFIG_MODULE_FORCE_LOAD is not set
@@ -105,11 +108,9 @@ CONFIG_MODULE_UNLOAD=y
105# CONFIG_MODULE_FORCE_UNLOAD is not set 108# CONFIG_MODULE_FORCE_UNLOAD is not set
106# CONFIG_MODVERSIONS is not set 109# CONFIG_MODVERSIONS is not set
107# CONFIG_MODULE_SRCVERSION_ALL is not set 110# CONFIG_MODULE_SRCVERSION_ALL is not set
108CONFIG_KMOD=y
109CONFIG_BLOCK=y 111CONFIG_BLOCK=y
110# CONFIG_LBD is not set 112# CONFIG_LBD is not set
111# CONFIG_BLK_DEV_IO_TRACE is not set 113# CONFIG_BLK_DEV_IO_TRACE is not set
112# CONFIG_LSF is not set
113# CONFIG_BLK_DEV_BSG is not set 114# CONFIG_BLK_DEV_BSG is not set
114# CONFIG_BLK_DEV_INTEGRITY is not set 115# CONFIG_BLK_DEV_INTEGRITY is not set
115 116
@@ -126,6 +127,11 @@ CONFIG_IOSCHED_NOOP=y
126CONFIG_DEFAULT_NOOP=y 127CONFIG_DEFAULT_NOOP=y
127CONFIG_DEFAULT_IOSCHED="noop" 128CONFIG_DEFAULT_IOSCHED="noop"
128# CONFIG_CLASSIC_RCU is not set 129# CONFIG_CLASSIC_RCU is not set
130# CONFIG_TREE_RCU is not set
131CONFIG_PREEMPT_RCU=y
132CONFIG_RCU_TRACE=y
133# CONFIG_TREE_RCU_TRACE is not set
134CONFIG_PREEMPT_RCU_TRACE=y
129# CONFIG_FREEZER is not set 135# CONFIG_FREEZER is not set
130 136
131# 137#
@@ -135,6 +141,7 @@ CONFIG_CPU_SH4=y
135CONFIG_CPU_SH4A=y 141CONFIG_CPU_SH4A=y
136CONFIG_CPU_SHX2=y 142CONFIG_CPU_SHX2=y
137# CONFIG_CPU_SUBTYPE_SH7619 is not set 143# CONFIG_CPU_SUBTYPE_SH7619 is not set
144# CONFIG_CPU_SUBTYPE_SH7201 is not set
138# CONFIG_CPU_SUBTYPE_SH7203 is not set 145# CONFIG_CPU_SUBTYPE_SH7203 is not set
139# CONFIG_CPU_SUBTYPE_SH7206 is not set 146# CONFIG_CPU_SUBTYPE_SH7206 is not set
140# CONFIG_CPU_SUBTYPE_SH7263 is not set 147# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -211,7 +218,6 @@ CONFIG_SPARSEMEM_STATIC=y
211CONFIG_PAGEFLAGS_EXTENDED=y 218CONFIG_PAGEFLAGS_EXTENDED=y
212CONFIG_SPLIT_PTLOCK_CPUS=4 219CONFIG_SPLIT_PTLOCK_CPUS=4
213CONFIG_MIGRATION=y 220CONFIG_MIGRATION=y
214# CONFIG_RESOURCES_64BIT is not set
215# CONFIG_PHYS_ADDR_T_64BIT is not set 221# CONFIG_PHYS_ADDR_T_64BIT is not set
216CONFIG_ZONE_DMA_FLAG=0 222CONFIG_ZONE_DMA_FLAG=0
217CONFIG_NR_QUICK=2 223CONFIG_NR_QUICK=2
@@ -307,8 +313,6 @@ CONFIG_KEXEC=y
307# CONFIG_PREEMPT_NONE is not set 313# CONFIG_PREEMPT_NONE is not set
308# CONFIG_PREEMPT_VOLUNTARY is not set 314# CONFIG_PREEMPT_VOLUNTARY is not set
309CONFIG_PREEMPT=y 315CONFIG_PREEMPT=y
310CONFIG_PREEMPT_RCU=y
311CONFIG_RCU_TRACE=y
312CONFIG_GUSA=y 316CONFIG_GUSA=y
313 317
314# 318#
@@ -326,6 +330,7 @@ CONFIG_PCI=y
326CONFIG_SH_PCIDMA_NONCOHERENT=y 330CONFIG_SH_PCIDMA_NONCOHERENT=y
327CONFIG_PCI_AUTO=y 331CONFIG_PCI_AUTO=y
328CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 332CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
333# CONFIG_PCIEPORTBUS is not set
329# CONFIG_ARCH_SUPPORTS_MSI is not set 334# CONFIG_ARCH_SUPPORTS_MSI is not set
330# CONFIG_PCI_LEGACY is not set 335# CONFIG_PCI_LEGACY is not set
331# CONFIG_PCI_DEBUG is not set 336# CONFIG_PCI_DEBUG is not set
@@ -339,11 +344,18 @@ CONFIG_BINFMT_ELF=y
339# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 344# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
340# CONFIG_HAVE_AOUT is not set 345# CONFIG_HAVE_AOUT is not set
341CONFIG_BINFMT_MISC=m 346CONFIG_BINFMT_MISC=m
347
348#
349# Power management options (EXPERIMENTAL)
350#
351# CONFIG_PM is not set
352# CONFIG_CPU_IDLE is not set
342CONFIG_NET=y 353CONFIG_NET=y
343 354
344# 355#
345# Networking options 356# Networking options
346# 357#
358CONFIG_COMPAT_NET_DEV_OPS=y
347CONFIG_PACKET=y 359CONFIG_PACKET=y
348# CONFIG_PACKET_MMAP is not set 360# CONFIG_PACKET_MMAP is not set
349CONFIG_UNIX=y 361CONFIG_UNIX=y
@@ -406,6 +418,7 @@ CONFIG_LLC=m
406# CONFIG_ECONET is not set 418# CONFIG_ECONET is not set
407# CONFIG_WAN_ROUTER is not set 419# CONFIG_WAN_ROUTER is not set
408# CONFIG_NET_SCHED is not set 420# CONFIG_NET_SCHED is not set
421# CONFIG_DCB is not set
409 422
410# 423#
411# Network testing 424# Network testing
@@ -423,8 +436,8 @@ CONFIG_WIRELESS=y
423# CONFIG_WIRELESS_OLD_REGULATORY is not set 436# CONFIG_WIRELESS_OLD_REGULATORY is not set
424CONFIG_WIRELESS_EXT=y 437CONFIG_WIRELESS_EXT=y
425CONFIG_WIRELESS_EXT_SYSFS=y 438CONFIG_WIRELESS_EXT_SYSFS=y
439# CONFIG_LIB80211 is not set
426# CONFIG_MAC80211 is not set 440# CONFIG_MAC80211 is not set
427# CONFIG_IEEE80211 is not set
428# CONFIG_RFKILL is not set 441# CONFIG_RFKILL is not set
429# CONFIG_NET_9P is not set 442# CONFIG_NET_9P is not set
430 443
@@ -467,8 +480,10 @@ CONFIG_MISC_DEVICES=y
467CONFIG_EEPROM_93CX6=y 480CONFIG_EEPROM_93CX6=y
468# CONFIG_SGI_IOC4 is not set 481# CONFIG_SGI_IOC4 is not set
469# CONFIG_TIFM_CORE is not set 482# CONFIG_TIFM_CORE is not set
483# CONFIG_ICS932S401 is not set
470# CONFIG_ENCLOSURE_SERVICES is not set 484# CONFIG_ENCLOSURE_SERVICES is not set
471# CONFIG_HP_ILO is not set 485# CONFIG_HP_ILO is not set
486# CONFIG_C2PORT is not set
472CONFIG_HAVE_IDE=y 487CONFIG_HAVE_IDE=y
473# CONFIG_IDE is not set 488# CONFIG_IDE is not set
474 489
@@ -511,6 +526,7 @@ CONFIG_SCSI_WAIT_SCAN=m
511# CONFIG_SCSI_SRP_ATTRS is not set 526# CONFIG_SCSI_SRP_ATTRS is not set
512CONFIG_SCSI_LOWLEVEL=y 527CONFIG_SCSI_LOWLEVEL=y
513# CONFIG_ISCSI_TCP is not set 528# CONFIG_ISCSI_TCP is not set
529# CONFIG_SCSI_CXGB3_ISCSI is not set
514# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 530# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
515# CONFIG_SCSI_3W_9XXX is not set 531# CONFIG_SCSI_3W_9XXX is not set
516# CONFIG_SCSI_ACARD is not set 532# CONFIG_SCSI_ACARD is not set
@@ -524,6 +540,8 @@ CONFIG_SCSI_LOWLEVEL=y
524# CONFIG_MEGARAID_LEGACY is not set 540# CONFIG_MEGARAID_LEGACY is not set
525# CONFIG_MEGARAID_SAS is not set 541# CONFIG_MEGARAID_SAS is not set
526# CONFIG_SCSI_HPTIOP is not set 542# CONFIG_SCSI_HPTIOP is not set
543# CONFIG_LIBFC is not set
544# CONFIG_FCOE is not set
527# CONFIG_SCSI_DMX3191D is not set 545# CONFIG_SCSI_DMX3191D is not set
528# CONFIG_SCSI_FUTURE_DOMAIN is not set 546# CONFIG_SCSI_FUTURE_DOMAIN is not set
529# CONFIG_SCSI_IPS is not set 547# CONFIG_SCSI_IPS is not set
@@ -636,6 +654,7 @@ CONFIG_AX88796_93CX6=y
636# CONFIG_NET_VENDOR_3COM is not set 654# CONFIG_NET_VENDOR_3COM is not set
637# CONFIG_SMC91X is not set 655# CONFIG_SMC91X is not set
638# CONFIG_SMC911X is not set 656# CONFIG_SMC911X is not set
657# CONFIG_SMSC911X is not set
639# CONFIG_NET_TULIP is not set 658# CONFIG_NET_TULIP is not set
640# CONFIG_HP100 is not set 659# CONFIG_HP100 is not set
641# CONFIG_IBM_NEW_EMAC_ZMII is not set 660# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -671,6 +690,7 @@ CONFIG_R8169=y
671# CONFIG_JME is not set 690# CONFIG_JME is not set
672CONFIG_NETDEV_10000=y 691CONFIG_NETDEV_10000=y
673# CONFIG_CHELSIO_T1 is not set 692# CONFIG_CHELSIO_T1 is not set
693CONFIG_CHELSIO_T3_DEPENDS=y
674# CONFIG_CHELSIO_T3 is not set 694# CONFIG_CHELSIO_T3 is not set
675# CONFIG_ENIC is not set 695# CONFIG_ENIC is not set
676# CONFIG_IXGBE is not set 696# CONFIG_IXGBE is not set
@@ -679,6 +699,7 @@ CONFIG_NETDEV_10000=y
679# CONFIG_MYRI10GE is not set 699# CONFIG_MYRI10GE is not set
680# CONFIG_NETXEN_NIC is not set 700# CONFIG_NETXEN_NIC is not set
681# CONFIG_NIU is not set 701# CONFIG_NIU is not set
702# CONFIG_MLX4_EN is not set
682# CONFIG_MLX4_CORE is not set 703# CONFIG_MLX4_CORE is not set
683# CONFIG_TEHUTI is not set 704# CONFIG_TEHUTI is not set
684# CONFIG_BNX2X is not set 705# CONFIG_BNX2X is not set
@@ -732,6 +753,7 @@ CONFIG_KEYBOARD_ATKBD=y
732# CONFIG_KEYBOARD_XTKBD is not set 753# CONFIG_KEYBOARD_XTKBD is not set
733# CONFIG_KEYBOARD_NEWTON is not set 754# CONFIG_KEYBOARD_NEWTON is not set
734# CONFIG_KEYBOARD_STOWAWAY is not set 755# CONFIG_KEYBOARD_STOWAWAY is not set
756# CONFIG_KEYBOARD_GPIO is not set
735# CONFIG_KEYBOARD_SH_KEYSC is not set 757# CONFIG_KEYBOARD_SH_KEYSC is not set
736# CONFIG_INPUT_MOUSE is not set 758# CONFIG_INPUT_MOUSE is not set
737# CONFIG_INPUT_JOYSTICK is not set 759# CONFIG_INPUT_JOYSTICK is not set
@@ -773,6 +795,7 @@ CONFIG_SERIAL_CORE=y
773CONFIG_SERIAL_CORE_CONSOLE=y 795CONFIG_SERIAL_CORE_CONSOLE=y
774# CONFIG_SERIAL_JSM is not set 796# CONFIG_SERIAL_JSM is not set
775CONFIG_UNIX98_PTYS=y 797CONFIG_UNIX98_PTYS=y
798# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
776CONFIG_LEGACY_PTYS=y 799CONFIG_LEGACY_PTYS=y
777CONFIG_LEGACY_PTY_COUNT=256 800CONFIG_LEGACY_PTY_COUNT=256
778# CONFIG_IPMI_HANDLER is not set 801# CONFIG_IPMI_HANDLER is not set
@@ -812,6 +835,7 @@ CONFIG_I2C_HELPER_AUTO=y
812# 835#
813# I2C system bus drivers (mostly embedded / system-on-chip) 836# I2C system bus drivers (mostly embedded / system-on-chip)
814# 837#
838# CONFIG_I2C_GPIO is not set
815CONFIG_I2C_HIGHLANDER=y 839CONFIG_I2C_HIGHLANDER=y
816# CONFIG_I2C_OCORES is not set 840# CONFIG_I2C_OCORES is not set
817# CONFIG_I2C_SH_MOBILE is not set 841# CONFIG_I2C_SH_MOBILE is not set
@@ -838,8 +862,8 @@ CONFIG_I2C_HIGHLANDER=y
838# Miscellaneous I2C Chip support 862# Miscellaneous I2C Chip support
839# 863#
840# CONFIG_DS1682 is not set 864# CONFIG_DS1682 is not set
841# CONFIG_AT24 is not set 865# CONFIG_EEPROM_AT24 is not set
842# CONFIG_SENSORS_EEPROM is not set 866# CONFIG_EEPROM_LEGACY is not set
843# CONFIG_SENSORS_PCF8574 is not set 867# CONFIG_SENSORS_PCF8574 is not set
844# CONFIG_PCF8575 is not set 868# CONFIG_PCF8575 is not set
845# CONFIG_SENSORS_PCA9539 is not set 869# CONFIG_SENSORS_PCA9539 is not set
@@ -851,6 +875,30 @@ CONFIG_I2C_HIGHLANDER=y
851# CONFIG_I2C_DEBUG_BUS is not set 875# CONFIG_I2C_DEBUG_BUS is not set
852# CONFIG_I2C_DEBUG_CHIP is not set 876# CONFIG_I2C_DEBUG_CHIP is not set
853# CONFIG_SPI is not set 877# CONFIG_SPI is not set
878CONFIG_ARCH_REQUIRE_GPIOLIB=y
879CONFIG_GPIOLIB=y
880# CONFIG_DEBUG_GPIO is not set
881# CONFIG_GPIO_SYSFS is not set
882
883#
884# Memory mapped GPIO expanders:
885#
886
887#
888# I2C GPIO expanders:
889#
890# CONFIG_GPIO_MAX732X is not set
891# CONFIG_GPIO_PCA953X is not set
892# CONFIG_GPIO_PCF857X is not set
893
894#
895# PCI GPIO expanders:
896#
897# CONFIG_GPIO_BT8XX is not set
898
899#
900# SPI GPIO expanders:
901#
854# CONFIG_W1 is not set 902# CONFIG_W1 is not set
855# CONFIG_POWER_SUPPLY is not set 903# CONFIG_POWER_SUPPLY is not set
856CONFIG_HWMON=y 904CONFIG_HWMON=y
@@ -863,6 +911,7 @@ CONFIG_HWMON=y
863# CONFIG_SENSORS_ADM1029 is not set 911# CONFIG_SENSORS_ADM1029 is not set
864# CONFIG_SENSORS_ADM1031 is not set 912# CONFIG_SENSORS_ADM1031 is not set
865# CONFIG_SENSORS_ADM9240 is not set 913# CONFIG_SENSORS_ADM9240 is not set
914# CONFIG_SENSORS_ADT7462 is not set
866# CONFIG_SENSORS_ADT7470 is not set 915# CONFIG_SENSORS_ADT7470 is not set
867# CONFIG_SENSORS_ADT7473 is not set 916# CONFIG_SENSORS_ADT7473 is not set
868# CONFIG_SENSORS_ATXP1 is not set 917# CONFIG_SENSORS_ATXP1 is not set
@@ -911,11 +960,11 @@ CONFIG_HWMON=y
911# CONFIG_THERMAL is not set 960# CONFIG_THERMAL is not set
912# CONFIG_THERMAL_HWMON is not set 961# CONFIG_THERMAL_HWMON is not set
913# CONFIG_WATCHDOG is not set 962# CONFIG_WATCHDOG is not set
963CONFIG_SSB_POSSIBLE=y
914 964
915# 965#
916# Sonics Silicon Backplane 966# Sonics Silicon Backplane
917# 967#
918CONFIG_SSB_POSSIBLE=y
919# CONFIG_SSB is not set 968# CONFIG_SSB is not set
920 969
921# 970#
@@ -924,9 +973,13 @@ CONFIG_SSB_POSSIBLE=y
924# CONFIG_MFD_CORE is not set 973# CONFIG_MFD_CORE is not set
925# CONFIG_MFD_SM501 is not set 974# CONFIG_MFD_SM501 is not set
926# CONFIG_HTC_PASIC3 is not set 975# CONFIG_HTC_PASIC3 is not set
976# CONFIG_TPS65010 is not set
977# CONFIG_TWL4030_CORE is not set
927# CONFIG_MFD_TMIO is not set 978# CONFIG_MFD_TMIO is not set
979# CONFIG_PMIC_DA903X is not set
928# CONFIG_MFD_WM8400 is not set 980# CONFIG_MFD_WM8400 is not set
929# CONFIG_MFD_WM8350_I2C is not set 981# CONFIG_MFD_WM8350_I2C is not set
982# CONFIG_REGULATOR is not set
930 983
931# 984#
932# Multimedia devices 985# Multimedia devices
@@ -954,15 +1007,16 @@ CONFIG_FB=y
954# CONFIG_FIRMWARE_EDID is not set 1007# CONFIG_FIRMWARE_EDID is not set
955# CONFIG_FB_DDC is not set 1008# CONFIG_FB_DDC is not set
956# CONFIG_FB_BOOT_VESA_SUPPORT is not set 1009# CONFIG_FB_BOOT_VESA_SUPPORT is not set
957CONFIG_FB_CFB_FILLRECT=m 1010# CONFIG_FB_CFB_FILLRECT is not set
958CONFIG_FB_CFB_COPYAREA=m 1011# CONFIG_FB_CFB_COPYAREA is not set
959CONFIG_FB_CFB_IMAGEBLIT=m 1012# CONFIG_FB_CFB_IMAGEBLIT is not set
960# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 1013# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
961# CONFIG_FB_SYS_FILLRECT is not set 1014CONFIG_FB_SYS_FILLRECT=m
962# CONFIG_FB_SYS_COPYAREA is not set 1015CONFIG_FB_SYS_COPYAREA=m
963# CONFIG_FB_SYS_IMAGEBLIT is not set 1016CONFIG_FB_SYS_IMAGEBLIT=m
964# CONFIG_FB_FOREIGN_ENDIAN is not set 1017# CONFIG_FB_FOREIGN_ENDIAN is not set
965# CONFIG_FB_SYS_FOPS is not set 1018CONFIG_FB_SYS_FOPS=m
1019CONFIG_FB_DEFERRED_IO=y
966# CONFIG_FB_SVGALIB is not set 1020# CONFIG_FB_SVGALIB is not set
967# CONFIG_FB_MACMODES is not set 1021# CONFIG_FB_MACMODES is not set
968# CONFIG_FB_BACKLIGHT is not set 1022# CONFIG_FB_BACKLIGHT is not set
@@ -1000,6 +1054,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m
1000CONFIG_FB_SH_MOBILE_LCDC=m 1054CONFIG_FB_SH_MOBILE_LCDC=m
1001# CONFIG_FB_VIRTUAL is not set 1055# CONFIG_FB_VIRTUAL is not set
1002# CONFIG_FB_METRONOME is not set 1056# CONFIG_FB_METRONOME is not set
1057# CONFIG_FB_MB862XX is not set
1003# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1058# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1004 1059
1005# 1060#
@@ -1034,9 +1089,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1034# 1089#
1035 1090
1036# 1091#
1037# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1092# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1038# 1093#
1039# CONFIG_USB_GADGET is not set 1094# CONFIG_USB_GADGET is not set
1095# CONFIG_UWB is not set
1040# CONFIG_MMC is not set 1096# CONFIG_MMC is not set
1041# CONFIG_MEMSTICK is not set 1097# CONFIG_MEMSTICK is not set
1042# CONFIG_NEW_LEDS is not set 1098# CONFIG_NEW_LEDS is not set
@@ -1072,6 +1128,7 @@ CONFIG_RTC_DRV_RS5C372=y
1072# CONFIG_RTC_DRV_M41T80 is not set 1128# CONFIG_RTC_DRV_M41T80 is not set
1073# CONFIG_RTC_DRV_S35390A is not set 1129# CONFIG_RTC_DRV_S35390A is not set
1074# CONFIG_RTC_DRV_FM3130 is not set 1130# CONFIG_RTC_DRV_FM3130 is not set
1131# CONFIG_RTC_DRV_RX8581 is not set
1075 1132
1076# 1133#
1077# SPI RTC drivers 1134# SPI RTC drivers
@@ -1158,10 +1215,7 @@ CONFIG_TMPFS=y
1158CONFIG_HUGETLBFS=y 1215CONFIG_HUGETLBFS=y
1159CONFIG_HUGETLB_PAGE=y 1216CONFIG_HUGETLB_PAGE=y
1160CONFIG_CONFIGFS_FS=m 1217CONFIG_CONFIGFS_FS=m
1161 1218CONFIG_MISC_FILESYSTEMS=y
1162#
1163# Miscellaneous filesystems
1164#
1165# CONFIG_ADFS_FS is not set 1219# CONFIG_ADFS_FS is not set
1166# CONFIG_AFFS_FS is not set 1220# CONFIG_AFFS_FS is not set
1167# CONFIG_HFS_FS is not set 1221# CONFIG_HFS_FS is not set
@@ -1291,6 +1345,7 @@ CONFIG_DEBUG_INFO=y
1291# CONFIG_DEBUG_MEMORY_INIT is not set 1345# CONFIG_DEBUG_MEMORY_INIT is not set
1292# CONFIG_DEBUG_LIST is not set 1346# CONFIG_DEBUG_LIST is not set
1293# CONFIG_DEBUG_SG is not set 1347# CONFIG_DEBUG_SG is not set
1348# CONFIG_DEBUG_NOTIFIERS is not set
1294CONFIG_FRAME_POINTER=y 1349CONFIG_FRAME_POINTER=y
1295# CONFIG_RCU_TORTURE_TEST is not set 1350# CONFIG_RCU_TORTURE_TEST is not set
1296# CONFIG_KPROBES_SANITY_TEST is not set 1351# CONFIG_KPROBES_SANITY_TEST is not set
@@ -1300,16 +1355,28 @@ CONFIG_FRAME_POINTER=y
1300# CONFIG_FAULT_INJECTION is not set 1355# CONFIG_FAULT_INJECTION is not set
1301# CONFIG_LATENCYTOP is not set 1356# CONFIG_LATENCYTOP is not set
1302CONFIG_NOP_TRACER=y 1357CONFIG_NOP_TRACER=y
1303CONFIG_HAVE_FTRACE=y 1358CONFIG_HAVE_FUNCTION_TRACER=y
1304# CONFIG_FTRACE is not set 1359CONFIG_HAVE_DYNAMIC_FTRACE=y
1360CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1361CONFIG_RING_BUFFER=y
1362CONFIG_TRACING=y
1363
1364#
1365# Tracers
1366#
1367# CONFIG_FUNCTION_TRACER is not set
1305# CONFIG_IRQSOFF_TRACER is not set 1368# CONFIG_IRQSOFF_TRACER is not set
1306# CONFIG_PREEMPT_TRACER is not set 1369# CONFIG_PREEMPT_TRACER is not set
1307# CONFIG_SCHED_TRACER is not set 1370# CONFIG_SCHED_TRACER is not set
1308# CONFIG_CONTEXT_SWITCH_TRACER is not set 1371# CONFIG_CONTEXT_SWITCH_TRACER is not set
1309# CONFIG_BOOT_TRACER is not set 1372# CONFIG_BOOT_TRACER is not set
1373# CONFIG_TRACE_BRANCH_PROFILING is not set
1310# CONFIG_STACK_TRACER is not set 1374# CONFIG_STACK_TRACER is not set
1375# CONFIG_FTRACE_STARTUP_TEST is not set
1311# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1376# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1312# CONFIG_SAMPLES is not set 1377# CONFIG_SAMPLES is not set
1378CONFIG_HAVE_ARCH_KGDB=y
1379# CONFIG_KGDB is not set
1313CONFIG_SH_STANDARD_BIOS=y 1380CONFIG_SH_STANDARD_BIOS=y
1314# CONFIG_EARLY_SCIF_CONSOLE is not set 1381# CONFIG_EARLY_SCIF_CONSOLE is not set
1315CONFIG_EARLY_PRINTK=y 1382CONFIG_EARLY_PRINTK=y
@@ -1318,7 +1385,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
1318CONFIG_DEBUG_STACK_USAGE=y 1385CONFIG_DEBUG_STACK_USAGE=y
1319CONFIG_4KSTACKS=y 1386CONFIG_4KSTACKS=y
1320# CONFIG_IRQSTACKS is not set 1387# CONFIG_IRQSTACKS is not set
1321# CONFIG_SH_KGDB is not set 1388CONFIG_DUMP_CODE=y
1389# CONFIG_SH_NO_BSS_INIT is not set
1390# CONFIG_MORE_COMPILE_OPTIONS is not set
1322 1391
1323# 1392#
1324# Security options 1393# Security options
@@ -1334,11 +1403,15 @@ CONFIG_CRYPTO=y
1334# 1403#
1335# CONFIG_CRYPTO_FIPS is not set 1404# CONFIG_CRYPTO_FIPS is not set
1336CONFIG_CRYPTO_ALGAPI=y 1405CONFIG_CRYPTO_ALGAPI=y
1337CONFIG_CRYPTO_AEAD=y 1406CONFIG_CRYPTO_ALGAPI2=y
1407CONFIG_CRYPTO_AEAD2=y
1338CONFIG_CRYPTO_BLKCIPHER=y 1408CONFIG_CRYPTO_BLKCIPHER=y
1409CONFIG_CRYPTO_BLKCIPHER2=y
1339CONFIG_CRYPTO_HASH=y 1410CONFIG_CRYPTO_HASH=y
1340CONFIG_CRYPTO_RNG=y 1411CONFIG_CRYPTO_HASH2=y
1412CONFIG_CRYPTO_RNG2=y
1341CONFIG_CRYPTO_MANAGER=y 1413CONFIG_CRYPTO_MANAGER=y
1414CONFIG_CRYPTO_MANAGER2=y
1342# CONFIG_CRYPTO_GF128MUL is not set 1415# CONFIG_CRYPTO_GF128MUL is not set
1343# CONFIG_CRYPTO_NULL is not set 1416# CONFIG_CRYPTO_NULL is not set
1344# CONFIG_CRYPTO_CRYPTD is not set 1417# CONFIG_CRYPTO_CRYPTD is not set
@@ -1422,6 +1495,7 @@ CONFIG_CRYPTO_HW=y
1422# Library routines 1495# Library routines
1423# 1496#
1424CONFIG_BITREVERSE=y 1497CONFIG_BITREVERSE=y
1498CONFIG_GENERIC_FIND_LAST_BIT=y
1425# CONFIG_CRC_CCITT is not set 1499# CONFIG_CRC_CCITT is not set
1426# CONFIG_CRC16 is not set 1500# CONFIG_CRC16 is not set
1427CONFIG_CRC_T10DIF=y 1501CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/rsk7201_defconfig b/arch/sh/configs/rsk7201_defconfig
index 014c18cbf46a..64ee69eef47c 100644
--- a/arch/sh/configs/rsk7201_defconfig
+++ b/arch/sh/configs/rsk7201_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.28-rc6 3# Linux kernel version: 2.6.28
4# Mon Dec 8 14:48:02 2008 4# Fri Jan 9 17:19:04 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -77,6 +77,7 @@ CONFIG_VM_EVENT_COUNTERS=y
77# CONFIG_SLUB is not set 77# CONFIG_SLUB is not set
78CONFIG_SLOB=y 78CONFIG_SLOB=y
79CONFIG_PROFILING=y 79CONFIG_PROFILING=y
80CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 81# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 82CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 83CONFIG_HAVE_OPROFILE=y
@@ -87,18 +88,15 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
87CONFIG_HAVE_CLK=y 88CONFIG_HAVE_CLK=y
88CONFIG_HAVE_GENERIC_DMA_COHERENT=y 89CONFIG_HAVE_GENERIC_DMA_COHERENT=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90CONFIG_TINY_SHMEM=y
91CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
94# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
95# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
96# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
97CONFIG_KMOD=y
98CONFIG_BLOCK=y 97CONFIG_BLOCK=y
99# CONFIG_LBD is not set 98# CONFIG_LBD is not set
100# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
101# CONFIG_LSF is not set
102# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
103# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
104 102
@@ -115,6 +113,10 @@ CONFIG_IOSCHED_NOOP=y
115CONFIG_DEFAULT_NOOP=y 113CONFIG_DEFAULT_NOOP=y
116CONFIG_DEFAULT_IOSCHED="noop" 114CONFIG_DEFAULT_IOSCHED="noop"
117CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
118# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
119 121
120# 122#
@@ -185,7 +187,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
185CONFIG_SPARSEMEM_STATIC=y 187CONFIG_SPARSEMEM_STATIC=y
186CONFIG_PAGEFLAGS_EXTENDED=y 188CONFIG_PAGEFLAGS_EXTENDED=y
187CONFIG_SPLIT_PTLOCK_CPUS=4 189CONFIG_SPLIT_PTLOCK_CPUS=4
188# CONFIG_RESOURCES_64BIT is not set
189# CONFIG_PHYS_ADDR_T_64BIT is not set 190# CONFIG_PHYS_ADDR_T_64BIT is not set
190CONFIG_ZONE_DMA_FLAG=0 191CONFIG_ZONE_DMA_FLAG=0
191CONFIG_NR_QUICK=2 192CONFIG_NR_QUICK=2
@@ -563,7 +564,6 @@ CONFIG_RTC_DRV_SH=y
563# CONFIG_DMADEVICES is not set 564# CONFIG_DMADEVICES is not set
564# CONFIG_UIO is not set 565# CONFIG_UIO is not set
565# CONFIG_STAGING is not set 566# CONFIG_STAGING is not set
566CONFIG_STAGING_EXCLUDE_BUILD=y
567 567
568# 568#
569# File systems 569# File systems
@@ -606,10 +606,7 @@ CONFIG_SYSFS=y
606# CONFIG_TMPFS is not set 606# CONFIG_TMPFS is not set
607# CONFIG_HUGETLB_PAGE is not set 607# CONFIG_HUGETLB_PAGE is not set
608# CONFIG_CONFIGFS_FS is not set 608# CONFIG_CONFIGFS_FS is not set
609 609CONFIG_MISC_FILESYSTEMS=y
610#
611# Miscellaneous filesystems
612#
613# CONFIG_ADFS_FS is not set 610# CONFIG_ADFS_FS is not set
614# CONFIG_AFFS_FS is not set 611# CONFIG_AFFS_FS is not set
615# CONFIG_HFS_FS is not set 612# CONFIG_HFS_FS is not set
@@ -658,22 +655,28 @@ CONFIG_MAGIC_SYSRQ=y
658CONFIG_DEBUG_FS=y 655CONFIG_DEBUG_FS=y
659# CONFIG_HEADERS_CHECK is not set 656# CONFIG_HEADERS_CHECK is not set
660# CONFIG_DEBUG_KERNEL is not set 657# CONFIG_DEBUG_KERNEL is not set
658CONFIG_STACKTRACE=y
661# CONFIG_DEBUG_BUGVERBOSE is not set 659# CONFIG_DEBUG_BUGVERBOSE is not set
662# CONFIG_DEBUG_MEMORY_INIT is not set 660# CONFIG_DEBUG_MEMORY_INIT is not set
663# CONFIG_RCU_CPU_STALL_DETECTOR is not set 661# CONFIG_RCU_CPU_STALL_DETECTOR is not set
664# CONFIG_LATENCYTOP is not set 662# CONFIG_LATENCYTOP is not set
665CONFIG_SYSCTL_SYSCALL_CHECK=y 663CONFIG_SYSCTL_SYSCALL_CHECK=y
664CONFIG_NOP_TRACER=y
666CONFIG_HAVE_FUNCTION_TRACER=y 665CONFIG_HAVE_FUNCTION_TRACER=y
667CONFIG_HAVE_DYNAMIC_FTRACE=y 666CONFIG_HAVE_DYNAMIC_FTRACE=y
668CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 667CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
668CONFIG_RING_BUFFER=y
669CONFIG_TRACING=y
669 670
670# 671#
671# Tracers 672# Tracers
672# 673#
673# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 674# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
674# CONFIG_SAMPLES is not set 675# CONFIG_SAMPLES is not set
676CONFIG_HAVE_ARCH_KGDB=y
675# CONFIG_SH_STANDARD_BIOS is not set 677# CONFIG_SH_STANDARD_BIOS is not set
676# CONFIG_EARLY_SCIF_CONSOLE is not set 678# CONFIG_EARLY_SCIF_CONSOLE is not set
679# CONFIG_MORE_COMPILE_OPTIONS is not set
677 680
678# 681#
679# Security options 682# Security options
@@ -688,6 +691,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
688# Library routines 691# Library routines
689# 692#
690CONFIG_BITREVERSE=y 693CONFIG_BITREVERSE=y
694CONFIG_GENERIC_FIND_LAST_BIT=y
691# CONFIG_CRC_CCITT is not set 695# CONFIG_CRC_CCITT is not set
692# CONFIG_CRC16 is not set 696# CONFIG_CRC16 is not set
693# CONFIG_CRC_T10DIF is not set 697# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/rsk7203_defconfig b/arch/sh/configs/rsk7203_defconfig
index dcdef31cf19b..8d7a5972a86a 100644
--- a/arch/sh/configs/rsk7203_defconfig
+++ b/arch/sh/configs/rsk7203_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.28-rc6 3# Linux kernel version: 2.6.28
4# Mon Dec 8 14:35:03 2008 4# Fri Jan 9 17:20:31 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -62,6 +62,7 @@ CONFIG_UID16=y
62CONFIG_SYSCTL_SYSCALL=y 62CONFIG_SYSCTL_SYSCALL=y
63CONFIG_KALLSYMS=y 63CONFIG_KALLSYMS=y
64CONFIG_KALLSYMS_ALL=y 64CONFIG_KALLSYMS_ALL=y
65CONFIG_KALLSYMS_STRIP_GENERATED=y
65# CONFIG_KALLSYMS_EXTRA_PASS is not set 66# CONFIG_KALLSYMS_EXTRA_PASS is not set
66CONFIG_HOTPLUG=y 67CONFIG_HOTPLUG=y
67CONFIG_PRINTK=y 68CONFIG_PRINTK=y
@@ -81,6 +82,7 @@ CONFIG_VM_EVENT_COUNTERS=y
81# CONFIG_SLUB is not set 82# CONFIG_SLUB is not set
82CONFIG_SLOB=y 83CONFIG_SLOB=y
83CONFIG_PROFILING=y 84CONFIG_PROFILING=y
85CONFIG_TRACEPOINTS=y
84# CONFIG_MARKERS is not set 86# CONFIG_MARKERS is not set
85CONFIG_OPROFILE=y 87CONFIG_OPROFILE=y
86CONFIG_HAVE_OPROFILE=y 88CONFIG_HAVE_OPROFILE=y
@@ -91,18 +93,15 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
91CONFIG_HAVE_CLK=y 93CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 94CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
94CONFIG_TINY_SHMEM=y
95CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
96CONFIG_MODULES=y 97CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
98# CONFIG_MODULE_UNLOAD is not set 99# CONFIG_MODULE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 102CONFIG_BLOCK=y
103# CONFIG_LBD is not set 103# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 104# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 105# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 106# CONFIG_BLK_DEV_INTEGRITY is not set
108 107
@@ -119,6 +118,10 @@ CONFIG_IOSCHED_NOOP=y
119CONFIG_DEFAULT_NOOP=y 118CONFIG_DEFAULT_NOOP=y
120CONFIG_DEFAULT_IOSCHED="noop" 119CONFIG_DEFAULT_IOSCHED="noop"
121CONFIG_CLASSIC_RCU=y 120CONFIG_CLASSIC_RCU=y
121# CONFIG_TREE_RCU is not set
122# CONFIG_PREEMPT_RCU is not set
123# CONFIG_TREE_RCU_TRACE is not set
124# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 125# CONFIG_FREEZER is not set
123 126
124# 127#
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -313,6 +315,8 @@ CONFIG_NET=y
313# 315#
314# Networking options 316# Networking options
315# 317#
318# CONFIG_NET_NS is not set
319CONFIG_COMPAT_NET_DEV_OPS=y
316# CONFIG_PACKET is not set 320# CONFIG_PACKET is not set
317# CONFIG_UNIX is not set 321# CONFIG_UNIX is not set
318# CONFIG_NET_KEY is not set 322# CONFIG_NET_KEY is not set
@@ -361,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
361# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
362# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
363# CONFIG_NET_SCHED is not set 367# CONFIG_NET_SCHED is not set
368# CONFIG_DCB is not set
364 369
365# 370#
366# Network testing 371# Network testing
@@ -376,8 +381,8 @@ CONFIG_WIRELESS=y
376# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
377# CONFIG_WIRELESS_OLD_REGULATORY is not set 382# CONFIG_WIRELESS_OLD_REGULATORY is not set
378# CONFIG_WIRELESS_EXT is not set 383# CONFIG_WIRELESS_EXT is not set
384# CONFIG_LIB80211 is not set
379# CONFIG_MAC80211 is not set 385# CONFIG_MAC80211 is not set
380# CONFIG_IEEE80211 is not set
381# CONFIG_RFKILL is not set 386# CONFIG_RFKILL is not set
382# CONFIG_NET_9P is not set 387# CONFIG_NET_9P is not set
383 388
@@ -509,13 +514,33 @@ CONFIG_NETDEVICES=y
509# CONFIG_EQUALIZER is not set 514# CONFIG_EQUALIZER is not set
510# CONFIG_TUN is not set 515# CONFIG_TUN is not set
511# CONFIG_VETH is not set 516# CONFIG_VETH is not set
512# CONFIG_PHYLIB is not set 517CONFIG_PHYLIB=y
518
519#
520# MII PHY device drivers
521#
522# CONFIG_MARVELL_PHY is not set
523# CONFIG_DAVICOM_PHY is not set
524# CONFIG_QSEMI_PHY is not set
525# CONFIG_LXT_PHY is not set
526# CONFIG_CICADA_PHY is not set
527# CONFIG_VITESSE_PHY is not set
528CONFIG_SMSC_PHY=y
529# CONFIG_BROADCOM_PHY is not set
530# CONFIG_ICPLUS_PHY is not set
531# CONFIG_REALTEK_PHY is not set
532# CONFIG_NATIONAL_PHY is not set
533# CONFIG_STE10XP is not set
534# CONFIG_LSI_ET1011C_PHY is not set
535# CONFIG_FIXED_PHY is not set
536# CONFIG_MDIO_BITBANG is not set
513CONFIG_NET_ETHERNET=y 537CONFIG_NET_ETHERNET=y
514CONFIG_MII=y 538CONFIG_MII=y
515# CONFIG_AX88796 is not set 539# CONFIG_AX88796 is not set
516# CONFIG_STNIC is not set 540# CONFIG_STNIC is not set
517# CONFIG_SMC91X is not set 541# CONFIG_SMC91X is not set
518CONFIG_SMC911X=y 542# CONFIG_SMC911X is not set
543CONFIG_SMSC911X=y
519# CONFIG_IBM_NEW_EMAC_ZMII is not set 544# CONFIG_IBM_NEW_EMAC_ZMII is not set
520# CONFIG_IBM_NEW_EMAC_RGMII is not set 545# CONFIG_IBM_NEW_EMAC_RGMII is not set
521# CONFIG_IBM_NEW_EMAC_TAH is not set 546# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -611,6 +636,26 @@ CONFIG_SERIAL_CORE_CONSOLE=y
611# CONFIG_TCG_TPM is not set 636# CONFIG_TCG_TPM is not set
612# CONFIG_I2C is not set 637# CONFIG_I2C is not set
613# CONFIG_SPI is not set 638# CONFIG_SPI is not set
639CONFIG_ARCH_REQUIRE_GPIOLIB=y
640CONFIG_GPIOLIB=y
641# CONFIG_DEBUG_GPIO is not set
642# CONFIG_GPIO_SYSFS is not set
643
644#
645# Memory mapped GPIO expanders:
646#
647
648#
649# I2C GPIO expanders:
650#
651
652#
653# PCI GPIO expanders:
654#
655
656#
657# SPI GPIO expanders:
658#
614# CONFIG_W1 is not set 659# CONFIG_W1 is not set
615# CONFIG_POWER_SUPPLY is not set 660# CONFIG_POWER_SUPPLY is not set
616# CONFIG_HWMON is not set 661# CONFIG_HWMON is not set
@@ -685,11 +730,9 @@ CONFIG_HID_COMPAT=y
685CONFIG_HID_A4TECH=y 730CONFIG_HID_A4TECH=y
686CONFIG_HID_APPLE=y 731CONFIG_HID_APPLE=y
687CONFIG_HID_BELKIN=y 732CONFIG_HID_BELKIN=y
688CONFIG_HID_BRIGHT=y
689CONFIG_HID_CHERRY=y 733CONFIG_HID_CHERRY=y
690CONFIG_HID_CHICONY=y 734CONFIG_HID_CHICONY=y
691CONFIG_HID_CYPRESS=y 735CONFIG_HID_CYPRESS=y
692CONFIG_HID_DELL=y
693CONFIG_HID_EZKEY=y 736CONFIG_HID_EZKEY=y
694CONFIG_HID_GYRATION=y 737CONFIG_HID_GYRATION=y
695CONFIG_HID_LOGITECH=y 738CONFIG_HID_LOGITECH=y
@@ -697,12 +740,15 @@ CONFIG_HID_LOGITECH=y
697# CONFIG_LOGIRUMBLEPAD2_FF is not set 740# CONFIG_LOGIRUMBLEPAD2_FF is not set
698CONFIG_HID_MICROSOFT=y 741CONFIG_HID_MICROSOFT=y
699CONFIG_HID_MONTEREY=y 742CONFIG_HID_MONTEREY=y
743# CONFIG_HID_NTRIG is not set
700CONFIG_HID_PANTHERLORD=y 744CONFIG_HID_PANTHERLORD=y
701# CONFIG_PANTHERLORD_FF is not set 745# CONFIG_PANTHERLORD_FF is not set
702CONFIG_HID_PETALYNX=y 746CONFIG_HID_PETALYNX=y
703CONFIG_HID_SAMSUNG=y 747CONFIG_HID_SAMSUNG=y
704CONFIG_HID_SONY=y 748CONFIG_HID_SONY=y
705CONFIG_HID_SUNPLUS=y 749CONFIG_HID_SUNPLUS=y
750# CONFIG_GREENASIA_FF is not set
751# CONFIG_HID_TOPSEED is not set
706CONFIG_THRUSTMASTER_FF=m 752CONFIG_THRUSTMASTER_FF=m
707CONFIG_ZEROPLUS_FF=m 753CONFIG_ZEROPLUS_FF=m
708CONFIG_USB_SUPPORT=y 754CONFIG_USB_SUPPORT=y
@@ -847,7 +893,6 @@ CONFIG_RTC_DRV_SH=y
847# CONFIG_DMADEVICES is not set 893# CONFIG_DMADEVICES is not set
848# CONFIG_UIO is not set 894# CONFIG_UIO is not set
849# CONFIG_STAGING is not set 895# CONFIG_STAGING is not set
850CONFIG_STAGING_EXCLUDE_BUILD=y
851 896
852# 897#
853# File systems 898# File systems
@@ -890,10 +935,7 @@ CONFIG_SYSFS=y
890# CONFIG_TMPFS is not set 935# CONFIG_TMPFS is not set
891# CONFIG_HUGETLB_PAGE is not set 936# CONFIG_HUGETLB_PAGE is not set
892# CONFIG_CONFIGFS_FS is not set 937# CONFIG_CONFIGFS_FS is not set
893 938CONFIG_MISC_FILESYSTEMS=y
894#
895# Miscellaneous filesystems
896#
897# CONFIG_ADFS_FS is not set 939# CONFIG_ADFS_FS is not set
898# CONFIG_AFFS_FS is not set 940# CONFIG_AFFS_FS is not set
899# CONFIG_HFS_FS is not set 941# CONFIG_HFS_FS is not set
@@ -961,6 +1003,7 @@ CONFIG_DEBUG_OBJECTS=y
961# CONFIG_DEBUG_OBJECTS_SELFTEST is not set 1003# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
962# CONFIG_DEBUG_OBJECTS_FREE is not set 1004# CONFIG_DEBUG_OBJECTS_FREE is not set
963# CONFIG_DEBUG_OBJECTS_TIMERS is not set 1005# CONFIG_DEBUG_OBJECTS_TIMERS is not set
1006CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
964# CONFIG_DEBUG_RT_MUTEXES is not set 1007# CONFIG_DEBUG_RT_MUTEXES is not set
965# CONFIG_RT_MUTEX_TESTER is not set 1008# CONFIG_RT_MUTEX_TESTER is not set
966# CONFIG_DEBUG_SPINLOCK is not set 1009# CONFIG_DEBUG_SPINLOCK is not set
@@ -970,6 +1013,7 @@ CONFIG_DEBUG_MUTEXES=y
970# CONFIG_LOCK_STAT is not set 1013# CONFIG_LOCK_STAT is not set
971CONFIG_DEBUG_SPINLOCK_SLEEP=y 1014CONFIG_DEBUG_SPINLOCK_SLEEP=y
972# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1015# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1016CONFIG_STACKTRACE=y
973# CONFIG_DEBUG_KOBJECT is not set 1017# CONFIG_DEBUG_KOBJECT is not set
974CONFIG_DEBUG_BUGVERBOSE=y 1018CONFIG_DEBUG_BUGVERBOSE=y
975CONFIG_DEBUG_INFO=y 1019CONFIG_DEBUG_INFO=y
@@ -978,6 +1022,7 @@ CONFIG_DEBUG_WRITECOUNT=y
978# CONFIG_DEBUG_MEMORY_INIT is not set 1022# CONFIG_DEBUG_MEMORY_INIT is not set
979CONFIG_DEBUG_LIST=y 1023CONFIG_DEBUG_LIST=y
980CONFIG_DEBUG_SG=y 1024CONFIG_DEBUG_SG=y
1025# CONFIG_DEBUG_NOTIFIERS is not set
981CONFIG_FRAME_POINTER=y 1026CONFIG_FRAME_POINTER=y
982# CONFIG_RCU_TORTURE_TEST is not set 1027# CONFIG_RCU_TORTURE_TEST is not set
983# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1028# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -986,9 +1031,12 @@ CONFIG_FRAME_POINTER=y
986# CONFIG_FAULT_INJECTION is not set 1031# CONFIG_FAULT_INJECTION is not set
987# CONFIG_LATENCYTOP is not set 1032# CONFIG_LATENCYTOP is not set
988CONFIG_SYSCTL_SYSCALL_CHECK=y 1033CONFIG_SYSCTL_SYSCALL_CHECK=y
1034CONFIG_NOP_TRACER=y
989CONFIG_HAVE_FUNCTION_TRACER=y 1035CONFIG_HAVE_FUNCTION_TRACER=y
990CONFIG_HAVE_DYNAMIC_FTRACE=y 1036CONFIG_HAVE_DYNAMIC_FTRACE=y
991CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1037CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1038CONFIG_RING_BUFFER=y
1039CONFIG_TRACING=y
992 1040
993# 1041#
994# Tracers 1042# Tracers
@@ -997,9 +1045,13 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
997# CONFIG_SCHED_TRACER is not set 1045# CONFIG_SCHED_TRACER is not set
998# CONFIG_CONTEXT_SWITCH_TRACER is not set 1046# CONFIG_CONTEXT_SWITCH_TRACER is not set
999# CONFIG_BOOT_TRACER is not set 1047# CONFIG_BOOT_TRACER is not set
1048# CONFIG_TRACE_BRANCH_PROFILING is not set
1000# CONFIG_STACK_TRACER is not set 1049# CONFIG_STACK_TRACER is not set
1050# CONFIG_FTRACE_STARTUP_TEST is not set
1001# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1051# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1002# CONFIG_SAMPLES is not set 1052# CONFIG_SAMPLES is not set
1053CONFIG_HAVE_ARCH_KGDB=y
1054# CONFIG_KGDB is not set
1003# CONFIG_SH_STANDARD_BIOS is not set 1055# CONFIG_SH_STANDARD_BIOS is not set
1004CONFIG_EARLY_SCIF_CONSOLE=y 1056CONFIG_EARLY_SCIF_CONSOLE=y
1005CONFIG_EARLY_SCIF_CONSOLE_PORT=0xfffe8000 1057CONFIG_EARLY_SCIF_CONSOLE_PORT=0xfffe8000
@@ -1008,6 +1060,9 @@ CONFIG_DEBUG_BOOTMEM=y
1008CONFIG_DEBUG_STACKOVERFLOW=y 1060CONFIG_DEBUG_STACKOVERFLOW=y
1009CONFIG_DEBUG_STACK_USAGE=y 1061CONFIG_DEBUG_STACK_USAGE=y
1010# CONFIG_IRQSTACKS is not set 1062# CONFIG_IRQSTACKS is not set
1063CONFIG_DUMP_CODE=y
1064# CONFIG_SH_NO_BSS_INIT is not set
1065# CONFIG_MORE_COMPILE_OPTIONS is not set
1011 1066
1012# 1067#
1013# Security options 1068# Security options
@@ -1022,6 +1077,7 @@ CONFIG_DEBUG_STACK_USAGE=y
1022# Library routines 1077# Library routines
1023# 1078#
1024CONFIG_BITREVERSE=y 1079CONFIG_BITREVERSE=y
1080CONFIG_GENERIC_FIND_LAST_BIT=y
1025# CONFIG_CRC_CCITT is not set 1081# CONFIG_CRC_CCITT is not set
1026# CONFIG_CRC16 is not set 1082# CONFIG_CRC16 is not set
1027# CONFIG_CRC_T10DIF is not set 1083# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/rts7751r2d1_defconfig b/arch/sh/configs/rts7751r2d1_defconfig
index 7d2a9e88838b..d6680f4382c2 100644
--- a/arch/sh/configs/rts7751r2d1_defconfig
+++ b/arch/sh/configs/rts7751r2d1_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:44:36 2008 4# Fri Jan 9 17:23:15 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -77,6 +79,7 @@ CONFIG_SLAB=y
77# CONFIG_SLUB is not set 79# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 80# CONFIG_SLOB is not set
79CONFIG_PROFILING=y 81CONFIG_PROFILING=y
82CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 83# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 84CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
@@ -89,18 +92,15 @@ CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 92CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 96CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
96# CONFIG_MODULE_UNLOAD is not set 98# CONFIG_MODULE_UNLOAD is not set
97# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 101CONFIG_BLOCK=y
101# CONFIG_LBD is not set 102# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
106 106
@@ -117,6 +117,10 @@ CONFIG_DEFAULT_AS=y
117# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
119CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
121 125
122# 126#
@@ -124,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
124# 128#
125CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
126# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
127# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
128# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
129# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -187,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
187CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
188CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
189CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
190# CONFIG_RESOURCES_64BIT is not set
191# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
192CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
193CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -293,6 +297,7 @@ CONFIG_PCI=y
293CONFIG_SH_PCIDMA_NONCOHERENT=y 297CONFIG_SH_PCIDMA_NONCOHERENT=y
294CONFIG_PCI_AUTO=y 298CONFIG_PCI_AUTO=y
295CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 299CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
300# CONFIG_PCIEPORTBUS is not set
296# CONFIG_ARCH_SUPPORTS_MSI is not set 301# CONFIG_ARCH_SUPPORTS_MSI is not set
297CONFIG_PCI_LEGACY=y 302CONFIG_PCI_LEGACY=y
298# CONFIG_PCCARD is not set 303# CONFIG_PCCARD is not set
@@ -308,11 +313,18 @@ CONFIG_BINFMT_ELF=y
308# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 313# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
309# CONFIG_HAVE_AOUT is not set 314# CONFIG_HAVE_AOUT is not set
310# CONFIG_BINFMT_MISC is not set 315# CONFIG_BINFMT_MISC is not set
316
317#
318# Power management options (EXPERIMENTAL)
319#
320# CONFIG_PM is not set
321# CONFIG_CPU_IDLE is not set
311CONFIG_NET=y 322CONFIG_NET=y
312 323
313# 324#
314# Networking options 325# Networking options
315# 326#
327CONFIG_COMPAT_NET_DEV_OPS=y
316CONFIG_PACKET=y 328CONFIG_PACKET=y
317# CONFIG_PACKET_MMAP is not set 329# CONFIG_PACKET_MMAP is not set
318CONFIG_UNIX=y 330CONFIG_UNIX=y
@@ -365,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
365# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
366# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
367# CONFIG_NET_SCHED is not set 379# CONFIG_NET_SCHED is not set
380# CONFIG_DCB is not set
368 381
369# 382#
370# Network testing 383# Network testing
@@ -381,8 +394,8 @@ CONFIG_WIRELESS=y
381# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
382CONFIG_WIRELESS_EXT=y 395CONFIG_WIRELESS_EXT=y
383CONFIG_WIRELESS_EXT_SYSFS=y 396CONFIG_WIRELESS_EXT_SYSFS=y
397# CONFIG_LIB80211 is not set
384# CONFIG_MAC80211 is not set 398# CONFIG_MAC80211 is not set
385# CONFIG_IEEE80211 is not set
386# CONFIG_RFKILL is not set 399# CONFIG_RFKILL is not set
387# CONFIG_NET_9P is not set 400# CONFIG_NET_9P is not set
388 401
@@ -426,6 +439,7 @@ CONFIG_MISC_DEVICES=y
426# CONFIG_TIFM_CORE is not set 439# CONFIG_TIFM_CORE is not set
427# CONFIG_ENCLOSURE_SERVICES is not set 440# CONFIG_ENCLOSURE_SERVICES is not set
428# CONFIG_HP_ILO is not set 441# CONFIG_HP_ILO is not set
442# CONFIG_C2PORT is not set
429CONFIG_HAVE_IDE=y 443CONFIG_HAVE_IDE=y
430# CONFIG_IDE is not set 444# CONFIG_IDE is not set
431 445
@@ -468,6 +482,7 @@ CONFIG_SCSI_WAIT_SCAN=m
468# CONFIG_SCSI_SRP_ATTRS is not set 482# CONFIG_SCSI_SRP_ATTRS is not set
469CONFIG_SCSI_LOWLEVEL=y 483CONFIG_SCSI_LOWLEVEL=y
470# CONFIG_ISCSI_TCP is not set 484# CONFIG_ISCSI_TCP is not set
485# CONFIG_SCSI_CXGB3_ISCSI is not set
471# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 486# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
472# CONFIG_SCSI_3W_9XXX is not set 487# CONFIG_SCSI_3W_9XXX is not set
473# CONFIG_SCSI_ACARD is not set 488# CONFIG_SCSI_ACARD is not set
@@ -481,6 +496,8 @@ CONFIG_SCSI_LOWLEVEL=y
481# CONFIG_MEGARAID_LEGACY is not set 496# CONFIG_MEGARAID_LEGACY is not set
482# CONFIG_MEGARAID_SAS is not set 497# CONFIG_MEGARAID_SAS is not set
483# CONFIG_SCSI_HPTIOP is not set 498# CONFIG_SCSI_HPTIOP is not set
499# CONFIG_LIBFC is not set
500# CONFIG_FCOE is not set
484# CONFIG_SCSI_DMX3191D is not set 501# CONFIG_SCSI_DMX3191D is not set
485# CONFIG_SCSI_FUTURE_DOMAIN is not set 502# CONFIG_SCSI_FUTURE_DOMAIN is not set
486# CONFIG_SCSI_IPS is not set 503# CONFIG_SCSI_IPS is not set
@@ -593,6 +610,7 @@ CONFIG_MII=y
593# CONFIG_SMC91X is not set 610# CONFIG_SMC91X is not set
594# CONFIG_ENC28J60 is not set 611# CONFIG_ENC28J60 is not set
595# CONFIG_SMC911X is not set 612# CONFIG_SMC911X is not set
613# CONFIG_SMSC911X is not set
596# CONFIG_NET_TULIP is not set 614# CONFIG_NET_TULIP is not set
597# CONFIG_HP100 is not set 615# CONFIG_HP100 is not set
598# CONFIG_IBM_NEW_EMAC_ZMII is not set 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -608,7 +626,6 @@ CONFIG_NET_PCI=y
608# CONFIG_ADAPTEC_STARFIRE is not set 626# CONFIG_ADAPTEC_STARFIRE is not set
609# CONFIG_B44 is not set 627# CONFIG_B44 is not set
610# CONFIG_FORCEDETH is not set 628# CONFIG_FORCEDETH is not set
611# CONFIG_EEPRO100 is not set
612# CONFIG_E100 is not set 629# CONFIG_E100 is not set
613# CONFIG_FEALNX is not set 630# CONFIG_FEALNX is not set
614# CONFIG_NATSEMI is not set 631# CONFIG_NATSEMI is not set
@@ -622,6 +639,7 @@ CONFIG_8139TOO=y
622# CONFIG_R6040 is not set 639# CONFIG_R6040 is not set
623# CONFIG_SIS900 is not set 640# CONFIG_SIS900 is not set
624# CONFIG_EPIC100 is not set 641# CONFIG_EPIC100 is not set
642# CONFIG_SMSC9420 is not set
625# CONFIG_SUNDANCE is not set 643# CONFIG_SUNDANCE is not set
626# CONFIG_TLAN is not set 644# CONFIG_TLAN is not set
627# CONFIG_VIA_RHINE is not set 645# CONFIG_VIA_RHINE is not set
@@ -650,6 +668,7 @@ CONFIG_NETDEV_1000=y
650# CONFIG_JME is not set 668# CONFIG_JME is not set
651CONFIG_NETDEV_10000=y 669CONFIG_NETDEV_10000=y
652# CONFIG_CHELSIO_T1 is not set 670# CONFIG_CHELSIO_T1 is not set
671CONFIG_CHELSIO_T3_DEPENDS=y
653# CONFIG_CHELSIO_T3 is not set 672# CONFIG_CHELSIO_T3 is not set
654# CONFIG_ENIC is not set 673# CONFIG_ENIC is not set
655# CONFIG_IXGBE is not set 674# CONFIG_IXGBE is not set
@@ -658,6 +677,7 @@ CONFIG_NETDEV_10000=y
658# CONFIG_MYRI10GE is not set 677# CONFIG_MYRI10GE is not set
659# CONFIG_NETXEN_NIC is not set 678# CONFIG_NETXEN_NIC is not set
660# CONFIG_NIU is not set 679# CONFIG_NIU is not set
680# CONFIG_MLX4_EN is not set
661# CONFIG_MLX4_CORE is not set 681# CONFIG_MLX4_CORE is not set
662# CONFIG_TEHUTI is not set 682# CONFIG_TEHUTI is not set
663# CONFIG_BNX2X is not set 683# CONFIG_BNX2X is not set
@@ -755,6 +775,7 @@ CONFIG_SERIAL_CORE=y
755CONFIG_SERIAL_CORE_CONSOLE=y 775CONFIG_SERIAL_CORE_CONSOLE=y
756# CONFIG_SERIAL_JSM is not set 776# CONFIG_SERIAL_JSM is not set
757CONFIG_UNIX98_PTYS=y 777CONFIG_UNIX98_PTYS=y
778# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
758CONFIG_LEGACY_PTYS=y 779CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 780CONFIG_LEGACY_PTY_COUNT=256
760# CONFIG_IPMI_HANDLER is not set 781# CONFIG_IPMI_HANDLER is not set
@@ -777,7 +798,7 @@ CONFIG_SPI_SH_SCI=y
777# 798#
778# SPI Protocol Masters 799# SPI Protocol Masters
779# 800#
780# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
781# CONFIG_SPI_SPIDEV is not set 802# CONFIG_SPI_SPIDEV is not set
782# CONFIG_SPI_TLE62X0 is not set 803# CONFIG_SPI_TLE62X0 is not set
783# CONFIG_W1 is not set 804# CONFIG_W1 is not set
@@ -805,11 +826,11 @@ CONFIG_HWMON=y
805# CONFIG_THERMAL is not set 826# CONFIG_THERMAL is not set
806# CONFIG_THERMAL_HWMON is not set 827# CONFIG_THERMAL_HWMON is not set
807# CONFIG_WATCHDOG is not set 828# CONFIG_WATCHDOG is not set
829CONFIG_SSB_POSSIBLE=y
808 830
809# 831#
810# Sonics Silicon Backplane 832# Sonics Silicon Backplane
811# 833#
812CONFIG_SSB_POSSIBLE=y
813# CONFIG_SSB is not set 834# CONFIG_SSB is not set
814 835
815# 836#
@@ -819,7 +840,7 @@ CONFIG_SSB_POSSIBLE=y
819CONFIG_MFD_SM501=y 840CONFIG_MFD_SM501=y
820# CONFIG_HTC_PASIC3 is not set 841# CONFIG_HTC_PASIC3 is not set
821# CONFIG_MFD_TMIO is not set 842# CONFIG_MFD_TMIO is not set
822# CONFIG_MFD_WM8400 is not set 843# CONFIG_REGULATOR is not set
823 844
824# 845#
825# Multimedia devices 846# Multimedia devices
@@ -852,11 +873,12 @@ CONFIG_FB_CFB_FILLRECT=y
852CONFIG_FB_CFB_COPYAREA=y 873CONFIG_FB_CFB_COPYAREA=y
853CONFIG_FB_CFB_IMAGEBLIT=y 874CONFIG_FB_CFB_IMAGEBLIT=y
854# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 875# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
855# CONFIG_FB_SYS_FILLRECT is not set 876CONFIG_FB_SYS_FILLRECT=m
856# CONFIG_FB_SYS_COPYAREA is not set 877CONFIG_FB_SYS_COPYAREA=m
857# CONFIG_FB_SYS_IMAGEBLIT is not set 878CONFIG_FB_SYS_IMAGEBLIT=m
858# CONFIG_FB_FOREIGN_ENDIAN is not set 879# CONFIG_FB_FOREIGN_ENDIAN is not set
859# CONFIG_FB_SYS_FOPS is not set 880CONFIG_FB_SYS_FOPS=m
881CONFIG_FB_DEFERRED_IO=y
860# CONFIG_FB_SVGALIB is not set 882# CONFIG_FB_SVGALIB is not set
861# CONFIG_FB_MACMODES is not set 883# CONFIG_FB_MACMODES is not set
862# CONFIG_FB_BACKLIGHT is not set 884# CONFIG_FB_BACKLIGHT is not set
@@ -895,6 +917,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
895CONFIG_FB_SM501=y 917CONFIG_FB_SM501=y
896# CONFIG_FB_VIRTUAL is not set 918# CONFIG_FB_VIRTUAL is not set
897# CONFIG_FB_METRONOME is not set 919# CONFIG_FB_METRONOME is not set
920# CONFIG_FB_MB862XX is not set
898# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 921# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
899 922
900# 923#
@@ -1031,11 +1054,9 @@ CONFIG_HID_COMPAT=y
1031CONFIG_HID_A4TECH=y 1054CONFIG_HID_A4TECH=y
1032CONFIG_HID_APPLE=y 1055CONFIG_HID_APPLE=y
1033CONFIG_HID_BELKIN=y 1056CONFIG_HID_BELKIN=y
1034CONFIG_HID_BRIGHT=y
1035CONFIG_HID_CHERRY=y 1057CONFIG_HID_CHERRY=y
1036CONFIG_HID_CHICONY=y 1058CONFIG_HID_CHICONY=y
1037CONFIG_HID_CYPRESS=y 1059CONFIG_HID_CYPRESS=y
1038CONFIG_HID_DELL=y
1039CONFIG_HID_EZKEY=y 1060CONFIG_HID_EZKEY=y
1040CONFIG_HID_GYRATION=y 1061CONFIG_HID_GYRATION=y
1041CONFIG_HID_LOGITECH=y 1062CONFIG_HID_LOGITECH=y
@@ -1043,12 +1064,15 @@ CONFIG_HID_LOGITECH=y
1043# CONFIG_LOGIRUMBLEPAD2_FF is not set 1064# CONFIG_LOGIRUMBLEPAD2_FF is not set
1044CONFIG_HID_MICROSOFT=y 1065CONFIG_HID_MICROSOFT=y
1045CONFIG_HID_MONTEREY=y 1066CONFIG_HID_MONTEREY=y
1067# CONFIG_HID_NTRIG is not set
1046CONFIG_HID_PANTHERLORD=y 1068CONFIG_HID_PANTHERLORD=y
1047# CONFIG_PANTHERLORD_FF is not set 1069# CONFIG_PANTHERLORD_FF is not set
1048CONFIG_HID_PETALYNX=y 1070CONFIG_HID_PETALYNX=y
1049CONFIG_HID_SAMSUNG=y 1071CONFIG_HID_SAMSUNG=y
1050CONFIG_HID_SONY=y 1072CONFIG_HID_SONY=y
1051CONFIG_HID_SUNPLUS=y 1073CONFIG_HID_SUNPLUS=y
1074# CONFIG_GREENASIA_FF is not set
1075# CONFIG_HID_TOPSEED is not set
1052CONFIG_THRUSTMASTER_FF=m 1076CONFIG_THRUSTMASTER_FF=m
1053CONFIG_ZEROPLUS_FF=m 1077CONFIG_ZEROPLUS_FF=m
1054CONFIG_USB_SUPPORT=y 1078CONFIG_USB_SUPPORT=y
@@ -1069,6 +1093,8 @@ CONFIG_USB_DEVICE_CLASS=y
1069# CONFIG_USB_OTG_WHITELIST is not set 1093# CONFIG_USB_OTG_WHITELIST is not set
1070# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1094# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1071# CONFIG_USB_MON is not set 1095# CONFIG_USB_MON is not set
1096# CONFIG_USB_WUSB is not set
1097# CONFIG_USB_WUSB_CBAF is not set
1072 1098
1073# 1099#
1074# USB Host Controller Drivers 1100# USB Host Controller Drivers
@@ -1084,6 +1110,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1084# CONFIG_USB_UHCI_HCD is not set 1110# CONFIG_USB_UHCI_HCD is not set
1085# CONFIG_USB_SL811_HCD is not set 1111# CONFIG_USB_SL811_HCD is not set
1086# CONFIG_USB_R8A66597_HCD is not set 1112# CONFIG_USB_R8A66597_HCD is not set
1113# CONFIG_USB_WHCI_HCD is not set
1114# CONFIG_USB_HWA_HCD is not set
1087 1115
1088# 1116#
1089# USB Device Class drivers 1117# USB Device Class drivers
@@ -1094,11 +1122,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1094# CONFIG_USB_TMC is not set 1122# CONFIG_USB_TMC is not set
1095 1123
1096# 1124#
1097# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1125# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1098# 1126#
1099 1127
1100# 1128#
1101# may also be needed; see USB_STORAGE Help for more information 1129# see USB_STORAGE Help for more information
1102# 1130#
1103CONFIG_USB_STORAGE=y 1131CONFIG_USB_STORAGE=y
1104# CONFIG_USB_STORAGE_DEBUG is not set 1132# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1151,6 +1179,7 @@ CONFIG_USB_LIBUSUAL=y
1151# CONFIG_USB_ISIGHTFW is not set 1179# CONFIG_USB_ISIGHTFW is not set
1152# CONFIG_USB_VST is not set 1180# CONFIG_USB_VST is not set
1153# CONFIG_USB_GADGET is not set 1181# CONFIG_USB_GADGET is not set
1182# CONFIG_UWB is not set
1154# CONFIG_MMC is not set 1183# CONFIG_MMC is not set
1155# CONFIG_MEMSTICK is not set 1184# CONFIG_MEMSTICK is not set
1156# CONFIG_NEW_LEDS is not set 1185# CONFIG_NEW_LEDS is not set
@@ -1176,6 +1205,7 @@ CONFIG_RTC_INTF_DEV=y
1176# 1205#
1177# CONFIG_RTC_DRV_M41T94 is not set 1206# CONFIG_RTC_DRV_M41T94 is not set
1178# CONFIG_RTC_DRV_DS1305 is not set 1207# CONFIG_RTC_DRV_DS1305 is not set
1208# CONFIG_RTC_DRV_DS1390 is not set
1179# CONFIG_RTC_DRV_MAX6902 is not set 1209# CONFIG_RTC_DRV_MAX6902 is not set
1180CONFIG_RTC_DRV_R9701=y 1210CONFIG_RTC_DRV_R9701=y
1181# CONFIG_RTC_DRV_RS5C348 is not set 1211# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1254,10 +1284,7 @@ CONFIG_TMPFS=y
1254# CONFIG_HUGETLBFS is not set 1284# CONFIG_HUGETLBFS is not set
1255# CONFIG_HUGETLB_PAGE is not set 1285# CONFIG_HUGETLB_PAGE is not set
1256# CONFIG_CONFIGFS_FS is not set 1286# CONFIG_CONFIGFS_FS is not set
1257 1287CONFIG_MISC_FILESYSTEMS=y
1258#
1259# Miscellaneous filesystems
1260#
1261# CONFIG_ADFS_FS is not set 1288# CONFIG_ADFS_FS is not set
1262# CONFIG_AFFS_FS is not set 1289# CONFIG_AFFS_FS is not set
1263# CONFIG_HFS_FS is not set 1290# CONFIG_HFS_FS is not set
@@ -1343,19 +1370,29 @@ CONFIG_FRAME_WARN=1024
1343CONFIG_DEBUG_FS=y 1370CONFIG_DEBUG_FS=y
1344# CONFIG_HEADERS_CHECK is not set 1371# CONFIG_HEADERS_CHECK is not set
1345# CONFIG_DEBUG_KERNEL is not set 1372# CONFIG_DEBUG_KERNEL is not set
1373CONFIG_STACKTRACE=y
1346# CONFIG_DEBUG_BUGVERBOSE is not set 1374# CONFIG_DEBUG_BUGVERBOSE is not set
1347# CONFIG_DEBUG_MEMORY_INIT is not set 1375# CONFIG_DEBUG_MEMORY_INIT is not set
1348# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1376# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1349# CONFIG_LATENCYTOP is not set 1377# CONFIG_LATENCYTOP is not set
1350CONFIG_NOP_TRACER=y 1378CONFIG_NOP_TRACER=y
1351CONFIG_HAVE_FTRACE=y 1379CONFIG_HAVE_FUNCTION_TRACER=y
1380CONFIG_HAVE_DYNAMIC_FTRACE=y
1381CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1382CONFIG_RING_BUFFER=y
1383CONFIG_TRACING=y
1384
1385#
1386# Tracers
1387#
1352# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1388# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1353# CONFIG_SAMPLES is not set 1389# CONFIG_SAMPLES is not set
1390CONFIG_HAVE_ARCH_KGDB=y
1354# CONFIG_SH_STANDARD_BIOS is not set 1391# CONFIG_SH_STANDARD_BIOS is not set
1355CONFIG_EARLY_SCIF_CONSOLE=y 1392CONFIG_EARLY_SCIF_CONSOLE=y
1356CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 1393CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
1357CONFIG_EARLY_PRINTK=y 1394CONFIG_EARLY_PRINTK=y
1358# CONFIG_SH_KGDB is not set 1395# CONFIG_MORE_COMPILE_OPTIONS is not set
1359 1396
1360# 1397#
1361# Security options 1398# Security options
@@ -1371,6 +1408,7 @@ CONFIG_CRYPTO=y
1371# 1408#
1372# CONFIG_CRYPTO_FIPS is not set 1409# CONFIG_CRYPTO_FIPS is not set
1373# CONFIG_CRYPTO_MANAGER is not set 1410# CONFIG_CRYPTO_MANAGER is not set
1411# CONFIG_CRYPTO_MANAGER2 is not set
1374# CONFIG_CRYPTO_GF128MUL is not set 1412# CONFIG_CRYPTO_GF128MUL is not set
1375# CONFIG_CRYPTO_NULL is not set 1413# CONFIG_CRYPTO_NULL is not set
1376# CONFIG_CRYPTO_CRYPTD is not set 1414# CONFIG_CRYPTO_CRYPTD is not set
@@ -1454,6 +1492,7 @@ CONFIG_CRYPTO_HW=y
1454# Library routines 1492# Library routines
1455# 1493#
1456CONFIG_BITREVERSE=y 1494CONFIG_BITREVERSE=y
1495CONFIG_GENERIC_FIND_LAST_BIT=y
1457# CONFIG_CRC_CCITT is not set 1496# CONFIG_CRC_CCITT is not set
1458# CONFIG_CRC16 is not set 1497# CONFIG_CRC16 is not set
1459CONFIG_CRC_T10DIF=y 1498CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/rts7751r2dplus_defconfig b/arch/sh/configs/rts7751r2dplus_defconfig
index f680d3eecdfb..3fca10e24833 100644
--- a/arch/sh/configs/rts7751r2dplus_defconfig
+++ b/arch/sh/configs/rts7751r2dplus_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:47:39 2008 4# Fri Jan 9 17:26:10 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -77,6 +79,7 @@ CONFIG_SLAB=y
77# CONFIG_SLUB is not set 79# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 80# CONFIG_SLOB is not set
79CONFIG_PROFILING=y 81CONFIG_PROFILING=y
82CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 83# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 84CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
@@ -89,18 +92,15 @@ CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 92CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 96CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
96# CONFIG_MODULE_UNLOAD is not set 98# CONFIG_MODULE_UNLOAD is not set
97# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 101CONFIG_BLOCK=y
101# CONFIG_LBD is not set 102# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
106 106
@@ -117,6 +117,10 @@ CONFIG_DEFAULT_AS=y
117# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
119CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
121 125
122# 126#
@@ -124,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
124# 128#
125CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
126# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
127# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
128# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
129# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -187,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
187CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
188CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
189CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
190# CONFIG_RESOURCES_64BIT is not set
191# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
192CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
193CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -293,6 +297,7 @@ CONFIG_PCI=y
293CONFIG_SH_PCIDMA_NONCOHERENT=y 297CONFIG_SH_PCIDMA_NONCOHERENT=y
294CONFIG_PCI_AUTO=y 298CONFIG_PCI_AUTO=y
295CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 299CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
300# CONFIG_PCIEPORTBUS is not set
296# CONFIG_ARCH_SUPPORTS_MSI is not set 301# CONFIG_ARCH_SUPPORTS_MSI is not set
297CONFIG_PCI_LEGACY=y 302CONFIG_PCI_LEGACY=y
298# CONFIG_PCCARD is not set 303# CONFIG_PCCARD is not set
@@ -308,11 +313,18 @@ CONFIG_BINFMT_ELF=y
308# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 313# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
309# CONFIG_HAVE_AOUT is not set 314# CONFIG_HAVE_AOUT is not set
310# CONFIG_BINFMT_MISC is not set 315# CONFIG_BINFMT_MISC is not set
316
317#
318# Power management options (EXPERIMENTAL)
319#
320# CONFIG_PM is not set
321# CONFIG_CPU_IDLE is not set
311CONFIG_NET=y 322CONFIG_NET=y
312 323
313# 324#
314# Networking options 325# Networking options
315# 326#
327CONFIG_COMPAT_NET_DEV_OPS=y
316CONFIG_PACKET=y 328CONFIG_PACKET=y
317# CONFIG_PACKET_MMAP is not set 329# CONFIG_PACKET_MMAP is not set
318CONFIG_UNIX=y 330CONFIG_UNIX=y
@@ -365,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
365# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
366# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
367# CONFIG_NET_SCHED is not set 379# CONFIG_NET_SCHED is not set
380# CONFIG_DCB is not set
368 381
369# 382#
370# Network testing 383# Network testing
@@ -381,8 +394,8 @@ CONFIG_WIRELESS=y
381# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
382CONFIG_WIRELESS_EXT=y 395CONFIG_WIRELESS_EXT=y
383CONFIG_WIRELESS_EXT_SYSFS=y 396CONFIG_WIRELESS_EXT_SYSFS=y
397# CONFIG_LIB80211 is not set
384# CONFIG_MAC80211 is not set 398# CONFIG_MAC80211 is not set
385# CONFIG_IEEE80211 is not set
386# CONFIG_RFKILL is not set 399# CONFIG_RFKILL is not set
387# CONFIG_NET_9P is not set 400# CONFIG_NET_9P is not set
388 401
@@ -426,6 +439,7 @@ CONFIG_MISC_DEVICES=y
426# CONFIG_TIFM_CORE is not set 439# CONFIG_TIFM_CORE is not set
427# CONFIG_ENCLOSURE_SERVICES is not set 440# CONFIG_ENCLOSURE_SERVICES is not set
428# CONFIG_HP_ILO is not set 441# CONFIG_HP_ILO is not set
442# CONFIG_C2PORT is not set
429CONFIG_HAVE_IDE=y 443CONFIG_HAVE_IDE=y
430# CONFIG_IDE is not set 444# CONFIG_IDE is not set
431 445
@@ -468,6 +482,7 @@ CONFIG_SCSI_WAIT_SCAN=m
468# CONFIG_SCSI_SRP_ATTRS is not set 482# CONFIG_SCSI_SRP_ATTRS is not set
469CONFIG_SCSI_LOWLEVEL=y 483CONFIG_SCSI_LOWLEVEL=y
470# CONFIG_ISCSI_TCP is not set 484# CONFIG_ISCSI_TCP is not set
485# CONFIG_SCSI_CXGB3_ISCSI is not set
471# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 486# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
472# CONFIG_SCSI_3W_9XXX is not set 487# CONFIG_SCSI_3W_9XXX is not set
473# CONFIG_SCSI_ACARD is not set 488# CONFIG_SCSI_ACARD is not set
@@ -481,6 +496,8 @@ CONFIG_SCSI_LOWLEVEL=y
481# CONFIG_MEGARAID_LEGACY is not set 496# CONFIG_MEGARAID_LEGACY is not set
482# CONFIG_MEGARAID_SAS is not set 497# CONFIG_MEGARAID_SAS is not set
483# CONFIG_SCSI_HPTIOP is not set 498# CONFIG_SCSI_HPTIOP is not set
499# CONFIG_LIBFC is not set
500# CONFIG_FCOE is not set
484# CONFIG_SCSI_DMX3191D is not set 501# CONFIG_SCSI_DMX3191D is not set
485# CONFIG_SCSI_FUTURE_DOMAIN is not set 502# CONFIG_SCSI_FUTURE_DOMAIN is not set
486# CONFIG_SCSI_IPS is not set 503# CONFIG_SCSI_IPS is not set
@@ -593,6 +610,7 @@ CONFIG_MII=y
593# CONFIG_SMC91X is not set 610# CONFIG_SMC91X is not set
594# CONFIG_ENC28J60 is not set 611# CONFIG_ENC28J60 is not set
595# CONFIG_SMC911X is not set 612# CONFIG_SMC911X is not set
613# CONFIG_SMSC911X is not set
596# CONFIG_NET_TULIP is not set 614# CONFIG_NET_TULIP is not set
597# CONFIG_HP100 is not set 615# CONFIG_HP100 is not set
598# CONFIG_IBM_NEW_EMAC_ZMII is not set 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -608,7 +626,6 @@ CONFIG_NET_PCI=y
608# CONFIG_ADAPTEC_STARFIRE is not set 626# CONFIG_ADAPTEC_STARFIRE is not set
609# CONFIG_B44 is not set 627# CONFIG_B44 is not set
610# CONFIG_FORCEDETH is not set 628# CONFIG_FORCEDETH is not set
611# CONFIG_EEPRO100 is not set
612# CONFIG_E100 is not set 629# CONFIG_E100 is not set
613# CONFIG_FEALNX is not set 630# CONFIG_FEALNX is not set
614# CONFIG_NATSEMI is not set 631# CONFIG_NATSEMI is not set
@@ -622,6 +639,7 @@ CONFIG_8139TOO=y
622# CONFIG_R6040 is not set 639# CONFIG_R6040 is not set
623# CONFIG_SIS900 is not set 640# CONFIG_SIS900 is not set
624# CONFIG_EPIC100 is not set 641# CONFIG_EPIC100 is not set
642# CONFIG_SMSC9420 is not set
625# CONFIG_SUNDANCE is not set 643# CONFIG_SUNDANCE is not set
626# CONFIG_TLAN is not set 644# CONFIG_TLAN is not set
627# CONFIG_VIA_RHINE is not set 645# CONFIG_VIA_RHINE is not set
@@ -650,6 +668,7 @@ CONFIG_NETDEV_1000=y
650# CONFIG_JME is not set 668# CONFIG_JME is not set
651CONFIG_NETDEV_10000=y 669CONFIG_NETDEV_10000=y
652# CONFIG_CHELSIO_T1 is not set 670# CONFIG_CHELSIO_T1 is not set
671CONFIG_CHELSIO_T3_DEPENDS=y
653# CONFIG_CHELSIO_T3 is not set 672# CONFIG_CHELSIO_T3 is not set
654# CONFIG_ENIC is not set 673# CONFIG_ENIC is not set
655# CONFIG_IXGBE is not set 674# CONFIG_IXGBE is not set
@@ -658,6 +677,7 @@ CONFIG_NETDEV_10000=y
658# CONFIG_MYRI10GE is not set 677# CONFIG_MYRI10GE is not set
659# CONFIG_NETXEN_NIC is not set 678# CONFIG_NETXEN_NIC is not set
660# CONFIG_NIU is not set 679# CONFIG_NIU is not set
680# CONFIG_MLX4_EN is not set
661# CONFIG_MLX4_CORE is not set 681# CONFIG_MLX4_CORE is not set
662# CONFIG_TEHUTI is not set 682# CONFIG_TEHUTI is not set
663# CONFIG_BNX2X is not set 683# CONFIG_BNX2X is not set
@@ -755,6 +775,7 @@ CONFIG_SERIAL_CORE=y
755CONFIG_SERIAL_CORE_CONSOLE=y 775CONFIG_SERIAL_CORE_CONSOLE=y
756# CONFIG_SERIAL_JSM is not set 776# CONFIG_SERIAL_JSM is not set
757CONFIG_UNIX98_PTYS=y 777CONFIG_UNIX98_PTYS=y
778# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
758CONFIG_LEGACY_PTYS=y 779CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 780CONFIG_LEGACY_PTY_COUNT=256
760# CONFIG_IPMI_HANDLER is not set 781# CONFIG_IPMI_HANDLER is not set
@@ -777,7 +798,7 @@ CONFIG_SPI_SH_SCI=y
777# 798#
778# SPI Protocol Masters 799# SPI Protocol Masters
779# 800#
780# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
781# CONFIG_SPI_SPIDEV is not set 802# CONFIG_SPI_SPIDEV is not set
782# CONFIG_SPI_TLE62X0 is not set 803# CONFIG_SPI_TLE62X0 is not set
783# CONFIG_W1 is not set 804# CONFIG_W1 is not set
@@ -805,11 +826,11 @@ CONFIG_HWMON=y
805# CONFIG_THERMAL is not set 826# CONFIG_THERMAL is not set
806# CONFIG_THERMAL_HWMON is not set 827# CONFIG_THERMAL_HWMON is not set
807# CONFIG_WATCHDOG is not set 828# CONFIG_WATCHDOG is not set
829CONFIG_SSB_POSSIBLE=y
808 830
809# 831#
810# Sonics Silicon Backplane 832# Sonics Silicon Backplane
811# 833#
812CONFIG_SSB_POSSIBLE=y
813# CONFIG_SSB is not set 834# CONFIG_SSB is not set
814 835
815# 836#
@@ -819,7 +840,7 @@ CONFIG_SSB_POSSIBLE=y
819CONFIG_MFD_SM501=y 840CONFIG_MFD_SM501=y
820# CONFIG_HTC_PASIC3 is not set 841# CONFIG_HTC_PASIC3 is not set
821# CONFIG_MFD_TMIO is not set 842# CONFIG_MFD_TMIO is not set
822# CONFIG_MFD_WM8400 is not set 843# CONFIG_REGULATOR is not set
823 844
824# 845#
825# Multimedia devices 846# Multimedia devices
@@ -852,11 +873,12 @@ CONFIG_FB_CFB_FILLRECT=y
852CONFIG_FB_CFB_COPYAREA=y 873CONFIG_FB_CFB_COPYAREA=y
853CONFIG_FB_CFB_IMAGEBLIT=y 874CONFIG_FB_CFB_IMAGEBLIT=y
854# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 875# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
855# CONFIG_FB_SYS_FILLRECT is not set 876CONFIG_FB_SYS_FILLRECT=m
856# CONFIG_FB_SYS_COPYAREA is not set 877CONFIG_FB_SYS_COPYAREA=m
857# CONFIG_FB_SYS_IMAGEBLIT is not set 878CONFIG_FB_SYS_IMAGEBLIT=m
858# CONFIG_FB_FOREIGN_ENDIAN is not set 879# CONFIG_FB_FOREIGN_ENDIAN is not set
859# CONFIG_FB_SYS_FOPS is not set 880CONFIG_FB_SYS_FOPS=m
881CONFIG_FB_DEFERRED_IO=y
860# CONFIG_FB_SVGALIB is not set 882# CONFIG_FB_SVGALIB is not set
861# CONFIG_FB_MACMODES is not set 883# CONFIG_FB_MACMODES is not set
862# CONFIG_FB_BACKLIGHT is not set 884# CONFIG_FB_BACKLIGHT is not set
@@ -895,6 +917,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
895CONFIG_FB_SM501=y 917CONFIG_FB_SM501=y
896# CONFIG_FB_VIRTUAL is not set 918# CONFIG_FB_VIRTUAL is not set
897# CONFIG_FB_METRONOME is not set 919# CONFIG_FB_METRONOME is not set
920# CONFIG_FB_MB862XX is not set
898# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 921# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
899 922
900# 923#
@@ -1031,11 +1054,9 @@ CONFIG_HID_COMPAT=y
1031CONFIG_HID_A4TECH=y 1054CONFIG_HID_A4TECH=y
1032CONFIG_HID_APPLE=y 1055CONFIG_HID_APPLE=y
1033CONFIG_HID_BELKIN=y 1056CONFIG_HID_BELKIN=y
1034CONFIG_HID_BRIGHT=y
1035CONFIG_HID_CHERRY=y 1057CONFIG_HID_CHERRY=y
1036CONFIG_HID_CHICONY=y 1058CONFIG_HID_CHICONY=y
1037CONFIG_HID_CYPRESS=y 1059CONFIG_HID_CYPRESS=y
1038CONFIG_HID_DELL=y
1039CONFIG_HID_EZKEY=y 1060CONFIG_HID_EZKEY=y
1040CONFIG_HID_GYRATION=y 1061CONFIG_HID_GYRATION=y
1041CONFIG_HID_LOGITECH=y 1062CONFIG_HID_LOGITECH=y
@@ -1043,12 +1064,15 @@ CONFIG_HID_LOGITECH=y
1043# CONFIG_LOGIRUMBLEPAD2_FF is not set 1064# CONFIG_LOGIRUMBLEPAD2_FF is not set
1044CONFIG_HID_MICROSOFT=y 1065CONFIG_HID_MICROSOFT=y
1045CONFIG_HID_MONTEREY=y 1066CONFIG_HID_MONTEREY=y
1067# CONFIG_HID_NTRIG is not set
1046CONFIG_HID_PANTHERLORD=y 1068CONFIG_HID_PANTHERLORD=y
1047# CONFIG_PANTHERLORD_FF is not set 1069# CONFIG_PANTHERLORD_FF is not set
1048CONFIG_HID_PETALYNX=y 1070CONFIG_HID_PETALYNX=y
1049CONFIG_HID_SAMSUNG=y 1071CONFIG_HID_SAMSUNG=y
1050CONFIG_HID_SONY=y 1072CONFIG_HID_SONY=y
1051CONFIG_HID_SUNPLUS=y 1073CONFIG_HID_SUNPLUS=y
1074# CONFIG_GREENASIA_FF is not set
1075# CONFIG_HID_TOPSEED is not set
1052CONFIG_THRUSTMASTER_FF=m 1076CONFIG_THRUSTMASTER_FF=m
1053CONFIG_ZEROPLUS_FF=m 1077CONFIG_ZEROPLUS_FF=m
1054CONFIG_USB_SUPPORT=y 1078CONFIG_USB_SUPPORT=y
@@ -1069,6 +1093,8 @@ CONFIG_USB_DEVICE_CLASS=y
1069# CONFIG_USB_OTG_WHITELIST is not set 1093# CONFIG_USB_OTG_WHITELIST is not set
1070# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1094# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1071# CONFIG_USB_MON is not set 1095# CONFIG_USB_MON is not set
1096# CONFIG_USB_WUSB is not set
1097# CONFIG_USB_WUSB_CBAF is not set
1072 1098
1073# 1099#
1074# USB Host Controller Drivers 1100# USB Host Controller Drivers
@@ -1084,6 +1110,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1084# CONFIG_USB_UHCI_HCD is not set 1110# CONFIG_USB_UHCI_HCD is not set
1085# CONFIG_USB_SL811_HCD is not set 1111# CONFIG_USB_SL811_HCD is not set
1086# CONFIG_USB_R8A66597_HCD is not set 1112# CONFIG_USB_R8A66597_HCD is not set
1113# CONFIG_USB_WHCI_HCD is not set
1114# CONFIG_USB_HWA_HCD is not set
1087 1115
1088# 1116#
1089# USB Device Class drivers 1117# USB Device Class drivers
@@ -1094,11 +1122,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1094# CONFIG_USB_TMC is not set 1122# CONFIG_USB_TMC is not set
1095 1123
1096# 1124#
1097# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1125# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1098# 1126#
1099 1127
1100# 1128#
1101# may also be needed; see USB_STORAGE Help for more information 1129# see USB_STORAGE Help for more information
1102# 1130#
1103CONFIG_USB_STORAGE=y 1131CONFIG_USB_STORAGE=y
1104# CONFIG_USB_STORAGE_DEBUG is not set 1132# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1151,6 +1179,7 @@ CONFIG_USB_LIBUSUAL=y
1151# CONFIG_USB_ISIGHTFW is not set 1179# CONFIG_USB_ISIGHTFW is not set
1152# CONFIG_USB_VST is not set 1180# CONFIG_USB_VST is not set
1153# CONFIG_USB_GADGET is not set 1181# CONFIG_USB_GADGET is not set
1182# CONFIG_UWB is not set
1154# CONFIG_MMC is not set 1183# CONFIG_MMC is not set
1155# CONFIG_MEMSTICK is not set 1184# CONFIG_MEMSTICK is not set
1156# CONFIG_NEW_LEDS is not set 1185# CONFIG_NEW_LEDS is not set
@@ -1176,6 +1205,7 @@ CONFIG_RTC_INTF_DEV=y
1176# 1205#
1177# CONFIG_RTC_DRV_M41T94 is not set 1206# CONFIG_RTC_DRV_M41T94 is not set
1178# CONFIG_RTC_DRV_DS1305 is not set 1207# CONFIG_RTC_DRV_DS1305 is not set
1208# CONFIG_RTC_DRV_DS1390 is not set
1179# CONFIG_RTC_DRV_MAX6902 is not set 1209# CONFIG_RTC_DRV_MAX6902 is not set
1180CONFIG_RTC_DRV_R9701=y 1210CONFIG_RTC_DRV_R9701=y
1181# CONFIG_RTC_DRV_RS5C348 is not set 1211# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1254,10 +1284,7 @@ CONFIG_TMPFS=y
1254# CONFIG_HUGETLBFS is not set 1284# CONFIG_HUGETLBFS is not set
1255# CONFIG_HUGETLB_PAGE is not set 1285# CONFIG_HUGETLB_PAGE is not set
1256# CONFIG_CONFIGFS_FS is not set 1286# CONFIG_CONFIGFS_FS is not set
1257 1287CONFIG_MISC_FILESYSTEMS=y
1258#
1259# Miscellaneous filesystems
1260#
1261# CONFIG_ADFS_FS is not set 1288# CONFIG_ADFS_FS is not set
1262# CONFIG_AFFS_FS is not set 1289# CONFIG_AFFS_FS is not set
1263# CONFIG_HFS_FS is not set 1290# CONFIG_HFS_FS is not set
@@ -1343,19 +1370,29 @@ CONFIG_FRAME_WARN=1024
1343CONFIG_DEBUG_FS=y 1370CONFIG_DEBUG_FS=y
1344# CONFIG_HEADERS_CHECK is not set 1371# CONFIG_HEADERS_CHECK is not set
1345# CONFIG_DEBUG_KERNEL is not set 1372# CONFIG_DEBUG_KERNEL is not set
1373CONFIG_STACKTRACE=y
1346# CONFIG_DEBUG_BUGVERBOSE is not set 1374# CONFIG_DEBUG_BUGVERBOSE is not set
1347# CONFIG_DEBUG_MEMORY_INIT is not set 1375# CONFIG_DEBUG_MEMORY_INIT is not set
1348# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1376# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1349# CONFIG_LATENCYTOP is not set 1377# CONFIG_LATENCYTOP is not set
1350CONFIG_NOP_TRACER=y 1378CONFIG_NOP_TRACER=y
1351CONFIG_HAVE_FTRACE=y 1379CONFIG_HAVE_FUNCTION_TRACER=y
1380CONFIG_HAVE_DYNAMIC_FTRACE=y
1381CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1382CONFIG_RING_BUFFER=y
1383CONFIG_TRACING=y
1384
1385#
1386# Tracers
1387#
1352# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1388# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1353# CONFIG_SAMPLES is not set 1389# CONFIG_SAMPLES is not set
1390CONFIG_HAVE_ARCH_KGDB=y
1354# CONFIG_SH_STANDARD_BIOS is not set 1391# CONFIG_SH_STANDARD_BIOS is not set
1355CONFIG_EARLY_SCIF_CONSOLE=y 1392CONFIG_EARLY_SCIF_CONSOLE=y
1356CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 1393CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
1357CONFIG_EARLY_PRINTK=y 1394CONFIG_EARLY_PRINTK=y
1358# CONFIG_SH_KGDB is not set 1395# CONFIG_MORE_COMPILE_OPTIONS is not set
1359 1396
1360# 1397#
1361# Security options 1398# Security options
@@ -1371,6 +1408,7 @@ CONFIG_CRYPTO=y
1371# 1408#
1372# CONFIG_CRYPTO_FIPS is not set 1409# CONFIG_CRYPTO_FIPS is not set
1373# CONFIG_CRYPTO_MANAGER is not set 1410# CONFIG_CRYPTO_MANAGER is not set
1411# CONFIG_CRYPTO_MANAGER2 is not set
1374# CONFIG_CRYPTO_GF128MUL is not set 1412# CONFIG_CRYPTO_GF128MUL is not set
1375# CONFIG_CRYPTO_NULL is not set 1413# CONFIG_CRYPTO_NULL is not set
1376# CONFIG_CRYPTO_CRYPTD is not set 1414# CONFIG_CRYPTO_CRYPTD is not set
@@ -1454,6 +1492,7 @@ CONFIG_CRYPTO_HW=y
1454# Library routines 1492# Library routines
1455# 1493#
1456CONFIG_BITREVERSE=y 1494CONFIG_BITREVERSE=y
1495CONFIG_GENERIC_FIND_LAST_BIT=y
1457# CONFIG_CRC_CCITT is not set 1496# CONFIG_CRC_CCITT is not set
1458# CONFIG_CRC16 is not set 1497# CONFIG_CRC16 is not set
1459CONFIG_CRC_T10DIF=y 1498CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/sdk7780_defconfig b/arch/sh/configs/sdk7780_defconfig
index 543287b97a6a..5d6b06755ae7 100644
--- a/arch/sh/configs/sdk7780_defconfig
+++ b/arch/sh/configs/sdk7780_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:53:22 2008 4# Fri Jan 9 17:26:40 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -59,6 +61,7 @@ CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y 61CONFIG_SYSCTL_SYSCALL=y
60CONFIG_KALLSYMS=y 62CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 63CONFIG_KALLSYMS_ALL=y
64CONFIG_KALLSYMS_STRIP_GENERATED=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 65# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y 66CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 67CONFIG_PRINTK=y
@@ -81,7 +84,6 @@ CONFIG_SLUB_DEBUG=y
81CONFIG_SLUB=y 84CONFIG_SLUB=y
82# CONFIG_SLOB is not set 85# CONFIG_SLOB is not set
83# CONFIG_PROFILING is not set 86# CONFIG_PROFILING is not set
84# CONFIG_MARKERS is not set
85CONFIG_HAVE_OPROFILE=y 87CONFIG_HAVE_OPROFILE=y
86# CONFIG_KPROBES is not set 88# CONFIG_KPROBES is not set
87CONFIG_HAVE_IOREMAP_PROT=y 89CONFIG_HAVE_IOREMAP_PROT=y
@@ -92,7 +94,6 @@ CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 94CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 95CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 96CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 97CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 98CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 99# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,11 +101,9 @@ CONFIG_MODULE_UNLOAD=y
100CONFIG_MODULE_FORCE_UNLOAD=y 101CONFIG_MODULE_FORCE_UNLOAD=y
101# CONFIG_MODVERSIONS is not set 102# CONFIG_MODVERSIONS is not set
102# CONFIG_MODULE_SRCVERSION_ALL is not set 103# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 104CONFIG_BLOCK=y
105CONFIG_LBD=y 105CONFIG_LBD=y
106# CONFIG_BLK_DEV_IO_TRACE is not set 106# CONFIG_BLK_DEV_IO_TRACE is not set
107# CONFIG_LSF is not set
108# CONFIG_BLK_DEV_BSG is not set 107# CONFIG_BLK_DEV_BSG is not set
109# CONFIG_BLK_DEV_INTEGRITY is not set 108# CONFIG_BLK_DEV_INTEGRITY is not set
110 109
@@ -121,6 +120,10 @@ CONFIG_DEFAULT_AS=y
121# CONFIG_DEFAULT_NOOP is not set 120# CONFIG_DEFAULT_NOOP is not set
122CONFIG_DEFAULT_IOSCHED="anticipatory" 121CONFIG_DEFAULT_IOSCHED="anticipatory"
123CONFIG_CLASSIC_RCU=y 122CONFIG_CLASSIC_RCU=y
123# CONFIG_TREE_RCU is not set
124# CONFIG_PREEMPT_RCU is not set
125# CONFIG_TREE_RCU_TRACE is not set
126# CONFIG_PREEMPT_RCU_TRACE is not set
124# CONFIG_FREEZER is not set 127# CONFIG_FREEZER is not set
125 128
126# 129#
@@ -129,6 +132,7 @@ CONFIG_CLASSIC_RCU=y
129CONFIG_CPU_SH4=y 132CONFIG_CPU_SH4=y
130CONFIG_CPU_SH4A=y 133CONFIG_CPU_SH4A=y
131# CONFIG_CPU_SUBTYPE_SH7619 is not set 134# CONFIG_CPU_SUBTYPE_SH7619 is not set
135# CONFIG_CPU_SUBTYPE_SH7201 is not set
132# CONFIG_CPU_SUBTYPE_SH7203 is not set 136# CONFIG_CPU_SUBTYPE_SH7203 is not set
133# CONFIG_CPU_SUBTYPE_SH7206 is not set 137# CONFIG_CPU_SUBTYPE_SH7206 is not set
134# CONFIG_CPU_SUBTYPE_SH7263 is not set 138# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -199,7 +203,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
199CONFIG_SPARSEMEM_STATIC=y 203CONFIG_SPARSEMEM_STATIC=y
200CONFIG_PAGEFLAGS_EXTENDED=y 204CONFIG_PAGEFLAGS_EXTENDED=y
201CONFIG_SPLIT_PTLOCK_CPUS=4 205CONFIG_SPLIT_PTLOCK_CPUS=4
202CONFIG_RESOURCES_64BIT=y
203# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
204CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
205CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
@@ -282,7 +285,6 @@ CONFIG_SCHED_HRTICK=y
282# CONFIG_PREEMPT_NONE is not set 285# CONFIG_PREEMPT_NONE is not set
283# CONFIG_PREEMPT_VOLUNTARY is not set 286# CONFIG_PREEMPT_VOLUNTARY is not set
284CONFIG_PREEMPT=y 287CONFIG_PREEMPT=y
285# CONFIG_PREEMPT_RCU is not set
286CONFIG_GUSA=y 288CONFIG_GUSA=y
287 289
288# 290#
@@ -300,6 +302,7 @@ CONFIG_PCI=y
300CONFIG_SH_PCIDMA_NONCOHERENT=y 302CONFIG_SH_PCIDMA_NONCOHERENT=y
301CONFIG_PCI_AUTO=y 303CONFIG_PCI_AUTO=y
302CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 304CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
305# CONFIG_PCIEPORTBUS is not set
303# CONFIG_ARCH_SUPPORTS_MSI is not set 306# CONFIG_ARCH_SUPPORTS_MSI is not set
304# CONFIG_PCI_LEGACY is not set 307# CONFIG_PCI_LEGACY is not set
305CONFIG_PCI_DEBUG=y 308CONFIG_PCI_DEBUG=y
@@ -334,11 +337,18 @@ CONFIG_BINFMT_ELF=y
334# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 337# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
335# CONFIG_HAVE_AOUT is not set 338# CONFIG_HAVE_AOUT is not set
336# CONFIG_BINFMT_MISC is not set 339# CONFIG_BINFMT_MISC is not set
340
341#
342# Power management options (EXPERIMENTAL)
343#
344# CONFIG_PM is not set
345# CONFIG_CPU_IDLE is not set
337CONFIG_NET=y 346CONFIG_NET=y
338 347
339# 348#
340# Networking options 349# Networking options
341# 350#
351CONFIG_COMPAT_NET_DEV_OPS=y
342CONFIG_PACKET=y 352CONFIG_PACKET=y
343# CONFIG_PACKET_MMAP is not set 353# CONFIG_PACKET_MMAP is not set
344CONFIG_UNIX=y 354CONFIG_UNIX=y
@@ -434,6 +444,7 @@ CONFIG_NET_SCHED=y
434# CONFIG_NET_SCH_GRED is not set 444# CONFIG_NET_SCH_GRED is not set
435# CONFIG_NET_SCH_DSMARK is not set 445# CONFIG_NET_SCH_DSMARK is not set
436# CONFIG_NET_SCH_NETEM is not set 446# CONFIG_NET_SCH_NETEM is not set
447# CONFIG_NET_SCH_DRR is not set
437 448
438# 449#
439# Classification 450# Classification
@@ -449,6 +460,7 @@ CONFIG_NET_SCHED=y
449# CONFIG_NET_EMATCH is not set 460# CONFIG_NET_EMATCH is not set
450# CONFIG_NET_CLS_ACT is not set 461# CONFIG_NET_CLS_ACT is not set
451CONFIG_NET_SCH_FIFO=y 462CONFIG_NET_SCH_FIFO=y
463# CONFIG_DCB is not set
452 464
453# 465#
454# Network testing 466# Network testing
@@ -464,8 +476,8 @@ CONFIG_WIRELESS=y
464# CONFIG_CFG80211 is not set 476# CONFIG_CFG80211 is not set
465# CONFIG_WIRELESS_OLD_REGULATORY is not set 477# CONFIG_WIRELESS_OLD_REGULATORY is not set
466# CONFIG_WIRELESS_EXT is not set 478# CONFIG_WIRELESS_EXT is not set
479# CONFIG_LIB80211 is not set
467# CONFIG_MAC80211 is not set 480# CONFIG_MAC80211 is not set
468# CONFIG_IEEE80211 is not set
469# CONFIG_RFKILL is not set 481# CONFIG_RFKILL is not set
470# CONFIG_NET_9P is not set 482# CONFIG_NET_9P is not set
471 483
@@ -516,6 +528,7 @@ CONFIG_IDE=y
516# 528#
517# Please see Documentation/ide/ide.txt for help/info on IDE drives 529# Please see Documentation/ide/ide.txt for help/info on IDE drives
518# 530#
531CONFIG_IDE_ATAPI=y
519# CONFIG_BLK_DEV_IDE_SATA is not set 532# CONFIG_BLK_DEV_IDE_SATA is not set
520CONFIG_IDE_GD=y 533CONFIG_IDE_GD=y
521CONFIG_IDE_GD_ATA=y 534CONFIG_IDE_GD_ATA=y
@@ -525,7 +538,6 @@ CONFIG_IDE_GD_ATA=y
525CONFIG_BLK_DEV_IDECD=y 538CONFIG_BLK_DEV_IDECD=y
526CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 539CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
527# CONFIG_BLK_DEV_IDETAPE is not set 540# CONFIG_BLK_DEV_IDETAPE is not set
528# CONFIG_BLK_DEV_IDESCSI is not set
529# CONFIG_IDE_TASK_IOCTL is not set 541# CONFIG_IDE_TASK_IOCTL is not set
530CONFIG_IDE_PROC_FS=y 542CONFIG_IDE_PROC_FS=y
531 543
@@ -553,6 +565,7 @@ CONFIG_BLK_DEV_GENERIC=y
553# CONFIG_BLK_DEV_JMICRON is not set 565# CONFIG_BLK_DEV_JMICRON is not set
554# CONFIG_BLK_DEV_SC1200 is not set 566# CONFIG_BLK_DEV_SC1200 is not set
555# CONFIG_BLK_DEV_PIIX is not set 567# CONFIG_BLK_DEV_PIIX is not set
568# CONFIG_BLK_DEV_IT8172 is not set
556# CONFIG_BLK_DEV_IT8213 is not set 569# CONFIG_BLK_DEV_IT8213 is not set
557# CONFIG_BLK_DEV_IT821X is not set 570# CONFIG_BLK_DEV_IT821X is not set
558# CONFIG_BLK_DEV_NS87415 is not set 571# CONFIG_BLK_DEV_NS87415 is not set
@@ -619,6 +632,8 @@ CONFIG_SCSI_LOWLEVEL=y
619# CONFIG_MEGARAID_LEGACY is not set 632# CONFIG_MEGARAID_LEGACY is not set
620# CONFIG_MEGARAID_SAS is not set 633# CONFIG_MEGARAID_SAS is not set
621# CONFIG_SCSI_HPTIOP is not set 634# CONFIG_SCSI_HPTIOP is not set
635# CONFIG_LIBFC is not set
636# CONFIG_FCOE is not set
622# CONFIG_SCSI_DMX3191D is not set 637# CONFIG_SCSI_DMX3191D is not set
623# CONFIG_SCSI_FUTURE_DOMAIN is not set 638# CONFIG_SCSI_FUTURE_DOMAIN is not set
624# CONFIG_SCSI_IPS is not set 639# CONFIG_SCSI_IPS is not set
@@ -742,6 +757,7 @@ CONFIG_MII=y
742# CONFIG_NET_VENDOR_3COM is not set 757# CONFIG_NET_VENDOR_3COM is not set
743CONFIG_SMC91X=y 758CONFIG_SMC91X=y
744# CONFIG_SMC911X is not set 759# CONFIG_SMC911X is not set
760# CONFIG_SMSC911X is not set
745# CONFIG_NET_TULIP is not set 761# CONFIG_NET_TULIP is not set
746# CONFIG_HP100 is not set 762# CONFIG_HP100 is not set
747# CONFIG_IBM_NEW_EMAC_ZMII is not set 763# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -826,6 +842,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
826CONFIG_MOUSE_PS2_SYNAPTICS=y 842CONFIG_MOUSE_PS2_SYNAPTICS=y
827CONFIG_MOUSE_PS2_LIFEBOOK=y 843CONFIG_MOUSE_PS2_LIFEBOOK=y
828CONFIG_MOUSE_PS2_TRACKPOINT=y 844CONFIG_MOUSE_PS2_TRACKPOINT=y
845# CONFIG_MOUSE_PS2_ELANTECH is not set
829# CONFIG_MOUSE_PS2_TOUCHKIT is not set 846# CONFIG_MOUSE_PS2_TOUCHKIT is not set
830# CONFIG_MOUSE_SERIAL is not set 847# CONFIG_MOUSE_SERIAL is not set
831# CONFIG_MOUSE_APPLETOUCH is not set 848# CONFIG_MOUSE_APPLETOUCH is not set
@@ -875,6 +892,7 @@ CONFIG_SERIAL_CORE=y
875CONFIG_SERIAL_CORE_CONSOLE=y 892CONFIG_SERIAL_CORE_CONSOLE=y
876# CONFIG_SERIAL_JSM is not set 893# CONFIG_SERIAL_JSM is not set
877CONFIG_UNIX98_PTYS=y 894CONFIG_UNIX98_PTYS=y
895# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
878CONFIG_LEGACY_PTYS=y 896CONFIG_LEGACY_PTYS=y
879CONFIG_LEGACY_PTY_COUNT=256 897CONFIG_LEGACY_PTY_COUNT=256
880# CONFIG_PRINTER is not set 898# CONFIG_PRINTER is not set
@@ -905,11 +923,11 @@ CONFIG_POWER_SUPPLY=y
905# CONFIG_THERMAL is not set 923# CONFIG_THERMAL is not set
906# CONFIG_THERMAL_HWMON is not set 924# CONFIG_THERMAL_HWMON is not set
907# CONFIG_WATCHDOG is not set 925# CONFIG_WATCHDOG is not set
926CONFIG_SSB_POSSIBLE=y
908 927
909# 928#
910# Sonics Silicon Backplane 929# Sonics Silicon Backplane
911# 930#
912CONFIG_SSB_POSSIBLE=y
913CONFIG_SSB=y 931CONFIG_SSB=y
914CONFIG_SSB_SPROM=y 932CONFIG_SSB_SPROM=y
915CONFIG_SSB_PCIHOST_POSSIBLE=y 933CONFIG_SSB_PCIHOST_POSSIBLE=y
@@ -929,7 +947,7 @@ CONFIG_SSB_DRIVER_PCICORE=y
929# CONFIG_MFD_SM501 is not set 947# CONFIG_MFD_SM501 is not set
930# CONFIG_HTC_PASIC3 is not set 948# CONFIG_HTC_PASIC3 is not set
931# CONFIG_MFD_TMIO is not set 949# CONFIG_MFD_TMIO is not set
932# CONFIG_MFD_WM8400 is not set 950# CONFIG_REGULATOR is not set
933 951
934# 952#
935# Multimedia devices 953# Multimedia devices
@@ -957,15 +975,16 @@ CONFIG_FB=y
957# CONFIG_FIRMWARE_EDID is not set 975# CONFIG_FIRMWARE_EDID is not set
958# CONFIG_FB_DDC is not set 976# CONFIG_FB_DDC is not set
959# CONFIG_FB_BOOT_VESA_SUPPORT is not set 977# CONFIG_FB_BOOT_VESA_SUPPORT is not set
960CONFIG_FB_CFB_FILLRECT=m 978# CONFIG_FB_CFB_FILLRECT is not set
961CONFIG_FB_CFB_COPYAREA=m 979# CONFIG_FB_CFB_COPYAREA is not set
962CONFIG_FB_CFB_IMAGEBLIT=m 980# CONFIG_FB_CFB_IMAGEBLIT is not set
963# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 981# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
964# CONFIG_FB_SYS_FILLRECT is not set 982CONFIG_FB_SYS_FILLRECT=m
965# CONFIG_FB_SYS_COPYAREA is not set 983CONFIG_FB_SYS_COPYAREA=m
966# CONFIG_FB_SYS_IMAGEBLIT is not set 984CONFIG_FB_SYS_IMAGEBLIT=m
967# CONFIG_FB_FOREIGN_ENDIAN is not set 985# CONFIG_FB_FOREIGN_ENDIAN is not set
968# CONFIG_FB_SYS_FOPS is not set 986CONFIG_FB_SYS_FOPS=m
987CONFIG_FB_DEFERRED_IO=y
969# CONFIG_FB_SVGALIB is not set 988# CONFIG_FB_SVGALIB is not set
970# CONFIG_FB_MACMODES is not set 989# CONFIG_FB_MACMODES is not set
971# CONFIG_FB_BACKLIGHT is not set 990# CONFIG_FB_BACKLIGHT is not set
@@ -1003,6 +1022,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m
1003CONFIG_FB_SH_MOBILE_LCDC=m 1022CONFIG_FB_SH_MOBILE_LCDC=m
1004# CONFIG_FB_VIRTUAL is not set 1023# CONFIG_FB_VIRTUAL is not set
1005# CONFIG_FB_METRONOME is not set 1024# CONFIG_FB_METRONOME is not set
1025# CONFIG_FB_MB862XX is not set
1006# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1026# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1007 1027
1008# 1028#
@@ -1054,11 +1074,9 @@ CONFIG_HID_COMPAT=y
1054CONFIG_HID_A4TECH=y 1074CONFIG_HID_A4TECH=y
1055CONFIG_HID_APPLE=y 1075CONFIG_HID_APPLE=y
1056CONFIG_HID_BELKIN=y 1076CONFIG_HID_BELKIN=y
1057CONFIG_HID_BRIGHT=y
1058CONFIG_HID_CHERRY=y 1077CONFIG_HID_CHERRY=y
1059CONFIG_HID_CHICONY=y 1078CONFIG_HID_CHICONY=y
1060CONFIG_HID_CYPRESS=y 1079CONFIG_HID_CYPRESS=y
1061CONFIG_HID_DELL=y
1062CONFIG_HID_EZKEY=y 1080CONFIG_HID_EZKEY=y
1063CONFIG_HID_GYRATION=y 1081CONFIG_HID_GYRATION=y
1064CONFIG_HID_LOGITECH=y 1082CONFIG_HID_LOGITECH=y
@@ -1066,12 +1084,15 @@ CONFIG_HID_LOGITECH=y
1066# CONFIG_LOGIRUMBLEPAD2_FF is not set 1084# CONFIG_LOGIRUMBLEPAD2_FF is not set
1067CONFIG_HID_MICROSOFT=y 1085CONFIG_HID_MICROSOFT=y
1068CONFIG_HID_MONTEREY=y 1086CONFIG_HID_MONTEREY=y
1087# CONFIG_HID_NTRIG is not set
1069CONFIG_HID_PANTHERLORD=y 1088CONFIG_HID_PANTHERLORD=y
1070# CONFIG_PANTHERLORD_FF is not set 1089# CONFIG_PANTHERLORD_FF is not set
1071CONFIG_HID_PETALYNX=y 1090CONFIG_HID_PETALYNX=y
1072CONFIG_HID_SAMSUNG=y 1091CONFIG_HID_SAMSUNG=y
1073CONFIG_HID_SONY=y 1092CONFIG_HID_SONY=y
1074CONFIG_HID_SUNPLUS=y 1093CONFIG_HID_SUNPLUS=y
1094# CONFIG_GREENASIA_FF is not set
1095# CONFIG_HID_TOPSEED is not set
1075CONFIG_THRUSTMASTER_FF=m 1096CONFIG_THRUSTMASTER_FF=m
1076CONFIG_ZEROPLUS_FF=m 1097CONFIG_ZEROPLUS_FF=m
1077CONFIG_USB_SUPPORT=y 1098CONFIG_USB_SUPPORT=y
@@ -1092,6 +1113,8 @@ CONFIG_USB_DEVICEFS=y
1092# CONFIG_USB_OTG_WHITELIST is not set 1113# CONFIG_USB_OTG_WHITELIST is not set
1093# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1114# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1094CONFIG_USB_MON=y 1115CONFIG_USB_MON=y
1116# CONFIG_USB_WUSB is not set
1117# CONFIG_USB_WUSB_CBAF is not set
1095 1118
1096# 1119#
1097# USB Host Controller Drivers 1120# USB Host Controller Drivers
@@ -1106,6 +1129,8 @@ CONFIG_USB_EHCI_HCD=y
1106# CONFIG_USB_UHCI_HCD is not set 1129# CONFIG_USB_UHCI_HCD is not set
1107# CONFIG_USB_SL811_HCD is not set 1130# CONFIG_USB_SL811_HCD is not set
1108# CONFIG_USB_R8A66597_HCD is not set 1131# CONFIG_USB_R8A66597_HCD is not set
1132# CONFIG_USB_WHCI_HCD is not set
1133# CONFIG_USB_HWA_HCD is not set
1109 1134
1110# 1135#
1111# USB Device Class drivers 1136# USB Device Class drivers
@@ -1116,11 +1141,11 @@ CONFIG_USB_PRINTER=y
1116# CONFIG_USB_TMC is not set 1141# CONFIG_USB_TMC is not set
1117 1142
1118# 1143#
1119# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1144# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1120# 1145#
1121 1146
1122# 1147#
1123# may also be needed; see USB_STORAGE Help for more information 1148# see USB_STORAGE Help for more information
1124# 1149#
1125CONFIG_USB_STORAGE=y 1150CONFIG_USB_STORAGE=y
1126# CONFIG_USB_STORAGE_DEBUG is not set 1151# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1176,6 +1201,7 @@ CONFIG_USB_STORAGE=y
1176# CONFIG_USB_ISIGHTFW is not set 1201# CONFIG_USB_ISIGHTFW is not set
1177# CONFIG_USB_VST is not set 1202# CONFIG_USB_VST is not set
1178# CONFIG_USB_GADGET is not set 1203# CONFIG_USB_GADGET is not set
1204# CONFIG_UWB is not set
1179# CONFIG_MMC is not set 1205# CONFIG_MMC is not set
1180# CONFIG_MEMSTICK is not set 1206# CONFIG_MEMSTICK is not set
1181CONFIG_NEW_LEDS=y 1207CONFIG_NEW_LEDS=y
@@ -1260,10 +1286,7 @@ CONFIG_TMPFS_POSIX_ACL=y
1260CONFIG_HUGETLBFS=y 1286CONFIG_HUGETLBFS=y
1261CONFIG_HUGETLB_PAGE=y 1287CONFIG_HUGETLB_PAGE=y
1262# CONFIG_CONFIGFS_FS is not set 1288# CONFIG_CONFIGFS_FS is not set
1263 1289CONFIG_MISC_FILESYSTEMS=y
1264#
1265# Miscellaneous filesystems
1266#
1267# CONFIG_ADFS_FS is not set 1290# CONFIG_ADFS_FS is not set
1268# CONFIG_AFFS_FS is not set 1291# CONFIG_AFFS_FS is not set
1269# CONFIG_HFS_FS is not set 1292# CONFIG_HFS_FS is not set
@@ -1392,6 +1415,7 @@ CONFIG_DEBUG_INFO=y
1392# CONFIG_DEBUG_MEMORY_INIT is not set 1415# CONFIG_DEBUG_MEMORY_INIT is not set
1393# CONFIG_DEBUG_LIST is not set 1416# CONFIG_DEBUG_LIST is not set
1394# CONFIG_DEBUG_SG is not set 1417# CONFIG_DEBUG_SG is not set
1418# CONFIG_DEBUG_NOTIFIERS is not set
1395# CONFIG_FRAME_POINTER is not set 1419# CONFIG_FRAME_POINTER is not set
1396# CONFIG_RCU_TORTURE_TEST is not set 1420# CONFIG_RCU_TORTURE_TEST is not set
1397# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1421# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1400,17 +1424,25 @@ CONFIG_DEBUG_INFO=y
1400# CONFIG_FAULT_INJECTION is not set 1424# CONFIG_FAULT_INJECTION is not set
1401# CONFIG_LATENCYTOP is not set 1425# CONFIG_LATENCYTOP is not set
1402CONFIG_SYSCTL_SYSCALL_CHECK=y 1426CONFIG_SYSCTL_SYSCALL_CHECK=y
1403CONFIG_NOP_TRACER=y 1427CONFIG_HAVE_FUNCTION_TRACER=y
1404CONFIG_HAVE_FTRACE=y 1428CONFIG_HAVE_DYNAMIC_FTRACE=y
1405# CONFIG_FTRACE is not set 1429CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1430
1431#
1432# Tracers
1433#
1434# CONFIG_FUNCTION_TRACER is not set
1406# CONFIG_IRQSOFF_TRACER is not set 1435# CONFIG_IRQSOFF_TRACER is not set
1407# CONFIG_PREEMPT_TRACER is not set 1436# CONFIG_PREEMPT_TRACER is not set
1408# CONFIG_SCHED_TRACER is not set 1437# CONFIG_SCHED_TRACER is not set
1409# CONFIG_CONTEXT_SWITCH_TRACER is not set 1438# CONFIG_CONTEXT_SWITCH_TRACER is not set
1410# CONFIG_BOOT_TRACER is not set 1439# CONFIG_BOOT_TRACER is not set
1440# CONFIG_TRACE_BRANCH_PROFILING is not set
1411# CONFIG_STACK_TRACER is not set 1441# CONFIG_STACK_TRACER is not set
1412# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1442# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1413# CONFIG_SAMPLES is not set 1443# CONFIG_SAMPLES is not set
1444CONFIG_HAVE_ARCH_KGDB=y
1445# CONFIG_KGDB is not set
1414CONFIG_SH_STANDARD_BIOS=y 1446CONFIG_SH_STANDARD_BIOS=y
1415# CONFIG_EARLY_SCIF_CONSOLE is not set 1447# CONFIG_EARLY_SCIF_CONSOLE is not set
1416# CONFIG_EARLY_PRINTK is not set 1448# CONFIG_EARLY_PRINTK is not set
@@ -1419,7 +1451,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
1419# CONFIG_DEBUG_STACK_USAGE is not set 1451# CONFIG_DEBUG_STACK_USAGE is not set
1420# CONFIG_4KSTACKS is not set 1452# CONFIG_4KSTACKS is not set
1421# CONFIG_IRQSTACKS is not set 1453# CONFIG_IRQSTACKS is not set
1422# CONFIG_SH_KGDB is not set 1454CONFIG_DUMP_CODE=y
1455# CONFIG_SH_NO_BSS_INIT is not set
1456# CONFIG_MORE_COMPILE_OPTIONS is not set
1423 1457
1424# 1458#
1425# Security options 1459# Security options
@@ -1435,7 +1469,11 @@ CONFIG_CRYPTO=y
1435# 1469#
1436# CONFIG_CRYPTO_FIPS is not set 1470# CONFIG_CRYPTO_FIPS is not set
1437CONFIG_CRYPTO_ALGAPI=y 1471CONFIG_CRYPTO_ALGAPI=y
1472CONFIG_CRYPTO_ALGAPI2=y
1473CONFIG_CRYPTO_HASH=y
1474CONFIG_CRYPTO_HASH2=y
1438# CONFIG_CRYPTO_MANAGER is not set 1475# CONFIG_CRYPTO_MANAGER is not set
1476# CONFIG_CRYPTO_MANAGER2 is not set
1439# CONFIG_CRYPTO_GF128MUL is not set 1477# CONFIG_CRYPTO_GF128MUL is not set
1440# CONFIG_CRYPTO_NULL is not set 1478# CONFIG_CRYPTO_NULL is not set
1441# CONFIG_CRYPTO_CRYPTD is not set 1479# CONFIG_CRYPTO_CRYPTD is not set
@@ -1519,6 +1557,7 @@ CONFIG_CRYPTO_HW=y
1519# Library routines 1557# Library routines
1520# 1558#
1521CONFIG_BITREVERSE=y 1559CONFIG_BITREVERSE=y
1560CONFIG_GENERIC_FIND_LAST_BIT=y
1522# CONFIG_CRC_CCITT is not set 1561# CONFIG_CRC_CCITT is not set
1523# CONFIG_CRC16 is not set 1562# CONFIG_CRC16 is not set
1524CONFIG_CRC_T10DIF=y 1563CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/se7206_defconfig b/arch/sh/configs/se7206_defconfig
index 25717ff26ca9..e5b55b6f002d 100644
--- a/arch/sh/configs/se7206_defconfig
+++ b/arch/sh/configs/se7206_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:57:39 2008 4# Fri Jan 9 17:31:27 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17# CONFIG_GENERIC_TIME is not set 17# CONFIG_GENERIC_TIME is not set
18# CONFIG_GENERIC_CLOCKEVENTS is not set 18# CONFIG_GENERIC_CLOCKEVENTS is not set
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -69,6 +71,7 @@ CONFIG_EMBEDDED=y
69# CONFIG_SYSCTL_SYSCALL is not set 71# CONFIG_SYSCTL_SYSCALL is not set
70CONFIG_KALLSYMS=y 72CONFIG_KALLSYMS=y
71CONFIG_KALLSYMS_ALL=y 73CONFIG_KALLSYMS_ALL=y
74CONFIG_KALLSYMS_STRIP_GENERATED=y
72# CONFIG_KALLSYMS_EXTRA_PASS is not set 75# CONFIG_KALLSYMS_EXTRA_PASS is not set
73CONFIG_HOTPLUG=y 76CONFIG_HOTPLUG=y
74CONFIG_PRINTK=y 77CONFIG_PRINTK=y
@@ -84,11 +87,11 @@ CONFIG_TIMERFD=y
84CONFIG_EVENTFD=y 87CONFIG_EVENTFD=y
85CONFIG_AIO=y 88CONFIG_AIO=y
86CONFIG_VM_EVENT_COUNTERS=y 89CONFIG_VM_EVENT_COUNTERS=y
87CONFIG_PCI_QUIRKS=y
88# CONFIG_SLAB is not set 90# CONFIG_SLAB is not set
89# CONFIG_SLUB is not set 91# CONFIG_SLUB is not set
90CONFIG_SLOB=y 92CONFIG_SLOB=y
91CONFIG_PROFILING=y 93CONFIG_PROFILING=y
94CONFIG_TRACEPOINTS=y
92# CONFIG_MARKERS is not set 95# CONFIG_MARKERS is not set
93CONFIG_OPROFILE=y 96CONFIG_OPROFILE=y
94CONFIG_HAVE_OPROFILE=y 97CONFIG_HAVE_OPROFILE=y
@@ -99,7 +102,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
99CONFIG_HAVE_CLK=y 102CONFIG_HAVE_CLK=y
100CONFIG_HAVE_GENERIC_DMA_COHERENT=y 103CONFIG_HAVE_GENERIC_DMA_COHERENT=y
101CONFIG_RT_MUTEXES=y 104CONFIG_RT_MUTEXES=y
102CONFIG_TINY_SHMEM=y
103CONFIG_BASE_SMALL=0 105CONFIG_BASE_SMALL=0
104CONFIG_MODULES=y 106CONFIG_MODULES=y
105# CONFIG_MODULE_FORCE_LOAD is not set 107# CONFIG_MODULE_FORCE_LOAD is not set
@@ -107,11 +109,9 @@ CONFIG_MODULE_UNLOAD=y
107# CONFIG_MODULE_FORCE_UNLOAD is not set 109# CONFIG_MODULE_FORCE_UNLOAD is not set
108# CONFIG_MODVERSIONS is not set 110# CONFIG_MODVERSIONS is not set
109# CONFIG_MODULE_SRCVERSION_ALL is not set 111# CONFIG_MODULE_SRCVERSION_ALL is not set
110CONFIG_KMOD=y
111CONFIG_BLOCK=y 112CONFIG_BLOCK=y
112# CONFIG_LBD is not set 113# CONFIG_LBD is not set
113# CONFIG_BLK_DEV_IO_TRACE is not set 114# CONFIG_BLK_DEV_IO_TRACE is not set
114# CONFIG_LSF is not set
115# CONFIG_BLK_DEV_BSG is not set 115# CONFIG_BLK_DEV_BSG is not set
116# CONFIG_BLK_DEV_INTEGRITY is not set 116# CONFIG_BLK_DEV_INTEGRITY is not set
117 117
@@ -128,6 +128,11 @@ CONFIG_IOSCHED_NOOP=y
128CONFIG_DEFAULT_NOOP=y 128CONFIG_DEFAULT_NOOP=y
129CONFIG_DEFAULT_IOSCHED="noop" 129CONFIG_DEFAULT_IOSCHED="noop"
130# CONFIG_CLASSIC_RCU is not set 130# CONFIG_CLASSIC_RCU is not set
131# CONFIG_TREE_RCU is not set
132CONFIG_PREEMPT_RCU=y
133CONFIG_RCU_TRACE=y
134# CONFIG_TREE_RCU_TRACE is not set
135CONFIG_PREEMPT_RCU_TRACE=y
131# CONFIG_FREEZER is not set 136# CONFIG_FREEZER is not set
132 137
133# 138#
@@ -136,6 +141,7 @@ CONFIG_DEFAULT_IOSCHED="noop"
136CONFIG_CPU_SH2=y 141CONFIG_CPU_SH2=y
137CONFIG_CPU_SH2A=y 142CONFIG_CPU_SH2A=y
138# CONFIG_CPU_SUBTYPE_SH7619 is not set 143# CONFIG_CPU_SUBTYPE_SH7619 is not set
144# CONFIG_CPU_SUBTYPE_SH7201 is not set
139# CONFIG_CPU_SUBTYPE_SH7203 is not set 145# CONFIG_CPU_SUBTYPE_SH7203 is not set
140CONFIG_CPU_SUBTYPE_SH7206=y 146CONFIG_CPU_SUBTYPE_SH7206=y
141# CONFIG_CPU_SUBTYPE_SH7263 is not set 147# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -197,7 +203,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
197CONFIG_SPARSEMEM_STATIC=y 203CONFIG_SPARSEMEM_STATIC=y
198CONFIG_PAGEFLAGS_EXTENDED=y 204CONFIG_PAGEFLAGS_EXTENDED=y
199CONFIG_SPLIT_PTLOCK_CPUS=4 205CONFIG_SPLIT_PTLOCK_CPUS=4
200# CONFIG_RESOURCES_64BIT is not set
201# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
202CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
203CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
@@ -281,8 +286,6 @@ CONFIG_KEXEC=y
281# CONFIG_PREEMPT_NONE is not set 286# CONFIG_PREEMPT_NONE is not set
282# CONFIG_PREEMPT_VOLUNTARY is not set 287# CONFIG_PREEMPT_VOLUNTARY is not set
283CONFIG_PREEMPT=y 288CONFIG_PREEMPT=y
284CONFIG_PREEMPT_RCU=y
285CONFIG_RCU_TRACE=y
286CONFIG_GUSA=y 289CONFIG_GUSA=y
287 290
288# 291#
@@ -296,10 +299,6 @@ CONFIG_CMDLINE="console=ttySC3,115200 ignore_loglevel earlyprintk=serial"
296# 299#
297# Bus options 300# Bus options
298# 301#
299CONFIG_CF_ENABLER=y
300# CONFIG_CF_AREA5 is not set
301CONFIG_CF_AREA6=y
302CONFIG_CF_BASE_ADDR=0xb8000000
303# CONFIG_ARCH_SUPPORTS_MSI is not set 302# CONFIG_ARCH_SUPPORTS_MSI is not set
304# CONFIG_PCCARD is not set 303# CONFIG_PCCARD is not set
305 304
@@ -312,11 +311,19 @@ CONFIG_BINFMT_ZFLAT=y
312CONFIG_BINFMT_SHARED_FLAT=y 311CONFIG_BINFMT_SHARED_FLAT=y
313# CONFIG_HAVE_AOUT is not set 312# CONFIG_HAVE_AOUT is not set
314CONFIG_BINFMT_MISC=y 313CONFIG_BINFMT_MISC=y
314
315#
316# Power management options (EXPERIMENTAL)
317#
318# CONFIG_PM is not set
319# CONFIG_CPU_IDLE is not set
315CONFIG_NET=y 320CONFIG_NET=y
316 321
317# 322#
318# Networking options 323# Networking options
319# 324#
325# CONFIG_NET_NS is not set
326CONFIG_COMPAT_NET_DEV_OPS=y
320CONFIG_PACKET=y 327CONFIG_PACKET=y
321# CONFIG_PACKET_MMAP is not set 328# CONFIG_PACKET_MMAP is not set
322CONFIG_UNIX=y 329CONFIG_UNIX=y
@@ -372,6 +379,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
372# CONFIG_ECONET is not set 379# CONFIG_ECONET is not set
373# CONFIG_WAN_ROUTER is not set 380# CONFIG_WAN_ROUTER is not set
374# CONFIG_NET_SCHED is not set 381# CONFIG_NET_SCHED is not set
382# CONFIG_DCB is not set
375 383
376# 384#
377# Network testing 385# Network testing
@@ -387,8 +395,8 @@ CONFIG_WIRELESS=y
387# CONFIG_CFG80211 is not set 395# CONFIG_CFG80211 is not set
388# CONFIG_WIRELESS_OLD_REGULATORY is not set 396# CONFIG_WIRELESS_OLD_REGULATORY is not set
389# CONFIG_WIRELESS_EXT is not set 397# CONFIG_WIRELESS_EXT is not set
398# CONFIG_LIB80211 is not set
390# CONFIG_MAC80211 is not set 399# CONFIG_MAC80211 is not set
391# CONFIG_IEEE80211 is not set
392# CONFIG_RFKILL is not set 400# CONFIG_RFKILL is not set
393# CONFIG_NET_9P is not set 401# CONFIG_NET_9P is not set
394 402
@@ -500,6 +508,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
500CONFIG_MISC_DEVICES=y 508CONFIG_MISC_DEVICES=y
501CONFIG_EEPROM_93CX6=y 509CONFIG_EEPROM_93CX6=y
502# CONFIG_ENCLOSURE_SERVICES is not set 510# CONFIG_ENCLOSURE_SERVICES is not set
511# CONFIG_C2PORT is not set
503CONFIG_HAVE_IDE=y 512CONFIG_HAVE_IDE=y
504# CONFIG_IDE is not set 513# CONFIG_IDE is not set
505 514
@@ -526,6 +535,7 @@ CONFIG_MII=y
526# CONFIG_STNIC is not set 535# CONFIG_STNIC is not set
527CONFIG_SMC91X=y 536CONFIG_SMC91X=y
528# CONFIG_SMC911X is not set 537# CONFIG_SMC911X is not set
538# CONFIG_SMSC911X is not set
529# CONFIG_IBM_NEW_EMAC_ZMII is not set 539# CONFIG_IBM_NEW_EMAC_ZMII is not set
530# CONFIG_IBM_NEW_EMAC_RGMII is not set 540# CONFIG_IBM_NEW_EMAC_RGMII is not set
531# CONFIG_IBM_NEW_EMAC_TAH is not set 541# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -598,11 +608,11 @@ CONFIG_SERIAL_CORE_CONSOLE=y
598# CONFIG_THERMAL is not set 608# CONFIG_THERMAL is not set
599# CONFIG_THERMAL_HWMON is not set 609# CONFIG_THERMAL_HWMON is not set
600# CONFIG_WATCHDOG is not set 610# CONFIG_WATCHDOG is not set
611CONFIG_SSB_POSSIBLE=y
601 612
602# 613#
603# Sonics Silicon Backplane 614# Sonics Silicon Backplane
604# 615#
605CONFIG_SSB_POSSIBLE=y
606# CONFIG_SSB is not set 616# CONFIG_SSB is not set
607 617
608# 618#
@@ -612,7 +622,7 @@ CONFIG_SSB_POSSIBLE=y
612# CONFIG_MFD_SM501 is not set 622# CONFIG_MFD_SM501 is not set
613# CONFIG_HTC_PASIC3 is not set 623# CONFIG_HTC_PASIC3 is not set
614# CONFIG_MFD_TMIO is not set 624# CONFIG_MFD_TMIO is not set
615# CONFIG_MFD_WM8400 is not set 625# CONFIG_REGULATOR is not set
616 626
617# 627#
618# Multimedia devices 628# Multimedia devices
@@ -732,10 +742,7 @@ CONFIG_TMPFS=y
732# CONFIG_TMPFS_POSIX_ACL is not set 742# CONFIG_TMPFS_POSIX_ACL is not set
733# CONFIG_HUGETLB_PAGE is not set 743# CONFIG_HUGETLB_PAGE is not set
734CONFIG_CONFIGFS_FS=y 744CONFIG_CONFIGFS_FS=y
735 745CONFIG_MISC_FILESYSTEMS=y
736#
737# Miscellaneous filesystems
738#
739# CONFIG_ADFS_FS is not set 746# CONFIG_ADFS_FS is not set
740# CONFIG_AFFS_FS is not set 747# CONFIG_AFFS_FS is not set
741# CONFIG_HFS_FS is not set 748# CONFIG_HFS_FS is not set
@@ -812,6 +819,7 @@ CONFIG_DEBUG_PREEMPT=y
812# CONFIG_LOCK_STAT is not set 819# CONFIG_LOCK_STAT is not set
813CONFIG_DEBUG_SPINLOCK_SLEEP=y 820CONFIG_DEBUG_SPINLOCK_SLEEP=y
814# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 821# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
822CONFIG_STACKTRACE=y
815# CONFIG_DEBUG_KOBJECT is not set 823# CONFIG_DEBUG_KOBJECT is not set
816CONFIG_DEBUG_BUGVERBOSE=y 824CONFIG_DEBUG_BUGVERBOSE=y
817# CONFIG_DEBUG_INFO is not set 825# CONFIG_DEBUG_INFO is not set
@@ -820,6 +828,7 @@ CONFIG_DEBUG_VM=y
820# CONFIG_DEBUG_MEMORY_INIT is not set 828# CONFIG_DEBUG_MEMORY_INIT is not set
821CONFIG_DEBUG_LIST=y 829CONFIG_DEBUG_LIST=y
822# CONFIG_DEBUG_SG is not set 830# CONFIG_DEBUG_SG is not set
831# CONFIG_DEBUG_NOTIFIERS is not set
823CONFIG_FRAME_POINTER=y 832CONFIG_FRAME_POINTER=y
824# CONFIG_RCU_TORTURE_TEST is not set 833# CONFIG_RCU_TORTURE_TEST is not set
825# CONFIG_BACKTRACE_SELF_TEST is not set 834# CONFIG_BACKTRACE_SELF_TEST is not set
@@ -827,20 +836,35 @@ CONFIG_FRAME_POINTER=y
827# CONFIG_FAULT_INJECTION is not set 836# CONFIG_FAULT_INJECTION is not set
828# CONFIG_LATENCYTOP is not set 837# CONFIG_LATENCYTOP is not set
829CONFIG_NOP_TRACER=y 838CONFIG_NOP_TRACER=y
830CONFIG_HAVE_FTRACE=y 839CONFIG_HAVE_FUNCTION_TRACER=y
831# CONFIG_FTRACE is not set 840CONFIG_HAVE_DYNAMIC_FTRACE=y
841CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
842CONFIG_RING_BUFFER=y
843CONFIG_TRACING=y
844
845#
846# Tracers
847#
848# CONFIG_FUNCTION_TRACER is not set
832# CONFIG_SCHED_TRACER is not set 849# CONFIG_SCHED_TRACER is not set
833# CONFIG_CONTEXT_SWITCH_TRACER is not set 850# CONFIG_CONTEXT_SWITCH_TRACER is not set
834# CONFIG_BOOT_TRACER is not set 851# CONFIG_BOOT_TRACER is not set
852# CONFIG_TRACE_BRANCH_PROFILING is not set
835# CONFIG_STACK_TRACER is not set 853# CONFIG_STACK_TRACER is not set
854# CONFIG_FTRACE_STARTUP_TEST is not set
836# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 855# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
837# CONFIG_SAMPLES is not set 856# CONFIG_SAMPLES is not set
857CONFIG_HAVE_ARCH_KGDB=y
858# CONFIG_KGDB is not set
838# CONFIG_SH_STANDARD_BIOS is not set 859# CONFIG_SH_STANDARD_BIOS is not set
839# CONFIG_EARLY_SCIF_CONSOLE is not set 860# CONFIG_EARLY_SCIF_CONSOLE is not set
840# CONFIG_DEBUG_BOOTMEM is not set 861# CONFIG_DEBUG_BOOTMEM is not set
841CONFIG_DEBUG_STACKOVERFLOW=y 862CONFIG_DEBUG_STACKOVERFLOW=y
842CONFIG_DEBUG_STACK_USAGE=y 863CONFIG_DEBUG_STACK_USAGE=y
843# CONFIG_IRQSTACKS is not set 864# CONFIG_IRQSTACKS is not set
865CONFIG_DUMP_CODE=y
866# CONFIG_SH_NO_BSS_INIT is not set
867# CONFIG_MORE_COMPILE_OPTIONS is not set
844 868
845# 869#
846# Security options 870# Security options
@@ -856,7 +880,11 @@ CONFIG_CRYPTO=y
856# 880#
857# CONFIG_CRYPTO_FIPS is not set 881# CONFIG_CRYPTO_FIPS is not set
858CONFIG_CRYPTO_ALGAPI=y 882CONFIG_CRYPTO_ALGAPI=y
883CONFIG_CRYPTO_ALGAPI2=y
884CONFIG_CRYPTO_HASH=y
885CONFIG_CRYPTO_HASH2=y
859# CONFIG_CRYPTO_MANAGER is not set 886# CONFIG_CRYPTO_MANAGER is not set
887# CONFIG_CRYPTO_MANAGER2 is not set
860# CONFIG_CRYPTO_GF128MUL is not set 888# CONFIG_CRYPTO_GF128MUL is not set
861# CONFIG_CRYPTO_NULL is not set 889# CONFIG_CRYPTO_NULL is not set
862# CONFIG_CRYPTO_CRYPTD is not set 890# CONFIG_CRYPTO_CRYPTD is not set
@@ -890,7 +918,7 @@ CONFIG_CRYPTO_ALGAPI=y
890# 918#
891# Digest 919# Digest
892# 920#
893# CONFIG_CRYPTO_CRC32C is not set 921CONFIG_CRYPTO_CRC32C=y
894# CONFIG_CRYPTO_MD4 is not set 922# CONFIG_CRYPTO_MD4 is not set
895# CONFIG_CRYPTO_MD5 is not set 923# CONFIG_CRYPTO_MD5 is not set
896# CONFIG_CRYPTO_MICHAEL_MIC is not set 924# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -939,6 +967,7 @@ CONFIG_CRYPTO_LZO=y
939# Library routines 967# Library routines
940# 968#
941CONFIG_BITREVERSE=y 969CONFIG_BITREVERSE=y
970CONFIG_GENERIC_FIND_LAST_BIT=y
942CONFIG_CRC_CCITT=y 971CONFIG_CRC_CCITT=y
943CONFIG_CRC16=y 972CONFIG_CRC16=y
944# CONFIG_CRC_T10DIF is not set 973# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7343_defconfig b/arch/sh/configs/se7343_defconfig
index be246f381507..390052577031 100644
--- a/arch/sh/configs/se7343_defconfig
+++ b/arch/sh/configs/se7343_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.28-rc6 3# Linux kernel version: 2.6.28
4# Thu Dec 4 16:40:25 2008 4# Fri Jan 9 17:33:53 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -78,7 +80,6 @@ CONFIG_SLAB=y
78# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
79# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
80# CONFIG_PROFILING is not set 82# CONFIG_PROFILING is not set
81# CONFIG_MARKERS is not set
82CONFIG_HAVE_OPROFILE=y 83CONFIG_HAVE_OPROFILE=y
83# CONFIG_KPROBES is not set 84# CONFIG_KPROBES is not set
84CONFIG_HAVE_IOREMAP_PROT=y 85CONFIG_HAVE_IOREMAP_PROT=y
@@ -88,7 +89,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
88CONFIG_HAVE_CLK=y 89CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
91CONFIG_TINY_SHMEM=y
92CONFIG_BASE_SMALL=0 92CONFIG_BASE_SMALL=0
93CONFIG_MODULES=y 93CONFIG_MODULES=y
94# CONFIG_MODULE_FORCE_LOAD is not set 94# CONFIG_MODULE_FORCE_LOAD is not set
@@ -96,11 +96,9 @@ CONFIG_MODULE_UNLOAD=y
96CONFIG_MODULE_FORCE_UNLOAD=y 96CONFIG_MODULE_FORCE_UNLOAD=y
97# CONFIG_MODVERSIONS is not set 97# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 98# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 99CONFIG_BLOCK=y
101# CONFIG_LBD is not set 100# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 101# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 102# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 103# CONFIG_BLK_DEV_INTEGRITY is not set
106 104
@@ -117,6 +115,10 @@ CONFIG_DEFAULT_DEADLINE=y
117# CONFIG_DEFAULT_NOOP is not set 115# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="deadline" 116CONFIG_DEFAULT_IOSCHED="deadline"
119CONFIG_CLASSIC_RCU=y 117CONFIG_CLASSIC_RCU=y
118# CONFIG_TREE_RCU is not set
119# CONFIG_PREEMPT_RCU is not set
120# CONFIG_TREE_RCU_TRACE is not set
121# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 122# CONFIG_FREEZER is not set
121 123
122# 124#
@@ -190,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
190CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
191CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
192CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
193# CONFIG_RESOURCES_64BIT is not set
194# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
195CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
196CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -280,7 +281,6 @@ CONFIG_CMDLINE="console=ttySC0,115200"
280# 281#
281# Bus options 282# Bus options
282# 283#
283# CONFIG_CF_ENABLER is not set
284# CONFIG_ARCH_SUPPORTS_MSI is not set 284# CONFIG_ARCH_SUPPORTS_MSI is not set
285# CONFIG_PCCARD is not set 285# CONFIG_PCCARD is not set
286 286
@@ -291,11 +291,18 @@ CONFIG_BINFMT_ELF=y
291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
292# CONFIG_HAVE_AOUT is not set 292# CONFIG_HAVE_AOUT is not set
293# CONFIG_BINFMT_MISC is not set 293# CONFIG_BINFMT_MISC is not set
294
295#
296# Power management options (EXPERIMENTAL)
297#
298# CONFIG_PM is not set
299# CONFIG_CPU_IDLE is not set
294CONFIG_NET=y 300CONFIG_NET=y
295 301
296# 302#
297# Networking options 303# Networking options
298# 304#
305CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 306CONFIG_PACKET=y
300CONFIG_PACKET_MMAP=y 307CONFIG_PACKET_MMAP=y
301CONFIG_UNIX=y 308CONFIG_UNIX=y
@@ -347,6 +354,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
347# CONFIG_ECONET is not set 354# CONFIG_ECONET is not set
348# CONFIG_WAN_ROUTER is not set 355# CONFIG_WAN_ROUTER is not set
349# CONFIG_NET_SCHED is not set 356# CONFIG_NET_SCHED is not set
357# CONFIG_DCB is not set
350 358
351# 359#
352# Network testing 360# Network testing
@@ -362,8 +370,8 @@ CONFIG_WIRELESS=y
362# CONFIG_CFG80211 is not set 370# CONFIG_CFG80211 is not set
363# CONFIG_WIRELESS_OLD_REGULATORY is not set 371# CONFIG_WIRELESS_OLD_REGULATORY is not set
364# CONFIG_WIRELESS_EXT is not set 372# CONFIG_WIRELESS_EXT is not set
373# CONFIG_LIB80211 is not set
365# CONFIG_MAC80211 is not set 374# CONFIG_MAC80211 is not set
366# CONFIG_IEEE80211 is not set
367# CONFIG_RFKILL is not set 375# CONFIG_RFKILL is not set
368# CONFIG_NET_9P is not set 376# CONFIG_NET_9P is not set
369 377
@@ -661,8 +669,8 @@ CONFIG_I2C_SH_MOBILE=y
661# Miscellaneous I2C Chip support 669# Miscellaneous I2C Chip support
662# 670#
663# CONFIG_DS1682 is not set 671# CONFIG_DS1682 is not set
664# CONFIG_AT24 is not set 672# CONFIG_EEPROM_AT24 is not set
665# CONFIG_SENSORS_EEPROM is not set 673# CONFIG_EEPROM_LEGACY is not set
666# CONFIG_SENSORS_PCF8574 is not set 674# CONFIG_SENSORS_PCF8574 is not set
667# CONFIG_PCF8575 is not set 675# CONFIG_PCF8575 is not set
668# CONFIG_SENSORS_PCA9539 is not set 676# CONFIG_SENSORS_PCA9539 is not set
@@ -693,6 +701,7 @@ CONFIG_SSB_POSSIBLE=y
693# CONFIG_MFD_CORE is not set 701# CONFIG_MFD_CORE is not set
694# CONFIG_MFD_SM501 is not set 702# CONFIG_MFD_SM501 is not set
695# CONFIG_HTC_PASIC3 is not set 703# CONFIG_HTC_PASIC3 is not set
704# CONFIG_TWL4030_CORE is not set
696# CONFIG_MFD_TMIO is not set 705# CONFIG_MFD_TMIO is not set
697# CONFIG_PMIC_DA903X is not set 706# CONFIG_PMIC_DA903X is not set
698# CONFIG_MFD_WM8400 is not set 707# CONFIG_MFD_WM8400 is not set
@@ -743,11 +752,13 @@ CONFIG_V4L_USB_DRIVERS=y
743# CONFIG_USB_VIDEO_CLASS is not set 752# CONFIG_USB_VIDEO_CLASS is not set
744CONFIG_USB_GSPCA=m 753CONFIG_USB_GSPCA=m
745# CONFIG_USB_M5602 is not set 754# CONFIG_USB_M5602 is not set
755# CONFIG_USB_STV06XX is not set
746# CONFIG_USB_GSPCA_CONEX is not set 756# CONFIG_USB_GSPCA_CONEX is not set
747# CONFIG_USB_GSPCA_ETOMS is not set 757# CONFIG_USB_GSPCA_ETOMS is not set
748# CONFIG_USB_GSPCA_FINEPIX is not set 758# CONFIG_USB_GSPCA_FINEPIX is not set
749# CONFIG_USB_GSPCA_MARS is not set 759# CONFIG_USB_GSPCA_MARS is not set
750# CONFIG_USB_GSPCA_OV519 is not set 760# CONFIG_USB_GSPCA_OV519 is not set
761# CONFIG_USB_GSPCA_OV534 is not set
751# CONFIG_USB_GSPCA_PAC207 is not set 762# CONFIG_USB_GSPCA_PAC207 is not set
752# CONFIG_USB_GSPCA_PAC7311 is not set 763# CONFIG_USB_GSPCA_PAC7311 is not set
753# CONFIG_USB_GSPCA_SONIXB is not set 764# CONFIG_USB_GSPCA_SONIXB is not set
@@ -786,6 +797,7 @@ CONFIG_RADIO_ADAPTERS=y
786# CONFIG_USB_DSBR is not set 797# CONFIG_USB_DSBR is not set
787# CONFIG_USB_SI470X is not set 798# CONFIG_USB_SI470X is not set
788# CONFIG_USB_MR800 is not set 799# CONFIG_USB_MR800 is not set
800# CONFIG_RADIO_TEA5764 is not set
789# CONFIG_DAB is not set 801# CONFIG_DAB is not set
790 802
791# 803#
@@ -797,15 +809,16 @@ CONFIG_FB=y
797CONFIG_FIRMWARE_EDID=y 809CONFIG_FIRMWARE_EDID=y
798# CONFIG_FB_DDC is not set 810# CONFIG_FB_DDC is not set
799# CONFIG_FB_BOOT_VESA_SUPPORT is not set 811# CONFIG_FB_BOOT_VESA_SUPPORT is not set
800CONFIG_FB_CFB_FILLRECT=m 812# CONFIG_FB_CFB_FILLRECT is not set
801CONFIG_FB_CFB_COPYAREA=m 813# CONFIG_FB_CFB_COPYAREA is not set
802CONFIG_FB_CFB_IMAGEBLIT=m 814# CONFIG_FB_CFB_IMAGEBLIT is not set
803# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 815# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
804# CONFIG_FB_SYS_FILLRECT is not set 816CONFIG_FB_SYS_FILLRECT=m
805# CONFIG_FB_SYS_COPYAREA is not set 817CONFIG_FB_SYS_COPYAREA=m
806# CONFIG_FB_SYS_IMAGEBLIT is not set 818CONFIG_FB_SYS_IMAGEBLIT=m
807# CONFIG_FB_FOREIGN_ENDIAN is not set 819# CONFIG_FB_FOREIGN_ENDIAN is not set
808# CONFIG_FB_SYS_FOPS is not set 820CONFIG_FB_SYS_FOPS=m
821CONFIG_FB_DEFERRED_IO=y
809# CONFIG_FB_SVGALIB is not set 822# CONFIG_FB_SVGALIB is not set
810# CONFIG_FB_MACMODES is not set 823# CONFIG_FB_MACMODES is not set
811# CONFIG_FB_BACKLIGHT is not set 824# CONFIG_FB_BACKLIGHT is not set
@@ -881,11 +894,9 @@ CONFIG_HID_COMPAT=y
881CONFIG_HID_A4TECH=y 894CONFIG_HID_A4TECH=y
882CONFIG_HID_APPLE=y 895CONFIG_HID_APPLE=y
883CONFIG_HID_BELKIN=y 896CONFIG_HID_BELKIN=y
884CONFIG_HID_BRIGHT=y
885CONFIG_HID_CHERRY=y 897CONFIG_HID_CHERRY=y
886CONFIG_HID_CHICONY=y 898CONFIG_HID_CHICONY=y
887CONFIG_HID_CYPRESS=y 899CONFIG_HID_CYPRESS=y
888CONFIG_HID_DELL=y
889CONFIG_HID_EZKEY=y 900CONFIG_HID_EZKEY=y
890CONFIG_HID_GYRATION=y 901CONFIG_HID_GYRATION=y
891CONFIG_HID_LOGITECH=y 902CONFIG_HID_LOGITECH=y
@@ -893,12 +904,15 @@ CONFIG_HID_LOGITECH=y
893# CONFIG_LOGIRUMBLEPAD2_FF is not set 904# CONFIG_LOGIRUMBLEPAD2_FF is not set
894CONFIG_HID_MICROSOFT=y 905CONFIG_HID_MICROSOFT=y
895CONFIG_HID_MONTEREY=y 906CONFIG_HID_MONTEREY=y
907# CONFIG_HID_NTRIG is not set
896CONFIG_HID_PANTHERLORD=y 908CONFIG_HID_PANTHERLORD=y
897# CONFIG_PANTHERLORD_FF is not set 909# CONFIG_PANTHERLORD_FF is not set
898CONFIG_HID_PETALYNX=y 910CONFIG_HID_PETALYNX=y
899CONFIG_HID_SAMSUNG=y 911CONFIG_HID_SAMSUNG=y
900CONFIG_HID_SONY=y 912CONFIG_HID_SONY=y
901CONFIG_HID_SUNPLUS=y 913CONFIG_HID_SUNPLUS=y
914# CONFIG_GREENASIA_FF is not set
915# CONFIG_HID_TOPSEED is not set
902# CONFIG_THRUSTMASTER_FF is not set 916# CONFIG_THRUSTMASTER_FF is not set
903# CONFIG_ZEROPLUS_FF is not set 917# CONFIG_ZEROPLUS_FF is not set
904CONFIG_USB_SUPPORT=y 918CONFIG_USB_SUPPORT=y
@@ -997,7 +1011,6 @@ CONFIG_UIO=y
997# CONFIG_UIO_SMX is not set 1011# CONFIG_UIO_SMX is not set
998# CONFIG_UIO_SERCOS3 is not set 1012# CONFIG_UIO_SERCOS3 is not set
999# CONFIG_STAGING is not set 1013# CONFIG_STAGING is not set
1000CONFIG_STAGING_EXCLUDE_BUILD=y
1001 1014
1002# 1015#
1003# File systems 1016# File systems
@@ -1051,10 +1064,7 @@ CONFIG_TMPFS=y
1051# CONFIG_HUGETLBFS is not set 1064# CONFIG_HUGETLBFS is not set
1052# CONFIG_HUGETLB_PAGE is not set 1065# CONFIG_HUGETLB_PAGE is not set
1053# CONFIG_CONFIGFS_FS is not set 1066# CONFIG_CONFIGFS_FS is not set
1054 1067CONFIG_MISC_FILESYSTEMS=y
1055#
1056# Miscellaneous filesystems
1057#
1058# CONFIG_ADFS_FS is not set 1068# CONFIG_ADFS_FS is not set
1059# CONFIG_AFFS_FS is not set 1069# CONFIG_AFFS_FS is not set
1060# CONFIG_HFS_FS is not set 1070# CONFIG_HFS_FS is not set
@@ -1138,11 +1148,12 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1138# 1148#
1139# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1149# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1140# CONFIG_SAMPLES is not set 1150# CONFIG_SAMPLES is not set
1151CONFIG_HAVE_ARCH_KGDB=y
1141# CONFIG_SH_STANDARD_BIOS is not set 1152# CONFIG_SH_STANDARD_BIOS is not set
1142CONFIG_EARLY_SCIF_CONSOLE=y 1153CONFIG_EARLY_SCIF_CONSOLE=y
1143CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000 1154CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1144CONFIG_EARLY_PRINTK=y 1155CONFIG_EARLY_PRINTK=y
1145# CONFIG_SH_KGDB is not set 1156# CONFIG_MORE_COMPILE_OPTIONS is not set
1146 1157
1147# 1158#
1148# Security options 1159# Security options
@@ -1158,6 +1169,7 @@ CONFIG_CRYPTO=y
1158# 1169#
1159# CONFIG_CRYPTO_FIPS is not set 1170# CONFIG_CRYPTO_FIPS is not set
1160# CONFIG_CRYPTO_MANAGER is not set 1171# CONFIG_CRYPTO_MANAGER is not set
1172# CONFIG_CRYPTO_MANAGER2 is not set
1161# CONFIG_CRYPTO_GF128MUL is not set 1173# CONFIG_CRYPTO_GF128MUL is not set
1162# CONFIG_CRYPTO_NULL is not set 1174# CONFIG_CRYPTO_NULL is not set
1163# CONFIG_CRYPTO_CRYPTD is not set 1175# CONFIG_CRYPTO_CRYPTD is not set
@@ -1240,6 +1252,7 @@ CONFIG_CRYPTO_HW=y
1240# Library routines 1252# Library routines
1241# 1253#
1242CONFIG_BITREVERSE=y 1254CONFIG_BITREVERSE=y
1255CONFIG_GENERIC_FIND_LAST_BIT=y
1243# CONFIG_CRC_CCITT is not set 1256# CONFIG_CRC_CCITT is not set
1244# CONFIG_CRC16 is not set 1257# CONFIG_CRC16 is not set
1245# CONFIG_CRC_T10DIF is not set 1258# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7619_defconfig b/arch/sh/configs/se7619_defconfig
index db9cacd7c4e7..932b0235b1de 100644
--- a/arch/sh/configs/se7619_defconfig
+++ b/arch/sh/configs/se7619_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:03:29 2008 4# Fri Jan 9 17:36:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17# CONFIG_GENERIC_TIME is not set 17# CONFIG_GENERIC_TIME is not set
18# CONFIG_GENERIC_CLOCKEVENTS is not set 18# CONFIG_GENERIC_CLOCKEVENTS is not set
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -61,12 +63,10 @@ CONFIG_TIMERFD=y
61CONFIG_EVENTFD=y 63CONFIG_EVENTFD=y
62CONFIG_AIO=y 64CONFIG_AIO=y
63# CONFIG_VM_EVENT_COUNTERS is not set 65# CONFIG_VM_EVENT_COUNTERS is not set
64CONFIG_PCI_QUIRKS=y
65CONFIG_SLAB=y 66CONFIG_SLAB=y
66# CONFIG_SLUB is not set 67# CONFIG_SLUB is not set
67# CONFIG_SLOB is not set 68# CONFIG_SLOB is not set
68# CONFIG_PROFILING is not set 69# CONFIG_PROFILING is not set
69# CONFIG_MARKERS is not set
70CONFIG_HAVE_OPROFILE=y 70CONFIG_HAVE_OPROFILE=y
71CONFIG_HAVE_KPROBES=y 71CONFIG_HAVE_KPROBES=y
72CONFIG_HAVE_KRETPROBES=y 72CONFIG_HAVE_KRETPROBES=y
@@ -74,12 +74,10 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
74CONFIG_HAVE_CLK=y 74CONFIG_HAVE_CLK=y
75CONFIG_HAVE_GENERIC_DMA_COHERENT=y 75CONFIG_HAVE_GENERIC_DMA_COHERENT=y
76CONFIG_SLABINFO=y 76CONFIG_SLABINFO=y
77CONFIG_TINY_SHMEM=y
78CONFIG_BASE_SMALL=1 77CONFIG_BASE_SMALL=1
79# CONFIG_MODULES is not set 78# CONFIG_MODULES is not set
80CONFIG_BLOCK=y 79CONFIG_BLOCK=y
81# CONFIG_LBD is not set 80# CONFIG_LBD is not set
82# CONFIG_LSF is not set
83# CONFIG_BLK_DEV_BSG is not set 81# CONFIG_BLK_DEV_BSG is not set
84# CONFIG_BLK_DEV_INTEGRITY is not set 82# CONFIG_BLK_DEV_INTEGRITY is not set
85 83
@@ -96,6 +94,10 @@ CONFIG_IOSCHED_NOOP=y
96CONFIG_DEFAULT_NOOP=y 94CONFIG_DEFAULT_NOOP=y
97CONFIG_DEFAULT_IOSCHED="noop" 95CONFIG_DEFAULT_IOSCHED="noop"
98CONFIG_CLASSIC_RCU=y 96CONFIG_CLASSIC_RCU=y
97# CONFIG_TREE_RCU is not set
98# CONFIG_PREEMPT_RCU is not set
99# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_PREEMPT_RCU_TRACE is not set
99# CONFIG_FREEZER is not set 101# CONFIG_FREEZER is not set
100 102
101# 103#
@@ -103,6 +105,7 @@ CONFIG_CLASSIC_RCU=y
103# 105#
104CONFIG_CPU_SH2=y 106CONFIG_CPU_SH2=y
105CONFIG_CPU_SUBTYPE_SH7619=y 107CONFIG_CPU_SUBTYPE_SH7619=y
108# CONFIG_CPU_SUBTYPE_SH7201 is not set
106# CONFIG_CPU_SUBTYPE_SH7203 is not set 109# CONFIG_CPU_SUBTYPE_SH7203 is not set
107# CONFIG_CPU_SUBTYPE_SH7206 is not set 110# CONFIG_CPU_SUBTYPE_SH7206 is not set
108# CONFIG_CPU_SUBTYPE_SH7263 is not set 111# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -164,7 +167,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
164CONFIG_SPARSEMEM_STATIC=y 167CONFIG_SPARSEMEM_STATIC=y
165CONFIG_PAGEFLAGS_EXTENDED=y 168CONFIG_PAGEFLAGS_EXTENDED=y
166CONFIG_SPLIT_PTLOCK_CPUS=4 169CONFIG_SPLIT_PTLOCK_CPUS=4
167# CONFIG_RESOURCES_64BIT is not set
168# CONFIG_PHYS_ADDR_T_64BIT is not set 170# CONFIG_PHYS_ADDR_T_64BIT is not set
169CONFIG_ZONE_DMA_FLAG=0 171CONFIG_ZONE_DMA_FLAG=0
170CONFIG_NR_QUICK=2 172CONFIG_NR_QUICK=2
@@ -244,7 +246,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
244# 246#
245# Bus options 247# Bus options
246# 248#
247# CONFIG_CF_ENABLER is not set
248# CONFIG_ARCH_SUPPORTS_MSI is not set 249# CONFIG_ARCH_SUPPORTS_MSI is not set
249 250
250# 251#
@@ -256,6 +257,12 @@ CONFIG_BINFMT_ZFLAT=y
256# CONFIG_BINFMT_SHARED_FLAT is not set 257# CONFIG_BINFMT_SHARED_FLAT is not set
257# CONFIG_HAVE_AOUT is not set 258# CONFIG_HAVE_AOUT is not set
258# CONFIG_BINFMT_MISC is not set 259# CONFIG_BINFMT_MISC is not set
260
261#
262# Power management options (EXPERIMENTAL)
263#
264# CONFIG_PM is not set
265# CONFIG_CPU_IDLE is not set
259# CONFIG_NET is not set 266# CONFIG_NET is not set
260 267
261# 268#
@@ -359,6 +366,7 @@ CONFIG_BLK_DEV=y
359CONFIG_MISC_DEVICES=y 366CONFIG_MISC_DEVICES=y
360# CONFIG_EEPROM_93CX6 is not set 367# CONFIG_EEPROM_93CX6 is not set
361# CONFIG_ENCLOSURE_SERVICES is not set 368# CONFIG_ENCLOSURE_SERVICES is not set
369# CONFIG_C2PORT is not set
362CONFIG_HAVE_IDE=y 370CONFIG_HAVE_IDE=y
363# CONFIG_IDE is not set 371# CONFIG_IDE is not set
364 372
@@ -439,11 +447,11 @@ CONFIG_SERIAL_CORE_CONSOLE=y
439# CONFIG_THERMAL is not set 447# CONFIG_THERMAL is not set
440# CONFIG_THERMAL_HWMON is not set 448# CONFIG_THERMAL_HWMON is not set
441# CONFIG_WATCHDOG is not set 449# CONFIG_WATCHDOG is not set
450CONFIG_SSB_POSSIBLE=y
442 451
443# 452#
444# Sonics Silicon Backplane 453# Sonics Silicon Backplane
445# 454#
446CONFIG_SSB_POSSIBLE=y
447# CONFIG_SSB is not set 455# CONFIG_SSB is not set
448 456
449# 457#
@@ -453,7 +461,7 @@ CONFIG_SSB_POSSIBLE=y
453# CONFIG_MFD_SM501 is not set 461# CONFIG_MFD_SM501 is not set
454# CONFIG_HTC_PASIC3 is not set 462# CONFIG_HTC_PASIC3 is not set
455# CONFIG_MFD_TMIO is not set 463# CONFIG_MFD_TMIO is not set
456# CONFIG_MFD_WM8400 is not set 464# CONFIG_REGULATOR is not set
457 465
458# 466#
459# Multimedia devices 467# Multimedia devices
@@ -506,7 +514,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
506# 514#
507 515
508# 516#
509# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 517# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
510# 518#
511# CONFIG_USB_GADGET is not set 519# CONFIG_USB_GADGET is not set
512# CONFIG_MMC is not set 520# CONFIG_MMC is not set
@@ -557,10 +565,7 @@ CONFIG_PROC_SYSCTL=y
557# CONFIG_SYSFS is not set 565# CONFIG_SYSFS is not set
558# CONFIG_TMPFS is not set 566# CONFIG_TMPFS is not set
559# CONFIG_HUGETLB_PAGE is not set 567# CONFIG_HUGETLB_PAGE is not set
560 568CONFIG_MISC_FILESYSTEMS=y
561#
562# Miscellaneous filesystems
563#
564# CONFIG_ADFS_FS is not set 569# CONFIG_ADFS_FS is not set
565# CONFIG_AFFS_FS is not set 570# CONFIG_AFFS_FS is not set
566# CONFIG_HFS_FS is not set 571# CONFIG_HFS_FS is not set
@@ -602,12 +607,19 @@ CONFIG_FRAME_WARN=1024
602# CONFIG_DEBUG_MEMORY_INIT is not set 607# CONFIG_DEBUG_MEMORY_INIT is not set
603# CONFIG_RCU_CPU_STALL_DETECTOR is not set 608# CONFIG_RCU_CPU_STALL_DETECTOR is not set
604# CONFIG_LATENCYTOP is not set 609# CONFIG_LATENCYTOP is not set
605CONFIG_NOP_TRACER=y 610CONFIG_HAVE_FUNCTION_TRACER=y
606CONFIG_HAVE_FTRACE=y 611CONFIG_HAVE_DYNAMIC_FTRACE=y
612CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
613
614#
615# Tracers
616#
607# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 617# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
608# CONFIG_SAMPLES is not set 618# CONFIG_SAMPLES is not set
619CONFIG_HAVE_ARCH_KGDB=y
609# CONFIG_SH_STANDARD_BIOS is not set 620# CONFIG_SH_STANDARD_BIOS is not set
610# CONFIG_EARLY_SCIF_CONSOLE is not set 621# CONFIG_EARLY_SCIF_CONSOLE is not set
622# CONFIG_MORE_COMPILE_OPTIONS is not set
611 623
612# 624#
613# Security options 625# Security options
@@ -621,6 +633,7 @@ CONFIG_HAVE_FTRACE=y
621# Library routines 633# Library routines
622# 634#
623CONFIG_BITREVERSE=y 635CONFIG_BITREVERSE=y
636CONFIG_GENERIC_FIND_LAST_BIT=y
624# CONFIG_CRC_CCITT is not set 637# CONFIG_CRC_CCITT is not set
625# CONFIG_CRC16 is not set 638# CONFIG_CRC16 is not set
626# CONFIG_CRC_T10DIF is not set 639# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7705_defconfig b/arch/sh/configs/se7705_defconfig
index d88190fdd7c1..8574d6eb00a3 100644
--- a/arch/sh/configs/se7705_defconfig
+++ b/arch/sh/configs/se7705_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:04:52 2008 4# Fri Jan 9 17:37:50 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -68,12 +70,10 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 70CONFIG_SHMEM=y
69CONFIG_AIO=y 71CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 72CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_PCI_QUIRKS=y
72CONFIG_SLAB=y 73CONFIG_SLAB=y
73# CONFIG_SLUB is not set 74# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set 75# CONFIG_SLOB is not set
75# CONFIG_PROFILING is not set 76# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set
77CONFIG_HAVE_OPROFILE=y 77CONFIG_HAVE_OPROFILE=y
78CONFIG_HAVE_IOREMAP_PROT=y 78CONFIG_HAVE_IOREMAP_PROT=y
79CONFIG_HAVE_KPROBES=y 79CONFIG_HAVE_KPROBES=y
@@ -83,17 +83,14 @@ CONFIG_HAVE_CLK=y
83CONFIG_HAVE_GENERIC_DMA_COHERENT=y 83CONFIG_HAVE_GENERIC_DMA_COHERENT=y
84CONFIG_SLABINFO=y 84CONFIG_SLABINFO=y
85CONFIG_RT_MUTEXES=y 85CONFIG_RT_MUTEXES=y
86# CONFIG_TINY_SHMEM is not set
87CONFIG_BASE_SMALL=0 86CONFIG_BASE_SMALL=0
88CONFIG_MODULES=y 87CONFIG_MODULES=y
89# CONFIG_MODULE_FORCE_LOAD is not set 88# CONFIG_MODULE_FORCE_LOAD is not set
90# CONFIG_MODULE_UNLOAD is not set 89# CONFIG_MODULE_UNLOAD is not set
91# CONFIG_MODVERSIONS is not set 90# CONFIG_MODVERSIONS is not set
92# CONFIG_MODULE_SRCVERSION_ALL is not set 91# CONFIG_MODULE_SRCVERSION_ALL is not set
93CONFIG_KMOD=y
94CONFIG_BLOCK=y 92CONFIG_BLOCK=y
95# CONFIG_LBD is not set 93# CONFIG_LBD is not set
96# CONFIG_LSF is not set
97# CONFIG_BLK_DEV_BSG is not set 94# CONFIG_BLK_DEV_BSG is not set
98# CONFIG_BLK_DEV_INTEGRITY is not set 95# CONFIG_BLK_DEV_INTEGRITY is not set
99 96
@@ -110,6 +107,10 @@ CONFIG_DEFAULT_AS=y
110# CONFIG_DEFAULT_NOOP is not set 107# CONFIG_DEFAULT_NOOP is not set
111CONFIG_DEFAULT_IOSCHED="anticipatory" 108CONFIG_DEFAULT_IOSCHED="anticipatory"
112CONFIG_CLASSIC_RCU=y 109CONFIG_CLASSIC_RCU=y
110# CONFIG_TREE_RCU is not set
111# CONFIG_PREEMPT_RCU is not set
112# CONFIG_TREE_RCU_TRACE is not set
113# CONFIG_PREEMPT_RCU_TRACE is not set
113# CONFIG_FREEZER is not set 114# CONFIG_FREEZER is not set
114 115
115# 116#
@@ -117,6 +118,7 @@ CONFIG_CLASSIC_RCU=y
117# 118#
118CONFIG_CPU_SH3=y 119CONFIG_CPU_SH3=y
119# CONFIG_CPU_SUBTYPE_SH7619 is not set 120# CONFIG_CPU_SUBTYPE_SH7619 is not set
121# CONFIG_CPU_SUBTYPE_SH7201 is not set
120# CONFIG_CPU_SUBTYPE_SH7203 is not set 122# CONFIG_CPU_SUBTYPE_SH7203 is not set
121# CONFIG_CPU_SUBTYPE_SH7206 is not set 123# CONFIG_CPU_SUBTYPE_SH7206 is not set
122# CONFIG_CPU_SUBTYPE_SH7263 is not set 124# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -180,7 +182,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
180CONFIG_SPARSEMEM_STATIC=y 182CONFIG_SPARSEMEM_STATIC=y
181CONFIG_PAGEFLAGS_EXTENDED=y 183CONFIG_PAGEFLAGS_EXTENDED=y
182CONFIG_SPLIT_PTLOCK_CPUS=4 184CONFIG_SPLIT_PTLOCK_CPUS=4
183# CONFIG_RESOURCES_64BIT is not set
184# CONFIG_PHYS_ADDR_T_64BIT is not set 185# CONFIG_PHYS_ADDR_T_64BIT is not set
185CONFIG_ZONE_DMA_FLAG=0 186CONFIG_ZONE_DMA_FLAG=0
186CONFIG_NR_QUICK=2 187CONFIG_NR_QUICK=2
@@ -258,7 +259,6 @@ CONFIG_HZ=250
258# CONFIG_PREEMPT_NONE is not set 259# CONFIG_PREEMPT_NONE is not set
259# CONFIG_PREEMPT_VOLUNTARY is not set 260# CONFIG_PREEMPT_VOLUNTARY is not set
260CONFIG_PREEMPT=y 261CONFIG_PREEMPT=y
261# CONFIG_PREEMPT_RCU is not set
262CONFIG_GUSA=y 262CONFIG_GUSA=y
263# CONFIG_GUSA_RB is not set 263# CONFIG_GUSA_RB is not set
264 264
@@ -272,10 +272,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
272# 272#
273# Bus options 273# Bus options
274# 274#
275CONFIG_CF_ENABLER=y
276# CONFIG_CF_AREA5 is not set
277CONFIG_CF_AREA6=y
278CONFIG_CF_BASE_ADDR=0xb8000000
279# CONFIG_ARCH_SUPPORTS_MSI is not set 275# CONFIG_ARCH_SUPPORTS_MSI is not set
280 276
281# 277#
@@ -285,11 +281,18 @@ CONFIG_BINFMT_ELF=y
285# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 281# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
286# CONFIG_HAVE_AOUT is not set 282# CONFIG_HAVE_AOUT is not set
287# CONFIG_BINFMT_MISC is not set 283# CONFIG_BINFMT_MISC is not set
284
285#
286# Power management options (EXPERIMENTAL)
287#
288# CONFIG_PM is not set
289# CONFIG_CPU_IDLE is not set
288CONFIG_NET=y 290CONFIG_NET=y
289 291
290# 292#
291# Networking options 293# Networking options
292# 294#
295CONFIG_COMPAT_NET_DEV_OPS=y
293CONFIG_PACKET=y 296CONFIG_PACKET=y
294# CONFIG_PACKET_MMAP is not set 297# CONFIG_PACKET_MMAP is not set
295CONFIG_UNIX=y 298CONFIG_UNIX=y
@@ -345,6 +348,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 348# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 349# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 350# CONFIG_NET_SCHED is not set
351# CONFIG_DCB is not set
348 352
349# 353#
350# Network testing 354# Network testing
@@ -360,8 +364,8 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 364# CONFIG_CFG80211 is not set
361# CONFIG_WIRELESS_OLD_REGULATORY is not set 365# CONFIG_WIRELESS_OLD_REGULATORY is not set
362# CONFIG_WIRELESS_EXT is not set 366# CONFIG_WIRELESS_EXT is not set
367# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 368# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set
365# CONFIG_RFKILL is not set 369# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 370# CONFIG_NET_9P is not set
367 371
@@ -465,6 +469,7 @@ CONFIG_BLK_DEV_RAM_SIZE=8192
465CONFIG_MISC_DEVICES=y 469CONFIG_MISC_DEVICES=y
466# CONFIG_EEPROM_93CX6 is not set 470# CONFIG_EEPROM_93CX6 is not set
467# CONFIG_ENCLOSURE_SERVICES is not set 471# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_C2PORT is not set
468CONFIG_HAVE_IDE=y 473CONFIG_HAVE_IDE=y
469# CONFIG_IDE is not set 474# CONFIG_IDE is not set
470 475
@@ -491,6 +496,7 @@ CONFIG_NET_ETHERNET=y
491CONFIG_STNIC=y 496CONFIG_STNIC=y
492# CONFIG_SMC91X is not set 497# CONFIG_SMC91X is not set
493# CONFIG_SMC911X is not set 498# CONFIG_SMC911X is not set
499# CONFIG_SMSC911X is not set
494# CONFIG_IBM_NEW_EMAC_ZMII is not set 500# CONFIG_IBM_NEW_EMAC_ZMII is not set
495# CONFIG_IBM_NEW_EMAC_RGMII is not set 501# CONFIG_IBM_NEW_EMAC_RGMII is not set
496# CONFIG_IBM_NEW_EMAC_TAH is not set 502# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -583,6 +589,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
583CONFIG_SERIAL_CORE=y 589CONFIG_SERIAL_CORE=y
584CONFIG_SERIAL_CORE_CONSOLE=y 590CONFIG_SERIAL_CORE_CONSOLE=y
585CONFIG_UNIX98_PTYS=y 591CONFIG_UNIX98_PTYS=y
592# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
586# CONFIG_LEGACY_PTYS is not set 593# CONFIG_LEGACY_PTYS is not set
587# CONFIG_IPMI_HANDLER is not set 594# CONFIG_IPMI_HANDLER is not set
588CONFIG_HW_RANDOM=y 595CONFIG_HW_RANDOM=y
@@ -609,11 +616,11 @@ CONFIG_HWMON=y
609# CONFIG_THERMAL is not set 616# CONFIG_THERMAL is not set
610# CONFIG_THERMAL_HWMON is not set 617# CONFIG_THERMAL_HWMON is not set
611# CONFIG_WATCHDOG is not set 618# CONFIG_WATCHDOG is not set
619CONFIG_SSB_POSSIBLE=y
612 620
613# 621#
614# Sonics Silicon Backplane 622# Sonics Silicon Backplane
615# 623#
616CONFIG_SSB_POSSIBLE=y
617# CONFIG_SSB is not set 624# CONFIG_SSB is not set
618 625
619# 626#
@@ -623,7 +630,7 @@ CONFIG_SSB_POSSIBLE=y
623# CONFIG_MFD_SM501 is not set 630# CONFIG_MFD_SM501 is not set
624# CONFIG_HTC_PASIC3 is not set 631# CONFIG_HTC_PASIC3 is not set
625# CONFIG_MFD_TMIO is not set 632# CONFIG_MFD_TMIO is not set
626# CONFIG_MFD_WM8400 is not set 633# CONFIG_REGULATOR is not set
627 634
628# 635#
629# Multimedia devices 636# Multimedia devices
@@ -677,7 +684,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
677# 684#
678 685
679# 686#
680# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 687# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
681# 688#
682# CONFIG_USB_GADGET is not set 689# CONFIG_USB_GADGET is not set
683# CONFIG_MMC is not set 690# CONFIG_MMC is not set
@@ -734,10 +741,7 @@ CONFIG_PROC_PAGE_MONITOR=y
734# CONFIG_TMPFS is not set 741# CONFIG_TMPFS is not set
735# CONFIG_HUGETLBFS is not set 742# CONFIG_HUGETLBFS is not set
736# CONFIG_HUGETLB_PAGE is not set 743# CONFIG_HUGETLB_PAGE is not set
737 744CONFIG_MISC_FILESYSTEMS=y
738#
739# Miscellaneous filesystems
740#
741# CONFIG_ADFS_FS is not set 745# CONFIG_ADFS_FS is not set
742# CONFIG_AFFS_FS is not set 746# CONFIG_AFFS_FS is not set
743# CONFIG_HFS_FS is not set 747# CONFIG_HFS_FS is not set
@@ -806,13 +810,19 @@ CONFIG_FRAME_WARN=1024
806# CONFIG_DEBUG_MEMORY_INIT is not set 810# CONFIG_DEBUG_MEMORY_INIT is not set
807# CONFIG_RCU_CPU_STALL_DETECTOR is not set 811# CONFIG_RCU_CPU_STALL_DETECTOR is not set
808# CONFIG_LATENCYTOP is not set 812# CONFIG_LATENCYTOP is not set
809CONFIG_NOP_TRACER=y 813CONFIG_HAVE_FUNCTION_TRACER=y
810CONFIG_HAVE_FTRACE=y 814CONFIG_HAVE_DYNAMIC_FTRACE=y
815CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
816
817#
818# Tracers
819#
811# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 820# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
812# CONFIG_SAMPLES is not set 821# CONFIG_SAMPLES is not set
822CONFIG_HAVE_ARCH_KGDB=y
813# CONFIG_SH_STANDARD_BIOS is not set 823# CONFIG_SH_STANDARD_BIOS is not set
814# CONFIG_EARLY_SCIF_CONSOLE is not set 824# CONFIG_EARLY_SCIF_CONSOLE is not set
815# CONFIG_SH_KGDB is not set 825# CONFIG_MORE_COMPILE_OPTIONS is not set
816 826
817# 827#
818# Security options 828# Security options
@@ -827,6 +837,7 @@ CONFIG_CRYPTO=y
827# 837#
828# CONFIG_CRYPTO_FIPS is not set 838# CONFIG_CRYPTO_FIPS is not set
829# CONFIG_CRYPTO_MANAGER is not set 839# CONFIG_CRYPTO_MANAGER is not set
840# CONFIG_CRYPTO_MANAGER2 is not set
830# CONFIG_CRYPTO_GF128MUL is not set 841# CONFIG_CRYPTO_GF128MUL is not set
831# CONFIG_CRYPTO_NULL is not set 842# CONFIG_CRYPTO_NULL is not set
832# CONFIG_CRYPTO_CRYPTD is not set 843# CONFIG_CRYPTO_CRYPTD is not set
@@ -909,6 +920,7 @@ CONFIG_CRYPTO_HW=y
909# Library routines 920# Library routines
910# 921#
911CONFIG_BITREVERSE=y 922CONFIG_BITREVERSE=y
923CONFIG_GENERIC_FIND_LAST_BIT=y
912CONFIG_CRC_CCITT=y 924CONFIG_CRC_CCITT=y
913# CONFIG_CRC16 is not set 925# CONFIG_CRC16 is not set
914# CONFIG_CRC_T10DIF is not set 926# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7712_defconfig b/arch/sh/configs/se7712_defconfig
index 869ab1737deb..e31ea84f116d 100644
--- a/arch/sh/configs/se7712_defconfig
+++ b/arch/sh/configs/se7712_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:08:12 2008 4# Fri Jan 9 17:40:12 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,6 +15,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
15# CONFIG_GENERIC_GPIO is not set 15# CONFIG_GENERIC_GPIO is not set
16CONFIG_GENERIC_TIME=y 16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_CLOCKEVENTS=y 17CONFIG_GENERIC_CLOCKEVENTS=y
18# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
19# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
18CONFIG_STACKTRACE_SUPPORT=y 20CONFIG_STACKTRACE_SUPPORT=y
19CONFIG_LOCKDEP_SUPPORT=y 21CONFIG_LOCKDEP_SUPPORT=y
20CONFIG_HAVE_LATENCYTOP_SUPPORT=y 22CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -55,6 +57,7 @@ CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y 57CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y 58CONFIG_KALLSYMS=y
57CONFIG_KALLSYMS_ALL=y 59CONFIG_KALLSYMS_ALL=y
60CONFIG_KALLSYMS_STRIP_GENERATED=y
58# CONFIG_KALLSYMS_EXTRA_PASS is not set 61# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y 62CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y 63CONFIG_PRINTK=y
@@ -71,12 +74,10 @@ CONFIG_EVENTFD=y
71# CONFIG_SHMEM is not set 74# CONFIG_SHMEM is not set
72CONFIG_AIO=y 75CONFIG_AIO=y
73CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
74CONFIG_PCI_QUIRKS=y
75CONFIG_SLAB=y 77CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
82CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -87,18 +88,15 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90CONFIG_TINY_SHMEM=y
91CONFIG_BASE_SMALL=1 91CONFIG_BASE_SMALL=1
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
94# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
95# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
96# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
97CONFIG_KMOD=y
98CONFIG_BLOCK=y 97CONFIG_BLOCK=y
99# CONFIG_LBD is not set 98# CONFIG_LBD is not set
100# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
101# CONFIG_LSF is not set
102# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
103# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
104 102
@@ -115,6 +113,10 @@ CONFIG_IOSCHED_NOOP=y
115CONFIG_DEFAULT_NOOP=y 113CONFIG_DEFAULT_NOOP=y
116CONFIG_DEFAULT_IOSCHED="noop" 114CONFIG_DEFAULT_IOSCHED="noop"
117CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
118# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
119 121
120# 122#
@@ -122,6 +124,7 @@ CONFIG_CLASSIC_RCU=y
122# 124#
123CONFIG_CPU_SH3=y 125CONFIG_CPU_SH3=y
124# CONFIG_CPU_SUBTYPE_SH7619 is not set 126# CONFIG_CPU_SUBTYPE_SH7619 is not set
127# CONFIG_CPU_SUBTYPE_SH7201 is not set
125# CONFIG_CPU_SUBTYPE_SH7203 is not set 128# CONFIG_CPU_SUBTYPE_SH7203 is not set
126# CONFIG_CPU_SUBTYPE_SH7206 is not set 129# CONFIG_CPU_SUBTYPE_SH7206 is not set
127# CONFIG_CPU_SUBTYPE_SH7263 is not set 130# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -185,7 +188,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
185CONFIG_SPARSEMEM_STATIC=y 188CONFIG_SPARSEMEM_STATIC=y
186CONFIG_PAGEFLAGS_EXTENDED=y 189CONFIG_PAGEFLAGS_EXTENDED=y
187CONFIG_SPLIT_PTLOCK_CPUS=4 190CONFIG_SPLIT_PTLOCK_CPUS=4
188# CONFIG_RESOURCES_64BIT is not set
189# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
190CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
191CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -277,10 +279,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
277# 279#
278# Bus options 280# Bus options
279# 281#
280CONFIG_CF_ENABLER=y
281# CONFIG_CF_AREA5 is not set
282CONFIG_CF_AREA6=y
283CONFIG_CF_BASE_ADDR=0xb8000000
284# CONFIG_ARCH_SUPPORTS_MSI is not set 282# CONFIG_ARCH_SUPPORTS_MSI is not set
285# CONFIG_PCCARD is not set 283# CONFIG_PCCARD is not set
286 284
@@ -291,11 +289,18 @@ CONFIG_BINFMT_ELF=y
291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 289# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
292# CONFIG_HAVE_AOUT is not set 290# CONFIG_HAVE_AOUT is not set
293# CONFIG_BINFMT_MISC is not set 291# CONFIG_BINFMT_MISC is not set
292
293#
294# Power management options (EXPERIMENTAL)
295#
296# CONFIG_PM is not set
297# CONFIG_CPU_IDLE is not set
294CONFIG_NET=y 298CONFIG_NET=y
295 299
296# 300#
297# Networking options 301# Networking options
298# 302#
303CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 304CONFIG_PACKET=y
300CONFIG_PACKET_MMAP=y 305CONFIG_PACKET_MMAP=y
301CONFIG_UNIX=y 306CONFIG_UNIX=y
@@ -376,6 +381,7 @@ CONFIG_NET_SCH_TBF=y
376CONFIG_NET_SCH_GRED=y 381CONFIG_NET_SCH_GRED=y
377CONFIG_NET_SCH_DSMARK=y 382CONFIG_NET_SCH_DSMARK=y
378CONFIG_NET_SCH_NETEM=y 383CONFIG_NET_SCH_NETEM=y
384# CONFIG_NET_SCH_DRR is not set
379 385
380# 386#
381# Classification 387# Classification
@@ -394,6 +400,7 @@ CONFIG_NET_CLS_FW=y
394# CONFIG_NET_CLS_ACT is not set 400# CONFIG_NET_CLS_ACT is not set
395CONFIG_NET_CLS_IND=y 401CONFIG_NET_CLS_IND=y
396CONFIG_NET_SCH_FIFO=y 402CONFIG_NET_SCH_FIFO=y
403# CONFIG_DCB is not set
397 404
398# 405#
399# Network testing 406# Network testing
@@ -410,8 +417,8 @@ CONFIG_WIRELESS=y
410# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
411# CONFIG_WIRELESS_OLD_REGULATORY is not set 418# CONFIG_WIRELESS_OLD_REGULATORY is not set
412# CONFIG_WIRELESS_EXT is not set 419# CONFIG_WIRELESS_EXT is not set
420# CONFIG_LIB80211 is not set
413# CONFIG_MAC80211 is not set 421# CONFIG_MAC80211 is not set
414# CONFIG_IEEE80211 is not set
415# CONFIG_RFKILL is not set 422# CONFIG_RFKILL is not set
416# CONFIG_NET_9P is not set 423# CONFIG_NET_9P is not set
417 424
@@ -518,6 +525,7 @@ CONFIG_BLK_DEV=y
518CONFIG_MISC_DEVICES=y 525CONFIG_MISC_DEVICES=y
519# CONFIG_EEPROM_93CX6 is not set 526# CONFIG_EEPROM_93CX6 is not set
520# CONFIG_ENCLOSURE_SERVICES is not set 527# CONFIG_ENCLOSURE_SERVICES is not set
528# CONFIG_C2PORT is not set
521CONFIG_HAVE_IDE=y 529CONFIG_HAVE_IDE=y
522# CONFIG_IDE is not set 530# CONFIG_IDE is not set
523 531
@@ -560,6 +568,7 @@ CONFIG_SCSI_WAIT_SCAN=m
560# CONFIG_SCSI_SRP_ATTRS is not set 568# CONFIG_SCSI_SRP_ATTRS is not set
561CONFIG_SCSI_LOWLEVEL=y 569CONFIG_SCSI_LOWLEVEL=y
562# CONFIG_ISCSI_TCP is not set 570# CONFIG_ISCSI_TCP is not set
571# CONFIG_LIBFC is not set
563# CONFIG_SCSI_DEBUG is not set 572# CONFIG_SCSI_DEBUG is not set
564# CONFIG_SCSI_DH is not set 573# CONFIG_SCSI_DH is not set
565CONFIG_ATA=y 574CONFIG_ATA=y
@@ -591,6 +600,9 @@ CONFIG_PHYLIB=y
591# CONFIG_BROADCOM_PHY is not set 600# CONFIG_BROADCOM_PHY is not set
592# CONFIG_ICPLUS_PHY is not set 601# CONFIG_ICPLUS_PHY is not set
593# CONFIG_REALTEK_PHY is not set 602# CONFIG_REALTEK_PHY is not set
603# CONFIG_NATIONAL_PHY is not set
604# CONFIG_STE10XP is not set
605# CONFIG_LSI_ET1011C_PHY is not set
594# CONFIG_FIXED_PHY is not set 606# CONFIG_FIXED_PHY is not set
595CONFIG_MDIO_BITBANG=y 607CONFIG_MDIO_BITBANG=y
596CONFIG_NET_ETHERNET=y 608CONFIG_NET_ETHERNET=y
@@ -600,6 +612,7 @@ CONFIG_MII=y
600CONFIG_SH_ETH=y 612CONFIG_SH_ETH=y
601# CONFIG_SMC91X is not set 613# CONFIG_SMC91X is not set
602# CONFIG_SMC911X is not set 614# CONFIG_SMC911X is not set
615# CONFIG_SMSC911X is not set
603# CONFIG_IBM_NEW_EMAC_ZMII is not set 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
604# CONFIG_IBM_NEW_EMAC_RGMII is not set 617# CONFIG_IBM_NEW_EMAC_RGMII is not set
605# CONFIG_IBM_NEW_EMAC_TAH is not set 618# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -658,6 +671,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
658CONFIG_SERIAL_CORE=y 671CONFIG_SERIAL_CORE=y
659CONFIG_SERIAL_CORE_CONSOLE=y 672CONFIG_SERIAL_CORE_CONSOLE=y
660CONFIG_UNIX98_PTYS=y 673CONFIG_UNIX98_PTYS=y
674# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
661# CONFIG_LEGACY_PTYS is not set 675# CONFIG_LEGACY_PTYS is not set
662# CONFIG_IPMI_HANDLER is not set 676# CONFIG_IPMI_HANDLER is not set
663CONFIG_HW_RANDOM=m 677CONFIG_HW_RANDOM=m
@@ -672,11 +686,11 @@ CONFIG_HW_RANDOM=m
672# CONFIG_THERMAL is not set 686# CONFIG_THERMAL is not set
673# CONFIG_THERMAL_HWMON is not set 687# CONFIG_THERMAL_HWMON is not set
674# CONFIG_WATCHDOG is not set 688# CONFIG_WATCHDOG is not set
689CONFIG_SSB_POSSIBLE=y
675 690
676# 691#
677# Sonics Silicon Backplane 692# Sonics Silicon Backplane
678# 693#
679CONFIG_SSB_POSSIBLE=y
680# CONFIG_SSB is not set 694# CONFIG_SSB is not set
681 695
682# 696#
@@ -686,7 +700,7 @@ CONFIG_SSB_POSSIBLE=y
686# CONFIG_MFD_SM501 is not set 700# CONFIG_MFD_SM501 is not set
687# CONFIG_HTC_PASIC3 is not set 701# CONFIG_HTC_PASIC3 is not set
688# CONFIG_MFD_TMIO is not set 702# CONFIG_MFD_TMIO is not set
689# CONFIG_MFD_WM8400 is not set 703# CONFIG_REGULATOR is not set
690 704
691# 705#
692# Multimedia devices 706# Multimedia devices
@@ -730,7 +744,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
730# 744#
731 745
732# 746#
733# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 747# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
734# 748#
735# CONFIG_USB_GADGET is not set 749# CONFIG_USB_GADGET is not set
736# CONFIG_MMC is not set 750# CONFIG_MMC is not set
@@ -748,6 +762,7 @@ CONFIG_LEDS_CLASS=y
748CONFIG_LEDS_TRIGGERS=y 762CONFIG_LEDS_TRIGGERS=y
749# CONFIG_LEDS_TRIGGER_TIMER is not set 763# CONFIG_LEDS_TRIGGER_TIMER is not set
750# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 764# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
765# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
751# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 766# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
752# CONFIG_ACCESSIBILITY is not set 767# CONFIG_ACCESSIBILITY is not set
753# CONFIG_RTC_CLASS is not set 768# CONFIG_RTC_CLASS is not set
@@ -809,10 +824,7 @@ CONFIG_TMPFS=y
809# CONFIG_HUGETLBFS is not set 824# CONFIG_HUGETLBFS is not set
810# CONFIG_HUGETLB_PAGE is not set 825# CONFIG_HUGETLB_PAGE is not set
811# CONFIG_CONFIGFS_FS is not set 826# CONFIG_CONFIGFS_FS is not set
812 827CONFIG_MISC_FILESYSTEMS=y
813#
814# Miscellaneous filesystems
815#
816# CONFIG_ADFS_FS is not set 828# CONFIG_ADFS_FS is not set
817# CONFIG_AFFS_FS is not set 829# CONFIG_AFFS_FS is not set
818# CONFIG_HFS_FS is not set 830# CONFIG_HFS_FS is not set
@@ -902,6 +914,7 @@ CONFIG_DEBUG_INFO=y
902# CONFIG_DEBUG_MEMORY_INIT is not set 914# CONFIG_DEBUG_MEMORY_INIT is not set
903# CONFIG_DEBUG_LIST is not set 915# CONFIG_DEBUG_LIST is not set
904# CONFIG_DEBUG_SG is not set 916# CONFIG_DEBUG_SG is not set
917# CONFIG_DEBUG_NOTIFIERS is not set
905CONFIG_FRAME_POINTER=y 918CONFIG_FRAME_POINTER=y
906# CONFIG_RCU_TORTURE_TEST is not set 919# CONFIG_RCU_TORTURE_TEST is not set
907# CONFIG_RCU_CPU_STALL_DETECTOR is not set 920# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -910,16 +923,24 @@ CONFIG_FRAME_POINTER=y
910# CONFIG_FAULT_INJECTION is not set 923# CONFIG_FAULT_INJECTION is not set
911# CONFIG_LATENCYTOP is not set 924# CONFIG_LATENCYTOP is not set
912CONFIG_SYSCTL_SYSCALL_CHECK=y 925CONFIG_SYSCTL_SYSCALL_CHECK=y
913CONFIG_NOP_TRACER=y 926CONFIG_HAVE_FUNCTION_TRACER=y
914CONFIG_HAVE_FTRACE=y 927CONFIG_HAVE_DYNAMIC_FTRACE=y
915# CONFIG_FTRACE is not set 928CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
929
930#
931# Tracers
932#
933# CONFIG_FUNCTION_TRACER is not set
916# CONFIG_IRQSOFF_TRACER is not set 934# CONFIG_IRQSOFF_TRACER is not set
917# CONFIG_SCHED_TRACER is not set 935# CONFIG_SCHED_TRACER is not set
918# CONFIG_CONTEXT_SWITCH_TRACER is not set 936# CONFIG_CONTEXT_SWITCH_TRACER is not set
919# CONFIG_BOOT_TRACER is not set 937# CONFIG_BOOT_TRACER is not set
938# CONFIG_TRACE_BRANCH_PROFILING is not set
920# CONFIG_STACK_TRACER is not set 939# CONFIG_STACK_TRACER is not set
921# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 940# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
922# CONFIG_SAMPLES is not set 941# CONFIG_SAMPLES is not set
942CONFIG_HAVE_ARCH_KGDB=y
943# CONFIG_KGDB is not set
923# CONFIG_SH_STANDARD_BIOS is not set 944# CONFIG_SH_STANDARD_BIOS is not set
924# CONFIG_EARLY_SCIF_CONSOLE is not set 945# CONFIG_EARLY_SCIF_CONSOLE is not set
925# CONFIG_DEBUG_BOOTMEM is not set 946# CONFIG_DEBUG_BOOTMEM is not set
@@ -927,7 +948,9 @@ CONFIG_HAVE_FTRACE=y
927# CONFIG_DEBUG_STACK_USAGE is not set 948# CONFIG_DEBUG_STACK_USAGE is not set
928# CONFIG_4KSTACKS is not set 949# CONFIG_4KSTACKS is not set
929# CONFIG_IRQSTACKS is not set 950# CONFIG_IRQSTACKS is not set
930# CONFIG_SH_KGDB is not set 951# CONFIG_DUMP_CODE is not set
952# CONFIG_SH_NO_BSS_INIT is not set
953# CONFIG_MORE_COMPILE_OPTIONS is not set
931 954
932# 955#
933# Security options 956# Security options
@@ -943,11 +966,16 @@ CONFIG_CRYPTO=y
943# 966#
944# CONFIG_CRYPTO_FIPS is not set 967# CONFIG_CRYPTO_FIPS is not set
945CONFIG_CRYPTO_ALGAPI=y 968CONFIG_CRYPTO_ALGAPI=y
969CONFIG_CRYPTO_ALGAPI2=y
946CONFIG_CRYPTO_AEAD=y 970CONFIG_CRYPTO_AEAD=y
971CONFIG_CRYPTO_AEAD2=y
947CONFIG_CRYPTO_BLKCIPHER=y 972CONFIG_CRYPTO_BLKCIPHER=y
973CONFIG_CRYPTO_BLKCIPHER2=y
948CONFIG_CRYPTO_HASH=y 974CONFIG_CRYPTO_HASH=y
949CONFIG_CRYPTO_RNG=y 975CONFIG_CRYPTO_HASH2=y
976CONFIG_CRYPTO_RNG2=y
950CONFIG_CRYPTO_MANAGER=y 977CONFIG_CRYPTO_MANAGER=y
978CONFIG_CRYPTO_MANAGER2=y
951# CONFIG_CRYPTO_GF128MUL is not set 979# CONFIG_CRYPTO_GF128MUL is not set
952# CONFIG_CRYPTO_NULL is not set 980# CONFIG_CRYPTO_NULL is not set
953# CONFIG_CRYPTO_CRYPTD is not set 981# CONFIG_CRYPTO_CRYPTD is not set
@@ -1030,6 +1058,7 @@ CONFIG_CRYPTO_HW=y
1030# Library routines 1058# Library routines
1031# 1059#
1032CONFIG_BITREVERSE=y 1060CONFIG_BITREVERSE=y
1061CONFIG_GENERIC_FIND_LAST_BIT=y
1033CONFIG_CRC_CCITT=y 1062CONFIG_CRC_CCITT=y
1034# CONFIG_CRC16 is not set 1063# CONFIG_CRC16 is not set
1035# CONFIG_CRC_T10DIF is not set 1064# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7721_defconfig b/arch/sh/configs/se7721_defconfig
index b52be14074d8..ad1bace3ad46 100644
--- a/arch/sh/configs/se7721_defconfig
+++ b/arch/sh/configs/se7721_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:12:06 2008 4# Fri Jan 9 17:43:33 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,6 +15,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
15# CONFIG_GENERIC_GPIO is not set 15# CONFIG_GENERIC_GPIO is not set
16CONFIG_GENERIC_TIME=y 16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_CLOCKEVENTS=y 17CONFIG_GENERIC_CLOCKEVENTS=y
18# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
19# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
18CONFIG_STACKTRACE_SUPPORT=y 20CONFIG_STACKTRACE_SUPPORT=y
19CONFIG_LOCKDEP_SUPPORT=y 21CONFIG_LOCKDEP_SUPPORT=y
20CONFIG_HAVE_LATENCYTOP_SUPPORT=y 22CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -59,6 +61,7 @@ CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y 61CONFIG_SYSCTL_SYSCALL=y
60CONFIG_KALLSYMS=y 62CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 63CONFIG_KALLSYMS_ALL=y
64CONFIG_KALLSYMS_STRIP_GENERATED=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 65# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y 66CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 67CONFIG_PRINTK=y
@@ -75,12 +78,10 @@ CONFIG_EVENTFD=y
75# CONFIG_SHMEM is not set 78# CONFIG_SHMEM is not set
76CONFIG_AIO=y 79CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 80CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLAB=y 81CONFIG_SLAB=y
80# CONFIG_SLUB is not set 82# CONFIG_SLUB is not set
81# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
82# CONFIG_PROFILING is not set 84# CONFIG_PROFILING is not set
83# CONFIG_MARKERS is not set
84CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
85# CONFIG_KPROBES is not set 86# CONFIG_KPROBES is not set
86CONFIG_HAVE_IOREMAP_PROT=y 87CONFIG_HAVE_IOREMAP_PROT=y
@@ -91,18 +92,15 @@ CONFIG_HAVE_CLK=y
91CONFIG_HAVE_GENERIC_DMA_COHERENT=y 92CONFIG_HAVE_GENERIC_DMA_COHERENT=y
92CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
93CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
94CONFIG_TINY_SHMEM=y
95CONFIG_BASE_SMALL=1 95CONFIG_BASE_SMALL=1
96CONFIG_MODULES=y 96CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
98# CONFIG_MODULE_UNLOAD is not set 98# CONFIG_MODULE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_IOSCHED_NOOP=y
119CONFIG_DEFAULT_NOOP=y 117CONFIG_DEFAULT_NOOP=y
120CONFIG_DEFAULT_IOSCHED="noop" 118CONFIG_DEFAULT_IOSCHED="noop"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH3=y 129CONFIG_CPU_SH3=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -280,10 +282,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda2"
280# 282#
281# Bus options 283# Bus options
282# 284#
283CONFIG_CF_ENABLER=y
284# CONFIG_CF_AREA5 is not set
285CONFIG_CF_AREA6=y
286CONFIG_CF_BASE_ADDR=0xb8000000
287# CONFIG_ARCH_SUPPORTS_MSI is not set 285# CONFIG_ARCH_SUPPORTS_MSI is not set
288# CONFIG_PCCARD is not set 286# CONFIG_PCCARD is not set
289 287
@@ -294,11 +292,18 @@ CONFIG_BINFMT_ELF=y
294# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 292# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
295# CONFIG_HAVE_AOUT is not set 293# CONFIG_HAVE_AOUT is not set
296# CONFIG_BINFMT_MISC is not set 294# CONFIG_BINFMT_MISC is not set
295
296#
297# Power management options (EXPERIMENTAL)
298#
299# CONFIG_PM is not set
300# CONFIG_CPU_IDLE is not set
297CONFIG_NET=y 301CONFIG_NET=y
298 302
299# 303#
300# Networking options 304# Networking options
301# 305#
306CONFIG_COMPAT_NET_DEV_OPS=y
302CONFIG_PACKET=y 307CONFIG_PACKET=y
303CONFIG_PACKET_MMAP=y 308CONFIG_PACKET_MMAP=y
304CONFIG_UNIX=y 309CONFIG_UNIX=y
@@ -379,6 +384,7 @@ CONFIG_NET_SCH_TBF=y
379CONFIG_NET_SCH_GRED=y 384CONFIG_NET_SCH_GRED=y
380CONFIG_NET_SCH_DSMARK=y 385CONFIG_NET_SCH_DSMARK=y
381CONFIG_NET_SCH_NETEM=y 386CONFIG_NET_SCH_NETEM=y
387# CONFIG_NET_SCH_DRR is not set
382 388
383# 389#
384# Classification 390# Classification
@@ -397,6 +403,7 @@ CONFIG_NET_CLS_FW=y
397# CONFIG_NET_CLS_ACT is not set 403# CONFIG_NET_CLS_ACT is not set
398CONFIG_NET_CLS_IND=y 404CONFIG_NET_CLS_IND=y
399CONFIG_NET_SCH_FIFO=y 405CONFIG_NET_SCH_FIFO=y
406# CONFIG_DCB is not set
400 407
401# 408#
402# Network testing 409# Network testing
@@ -413,8 +420,8 @@ CONFIG_WIRELESS=y
413# CONFIG_CFG80211 is not set 420# CONFIG_CFG80211 is not set
414# CONFIG_WIRELESS_OLD_REGULATORY is not set 421# CONFIG_WIRELESS_OLD_REGULATORY is not set
415# CONFIG_WIRELESS_EXT is not set 422# CONFIG_WIRELESS_EXT is not set
423# CONFIG_LIB80211 is not set
416# CONFIG_MAC80211 is not set 424# CONFIG_MAC80211 is not set
417# CONFIG_IEEE80211 is not set
418# CONFIG_RFKILL is not set 425# CONFIG_RFKILL is not set
419# CONFIG_NET_9P is not set 426# CONFIG_NET_9P is not set
420 427
@@ -522,6 +529,7 @@ CONFIG_BLK_DEV=y
522CONFIG_MISC_DEVICES=y 529CONFIG_MISC_DEVICES=y
523# CONFIG_EEPROM_93CX6 is not set 530# CONFIG_EEPROM_93CX6 is not set
524# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
532# CONFIG_C2PORT is not set
525CONFIG_HAVE_IDE=y 533CONFIG_HAVE_IDE=y
526# CONFIG_IDE is not set 534# CONFIG_IDE is not set
527 535
@@ -673,6 +681,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
673CONFIG_SERIAL_CORE=y 681CONFIG_SERIAL_CORE=y
674CONFIG_SERIAL_CORE_CONSOLE=y 682CONFIG_SERIAL_CORE_CONSOLE=y
675CONFIG_UNIX98_PTYS=y 683CONFIG_UNIX98_PTYS=y
684# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
676# CONFIG_LEGACY_PTYS is not set 685# CONFIG_LEGACY_PTYS is not set
677# CONFIG_IPMI_HANDLER is not set 686# CONFIG_IPMI_HANDLER is not set
678# CONFIG_HW_RANDOM is not set 687# CONFIG_HW_RANDOM is not set
@@ -686,11 +695,11 @@ CONFIG_UNIX98_PTYS=y
686# CONFIG_HWMON is not set 695# CONFIG_HWMON is not set
687CONFIG_THERMAL=y 696CONFIG_THERMAL=y
688# CONFIG_WATCHDOG is not set 697# CONFIG_WATCHDOG is not set
698CONFIG_SSB_POSSIBLE=y
689 699
690# 700#
691# Sonics Silicon Backplane 701# Sonics Silicon Backplane
692# 702#
693CONFIG_SSB_POSSIBLE=y
694# CONFIG_SSB is not set 703# CONFIG_SSB is not set
695 704
696# 705#
@@ -700,7 +709,7 @@ CONFIG_SSB_POSSIBLE=y
700# CONFIG_MFD_SM501 is not set 709# CONFIG_MFD_SM501 is not set
701# CONFIG_HTC_PASIC3 is not set 710# CONFIG_HTC_PASIC3 is not set
702# CONFIG_MFD_TMIO is not set 711# CONFIG_MFD_TMIO is not set
703# CONFIG_MFD_WM8400 is not set 712# CONFIG_REGULATOR is not set
704 713
705# 714#
706# Multimedia devices 715# Multimedia devices
@@ -750,11 +759,9 @@ CONFIG_HID_COMPAT=y
750CONFIG_HID_A4TECH=y 759CONFIG_HID_A4TECH=y
751CONFIG_HID_APPLE=y 760CONFIG_HID_APPLE=y
752CONFIG_HID_BELKIN=y 761CONFIG_HID_BELKIN=y
753CONFIG_HID_BRIGHT=y
754CONFIG_HID_CHERRY=y 762CONFIG_HID_CHERRY=y
755CONFIG_HID_CHICONY=y 763CONFIG_HID_CHICONY=y
756CONFIG_HID_CYPRESS=y 764CONFIG_HID_CYPRESS=y
757CONFIG_HID_DELL=y
758CONFIG_HID_EZKEY=y 765CONFIG_HID_EZKEY=y
759CONFIG_HID_GYRATION=y 766CONFIG_HID_GYRATION=y
760CONFIG_HID_LOGITECH=y 767CONFIG_HID_LOGITECH=y
@@ -762,12 +769,15 @@ CONFIG_HID_LOGITECH=y
762# CONFIG_LOGIRUMBLEPAD2_FF is not set 769# CONFIG_LOGIRUMBLEPAD2_FF is not set
763CONFIG_HID_MICROSOFT=y 770CONFIG_HID_MICROSOFT=y
764CONFIG_HID_MONTEREY=y 771CONFIG_HID_MONTEREY=y
772# CONFIG_HID_NTRIG is not set
765CONFIG_HID_PANTHERLORD=y 773CONFIG_HID_PANTHERLORD=y
766# CONFIG_PANTHERLORD_FF is not set 774# CONFIG_PANTHERLORD_FF is not set
767CONFIG_HID_PETALYNX=y 775CONFIG_HID_PETALYNX=y
768CONFIG_HID_SAMSUNG=y 776CONFIG_HID_SAMSUNG=y
769CONFIG_HID_SONY=y 777CONFIG_HID_SONY=y
770CONFIG_HID_SUNPLUS=y 778CONFIG_HID_SUNPLUS=y
779# CONFIG_GREENASIA_FF is not set
780# CONFIG_HID_TOPSEED is not set
771CONFIG_THRUSTMASTER_FF=m 781CONFIG_THRUSTMASTER_FF=m
772CONFIG_ZEROPLUS_FF=m 782CONFIG_ZEROPLUS_FF=m
773CONFIG_USB_SUPPORT=y 783CONFIG_USB_SUPPORT=y
@@ -788,19 +798,21 @@ CONFIG_USB_DEVICE_CLASS=y
788# CONFIG_USB_OTG_WHITELIST is not set 798# CONFIG_USB_OTG_WHITELIST is not set
789# CONFIG_USB_OTG_BLACKLIST_HUB is not set 799# CONFIG_USB_OTG_BLACKLIST_HUB is not set
790CONFIG_USB_MON=y 800CONFIG_USB_MON=y
801# CONFIG_USB_WUSB is not set
802# CONFIG_USB_WUSB_CBAF is not set
791 803
792# 804#
793# USB Host Controller Drivers 805# USB Host Controller Drivers
794# 806#
795# CONFIG_USB_C67X00_HCD is not set 807# CONFIG_USB_C67X00_HCD is not set
796# CONFIG_USB_ISP116X_HCD is not set 808# CONFIG_USB_ISP116X_HCD is not set
797# CONFIG_USB_ISP1760_HCD is not set
798CONFIG_USB_OHCI_HCD=y 809CONFIG_USB_OHCI_HCD=y
799# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 810# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
800# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 811# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
801CONFIG_USB_OHCI_LITTLE_ENDIAN=y 812CONFIG_USB_OHCI_LITTLE_ENDIAN=y
802# CONFIG_USB_SL811_HCD is not set 813# CONFIG_USB_SL811_HCD is not set
803# CONFIG_USB_R8A66597_HCD is not set 814# CONFIG_USB_R8A66597_HCD is not set
815# CONFIG_USB_HWA_HCD is not set
804 816
805# 817#
806# USB Device Class drivers 818# USB Device Class drivers
@@ -811,11 +823,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
811# CONFIG_USB_TMC is not set 823# CONFIG_USB_TMC is not set
812 824
813# 825#
814# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 826# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
815# 827#
816 828
817# 829#
818# may also be needed; see USB_STORAGE Help for more information 830# see USB_STORAGE Help for more information
819# 831#
820CONFIG_USB_STORAGE=y 832CONFIG_USB_STORAGE=y
821# CONFIG_USB_STORAGE_DEBUG is not set 833# CONFIG_USB_STORAGE_DEBUG is not set
@@ -883,6 +895,7 @@ CONFIG_LEDS_CLASS=y
883CONFIG_LEDS_TRIGGERS=y 895CONFIG_LEDS_TRIGGERS=y
884# CONFIG_LEDS_TRIGGER_TIMER is not set 896# CONFIG_LEDS_TRIGGER_TIMER is not set
885# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 897# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
898# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
886# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 899# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
887# CONFIG_ACCESSIBILITY is not set 900# CONFIG_ACCESSIBILITY is not set
888# CONFIG_RTC_CLASS is not set 901# CONFIG_RTC_CLASS is not set
@@ -947,10 +960,7 @@ CONFIG_TMPFS=y
947# CONFIG_HUGETLBFS is not set 960# CONFIG_HUGETLBFS is not set
948# CONFIG_HUGETLB_PAGE is not set 961# CONFIG_HUGETLB_PAGE is not set
949# CONFIG_CONFIGFS_FS is not set 962# CONFIG_CONFIGFS_FS is not set
950 963CONFIG_MISC_FILESYSTEMS=y
951#
952# Miscellaneous filesystems
953#
954# CONFIG_ADFS_FS is not set 964# CONFIG_ADFS_FS is not set
955# CONFIG_AFFS_FS is not set 965# CONFIG_AFFS_FS is not set
956# CONFIG_HFS_FS is not set 966# CONFIG_HFS_FS is not set
@@ -1063,6 +1073,7 @@ CONFIG_DEBUG_INFO=y
1063# CONFIG_DEBUG_MEMORY_INIT is not set 1073# CONFIG_DEBUG_MEMORY_INIT is not set
1064# CONFIG_DEBUG_LIST is not set 1074# CONFIG_DEBUG_LIST is not set
1065# CONFIG_DEBUG_SG is not set 1075# CONFIG_DEBUG_SG is not set
1076# CONFIG_DEBUG_NOTIFIERS is not set
1066CONFIG_FRAME_POINTER=y 1077CONFIG_FRAME_POINTER=y
1067# CONFIG_RCU_TORTURE_TEST is not set 1078# CONFIG_RCU_TORTURE_TEST is not set
1068# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1079# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1071,16 +1082,24 @@ CONFIG_FRAME_POINTER=y
1071# CONFIG_FAULT_INJECTION is not set 1082# CONFIG_FAULT_INJECTION is not set
1072# CONFIG_LATENCYTOP is not set 1083# CONFIG_LATENCYTOP is not set
1073# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1084# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1074CONFIG_NOP_TRACER=y 1085CONFIG_HAVE_FUNCTION_TRACER=y
1075CONFIG_HAVE_FTRACE=y 1086CONFIG_HAVE_DYNAMIC_FTRACE=y
1076# CONFIG_FTRACE is not set 1087CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1088
1089#
1090# Tracers
1091#
1092# CONFIG_FUNCTION_TRACER is not set
1077# CONFIG_IRQSOFF_TRACER is not set 1093# CONFIG_IRQSOFF_TRACER is not set
1078# CONFIG_SCHED_TRACER is not set 1094# CONFIG_SCHED_TRACER is not set
1079# CONFIG_CONTEXT_SWITCH_TRACER is not set 1095# CONFIG_CONTEXT_SWITCH_TRACER is not set
1080# CONFIG_BOOT_TRACER is not set 1096# CONFIG_BOOT_TRACER is not set
1097# CONFIG_TRACE_BRANCH_PROFILING is not set
1081# CONFIG_STACK_TRACER is not set 1098# CONFIG_STACK_TRACER is not set
1082# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1099# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1083# CONFIG_SAMPLES is not set 1100# CONFIG_SAMPLES is not set
1101CONFIG_HAVE_ARCH_KGDB=y
1102# CONFIG_KGDB is not set
1084# CONFIG_SH_STANDARD_BIOS is not set 1103# CONFIG_SH_STANDARD_BIOS is not set
1085# CONFIG_EARLY_SCIF_CONSOLE is not set 1104# CONFIG_EARLY_SCIF_CONSOLE is not set
1086# CONFIG_DEBUG_BOOTMEM is not set 1105# CONFIG_DEBUG_BOOTMEM is not set
@@ -1088,7 +1107,9 @@ CONFIG_HAVE_FTRACE=y
1088# CONFIG_DEBUG_STACK_USAGE is not set 1107# CONFIG_DEBUG_STACK_USAGE is not set
1089# CONFIG_4KSTACKS is not set 1108# CONFIG_4KSTACKS is not set
1090# CONFIG_IRQSTACKS is not set 1109# CONFIG_IRQSTACKS is not set
1091# CONFIG_SH_KGDB is not set 1110# CONFIG_DUMP_CODE is not set
1111# CONFIG_SH_NO_BSS_INIT is not set
1112# CONFIG_MORE_COMPILE_OPTIONS is not set
1092 1113
1093# 1114#
1094# Security options 1115# Security options
@@ -1104,11 +1125,16 @@ CONFIG_CRYPTO=y
1104# 1125#
1105# CONFIG_CRYPTO_FIPS is not set 1126# CONFIG_CRYPTO_FIPS is not set
1106CONFIG_CRYPTO_ALGAPI=y 1127CONFIG_CRYPTO_ALGAPI=y
1128CONFIG_CRYPTO_ALGAPI2=y
1107CONFIG_CRYPTO_AEAD=y 1129CONFIG_CRYPTO_AEAD=y
1130CONFIG_CRYPTO_AEAD2=y
1108CONFIG_CRYPTO_BLKCIPHER=y 1131CONFIG_CRYPTO_BLKCIPHER=y
1132CONFIG_CRYPTO_BLKCIPHER2=y
1109CONFIG_CRYPTO_HASH=y 1133CONFIG_CRYPTO_HASH=y
1110CONFIG_CRYPTO_RNG=y 1134CONFIG_CRYPTO_HASH2=y
1135CONFIG_CRYPTO_RNG2=y
1111CONFIG_CRYPTO_MANAGER=y 1136CONFIG_CRYPTO_MANAGER=y
1137CONFIG_CRYPTO_MANAGER2=y
1112# CONFIG_CRYPTO_GF128MUL is not set 1138# CONFIG_CRYPTO_GF128MUL is not set
1113# CONFIG_CRYPTO_NULL is not set 1139# CONFIG_CRYPTO_NULL is not set
1114# CONFIG_CRYPTO_CRYPTD is not set 1140# CONFIG_CRYPTO_CRYPTD is not set
@@ -1191,6 +1217,7 @@ CONFIG_CRYPTO_HW=y
1191# Library routines 1217# Library routines
1192# 1218#
1193CONFIG_BITREVERSE=y 1219CONFIG_BITREVERSE=y
1220CONFIG_GENERIC_FIND_LAST_BIT=y
1194CONFIG_CRC_CCITT=y 1221CONFIG_CRC_CCITT=y
1195# CONFIG_CRC16 is not set 1222# CONFIG_CRC16 is not set
1196# CONFIG_CRC_T10DIF is not set 1223# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7722_defconfig b/arch/sh/configs/se7722_defconfig
index e6df51f098f0..abb189a1d314 100644
--- a/arch/sh/configs/se7722_defconfig
+++ b/arch/sh/configs/se7722_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:15:10 2008 4# Fri Jan 9 17:46:59 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -75,13 +77,11 @@ CONFIG_EVENTFD=y
75CONFIG_SHMEM=y 77CONFIG_SHMEM=y
76CONFIG_AIO=y 78CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 79CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLUB_DEBUG=y 80CONFIG_SLUB_DEBUG=y
80# CONFIG_SLAB is not set 81# CONFIG_SLAB is not set
81CONFIG_SLUB=y 82CONFIG_SLUB=y
82# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
83CONFIG_PROFILING=y 84CONFIG_PROFILING=y
84# CONFIG_MARKERS is not set
85# CONFIG_OPROFILE is not set 85# CONFIG_OPROFILE is not set
86CONFIG_HAVE_OPROFILE=y 86CONFIG_HAVE_OPROFILE=y
87# CONFIG_KPROBES is not set 87# CONFIG_KPROBES is not set
@@ -93,7 +93,6 @@ CONFIG_HAVE_CLK=y
93CONFIG_HAVE_GENERIC_DMA_COHERENT=y 93CONFIG_HAVE_GENERIC_DMA_COHERENT=y
94CONFIG_SLABINFO=y 94CONFIG_SLABINFO=y
95CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
96# CONFIG_TINY_SHMEM is not set
97CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
98CONFIG_MODULES=y 97CONFIG_MODULES=y
99# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
@@ -101,11 +100,9 @@ CONFIG_MODULE_UNLOAD=y
101# CONFIG_MODULE_FORCE_UNLOAD is not set 100# CONFIG_MODULE_FORCE_UNLOAD is not set
102# CONFIG_MODVERSIONS is not set 101# CONFIG_MODVERSIONS is not set
103# CONFIG_MODULE_SRCVERSION_ALL is not set 102# CONFIG_MODULE_SRCVERSION_ALL is not set
104CONFIG_KMOD=y
105CONFIG_BLOCK=y 103CONFIG_BLOCK=y
106# CONFIG_LBD is not set 104# CONFIG_LBD is not set
107# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
108# CONFIG_LSF is not set
109# CONFIG_BLK_DEV_BSG is not set 106# CONFIG_BLK_DEV_BSG is not set
110# CONFIG_BLK_DEV_INTEGRITY is not set 107# CONFIG_BLK_DEV_INTEGRITY is not set
111 108
@@ -122,6 +119,10 @@ CONFIG_IOSCHED_NOOP=y
122CONFIG_DEFAULT_NOOP=y 119CONFIG_DEFAULT_NOOP=y
123CONFIG_DEFAULT_IOSCHED="noop" 120CONFIG_DEFAULT_IOSCHED="noop"
124CONFIG_CLASSIC_RCU=y 121CONFIG_CLASSIC_RCU=y
122# CONFIG_TREE_RCU is not set
123# CONFIG_PREEMPT_RCU is not set
124# CONFIG_TREE_RCU_TRACE is not set
125# CONFIG_PREEMPT_RCU_TRACE is not set
125# CONFIG_FREEZER is not set 126# CONFIG_FREEZER is not set
126 127
127# 128#
@@ -132,6 +133,7 @@ CONFIG_CPU_SH4A=y
132CONFIG_CPU_SH4AL_DSP=y 133CONFIG_CPU_SH4AL_DSP=y
133CONFIG_CPU_SHX2=y 134CONFIG_CPU_SHX2=y
134# CONFIG_CPU_SUBTYPE_SH7619 is not set 135# CONFIG_CPU_SUBTYPE_SH7619 is not set
136# CONFIG_CPU_SUBTYPE_SH7201 is not set
135# CONFIG_CPU_SUBTYPE_SH7203 is not set 137# CONFIG_CPU_SUBTYPE_SH7203 is not set
136# CONFIG_CPU_SUBTYPE_SH7206 is not set 138# CONFIG_CPU_SUBTYPE_SH7206 is not set
137# CONFIG_CPU_SUBTYPE_SH7263 is not set 139# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -207,7 +209,6 @@ CONFIG_SPARSEMEM_STATIC=y
207# CONFIG_MEMORY_HOTPLUG is not set 209# CONFIG_MEMORY_HOTPLUG is not set
208CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
209CONFIG_MIGRATION=y 211CONFIG_MIGRATION=y
210# CONFIG_RESOURCES_64BIT is not set
211# CONFIG_PHYS_ADDR_T_64BIT is not set 212# CONFIG_PHYS_ADDR_T_64BIT is not set
212CONFIG_ZONE_DMA_FLAG=0 213CONFIG_ZONE_DMA_FLAG=0
213CONFIG_NR_QUICK=2 214CONFIG_NR_QUICK=2
@@ -287,7 +288,6 @@ CONFIG_KEXEC=y
287# CONFIG_PREEMPT_NONE is not set 288# CONFIG_PREEMPT_NONE is not set
288# CONFIG_PREEMPT_VOLUNTARY is not set 289# CONFIG_PREEMPT_VOLUNTARY is not set
289CONFIG_PREEMPT=y 290CONFIG_PREEMPT=y
290# CONFIG_PREEMPT_RCU is not set
291CONFIG_GUSA=y 291CONFIG_GUSA=y
292 292
293# 293#
@@ -300,10 +300,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
300# 300#
301# Bus options 301# Bus options
302# 302#
303CONFIG_CF_ENABLER=y
304# CONFIG_CF_AREA5 is not set
305CONFIG_CF_AREA6=y
306CONFIG_CF_BASE_ADDR=0xb8000000
307# CONFIG_ARCH_SUPPORTS_MSI is not set 303# CONFIG_ARCH_SUPPORTS_MSI is not set
308# CONFIG_PCCARD is not set 304# CONFIG_PCCARD is not set
309 305
@@ -314,11 +310,18 @@ CONFIG_BINFMT_ELF=y
314# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 310# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
315# CONFIG_HAVE_AOUT is not set 311# CONFIG_HAVE_AOUT is not set
316# CONFIG_BINFMT_MISC is not set 312# CONFIG_BINFMT_MISC is not set
313
314#
315# Power management options (EXPERIMENTAL)
316#
317# CONFIG_PM is not set
318# CONFIG_CPU_IDLE is not set
317CONFIG_NET=y 319CONFIG_NET=y
318 320
319# 321#
320# Networking options 322# Networking options
321# 323#
324CONFIG_COMPAT_NET_DEV_OPS=y
322CONFIG_PACKET=y 325CONFIG_PACKET=y
323CONFIG_PACKET_MMAP=y 326CONFIG_PACKET_MMAP=y
324CONFIG_UNIX=y 327CONFIG_UNIX=y
@@ -371,6 +374,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
371# CONFIG_ECONET is not set 374# CONFIG_ECONET is not set
372# CONFIG_WAN_ROUTER is not set 375# CONFIG_WAN_ROUTER is not set
373# CONFIG_NET_SCHED is not set 376# CONFIG_NET_SCHED is not set
377# CONFIG_DCB is not set
374 378
375# 379#
376# Network testing 380# Network testing
@@ -386,8 +390,8 @@ CONFIG_WIRELESS=y
386# CONFIG_CFG80211 is not set 390# CONFIG_CFG80211 is not set
387# CONFIG_WIRELESS_OLD_REGULATORY is not set 391# CONFIG_WIRELESS_OLD_REGULATORY is not set
388# CONFIG_WIRELESS_EXT is not set 392# CONFIG_WIRELESS_EXT is not set
393# CONFIG_LIB80211 is not set
389# CONFIG_MAC80211 is not set 394# CONFIG_MAC80211 is not set
390# CONFIG_IEEE80211 is not set
391# CONFIG_RFKILL is not set 395# CONFIG_RFKILL is not set
392# CONFIG_NET_9P is not set 396# CONFIG_NET_9P is not set
393 397
@@ -420,6 +424,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
420CONFIG_MISC_DEVICES=y 424CONFIG_MISC_DEVICES=y
421# CONFIG_EEPROM_93CX6 is not set 425# CONFIG_EEPROM_93CX6 is not set
422# CONFIG_ENCLOSURE_SERVICES is not set 426# CONFIG_ENCLOSURE_SERVICES is not set
427# CONFIG_C2PORT is not set
423CONFIG_HAVE_IDE=y 428CONFIG_HAVE_IDE=y
424# CONFIG_IDE is not set 429# CONFIG_IDE is not set
425 430
@@ -462,6 +467,7 @@ CONFIG_SCSI_WAIT_SCAN=m
462# CONFIG_SCSI_SRP_ATTRS is not set 467# CONFIG_SCSI_SRP_ATTRS is not set
463CONFIG_SCSI_LOWLEVEL=y 468CONFIG_SCSI_LOWLEVEL=y
464# CONFIG_ISCSI_TCP is not set 469# CONFIG_ISCSI_TCP is not set
470# CONFIG_LIBFC is not set
465# CONFIG_SCSI_DEBUG is not set 471# CONFIG_SCSI_DEBUG is not set
466# CONFIG_SCSI_DH is not set 472# CONFIG_SCSI_DH is not set
467CONFIG_ATA=y 473CONFIG_ATA=y
@@ -485,6 +491,7 @@ CONFIG_MII=y
485# CONFIG_STNIC is not set 491# CONFIG_STNIC is not set
486CONFIG_SMC91X=y 492CONFIG_SMC91X=y
487# CONFIG_SMC911X is not set 493# CONFIG_SMC911X is not set
494# CONFIG_SMSC911X is not set
488# CONFIG_IBM_NEW_EMAC_ZMII is not set 495# CONFIG_IBM_NEW_EMAC_ZMII is not set
489# CONFIG_IBM_NEW_EMAC_RGMII is not set 496# CONFIG_IBM_NEW_EMAC_RGMII is not set
490# CONFIG_IBM_NEW_EMAC_TAH is not set 497# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -577,6 +584,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
577CONFIG_SERIAL_CORE=y 584CONFIG_SERIAL_CORE=y
578CONFIG_SERIAL_CORE_CONSOLE=y 585CONFIG_SERIAL_CORE_CONSOLE=y
579CONFIG_UNIX98_PTYS=y 586CONFIG_UNIX98_PTYS=y
587# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
580CONFIG_LEGACY_PTYS=y 588CONFIG_LEGACY_PTYS=y
581CONFIG_LEGACY_PTY_COUNT=256 589CONFIG_LEGACY_PTY_COUNT=256
582# CONFIG_IPMI_HANDLER is not set 590# CONFIG_IPMI_HANDLER is not set
@@ -604,11 +612,11 @@ CONFIG_HWMON=y
604# CONFIG_THERMAL is not set 612# CONFIG_THERMAL is not set
605# CONFIG_THERMAL_HWMON is not set 613# CONFIG_THERMAL_HWMON is not set
606# CONFIG_WATCHDOG is not set 614# CONFIG_WATCHDOG is not set
615CONFIG_SSB_POSSIBLE=y
607 616
608# 617#
609# Sonics Silicon Backplane 618# Sonics Silicon Backplane
610# 619#
611CONFIG_SSB_POSSIBLE=y
612# CONFIG_SSB is not set 620# CONFIG_SSB is not set
613 621
614# 622#
@@ -618,7 +626,7 @@ CONFIG_SSB_POSSIBLE=y
618# CONFIG_MFD_SM501 is not set 626# CONFIG_MFD_SM501 is not set
619# CONFIG_HTC_PASIC3 is not set 627# CONFIG_HTC_PASIC3 is not set
620# CONFIG_MFD_TMIO is not set 628# CONFIG_MFD_TMIO is not set
621# CONFIG_MFD_WM8400 is not set 629# CONFIG_REGULATOR is not set
622 630
623# 631#
624# Multimedia devices 632# Multimedia devices
@@ -672,7 +680,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
672# 680#
673 681
674# 682#
675# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 683# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
676# 684#
677# CONFIG_USB_GADGET is not set 685# CONFIG_USB_GADGET is not set
678# CONFIG_MMC is not set 686# CONFIG_MMC is not set
@@ -774,10 +782,7 @@ CONFIG_TMPFS=y
774CONFIG_HUGETLBFS=y 782CONFIG_HUGETLBFS=y
775CONFIG_HUGETLB_PAGE=y 783CONFIG_HUGETLB_PAGE=y
776# CONFIG_CONFIGFS_FS is not set 784# CONFIG_CONFIGFS_FS is not set
777 785CONFIG_MISC_FILESYSTEMS=y
778#
779# Miscellaneous filesystems
780#
781# CONFIG_ADFS_FS is not set 786# CONFIG_ADFS_FS is not set
782# CONFIG_AFFS_FS is not set 787# CONFIG_AFFS_FS is not set
783# CONFIG_HFS_FS is not set 788# CONFIG_HFS_FS is not set
@@ -831,14 +836,20 @@ CONFIG_DEBUG_FS=y
831# CONFIG_RCU_CPU_STALL_DETECTOR is not set 836# CONFIG_RCU_CPU_STALL_DETECTOR is not set
832# CONFIG_LATENCYTOP is not set 837# CONFIG_LATENCYTOP is not set
833# CONFIG_SYSCTL_SYSCALL_CHECK is not set 838# CONFIG_SYSCTL_SYSCALL_CHECK is not set
834CONFIG_NOP_TRACER=y 839CONFIG_HAVE_FUNCTION_TRACER=y
835CONFIG_HAVE_FTRACE=y 840CONFIG_HAVE_DYNAMIC_FTRACE=y
841CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
842
843#
844# Tracers
845#
836# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 846# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
837# CONFIG_SAMPLES is not set 847# CONFIG_SAMPLES is not set
848CONFIG_HAVE_ARCH_KGDB=y
838CONFIG_SH_STANDARD_BIOS=y 849CONFIG_SH_STANDARD_BIOS=y
839# CONFIG_EARLY_SCIF_CONSOLE is not set 850# CONFIG_EARLY_SCIF_CONSOLE is not set
840# CONFIG_EARLY_PRINTK is not set 851# CONFIG_EARLY_PRINTK is not set
841# CONFIG_SH_KGDB is not set 852# CONFIG_MORE_COMPILE_OPTIONS is not set
842 853
843# 854#
844# Security options 855# Security options
@@ -854,6 +865,7 @@ CONFIG_CRYPTO=y
854# 865#
855# CONFIG_CRYPTO_FIPS is not set 866# CONFIG_CRYPTO_FIPS is not set
856# CONFIG_CRYPTO_MANAGER is not set 867# CONFIG_CRYPTO_MANAGER is not set
868# CONFIG_CRYPTO_MANAGER2 is not set
857# CONFIG_CRYPTO_GF128MUL is not set 869# CONFIG_CRYPTO_GF128MUL is not set
858# CONFIG_CRYPTO_NULL is not set 870# CONFIG_CRYPTO_NULL is not set
859# CONFIG_CRYPTO_CRYPTD is not set 871# CONFIG_CRYPTO_CRYPTD is not set
@@ -936,6 +948,7 @@ CONFIG_CRYPTO_HW=y
936# Library routines 948# Library routines
937# 949#
938CONFIG_BITREVERSE=y 950CONFIG_BITREVERSE=y
951CONFIG_GENERIC_FIND_LAST_BIT=y
939# CONFIG_CRC_CCITT is not set 952# CONFIG_CRC_CCITT is not set
940# CONFIG_CRC16 is not set 953# CONFIG_CRC16 is not set
941# CONFIG_CRC_T10DIF is not set 954# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7750_defconfig b/arch/sh/configs/se7750_defconfig
index a577099c3247..ac874f63a625 100644
--- a/arch/sh/configs/se7750_defconfig
+++ b/arch/sh/configs/se7750_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:17:29 2008 4# Fri Jan 9 17:49:22 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -72,12 +74,10 @@ CONFIG_EVENTFD=y
72CONFIG_SHMEM=y 74CONFIG_SHMEM=y
73CONFIG_AIO=y 75CONFIG_AIO=y
74CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_PCI_QUIRKS=y
76CONFIG_SLAB=y 77CONFIG_SLAB=y
77# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
79# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
80# CONFIG_MARKERS is not set
81CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
82# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
83CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -88,18 +88,15 @@ CONFIG_HAVE_CLK=y
88CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
89CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
90CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
91# CONFIG_TINY_SHMEM is not set
92CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
93CONFIG_MODULES=y 92CONFIG_MODULES=y
94# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
95# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
96# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 97CONFIG_BLOCK=y
100# CONFIG_LBD is not set 98# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
105 102
@@ -116,6 +113,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 113# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 114CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
120 121
121# 122#
@@ -123,6 +124,7 @@ CONFIG_CLASSIC_RCU=y
123# 124#
124CONFIG_CPU_SH4=y 125CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 126# CONFIG_CPU_SUBTYPE_SH7619 is not set
127# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 128# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 129# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 130# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +188,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 188CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 189CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 190CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -278,10 +279,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
278# 279#
279# Bus options 280# Bus options
280# 281#
281CONFIG_CF_ENABLER=y
282# CONFIG_CF_AREA5 is not set
283CONFIG_CF_AREA6=y
284CONFIG_CF_BASE_ADDR=0xb8000000
285# CONFIG_ARCH_SUPPORTS_MSI is not set 282# CONFIG_ARCH_SUPPORTS_MSI is not set
286 283
287# 284#
@@ -291,11 +288,18 @@ CONFIG_BINFMT_ELF=y
291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
292# CONFIG_HAVE_AOUT is not set 289# CONFIG_HAVE_AOUT is not set
293# CONFIG_BINFMT_MISC is not set 290# CONFIG_BINFMT_MISC is not set
291
292#
293# Power management options (EXPERIMENTAL)
294#
295# CONFIG_PM is not set
296# CONFIG_CPU_IDLE is not set
294CONFIG_NET=y 297CONFIG_NET=y
295 298
296# 299#
297# Networking options 300# Networking options
298# 301#
302CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 303CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -352,6 +356,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
352# CONFIG_ECONET is not set 356# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 357# CONFIG_WAN_ROUTER is not set
354# CONFIG_NET_SCHED is not set 358# CONFIG_NET_SCHED is not set
359# CONFIG_DCB is not set
355 360
356# 361#
357# Network testing 362# Network testing
@@ -367,8 +372,8 @@ CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set 372# CONFIG_CFG80211 is not set
368# CONFIG_WIRELESS_OLD_REGULATORY is not set 373# CONFIG_WIRELESS_OLD_REGULATORY is not set
369# CONFIG_WIRELESS_EXT is not set 374# CONFIG_WIRELESS_EXT is not set
375# CONFIG_LIB80211 is not set
370# CONFIG_MAC80211 is not set 376# CONFIG_MAC80211 is not set
371# CONFIG_IEEE80211 is not set
372# CONFIG_RFKILL is not set 377# CONFIG_RFKILL is not set
373# CONFIG_NET_9P is not set 378# CONFIG_NET_9P is not set
374 379
@@ -469,6 +474,7 @@ CONFIG_BLK_DEV=y
469CONFIG_MISC_DEVICES=y 474CONFIG_MISC_DEVICES=y
470# CONFIG_EEPROM_93CX6 is not set 475# CONFIG_EEPROM_93CX6 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 476# CONFIG_ENCLOSURE_SERVICES is not set
477# CONFIG_C2PORT is not set
472CONFIG_HAVE_IDE=y 478CONFIG_HAVE_IDE=y
473CONFIG_IDE=y 479CONFIG_IDE=y
474 480
@@ -481,7 +487,6 @@ CONFIG_IDE_GD_ATA=y
481# CONFIG_IDE_GD_ATAPI is not set 487# CONFIG_IDE_GD_ATAPI is not set
482# CONFIG_BLK_DEV_IDECD is not set 488# CONFIG_BLK_DEV_IDECD is not set
483# CONFIG_BLK_DEV_IDETAPE is not set 489# CONFIG_BLK_DEV_IDETAPE is not set
484# CONFIG_BLK_DEV_IDESCSI is not set
485# CONFIG_IDE_TASK_IOCTL is not set 490# CONFIG_IDE_TASK_IOCTL is not set
486CONFIG_IDE_PROC_FS=y 491CONFIG_IDE_PROC_FS=y
487 492
@@ -530,6 +535,7 @@ CONFIG_SCSI_WAIT_SCAN=m
530# CONFIG_SCSI_SRP_ATTRS is not set 535# CONFIG_SCSI_SRP_ATTRS is not set
531CONFIG_SCSI_LOWLEVEL=y 536CONFIG_SCSI_LOWLEVEL=y
532# CONFIG_ISCSI_TCP is not set 537# CONFIG_ISCSI_TCP is not set
538# CONFIG_LIBFC is not set
533# CONFIG_SCSI_DEBUG is not set 539# CONFIG_SCSI_DEBUG is not set
534# CONFIG_SCSI_DH is not set 540# CONFIG_SCSI_DH is not set
535# CONFIG_ATA is not set 541# CONFIG_ATA is not set
@@ -548,6 +554,7 @@ CONFIG_NET_ETHERNET=y
548CONFIG_STNIC=y 554CONFIG_STNIC=y
549# CONFIG_SMC91X is not set 555# CONFIG_SMC91X is not set
550# CONFIG_SMC911X is not set 556# CONFIG_SMC911X is not set
557# CONFIG_SMSC911X is not set
551# CONFIG_IBM_NEW_EMAC_ZMII is not set 558# CONFIG_IBM_NEW_EMAC_ZMII is not set
552# CONFIG_IBM_NEW_EMAC_RGMII is not set 559# CONFIG_IBM_NEW_EMAC_RGMII is not set
553# CONFIG_IBM_NEW_EMAC_TAH is not set 560# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -610,6 +617,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
610CONFIG_SERIAL_CORE=y 617CONFIG_SERIAL_CORE=y
611CONFIG_SERIAL_CORE_CONSOLE=y 618CONFIG_SERIAL_CORE_CONSOLE=y
612CONFIG_UNIX98_PTYS=y 619CONFIG_UNIX98_PTYS=y
620# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
613CONFIG_LEGACY_PTYS=y 621CONFIG_LEGACY_PTYS=y
614CONFIG_LEGACY_PTY_COUNT=256 622CONFIG_LEGACY_PTY_COUNT=256
615# CONFIG_IPMI_HANDLER is not set 623# CONFIG_IPMI_HANDLER is not set
@@ -645,11 +653,11 @@ CONFIG_WATCHDOG=y
645# CONFIG_SOFT_WATCHDOG is not set 653# CONFIG_SOFT_WATCHDOG is not set
646CONFIG_SH_WDT=y 654CONFIG_SH_WDT=y
647# CONFIG_SH_WDT_MMAP is not set 655# CONFIG_SH_WDT_MMAP is not set
656CONFIG_SSB_POSSIBLE=y
648 657
649# 658#
650# Sonics Silicon Backplane 659# Sonics Silicon Backplane
651# 660#
652CONFIG_SSB_POSSIBLE=y
653# CONFIG_SSB is not set 661# CONFIG_SSB is not set
654 662
655# 663#
@@ -659,7 +667,7 @@ CONFIG_SSB_POSSIBLE=y
659# CONFIG_MFD_SM501 is not set 667# CONFIG_MFD_SM501 is not set
660# CONFIG_HTC_PASIC3 is not set 668# CONFIG_HTC_PASIC3 is not set
661# CONFIG_MFD_TMIO is not set 669# CONFIG_MFD_TMIO is not set
662# CONFIG_MFD_WM8400 is not set 670# CONFIG_REGULATOR is not set
663 671
664# 672#
665# Multimedia devices 673# Multimedia devices
@@ -703,7 +711,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
703# 711#
704 712
705# 713#
706# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 714# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
707# 715#
708# CONFIG_USB_GADGET is not set 716# CONFIG_USB_GADGET is not set
709# CONFIG_MMC is not set 717# CONFIG_MMC is not set
@@ -761,10 +769,7 @@ CONFIG_TMPFS=y
761# CONFIG_HUGETLBFS is not set 769# CONFIG_HUGETLBFS is not set
762# CONFIG_HUGETLB_PAGE is not set 770# CONFIG_HUGETLB_PAGE is not set
763# CONFIG_CONFIGFS_FS is not set 771# CONFIG_CONFIGFS_FS is not set
764 772CONFIG_MISC_FILESYSTEMS=y
765#
766# Miscellaneous filesystems
767#
768# CONFIG_ADFS_FS is not set 773# CONFIG_ADFS_FS is not set
769# CONFIG_AFFS_FS is not set 774# CONFIG_AFFS_FS is not set
770# CONFIG_HFS_FS is not set 775# CONFIG_HFS_FS is not set
@@ -847,13 +852,19 @@ CONFIG_FRAME_WARN=1024
847# CONFIG_DEBUG_MEMORY_INIT is not set 852# CONFIG_DEBUG_MEMORY_INIT is not set
848# CONFIG_RCU_CPU_STALL_DETECTOR is not set 853# CONFIG_RCU_CPU_STALL_DETECTOR is not set
849# CONFIG_LATENCYTOP is not set 854# CONFIG_LATENCYTOP is not set
850CONFIG_NOP_TRACER=y 855CONFIG_HAVE_FUNCTION_TRACER=y
851CONFIG_HAVE_FTRACE=y 856CONFIG_HAVE_DYNAMIC_FTRACE=y
857CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
858
859#
860# Tracers
861#
852# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 862# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
853# CONFIG_SAMPLES is not set 863# CONFIG_SAMPLES is not set
864CONFIG_HAVE_ARCH_KGDB=y
854# CONFIG_SH_STANDARD_BIOS is not set 865# CONFIG_SH_STANDARD_BIOS is not set
855# CONFIG_EARLY_SCIF_CONSOLE is not set 866# CONFIG_EARLY_SCIF_CONSOLE is not set
856# CONFIG_SH_KGDB is not set 867# CONFIG_MORE_COMPILE_OPTIONS is not set
857 868
858# 869#
859# Security options 870# Security options
@@ -869,6 +880,7 @@ CONFIG_CRYPTO=y
869# 880#
870# CONFIG_CRYPTO_FIPS is not set 881# CONFIG_CRYPTO_FIPS is not set
871# CONFIG_CRYPTO_MANAGER is not set 882# CONFIG_CRYPTO_MANAGER is not set
883# CONFIG_CRYPTO_MANAGER2 is not set
872# CONFIG_CRYPTO_GF128MUL is not set 884# CONFIG_CRYPTO_GF128MUL is not set
873# CONFIG_CRYPTO_NULL is not set 885# CONFIG_CRYPTO_NULL is not set
874# CONFIG_CRYPTO_CRYPTD is not set 886# CONFIG_CRYPTO_CRYPTD is not set
@@ -951,6 +963,7 @@ CONFIG_CRYPTO_HW=y
951# Library routines 963# Library routines
952# 964#
953CONFIG_BITREVERSE=y 965CONFIG_BITREVERSE=y
966CONFIG_GENERIC_FIND_LAST_BIT=y
954# CONFIG_CRC_CCITT is not set 967# CONFIG_CRC_CCITT is not set
955# CONFIG_CRC16 is not set 968# CONFIG_CRC16 is not set
956# CONFIG_CRC_T10DIF is not set 969# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7751_defconfig b/arch/sh/configs/se7751_defconfig
index d99a6bdf410f..f54ae056f177 100644
--- a/arch/sh/configs/se7751_defconfig
+++ b/arch/sh/configs/se7751_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:21:12 2008 4# Fri Jan 9 17:51:47 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -72,12 +74,10 @@ CONFIG_EVENTFD=y
72CONFIG_SHMEM=y 74CONFIG_SHMEM=y
73CONFIG_AIO=y 75CONFIG_AIO=y
74CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_PCI_QUIRKS=y
76CONFIG_SLAB=y 77CONFIG_SLAB=y
77# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
79# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
80# CONFIG_MARKERS is not set
81CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
82# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
83CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -88,18 +88,15 @@ CONFIG_HAVE_CLK=y
88CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
89CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
90CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
91# CONFIG_TINY_SHMEM is not set
92CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
93CONFIG_MODULES=y 92CONFIG_MODULES=y
94# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
95# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
96# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 97CONFIG_BLOCK=y
100# CONFIG_LBD is not set 98# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
105 102
@@ -116,6 +113,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 113# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 114CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
120 121
121# 122#
@@ -123,6 +124,7 @@ CONFIG_CLASSIC_RCU=y
123# 124#
124CONFIG_CPU_SH4=y 125CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 126# CONFIG_CPU_SUBTYPE_SH7619 is not set
127# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 128# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 129# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 130# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +188,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 188CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 189CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 190CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -280,7 +281,6 @@ CONFIG_CMDLINE="console=ttySC1,38400"
280# 281#
281# Bus options 282# Bus options
282# 283#
283# CONFIG_CF_ENABLER is not set
284# CONFIG_ARCH_SUPPORTS_MSI is not set 284# CONFIG_ARCH_SUPPORTS_MSI is not set
285 285
286# 286#
@@ -290,11 +290,18 @@ CONFIG_BINFMT_ELF=y
290# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 290# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
291# CONFIG_HAVE_AOUT is not set 291# CONFIG_HAVE_AOUT is not set
292# CONFIG_BINFMT_MISC is not set 292# CONFIG_BINFMT_MISC is not set
293
294#
295# Power management options (EXPERIMENTAL)
296#
297# CONFIG_PM is not set
298# CONFIG_CPU_IDLE is not set
293CONFIG_NET=y 299CONFIG_NET=y
294 300
295# 301#
296# Networking options 302# Networking options
297# 303#
304CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 305CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 306# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 307CONFIG_UNIX=y
@@ -370,6 +377,7 @@ CONFIG_IP_NF_QUEUE=y
370# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
371# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
372# CONFIG_NET_SCHED is not set 379# CONFIG_NET_SCHED is not set
380# CONFIG_DCB is not set
373 381
374# 382#
375# Network testing 383# Network testing
@@ -385,8 +393,8 @@ CONFIG_WIRELESS=y
385# CONFIG_CFG80211 is not set 393# CONFIG_CFG80211 is not set
386# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
387# CONFIG_WIRELESS_EXT is not set 395# CONFIG_WIRELESS_EXT is not set
396# CONFIG_LIB80211 is not set
388# CONFIG_MAC80211 is not set 397# CONFIG_MAC80211 is not set
389# CONFIG_IEEE80211 is not set
390# CONFIG_RFKILL is not set 398# CONFIG_RFKILL is not set
391# CONFIG_NET_9P is not set 399# CONFIG_NET_9P is not set
392 400
@@ -490,6 +498,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
490CONFIG_MISC_DEVICES=y 498CONFIG_MISC_DEVICES=y
491# CONFIG_EEPROM_93CX6 is not set 499# CONFIG_EEPROM_93CX6 is not set
492# CONFIG_ENCLOSURE_SERVICES is not set 500# CONFIG_ENCLOSURE_SERVICES is not set
501# CONFIG_C2PORT is not set
493CONFIG_HAVE_IDE=y 502CONFIG_HAVE_IDE=y
494# CONFIG_IDE is not set 503# CONFIG_IDE is not set
495 504
@@ -516,6 +525,7 @@ CONFIG_MII=y
516# CONFIG_STNIC is not set 525# CONFIG_STNIC is not set
517# CONFIG_SMC91X is not set 526# CONFIG_SMC91X is not set
518# CONFIG_SMC911X is not set 527# CONFIG_SMC911X is not set
528# CONFIG_SMSC911X is not set
519# CONFIG_IBM_NEW_EMAC_ZMII is not set 529# CONFIG_IBM_NEW_EMAC_ZMII is not set
520# CONFIG_IBM_NEW_EMAC_RGMII is not set 530# CONFIG_IBM_NEW_EMAC_RGMII is not set
521# CONFIG_IBM_NEW_EMAC_TAH is not set 531# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -570,6 +580,7 @@ CONFIG_DEVKMEM=y
570# 580#
571# CONFIG_SERIAL_SH_SCI is not set 581# CONFIG_SERIAL_SH_SCI is not set
572CONFIG_UNIX98_PTYS=y 582CONFIG_UNIX98_PTYS=y
583# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
573CONFIG_LEGACY_PTYS=y 584CONFIG_LEGACY_PTYS=y
574CONFIG_LEGACY_PTY_COUNT=256 585CONFIG_LEGACY_PTY_COUNT=256
575# CONFIG_IPMI_HANDLER is not set 586# CONFIG_IPMI_HANDLER is not set
@@ -604,11 +615,11 @@ CONFIG_WATCHDOG=y
604# 615#
605# CONFIG_SOFT_WATCHDOG is not set 616# CONFIG_SOFT_WATCHDOG is not set
606# CONFIG_SH_WDT is not set 617# CONFIG_SH_WDT is not set
618CONFIG_SSB_POSSIBLE=y
607 619
608# 620#
609# Sonics Silicon Backplane 621# Sonics Silicon Backplane
610# 622#
611CONFIG_SSB_POSSIBLE=y
612# CONFIG_SSB is not set 623# CONFIG_SSB is not set
613 624
614# 625#
@@ -618,7 +629,7 @@ CONFIG_SSB_POSSIBLE=y
618# CONFIG_MFD_SM501 is not set 629# CONFIG_MFD_SM501 is not set
619# CONFIG_HTC_PASIC3 is not set 630# CONFIG_HTC_PASIC3 is not set
620# CONFIG_MFD_TMIO is not set 631# CONFIG_MFD_TMIO is not set
621# CONFIG_MFD_WM8400 is not set 632# CONFIG_REGULATOR is not set
622 633
623# 634#
624# Multimedia devices 635# Multimedia devices
@@ -662,7 +673,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
662# 673#
663 674
664# 675#
665# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 676# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
666# 677#
667# CONFIG_USB_GADGET is not set 678# CONFIG_USB_GADGET is not set
668# CONFIG_MMC is not set 679# CONFIG_MMC is not set
@@ -722,10 +733,7 @@ CONFIG_TMPFS=y
722# CONFIG_HUGETLBFS is not set 733# CONFIG_HUGETLBFS is not set
723# CONFIG_HUGETLB_PAGE is not set 734# CONFIG_HUGETLB_PAGE is not set
724# CONFIG_CONFIGFS_FS is not set 735# CONFIG_CONFIGFS_FS is not set
725 736CONFIG_MISC_FILESYSTEMS=y
726#
727# Miscellaneous filesystems
728#
729# CONFIG_ADFS_FS is not set 737# CONFIG_ADFS_FS is not set
730# CONFIG_AFFS_FS is not set 738# CONFIG_AFFS_FS is not set
731# CONFIG_HFS_FS is not set 739# CONFIG_HFS_FS is not set
@@ -787,13 +795,19 @@ CONFIG_FRAME_WARN=1024
787# CONFIG_DEBUG_MEMORY_INIT is not set 795# CONFIG_DEBUG_MEMORY_INIT is not set
788# CONFIG_RCU_CPU_STALL_DETECTOR is not set 796# CONFIG_RCU_CPU_STALL_DETECTOR is not set
789# CONFIG_LATENCYTOP is not set 797# CONFIG_LATENCYTOP is not set
790CONFIG_NOP_TRACER=y 798CONFIG_HAVE_FUNCTION_TRACER=y
791CONFIG_HAVE_FTRACE=y 799CONFIG_HAVE_DYNAMIC_FTRACE=y
800CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
801
802#
803# Tracers
804#
792# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 805# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
793# CONFIG_SAMPLES is not set 806# CONFIG_SAMPLES is not set
807CONFIG_HAVE_ARCH_KGDB=y
794# CONFIG_SH_STANDARD_BIOS is not set 808# CONFIG_SH_STANDARD_BIOS is not set
795# CONFIG_EARLY_SCIF_CONSOLE is not set 809# CONFIG_EARLY_SCIF_CONSOLE is not set
796# CONFIG_SH_KGDB is not set 810# CONFIG_MORE_COMPILE_OPTIONS is not set
797 811
798# 812#
799# Security options 813# Security options
@@ -809,6 +823,7 @@ CONFIG_CRYPTO=y
809# 823#
810# CONFIG_CRYPTO_FIPS is not set 824# CONFIG_CRYPTO_FIPS is not set
811# CONFIG_CRYPTO_MANAGER is not set 825# CONFIG_CRYPTO_MANAGER is not set
826# CONFIG_CRYPTO_MANAGER2 is not set
812# CONFIG_CRYPTO_GF128MUL is not set 827# CONFIG_CRYPTO_GF128MUL is not set
813# CONFIG_CRYPTO_NULL is not set 828# CONFIG_CRYPTO_NULL is not set
814# CONFIG_CRYPTO_CRYPTD is not set 829# CONFIG_CRYPTO_CRYPTD is not set
@@ -891,6 +906,7 @@ CONFIG_CRYPTO_HW=y
891# Library routines 906# Library routines
892# 907#
893CONFIG_BITREVERSE=y 908CONFIG_BITREVERSE=y
909CONFIG_GENERIC_FIND_LAST_BIT=y
894# CONFIG_CRC_CCITT is not set 910# CONFIG_CRC_CCITT is not set
895# CONFIG_CRC16 is not set 911# CONFIG_CRC16 is not set
896# CONFIG_CRC_T10DIF is not set 912# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7780_defconfig b/arch/sh/configs/se7780_defconfig
index ad95b80bb198..7504978e8747 100644
--- a/arch/sh/configs/se7780_defconfig
+++ b/arch/sh/configs/se7780_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:27:30 2008 4# Fri Jan 9 17:53:50 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -74,7 +76,6 @@ CONFIG_SLAB=y
74# CONFIG_SLUB is not set 76# CONFIG_SLUB is not set
75# CONFIG_SLOB is not set 77# CONFIG_SLOB is not set
76# CONFIG_PROFILING is not set 78# CONFIG_PROFILING is not set
77# CONFIG_MARKERS is not set
78CONFIG_HAVE_OPROFILE=y 79CONFIG_HAVE_OPROFILE=y
79CONFIG_HAVE_IOREMAP_PROT=y 80CONFIG_HAVE_IOREMAP_PROT=y
80CONFIG_HAVE_KPROBES=y 81CONFIG_HAVE_KPROBES=y
@@ -84,18 +85,15 @@ CONFIG_HAVE_CLK=y
84CONFIG_HAVE_GENERIC_DMA_COHERENT=y 85CONFIG_HAVE_GENERIC_DMA_COHERENT=y
85CONFIG_SLABINFO=y 86CONFIG_SLABINFO=y
86CONFIG_RT_MUTEXES=y 87CONFIG_RT_MUTEXES=y
87# CONFIG_TINY_SHMEM is not set
88CONFIG_BASE_SMALL=0 88CONFIG_BASE_SMALL=0
89CONFIG_MODULES=y 89CONFIG_MODULES=y
90# CONFIG_MODULE_FORCE_LOAD is not set 90# CONFIG_MODULE_FORCE_LOAD is not set
91CONFIG_MODULE_UNLOAD=y 91CONFIG_MODULE_UNLOAD=y
92# CONFIG_MODVERSIONS is not set 92# CONFIG_MODVERSIONS is not set
93# CONFIG_MODULE_SRCVERSION_ALL is not set 93# CONFIG_MODULE_SRCVERSION_ALL is not set
94CONFIG_KMOD=y
95CONFIG_BLOCK=y 94CONFIG_BLOCK=y
96# CONFIG_LBD is not set 95# CONFIG_LBD is not set
97# CONFIG_BLK_DEV_IO_TRACE is not set 96# CONFIG_BLK_DEV_IO_TRACE is not set
98# CONFIG_LSF is not set
99# CONFIG_BLK_DEV_INTEGRITY is not set 97# CONFIG_BLK_DEV_INTEGRITY is not set
100 98
101# 99#
@@ -111,6 +109,10 @@ CONFIG_DEFAULT_DEADLINE=y
111# CONFIG_DEFAULT_NOOP is not set 109# CONFIG_DEFAULT_NOOP is not set
112CONFIG_DEFAULT_IOSCHED="deadline" 110CONFIG_DEFAULT_IOSCHED="deadline"
113CONFIG_CLASSIC_RCU=y 111CONFIG_CLASSIC_RCU=y
112# CONFIG_TREE_RCU is not set
113# CONFIG_PREEMPT_RCU is not set
114# CONFIG_TREE_RCU_TRACE is not set
115# CONFIG_PREEMPT_RCU_TRACE is not set
114# CONFIG_FREEZER is not set 116# CONFIG_FREEZER is not set
115 117
116# 118#
@@ -119,6 +121,7 @@ CONFIG_CLASSIC_RCU=y
119CONFIG_CPU_SH4=y 121CONFIG_CPU_SH4=y
120CONFIG_CPU_SH4A=y 122CONFIG_CPU_SH4A=y
121# CONFIG_CPU_SUBTYPE_SH7619 is not set 123# CONFIG_CPU_SUBTYPE_SH7619 is not set
124# CONFIG_CPU_SUBTYPE_SH7201 is not set
122# CONFIG_CPU_SUBTYPE_SH7203 is not set 125# CONFIG_CPU_SUBTYPE_SH7203 is not set
123# CONFIG_CPU_SUBTYPE_SH7206 is not set 126# CONFIG_CPU_SUBTYPE_SH7206 is not set
124# CONFIG_CPU_SUBTYPE_SH7263 is not set 127# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -185,7 +188,6 @@ CONFIG_SPARSEMEM_STATIC=y
185CONFIG_PAGEFLAGS_EXTENDED=y 188CONFIG_PAGEFLAGS_EXTENDED=y
186CONFIG_SPLIT_PTLOCK_CPUS=4 189CONFIG_SPLIT_PTLOCK_CPUS=4
187CONFIG_MIGRATION=y 190CONFIG_MIGRATION=y
188# CONFIG_RESOURCES_64BIT is not set
189# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
190CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
191CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -274,11 +276,11 @@ CONFIG_CMDLINE="console=ttySC0.115200 root=/dev/sda1"
274# 276#
275# Bus options 277# Bus options
276# 278#
277# CONFIG_CF_ENABLER is not set
278CONFIG_PCI=y 279CONFIG_PCI=y
279CONFIG_SH_PCIDMA_NONCOHERENT=y 280CONFIG_SH_PCIDMA_NONCOHERENT=y
280CONFIG_PCI_AUTO=y 281CONFIG_PCI_AUTO=y
281CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 282CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
283# CONFIG_PCIEPORTBUS is not set
282# CONFIG_ARCH_SUPPORTS_MSI is not set 284# CONFIG_ARCH_SUPPORTS_MSI is not set
283CONFIG_PCI_LEGACY=y 285CONFIG_PCI_LEGACY=y
284 286
@@ -294,6 +296,7 @@ CONFIG_NET=y
294# 296#
295# Networking options 297# Networking options
296# 298#
299CONFIG_COMPAT_NET_DEV_OPS=y
297CONFIG_PACKET=y 300CONFIG_PACKET=y
298# CONFIG_PACKET_MMAP is not set 301# CONFIG_PACKET_MMAP is not set
299CONFIG_UNIX=y 302CONFIG_UNIX=y
@@ -349,6 +352,7 @@ CONFIG_IPV6=y
349# CONFIG_IPX is not set 352# CONFIG_IPX is not set
350# CONFIG_ATALK is not set 353# CONFIG_ATALK is not set
351# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
352 356
353# 357#
354# Network testing 358# Network testing
@@ -363,8 +367,8 @@ CONFIG_WIRELESS=y
363# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
364# CONFIG_WIRELESS_OLD_REGULATORY is not set 368# CONFIG_WIRELESS_OLD_REGULATORY is not set
365# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
366# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
367# CONFIG_IEEE80211 is not set
368# CONFIG_RFKILL is not set 372# CONFIG_RFKILL is not set
369 373
370# 374#
@@ -533,6 +537,8 @@ CONFIG_SCSI_LOWLEVEL=y
533# CONFIG_MEGARAID_LEGACY is not set 537# CONFIG_MEGARAID_LEGACY is not set
534# CONFIG_MEGARAID_SAS is not set 538# CONFIG_MEGARAID_SAS is not set
535# CONFIG_SCSI_HPTIOP is not set 539# CONFIG_SCSI_HPTIOP is not set
540# CONFIG_LIBFC is not set
541# CONFIG_FCOE is not set
536# CONFIG_SCSI_DMX3191D is not set 542# CONFIG_SCSI_DMX3191D is not set
537# CONFIG_SCSI_FUTURE_DOMAIN is not set 543# CONFIG_SCSI_FUTURE_DOMAIN is not set
538# CONFIG_SCSI_IPS is not set 544# CONFIG_SCSI_IPS is not set
@@ -569,11 +575,13 @@ CONFIG_SATA_SIL=y
569# CONFIG_SATA_VIA is not set 575# CONFIG_SATA_VIA is not set
570# CONFIG_SATA_VITESSE is not set 576# CONFIG_SATA_VITESSE is not set
571# CONFIG_SATA_INIC162X is not set 577# CONFIG_SATA_INIC162X is not set
578# CONFIG_PATA_ALI is not set
572# CONFIG_PATA_AMD is not set 579# CONFIG_PATA_AMD is not set
573# CONFIG_PATA_ARTOP is not set 580# CONFIG_PATA_ARTOP is not set
574# CONFIG_PATA_ATIIXP is not set 581# CONFIG_PATA_ATIIXP is not set
575# CONFIG_PATA_CMD64X is not set 582# CONFIG_PATA_CMD64X is not set
576# CONFIG_PATA_CS5520 is not set 583# CONFIG_PATA_CS5520 is not set
584# CONFIG_PATA_CS5530 is not set
577# CONFIG_PATA_EFAR is not set 585# CONFIG_PATA_EFAR is not set
578# CONFIG_ATA_GENERIC is not set 586# CONFIG_ATA_GENERIC is not set
579# CONFIG_PATA_HPT366 is not set 587# CONFIG_PATA_HPT366 is not set
@@ -585,10 +593,15 @@ CONFIG_SATA_SIL=y
585# CONFIG_PATA_MPIIX is not set 593# CONFIG_PATA_MPIIX is not set
586# CONFIG_PATA_OLDPIIX is not set 594# CONFIG_PATA_OLDPIIX is not set
587# CONFIG_PATA_NETCELL is not set 595# CONFIG_PATA_NETCELL is not set
596# CONFIG_PATA_NS87410 is not set
597# CONFIG_PATA_NS87415 is not set
598# CONFIG_PATA_PDC_OLD is not set
588# CONFIG_PATA_RZ1000 is not set 599# CONFIG_PATA_RZ1000 is not set
600# CONFIG_PATA_SC1200 is not set
589# CONFIG_PATA_SERVERWORKS is not set 601# CONFIG_PATA_SERVERWORKS is not set
590# CONFIG_PATA_PDC2027X is not set 602# CONFIG_PATA_PDC2027X is not set
591# CONFIG_PATA_SIL680 is not set 603# CONFIG_PATA_SIL680 is not set
604# CONFIG_PATA_SIS is not set
592# CONFIG_PATA_VIA is not set 605# CONFIG_PATA_VIA is not set
593# CONFIG_PATA_WINBOND is not set 606# CONFIG_PATA_WINBOND is not set
594# CONFIG_PATA_PLATFORM is not set 607# CONFIG_PATA_PLATFORM is not set
@@ -627,6 +640,9 @@ CONFIG_SMSC_PHY=y
627# CONFIG_BROADCOM_PHY is not set 640# CONFIG_BROADCOM_PHY is not set
628# CONFIG_ICPLUS_PHY is not set 641# CONFIG_ICPLUS_PHY is not set
629# CONFIG_REALTEK_PHY is not set 642# CONFIG_REALTEK_PHY is not set
643# CONFIG_NATIONAL_PHY is not set
644# CONFIG_STE10XP is not set
645# CONFIG_LSI_ET1011C_PHY is not set
630# CONFIG_FIXED_PHY is not set 646# CONFIG_FIXED_PHY is not set
631# CONFIG_MDIO_BITBANG is not set 647# CONFIG_MDIO_BITBANG is not set
632CONFIG_NET_ETHERNET=y 648CONFIG_NET_ETHERNET=y
@@ -639,6 +655,7 @@ CONFIG_MII=y
639# CONFIG_NET_VENDOR_3COM is not set 655# CONFIG_NET_VENDOR_3COM is not set
640CONFIG_SMC91X=y 656CONFIG_SMC91X=y
641# CONFIG_SMC911X is not set 657# CONFIG_SMC911X is not set
658# CONFIG_SMSC911X is not set
642# CONFIG_NET_TULIP is not set 659# CONFIG_NET_TULIP is not set
643# CONFIG_HP100 is not set 660# CONFIG_HP100 is not set
644# CONFIG_IBM_NEW_EMAC_ZMII is not set 661# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -654,7 +671,6 @@ CONFIG_NET_PCI=y
654# CONFIG_ADAPTEC_STARFIRE is not set 671# CONFIG_ADAPTEC_STARFIRE is not set
655# CONFIG_B44 is not set 672# CONFIG_B44 is not set
656# CONFIG_FORCEDETH is not set 673# CONFIG_FORCEDETH is not set
657# CONFIG_EEPRO100 is not set
658# CONFIG_E100 is not set 674# CONFIG_E100 is not set
659# CONFIG_FEALNX is not set 675# CONFIG_FEALNX is not set
660# CONFIG_NATSEMI is not set 676# CONFIG_NATSEMI is not set
@@ -663,6 +679,7 @@ CONFIG_NET_PCI=y
663# CONFIG_R6040 is not set 679# CONFIG_R6040 is not set
664# CONFIG_SIS900 is not set 680# CONFIG_SIS900 is not set
665# CONFIG_EPIC100 is not set 681# CONFIG_EPIC100 is not set
682# CONFIG_SMSC9420 is not set
666# CONFIG_SUNDANCE is not set 683# CONFIG_SUNDANCE is not set
667# CONFIG_TLAN is not set 684# CONFIG_TLAN is not set
668# CONFIG_VIA_RHINE is not set 685# CONFIG_VIA_RHINE is not set
@@ -754,6 +771,7 @@ CONFIG_SERIAL_CORE=y
754CONFIG_SERIAL_CORE_CONSOLE=y 771CONFIG_SERIAL_CORE_CONSOLE=y
755# CONFIG_SERIAL_JSM is not set 772# CONFIG_SERIAL_JSM is not set
756CONFIG_UNIX98_PTYS=y 773CONFIG_UNIX98_PTYS=y
774# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
757# CONFIG_LEGACY_PTYS is not set 775# CONFIG_LEGACY_PTYS is not set
758# CONFIG_IPMI_HANDLER is not set 776# CONFIG_IPMI_HANDLER is not set
759# CONFIG_HW_RANDOM is not set 777# CONFIG_HW_RANDOM is not set
@@ -779,11 +797,11 @@ CONFIG_HWMON=y
779CONFIG_THERMAL=y 797CONFIG_THERMAL=y
780# CONFIG_THERMAL_HWMON is not set 798# CONFIG_THERMAL_HWMON is not set
781# CONFIG_WATCHDOG is not set 799# CONFIG_WATCHDOG is not set
800CONFIG_SSB_POSSIBLE=y
782 801
783# 802#
784# Sonics Silicon Backplane 803# Sonics Silicon Backplane
785# 804#
786CONFIG_SSB_POSSIBLE=y
787# CONFIG_SSB is not set 805# CONFIG_SSB is not set
788 806
789# 807#
@@ -793,7 +811,7 @@ CONFIG_SSB_POSSIBLE=y
793# CONFIG_MFD_SM501 is not set 811# CONFIG_MFD_SM501 is not set
794# CONFIG_HTC_PASIC3 is not set 812# CONFIG_HTC_PASIC3 is not set
795# CONFIG_MFD_TMIO is not set 813# CONFIG_MFD_TMIO is not set
796# CONFIG_MFD_WM8400 is not set 814# CONFIG_REGULATOR is not set
797 815
798# 816#
799# Multimedia devices 817# Multimedia devices
@@ -821,15 +839,16 @@ CONFIG_FB=y
821CONFIG_FIRMWARE_EDID=y 839CONFIG_FIRMWARE_EDID=y
822# CONFIG_FB_DDC is not set 840# CONFIG_FB_DDC is not set
823# CONFIG_FB_BOOT_VESA_SUPPORT is not set 841# CONFIG_FB_BOOT_VESA_SUPPORT is not set
824CONFIG_FB_CFB_FILLRECT=m 842# CONFIG_FB_CFB_FILLRECT is not set
825CONFIG_FB_CFB_COPYAREA=m 843# CONFIG_FB_CFB_COPYAREA is not set
826CONFIG_FB_CFB_IMAGEBLIT=m 844# CONFIG_FB_CFB_IMAGEBLIT is not set
827# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 845# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
828# CONFIG_FB_SYS_FILLRECT is not set 846CONFIG_FB_SYS_FILLRECT=m
829# CONFIG_FB_SYS_COPYAREA is not set 847CONFIG_FB_SYS_COPYAREA=m
830# CONFIG_FB_SYS_IMAGEBLIT is not set 848CONFIG_FB_SYS_IMAGEBLIT=m
831# CONFIG_FB_FOREIGN_ENDIAN is not set 849# CONFIG_FB_FOREIGN_ENDIAN is not set
832# CONFIG_FB_SYS_FOPS is not set 850CONFIG_FB_SYS_FOPS=m
851CONFIG_FB_DEFERRED_IO=y
833# CONFIG_FB_SVGALIB is not set 852# CONFIG_FB_SVGALIB is not set
834# CONFIG_FB_MACMODES is not set 853# CONFIG_FB_MACMODES is not set
835# CONFIG_FB_BACKLIGHT is not set 854# CONFIG_FB_BACKLIGHT is not set
@@ -865,6 +884,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m
865CONFIG_FB_SH_MOBILE_LCDC=m 884CONFIG_FB_SH_MOBILE_LCDC=m
866# CONFIG_FB_VIRTUAL is not set 885# CONFIG_FB_VIRTUAL is not set
867# CONFIG_FB_METRONOME is not set 886# CONFIG_FB_METRONOME is not set
887# CONFIG_FB_MB862XX is not set
868# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 888# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
869 889
870# 890#
@@ -912,11 +932,9 @@ CONFIG_HID_COMPAT=y
912CONFIG_HID_A4TECH=y 932CONFIG_HID_A4TECH=y
913CONFIG_HID_APPLE=y 933CONFIG_HID_APPLE=y
914CONFIG_HID_BELKIN=y 934CONFIG_HID_BELKIN=y
915CONFIG_HID_BRIGHT=y
916CONFIG_HID_CHERRY=y 935CONFIG_HID_CHERRY=y
917CONFIG_HID_CHICONY=y 936CONFIG_HID_CHICONY=y
918CONFIG_HID_CYPRESS=y 937CONFIG_HID_CYPRESS=y
919CONFIG_HID_DELL=y
920CONFIG_HID_EZKEY=y 938CONFIG_HID_EZKEY=y
921CONFIG_HID_GYRATION=y 939CONFIG_HID_GYRATION=y
922CONFIG_HID_LOGITECH=y 940CONFIG_HID_LOGITECH=y
@@ -924,12 +942,15 @@ CONFIG_HID_LOGITECH=y
924# CONFIG_LOGIRUMBLEPAD2_FF is not set 942# CONFIG_LOGIRUMBLEPAD2_FF is not set
925CONFIG_HID_MICROSOFT=y 943CONFIG_HID_MICROSOFT=y
926CONFIG_HID_MONTEREY=y 944CONFIG_HID_MONTEREY=y
945# CONFIG_HID_NTRIG is not set
927CONFIG_HID_PANTHERLORD=y 946CONFIG_HID_PANTHERLORD=y
928# CONFIG_PANTHERLORD_FF is not set 947# CONFIG_PANTHERLORD_FF is not set
929CONFIG_HID_PETALYNX=y 948CONFIG_HID_PETALYNX=y
930CONFIG_HID_SAMSUNG=y 949CONFIG_HID_SAMSUNG=y
931CONFIG_HID_SONY=y 950CONFIG_HID_SONY=y
932CONFIG_HID_SUNPLUS=y 951CONFIG_HID_SUNPLUS=y
952# CONFIG_GREENASIA_FF is not set
953# CONFIG_HID_TOPSEED is not set
933CONFIG_THRUSTMASTER_FF=m 954CONFIG_THRUSTMASTER_FF=m
934CONFIG_ZEROPLUS_FF=m 955CONFIG_ZEROPLUS_FF=m
935CONFIG_USB_SUPPORT=y 956CONFIG_USB_SUPPORT=y
@@ -949,6 +970,7 @@ CONFIG_USB_DEVICEFS=y
949# CONFIG_USB_OTG_WHITELIST is not set 970# CONFIG_USB_OTG_WHITELIST is not set
950# CONFIG_USB_OTG_BLACKLIST_HUB is not set 971# CONFIG_USB_OTG_BLACKLIST_HUB is not set
951CONFIG_USB_MON=y 972CONFIG_USB_MON=y
973# CONFIG_USB_WUSB_CBAF is not set
952 974
953# 975#
954# USB Host Controller Drivers 976# USB Host Controller Drivers
@@ -974,11 +996,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
974# CONFIG_USB_TMC is not set 996# CONFIG_USB_TMC is not set
975 997
976# 998#
977# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 999# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
978# 1000#
979 1001
980# 1002#
981# may also be needed; see USB_STORAGE Help for more information 1003# see USB_STORAGE Help for more information
982# 1004#
983CONFIG_USB_STORAGE=y 1005CONFIG_USB_STORAGE=y
984# CONFIG_USB_STORAGE_DEBUG is not set 1006# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1094,10 +1116,7 @@ CONFIG_TMPFS=y
1094# CONFIG_HUGETLBFS is not set 1116# CONFIG_HUGETLBFS is not set
1095# CONFIG_HUGETLB_PAGE is not set 1117# CONFIG_HUGETLB_PAGE is not set
1096# CONFIG_CONFIGFS_FS is not set 1118# CONFIG_CONFIGFS_FS is not set
1097 1119CONFIG_MISC_FILESYSTEMS=y
1098#
1099# Miscellaneous filesystems
1100#
1101# CONFIG_HFSPLUS_FS is not set 1120# CONFIG_HFSPLUS_FS is not set
1102# CONFIG_JFFS2_FS is not set 1121# CONFIG_JFFS2_FS is not set
1103CONFIG_CRAMFS=y 1122CONFIG_CRAMFS=y
@@ -1188,13 +1207,19 @@ CONFIG_DEBUG_FS=y
1188# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1207# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1189# CONFIG_LATENCYTOP is not set 1208# CONFIG_LATENCYTOP is not set
1190# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1209# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1191CONFIG_NOP_TRACER=y 1210CONFIG_HAVE_FUNCTION_TRACER=y
1192CONFIG_HAVE_FTRACE=y 1211CONFIG_HAVE_DYNAMIC_FTRACE=y
1212CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1213
1214#
1215# Tracers
1216#
1193# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1217# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1194# CONFIG_SAMPLES is not set 1218# CONFIG_SAMPLES is not set
1219CONFIG_HAVE_ARCH_KGDB=y
1195# CONFIG_SH_STANDARD_BIOS is not set 1220# CONFIG_SH_STANDARD_BIOS is not set
1196# CONFIG_EARLY_SCIF_CONSOLE is not set 1221# CONFIG_EARLY_SCIF_CONSOLE is not set
1197# CONFIG_SH_KGDB is not set 1222# CONFIG_MORE_COMPILE_OPTIONS is not set
1198 1223
1199# 1224#
1200# Security options 1225# Security options
@@ -1210,6 +1235,7 @@ CONFIG_CRYPTO=y
1210# 1235#
1211# CONFIG_CRYPTO_FIPS is not set 1236# CONFIG_CRYPTO_FIPS is not set
1212# CONFIG_CRYPTO_MANAGER is not set 1237# CONFIG_CRYPTO_MANAGER is not set
1238# CONFIG_CRYPTO_MANAGER2 is not set
1213# CONFIG_CRYPTO_NULL is not set 1239# CONFIG_CRYPTO_NULL is not set
1214# CONFIG_CRYPTO_CRYPTD is not set 1240# CONFIG_CRYPTO_CRYPTD is not set
1215# CONFIG_CRYPTO_AUTHENC is not set 1241# CONFIG_CRYPTO_AUTHENC is not set
@@ -1288,6 +1314,7 @@ CONFIG_CRYPTO_HW=y
1288# Library routines 1314# Library routines
1289# 1315#
1290CONFIG_BITREVERSE=y 1316CONFIG_BITREVERSE=y
1317CONFIG_GENERIC_FIND_LAST_BIT=y
1291# CONFIG_CRC_CCITT is not set 1318# CONFIG_CRC_CCITT is not set
1292# CONFIG_CRC16 is not set 1319# CONFIG_CRC16 is not set
1293# CONFIG_CRC_T10DIF is not set 1320# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/sh03_defconfig b/arch/sh/configs/sh03_defconfig
index 95f0f5d5b631..04bde1e96965 100644
--- a/arch/sh/configs/sh03_defconfig
+++ b/arch/sh/configs/sh03_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:31:54 2008 4# Fri Jan 9 17:56:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -79,6 +81,7 @@ CONFIG_SLAB=y
79# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
81CONFIG_PROFILING=y 83CONFIG_PROFILING=y
84CONFIG_TRACEPOINTS=y
82# CONFIG_MARKERS is not set 85# CONFIG_MARKERS is not set
83CONFIG_OPROFILE=m 86CONFIG_OPROFILE=m
84CONFIG_HAVE_OPROFILE=y 87CONFIG_HAVE_OPROFILE=y
@@ -91,7 +94,6 @@ CONFIG_HAVE_CLK=y
91CONFIG_HAVE_GENERIC_DMA_COHERENT=y 94CONFIG_HAVE_GENERIC_DMA_COHERENT=y
92CONFIG_SLABINFO=y 95CONFIG_SLABINFO=y
93CONFIG_RT_MUTEXES=y 96CONFIG_RT_MUTEXES=y
94# CONFIG_TINY_SHMEM is not set
95CONFIG_BASE_SMALL=0 97CONFIG_BASE_SMALL=0
96CONFIG_MODULES=y 98CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set 99# CONFIG_MODULE_FORCE_LOAD is not set
@@ -99,11 +101,9 @@ CONFIG_MODULE_UNLOAD=y
99CONFIG_MODULE_FORCE_UNLOAD=y 101CONFIG_MODULE_FORCE_UNLOAD=y
100CONFIG_MODVERSIONS=y 102CONFIG_MODVERSIONS=y
101# CONFIG_MODULE_SRCVERSION_ALL is not set 103# CONFIG_MODULE_SRCVERSION_ALL is not set
102CONFIG_KMOD=y
103CONFIG_BLOCK=y 104CONFIG_BLOCK=y
104# CONFIG_LBD is not set 105# CONFIG_LBD is not set
105# CONFIG_BLK_DEV_IO_TRACE is not set 106# CONFIG_BLK_DEV_IO_TRACE is not set
106# CONFIG_LSF is not set
107# CONFIG_BLK_DEV_BSG is not set 107# CONFIG_BLK_DEV_BSG is not set
108# CONFIG_BLK_DEV_INTEGRITY is not set 108# CONFIG_BLK_DEV_INTEGRITY is not set
109 109
@@ -120,6 +120,10 @@ CONFIG_DEFAULT_AS=y
120# CONFIG_DEFAULT_NOOP is not set 120# CONFIG_DEFAULT_NOOP is not set
121CONFIG_DEFAULT_IOSCHED="anticipatory" 121CONFIG_DEFAULT_IOSCHED="anticipatory"
122CONFIG_CLASSIC_RCU=y 122CONFIG_CLASSIC_RCU=y
123# CONFIG_TREE_RCU is not set
124# CONFIG_PREEMPT_RCU is not set
125# CONFIG_TREE_RCU_TRACE is not set
126# CONFIG_PREEMPT_RCU_TRACE is not set
123# CONFIG_FREEZER is not set 127# CONFIG_FREEZER is not set
124 128
125# 129#
@@ -127,6 +131,7 @@ CONFIG_CLASSIC_RCU=y
127# 131#
128CONFIG_CPU_SH4=y 132CONFIG_CPU_SH4=y
129# CONFIG_CPU_SUBTYPE_SH7619 is not set 133# CONFIG_CPU_SUBTYPE_SH7619 is not set
134# CONFIG_CPU_SUBTYPE_SH7201 is not set
130# CONFIG_CPU_SUBTYPE_SH7203 is not set 135# CONFIG_CPU_SUBTYPE_SH7203 is not set
131# CONFIG_CPU_SUBTYPE_SH7206 is not set 136# CONFIG_CPU_SUBTYPE_SH7206 is not set
132# CONFIG_CPU_SUBTYPE_SH7263 is not set 137# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -190,7 +195,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
190CONFIG_SPARSEMEM_STATIC=y 195CONFIG_SPARSEMEM_STATIC=y
191CONFIG_PAGEFLAGS_EXTENDED=y 196CONFIG_PAGEFLAGS_EXTENDED=y
192CONFIG_SPLIT_PTLOCK_CPUS=4 197CONFIG_SPLIT_PTLOCK_CPUS=4
193# CONFIG_RESOURCES_64BIT is not set
194# CONFIG_PHYS_ADDR_T_64BIT is not set 198# CONFIG_PHYS_ADDR_T_64BIT is not set
195CONFIG_ZONE_DMA_FLAG=0 199CONFIG_ZONE_DMA_FLAG=0
196CONFIG_NR_QUICK=2 200CONFIG_NR_QUICK=2
@@ -268,7 +272,6 @@ CONFIG_HZ=250
268# CONFIG_PREEMPT_NONE is not set 272# CONFIG_PREEMPT_NONE is not set
269# CONFIG_PREEMPT_VOLUNTARY is not set 273# CONFIG_PREEMPT_VOLUNTARY is not set
270CONFIG_PREEMPT=y 274CONFIG_PREEMPT=y
271# CONFIG_PREEMPT_RCU is not set
272CONFIG_GUSA=y 275CONFIG_GUSA=y
273# CONFIG_GUSA_RB is not set 276# CONFIG_GUSA_RB is not set
274 277
@@ -284,14 +287,11 @@ CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs"
284# 287#
285# Bus options 288# Bus options
286# 289#
287CONFIG_CF_ENABLER=y
288CONFIG_CF_AREA5=y
289# CONFIG_CF_AREA6 is not set
290CONFIG_CF_BASE_ADDR=0xb4000000
291CONFIG_PCI=y 290CONFIG_PCI=y
292CONFIG_SH_PCIDMA_NONCOHERENT=y 291CONFIG_SH_PCIDMA_NONCOHERENT=y
293CONFIG_PCI_AUTO=y 292CONFIG_PCI_AUTO=y
294CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 293CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
294# CONFIG_PCIEPORTBUS is not set
295# CONFIG_ARCH_SUPPORTS_MSI is not set 295# CONFIG_ARCH_SUPPORTS_MSI is not set
296CONFIG_PCI_LEGACY=y 296CONFIG_PCI_LEGACY=y
297# CONFIG_PCCARD is not set 297# CONFIG_PCCARD is not set
@@ -307,11 +307,18 @@ CONFIG_BINFMT_ELF=y
307# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 307# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
308# CONFIG_HAVE_AOUT is not set 308# CONFIG_HAVE_AOUT is not set
309CONFIG_BINFMT_MISC=y 309CONFIG_BINFMT_MISC=y
310
311#
312# Power management options (EXPERIMENTAL)
313#
314# CONFIG_PM is not set
315# CONFIG_CPU_IDLE is not set
310CONFIG_NET=y 316CONFIG_NET=y
311 317
312# 318#
313# Networking options 319# Networking options
314# 320#
321CONFIG_COMPAT_NET_DEV_OPS=y
315CONFIG_PACKET=y 322CONFIG_PACKET=y
316# CONFIG_PACKET_MMAP is not set 323# CONFIG_PACKET_MMAP is not set
317CONFIG_UNIX=y 324CONFIG_UNIX=y
@@ -369,6 +376,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
369# CONFIG_ECONET is not set 376# CONFIG_ECONET is not set
370# CONFIG_WAN_ROUTER is not set 377# CONFIG_WAN_ROUTER is not set
371# CONFIG_NET_SCHED is not set 378# CONFIG_NET_SCHED is not set
379# CONFIG_DCB is not set
372 380
373# 381#
374# Network testing 382# Network testing
@@ -384,8 +392,8 @@ CONFIG_WIRELESS=y
384# CONFIG_CFG80211 is not set 392# CONFIG_CFG80211 is not set
385# CONFIG_WIRELESS_OLD_REGULATORY is not set 393# CONFIG_WIRELESS_OLD_REGULATORY is not set
386# CONFIG_WIRELESS_EXT is not set 394# CONFIG_WIRELESS_EXT is not set
395# CONFIG_LIB80211 is not set
387# CONFIG_MAC80211 is not set 396# CONFIG_MAC80211 is not set
388# CONFIG_IEEE80211 is not set
389# CONFIG_RFKILL is not set 397# CONFIG_RFKILL is not set
390# CONFIG_NET_9P is not set 398# CONFIG_NET_9P is not set
391 399
@@ -427,6 +435,7 @@ CONFIG_MISC_DEVICES=y
427# CONFIG_TIFM_CORE is not set 435# CONFIG_TIFM_CORE is not set
428# CONFIG_ENCLOSURE_SERVICES is not set 436# CONFIG_ENCLOSURE_SERVICES is not set
429# CONFIG_HP_ILO is not set 437# CONFIG_HP_ILO is not set
438# CONFIG_C2PORT is not set
430CONFIG_HAVE_IDE=y 439CONFIG_HAVE_IDE=y
431CONFIG_IDE=y 440CONFIG_IDE=y
432 441
@@ -441,7 +450,6 @@ CONFIG_IDE_GD_ATA=y
441CONFIG_BLK_DEV_IDECD=m 450CONFIG_BLK_DEV_IDECD=m
442CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 451CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
443CONFIG_BLK_DEV_IDETAPE=m 452CONFIG_BLK_DEV_IDETAPE=m
444# CONFIG_BLK_DEV_IDESCSI is not set
445# CONFIG_IDE_TASK_IOCTL is not set 453# CONFIG_IDE_TASK_IOCTL is not set
446CONFIG_IDE_PROC_FS=y 454CONFIG_IDE_PROC_FS=y
447 455
@@ -466,6 +474,7 @@ CONFIG_IDE_PROC_FS=y
466# CONFIG_BLK_DEV_JMICRON is not set 474# CONFIG_BLK_DEV_JMICRON is not set
467# CONFIG_BLK_DEV_SC1200 is not set 475# CONFIG_BLK_DEV_SC1200 is not set
468# CONFIG_BLK_DEV_PIIX is not set 476# CONFIG_BLK_DEV_PIIX is not set
477# CONFIG_BLK_DEV_IT8172 is not set
469# CONFIG_BLK_DEV_IT8213 is not set 478# CONFIG_BLK_DEV_IT8213 is not set
470# CONFIG_BLK_DEV_IT821X is not set 479# CONFIG_BLK_DEV_IT821X is not set
471# CONFIG_BLK_DEV_NS87415 is not set 480# CONFIG_BLK_DEV_NS87415 is not set
@@ -519,6 +528,7 @@ CONFIG_SCSI_WAIT_SCAN=m
519# CONFIG_SCSI_SRP_ATTRS is not set 528# CONFIG_SCSI_SRP_ATTRS is not set
520CONFIG_SCSI_LOWLEVEL=y 529CONFIG_SCSI_LOWLEVEL=y
521# CONFIG_ISCSI_TCP is not set 530# CONFIG_ISCSI_TCP is not set
531# CONFIG_SCSI_CXGB3_ISCSI is not set
522# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 532# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
523# CONFIG_SCSI_3W_9XXX is not set 533# CONFIG_SCSI_3W_9XXX is not set
524# CONFIG_SCSI_ACARD is not set 534# CONFIG_SCSI_ACARD is not set
@@ -532,6 +542,8 @@ CONFIG_SCSI_LOWLEVEL=y
532# CONFIG_MEGARAID_LEGACY is not set 542# CONFIG_MEGARAID_LEGACY is not set
533# CONFIG_MEGARAID_SAS is not set 543# CONFIG_MEGARAID_SAS is not set
534# CONFIG_SCSI_HPTIOP is not set 544# CONFIG_SCSI_HPTIOP is not set
545# CONFIG_LIBFC is not set
546# CONFIG_FCOE is not set
535# CONFIG_SCSI_DMX3191D is not set 547# CONFIG_SCSI_DMX3191D is not set
536# CONFIG_SCSI_FUTURE_DOMAIN is not set 548# CONFIG_SCSI_FUTURE_DOMAIN is not set
537# CONFIG_SCSI_IPS is not set 549# CONFIG_SCSI_IPS is not set
@@ -583,6 +595,7 @@ CONFIG_MII=y
583# CONFIG_NET_VENDOR_3COM is not set 595# CONFIG_NET_VENDOR_3COM is not set
584# CONFIG_SMC91X is not set 596# CONFIG_SMC91X is not set
585# CONFIG_SMC911X is not set 597# CONFIG_SMC911X is not set
598# CONFIG_SMSC911X is not set
586# CONFIG_NET_TULIP is not set 599# CONFIG_NET_TULIP is not set
587# CONFIG_HP100 is not set 600# CONFIG_HP100 is not set
588# CONFIG_IBM_NEW_EMAC_ZMII is not set 601# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -598,7 +611,6 @@ CONFIG_NET_PCI=y
598# CONFIG_ADAPTEC_STARFIRE is not set 611# CONFIG_ADAPTEC_STARFIRE is not set
599# CONFIG_B44 is not set 612# CONFIG_B44 is not set
600# CONFIG_FORCEDETH is not set 613# CONFIG_FORCEDETH is not set
601# CONFIG_EEPRO100 is not set
602# CONFIG_E100 is not set 614# CONFIG_E100 is not set
603# CONFIG_FEALNX is not set 615# CONFIG_FEALNX is not set
604# CONFIG_NATSEMI is not set 616# CONFIG_NATSEMI is not set
@@ -608,6 +620,7 @@ CONFIG_8139CP=y
608# CONFIG_R6040 is not set 620# CONFIG_R6040 is not set
609# CONFIG_SIS900 is not set 621# CONFIG_SIS900 is not set
610# CONFIG_EPIC100 is not set 622# CONFIG_EPIC100 is not set
623# CONFIG_SMSC9420 is not set
611# CONFIG_SUNDANCE is not set 624# CONFIG_SUNDANCE is not set
612# CONFIG_TLAN is not set 625# CONFIG_TLAN is not set
613# CONFIG_VIA_RHINE is not set 626# CONFIG_VIA_RHINE is not set
@@ -636,6 +649,7 @@ CONFIG_NETDEV_1000=y
636# CONFIG_JME is not set 649# CONFIG_JME is not set
637CONFIG_NETDEV_10000=y 650CONFIG_NETDEV_10000=y
638# CONFIG_CHELSIO_T1 is not set 651# CONFIG_CHELSIO_T1 is not set
652CONFIG_CHELSIO_T3_DEPENDS=y
639# CONFIG_CHELSIO_T3 is not set 653# CONFIG_CHELSIO_T3 is not set
640# CONFIG_ENIC is not set 654# CONFIG_ENIC is not set
641# CONFIG_IXGBE is not set 655# CONFIG_IXGBE is not set
@@ -644,6 +658,7 @@ CONFIG_NETDEV_10000=y
644# CONFIG_MYRI10GE is not set 658# CONFIG_MYRI10GE is not set
645# CONFIG_NETXEN_NIC is not set 659# CONFIG_NETXEN_NIC is not set
646# CONFIG_NIU is not set 660# CONFIG_NIU is not set
661# CONFIG_MLX4_EN is not set
647# CONFIG_MLX4_CORE is not set 662# CONFIG_MLX4_CORE is not set
648# CONFIG_TEHUTI is not set 663# CONFIG_TEHUTI is not set
649# CONFIG_BNX2X is not set 664# CONFIG_BNX2X is not set
@@ -734,6 +749,7 @@ CONFIG_SERIAL_CORE=y
734CONFIG_SERIAL_CORE_CONSOLE=y 749CONFIG_SERIAL_CORE_CONSOLE=y
735# CONFIG_SERIAL_JSM is not set 750# CONFIG_SERIAL_JSM is not set
736CONFIG_UNIX98_PTYS=y 751CONFIG_UNIX98_PTYS=y
752# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
737CONFIG_LEGACY_PTYS=y 753CONFIG_LEGACY_PTYS=y
738CONFIG_LEGACY_PTY_COUNT=256 754CONFIG_LEGACY_PTY_COUNT=256
739# CONFIG_IPMI_HANDLER is not set 755# CONFIG_IPMI_HANDLER is not set
@@ -782,11 +798,11 @@ CONFIG_SH_WDT=m
782# 798#
783# CONFIG_PCIPCWATCHDOG is not set 799# CONFIG_PCIPCWATCHDOG is not set
784# CONFIG_WDTPCI is not set 800# CONFIG_WDTPCI is not set
801CONFIG_SSB_POSSIBLE=y
785 802
786# 803#
787# Sonics Silicon Backplane 804# Sonics Silicon Backplane
788# 805#
789CONFIG_SSB_POSSIBLE=y
790# CONFIG_SSB is not set 806# CONFIG_SSB is not set
791 807
792# 808#
@@ -796,7 +812,7 @@ CONFIG_SSB_POSSIBLE=y
796# CONFIG_MFD_SM501 is not set 812# CONFIG_MFD_SM501 is not set
797# CONFIG_HTC_PASIC3 is not set 813# CONFIG_HTC_PASIC3 is not set
798# CONFIG_MFD_TMIO is not set 814# CONFIG_MFD_TMIO is not set
799# CONFIG_MFD_WM8400 is not set 815# CONFIG_REGULATOR is not set
800 816
801# 817#
802# Multimedia devices 818# Multimedia devices
@@ -856,9 +872,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
856# 872#
857 873
858# 874#
859# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 875# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
860# 876#
861# CONFIG_USB_GADGET is not set 877# CONFIG_USB_GADGET is not set
878# CONFIG_UWB is not set
862# CONFIG_MMC is not set 879# CONFIG_MMC is not set
863# CONFIG_MEMSTICK is not set 880# CONFIG_MEMSTICK is not set
864# CONFIG_NEW_LEDS is not set 881# CONFIG_NEW_LEDS is not set
@@ -883,6 +900,7 @@ CONFIG_EXT3_FS_POSIX_ACL=y
883# CONFIG_EXT3_FS_SECURITY is not set 900# CONFIG_EXT3_FS_SECURITY is not set
884# CONFIG_EXT4_FS is not set 901# CONFIG_EXT4_FS is not set
885CONFIG_JBD=y 902CONFIG_JBD=y
903# CONFIG_JBD_DEBUG is not set
886CONFIG_FS_MBCACHE=y 904CONFIG_FS_MBCACHE=y
887# CONFIG_REISERFS_FS is not set 905# CONFIG_REISERFS_FS is not set
888# CONFIG_JFS_FS is not set 906# CONFIG_JFS_FS is not set
@@ -930,10 +948,7 @@ CONFIG_TMPFS=y
930# CONFIG_HUGETLBFS is not set 948# CONFIG_HUGETLBFS is not set
931# CONFIG_HUGETLB_PAGE is not set 949# CONFIG_HUGETLB_PAGE is not set
932# CONFIG_CONFIGFS_FS is not set 950# CONFIG_CONFIGFS_FS is not set
933 951CONFIG_MISC_FILESYSTEMS=y
934#
935# Miscellaneous filesystems
936#
937# CONFIG_ADFS_FS is not set 952# CONFIG_ADFS_FS is not set
938# CONFIG_AFFS_FS is not set 953# CONFIG_AFFS_FS is not set
939# CONFIG_HFS_FS is not set 954# CONFIG_HFS_FS is not set
@@ -1048,21 +1063,31 @@ CONFIG_ENABLE_MUST_CHECK=y
1048CONFIG_FRAME_WARN=1024 1063CONFIG_FRAME_WARN=1024
1049# CONFIG_MAGIC_SYSRQ is not set 1064# CONFIG_MAGIC_SYSRQ is not set
1050# CONFIG_UNUSED_SYMBOLS is not set 1065# CONFIG_UNUSED_SYMBOLS is not set
1051# CONFIG_DEBUG_FS is not set 1066CONFIG_DEBUG_FS=y
1052# CONFIG_HEADERS_CHECK is not set 1067# CONFIG_HEADERS_CHECK is not set
1053# CONFIG_DEBUG_KERNEL is not set 1068# CONFIG_DEBUG_KERNEL is not set
1069CONFIG_STACKTRACE=y
1054# CONFIG_DEBUG_BUGVERBOSE is not set 1070# CONFIG_DEBUG_BUGVERBOSE is not set
1055# CONFIG_DEBUG_MEMORY_INIT is not set 1071# CONFIG_DEBUG_MEMORY_INIT is not set
1056# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1072# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1057# CONFIG_LATENCYTOP is not set 1073# CONFIG_LATENCYTOP is not set
1058CONFIG_NOP_TRACER=y 1074CONFIG_NOP_TRACER=y
1059CONFIG_HAVE_FTRACE=y 1075CONFIG_HAVE_FUNCTION_TRACER=y
1076CONFIG_HAVE_DYNAMIC_FTRACE=y
1077CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1078CONFIG_RING_BUFFER=y
1079CONFIG_TRACING=y
1080
1081#
1082# Tracers
1083#
1060# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1084# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1061# CONFIG_SAMPLES is not set 1085# CONFIG_SAMPLES is not set
1086CONFIG_HAVE_ARCH_KGDB=y
1062CONFIG_SH_STANDARD_BIOS=y 1087CONFIG_SH_STANDARD_BIOS=y
1063# CONFIG_EARLY_SCIF_CONSOLE is not set 1088# CONFIG_EARLY_SCIF_CONSOLE is not set
1064# CONFIG_EARLY_PRINTK is not set 1089# CONFIG_EARLY_PRINTK is not set
1065# CONFIG_SH_KGDB is not set 1090# CONFIG_MORE_COMPILE_OPTIONS is not set
1066 1091
1067# 1092#
1068# Security options 1093# Security options
@@ -1078,11 +1103,15 @@ CONFIG_CRYPTO=y
1078# 1103#
1079# CONFIG_CRYPTO_FIPS is not set 1104# CONFIG_CRYPTO_FIPS is not set
1080CONFIG_CRYPTO_ALGAPI=y 1105CONFIG_CRYPTO_ALGAPI=y
1081CONFIG_CRYPTO_AEAD=y 1106CONFIG_CRYPTO_ALGAPI2=y
1107CONFIG_CRYPTO_AEAD2=y
1082CONFIG_CRYPTO_BLKCIPHER=y 1108CONFIG_CRYPTO_BLKCIPHER=y
1109CONFIG_CRYPTO_BLKCIPHER2=y
1083CONFIG_CRYPTO_HASH=y 1110CONFIG_CRYPTO_HASH=y
1084CONFIG_CRYPTO_RNG=y 1111CONFIG_CRYPTO_HASH2=y
1112CONFIG_CRYPTO_RNG2=y
1085CONFIG_CRYPTO_MANAGER=y 1113CONFIG_CRYPTO_MANAGER=y
1114CONFIG_CRYPTO_MANAGER2=y
1086# CONFIG_CRYPTO_GF128MUL is not set 1115# CONFIG_CRYPTO_GF128MUL is not set
1087# CONFIG_CRYPTO_NULL is not set 1116# CONFIG_CRYPTO_NULL is not set
1088# CONFIG_CRYPTO_CRYPTD is not set 1117# CONFIG_CRYPTO_CRYPTD is not set
@@ -1166,6 +1195,7 @@ CONFIG_CRYPTO_HW=y
1166# Library routines 1195# Library routines
1167# 1196#
1168CONFIG_BITREVERSE=y 1197CONFIG_BITREVERSE=y
1198CONFIG_GENERIC_FIND_LAST_BIT=y
1169CONFIG_CRC_CCITT=y 1199CONFIG_CRC_CCITT=y
1170# CONFIG_CRC16 is not set 1200# CONFIG_CRC16 is not set
1171# CONFIG_CRC_T10DIF is not set 1201# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/sh7710voipgw_defconfig b/arch/sh/configs/sh7710voipgw_defconfig
index 9a768b28adcb..1b869f452ad1 100644
--- a/arch/sh/configs/sh7710voipgw_defconfig
+++ b/arch/sh/configs/sh7710voipgw_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:35:18 2008 4# Fri Jan 9 18:00:31 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -74,12 +76,10 @@ CONFIG_EVENTFD=y
74# CONFIG_SHMEM is not set 76# CONFIG_SHMEM is not set
75CONFIG_AIO=y 77CONFIG_AIO=y
76CONFIG_VM_EVENT_COUNTERS=y 78CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y
78CONFIG_SLAB=y 79CONFIG_SLAB=y
79# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
81# CONFIG_PROFILING is not set 82# CONFIG_PROFILING is not set
82# CONFIG_MARKERS is not set
83CONFIG_HAVE_OPROFILE=y 83CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 84# CONFIG_KPROBES is not set
85CONFIG_HAVE_IOREMAP_PROT=y 85CONFIG_HAVE_IOREMAP_PROT=y
@@ -89,7 +89,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
89CONFIG_HAVE_CLK=y 89CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
92CONFIG_TINY_SHMEM=y
93CONFIG_BASE_SMALL=0 92CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 93CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 94# CONFIG_MODULE_FORCE_LOAD is not set
@@ -97,11 +96,9 @@ CONFIG_MODULE_UNLOAD=y
97CONFIG_MODULE_FORCE_UNLOAD=y 96CONFIG_MODULE_FORCE_UNLOAD=y
98# CONFIG_MODVERSIONS is not set 97# CONFIG_MODVERSIONS is not set
99# CONFIG_MODULE_SRCVERSION_ALL is not set 98# CONFIG_MODULE_SRCVERSION_ALL is not set
100CONFIG_KMOD=y
101CONFIG_BLOCK=y 99CONFIG_BLOCK=y
102# CONFIG_LBD is not set 100# CONFIG_LBD is not set
103# CONFIG_BLK_DEV_IO_TRACE is not set 101# CONFIG_BLK_DEV_IO_TRACE is not set
104# CONFIG_LSF is not set
105# CONFIG_BLK_DEV_BSG is not set 102# CONFIG_BLK_DEV_BSG is not set
106# CONFIG_BLK_DEV_INTEGRITY is not set 103# CONFIG_BLK_DEV_INTEGRITY is not set
107 104
@@ -118,6 +115,10 @@ CONFIG_DEFAULT_DEADLINE=y
118# CONFIG_DEFAULT_NOOP is not set 115# CONFIG_DEFAULT_NOOP is not set
119CONFIG_DEFAULT_IOSCHED="deadline" 116CONFIG_DEFAULT_IOSCHED="deadline"
120CONFIG_CLASSIC_RCU=y 117CONFIG_CLASSIC_RCU=y
118# CONFIG_TREE_RCU is not set
119# CONFIG_PREEMPT_RCU is not set
120# CONFIG_TREE_RCU_TRACE is not set
121# CONFIG_PREEMPT_RCU_TRACE is not set
121# CONFIG_FREEZER is not set 122# CONFIG_FREEZER is not set
122 123
123# 124#
@@ -125,6 +126,7 @@ CONFIG_CLASSIC_RCU=y
125# 126#
126CONFIG_CPU_SH3=y 127CONFIG_CPU_SH3=y
127# CONFIG_CPU_SUBTYPE_SH7619 is not set 128# CONFIG_CPU_SUBTYPE_SH7619 is not set
129# CONFIG_CPU_SUBTYPE_SH7201 is not set
128# CONFIG_CPU_SUBTYPE_SH7203 is not set 130# CONFIG_CPU_SUBTYPE_SH7203 is not set
129# CONFIG_CPU_SUBTYPE_SH7206 is not set 131# CONFIG_CPU_SUBTYPE_SH7206 is not set
130# CONFIG_CPU_SUBTYPE_SH7263 is not set 132# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -188,7 +190,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
188CONFIG_SPARSEMEM_STATIC=y 190CONFIG_SPARSEMEM_STATIC=y
189CONFIG_PAGEFLAGS_EXTENDED=y 191CONFIG_PAGEFLAGS_EXTENDED=y
190CONFIG_SPLIT_PTLOCK_CPUS=4 192CONFIG_SPLIT_PTLOCK_CPUS=4
191# CONFIG_RESOURCES_64BIT is not set
192# CONFIG_PHYS_ADDR_T_64BIT is not set 193# CONFIG_PHYS_ADDR_T_64BIT is not set
193CONFIG_ZONE_DMA_FLAG=0 194CONFIG_ZONE_DMA_FLAG=0
194CONFIG_NR_QUICK=2 195CONFIG_NR_QUICK=2
@@ -287,11 +288,18 @@ CONFIG_BINFMT_ELF=y
287# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
288# CONFIG_HAVE_AOUT is not set 289# CONFIG_HAVE_AOUT is not set
289# CONFIG_BINFMT_MISC is not set 290# CONFIG_BINFMT_MISC is not set
291
292#
293# Power management options (EXPERIMENTAL)
294#
295# CONFIG_PM is not set
296# CONFIG_CPU_IDLE is not set
290CONFIG_NET=y 297CONFIG_NET=y
291 298
292# 299#
293# Networking options 300# Networking options
294# 301#
302CONFIG_COMPAT_NET_DEV_OPS=y
295CONFIG_PACKET=y 303CONFIG_PACKET=y
296# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
297CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -378,6 +386,7 @@ CONFIG_NET_SCH_CBQ=y
378# CONFIG_NET_SCH_GRED is not set 386# CONFIG_NET_SCH_GRED is not set
379# CONFIG_NET_SCH_DSMARK is not set 387# CONFIG_NET_SCH_DSMARK is not set
380# CONFIG_NET_SCH_NETEM is not set 388# CONFIG_NET_SCH_NETEM is not set
389# CONFIG_NET_SCH_DRR is not set
381 390
382# 391#
383# Classification 392# Classification
@@ -398,6 +407,7 @@ CONFIG_NET_CLS_U32=y
398# CONFIG_NET_CLS_ACT is not set 407# CONFIG_NET_CLS_ACT is not set
399# CONFIG_NET_CLS_IND is not set 408# CONFIG_NET_CLS_IND is not set
400CONFIG_NET_SCH_FIFO=y 409CONFIG_NET_SCH_FIFO=y
410# CONFIG_DCB is not set
401 411
402# 412#
403# Network testing 413# Network testing
@@ -413,8 +423,8 @@ CONFIG_WIRELESS=y
413# CONFIG_CFG80211 is not set 423# CONFIG_CFG80211 is not set
414# CONFIG_WIRELESS_OLD_REGULATORY is not set 424# CONFIG_WIRELESS_OLD_REGULATORY is not set
415# CONFIG_WIRELESS_EXT is not set 425# CONFIG_WIRELESS_EXT is not set
426# CONFIG_LIB80211 is not set
416# CONFIG_MAC80211 is not set 427# CONFIG_MAC80211 is not set
417# CONFIG_IEEE80211 is not set
418# CONFIG_RFKILL is not set 428# CONFIG_RFKILL is not set
419# CONFIG_NET_9P is not set 429# CONFIG_NET_9P is not set
420 430
@@ -519,6 +529,7 @@ CONFIG_BLK_DEV=y
519CONFIG_MISC_DEVICES=y 529CONFIG_MISC_DEVICES=y
520# CONFIG_EEPROM_93CX6 is not set 530# CONFIG_EEPROM_93CX6 is not set
521# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
532# CONFIG_C2PORT is not set
522CONFIG_HAVE_IDE=y 533CONFIG_HAVE_IDE=y
523# CONFIG_IDE is not set 534# CONFIG_IDE is not set
524 535
@@ -546,6 +557,7 @@ CONFIG_NET_ETHERNET=y
546# CONFIG_SH_ETH is not set 557# CONFIG_SH_ETH is not set
547# CONFIG_SMC91X is not set 558# CONFIG_SMC91X is not set
548# CONFIG_SMC911X is not set 559# CONFIG_SMC911X is not set
560# CONFIG_SMSC911X is not set
549# CONFIG_IBM_NEW_EMAC_ZMII is not set 561# CONFIG_IBM_NEW_EMAC_ZMII is not set
550# CONFIG_IBM_NEW_EMAC_RGMII is not set 562# CONFIG_IBM_NEW_EMAC_RGMII is not set
551# CONFIG_IBM_NEW_EMAC_TAH is not set 563# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -638,11 +650,11 @@ CONFIG_HW_RANDOM=y
638# CONFIG_HWMON is not set 650# CONFIG_HWMON is not set
639CONFIG_THERMAL=y 651CONFIG_THERMAL=y
640# CONFIG_WATCHDOG is not set 652# CONFIG_WATCHDOG is not set
653CONFIG_SSB_POSSIBLE=y
641 654
642# 655#
643# Sonics Silicon Backplane 656# Sonics Silicon Backplane
644# 657#
645CONFIG_SSB_POSSIBLE=y
646# CONFIG_SSB is not set 658# CONFIG_SSB is not set
647 659
648# 660#
@@ -652,7 +664,7 @@ CONFIG_SSB_POSSIBLE=y
652# CONFIG_MFD_SM501 is not set 664# CONFIG_MFD_SM501 is not set
653# CONFIG_HTC_PASIC3 is not set 665# CONFIG_HTC_PASIC3 is not set
654# CONFIG_MFD_TMIO is not set 666# CONFIG_MFD_TMIO is not set
655# CONFIG_MFD_WM8400 is not set 667# CONFIG_REGULATOR is not set
656 668
657# 669#
658# Multimedia devices 670# Multimedia devices
@@ -706,7 +718,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
706# 718#
707 719
708# 720#
709# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 721# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
710# 722#
711# CONFIG_USB_GADGET is not set 723# CONFIG_USB_GADGET is not set
712# CONFIG_MMC is not set 724# CONFIG_MMC is not set
@@ -763,10 +775,7 @@ CONFIG_TMPFS=y
763# CONFIG_HUGETLBFS is not set 775# CONFIG_HUGETLBFS is not set
764# CONFIG_HUGETLB_PAGE is not set 776# CONFIG_HUGETLB_PAGE is not set
765# CONFIG_CONFIGFS_FS is not set 777# CONFIG_CONFIGFS_FS is not set
766 778CONFIG_MISC_FILESYSTEMS=y
767#
768# Miscellaneous filesystems
769#
770# CONFIG_ADFS_FS is not set 779# CONFIG_ADFS_FS is not set
771# CONFIG_AFFS_FS is not set 780# CONFIG_AFFS_FS is not set
772# CONFIG_HFS_FS is not set 781# CONFIG_HFS_FS is not set
@@ -828,13 +837,19 @@ CONFIG_DEBUG_FS=y
828# CONFIG_DEBUG_MEMORY_INIT is not set 837# CONFIG_DEBUG_MEMORY_INIT is not set
829# CONFIG_RCU_CPU_STALL_DETECTOR is not set 838# CONFIG_RCU_CPU_STALL_DETECTOR is not set
830# CONFIG_LATENCYTOP is not set 839# CONFIG_LATENCYTOP is not set
831CONFIG_NOP_TRACER=y 840CONFIG_HAVE_FUNCTION_TRACER=y
832CONFIG_HAVE_FTRACE=y 841CONFIG_HAVE_DYNAMIC_FTRACE=y
842CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
843
844#
845# Tracers
846#
833# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 847# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
834# CONFIG_SAMPLES is not set 848# CONFIG_SAMPLES is not set
849CONFIG_HAVE_ARCH_KGDB=y
835# CONFIG_SH_STANDARD_BIOS is not set 850# CONFIG_SH_STANDARD_BIOS is not set
836# CONFIG_EARLY_SCIF_CONSOLE is not set 851# CONFIG_EARLY_SCIF_CONSOLE is not set
837# CONFIG_SH_KGDB is not set 852# CONFIG_MORE_COMPILE_OPTIONS is not set
838 853
839# 854#
840# Security options 855# Security options
@@ -850,6 +865,7 @@ CONFIG_CRYPTO=y
850# 865#
851# CONFIG_CRYPTO_FIPS is not set 866# CONFIG_CRYPTO_FIPS is not set
852# CONFIG_CRYPTO_MANAGER is not set 867# CONFIG_CRYPTO_MANAGER is not set
868# CONFIG_CRYPTO_MANAGER2 is not set
853# CONFIG_CRYPTO_GF128MUL is not set 869# CONFIG_CRYPTO_GF128MUL is not set
854# CONFIG_CRYPTO_NULL is not set 870# CONFIG_CRYPTO_NULL is not set
855# CONFIG_CRYPTO_CRYPTD is not set 871# CONFIG_CRYPTO_CRYPTD is not set
@@ -932,6 +948,7 @@ CONFIG_CRYPTO_HW=y
932# Library routines 948# Library routines
933# 949#
934CONFIG_BITREVERSE=y 950CONFIG_BITREVERSE=y
951CONFIG_GENERIC_FIND_LAST_BIT=y
935# CONFIG_CRC_CCITT is not set 952# CONFIG_CRC_CCITT is not set
936# CONFIG_CRC16 is not set 953# CONFIG_CRC16 is not set
937# CONFIG_CRC_T10DIF is not set 954# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/sh7763rdp_defconfig b/arch/sh/configs/sh7763rdp_defconfig
index 6a77f691fb87..ba33aca75af6 100644
--- a/arch/sh/configs/sh7763rdp_defconfig
+++ b/arch/sh/configs/sh7763rdp_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:37:12 2008 4# Fri Jan 9 18:02:28 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -79,11 +81,11 @@ CONFIG_EVENTFD=y
79CONFIG_SHMEM=y 81CONFIG_SHMEM=y
80CONFIG_AIO=y 82CONFIG_AIO=y
81CONFIG_VM_EVENT_COUNTERS=y 83CONFIG_VM_EVENT_COUNTERS=y
82CONFIG_PCI_QUIRKS=y
83CONFIG_SLAB=y 84CONFIG_SLAB=y
84# CONFIG_SLUB is not set 85# CONFIG_SLUB is not set
85# CONFIG_SLOB is not set 86# CONFIG_SLOB is not set
86CONFIG_PROFILING=y 87CONFIG_PROFILING=y
88CONFIG_TRACEPOINTS=y
87# CONFIG_MARKERS is not set 89# CONFIG_MARKERS is not set
88CONFIG_OPROFILE=y 90CONFIG_OPROFILE=y
89CONFIG_HAVE_OPROFILE=y 91CONFIG_HAVE_OPROFILE=y
@@ -96,18 +98,15 @@ CONFIG_HAVE_CLK=y
96CONFIG_HAVE_GENERIC_DMA_COHERENT=y 98CONFIG_HAVE_GENERIC_DMA_COHERENT=y
97CONFIG_SLABINFO=y 99CONFIG_SLABINFO=y
98CONFIG_RT_MUTEXES=y 100CONFIG_RT_MUTEXES=y
99# CONFIG_TINY_SHMEM is not set
100CONFIG_BASE_SMALL=0 101CONFIG_BASE_SMALL=0
101CONFIG_MODULES=y 102CONFIG_MODULES=y
102# CONFIG_MODULE_FORCE_LOAD is not set 103# CONFIG_MODULE_FORCE_LOAD is not set
103# CONFIG_MODULE_UNLOAD is not set 104# CONFIG_MODULE_UNLOAD is not set
104# CONFIG_MODVERSIONS is not set 105# CONFIG_MODVERSIONS is not set
105# CONFIG_MODULE_SRCVERSION_ALL is not set 106# CONFIG_MODULE_SRCVERSION_ALL is not set
106CONFIG_KMOD=y
107CONFIG_BLOCK=y 107CONFIG_BLOCK=y
108# CONFIG_LBD is not set 108# CONFIG_LBD is not set
109# CONFIG_BLK_DEV_IO_TRACE is not set 109# CONFIG_BLK_DEV_IO_TRACE is not set
110# CONFIG_LSF is not set
111# CONFIG_BLK_DEV_BSG is not set 110# CONFIG_BLK_DEV_BSG is not set
112# CONFIG_BLK_DEV_INTEGRITY is not set 111# CONFIG_BLK_DEV_INTEGRITY is not set
113 112
@@ -124,6 +123,10 @@ CONFIG_DEFAULT_AS=y
124# CONFIG_DEFAULT_NOOP is not set 123# CONFIG_DEFAULT_NOOP is not set
125CONFIG_DEFAULT_IOSCHED="anticipatory" 124CONFIG_DEFAULT_IOSCHED="anticipatory"
126CONFIG_CLASSIC_RCU=y 125CONFIG_CLASSIC_RCU=y
126# CONFIG_TREE_RCU is not set
127# CONFIG_PREEMPT_RCU is not set
128# CONFIG_TREE_RCU_TRACE is not set
129# CONFIG_PREEMPT_RCU_TRACE is not set
127# CONFIG_FREEZER is not set 130# CONFIG_FREEZER is not set
128 131
129# 132#
@@ -132,6 +135,7 @@ CONFIG_CLASSIC_RCU=y
132CONFIG_CPU_SH4=y 135CONFIG_CPU_SH4=y
133CONFIG_CPU_SH4A=y 136CONFIG_CPU_SH4A=y
134# CONFIG_CPU_SUBTYPE_SH7619 is not set 137# CONFIG_CPU_SUBTYPE_SH7619 is not set
138# CONFIG_CPU_SUBTYPE_SH7201 is not set
135# CONFIG_CPU_SUBTYPE_SH7203 is not set 139# CONFIG_CPU_SUBTYPE_SH7203 is not set
136# CONFIG_CPU_SUBTYPE_SH7206 is not set 140# CONFIG_CPU_SUBTYPE_SH7206 is not set
137# CONFIG_CPU_SUBTYPE_SH7263 is not set 141# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -199,7 +203,6 @@ CONFIG_SPARSEMEM_STATIC=y
199CONFIG_PAGEFLAGS_EXTENDED=y 203CONFIG_PAGEFLAGS_EXTENDED=y
200CONFIG_SPLIT_PTLOCK_CPUS=4 204CONFIG_SPLIT_PTLOCK_CPUS=4
201CONFIG_MIGRATION=y 205CONFIG_MIGRATION=y
202# CONFIG_RESOURCES_64BIT is not set
203# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
204CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
205CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
@@ -297,11 +300,19 @@ CONFIG_BINFMT_ELF=y
297# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 300# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
298# CONFIG_HAVE_AOUT is not set 301# CONFIG_HAVE_AOUT is not set
299# CONFIG_BINFMT_MISC is not set 302# CONFIG_BINFMT_MISC is not set
303
304#
305# Power management options (EXPERIMENTAL)
306#
307# CONFIG_PM is not set
308# CONFIG_CPU_IDLE is not set
300CONFIG_NET=y 309CONFIG_NET=y
301 310
302# 311#
303# Networking options 312# Networking options
304# 313#
314# CONFIG_NET_NS is not set
315CONFIG_COMPAT_NET_DEV_OPS=y
305CONFIG_PACKET=y 316CONFIG_PACKET=y
306# CONFIG_PACKET_MMAP is not set 317# CONFIG_PACKET_MMAP is not set
307CONFIG_UNIX=y 318CONFIG_UNIX=y
@@ -357,6 +368,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
357# CONFIG_ECONET is not set 368# CONFIG_ECONET is not set
358# CONFIG_WAN_ROUTER is not set 369# CONFIG_WAN_ROUTER is not set
359# CONFIG_NET_SCHED is not set 370# CONFIG_NET_SCHED is not set
371# CONFIG_DCB is not set
360 372
361# 373#
362# Network testing 374# Network testing
@@ -373,8 +385,8 @@ CONFIG_WIRELESS=y
373# CONFIG_WIRELESS_OLD_REGULATORY is not set 385# CONFIG_WIRELESS_OLD_REGULATORY is not set
374CONFIG_WIRELESS_EXT=y 386CONFIG_WIRELESS_EXT=y
375CONFIG_WIRELESS_EXT_SYSFS=y 387CONFIG_WIRELESS_EXT_SYSFS=y
388# CONFIG_LIB80211 is not set
376# CONFIG_MAC80211 is not set 389# CONFIG_MAC80211 is not set
377# CONFIG_IEEE80211 is not set
378# CONFIG_RFKILL is not set 390# CONFIG_RFKILL is not set
379# CONFIG_NET_9P is not set 391# CONFIG_NET_9P is not set
380 392
@@ -529,6 +541,7 @@ CONFIG_SCSI_WAIT_SCAN=m
529# CONFIG_SCSI_SRP_ATTRS is not set 541# CONFIG_SCSI_SRP_ATTRS is not set
530CONFIG_SCSI_LOWLEVEL=y 542CONFIG_SCSI_LOWLEVEL=y
531# CONFIG_ISCSI_TCP is not set 543# CONFIG_ISCSI_TCP is not set
544# CONFIG_LIBFC is not set
532# CONFIG_SCSI_DEBUG is not set 545# CONFIG_SCSI_DEBUG is not set
533# CONFIG_SCSI_DH is not set 546# CONFIG_SCSI_DH is not set
534# CONFIG_ATA is not set 547# CONFIG_ATA is not set
@@ -555,6 +568,9 @@ CONFIG_PHYLIB=y
555# CONFIG_BROADCOM_PHY is not set 568# CONFIG_BROADCOM_PHY is not set
556# CONFIG_ICPLUS_PHY is not set 569# CONFIG_ICPLUS_PHY is not set
557# CONFIG_REALTEK_PHY is not set 570# CONFIG_REALTEK_PHY is not set
571# CONFIG_NATIONAL_PHY is not set
572# CONFIG_STE10XP is not set
573# CONFIG_LSI_ET1011C_PHY is not set
558# CONFIG_FIXED_PHY is not set 574# CONFIG_FIXED_PHY is not set
559CONFIG_MDIO_BITBANG=y 575CONFIG_MDIO_BITBANG=y
560CONFIG_NET_ETHERNET=y 576CONFIG_NET_ETHERNET=y
@@ -564,6 +580,7 @@ CONFIG_MII=y
564CONFIG_SH_ETH=y 580CONFIG_SH_ETH=y
565# CONFIG_SMC91X is not set 581# CONFIG_SMC91X is not set
566# CONFIG_SMC911X is not set 582# CONFIG_SMC911X is not set
583# CONFIG_SMSC911X is not set
567# CONFIG_IBM_NEW_EMAC_ZMII is not set 584# CONFIG_IBM_NEW_EMAC_ZMII is not set
568# CONFIG_IBM_NEW_EMAC_RGMII is not set 585# CONFIG_IBM_NEW_EMAC_RGMII is not set
569# CONFIG_IBM_NEW_EMAC_TAH is not set 586# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -655,6 +672,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
655CONFIG_SERIAL_CORE=y 672CONFIG_SERIAL_CORE=y
656CONFIG_SERIAL_CORE_CONSOLE=y 673CONFIG_SERIAL_CORE_CONSOLE=y
657CONFIG_UNIX98_PTYS=y 674CONFIG_UNIX98_PTYS=y
675# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
658CONFIG_LEGACY_PTYS=y 676CONFIG_LEGACY_PTYS=y
659CONFIG_LEGACY_PTY_COUNT=256 677CONFIG_LEGACY_PTY_COUNT=256
660# CONFIG_IPMI_HANDLER is not set 678# CONFIG_IPMI_HANDLER is not set
@@ -670,11 +688,11 @@ CONFIG_HW_RANDOM=y
670# CONFIG_THERMAL is not set 688# CONFIG_THERMAL is not set
671# CONFIG_THERMAL_HWMON is not set 689# CONFIG_THERMAL_HWMON is not set
672# CONFIG_WATCHDOG is not set 690# CONFIG_WATCHDOG is not set
691CONFIG_SSB_POSSIBLE=y
673 692
674# 693#
675# Sonics Silicon Backplane 694# Sonics Silicon Backplane
676# 695#
677CONFIG_SSB_POSSIBLE=y
678# CONFIG_SSB is not set 696# CONFIG_SSB is not set
679 697
680# 698#
@@ -684,7 +702,7 @@ CONFIG_SSB_POSSIBLE=y
684# CONFIG_MFD_SM501 is not set 702# CONFIG_MFD_SM501 is not set
685# CONFIG_HTC_PASIC3 is not set 703# CONFIG_HTC_PASIC3 is not set
686# CONFIG_MFD_TMIO is not set 704# CONFIG_MFD_TMIO is not set
687# CONFIG_MFD_WM8400 is not set 705# CONFIG_REGULATOR is not set
688 706
689# 707#
690# Multimedia devices 708# Multimedia devices
@@ -737,6 +755,7 @@ CONFIG_FB_BOTH_ENDIAN=y
737CONFIG_FB_SH7760=y 755CONFIG_FB_SH7760=y
738# CONFIG_FB_VIRTUAL is not set 756# CONFIG_FB_VIRTUAL is not set
739# CONFIG_FB_METRONOME is not set 757# CONFIG_FB_METRONOME is not set
758# CONFIG_FB_MB862XX is not set
740# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 759# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
741 760
742# 761#
@@ -781,19 +800,21 @@ CONFIG_USB_DEVICE_CLASS=y
781# CONFIG_USB_OTG_WHITELIST is not set 800# CONFIG_USB_OTG_WHITELIST is not set
782# CONFIG_USB_OTG_BLACKLIST_HUB is not set 801# CONFIG_USB_OTG_BLACKLIST_HUB is not set
783CONFIG_USB_MON=y 802CONFIG_USB_MON=y
803# CONFIG_USB_WUSB is not set
804# CONFIG_USB_WUSB_CBAF is not set
784 805
785# 806#
786# USB Host Controller Drivers 807# USB Host Controller Drivers
787# 808#
788# CONFIG_USB_C67X00_HCD is not set 809# CONFIG_USB_C67X00_HCD is not set
789# CONFIG_USB_ISP116X_HCD is not set 810# CONFIG_USB_ISP116X_HCD is not set
790# CONFIG_USB_ISP1760_HCD is not set
791CONFIG_USB_OHCI_HCD=y 811CONFIG_USB_OHCI_HCD=y
792# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 812# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
793# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 813# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
794CONFIG_USB_OHCI_LITTLE_ENDIAN=y 814CONFIG_USB_OHCI_LITTLE_ENDIAN=y
795# CONFIG_USB_SL811_HCD is not set 815# CONFIG_USB_SL811_HCD is not set
796# CONFIG_USB_R8A66597_HCD is not set 816# CONFIG_USB_R8A66597_HCD is not set
817# CONFIG_USB_HWA_HCD is not set
797 818
798# 819#
799# USB Device Class drivers 820# USB Device Class drivers
@@ -804,11 +825,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
804# CONFIG_USB_TMC is not set 825# CONFIG_USB_TMC is not set
805 826
806# 827#
807# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 828# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
808# 829#
809 830
810# 831#
811# may also be needed; see USB_STORAGE Help for more information 832# see USB_STORAGE Help for more information
812# 833#
813CONFIG_USB_STORAGE=y 834CONFIG_USB_STORAGE=y
814# CONFIG_USB_STORAGE_DEBUG is not set 835# CONFIG_USB_STORAGE_DEBUG is not set
@@ -897,6 +918,7 @@ CONFIG_EXT3_FS_XATTR=y
897# CONFIG_EXT3_FS_SECURITY is not set 918# CONFIG_EXT3_FS_SECURITY is not set
898# CONFIG_EXT4_FS is not set 919# CONFIG_EXT4_FS is not set
899CONFIG_JBD=y 920CONFIG_JBD=y
921# CONFIG_JBD_DEBUG is not set
900CONFIG_FS_MBCACHE=y 922CONFIG_FS_MBCACHE=y
901# CONFIG_REISERFS_FS is not set 923# CONFIG_REISERFS_FS is not set
902# CONFIG_JFS_FS is not set 924# CONFIG_JFS_FS is not set
@@ -942,10 +964,7 @@ CONFIG_TMPFS_POSIX_ACL=y
942# CONFIG_HUGETLBFS is not set 964# CONFIG_HUGETLBFS is not set
943# CONFIG_HUGETLB_PAGE is not set 965# CONFIG_HUGETLB_PAGE is not set
944# CONFIG_CONFIGFS_FS is not set 966# CONFIG_CONFIGFS_FS is not set
945 967CONFIG_MISC_FILESYSTEMS=y
946#
947# Miscellaneous filesystems
948#
949# CONFIG_ADFS_FS is not set 968# CONFIG_ADFS_FS is not set
950# CONFIG_AFFS_FS is not set 969# CONFIG_AFFS_FS is not set
951# CONFIG_HFS_FS is not set 970# CONFIG_HFS_FS is not set
@@ -1038,20 +1057,30 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1038CONFIG_FRAME_WARN=1024 1057CONFIG_FRAME_WARN=1024
1039# CONFIG_MAGIC_SYSRQ is not set 1058# CONFIG_MAGIC_SYSRQ is not set
1040# CONFIG_UNUSED_SYMBOLS is not set 1059# CONFIG_UNUSED_SYMBOLS is not set
1041# CONFIG_DEBUG_FS is not set 1060CONFIG_DEBUG_FS=y
1042# CONFIG_HEADERS_CHECK is not set 1061# CONFIG_HEADERS_CHECK is not set
1043# CONFIG_DEBUG_KERNEL is not set 1062# CONFIG_DEBUG_KERNEL is not set
1063CONFIG_STACKTRACE=y
1044# CONFIG_DEBUG_BUGVERBOSE is not set 1064# CONFIG_DEBUG_BUGVERBOSE is not set
1045# CONFIG_DEBUG_MEMORY_INIT is not set 1065# CONFIG_DEBUG_MEMORY_INIT is not set
1046# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1066# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1047# CONFIG_LATENCYTOP is not set 1067# CONFIG_LATENCYTOP is not set
1048CONFIG_NOP_TRACER=y 1068CONFIG_NOP_TRACER=y
1049CONFIG_HAVE_FTRACE=y 1069CONFIG_HAVE_FUNCTION_TRACER=y
1070CONFIG_HAVE_DYNAMIC_FTRACE=y
1071CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1072CONFIG_RING_BUFFER=y
1073CONFIG_TRACING=y
1074
1075#
1076# Tracers
1077#
1050# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1078# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1051# CONFIG_SAMPLES is not set 1079# CONFIG_SAMPLES is not set
1080CONFIG_HAVE_ARCH_KGDB=y
1052# CONFIG_SH_STANDARD_BIOS is not set 1081# CONFIG_SH_STANDARD_BIOS is not set
1053# CONFIG_EARLY_SCIF_CONSOLE is not set 1082# CONFIG_EARLY_SCIF_CONSOLE is not set
1054# CONFIG_SH_KGDB is not set 1083# CONFIG_MORE_COMPILE_OPTIONS is not set
1055 1084
1056# 1085#
1057# Security options 1086# Security options
@@ -1067,6 +1096,7 @@ CONFIG_CRYPTO=y
1067# 1096#
1068# CONFIG_CRYPTO_FIPS is not set 1097# CONFIG_CRYPTO_FIPS is not set
1069# CONFIG_CRYPTO_MANAGER is not set 1098# CONFIG_CRYPTO_MANAGER is not set
1099# CONFIG_CRYPTO_MANAGER2 is not set
1070# CONFIG_CRYPTO_GF128MUL is not set 1100# CONFIG_CRYPTO_GF128MUL is not set
1071# CONFIG_CRYPTO_NULL is not set 1101# CONFIG_CRYPTO_NULL is not set
1072# CONFIG_CRYPTO_CRYPTD is not set 1102# CONFIG_CRYPTO_CRYPTD is not set
@@ -1149,6 +1179,7 @@ CONFIG_CRYPTO_HW=y
1149# Library routines 1179# Library routines
1150# 1180#
1151CONFIG_BITREVERSE=y 1181CONFIG_BITREVERSE=y
1182CONFIG_GENERIC_FIND_LAST_BIT=y
1152# CONFIG_CRC_CCITT is not set 1183# CONFIG_CRC_CCITT is not set
1153# CONFIG_CRC16 is not set 1184# CONFIG_CRC16 is not set
1154CONFIG_CRC_T10DIF=y 1185CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/sh7785lcr_defconfig b/arch/sh/configs/sh7785lcr_defconfig
index 07e33c285b93..1d63628df6f6 100644
--- a/arch/sh/configs/sh7785lcr_defconfig
+++ b/arch/sh/configs/sh7785lcr_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:49:23 2008 4# Fri Jan 9 18:05:18 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
21CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
@@ -86,7 +88,6 @@ CONFIG_SLAB=y
86# CONFIG_SLUB is not set 88# CONFIG_SLUB is not set
87# CONFIG_SLOB is not set 89# CONFIG_SLOB is not set
88CONFIG_PROFILING=y 90CONFIG_PROFILING=y
89# CONFIG_MARKERS is not set
90# CONFIG_OPROFILE is not set 91# CONFIG_OPROFILE is not set
91CONFIG_HAVE_OPROFILE=y 92CONFIG_HAVE_OPROFILE=y
92# CONFIG_KPROBES is not set 93# CONFIG_KPROBES is not set
@@ -98,7 +99,6 @@ CONFIG_HAVE_CLK=y
98CONFIG_HAVE_GENERIC_DMA_COHERENT=y 99CONFIG_HAVE_GENERIC_DMA_COHERENT=y
99CONFIG_SLABINFO=y 100CONFIG_SLABINFO=y
100CONFIG_RT_MUTEXES=y 101CONFIG_RT_MUTEXES=y
101# CONFIG_TINY_SHMEM is not set
102CONFIG_BASE_SMALL=0 102CONFIG_BASE_SMALL=0
103CONFIG_MODULES=y 103CONFIG_MODULES=y
104# CONFIG_MODULE_FORCE_LOAD is not set 104# CONFIG_MODULE_FORCE_LOAD is not set
@@ -106,11 +106,9 @@ CONFIG_MODULE_UNLOAD=y
106# CONFIG_MODULE_FORCE_UNLOAD is not set 106# CONFIG_MODULE_FORCE_UNLOAD is not set
107# CONFIG_MODVERSIONS is not set 107# CONFIG_MODVERSIONS is not set
108# CONFIG_MODULE_SRCVERSION_ALL is not set 108# CONFIG_MODULE_SRCVERSION_ALL is not set
109CONFIG_KMOD=y
110CONFIG_BLOCK=y 109CONFIG_BLOCK=y
111# CONFIG_LBD is not set 110# CONFIG_LBD is not set
112# CONFIG_BLK_DEV_IO_TRACE is not set 111# CONFIG_BLK_DEV_IO_TRACE is not set
113# CONFIG_LSF is not set
114# CONFIG_BLK_DEV_BSG is not set 112# CONFIG_BLK_DEV_BSG is not set
115# CONFIG_BLK_DEV_INTEGRITY is not set 113# CONFIG_BLK_DEV_INTEGRITY is not set
116 114
@@ -127,6 +125,10 @@ CONFIG_DEFAULT_CFQ=y
127# CONFIG_DEFAULT_NOOP is not set 125# CONFIG_DEFAULT_NOOP is not set
128CONFIG_DEFAULT_IOSCHED="cfq" 126CONFIG_DEFAULT_IOSCHED="cfq"
129CONFIG_CLASSIC_RCU=y 127CONFIG_CLASSIC_RCU=y
128# CONFIG_TREE_RCU is not set
129# CONFIG_PREEMPT_RCU is not set
130# CONFIG_TREE_RCU_TRACE is not set
131# CONFIG_PREEMPT_RCU_TRACE is not set
130# CONFIG_FREEZER is not set 132# CONFIG_FREEZER is not set
131 133
132# 134#
@@ -136,6 +138,7 @@ CONFIG_CPU_SH4=y
136CONFIG_CPU_SH4A=y 138CONFIG_CPU_SH4A=y
137CONFIG_CPU_SHX2=y 139CONFIG_CPU_SHX2=y
138# CONFIG_CPU_SUBTYPE_SH7619 is not set 140# CONFIG_CPU_SUBTYPE_SH7619 is not set
141# CONFIG_CPU_SUBTYPE_SH7201 is not set
139# CONFIG_CPU_SUBTYPE_SH7203 is not set 142# CONFIG_CPU_SUBTYPE_SH7203 is not set
140# CONFIG_CPU_SUBTYPE_SH7206 is not set 143# CONFIG_CPU_SUBTYPE_SH7206 is not set
141# CONFIG_CPU_SUBTYPE_SH7263 is not set 144# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -206,7 +209,6 @@ CONFIG_SPARSEMEM_STATIC=y
206CONFIG_PAGEFLAGS_EXTENDED=y 209CONFIG_PAGEFLAGS_EXTENDED=y
207CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
208CONFIG_MIGRATION=y 211CONFIG_MIGRATION=y
209# CONFIG_RESOURCES_64BIT is not set
210# CONFIG_PHYS_ADDR_T_64BIT is not set 212# CONFIG_PHYS_ADDR_T_64BIT is not set
211CONFIG_ZONE_DMA_FLAG=0 213CONFIG_ZONE_DMA_FLAG=0
212CONFIG_NR_QUICK=2 214CONFIG_NR_QUICK=2
@@ -285,7 +287,6 @@ CONFIG_KEXEC=y
285# CONFIG_PREEMPT_NONE is not set 287# CONFIG_PREEMPT_NONE is not set
286# CONFIG_PREEMPT_VOLUNTARY is not set 288# CONFIG_PREEMPT_VOLUNTARY is not set
287CONFIG_PREEMPT=y 289CONFIG_PREEMPT=y
288# CONFIG_PREEMPT_RCU is not set
289CONFIG_GUSA=y 290CONFIG_GUSA=y
290 291
291# 292#
@@ -302,6 +303,7 @@ CONFIG_PCI=y
302CONFIG_SH_PCIDMA_NONCOHERENT=y 303CONFIG_SH_PCIDMA_NONCOHERENT=y
303CONFIG_PCI_AUTO=y 304CONFIG_PCI_AUTO=y
304CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 305CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
306# CONFIG_PCIEPORTBUS is not set
305# CONFIG_ARCH_SUPPORTS_MSI is not set 307# CONFIG_ARCH_SUPPORTS_MSI is not set
306CONFIG_PCI_LEGACY=y 308CONFIG_PCI_LEGACY=y
307# CONFIG_PCI_DEBUG is not set 309# CONFIG_PCI_DEBUG is not set
@@ -315,11 +317,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 317# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 318# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 319# CONFIG_BINFMT_MISC is not set
320
321#
322# Power management options (EXPERIMENTAL)
323#
324# CONFIG_PM is not set
325# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 326CONFIG_NET=y
319 327
320# 328#
321# Networking options 329# Networking options
322# 330#
331CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 332CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 333# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 334CONFIG_UNIX=y
@@ -380,6 +389,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
380# CONFIG_ECONET is not set 389# CONFIG_ECONET is not set
381# CONFIG_WAN_ROUTER is not set 390# CONFIG_WAN_ROUTER is not set
382# CONFIG_NET_SCHED is not set 391# CONFIG_NET_SCHED is not set
392# CONFIG_DCB is not set
383 393
384# 394#
385# Network testing 395# Network testing
@@ -396,8 +406,8 @@ CONFIG_WIRELESS=y
396# CONFIG_WIRELESS_OLD_REGULATORY is not set 406# CONFIG_WIRELESS_OLD_REGULATORY is not set
397CONFIG_WIRELESS_EXT=y 407CONFIG_WIRELESS_EXT=y
398CONFIG_WIRELESS_EXT_SYSFS=y 408CONFIG_WIRELESS_EXT_SYSFS=y
409# CONFIG_LIB80211 is not set
399# CONFIG_MAC80211 is not set 410# CONFIG_MAC80211 is not set
400# CONFIG_IEEE80211 is not set
401# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
402# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
403 413
@@ -757,6 +767,7 @@ CONFIG_SERIAL_CORE=y
757CONFIG_SERIAL_CORE_CONSOLE=y 767CONFIG_SERIAL_CORE_CONSOLE=y
758# CONFIG_SERIAL_JSM is not set 768# CONFIG_SERIAL_JSM is not set
759CONFIG_UNIX98_PTYS=y 769CONFIG_UNIX98_PTYS=y
770# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
760CONFIG_LEGACY_PTYS=y 771CONFIG_LEGACY_PTYS=y
761CONFIG_LEGACY_PTY_COUNT=256 772CONFIG_LEGACY_PTY_COUNT=256
762# CONFIG_IPMI_HANDLER is not set 773# CONFIG_IPMI_HANDLER is not set
@@ -823,8 +834,8 @@ CONFIG_I2C_PCA_PLATFORM=y
823# Miscellaneous I2C Chip support 834# Miscellaneous I2C Chip support
824# 835#
825# CONFIG_DS1682 is not set 836# CONFIG_DS1682 is not set
826# CONFIG_AT24 is not set 837# CONFIG_EEPROM_AT24 is not set
827# CONFIG_SENSORS_EEPROM is not set 838# CONFIG_EEPROM_LEGACY is not set
828# CONFIG_SENSORS_PCF8574 is not set 839# CONFIG_SENSORS_PCF8574 is not set
829# CONFIG_PCF8575 is not set 840# CONFIG_PCF8575 is not set
830# CONFIG_SENSORS_PCA9539 is not set 841# CONFIG_SENSORS_PCA9539 is not set
@@ -842,11 +853,11 @@ CONFIG_I2C_PCA_PLATFORM=y
842# CONFIG_THERMAL is not set 853# CONFIG_THERMAL is not set
843# CONFIG_THERMAL_HWMON is not set 854# CONFIG_THERMAL_HWMON is not set
844# CONFIG_WATCHDOG is not set 855# CONFIG_WATCHDOG is not set
856CONFIG_SSB_POSSIBLE=y
845 857
846# 858#
847# Sonics Silicon Backplane 859# Sonics Silicon Backplane
848# 860#
849CONFIG_SSB_POSSIBLE=y
850# CONFIG_SSB is not set 861# CONFIG_SSB is not set
851 862
852# 863#
@@ -855,9 +866,12 @@ CONFIG_SSB_POSSIBLE=y
855# CONFIG_MFD_CORE is not set 866# CONFIG_MFD_CORE is not set
856CONFIG_MFD_SM501=y 867CONFIG_MFD_SM501=y
857# CONFIG_HTC_PASIC3 is not set 868# CONFIG_HTC_PASIC3 is not set
869# CONFIG_TWL4030_CORE is not set
858# CONFIG_MFD_TMIO is not set 870# CONFIG_MFD_TMIO is not set
871# CONFIG_PMIC_DA903X is not set
859# CONFIG_MFD_WM8400 is not set 872# CONFIG_MFD_WM8400 is not set
860# CONFIG_MFD_WM8350_I2C is not set 873# CONFIG_MFD_WM8350_I2C is not set
874# CONFIG_REGULATOR is not set
861 875
862# 876#
863# Multimedia devices 877# Multimedia devices
@@ -889,11 +903,12 @@ CONFIG_FB_CFB_FILLRECT=y
889CONFIG_FB_CFB_COPYAREA=y 903CONFIG_FB_CFB_COPYAREA=y
890CONFIG_FB_CFB_IMAGEBLIT=y 904CONFIG_FB_CFB_IMAGEBLIT=y
891# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 905# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
892# CONFIG_FB_SYS_FILLRECT is not set 906CONFIG_FB_SYS_FILLRECT=m
893# CONFIG_FB_SYS_COPYAREA is not set 907CONFIG_FB_SYS_COPYAREA=m
894# CONFIG_FB_SYS_IMAGEBLIT is not set 908CONFIG_FB_SYS_IMAGEBLIT=m
895# CONFIG_FB_FOREIGN_ENDIAN is not set 909# CONFIG_FB_FOREIGN_ENDIAN is not set
896# CONFIG_FB_SYS_FOPS is not set 910CONFIG_FB_SYS_FOPS=m
911CONFIG_FB_DEFERRED_IO=y
897# CONFIG_FB_SVGALIB is not set 912# CONFIG_FB_SVGALIB is not set
898# CONFIG_FB_MACMODES is not set 913# CONFIG_FB_MACMODES is not set
899# CONFIG_FB_BACKLIGHT is not set 914# CONFIG_FB_BACKLIGHT is not set
@@ -932,6 +947,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
932CONFIG_FB_SM501=y 947CONFIG_FB_SM501=y
933# CONFIG_FB_VIRTUAL is not set 948# CONFIG_FB_VIRTUAL is not set
934# CONFIG_FB_METRONOME is not set 949# CONFIG_FB_METRONOME is not set
950# CONFIG_FB_MB862XX is not set
935# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 951# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
936 952
937# 953#
@@ -976,11 +992,9 @@ CONFIG_HID_COMPAT=y
976CONFIG_HID_A4TECH=y 992CONFIG_HID_A4TECH=y
977CONFIG_HID_APPLE=y 993CONFIG_HID_APPLE=y
978CONFIG_HID_BELKIN=y 994CONFIG_HID_BELKIN=y
979CONFIG_HID_BRIGHT=y
980CONFIG_HID_CHERRY=y 995CONFIG_HID_CHERRY=y
981CONFIG_HID_CHICONY=y 996CONFIG_HID_CHICONY=y
982CONFIG_HID_CYPRESS=y 997CONFIG_HID_CYPRESS=y
983CONFIG_HID_DELL=y
984CONFIG_HID_EZKEY=y 998CONFIG_HID_EZKEY=y
985CONFIG_HID_GYRATION=y 999CONFIG_HID_GYRATION=y
986CONFIG_HID_LOGITECH=y 1000CONFIG_HID_LOGITECH=y
@@ -988,12 +1002,15 @@ CONFIG_HID_LOGITECH=y
988# CONFIG_LOGIRUMBLEPAD2_FF is not set 1002# CONFIG_LOGIRUMBLEPAD2_FF is not set
989CONFIG_HID_MICROSOFT=y 1003CONFIG_HID_MICROSOFT=y
990CONFIG_HID_MONTEREY=y 1004CONFIG_HID_MONTEREY=y
1005# CONFIG_HID_NTRIG is not set
991CONFIG_HID_PANTHERLORD=y 1006CONFIG_HID_PANTHERLORD=y
992# CONFIG_PANTHERLORD_FF is not set 1007# CONFIG_PANTHERLORD_FF is not set
993CONFIG_HID_PETALYNX=y 1008CONFIG_HID_PETALYNX=y
994CONFIG_HID_SAMSUNG=y 1009CONFIG_HID_SAMSUNG=y
995CONFIG_HID_SONY=y 1010CONFIG_HID_SONY=y
996CONFIG_HID_SUNPLUS=y 1011CONFIG_HID_SUNPLUS=y
1012# CONFIG_GREENASIA_FF is not set
1013# CONFIG_HID_TOPSEED is not set
997CONFIG_THRUSTMASTER_FF=m 1014CONFIG_THRUSTMASTER_FF=m
998CONFIG_ZEROPLUS_FF=m 1015CONFIG_ZEROPLUS_FF=m
999CONFIG_USB_SUPPORT=y 1016CONFIG_USB_SUPPORT=y
@@ -1014,6 +1031,8 @@ CONFIG_USB_DEVICE_CLASS=y
1014# CONFIG_USB_OTG_WHITELIST is not set 1031# CONFIG_USB_OTG_WHITELIST is not set
1015# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1032# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1016CONFIG_USB_MON=y 1033CONFIG_USB_MON=y
1034# CONFIG_USB_WUSB is not set
1035# CONFIG_USB_WUSB_CBAF is not set
1017 1036
1018# 1037#
1019# USB Host Controller Drivers 1038# USB Host Controller Drivers
@@ -1031,6 +1050,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1031# CONFIG_USB_UHCI_HCD is not set 1050# CONFIG_USB_UHCI_HCD is not set
1032# CONFIG_USB_SL811_HCD is not set 1051# CONFIG_USB_SL811_HCD is not set
1033CONFIG_USB_R8A66597_HCD=y 1052CONFIG_USB_R8A66597_HCD=y
1053# CONFIG_USB_WHCI_HCD is not set
1054# CONFIG_USB_HWA_HCD is not set
1034 1055
1035# 1056#
1036# USB Device Class drivers 1057# USB Device Class drivers
@@ -1041,11 +1062,11 @@ CONFIG_USB_R8A66597_HCD=y
1041# CONFIG_USB_TMC is not set 1062# CONFIG_USB_TMC is not set
1042 1063
1043# 1064#
1044# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1065# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1045# 1066#
1046 1067
1047# 1068#
1048# may also be needed; see USB_STORAGE Help for more information 1069# see USB_STORAGE Help for more information
1049# 1070#
1050CONFIG_USB_STORAGE=y 1071CONFIG_USB_STORAGE=y
1051# CONFIG_USB_STORAGE_DEBUG is not set 1072# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1100,6 +1121,7 @@ CONFIG_USB_TEST=m
1100# CONFIG_USB_ISIGHTFW is not set 1121# CONFIG_USB_ISIGHTFW is not set
1101# CONFIG_USB_VST is not set 1122# CONFIG_USB_VST is not set
1102# CONFIG_USB_GADGET is not set 1123# CONFIG_USB_GADGET is not set
1124# CONFIG_UWB is not set
1103# CONFIG_MMC is not set 1125# CONFIG_MMC is not set
1104# CONFIG_MEMSTICK is not set 1126# CONFIG_MEMSTICK is not set
1105# CONFIG_NEW_LEDS is not set 1127# CONFIG_NEW_LEDS is not set
@@ -1135,6 +1157,7 @@ CONFIG_RTC_DRV_RS5C372=y
1135# CONFIG_RTC_DRV_M41T80 is not set 1157# CONFIG_RTC_DRV_M41T80 is not set
1136# CONFIG_RTC_DRV_S35390A is not set 1158# CONFIG_RTC_DRV_S35390A is not set
1137# CONFIG_RTC_DRV_FM3130 is not set 1159# CONFIG_RTC_DRV_FM3130 is not set
1160# CONFIG_RTC_DRV_RX8581 is not set
1138 1161
1139# 1162#
1140# SPI RTC drivers 1163# SPI RTC drivers
@@ -1220,10 +1243,7 @@ CONFIG_TMPFS=y
1220# CONFIG_HUGETLBFS is not set 1243# CONFIG_HUGETLBFS is not set
1221# CONFIG_HUGETLB_PAGE is not set 1244# CONFIG_HUGETLB_PAGE is not set
1222# CONFIG_CONFIGFS_FS is not set 1245# CONFIG_CONFIGFS_FS is not set
1223 1246CONFIG_MISC_FILESYSTEMS=y
1224#
1225# Miscellaneous filesystems
1226#
1227# CONFIG_ADFS_FS is not set 1247# CONFIG_ADFS_FS is not set
1228# CONFIG_AFFS_FS is not set 1248# CONFIG_AFFS_FS is not set
1229# CONFIG_HFS_FS is not set 1249# CONFIG_HFS_FS is not set
@@ -1353,6 +1373,7 @@ CONFIG_DEBUG_PREEMPT=y
1353# CONFIG_DEBUG_MEMORY_INIT is not set 1373# CONFIG_DEBUG_MEMORY_INIT is not set
1354# CONFIG_DEBUG_LIST is not set 1374# CONFIG_DEBUG_LIST is not set
1355# CONFIG_DEBUG_SG is not set 1375# CONFIG_DEBUG_SG is not set
1376# CONFIG_DEBUG_NOTIFIERS is not set
1356# CONFIG_FRAME_POINTER is not set 1377# CONFIG_FRAME_POINTER is not set
1357# CONFIG_RCU_TORTURE_TEST is not set 1378# CONFIG_RCU_TORTURE_TEST is not set
1358# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1379# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1361,17 +1382,25 @@ CONFIG_DEBUG_PREEMPT=y
1361# CONFIG_FAULT_INJECTION is not set 1382# CONFIG_FAULT_INJECTION is not set
1362# CONFIG_LATENCYTOP is not set 1383# CONFIG_LATENCYTOP is not set
1363CONFIG_SYSCTL_SYSCALL_CHECK=y 1384CONFIG_SYSCTL_SYSCALL_CHECK=y
1364CONFIG_NOP_TRACER=y 1385CONFIG_HAVE_FUNCTION_TRACER=y
1365CONFIG_HAVE_FTRACE=y 1386CONFIG_HAVE_DYNAMIC_FTRACE=y
1366# CONFIG_FTRACE is not set 1387CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1388
1389#
1390# Tracers
1391#
1392# CONFIG_FUNCTION_TRACER is not set
1367# CONFIG_IRQSOFF_TRACER is not set 1393# CONFIG_IRQSOFF_TRACER is not set
1368# CONFIG_PREEMPT_TRACER is not set 1394# CONFIG_PREEMPT_TRACER is not set
1369# CONFIG_SCHED_TRACER is not set 1395# CONFIG_SCHED_TRACER is not set
1370# CONFIG_CONTEXT_SWITCH_TRACER is not set 1396# CONFIG_CONTEXT_SWITCH_TRACER is not set
1371# CONFIG_BOOT_TRACER is not set 1397# CONFIG_BOOT_TRACER is not set
1398# CONFIG_TRACE_BRANCH_PROFILING is not set
1372# CONFIG_STACK_TRACER is not set 1399# CONFIG_STACK_TRACER is not set
1373# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1400# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1374# CONFIG_SAMPLES is not set 1401# CONFIG_SAMPLES is not set
1402CONFIG_HAVE_ARCH_KGDB=y
1403# CONFIG_KGDB is not set
1375# CONFIG_SH_STANDARD_BIOS is not set 1404# CONFIG_SH_STANDARD_BIOS is not set
1376# CONFIG_EARLY_SCIF_CONSOLE is not set 1405# CONFIG_EARLY_SCIF_CONSOLE is not set
1377# CONFIG_DEBUG_BOOTMEM is not set 1406# CONFIG_DEBUG_BOOTMEM is not set
@@ -1379,7 +1408,9 @@ CONFIG_HAVE_FTRACE=y
1379# CONFIG_DEBUG_STACK_USAGE is not set 1408# CONFIG_DEBUG_STACK_USAGE is not set
1380# CONFIG_4KSTACKS is not set 1409# CONFIG_4KSTACKS is not set
1381# CONFIG_IRQSTACKS is not set 1410# CONFIG_IRQSTACKS is not set
1382# CONFIG_SH_KGDB is not set 1411# CONFIG_DUMP_CODE is not set
1412# CONFIG_SH_NO_BSS_INIT is not set
1413# CONFIG_MORE_COMPILE_OPTIONS is not set
1383 1414
1384# 1415#
1385# Security options 1416# Security options
@@ -1395,11 +1426,15 @@ CONFIG_CRYPTO=y
1395# 1426#
1396# CONFIG_CRYPTO_FIPS is not set 1427# CONFIG_CRYPTO_FIPS is not set
1397CONFIG_CRYPTO_ALGAPI=y 1428CONFIG_CRYPTO_ALGAPI=y
1398CONFIG_CRYPTO_AEAD=y 1429CONFIG_CRYPTO_ALGAPI2=y
1430CONFIG_CRYPTO_AEAD2=y
1399CONFIG_CRYPTO_BLKCIPHER=y 1431CONFIG_CRYPTO_BLKCIPHER=y
1432CONFIG_CRYPTO_BLKCIPHER2=y
1400CONFIG_CRYPTO_HASH=y 1433CONFIG_CRYPTO_HASH=y
1401CONFIG_CRYPTO_RNG=y 1434CONFIG_CRYPTO_HASH2=y
1435CONFIG_CRYPTO_RNG2=y
1402CONFIG_CRYPTO_MANAGER=y 1436CONFIG_CRYPTO_MANAGER=y
1437CONFIG_CRYPTO_MANAGER2=y
1403# CONFIG_CRYPTO_GF128MUL is not set 1438# CONFIG_CRYPTO_GF128MUL is not set
1404# CONFIG_CRYPTO_NULL is not set 1439# CONFIG_CRYPTO_NULL is not set
1405# CONFIG_CRYPTO_CRYPTD is not set 1440# CONFIG_CRYPTO_CRYPTD is not set
@@ -1482,6 +1517,7 @@ CONFIG_CRYPTO_DES=y
1482# Library routines 1517# Library routines
1483# 1518#
1484CONFIG_BITREVERSE=y 1519CONFIG_BITREVERSE=y
1520CONFIG_GENERIC_FIND_LAST_BIT=y
1485# CONFIG_CRC_CCITT is not set 1521# CONFIG_CRC_CCITT is not set
1486# CONFIG_CRC16 is not set 1522# CONFIG_CRC16 is not set
1487# CONFIG_CRC_T10DIF is not set 1523# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/shmin_defconfig b/arch/sh/configs/shmin_defconfig
index e2b38a334976..8ba10e1e08cd 100644
--- a/arch/sh/configs/shmin_defconfig
+++ b/arch/sh/configs/shmin_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:52:59 2008 4# Fri Jan 9 18:09:00 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,6 +15,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
15# CONFIG_GENERIC_GPIO is not set 15# CONFIG_GENERIC_GPIO is not set
16CONFIG_GENERIC_TIME=y 16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_CLOCKEVENTS=y 17CONFIG_GENERIC_CLOCKEVENTS=y
18# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
19# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
18CONFIG_STACKTRACE_SUPPORT=y 20CONFIG_STACKTRACE_SUPPORT=y
19CONFIG_LOCKDEP_SUPPORT=y 21CONFIG_LOCKDEP_SUPPORT=y
20CONFIG_HAVE_LATENCYTOP_SUPPORT=y 22CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -65,12 +67,10 @@ CONFIG_EVENTFD=y
65# CONFIG_SHMEM is not set 67# CONFIG_SHMEM is not set
66CONFIG_AIO=y 68CONFIG_AIO=y
67CONFIG_VM_EVENT_COUNTERS=y 69CONFIG_VM_EVENT_COUNTERS=y
68CONFIG_PCI_QUIRKS=y
69# CONFIG_SLAB is not set 70# CONFIG_SLAB is not set
70# CONFIG_SLUB is not set 71# CONFIG_SLUB is not set
71CONFIG_SLOB=y 72CONFIG_SLOB=y
72# CONFIG_PROFILING is not set 73# CONFIG_PROFILING is not set
73# CONFIG_MARKERS is not set
74CONFIG_HAVE_OPROFILE=y 74CONFIG_HAVE_OPROFILE=y
75CONFIG_HAVE_IOREMAP_PROT=y 75CONFIG_HAVE_IOREMAP_PROT=y
76CONFIG_HAVE_KPROBES=y 76CONFIG_HAVE_KPROBES=y
@@ -78,12 +78,10 @@ CONFIG_HAVE_KRETPROBES=y
78CONFIG_HAVE_ARCH_TRACEHOOK=y 78CONFIG_HAVE_ARCH_TRACEHOOK=y
79CONFIG_HAVE_CLK=y 79CONFIG_HAVE_CLK=y
80CONFIG_HAVE_GENERIC_DMA_COHERENT=y 80CONFIG_HAVE_GENERIC_DMA_COHERENT=y
81CONFIG_TINY_SHMEM=y
82CONFIG_BASE_SMALL=1 81CONFIG_BASE_SMALL=1
83# CONFIG_MODULES is not set 82# CONFIG_MODULES is not set
84CONFIG_BLOCK=y 83CONFIG_BLOCK=y
85# CONFIG_LBD is not set 84# CONFIG_LBD is not set
86# CONFIG_LSF is not set
87# CONFIG_BLK_DEV_BSG is not set 85# CONFIG_BLK_DEV_BSG is not set
88# CONFIG_BLK_DEV_INTEGRITY is not set 86# CONFIG_BLK_DEV_INTEGRITY is not set
89 87
@@ -100,6 +98,10 @@ CONFIG_IOSCHED_NOOP=y
100CONFIG_DEFAULT_NOOP=y 98CONFIG_DEFAULT_NOOP=y
101CONFIG_DEFAULT_IOSCHED="noop" 99CONFIG_DEFAULT_IOSCHED="noop"
102CONFIG_CLASSIC_RCU=y 100CONFIG_CLASSIC_RCU=y
101# CONFIG_TREE_RCU is not set
102# CONFIG_PREEMPT_RCU is not set
103# CONFIG_TREE_RCU_TRACE is not set
104# CONFIG_PREEMPT_RCU_TRACE is not set
103# CONFIG_FREEZER is not set 105# CONFIG_FREEZER is not set
104 106
105# 107#
@@ -107,6 +109,7 @@ CONFIG_CLASSIC_RCU=y
107# 109#
108CONFIG_CPU_SH3=y 110CONFIG_CPU_SH3=y
109# CONFIG_CPU_SUBTYPE_SH7619 is not set 111# CONFIG_CPU_SUBTYPE_SH7619 is not set
112# CONFIG_CPU_SUBTYPE_SH7201 is not set
110# CONFIG_CPU_SUBTYPE_SH7203 is not set 113# CONFIG_CPU_SUBTYPE_SH7203 is not set
111# CONFIG_CPU_SUBTYPE_SH7206 is not set 114# CONFIG_CPU_SUBTYPE_SH7206 is not set
112# CONFIG_CPU_SUBTYPE_SH7263 is not set 115# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -170,7 +173,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
170CONFIG_SPARSEMEM_STATIC=y 173CONFIG_SPARSEMEM_STATIC=y
171CONFIG_PAGEFLAGS_EXTENDED=y 174CONFIG_PAGEFLAGS_EXTENDED=y
172CONFIG_SPLIT_PTLOCK_CPUS=4 175CONFIG_SPLIT_PTLOCK_CPUS=4
173# CONFIG_RESOURCES_64BIT is not set
174# CONFIG_PHYS_ADDR_T_64BIT is not set 176# CONFIG_PHYS_ADDR_T_64BIT is not set
175CONFIG_ZONE_DMA_FLAG=0 177CONFIG_ZONE_DMA_FLAG=0
176CONFIG_NR_QUICK=2 178CONFIG_NR_QUICK=2
@@ -268,11 +270,18 @@ CONFIG_BINFMT_ELF=y
268# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 270# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
269# CONFIG_HAVE_AOUT is not set 271# CONFIG_HAVE_AOUT is not set
270# CONFIG_BINFMT_MISC is not set 272# CONFIG_BINFMT_MISC is not set
273
274#
275# Power management options (EXPERIMENTAL)
276#
277# CONFIG_PM is not set
278# CONFIG_CPU_IDLE is not set
271CONFIG_NET=y 279CONFIG_NET=y
272 280
273# 281#
274# Networking options 282# Networking options
275# 283#
284CONFIG_COMPAT_NET_DEV_OPS=y
276# CONFIG_PACKET is not set 285# CONFIG_PACKET is not set
277CONFIG_UNIX=y 286CONFIG_UNIX=y
278CONFIG_XFRM=y 287CONFIG_XFRM=y
@@ -327,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
327# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
328# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
329# CONFIG_NET_SCHED is not set 338# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set
330 340
331# 341#
332# Network testing 342# Network testing
@@ -342,8 +352,8 @@ CONFIG_WIRELESS=y
342# CONFIG_CFG80211 is not set 352# CONFIG_CFG80211 is not set
343# CONFIG_WIRELESS_OLD_REGULATORY is not set 353# CONFIG_WIRELESS_OLD_REGULATORY is not set
344# CONFIG_WIRELESS_EXT is not set 354# CONFIG_WIRELESS_EXT is not set
355# CONFIG_LIB80211 is not set
345# CONFIG_MAC80211 is not set 356# CONFIG_MAC80211 is not set
346# CONFIG_IEEE80211 is not set
347# CONFIG_RFKILL is not set 357# CONFIG_RFKILL is not set
348# CONFIG_NET_9P is not set 358# CONFIG_NET_9P is not set
349 359
@@ -448,6 +458,7 @@ CONFIG_BLK_DEV_LOOP=y
448CONFIG_MISC_DEVICES=y 458CONFIG_MISC_DEVICES=y
449# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
450# CONFIG_ENCLOSURE_SERVICES is not set 460# CONFIG_ENCLOSURE_SERVICES is not set
461# CONFIG_C2PORT is not set
451CONFIG_HAVE_IDE=y 462CONFIG_HAVE_IDE=y
452# CONFIG_IDE is not set 463# CONFIG_IDE is not set
453 464
@@ -474,6 +485,7 @@ CONFIG_NET_ETHERNET=y
474# CONFIG_STNIC is not set 485# CONFIG_STNIC is not set
475# CONFIG_SMC91X is not set 486# CONFIG_SMC91X is not set
476# CONFIG_SMC911X is not set 487# CONFIG_SMC911X is not set
488# CONFIG_SMSC911X is not set
477# CONFIG_IBM_NEW_EMAC_ZMII is not set 489# CONFIG_IBM_NEW_EMAC_ZMII is not set
478# CONFIG_IBM_NEW_EMAC_RGMII is not set 490# CONFIG_IBM_NEW_EMAC_RGMII is not set
479# CONFIG_IBM_NEW_EMAC_TAH is not set 491# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -532,6 +544,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
532CONFIG_SERIAL_CORE=y 544CONFIG_SERIAL_CORE=y
533CONFIG_SERIAL_CORE_CONSOLE=y 545CONFIG_SERIAL_CORE_CONSOLE=y
534CONFIG_UNIX98_PTYS=y 546CONFIG_UNIX98_PTYS=y
547# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
535CONFIG_LEGACY_PTYS=y 548CONFIG_LEGACY_PTYS=y
536CONFIG_LEGACY_PTY_COUNT=256 549CONFIG_LEGACY_PTY_COUNT=256
537# CONFIG_IPMI_HANDLER is not set 550# CONFIG_IPMI_HANDLER is not set
@@ -547,11 +560,11 @@ CONFIG_HW_RANDOM=y
547# CONFIG_THERMAL is not set 560# CONFIG_THERMAL is not set
548# CONFIG_THERMAL_HWMON is not set 561# CONFIG_THERMAL_HWMON is not set
549# CONFIG_WATCHDOG is not set 562# CONFIG_WATCHDOG is not set
563CONFIG_SSB_POSSIBLE=y
550 564
551# 565#
552# Sonics Silicon Backplane 566# Sonics Silicon Backplane
553# 567#
554CONFIG_SSB_POSSIBLE=y
555# CONFIG_SSB is not set 568# CONFIG_SSB is not set
556 569
557# 570#
@@ -561,7 +574,7 @@ CONFIG_SSB_POSSIBLE=y
561# CONFIG_MFD_SM501 is not set 574# CONFIG_MFD_SM501 is not set
562# CONFIG_HTC_PASIC3 is not set 575# CONFIG_HTC_PASIC3 is not set
563# CONFIG_MFD_TMIO is not set 576# CONFIG_MFD_TMIO is not set
564# CONFIG_MFD_WM8400 is not set 577# CONFIG_REGULATOR is not set
565 578
566# 579#
567# Multimedia devices 580# Multimedia devices
@@ -605,7 +618,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
605# 618#
606 619
607# 620#
608# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 621# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
609# 622#
610# CONFIG_USB_GADGET is not set 623# CONFIG_USB_GADGET is not set
611# CONFIG_MMC is not set 624# CONFIG_MMC is not set
@@ -660,10 +673,7 @@ CONFIG_TMPFS=y
660# CONFIG_TMPFS_POSIX_ACL is not set 673# CONFIG_TMPFS_POSIX_ACL is not set
661# CONFIG_HUGETLBFS is not set 674# CONFIG_HUGETLBFS is not set
662# CONFIG_HUGETLB_PAGE is not set 675# CONFIG_HUGETLB_PAGE is not set
663 676CONFIG_MISC_FILESYSTEMS=y
664#
665# Miscellaneous filesystems
666#
667# CONFIG_ADFS_FS is not set 677# CONFIG_ADFS_FS is not set
668# CONFIG_AFFS_FS is not set 678# CONFIG_AFFS_FS is not set
669# CONFIG_HFS_FS is not set 679# CONFIG_HFS_FS is not set
@@ -723,14 +733,20 @@ CONFIG_FRAME_WARN=1024
723# CONFIG_DEBUG_MEMORY_INIT is not set 733# CONFIG_DEBUG_MEMORY_INIT is not set
724# CONFIG_RCU_CPU_STALL_DETECTOR is not set 734# CONFIG_RCU_CPU_STALL_DETECTOR is not set
725# CONFIG_LATENCYTOP is not set 735# CONFIG_LATENCYTOP is not set
726CONFIG_NOP_TRACER=y 736CONFIG_HAVE_FUNCTION_TRACER=y
727CONFIG_HAVE_FTRACE=y 737CONFIG_HAVE_DYNAMIC_FTRACE=y
738CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
739
740#
741# Tracers
742#
728# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 743# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
729# CONFIG_SAMPLES is not set 744# CONFIG_SAMPLES is not set
745CONFIG_HAVE_ARCH_KGDB=y
730CONFIG_SH_STANDARD_BIOS=y 746CONFIG_SH_STANDARD_BIOS=y
731# CONFIG_EARLY_SCIF_CONSOLE is not set 747# CONFIG_EARLY_SCIF_CONSOLE is not set
732CONFIG_EARLY_PRINTK=y 748CONFIG_EARLY_PRINTK=y
733# CONFIG_SH_KGDB is not set 749# CONFIG_MORE_COMPILE_OPTIONS is not set
734 750
735# 751#
736# Security options 752# Security options
@@ -745,6 +761,7 @@ CONFIG_CRYPTO=y
745# 761#
746# CONFIG_CRYPTO_FIPS is not set 762# CONFIG_CRYPTO_FIPS is not set
747# CONFIG_CRYPTO_MANAGER is not set 763# CONFIG_CRYPTO_MANAGER is not set
764# CONFIG_CRYPTO_MANAGER2 is not set
748# CONFIG_CRYPTO_GF128MUL is not set 765# CONFIG_CRYPTO_GF128MUL is not set
749# CONFIG_CRYPTO_NULL is not set 766# CONFIG_CRYPTO_NULL is not set
750# CONFIG_CRYPTO_CRYPTD is not set 767# CONFIG_CRYPTO_CRYPTD is not set
@@ -826,6 +843,7 @@ CONFIG_CRYPTO_HW=y
826# Library routines 843# Library routines
827# 844#
828CONFIG_BITREVERSE=y 845CONFIG_BITREVERSE=y
846CONFIG_GENERIC_FIND_LAST_BIT=y
829# CONFIG_CRC_CCITT is not set 847# CONFIG_CRC_CCITT is not set
830# CONFIG_CRC16 is not set 848# CONFIG_CRC16 is not set
831# CONFIG_CRC_T10DIF is not set 849# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/shx3_defconfig b/arch/sh/configs/shx3_defconfig
index ae5cbe237fff..ed90a7e81099 100644
--- a/arch/sh/configs/shx3_defconfig
+++ b/arch/sh/configs/shx3_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.27 3# Linux kernel version: 2.6.28
4# Tue Oct 21 12:16:25 2008 4# Fri Jan 9 18:10:57 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -18,6 +18,8 @@ CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y 19CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
20CONFIG_GENERIC_LOCKBREAK=y 20CONFIG_GENERIC_LOCKBREAK=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
21CONFIG_SYS_SUPPORTS_SMP=y 23CONFIG_SYS_SUPPORTS_SMP=y
22CONFIG_SYS_SUPPORTS_NUMA=y 24CONFIG_SYS_SUPPORTS_NUMA=y
23CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
@@ -79,6 +81,7 @@ CONFIG_UID16=y
79CONFIG_SYSCTL_SYSCALL=y 81CONFIG_SYSCTL_SYSCALL=y
80CONFIG_KALLSYMS=y 82CONFIG_KALLSYMS=y
81CONFIG_KALLSYMS_ALL=y 83CONFIG_KALLSYMS_ALL=y
84CONFIG_KALLSYMS_STRIP_GENERATED=y
82# CONFIG_KALLSYMS_EXTRA_PASS is not set 85# CONFIG_KALLSYMS_EXTRA_PASS is not set
83CONFIG_HOTPLUG=y 86CONFIG_HOTPLUG=y
84CONFIG_PRINTK=y 87CONFIG_PRINTK=y
@@ -95,11 +98,11 @@ CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 98CONFIG_SHMEM=y
96CONFIG_AIO=y 99CONFIG_AIO=y
97CONFIG_VM_EVENT_COUNTERS=y 100CONFIG_VM_EVENT_COUNTERS=y
98CONFIG_PCI_QUIRKS=y
99# CONFIG_SLAB is not set 101# CONFIG_SLAB is not set
100# CONFIG_SLUB is not set 102# CONFIG_SLUB is not set
101CONFIG_SLOB=y 103CONFIG_SLOB=y
102CONFIG_PROFILING=y 104CONFIG_PROFILING=y
105CONFIG_TRACEPOINTS=y
103# CONFIG_MARKERS is not set 106# CONFIG_MARKERS is not set
104CONFIG_OPROFILE=y 107CONFIG_OPROFILE=y
105CONFIG_HAVE_OPROFILE=y 108CONFIG_HAVE_OPROFILE=y
@@ -113,7 +116,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
113CONFIG_HAVE_CLK=y 116CONFIG_HAVE_CLK=y
114CONFIG_HAVE_GENERIC_DMA_COHERENT=y 117CONFIG_HAVE_GENERIC_DMA_COHERENT=y
115CONFIG_RT_MUTEXES=y 118CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=0 119CONFIG_BASE_SMALL=0
118CONFIG_MODULES=y 120CONFIG_MODULES=y
119# CONFIG_MODULE_FORCE_LOAD is not set 121# CONFIG_MODULE_FORCE_LOAD is not set
@@ -121,12 +123,10 @@ CONFIG_MODULE_UNLOAD=y
121# CONFIG_MODULE_FORCE_UNLOAD is not set 123# CONFIG_MODULE_FORCE_UNLOAD is not set
122# CONFIG_MODVERSIONS is not set 124# CONFIG_MODVERSIONS is not set
123# CONFIG_MODULE_SRCVERSION_ALL is not set 125# CONFIG_MODULE_SRCVERSION_ALL is not set
124CONFIG_KMOD=y
125CONFIG_STOP_MACHINE=y 126CONFIG_STOP_MACHINE=y
126CONFIG_BLOCK=y 127CONFIG_BLOCK=y
127# CONFIG_LBD is not set 128# CONFIG_LBD is not set
128# CONFIG_BLK_DEV_IO_TRACE is not set 129# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_BSG is not set 130# CONFIG_BLK_DEV_BSG is not set
131# CONFIG_BLK_DEV_INTEGRITY is not set 131# CONFIG_BLK_DEV_INTEGRITY is not set
132 132
@@ -143,6 +143,11 @@ CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_NOOP is not set 143# CONFIG_DEFAULT_NOOP is not set
144CONFIG_DEFAULT_IOSCHED="anticipatory" 144CONFIG_DEFAULT_IOSCHED="anticipatory"
145# CONFIG_CLASSIC_RCU is not set 145# CONFIG_CLASSIC_RCU is not set
146# CONFIG_TREE_RCU is not set
147CONFIG_PREEMPT_RCU=y
148CONFIG_RCU_TRACE=y
149# CONFIG_TREE_RCU_TRACE is not set
150CONFIG_PREEMPT_RCU_TRACE=y
146CONFIG_FREEZER=y 151CONFIG_FREEZER=y
147 152
148# 153#
@@ -152,6 +157,7 @@ CONFIG_CPU_SH4=y
152CONFIG_CPU_SH4A=y 157CONFIG_CPU_SH4A=y
153CONFIG_CPU_SHX3=y 158CONFIG_CPU_SHX3=y
154# CONFIG_CPU_SUBTYPE_SH7619 is not set 159# CONFIG_CPU_SUBTYPE_SH7619 is not set
160# CONFIG_CPU_SUBTYPE_SH7201 is not set
155# CONFIG_CPU_SUBTYPE_SH7203 is not set 161# CONFIG_CPU_SUBTYPE_SH7203 is not set
156# CONFIG_CPU_SUBTYPE_SH7206 is not set 162# CONFIG_CPU_SUBTYPE_SH7206 is not set
157# CONFIG_CPU_SUBTYPE_SH7263 is not set 163# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -230,7 +236,6 @@ CONFIG_MEMORY_HOTPLUG_SPARSE=y
230CONFIG_MEMORY_HOTREMOVE=y 236CONFIG_MEMORY_HOTREMOVE=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
233# CONFIG_RESOURCES_64BIT is not set
234# CONFIG_PHYS_ADDR_T_64BIT is not set 239# CONFIG_PHYS_ADDR_T_64BIT is not set
235CONFIG_ZONE_DMA_FLAG=0 240CONFIG_ZONE_DMA_FLAG=0
236CONFIG_NR_QUICK=2 241CONFIG_NR_QUICK=2
@@ -323,8 +328,6 @@ CONFIG_NR_CPUS=4
323# CONFIG_PREEMPT_NONE is not set 328# CONFIG_PREEMPT_NONE is not set
324# CONFIG_PREEMPT_VOLUNTARY is not set 329# CONFIG_PREEMPT_VOLUNTARY is not set
325CONFIG_PREEMPT=y 330CONFIG_PREEMPT=y
326CONFIG_PREEMPT_RCU=y
327CONFIG_RCU_TRACE=y
328 331
329# 332#
330# Boot options 333# Boot options
@@ -347,11 +350,19 @@ CONFIG_BINFMT_ELF=y
347# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 350# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
348# CONFIG_HAVE_AOUT is not set 351# CONFIG_HAVE_AOUT is not set
349CONFIG_BINFMT_MISC=y 352CONFIG_BINFMT_MISC=y
353
354#
355# Power management options (EXPERIMENTAL)
356#
357# CONFIG_PM is not set
358# CONFIG_CPU_IDLE is not set
350CONFIG_NET=y 359CONFIG_NET=y
351 360
352# 361#
353# Networking options 362# Networking options
354# 363#
364# CONFIG_NET_NS is not set
365CONFIG_COMPAT_NET_DEV_OPS=y
355# CONFIG_PACKET is not set 366# CONFIG_PACKET is not set
356# CONFIG_UNIX is not set 367# CONFIG_UNIX is not set
357CONFIG_XFRM=y 368CONFIG_XFRM=y
@@ -424,6 +435,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
424# CONFIG_ECONET is not set 435# CONFIG_ECONET is not set
425# CONFIG_WAN_ROUTER is not set 436# CONFIG_WAN_ROUTER is not set
426# CONFIG_NET_SCHED is not set 437# CONFIG_NET_SCHED is not set
438# CONFIG_DCB is not set
427 439
428# 440#
429# Network testing 441# Network testing
@@ -479,7 +491,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
479# CONFIG_BLK_DEV_HD is not set 491# CONFIG_BLK_DEV_HD is not set
480CONFIG_MISC_DEVICES=y 492CONFIG_MISC_DEVICES=y
481# CONFIG_EEPROM_93CX6 is not set 493# CONFIG_EEPROM_93CX6 is not set
494# CONFIG_ICS932S401 is not set
482# CONFIG_ENCLOSURE_SERVICES is not set 495# CONFIG_ENCLOSURE_SERVICES is not set
496# CONFIG_C2PORT is not set
483CONFIG_HAVE_IDE=y 497CONFIG_HAVE_IDE=y
484# CONFIG_IDE is not set 498# CONFIG_IDE is not set
485 499
@@ -522,6 +536,7 @@ CONFIG_SCSI_WAIT_SCAN=m
522# CONFIG_SCSI_SRP_ATTRS is not set 536# CONFIG_SCSI_SRP_ATTRS is not set
523CONFIG_SCSI_LOWLEVEL=y 537CONFIG_SCSI_LOWLEVEL=y
524# CONFIG_ISCSI_TCP is not set 538# CONFIG_ISCSI_TCP is not set
539# CONFIG_LIBFC is not set
525# CONFIG_SCSI_DEBUG is not set 540# CONFIG_SCSI_DEBUG is not set
526# CONFIG_SCSI_DH is not set 541# CONFIG_SCSI_DH is not set
527CONFIG_ATA=y 542CONFIG_ATA=y
@@ -546,6 +561,7 @@ CONFIG_MII=y
546CONFIG_SMC91X=y 561CONFIG_SMC91X=y
547# CONFIG_ENC28J60 is not set 562# CONFIG_ENC28J60 is not set
548# CONFIG_SMC911X is not set 563# CONFIG_SMC911X is not set
564# CONFIG_SMSC911X is not set
549# CONFIG_IBM_NEW_EMAC_ZMII is not set 565# CONFIG_IBM_NEW_EMAC_ZMII is not set
550# CONFIG_IBM_NEW_EMAC_RGMII is not set 566# CONFIG_IBM_NEW_EMAC_RGMII is not set
551# CONFIG_IBM_NEW_EMAC_TAH is not set 567# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -613,6 +629,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
613CONFIG_SERIAL_CORE=y 629CONFIG_SERIAL_CORE=y
614CONFIG_SERIAL_CORE_CONSOLE=y 630CONFIG_SERIAL_CORE_CONSOLE=y
615CONFIG_UNIX98_PTYS=y 631CONFIG_UNIX98_PTYS=y
632# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
616CONFIG_LEGACY_PTYS=y 633CONFIG_LEGACY_PTYS=y
617CONFIG_LEGACY_PTY_COUNT=256 634CONFIG_LEGACY_PTY_COUNT=256
618# CONFIG_IPMI_HANDLER is not set 635# CONFIG_IPMI_HANDLER is not set
@@ -653,8 +670,8 @@ CONFIG_I2C_HELPER_AUTO=y
653# Miscellaneous I2C Chip support 670# Miscellaneous I2C Chip support
654# 671#
655# CONFIG_DS1682 is not set 672# CONFIG_DS1682 is not set
656# CONFIG_AT24 is not set 673# CONFIG_EEPROM_AT24 is not set
657# CONFIG_SENSORS_EEPROM is not set 674# CONFIG_EEPROM_LEGACY is not set
658# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
659# CONFIG_PCF8575 is not set 676# CONFIG_PCF8575 is not set
660# CONFIG_SENSORS_PCA9539 is not set 677# CONFIG_SENSORS_PCA9539 is not set
@@ -678,7 +695,7 @@ CONFIG_SPI_MASTER=y
678# 695#
679# SPI Protocol Masters 696# SPI Protocol Masters
680# 697#
681# CONFIG_SPI_AT25 is not set 698# CONFIG_EEPROM_AT25 is not set
682# CONFIG_SPI_SPIDEV is not set 699# CONFIG_SPI_SPIDEV is not set
683# CONFIG_SPI_TLE62X0 is not set 700# CONFIG_SPI_TLE62X0 is not set
684# CONFIG_W1 is not set 701# CONFIG_W1 is not set
@@ -699,11 +716,11 @@ CONFIG_WATCHDOG=y
699# USB-based Watchdog Cards 716# USB-based Watchdog Cards
700# 717#
701# CONFIG_USBPCWATCHDOG is not set 718# CONFIG_USBPCWATCHDOG is not set
719CONFIG_SSB_POSSIBLE=y
702 720
703# 721#
704# Sonics Silicon Backplane 722# Sonics Silicon Backplane
705# 723#
706CONFIG_SSB_POSSIBLE=y
707# CONFIG_SSB is not set 724# CONFIG_SSB is not set
708 725
709# 726#
@@ -715,6 +732,7 @@ CONFIG_SSB_POSSIBLE=y
715# CONFIG_MFD_TMIO is not set 732# CONFIG_MFD_TMIO is not set
716# CONFIG_MFD_WM8400 is not set 733# CONFIG_MFD_WM8400 is not set
717# CONFIG_MFD_WM8350_I2C is not set 734# CONFIG_MFD_WM8350_I2C is not set
735# CONFIG_REGULATOR is not set
718 736
719# 737#
720# Multimedia devices 738# Multimedia devices
@@ -763,15 +781,17 @@ CONFIG_USB_DEVICE_CLASS=y
763# CONFIG_USB_OTG_WHITELIST is not set 781# CONFIG_USB_OTG_WHITELIST is not set
764# CONFIG_USB_OTG_BLACKLIST_HUB is not set 782# CONFIG_USB_OTG_BLACKLIST_HUB is not set
765CONFIG_USB_MON=y 783CONFIG_USB_MON=y
784# CONFIG_USB_WUSB is not set
785# CONFIG_USB_WUSB_CBAF is not set
766 786
767# 787#
768# USB Host Controller Drivers 788# USB Host Controller Drivers
769# 789#
770# CONFIG_USB_C67X00_HCD is not set 790# CONFIG_USB_C67X00_HCD is not set
771# CONFIG_USB_ISP116X_HCD is not set 791# CONFIG_USB_ISP116X_HCD is not set
772# CONFIG_USB_ISP1760_HCD is not set
773# CONFIG_USB_SL811_HCD is not set 792# CONFIG_USB_SL811_HCD is not set
774CONFIG_USB_R8A66597_HCD=m 793CONFIG_USB_R8A66597_HCD=m
794# CONFIG_USB_HWA_HCD is not set
775# CONFIG_USB_GADGET_MUSB_HDRC is not set 795# CONFIG_USB_GADGET_MUSB_HDRC is not set
776 796
777# 797#
@@ -783,11 +803,11 @@ CONFIG_USB_R8A66597_HCD=m
783# CONFIG_USB_TMC is not set 803# CONFIG_USB_TMC is not set
784 804
785# 805#
786# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 806# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
787# 807#
788 808
789# 809#
790# may also be needed; see USB_STORAGE Help for more information 810# see USB_STORAGE Help for more information
791# 811#
792# CONFIG_USB_STORAGE is not set 812# CONFIG_USB_STORAGE is not set
793# CONFIG_USB_LIBUSUAL is not set 813# CONFIG_USB_LIBUSUAL is not set
@@ -890,12 +910,14 @@ CONFIG_RTC_INTF_DEV=y
890# CONFIG_RTC_DRV_M41T80 is not set 910# CONFIG_RTC_DRV_M41T80 is not set
891# CONFIG_RTC_DRV_S35390A is not set 911# CONFIG_RTC_DRV_S35390A is not set
892# CONFIG_RTC_DRV_FM3130 is not set 912# CONFIG_RTC_DRV_FM3130 is not set
913# CONFIG_RTC_DRV_RX8581 is not set
893 914
894# 915#
895# SPI RTC drivers 916# SPI RTC drivers
896# 917#
897# CONFIG_RTC_DRV_M41T94 is not set 918# CONFIG_RTC_DRV_M41T94 is not set
898# CONFIG_RTC_DRV_DS1305 is not set 919# CONFIG_RTC_DRV_DS1305 is not set
920# CONFIG_RTC_DRV_DS1390 is not set
899# CONFIG_RTC_DRV_MAX6902 is not set 921# CONFIG_RTC_DRV_MAX6902 is not set
900# CONFIG_RTC_DRV_R9701 is not set 922# CONFIG_RTC_DRV_R9701 is not set
901# CONFIG_RTC_DRV_RS5C348 is not set 923# CONFIG_RTC_DRV_RS5C348 is not set
@@ -981,10 +1003,7 @@ CONFIG_TMPFS=y
981CONFIG_HUGETLBFS=y 1003CONFIG_HUGETLBFS=y
982CONFIG_HUGETLB_PAGE=y 1004CONFIG_HUGETLB_PAGE=y
983# CONFIG_CONFIGFS_FS is not set 1005# CONFIG_CONFIGFS_FS is not set
984 1006CONFIG_MISC_FILESYSTEMS=y
985#
986# Miscellaneous filesystems
987#
988# CONFIG_ADFS_FS is not set 1007# CONFIG_ADFS_FS is not set
989# CONFIG_AFFS_FS is not set 1008# CONFIG_AFFS_FS is not set
990# CONFIG_HFS_FS is not set 1009# CONFIG_HFS_FS is not set
@@ -1049,6 +1068,7 @@ CONFIG_DEBUG_PREEMPT=y
1049# CONFIG_LOCK_STAT is not set 1068# CONFIG_LOCK_STAT is not set
1050# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1069# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1051# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1070# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1071CONFIG_STACKTRACE=y
1052# CONFIG_DEBUG_KOBJECT is not set 1072# CONFIG_DEBUG_KOBJECT is not set
1053CONFIG_DEBUG_BUGVERBOSE=y 1073CONFIG_DEBUG_BUGVERBOSE=y
1054# CONFIG_DEBUG_INFO is not set 1074# CONFIG_DEBUG_INFO is not set
@@ -1057,6 +1077,7 @@ CONFIG_DEBUG_VM=y
1057# CONFIG_DEBUG_MEMORY_INIT is not set 1077# CONFIG_DEBUG_MEMORY_INIT is not set
1058# CONFIG_DEBUG_LIST is not set 1078# CONFIG_DEBUG_LIST is not set
1059# CONFIG_DEBUG_SG is not set 1079# CONFIG_DEBUG_SG is not set
1080# CONFIG_DEBUG_NOTIFIERS is not set
1060CONFIG_FRAME_POINTER=y 1081CONFIG_FRAME_POINTER=y
1061# CONFIG_RCU_TORTURE_TEST is not set 1082# CONFIG_RCU_TORTURE_TEST is not set
1062# CONFIG_KPROBES_SANITY_TEST is not set 1083# CONFIG_KPROBES_SANITY_TEST is not set
@@ -1066,16 +1087,28 @@ CONFIG_FRAME_POINTER=y
1066# CONFIG_FAULT_INJECTION is not set 1087# CONFIG_FAULT_INJECTION is not set
1067# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1088# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1068CONFIG_NOP_TRACER=y 1089CONFIG_NOP_TRACER=y
1069CONFIG_HAVE_FTRACE=y 1090CONFIG_HAVE_FUNCTION_TRACER=y
1070# CONFIG_FTRACE is not set 1091CONFIG_HAVE_DYNAMIC_FTRACE=y
1092CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1093CONFIG_RING_BUFFER=y
1094CONFIG_TRACING=y
1095
1096#
1097# Tracers
1098#
1099# CONFIG_FUNCTION_TRACER is not set
1071# CONFIG_IRQSOFF_TRACER is not set 1100# CONFIG_IRQSOFF_TRACER is not set
1072# CONFIG_PREEMPT_TRACER is not set 1101# CONFIG_PREEMPT_TRACER is not set
1073# CONFIG_SCHED_TRACER is not set 1102# CONFIG_SCHED_TRACER is not set
1074# CONFIG_CONTEXT_SWITCH_TRACER is not set 1103# CONFIG_CONTEXT_SWITCH_TRACER is not set
1075# CONFIG_BOOT_TRACER is not set 1104# CONFIG_BOOT_TRACER is not set
1105# CONFIG_TRACE_BRANCH_PROFILING is not set
1076# CONFIG_STACK_TRACER is not set 1106# CONFIG_STACK_TRACER is not set
1107# CONFIG_FTRACE_STARTUP_TEST is not set
1077# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1108# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1078# CONFIG_SAMPLES is not set 1109# CONFIG_SAMPLES is not set
1110CONFIG_HAVE_ARCH_KGDB=y
1111# CONFIG_KGDB is not set
1079CONFIG_SH_STANDARD_BIOS=y 1112CONFIG_SH_STANDARD_BIOS=y
1080# CONFIG_EARLY_SCIF_CONSOLE is not set 1113# CONFIG_EARLY_SCIF_CONSOLE is not set
1081CONFIG_EARLY_PRINTK=y 1114CONFIG_EARLY_PRINTK=y
@@ -1083,7 +1116,9 @@ CONFIG_EARLY_PRINTK=y
1083CONFIG_DEBUG_STACKOVERFLOW=y 1116CONFIG_DEBUG_STACKOVERFLOW=y
1084CONFIG_DEBUG_STACK_USAGE=y 1117CONFIG_DEBUG_STACK_USAGE=y
1085# CONFIG_IRQSTACKS is not set 1118# CONFIG_IRQSTACKS is not set
1086# CONFIG_SH_KGDB is not set 1119CONFIG_DUMP_CODE=y
1120# CONFIG_SH_NO_BSS_INIT is not set
1121# CONFIG_MORE_COMPILE_OPTIONS is not set
1087 1122
1088# 1123#
1089# Security options 1124# Security options
@@ -1099,6 +1134,7 @@ CONFIG_CRYPTO=y
1099# 1134#
1100# CONFIG_CRYPTO_FIPS is not set 1135# CONFIG_CRYPTO_FIPS is not set
1101# CONFIG_CRYPTO_MANAGER is not set 1136# CONFIG_CRYPTO_MANAGER is not set
1137# CONFIG_CRYPTO_MANAGER2 is not set
1102# CONFIG_CRYPTO_GF128MUL is not set 1138# CONFIG_CRYPTO_GF128MUL is not set
1103# CONFIG_CRYPTO_NULL is not set 1139# CONFIG_CRYPTO_NULL is not set
1104# CONFIG_CRYPTO_CRYPTD is not set 1140# CONFIG_CRYPTO_CRYPTD is not set
@@ -1181,6 +1217,7 @@ CONFIG_CRYPTO_HW=y
1181# Library routines 1217# Library routines
1182# 1218#
1183CONFIG_BITREVERSE=y 1219CONFIG_BITREVERSE=y
1220CONFIG_GENERIC_FIND_LAST_BIT=y
1184# CONFIG_CRC_CCITT is not set 1221# CONFIG_CRC_CCITT is not set
1185# CONFIG_CRC16 is not set 1222# CONFIG_CRC16 is not set
1186# CONFIG_CRC_T10DIF is not set 1223# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/snapgear_defconfig b/arch/sh/configs/snapgear_defconfig
index b4ca5110958f..98377e502650 100644
--- a/arch/sh/configs/snapgear_defconfig
+++ b/arch/sh/configs/snapgear_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:55:03 2008 4# Fri Jan 9 18:14:08 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -76,7 +78,6 @@ CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81CONFIG_HAVE_IOREMAP_PROT=y 82CONFIG_HAVE_IOREMAP_PROT=y
82CONFIG_HAVE_KPROBES=y 83CONFIG_HAVE_KPROBES=y
@@ -86,13 +87,11 @@ CONFIG_HAVE_CLK=y
86CONFIG_HAVE_GENERIC_DMA_COHERENT=y 87CONFIG_HAVE_GENERIC_DMA_COHERENT=y
87CONFIG_SLABINFO=y 88CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 89CONFIG_RT_MUTEXES=y
89# CONFIG_TINY_SHMEM is not set
90CONFIG_BASE_SMALL=0 90CONFIG_BASE_SMALL=0
91# CONFIG_MODULES is not set 91# CONFIG_MODULES is not set
92CONFIG_BLOCK=y 92CONFIG_BLOCK=y
93# CONFIG_LBD is not set 93# CONFIG_LBD is not set
94# CONFIG_BLK_DEV_IO_TRACE is not set 94# CONFIG_BLK_DEV_IO_TRACE is not set
95# CONFIG_LSF is not set
96# CONFIG_BLK_DEV_BSG is not set 95# CONFIG_BLK_DEV_BSG is not set
97# CONFIG_BLK_DEV_INTEGRITY is not set 96# CONFIG_BLK_DEV_INTEGRITY is not set
98 97
@@ -109,6 +108,10 @@ CONFIG_DEFAULT_AS=y
109# CONFIG_DEFAULT_NOOP is not set 108# CONFIG_DEFAULT_NOOP is not set
110CONFIG_DEFAULT_IOSCHED="anticipatory" 109CONFIG_DEFAULT_IOSCHED="anticipatory"
111CONFIG_CLASSIC_RCU=y 110CONFIG_CLASSIC_RCU=y
111# CONFIG_TREE_RCU is not set
112# CONFIG_PREEMPT_RCU is not set
113# CONFIG_TREE_RCU_TRACE is not set
114# CONFIG_PREEMPT_RCU_TRACE is not set
112# CONFIG_FREEZER is not set 115# CONFIG_FREEZER is not set
113 116
114# 117#
@@ -116,6 +119,7 @@ CONFIG_CLASSIC_RCU=y
116# 119#
117CONFIG_CPU_SH4=y 120CONFIG_CPU_SH4=y
118# CONFIG_CPU_SUBTYPE_SH7619 is not set 121# CONFIG_CPU_SUBTYPE_SH7619 is not set
122# CONFIG_CPU_SUBTYPE_SH7201 is not set
119# CONFIG_CPU_SUBTYPE_SH7203 is not set 123# CONFIG_CPU_SUBTYPE_SH7203 is not set
120# CONFIG_CPU_SUBTYPE_SH7206 is not set 124# CONFIG_CPU_SUBTYPE_SH7206 is not set
121# CONFIG_CPU_SUBTYPE_SH7263 is not set 125# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -179,7 +183,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
179CONFIG_SPARSEMEM_STATIC=y 183CONFIG_SPARSEMEM_STATIC=y
180CONFIG_PAGEFLAGS_EXTENDED=y 184CONFIG_PAGEFLAGS_EXTENDED=y
181CONFIG_SPLIT_PTLOCK_CPUS=4 185CONFIG_SPLIT_PTLOCK_CPUS=4
182# CONFIG_RESOURCES_64BIT is not set
183# CONFIG_PHYS_ADDR_T_64BIT is not set 186# CONFIG_PHYS_ADDR_T_64BIT is not set
184CONFIG_ZONE_DMA_FLAG=0 187CONFIG_ZONE_DMA_FLAG=0
185CONFIG_NR_QUICK=2 188CONFIG_NR_QUICK=2
@@ -282,6 +285,7 @@ CONFIG_PCI=y
282CONFIG_SH_PCIDMA_NONCOHERENT=y 285CONFIG_SH_PCIDMA_NONCOHERENT=y
283CONFIG_PCI_AUTO=y 286CONFIG_PCI_AUTO=y
284CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 287CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
288# CONFIG_PCIEPORTBUS is not set
285# CONFIG_ARCH_SUPPORTS_MSI is not set 289# CONFIG_ARCH_SUPPORTS_MSI is not set
286CONFIG_PCI_LEGACY=y 290CONFIG_PCI_LEGACY=y
287 291
@@ -292,11 +296,18 @@ CONFIG_BINFMT_ELF=y
292# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 296# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
293# CONFIG_HAVE_AOUT is not set 297# CONFIG_HAVE_AOUT is not set
294# CONFIG_BINFMT_MISC is not set 298# CONFIG_BINFMT_MISC is not set
299
300#
301# Power management options (EXPERIMENTAL)
302#
303# CONFIG_PM is not set
304# CONFIG_CPU_IDLE is not set
295CONFIG_NET=y 305CONFIG_NET=y
296 306
297# 307#
298# Networking options 308# Networking options
299# 309#
310CONFIG_COMPAT_NET_DEV_OPS=y
300# CONFIG_PACKET is not set 311# CONFIG_PACKET is not set
301# CONFIG_UNIX is not set 312# CONFIG_UNIX is not set
302# CONFIG_NET_KEY is not set 313# CONFIG_NET_KEY is not set
@@ -342,6 +353,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_ECONET is not set 353# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 354# CONFIG_WAN_ROUTER is not set
344# CONFIG_NET_SCHED is not set 355# CONFIG_NET_SCHED is not set
356# CONFIG_DCB is not set
345 357
346# 358#
347# Network testing 359# Network testing
@@ -357,8 +369,8 @@ CONFIG_WIRELESS=y
357# CONFIG_CFG80211 is not set 369# CONFIG_CFG80211 is not set
358# CONFIG_WIRELESS_OLD_REGULATORY is not set 370# CONFIG_WIRELESS_OLD_REGULATORY is not set
359# CONFIG_WIRELESS_EXT is not set 371# CONFIG_WIRELESS_EXT is not set
372# CONFIG_LIB80211 is not set
360# CONFIG_MAC80211 is not set 373# CONFIG_MAC80211 is not set
361# CONFIG_IEEE80211 is not set
362# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
363# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
364 376
@@ -515,6 +527,7 @@ CONFIG_MII=y
515# CONFIG_NET_VENDOR_3COM is not set 527# CONFIG_NET_VENDOR_3COM is not set
516# CONFIG_SMC91X is not set 528# CONFIG_SMC91X is not set
517# CONFIG_SMC911X is not set 529# CONFIG_SMC911X is not set
530# CONFIG_SMSC911X is not set
518# CONFIG_NET_TULIP is not set 531# CONFIG_NET_TULIP is not set
519# CONFIG_HP100 is not set 532# CONFIG_HP100 is not set
520# CONFIG_IBM_NEW_EMAC_ZMII is not set 533# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -530,7 +543,6 @@ CONFIG_NET_PCI=y
530# CONFIG_ADAPTEC_STARFIRE is not set 543# CONFIG_ADAPTEC_STARFIRE is not set
531# CONFIG_B44 is not set 544# CONFIG_B44 is not set
532# CONFIG_FORCEDETH is not set 545# CONFIG_FORCEDETH is not set
533# CONFIG_EEPRO100 is not set
534# CONFIG_E100 is not set 546# CONFIG_E100 is not set
535# CONFIG_FEALNX is not set 547# CONFIG_FEALNX is not set
536# CONFIG_NATSEMI is not set 548# CONFIG_NATSEMI is not set
@@ -544,6 +556,7 @@ CONFIG_8139TOO_PIO=y
544# CONFIG_R6040 is not set 556# CONFIG_R6040 is not set
545# CONFIG_SIS900 is not set 557# CONFIG_SIS900 is not set
546# CONFIG_EPIC100 is not set 558# CONFIG_EPIC100 is not set
559# CONFIG_SMSC9420 is not set
547# CONFIG_SUNDANCE is not set 560# CONFIG_SUNDANCE is not set
548# CONFIG_TLAN is not set 561# CONFIG_TLAN is not set
549# CONFIG_VIA_RHINE is not set 562# CONFIG_VIA_RHINE is not set
@@ -624,6 +637,7 @@ CONFIG_SERIAL_CORE=y
624CONFIG_SERIAL_CORE_CONSOLE=y 637CONFIG_SERIAL_CORE_CONSOLE=y
625# CONFIG_SERIAL_JSM is not set 638# CONFIG_SERIAL_JSM is not set
626CONFIG_UNIX98_PTYS=y 639CONFIG_UNIX98_PTYS=y
640# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
627CONFIG_LEGACY_PTYS=y 641CONFIG_LEGACY_PTYS=y
628CONFIG_LEGACY_PTY_COUNT=256 642CONFIG_LEGACY_PTY_COUNT=256
629# CONFIG_IPMI_HANDLER is not set 643# CONFIG_IPMI_HANDLER is not set
@@ -641,11 +655,11 @@ CONFIG_DEVPORT=y
641# CONFIG_THERMAL is not set 655# CONFIG_THERMAL is not set
642# CONFIG_THERMAL_HWMON is not set 656# CONFIG_THERMAL_HWMON is not set
643# CONFIG_WATCHDOG is not set 657# CONFIG_WATCHDOG is not set
658CONFIG_SSB_POSSIBLE=y
644 659
645# 660#
646# Sonics Silicon Backplane 661# Sonics Silicon Backplane
647# 662#
648CONFIG_SSB_POSSIBLE=y
649# CONFIG_SSB is not set 663# CONFIG_SSB is not set
650 664
651# 665#
@@ -655,7 +669,7 @@ CONFIG_SSB_POSSIBLE=y
655# CONFIG_MFD_SM501 is not set 669# CONFIG_MFD_SM501 is not set
656# CONFIG_HTC_PASIC3 is not set 670# CONFIG_HTC_PASIC3 is not set
657# CONFIG_MFD_TMIO is not set 671# CONFIG_MFD_TMIO is not set
658# CONFIG_MFD_WM8400 is not set 672# CONFIG_REGULATOR is not set
659 673
660# 674#
661# Multimedia devices 675# Multimedia devices
@@ -689,6 +703,7 @@ CONFIG_SSB_POSSIBLE=y
689# CONFIG_SOUND is not set 703# CONFIG_SOUND is not set
690# CONFIG_HID_SUPPORT is not set 704# CONFIG_HID_SUPPORT is not set
691# CONFIG_USB_SUPPORT is not set 705# CONFIG_USB_SUPPORT is not set
706# CONFIG_UWB is not set
692# CONFIG_MMC is not set 707# CONFIG_MMC is not set
693# CONFIG_MEMSTICK is not set 708# CONFIG_MEMSTICK is not set
694# CONFIG_NEW_LEDS is not set 709# CONFIG_NEW_LEDS is not set
@@ -746,10 +761,7 @@ CONFIG_TMPFS=y
746# CONFIG_HUGETLBFS is not set 761# CONFIG_HUGETLBFS is not set
747# CONFIG_HUGETLB_PAGE is not set 762# CONFIG_HUGETLB_PAGE is not set
748# CONFIG_CONFIGFS_FS is not set 763# CONFIG_CONFIGFS_FS is not set
749 764CONFIG_MISC_FILESYSTEMS=y
750#
751# Miscellaneous filesystems
752#
753# CONFIG_ADFS_FS is not set 765# CONFIG_ADFS_FS is not set
754# CONFIG_AFFS_FS is not set 766# CONFIG_AFFS_FS is not set
755# CONFIG_HFS_FS is not set 767# CONFIG_HFS_FS is not set
@@ -801,13 +813,19 @@ CONFIG_FRAME_WARN=1024
801# CONFIG_DEBUG_MEMORY_INIT is not set 813# CONFIG_DEBUG_MEMORY_INIT is not set
802# CONFIG_RCU_CPU_STALL_DETECTOR is not set 814# CONFIG_RCU_CPU_STALL_DETECTOR is not set
803# CONFIG_LATENCYTOP is not set 815# CONFIG_LATENCYTOP is not set
804CONFIG_NOP_TRACER=y 816CONFIG_HAVE_FUNCTION_TRACER=y
805CONFIG_HAVE_FTRACE=y 817CONFIG_HAVE_DYNAMIC_FTRACE=y
818CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
819
820#
821# Tracers
822#
806# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 823# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
807# CONFIG_SAMPLES is not set 824# CONFIG_SAMPLES is not set
825CONFIG_HAVE_ARCH_KGDB=y
808# CONFIG_SH_STANDARD_BIOS is not set 826# CONFIG_SH_STANDARD_BIOS is not set
809# CONFIG_EARLY_SCIF_CONSOLE is not set 827# CONFIG_EARLY_SCIF_CONSOLE is not set
810# CONFIG_SH_KGDB is not set 828# CONFIG_MORE_COMPILE_OPTIONS is not set
811 829
812# 830#
813# Security options 831# Security options
@@ -822,6 +840,7 @@ CONFIG_HAVE_FTRACE=y
822# Library routines 840# Library routines
823# 841#
824CONFIG_BITREVERSE=y 842CONFIG_BITREVERSE=y
843CONFIG_GENERIC_FIND_LAST_BIT=y
825# CONFIG_CRC_CCITT is not set 844# CONFIG_CRC_CCITT is not set
826# CONFIG_CRC16 is not set 845# CONFIG_CRC16 is not set
827# CONFIG_CRC_T10DIF is not set 846# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/systemh_defconfig b/arch/sh/configs/systemh_defconfig
index 1711f0f70d72..72703bf57afa 100644
--- a/arch/sh/configs/systemh_defconfig
+++ b/arch/sh/configs/systemh_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:56:48 2008 4# Fri Jan 9 18:15:56 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -68,12 +70,10 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 70CONFIG_SHMEM=y
69CONFIG_AIO=y 71CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 72CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_PCI_QUIRKS=y
72CONFIG_SLAB=y 73CONFIG_SLAB=y
73# CONFIG_SLUB is not set 74# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set 75# CONFIG_SLOB is not set
75# CONFIG_PROFILING is not set 76# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set
77CONFIG_HAVE_OPROFILE=y 77CONFIG_HAVE_OPROFILE=y
78# CONFIG_KPROBES is not set 78# CONFIG_KPROBES is not set
79CONFIG_HAVE_IOREMAP_PROT=y 79CONFIG_HAVE_IOREMAP_PROT=y
@@ -84,7 +84,6 @@ CONFIG_HAVE_CLK=y
84CONFIG_HAVE_GENERIC_DMA_COHERENT=y 84CONFIG_HAVE_GENERIC_DMA_COHERENT=y
85CONFIG_SLABINFO=y 85CONFIG_SLABINFO=y
86CONFIG_RT_MUTEXES=y 86CONFIG_RT_MUTEXES=y
87# CONFIG_TINY_SHMEM is not set
88CONFIG_BASE_SMALL=0 87CONFIG_BASE_SMALL=0
89CONFIG_MODULES=y 88CONFIG_MODULES=y
90# CONFIG_MODULE_FORCE_LOAD is not set 89# CONFIG_MODULE_FORCE_LOAD is not set
@@ -92,11 +91,9 @@ CONFIG_MODULE_UNLOAD=y
92# CONFIG_MODULE_FORCE_UNLOAD is not set 91# CONFIG_MODULE_FORCE_UNLOAD is not set
93# CONFIG_MODVERSIONS is not set 92# CONFIG_MODVERSIONS is not set
94# CONFIG_MODULE_SRCVERSION_ALL is not set 93# CONFIG_MODULE_SRCVERSION_ALL is not set
95CONFIG_KMOD=y
96CONFIG_BLOCK=y 94CONFIG_BLOCK=y
97# CONFIG_LBD is not set 95# CONFIG_LBD is not set
98# CONFIG_BLK_DEV_IO_TRACE is not set 96# CONFIG_BLK_DEV_IO_TRACE is not set
99# CONFIG_LSF is not set
100# CONFIG_BLK_DEV_BSG is not set 97# CONFIG_BLK_DEV_BSG is not set
101# CONFIG_BLK_DEV_INTEGRITY is not set 98# CONFIG_BLK_DEV_INTEGRITY is not set
102 99
@@ -113,6 +110,10 @@ CONFIG_DEFAULT_AS=y
113# CONFIG_DEFAULT_NOOP is not set 110# CONFIG_DEFAULT_NOOP is not set
114CONFIG_DEFAULT_IOSCHED="anticipatory" 111CONFIG_DEFAULT_IOSCHED="anticipatory"
115CONFIG_CLASSIC_RCU=y 112CONFIG_CLASSIC_RCU=y
113# CONFIG_TREE_RCU is not set
114# CONFIG_PREEMPT_RCU is not set
115# CONFIG_TREE_RCU_TRACE is not set
116# CONFIG_PREEMPT_RCU_TRACE is not set
116# CONFIG_FREEZER is not set 117# CONFIG_FREEZER is not set
117 118
118# 119#
@@ -120,6 +121,7 @@ CONFIG_CLASSIC_RCU=y
120# 121#
121CONFIG_CPU_SH4=y 122CONFIG_CPU_SH4=y
122# CONFIG_CPU_SUBTYPE_SH7619 is not set 123# CONFIG_CPU_SUBTYPE_SH7619 is not set
124# CONFIG_CPU_SUBTYPE_SH7201 is not set
123# CONFIG_CPU_SUBTYPE_SH7203 is not set 125# CONFIG_CPU_SUBTYPE_SH7203 is not set
124# CONFIG_CPU_SUBTYPE_SH7206 is not set 126# CONFIG_CPU_SUBTYPE_SH7206 is not set
125# CONFIG_CPU_SUBTYPE_SH7263 is not set 127# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -183,7 +185,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
183CONFIG_SPARSEMEM_STATIC=y 185CONFIG_SPARSEMEM_STATIC=y
184CONFIG_PAGEFLAGS_EXTENDED=y 186CONFIG_PAGEFLAGS_EXTENDED=y
185CONFIG_SPLIT_PTLOCK_CPUS=4 187CONFIG_SPLIT_PTLOCK_CPUS=4
186# CONFIG_RESOURCES_64BIT is not set
187# CONFIG_PHYS_ADDR_T_64BIT is not set 188# CONFIG_PHYS_ADDR_T_64BIT is not set
188CONFIG_ZONE_DMA_FLAG=0 189CONFIG_ZONE_DMA_FLAG=0
189CONFIG_NR_QUICK=2 190CONFIG_NR_QUICK=2
@@ -264,7 +265,6 @@ CONFIG_HZ=250
264# CONFIG_PREEMPT_NONE is not set 265# CONFIG_PREEMPT_NONE is not set
265# CONFIG_PREEMPT_VOLUNTARY is not set 266# CONFIG_PREEMPT_VOLUNTARY is not set
266CONFIG_PREEMPT=y 267CONFIG_PREEMPT=y
267# CONFIG_PREEMPT_RCU is not set
268CONFIG_GUSA=y 268CONFIG_GUSA=y
269# CONFIG_GUSA_RB is not set 269# CONFIG_GUSA_RB is not set
270 270
@@ -288,6 +288,12 @@ CONFIG_BINFMT_ELF=y
288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
289# CONFIG_HAVE_AOUT is not set 289# CONFIG_HAVE_AOUT is not set
290# CONFIG_BINFMT_MISC is not set 290# CONFIG_BINFMT_MISC is not set
291
292#
293# Power management options (EXPERIMENTAL)
294#
295# CONFIG_PM is not set
296# CONFIG_CPU_IDLE is not set
291# CONFIG_NET is not set 297# CONFIG_NET is not set
292 298
293# 299#
@@ -314,6 +320,7 @@ CONFIG_BLK_DEV_RAM_SIZE=1024
314CONFIG_MISC_DEVICES=y 320CONFIG_MISC_DEVICES=y
315# CONFIG_EEPROM_93CX6 is not set 321# CONFIG_EEPROM_93CX6 is not set
316# CONFIG_ENCLOSURE_SERVICES is not set 322# CONFIG_ENCLOSURE_SERVICES is not set
323# CONFIG_C2PORT is not set
317CONFIG_HAVE_IDE=y 324CONFIG_HAVE_IDE=y
318# CONFIG_IDE is not set 325# CONFIG_IDE is not set
319 326
@@ -360,6 +367,7 @@ CONFIG_DEVKMEM=y
360# 367#
361# CONFIG_SERIAL_SH_SCI is not set 368# CONFIG_SERIAL_SH_SCI is not set
362CONFIG_UNIX98_PTYS=y 369CONFIG_UNIX98_PTYS=y
370# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
363CONFIG_LEGACY_PTYS=y 371CONFIG_LEGACY_PTYS=y
364CONFIG_LEGACY_PTY_COUNT=256 372CONFIG_LEGACY_PTY_COUNT=256
365# CONFIG_IPMI_HANDLER is not set 373# CONFIG_IPMI_HANDLER is not set
@@ -387,11 +395,11 @@ CONFIG_HWMON=y
387# CONFIG_THERMAL is not set 395# CONFIG_THERMAL is not set
388# CONFIG_THERMAL_HWMON is not set 396# CONFIG_THERMAL_HWMON is not set
389# CONFIG_WATCHDOG is not set 397# CONFIG_WATCHDOG is not set
398CONFIG_SSB_POSSIBLE=y
390 399
391# 400#
392# Sonics Silicon Backplane 401# Sonics Silicon Backplane
393# 402#
394CONFIG_SSB_POSSIBLE=y
395# CONFIG_SSB is not set 403# CONFIG_SSB is not set
396 404
397# 405#
@@ -401,7 +409,7 @@ CONFIG_SSB_POSSIBLE=y
401# CONFIG_MFD_SM501 is not set 409# CONFIG_MFD_SM501 is not set
402# CONFIG_HTC_PASIC3 is not set 410# CONFIG_HTC_PASIC3 is not set
403# CONFIG_MFD_TMIO is not set 411# CONFIG_MFD_TMIO is not set
404# CONFIG_MFD_WM8400 is not set 412# CONFIG_REGULATOR is not set
405 413
406# 414#
407# Multimedia devices 415# Multimedia devices
@@ -444,7 +452,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
444# 452#
445 453
446# 454#
447# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 455# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
448# 456#
449# CONFIG_USB_GADGET is not set 457# CONFIG_USB_GADGET is not set
450# CONFIG_MMC is not set 458# CONFIG_MMC is not set
@@ -501,10 +509,7 @@ CONFIG_TMPFS=y
501# CONFIG_HUGETLBFS is not set 509# CONFIG_HUGETLBFS is not set
502# CONFIG_HUGETLB_PAGE is not set 510# CONFIG_HUGETLB_PAGE is not set
503# CONFIG_CONFIGFS_FS is not set 511# CONFIG_CONFIGFS_FS is not set
504 512CONFIG_MISC_FILESYSTEMS=y
505#
506# Miscellaneous filesystems
507#
508# CONFIG_ADFS_FS is not set 513# CONFIG_ADFS_FS is not set
509# CONFIG_AFFS_FS is not set 514# CONFIG_AFFS_FS is not set
510# CONFIG_HFS_FS is not set 515# CONFIG_HFS_FS is not set
@@ -546,13 +551,19 @@ CONFIG_FRAME_WARN=1024
546# CONFIG_DEBUG_MEMORY_INIT is not set 551# CONFIG_DEBUG_MEMORY_INIT is not set
547# CONFIG_RCU_CPU_STALL_DETECTOR is not set 552# CONFIG_RCU_CPU_STALL_DETECTOR is not set
548# CONFIG_LATENCYTOP is not set 553# CONFIG_LATENCYTOP is not set
549CONFIG_NOP_TRACER=y 554CONFIG_HAVE_FUNCTION_TRACER=y
550CONFIG_HAVE_FTRACE=y 555CONFIG_HAVE_DYNAMIC_FTRACE=y
556CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
557
558#
559# Tracers
560#
551# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 561# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
552# CONFIG_SAMPLES is not set 562# CONFIG_SAMPLES is not set
563CONFIG_HAVE_ARCH_KGDB=y
553# CONFIG_SH_STANDARD_BIOS is not set 564# CONFIG_SH_STANDARD_BIOS is not set
554# CONFIG_EARLY_SCIF_CONSOLE is not set 565# CONFIG_EARLY_SCIF_CONSOLE is not set
555# CONFIG_SH_KGDB is not set 566# CONFIG_MORE_COMPILE_OPTIONS is not set
556 567
557# 568#
558# Security options 569# Security options
@@ -567,6 +578,7 @@ CONFIG_HAVE_FTRACE=y
567# Library routines 578# Library routines
568# 579#
569CONFIG_BITREVERSE=y 580CONFIG_BITREVERSE=y
581CONFIG_GENERIC_FIND_LAST_BIT=y
570# CONFIG_CRC_CCITT is not set 582# CONFIG_CRC_CCITT is not set
571# CONFIG_CRC16 is not set 583# CONFIG_CRC16 is not set
572# CONFIG_CRC_T10DIF is not set 584# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/titan_defconfig b/arch/sh/configs/titan_defconfig
index ea3c5e838fc3..01fc1defb33b 100644
--- a/arch/sh/configs/titan_defconfig
+++ b/arch/sh/configs/titan_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:58:12 2008 4# Fri Jan 9 18:17:19 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -79,7 +81,6 @@ CONFIG_SLAB=y
79# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
81# CONFIG_PROFILING is not set 83# CONFIG_PROFILING is not set
82# CONFIG_MARKERS is not set
83CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 85# CONFIG_KPROBES is not set
85CONFIG_HAVE_IOREMAP_PROT=y 86CONFIG_HAVE_IOREMAP_PROT=y
@@ -90,7 +91,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 94CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 95CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 96# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +98,9 @@ CONFIG_MODULE_UNLOAD=y
98CONFIG_MODULE_FORCE_UNLOAD=y 98CONFIG_MODULE_FORCE_UNLOAD=y
99# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_DEFAULT_AS=y
119# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
120CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -293,6 +295,7 @@ CONFIG_PCI=y
293CONFIG_SH_PCIDMA_NONCOHERENT=y 295CONFIG_SH_PCIDMA_NONCOHERENT=y
294CONFIG_PCI_AUTO=y 296CONFIG_PCI_AUTO=y
295CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 297CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
298# CONFIG_PCIEPORTBUS is not set
296# CONFIG_ARCH_SUPPORTS_MSI is not set 299# CONFIG_ARCH_SUPPORTS_MSI is not set
297CONFIG_PCI_LEGACY=y 300CONFIG_PCI_LEGACY=y
298# CONFIG_PCI_DEBUG is not set 301# CONFIG_PCI_DEBUG is not set
@@ -309,11 +312,18 @@ CONFIG_BINFMT_ELF=y
309# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 312# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
310# CONFIG_HAVE_AOUT is not set 313# CONFIG_HAVE_AOUT is not set
311# CONFIG_BINFMT_MISC is not set 314# CONFIG_BINFMT_MISC is not set
315
316#
317# Power management options (EXPERIMENTAL)
318#
319# CONFIG_PM is not set
320# CONFIG_CPU_IDLE is not set
312CONFIG_NET=y 321CONFIG_NET=y
313 322
314# 323#
315# Networking options 324# Networking options
316# 325#
326CONFIG_COMPAT_NET_DEV_OPS=y
317CONFIG_PACKET=y 327CONFIG_PACKET=y
318CONFIG_PACKET_MMAP=y 328CONFIG_PACKET_MMAP=y
319CONFIG_UNIX=y 329CONFIG_UNIX=y
@@ -507,6 +517,7 @@ CONFIG_NET_SCH_TBF=m
507CONFIG_NET_SCH_GRED=m 517CONFIG_NET_SCH_GRED=m
508CONFIG_NET_SCH_DSMARK=m 518CONFIG_NET_SCH_DSMARK=m
509CONFIG_NET_SCH_NETEM=m 519CONFIG_NET_SCH_NETEM=m
520# CONFIG_NET_SCH_DRR is not set
510CONFIG_NET_SCH_INGRESS=m 521CONFIG_NET_SCH_INGRESS=m
511 522
512# 523#
@@ -543,6 +554,7 @@ CONFIG_NET_ACT_PEDIT=m
543# CONFIG_NET_ACT_SKBEDIT is not set 554# CONFIG_NET_ACT_SKBEDIT is not set
544CONFIG_NET_CLS_IND=y 555CONFIG_NET_CLS_IND=y
545CONFIG_NET_SCH_FIFO=y 556CONFIG_NET_SCH_FIFO=y
557# CONFIG_DCB is not set
546 558
547# 559#
548# Network testing 560# Network testing
@@ -560,12 +572,8 @@ CONFIG_WIRELESS=y
560# CONFIG_WIRELESS_OLD_REGULATORY is not set 572# CONFIG_WIRELESS_OLD_REGULATORY is not set
561CONFIG_WIRELESS_EXT=y 573CONFIG_WIRELESS_EXT=y
562CONFIG_WIRELESS_EXT_SYSFS=y 574CONFIG_WIRELESS_EXT_SYSFS=y
575# CONFIG_LIB80211 is not set
563# CONFIG_MAC80211 is not set 576# CONFIG_MAC80211 is not set
564CONFIG_IEEE80211=y
565# CONFIG_IEEE80211_DEBUG is not set
566CONFIG_IEEE80211_CRYPT_WEP=y
567CONFIG_IEEE80211_CRYPT_CCMP=y
568CONFIG_IEEE80211_CRYPT_TKIP=y
569# CONFIG_RFKILL is not set 577# CONFIG_RFKILL is not set
570# CONFIG_NET_9P is not set 578# CONFIG_NET_9P is not set
571 579
@@ -695,6 +703,7 @@ CONFIG_MISC_DEVICES=y
695# CONFIG_TIFM_CORE is not set 703# CONFIG_TIFM_CORE is not set
696# CONFIG_ENCLOSURE_SERVICES is not set 704# CONFIG_ENCLOSURE_SERVICES is not set
697# CONFIG_HP_ILO is not set 705# CONFIG_HP_ILO is not set
706# CONFIG_C2PORT is not set
698CONFIG_HAVE_IDE=y 707CONFIG_HAVE_IDE=y
699# CONFIG_IDE is not set 708# CONFIG_IDE is not set
700 709
@@ -738,6 +747,7 @@ CONFIG_SCSI_WAIT_SCAN=m
738# CONFIG_SCSI_SRP_ATTRS is not set 747# CONFIG_SCSI_SRP_ATTRS is not set
739CONFIG_SCSI_LOWLEVEL=y 748CONFIG_SCSI_LOWLEVEL=y
740# CONFIG_ISCSI_TCP is not set 749# CONFIG_ISCSI_TCP is not set
750# CONFIG_SCSI_CXGB3_ISCSI is not set
741# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 751# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
742# CONFIG_SCSI_3W_9XXX is not set 752# CONFIG_SCSI_3W_9XXX is not set
743# CONFIG_SCSI_ACARD is not set 753# CONFIG_SCSI_ACARD is not set
@@ -751,6 +761,8 @@ CONFIG_SCSI_LOWLEVEL=y
751# CONFIG_MEGARAID_LEGACY is not set 761# CONFIG_MEGARAID_LEGACY is not set
752# CONFIG_MEGARAID_SAS is not set 762# CONFIG_MEGARAID_SAS is not set
753# CONFIG_SCSI_HPTIOP is not set 763# CONFIG_SCSI_HPTIOP is not set
764# CONFIG_LIBFC is not set
765# CONFIG_FCOE is not set
754# CONFIG_SCSI_DMX3191D is not set 766# CONFIG_SCSI_DMX3191D is not set
755# CONFIG_SCSI_FUTURE_DOMAIN is not set 767# CONFIG_SCSI_FUTURE_DOMAIN is not set
756# CONFIG_SCSI_IPS is not set 768# CONFIG_SCSI_IPS is not set
@@ -807,6 +819,9 @@ CONFIG_CICADA_PHY=m
807# CONFIG_BROADCOM_PHY is not set 819# CONFIG_BROADCOM_PHY is not set
808# CONFIG_ICPLUS_PHY is not set 820# CONFIG_ICPLUS_PHY is not set
809# CONFIG_REALTEK_PHY is not set 821# CONFIG_REALTEK_PHY is not set
822# CONFIG_NATIONAL_PHY is not set
823# CONFIG_STE10XP is not set
824# CONFIG_LSI_ET1011C_PHY is not set
810# CONFIG_MDIO_BITBANG is not set 825# CONFIG_MDIO_BITBANG is not set
811CONFIG_NET_ETHERNET=y 826CONFIG_NET_ETHERNET=y
812CONFIG_MII=y 827CONFIG_MII=y
@@ -818,6 +833,7 @@ CONFIG_MII=y
818# CONFIG_NET_VENDOR_3COM is not set 833# CONFIG_NET_VENDOR_3COM is not set
819# CONFIG_SMC91X is not set 834# CONFIG_SMC91X is not set
820# CONFIG_SMC911X is not set 835# CONFIG_SMC911X is not set
836# CONFIG_SMSC911X is not set
821# CONFIG_NET_TULIP is not set 837# CONFIG_NET_TULIP is not set
822# CONFIG_HP100 is not set 838# CONFIG_HP100 is not set
823# CONFIG_IBM_NEW_EMAC_ZMII is not set 839# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -833,7 +849,6 @@ CONFIG_NET_PCI=y
833# CONFIG_ADAPTEC_STARFIRE is not set 849# CONFIG_ADAPTEC_STARFIRE is not set
834# CONFIG_B44 is not set 850# CONFIG_B44 is not set
835# CONFIG_FORCEDETH is not set 851# CONFIG_FORCEDETH is not set
836# CONFIG_EEPRO100 is not set
837# CONFIG_E100 is not set 852# CONFIG_E100 is not set
838# CONFIG_FEALNX is not set 853# CONFIG_FEALNX is not set
839# CONFIG_NATSEMI is not set 854# CONFIG_NATSEMI is not set
@@ -847,6 +862,7 @@ CONFIG_8139_OLD_RX_RESET=y
847# CONFIG_R6040 is not set 862# CONFIG_R6040 is not set
848# CONFIG_SIS900 is not set 863# CONFIG_SIS900 is not set
849# CONFIG_EPIC100 is not set 864# CONFIG_EPIC100 is not set
865# CONFIG_SMSC9420 is not set
850# CONFIG_SUNDANCE is not set 866# CONFIG_SUNDANCE is not set
851# CONFIG_TLAN is not set 867# CONFIG_TLAN is not set
852# CONFIG_VIA_RHINE is not set 868# CONFIG_VIA_RHINE is not set
@@ -875,6 +891,7 @@ CONFIG_NETDEV_1000=y
875# CONFIG_JME is not set 891# CONFIG_JME is not set
876CONFIG_NETDEV_10000=y 892CONFIG_NETDEV_10000=y
877# CONFIG_CHELSIO_T1 is not set 893# CONFIG_CHELSIO_T1 is not set
894CONFIG_CHELSIO_T3_DEPENDS=y
878# CONFIG_CHELSIO_T3 is not set 895# CONFIG_CHELSIO_T3 is not set
879# CONFIG_ENIC is not set 896# CONFIG_ENIC is not set
880# CONFIG_IXGBE is not set 897# CONFIG_IXGBE is not set
@@ -883,6 +900,7 @@ CONFIG_NETDEV_10000=y
883# CONFIG_MYRI10GE is not set 900# CONFIG_MYRI10GE is not set
884# CONFIG_NETXEN_NIC is not set 901# CONFIG_NETXEN_NIC is not set
885# CONFIG_NIU is not set 902# CONFIG_NIU is not set
903# CONFIG_MLX4_EN is not set
886# CONFIG_MLX4_CORE is not set 904# CONFIG_MLX4_CORE is not set
887# CONFIG_TEHUTI is not set 905# CONFIG_TEHUTI is not set
888# CONFIG_BNX2X is not set 906# CONFIG_BNX2X is not set
@@ -1002,6 +1020,7 @@ CONFIG_SERIAL_CORE=y
1002CONFIG_SERIAL_CORE_CONSOLE=y 1020CONFIG_SERIAL_CORE_CONSOLE=y
1003# CONFIG_SERIAL_JSM is not set 1021# CONFIG_SERIAL_JSM is not set
1004CONFIG_UNIX98_PTYS=y 1022CONFIG_UNIX98_PTYS=y
1023# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1005CONFIG_LEGACY_PTYS=y 1024CONFIG_LEGACY_PTYS=y
1006CONFIG_LEGACY_PTY_COUNT=256 1025CONFIG_LEGACY_PTY_COUNT=256
1007# CONFIG_IPMI_HANDLER is not set 1026# CONFIG_IPMI_HANDLER is not set
@@ -1055,11 +1074,11 @@ CONFIG_SH_WDT=m
1055# USB-based Watchdog Cards 1074# USB-based Watchdog Cards
1056# 1075#
1057# CONFIG_USBPCWATCHDOG is not set 1076# CONFIG_USBPCWATCHDOG is not set
1077CONFIG_SSB_POSSIBLE=y
1058 1078
1059# 1079#
1060# Sonics Silicon Backplane 1080# Sonics Silicon Backplane
1061# 1081#
1062CONFIG_SSB_POSSIBLE=y
1063# CONFIG_SSB is not set 1082# CONFIG_SSB is not set
1064 1083
1065# 1084#
@@ -1069,7 +1088,7 @@ CONFIG_SSB_POSSIBLE=y
1069# CONFIG_MFD_SM501 is not set 1088# CONFIG_MFD_SM501 is not set
1070# CONFIG_HTC_PASIC3 is not set 1089# CONFIG_HTC_PASIC3 is not set
1071# CONFIG_MFD_TMIO is not set 1090# CONFIG_MFD_TMIO is not set
1072# CONFIG_MFD_WM8400 is not set 1091# CONFIG_REGULATOR is not set
1073 1092
1074# 1093#
1075# Multimedia devices 1094# Multimedia devices
@@ -1145,6 +1164,8 @@ CONFIG_USB_DEVICE_CLASS=y
1145# CONFIG_USB_OTG_WHITELIST is not set 1164# CONFIG_USB_OTG_WHITELIST is not set
1146# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1165# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1147CONFIG_USB_MON=y 1166CONFIG_USB_MON=y
1167# CONFIG_USB_WUSB is not set
1168# CONFIG_USB_WUSB_CBAF is not set
1148 1169
1149# 1170#
1150# USB Host Controller Drivers 1171# USB Host Controller Drivers
@@ -1162,6 +1183,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1162# CONFIG_USB_UHCI_HCD is not set 1183# CONFIG_USB_UHCI_HCD is not set
1163# CONFIG_USB_SL811_HCD is not set 1184# CONFIG_USB_SL811_HCD is not set
1164# CONFIG_USB_R8A66597_HCD is not set 1185# CONFIG_USB_R8A66597_HCD is not set
1186# CONFIG_USB_WHCI_HCD is not set
1187# CONFIG_USB_HWA_HCD is not set
1165 1188
1166# 1189#
1167# USB Device Class drivers 1190# USB Device Class drivers
@@ -1172,11 +1195,11 @@ CONFIG_USB_PRINTER=m
1172# CONFIG_USB_TMC is not set 1195# CONFIG_USB_TMC is not set
1173 1196
1174# 1197#
1175# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1198# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1176# 1199#
1177 1200
1178# 1201#
1179# may also be needed; see USB_STORAGE Help for more information 1202# see USB_STORAGE Help for more information
1180# 1203#
1181CONFIG_USB_STORAGE=y 1204CONFIG_USB_STORAGE=y
1182# CONFIG_USB_STORAGE_DEBUG is not set 1205# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1273,6 +1296,7 @@ CONFIG_USB_SERIAL_PL2303=m
1273# CONFIG_USB_ISIGHTFW is not set 1296# CONFIG_USB_ISIGHTFW is not set
1274# CONFIG_USB_VST is not set 1297# CONFIG_USB_VST is not set
1275# CONFIG_USB_GADGET is not set 1298# CONFIG_USB_GADGET is not set
1299# CONFIG_UWB is not set
1276# CONFIG_MMC is not set 1300# CONFIG_MMC is not set
1277# CONFIG_MEMSTICK is not set 1301# CONFIG_MEMSTICK is not set
1278# CONFIG_NEW_LEDS is not set 1302# CONFIG_NEW_LEDS is not set
@@ -1379,10 +1403,7 @@ CONFIG_TMPFS=y
1379# CONFIG_HUGETLBFS is not set 1403# CONFIG_HUGETLBFS is not set
1380# CONFIG_HUGETLB_PAGE is not set 1404# CONFIG_HUGETLB_PAGE is not set
1381CONFIG_CONFIGFS_FS=m 1405CONFIG_CONFIGFS_FS=m
1382 1406CONFIG_MISC_FILESYSTEMS=y
1383#
1384# Miscellaneous filesystems
1385#
1386# CONFIG_ADFS_FS is not set 1407# CONFIG_ADFS_FS is not set
1387# CONFIG_AFFS_FS is not set 1408# CONFIG_AFFS_FS is not set
1388# CONFIG_HFS_FS is not set 1409# CONFIG_HFS_FS is not set
@@ -1530,6 +1551,7 @@ CONFIG_SCHED_DEBUG=y
1530# CONFIG_DEBUG_MEMORY_INIT is not set 1551# CONFIG_DEBUG_MEMORY_INIT is not set
1531# CONFIG_DEBUG_LIST is not set 1552# CONFIG_DEBUG_LIST is not set
1532# CONFIG_DEBUG_SG is not set 1553# CONFIG_DEBUG_SG is not set
1554# CONFIG_DEBUG_NOTIFIERS is not set
1533# CONFIG_FRAME_POINTER is not set 1555# CONFIG_FRAME_POINTER is not set
1534# CONFIG_RCU_TORTURE_TEST is not set 1556# CONFIG_RCU_TORTURE_TEST is not set
1535# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1557# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1537,16 +1559,24 @@ CONFIG_SCHED_DEBUG=y
1537# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1559# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1538# CONFIG_FAULT_INJECTION is not set 1560# CONFIG_FAULT_INJECTION is not set
1539# CONFIG_LATENCYTOP is not set 1561# CONFIG_LATENCYTOP is not set
1540CONFIG_NOP_TRACER=y 1562CONFIG_HAVE_FUNCTION_TRACER=y
1541CONFIG_HAVE_FTRACE=y 1563CONFIG_HAVE_DYNAMIC_FTRACE=y
1542# CONFIG_FTRACE is not set 1564CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1565
1566#
1567# Tracers
1568#
1569# CONFIG_FUNCTION_TRACER is not set
1543# CONFIG_IRQSOFF_TRACER is not set 1570# CONFIG_IRQSOFF_TRACER is not set
1544# CONFIG_SCHED_TRACER is not set 1571# CONFIG_SCHED_TRACER is not set
1545# CONFIG_CONTEXT_SWITCH_TRACER is not set 1572# CONFIG_CONTEXT_SWITCH_TRACER is not set
1546# CONFIG_BOOT_TRACER is not set 1573# CONFIG_BOOT_TRACER is not set
1574# CONFIG_TRACE_BRANCH_PROFILING is not set
1547# CONFIG_STACK_TRACER is not set 1575# CONFIG_STACK_TRACER is not set
1548# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1576# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1549# CONFIG_SAMPLES is not set 1577# CONFIG_SAMPLES is not set
1578CONFIG_HAVE_ARCH_KGDB=y
1579# CONFIG_KGDB is not set
1550# CONFIG_SH_STANDARD_BIOS is not set 1580# CONFIG_SH_STANDARD_BIOS is not set
1551# CONFIG_EARLY_SCIF_CONSOLE is not set 1581# CONFIG_EARLY_SCIF_CONSOLE is not set
1552# CONFIG_DEBUG_BOOTMEM is not set 1582# CONFIG_DEBUG_BOOTMEM is not set
@@ -1554,7 +1584,9 @@ CONFIG_HAVE_FTRACE=y
1554# CONFIG_DEBUG_STACK_USAGE is not set 1584# CONFIG_DEBUG_STACK_USAGE is not set
1555# CONFIG_4KSTACKS is not set 1585# CONFIG_4KSTACKS is not set
1556# CONFIG_IRQSTACKS is not set 1586# CONFIG_IRQSTACKS is not set
1557# CONFIG_SH_KGDB is not set 1587# CONFIG_DUMP_CODE is not set
1588# CONFIG_SH_NO_BSS_INIT is not set
1589# CONFIG_MORE_COMPILE_OPTIONS is not set
1558 1590
1559# 1591#
1560# Security options 1592# Security options
@@ -1570,11 +1602,16 @@ CONFIG_CRYPTO=y
1570# 1602#
1571# CONFIG_CRYPTO_FIPS is not set 1603# CONFIG_CRYPTO_FIPS is not set
1572CONFIG_CRYPTO_ALGAPI=y 1604CONFIG_CRYPTO_ALGAPI=y
1605CONFIG_CRYPTO_ALGAPI2=y
1573CONFIG_CRYPTO_AEAD=y 1606CONFIG_CRYPTO_AEAD=y
1607CONFIG_CRYPTO_AEAD2=y
1574CONFIG_CRYPTO_BLKCIPHER=y 1608CONFIG_CRYPTO_BLKCIPHER=y
1609CONFIG_CRYPTO_BLKCIPHER2=y
1575CONFIG_CRYPTO_HASH=y 1610CONFIG_CRYPTO_HASH=y
1576CONFIG_CRYPTO_RNG=y 1611CONFIG_CRYPTO_HASH2=y
1612CONFIG_CRYPTO_RNG2=y
1577CONFIG_CRYPTO_MANAGER=y 1613CONFIG_CRYPTO_MANAGER=y
1614CONFIG_CRYPTO_MANAGER2=y
1578# CONFIG_CRYPTO_GF128MUL is not set 1615# CONFIG_CRYPTO_GF128MUL is not set
1579CONFIG_CRYPTO_NULL=m 1616CONFIG_CRYPTO_NULL=m
1580# CONFIG_CRYPTO_CRYPTD is not set 1617# CONFIG_CRYPTO_CRYPTD is not set
@@ -1659,6 +1696,7 @@ CONFIG_CRYPTO_HW=y
1659# Library routines 1696# Library routines
1660# 1697#
1661CONFIG_BITREVERSE=y 1698CONFIG_BITREVERSE=y
1699CONFIG_GENERIC_FIND_LAST_BIT=y
1662CONFIG_CRC_CCITT=m 1700CONFIG_CRC_CCITT=m
1663CONFIG_CRC16=m 1701CONFIG_CRC16=m
1664# CONFIG_CRC_T10DIF is not set 1702# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/ul2_defconfig b/arch/sh/configs/ul2_defconfig
index 9afff67d9ff2..27f968a959f8 100644
--- a/arch/sh/configs/ul2_defconfig
+++ b/arch/sh/configs/ul2_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.28-rc2 3# Linux kernel version: 2.6.28
4# Tue Oct 28 17:35:17 2008 4# Fri Jan 9 18:22:53 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -80,7 +82,6 @@ CONFIG_SLUB_DEBUG=y
80CONFIG_SLUB=y 82CONFIG_SLUB=y
81# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
82CONFIG_PROFILING=y 84CONFIG_PROFILING=y
83# CONFIG_MARKERS is not set
84# CONFIG_OPROFILE is not set 85# CONFIG_OPROFILE is not set
85CONFIG_HAVE_OPROFILE=y 86CONFIG_HAVE_OPROFILE=y
86# CONFIG_KPROBES is not set 87# CONFIG_KPROBES is not set
@@ -92,7 +93,6 @@ CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 93CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 94CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 97CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,11 +100,9 @@ CONFIG_MODULE_UNLOAD=y
100# CONFIG_MODULE_FORCE_UNLOAD is not set 100# CONFIG_MODULE_FORCE_UNLOAD is not set
101# CONFIG_MODVERSIONS is not set 101# CONFIG_MODVERSIONS is not set
102# CONFIG_MODULE_SRCVERSION_ALL is not set 102# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 103CONFIG_BLOCK=y
105# CONFIG_LBD is not set 104# CONFIG_LBD is not set
106# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
107# CONFIG_LSF is not set
108# CONFIG_BLK_DEV_BSG is not set 106# CONFIG_BLK_DEV_BSG is not set
109# CONFIG_BLK_DEV_INTEGRITY is not set 107# CONFIG_BLK_DEV_INTEGRITY is not set
110 108
@@ -121,6 +119,10 @@ CONFIG_IOSCHED_NOOP=y
121CONFIG_DEFAULT_NOOP=y 119CONFIG_DEFAULT_NOOP=y
122CONFIG_DEFAULT_IOSCHED="noop" 120CONFIG_DEFAULT_IOSCHED="noop"
123CONFIG_CLASSIC_RCU=y 121CONFIG_CLASSIC_RCU=y
122# CONFIG_TREE_RCU is not set
123# CONFIG_PREEMPT_RCU is not set
124# CONFIG_TREE_RCU_TRACE is not set
125# CONFIG_PREEMPT_RCU_TRACE is not set
124# CONFIG_FREEZER is not set 126# CONFIG_FREEZER is not set
125 127
126# 128#
@@ -131,6 +133,7 @@ CONFIG_CPU_SH4A=y
131CONFIG_CPU_SH4AL_DSP=y 133CONFIG_CPU_SH4AL_DSP=y
132CONFIG_CPU_SHX2=y 134CONFIG_CPU_SHX2=y
133# CONFIG_CPU_SUBTYPE_SH7619 is not set 135# CONFIG_CPU_SUBTYPE_SH7619 is not set
136# CONFIG_CPU_SUBTYPE_SH7201 is not set
134# CONFIG_CPU_SUBTYPE_SH7203 is not set 137# CONFIG_CPU_SUBTYPE_SH7203 is not set
135# CONFIG_CPU_SUBTYPE_SH7206 is not set 138# CONFIG_CPU_SUBTYPE_SH7206 is not set
136# CONFIG_CPU_SUBTYPE_SH7263 is not set 139# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -206,7 +209,6 @@ CONFIG_SPARSEMEM_STATIC=y
206# CONFIG_MEMORY_HOTPLUG is not set 209# CONFIG_MEMORY_HOTPLUG is not set
207CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
208# CONFIG_MIGRATION is not set 211# CONFIG_MIGRATION is not set
209# CONFIG_RESOURCES_64BIT is not set
210# CONFIG_PHYS_ADDR_T_64BIT is not set 212# CONFIG_PHYS_ADDR_T_64BIT is not set
211CONFIG_ZONE_DMA_FLAG=0 213CONFIG_ZONE_DMA_FLAG=0
212CONFIG_NR_QUICK=2 214CONFIG_NR_QUICK=2
@@ -283,7 +285,6 @@ CONFIG_KEXEC=y
283# CONFIG_PREEMPT_NONE is not set 285# CONFIG_PREEMPT_NONE is not set
284# CONFIG_PREEMPT_VOLUNTARY is not set 286# CONFIG_PREEMPT_VOLUNTARY is not set
285CONFIG_PREEMPT=y 287CONFIG_PREEMPT=y
286# CONFIG_PREEMPT_RCU is not set
287CONFIG_GUSA=y 288CONFIG_GUSA=y
288 289
289# 290#
@@ -307,11 +308,18 @@ CONFIG_BINFMT_ELF=y
307# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 308# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
308# CONFIG_HAVE_AOUT is not set 309# CONFIG_HAVE_AOUT is not set
309# CONFIG_BINFMT_MISC is not set 310# CONFIG_BINFMT_MISC is not set
311
312#
313# Power management options (EXPERIMENTAL)
314#
315# CONFIG_PM is not set
316# CONFIG_CPU_IDLE is not set
310CONFIG_NET=y 317CONFIG_NET=y
311 318
312# 319#
313# Networking options 320# Networking options
314# 321#
322CONFIG_COMPAT_NET_DEV_OPS=y
315CONFIG_PACKET=y 323CONFIG_PACKET=y
316CONFIG_PACKET_MMAP=y 324CONFIG_PACKET_MMAP=y
317CONFIG_UNIX=y 325CONFIG_UNIX=y
@@ -367,6 +375,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
367# CONFIG_ECONET is not set 375# CONFIG_ECONET is not set
368# CONFIG_WAN_ROUTER is not set 376# CONFIG_WAN_ROUTER is not set
369# CONFIG_NET_SCHED is not set 377# CONFIG_NET_SCHED is not set
378# CONFIG_DCB is not set
370 379
371# 380#
372# Network testing 381# Network testing
@@ -380,10 +389,12 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
380# CONFIG_PHONET is not set 389# CONFIG_PHONET is not set
381CONFIG_WIRELESS=y 390CONFIG_WIRELESS=y
382CONFIG_CFG80211=y 391CONFIG_CFG80211=y
392# CONFIG_CFG80211_REG_DEBUG is not set
383CONFIG_NL80211=y 393CONFIG_NL80211=y
384# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
385CONFIG_WIRELESS_EXT=y 395CONFIG_WIRELESS_EXT=y
386CONFIG_WIRELESS_EXT_SYSFS=y 396CONFIG_WIRELESS_EXT_SYSFS=y
397CONFIG_LIB80211=m
387CONFIG_MAC80211=y 398CONFIG_MAC80211=y
388 399
389# 400#
@@ -397,11 +408,6 @@ CONFIG_MAC80211_RC_DEFAULT="pid"
397# CONFIG_MAC80211_MESH is not set 408# CONFIG_MAC80211_MESH is not set
398# CONFIG_MAC80211_LEDS is not set 409# CONFIG_MAC80211_LEDS is not set
399# CONFIG_MAC80211_DEBUG_MENU is not set 410# CONFIG_MAC80211_DEBUG_MENU is not set
400CONFIG_IEEE80211=m
401CONFIG_IEEE80211_DEBUG=y
402CONFIG_IEEE80211_CRYPT_WEP=m
403CONFIG_IEEE80211_CRYPT_CCMP=m
404CONFIG_IEEE80211_CRYPT_TKIP=m
405# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
406# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
407 413
@@ -510,6 +516,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
510CONFIG_MISC_DEVICES=y 516CONFIG_MISC_DEVICES=y
511# CONFIG_EEPROM_93CX6 is not set 517# CONFIG_EEPROM_93CX6 is not set
512# CONFIG_ENCLOSURE_SERVICES is not set 518# CONFIG_ENCLOSURE_SERVICES is not set
519# CONFIG_C2PORT is not set
513CONFIG_HAVE_IDE=y 520CONFIG_HAVE_IDE=y
514# CONFIG_IDE is not set 521# CONFIG_IDE is not set
515 522
@@ -552,6 +559,7 @@ CONFIG_SCSI_WAIT_SCAN=m
552# CONFIG_SCSI_SRP_ATTRS is not set 559# CONFIG_SCSI_SRP_ATTRS is not set
553CONFIG_SCSI_LOWLEVEL=y 560CONFIG_SCSI_LOWLEVEL=y
554# CONFIG_ISCSI_TCP is not set 561# CONFIG_ISCSI_TCP is not set
562# CONFIG_LIBFC is not set
555# CONFIG_SCSI_DEBUG is not set 563# CONFIG_SCSI_DEBUG is not set
556# CONFIG_SCSI_DH is not set 564# CONFIG_SCSI_DH is not set
557CONFIG_ATA=y 565CONFIG_ATA=y
@@ -575,6 +583,7 @@ CONFIG_MII=y
575# CONFIG_STNIC is not set 583# CONFIG_STNIC is not set
576# CONFIG_SMC91X is not set 584# CONFIG_SMC91X is not set
577# CONFIG_SMC911X is not set 585# CONFIG_SMC911X is not set
586# CONFIG_SMSC911X is not set
578# CONFIG_IBM_NEW_EMAC_ZMII is not set 587# CONFIG_IBM_NEW_EMAC_ZMII is not set
579# CONFIG_IBM_NEW_EMAC_RGMII is not set 588# CONFIG_IBM_NEW_EMAC_RGMII is not set
580# CONFIG_IBM_NEW_EMAC_TAH is not set 589# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -714,11 +723,11 @@ CONFIG_HWMON=y
714# CONFIG_THERMAL is not set 723# CONFIG_THERMAL is not set
715# CONFIG_THERMAL_HWMON is not set 724# CONFIG_THERMAL_HWMON is not set
716# CONFIG_WATCHDOG is not set 725# CONFIG_WATCHDOG is not set
726CONFIG_SSB_POSSIBLE=y
717 727
718# 728#
719# Sonics Silicon Backplane 729# Sonics Silicon Backplane
720# 730#
721CONFIG_SSB_POSSIBLE=y
722# CONFIG_SSB is not set 731# CONFIG_SSB is not set
723 732
724# 733#
@@ -728,6 +737,7 @@ CONFIG_SSB_POSSIBLE=y
728# CONFIG_MFD_SM501 is not set 737# CONFIG_MFD_SM501 is not set
729# CONFIG_HTC_PASIC3 is not set 738# CONFIG_HTC_PASIC3 is not set
730# CONFIG_MFD_TMIO is not set 739# CONFIG_MFD_TMIO is not set
740# CONFIG_REGULATOR is not set
731 741
732# 742#
733# Multimedia devices 743# Multimedia devices
@@ -785,7 +795,6 @@ CONFIG_USB_MON=y
785# 795#
786# CONFIG_USB_C67X00_HCD is not set 796# CONFIG_USB_C67X00_HCD is not set
787# CONFIG_USB_ISP116X_HCD is not set 797# CONFIG_USB_ISP116X_HCD is not set
788# CONFIG_USB_ISP1760_HCD is not set
789# CONFIG_USB_SL811_HCD is not set 798# CONFIG_USB_SL811_HCD is not set
790CONFIG_USB_R8A66597_HCD=y 799CONFIG_USB_R8A66597_HCD=y
791# CONFIG_SUPERH_ON_CHIP_R8A66597 is not set 800# CONFIG_SUPERH_ON_CHIP_R8A66597 is not set
@@ -800,11 +809,11 @@ CONFIG_USB_R8A66597_HCD=y
800# CONFIG_USB_TMC is not set 809# CONFIG_USB_TMC is not set
801 810
802# 811#
803# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 812# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
804# 813#
805 814
806# 815#
807# may also be needed; see USB_STORAGE Help for more information 816# see USB_STORAGE Help for more information
808# 817#
809CONFIG_USB_STORAGE=y 818CONFIG_USB_STORAGE=y
810# CONFIG_USB_STORAGE_DEBUG is not set 819# CONFIG_USB_STORAGE_DEBUG is not set
@@ -937,10 +946,7 @@ CONFIG_TMPFS=y
937CONFIG_HUGETLBFS=y 946CONFIG_HUGETLBFS=y
938CONFIG_HUGETLB_PAGE=y 947CONFIG_HUGETLB_PAGE=y
939# CONFIG_CONFIGFS_FS is not set 948# CONFIG_CONFIGFS_FS is not set
940 949CONFIG_MISC_FILESYSTEMS=y
941#
942# Miscellaneous filesystems
943#
944# CONFIG_ADFS_FS is not set 950# CONFIG_ADFS_FS is not set
945# CONFIG_AFFS_FS is not set 951# CONFIG_AFFS_FS is not set
946# CONFIG_HFS_FS is not set 952# CONFIG_HFS_FS is not set
@@ -1046,13 +1052,19 @@ CONFIG_FRAME_WARN=1024
1046# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1052# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1047# CONFIG_LATENCYTOP is not set 1053# CONFIG_LATENCYTOP is not set
1048# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1054# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1049CONFIG_NOP_TRACER=y 1055CONFIG_HAVE_FUNCTION_TRACER=y
1050CONFIG_HAVE_FTRACE=y 1056CONFIG_HAVE_DYNAMIC_FTRACE=y
1057CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1058
1059#
1060# Tracers
1061#
1051# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1062# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1052# CONFIG_SAMPLES is not set 1063# CONFIG_SAMPLES is not set
1064CONFIG_HAVE_ARCH_KGDB=y
1053# CONFIG_SH_STANDARD_BIOS is not set 1065# CONFIG_SH_STANDARD_BIOS is not set
1054# CONFIG_EARLY_SCIF_CONSOLE is not set 1066# CONFIG_EARLY_SCIF_CONSOLE is not set
1055# CONFIG_SH_KGDB is not set 1067# CONFIG_MORE_COMPILE_OPTIONS is not set
1056 1068
1057# 1069#
1058# Security options 1070# Security options
@@ -1068,11 +1080,15 @@ CONFIG_CRYPTO=y
1068# 1080#
1069# CONFIG_CRYPTO_FIPS is not set 1081# CONFIG_CRYPTO_FIPS is not set
1070CONFIG_CRYPTO_ALGAPI=y 1082CONFIG_CRYPTO_ALGAPI=y
1071CONFIG_CRYPTO_AEAD=y 1083CONFIG_CRYPTO_ALGAPI2=y
1084CONFIG_CRYPTO_AEAD2=y
1072CONFIG_CRYPTO_BLKCIPHER=y 1085CONFIG_CRYPTO_BLKCIPHER=y
1086CONFIG_CRYPTO_BLKCIPHER2=y
1073CONFIG_CRYPTO_HASH=y 1087CONFIG_CRYPTO_HASH=y
1074CONFIG_CRYPTO_RNG=y 1088CONFIG_CRYPTO_HASH2=y
1089CONFIG_CRYPTO_RNG2=y
1075CONFIG_CRYPTO_MANAGER=y 1090CONFIG_CRYPTO_MANAGER=y
1091CONFIG_CRYPTO_MANAGER2=y
1076# CONFIG_CRYPTO_GF128MUL is not set 1092# CONFIG_CRYPTO_GF128MUL is not set
1077# CONFIG_CRYPTO_NULL is not set 1093# CONFIG_CRYPTO_NULL is not set
1078# CONFIG_CRYPTO_CRYPTD is not set 1094# CONFIG_CRYPTO_CRYPTD is not set
@@ -1155,6 +1171,7 @@ CONFIG_CRYPTO_HW=y
1155# Library routines 1171# Library routines
1156# 1172#
1157CONFIG_BITREVERSE=y 1173CONFIG_BITREVERSE=y
1174CONFIG_GENERIC_FIND_LAST_BIT=y
1158# CONFIG_CRC_CCITT is not set 1175# CONFIG_CRC_CCITT is not set
1159# CONFIG_CRC16 is not set 1176# CONFIG_CRC16 is not set
1160# CONFIG_CRC_T10DIF is not set 1177# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/include/asm/Kbuild b/arch/sh/include/asm/Kbuild
index f1a2a0d1c79c..43910cdf78a5 100644
--- a/arch/sh/include/asm/Kbuild
+++ b/arch/sh/include/asm/Kbuild
@@ -6,4 +6,3 @@ unifdef-y += unistd_32.h
6unifdef-y += unistd_64.h 6unifdef-y += unistd_64.h
7unifdef-y += posix_types_32.h 7unifdef-y += posix_types_32.h
8unifdef-y += posix_types_64.h 8unifdef-y += posix_types_64.h
9unifdef-y += swab.h
diff --git a/arch/sh/include/asm/byteorder.h b/arch/sh/include/asm/byteorder.h
index e95c41a5c8cc..db2f5d7cb17d 100644
--- a/arch/sh/include/asm/byteorder.h
+++ b/arch/sh/include/asm/byteorder.h
@@ -1,8 +1,6 @@
1#ifndef __ASM_SH_BYTEORDER_H 1#ifndef __ASM_SH_BYTEORDER_H
2#define __ASM_SH_BYTEORDER_H 2#define __ASM_SH_BYTEORDER_H
3 3
4#include <asm/swab.h>
5
6#ifdef __LITTLE_ENDIAN__ 4#ifdef __LITTLE_ENDIAN__
7#include <linux/byteorder/little_endian.h> 5#include <linux/byteorder/little_endian.h>
8#else 6#else
diff --git a/arch/sh/include/asm/mutex-llsc.h b/arch/sh/include/asm/mutex-llsc.h
index ee839ee58ac8..090358a7e1bb 100644
--- a/arch/sh/include/asm/mutex-llsc.h
+++ b/arch/sh/include/asm/mutex-llsc.h
@@ -21,38 +21,36 @@
21static inline void 21static inline void
22__mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *)) 22__mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *))
23{ 23{
24 int __ex_flag, __res; 24 int __done, __res;
25 25
26 __asm__ __volatile__ ( 26 __asm__ __volatile__ (
27 "movli.l @%2, %0 \n" 27 "movli.l @%2, %0 \n"
28 "add #-1, %0 \n" 28 "add #-1, %0 \n"
29 "movco.l %0, @%2 \n" 29 "movco.l %0, @%2 \n"
30 "movt %1 \n" 30 "movt %1 \n"
31 : "=&z" (__res), "=&r" (__ex_flag) 31 : "=&z" (__res), "=&r" (__done)
32 : "r" (&(count)->counter) 32 : "r" (&(count)->counter)
33 : "t"); 33 : "t");
34 34
35 __res |= !__ex_flag; 35 if (unlikely(!__done || __res != 0))
36 if (unlikely(__res != 0))
37 fail_fn(count); 36 fail_fn(count);
38} 37}
39 38
40static inline int 39static inline int
41__mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *)) 40__mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *))
42{ 41{
43 int __ex_flag, __res; 42 int __done, __res;
44 43
45 __asm__ __volatile__ ( 44 __asm__ __volatile__ (
46 "movli.l @%2, %0 \n" 45 "movli.l @%2, %0 \n"
47 "add #-1, %0 \n" 46 "add #-1, %0 \n"
48 "movco.l %0, @%2 \n" 47 "movco.l %0, @%2 \n"
49 "movt %1 \n" 48 "movt %1 \n"
50 : "=&z" (__res), "=&r" (__ex_flag) 49 : "=&z" (__res), "=&r" (__done)
51 : "r" (&(count)->counter) 50 : "r" (&(count)->counter)
52 : "t"); 51 : "t");
53 52
54 __res |= !__ex_flag; 53 if (unlikely(!__done || __res != 0))
55 if (unlikely(__res != 0))
56 __res = fail_fn(count); 54 __res = fail_fn(count);
57 55
58 return __res; 56 return __res;
@@ -61,19 +59,18 @@ __mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *))
61static inline void 59static inline void
62__mutex_fastpath_unlock(atomic_t *count, void (*fail_fn)(atomic_t *)) 60__mutex_fastpath_unlock(atomic_t *count, void (*fail_fn)(atomic_t *))
63{ 61{
64 int __ex_flag, __res; 62 int __done, __res;
65 63
66 __asm__ __volatile__ ( 64 __asm__ __volatile__ (
67 "movli.l @%2, %0 \n\t" 65 "movli.l @%2, %0 \n\t"
68 "add #1, %0 \n\t" 66 "add #1, %0 \n\t"
69 "movco.l %0, @%2 \n\t" 67 "movco.l %0, @%2 \n\t"
70 "movt %1 \n\t" 68 "movt %1 \n\t"
71 : "=&z" (__res), "=&r" (__ex_flag) 69 : "=&z" (__res), "=&r" (__done)
72 : "r" (&(count)->counter) 70 : "r" (&(count)->counter)
73 : "t"); 71 : "t");
74 72
75 __res |= !__ex_flag; 73 if (unlikely(!__done || __res <= 0))
76 if (unlikely(__res <= 0))
77 fail_fn(count); 74 fail_fn(count);
78} 75}
79 76
diff --git a/arch/sh/include/asm/posix_types_32.h b/arch/sh/include/asm/posix_types_32.h
index 0a3d2f54ab27..2172732c55c8 100644
--- a/arch/sh/include/asm/posix_types_32.h
+++ b/arch/sh/include/asm/posix_types_32.h
@@ -39,14 +39,10 @@ typedef long long __kernel_loff_t;
39#endif 39#endif
40 40
41typedef struct { 41typedef struct {
42#if defined(__KERNEL__) || defined(__USE_ALL)
43 int val[2]; 42 int val[2];
44#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
45 int __val[2];
46#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
47} __kernel_fsid_t; 43} __kernel_fsid_t;
48 44
49#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) 45#if defined(__KERNEL__)
50 46
51#undef __FD_SET 47#undef __FD_SET
52static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp) 48static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
@@ -117,6 +113,6 @@ static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
117 } 113 }
118} 114}
119 115
120#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */ 116#endif /* defined(__KERNEL__) */
121 117
122#endif /* __ASM_SH_POSIX_TYPES_H */ 118#endif /* __ASM_SH_POSIX_TYPES_H */
diff --git a/arch/sh/include/asm/posix_types_64.h b/arch/sh/include/asm/posix_types_64.h
index 0620317a6f0f..f83e9bd463d8 100644
--- a/arch/sh/include/asm/posix_types_64.h
+++ b/arch/sh/include/asm/posix_types_64.h
@@ -48,14 +48,10 @@ typedef long long __kernel_loff_t;
48#endif 48#endif
49 49
50typedef struct { 50typedef struct {
51#if defined(__KERNEL__) || defined(__USE_ALL)
52 int val[2]; 51 int val[2];
53#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
54 int __val[2];
55#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
56} __kernel_fsid_t; 52} __kernel_fsid_t;
57 53
58#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) 54#if defined(__KERNEL__)
59 55
60#undef __FD_SET 56#undef __FD_SET
61static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp) 57static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
@@ -126,6 +122,6 @@ static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
126 } 122 }
127} 123}
128 124
129#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */ 125#endif /* defined(__KERNEL__) */
130 126
131#endif /* __ASM_SH64_POSIX_TYPES_H */ 127#endif /* __ASM_SH64_POSIX_TYPES_H */
diff --git a/arch/sh/include/asm/syscall_32.h b/arch/sh/include/asm/syscall_32.h
index 05a868a71ef5..5bc34681d994 100644
--- a/arch/sh/include/asm/syscall_32.h
+++ b/arch/sh/include/asm/syscall_32.h
@@ -21,23 +21,10 @@ static inline void syscall_rollback(struct task_struct *task,
21 */ 21 */
22} 22}
23 23
24static inline bool syscall_has_error(struct pt_regs *regs)
25{
26 return (regs->sr & 0x1) ? true : false;
27}
28static inline void syscall_set_error(struct pt_regs *regs)
29{
30 regs->sr |= 0x1;
31}
32static inline void syscall_clear_error(struct pt_regs *regs)
33{
34 regs->sr &= ~0x1;
35}
36
37static inline long syscall_get_error(struct task_struct *task, 24static inline long syscall_get_error(struct task_struct *task,
38 struct pt_regs *regs) 25 struct pt_regs *regs)
39{ 26{
40 return syscall_has_error(regs) ? regs->regs[0] : 0; 27 return IS_ERR_VALUE(regs->regs[0]) ? regs->regs[0] : 0;
41} 28}
42 29
43static inline long syscall_get_return_value(struct task_struct *task, 30static inline long syscall_get_return_value(struct task_struct *task,
@@ -50,13 +37,10 @@ static inline void syscall_set_return_value(struct task_struct *task,
50 struct pt_regs *regs, 37 struct pt_regs *regs,
51 int error, long val) 38 int error, long val)
52{ 39{
53 if (error) { 40 if (error)
54 syscall_set_error(regs);
55 regs->regs[0] = -error; 41 regs->regs[0] = -error;
56 } else { 42 else
57 syscall_clear_error(regs);
58 regs->regs[0] = val; 43 regs->regs[0] = val;
59 }
60} 44}
61 45
62static inline void syscall_get_arguments(struct task_struct *task, 46static inline void syscall_get_arguments(struct task_struct *task,
diff --git a/arch/sh/include/asm/syscall_64.h b/arch/sh/include/asm/syscall_64.h
index e1143b9784d6..c3561ca72bee 100644
--- a/arch/sh/include/asm/syscall_64.h
+++ b/arch/sh/include/asm/syscall_64.h
@@ -21,23 +21,10 @@ static inline void syscall_rollback(struct task_struct *task,
21 */ 21 */
22} 22}
23 23
24static inline bool syscall_has_error(struct pt_regs *regs)
25{
26 return (regs->sr & 0x1) ? true : false;
27}
28static inline void syscall_set_error(struct pt_regs *regs)
29{
30 regs->sr |= 0x1;
31}
32static inline void syscall_clear_error(struct pt_regs *regs)
33{
34 regs->sr &= ~0x1;
35}
36
37static inline long syscall_get_error(struct task_struct *task, 24static inline long syscall_get_error(struct task_struct *task,
38 struct pt_regs *regs) 25 struct pt_regs *regs)
39{ 26{
40 return syscall_has_error(regs) ? regs->regs[9] : 0; 27 return IS_ERR_VALUE(regs->regs[9]) ? regs->regs[9] : 0;
41} 28}
42 29
43static inline long syscall_get_return_value(struct task_struct *task, 30static inline long syscall_get_return_value(struct task_struct *task,
@@ -50,13 +37,10 @@ static inline void syscall_set_return_value(struct task_struct *task,
50 struct pt_regs *regs, 37 struct pt_regs *regs,
51 int error, long val) 38 int error, long val)
52{ 39{
53 if (error) { 40 if (error)
54 syscall_set_error(regs);
55 regs->regs[9] = -error; 41 regs->regs[9] = -error;
56 } else { 42 else
57 syscall_clear_error(regs);
58 regs->regs[9] = val; 43 regs->regs[9] = val;
59 }
60} 44}
61 45
62static inline void syscall_get_arguments(struct task_struct *task, 46static inline void syscall_get_arguments(struct task_struct *task,
diff --git a/arch/sh/include/asm/syscalls_32.h b/arch/sh/include/asm/syscalls_32.h
index 104c5e686106..8b30200305c3 100644
--- a/arch/sh/include/asm/syscalls_32.h
+++ b/arch/sh/include/asm/syscalls_32.h
@@ -36,9 +36,9 @@ asmlinkage int sys_sigreturn(unsigned long r4, unsigned long r5,
36asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5, 36asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5,
37 unsigned long r6, unsigned long r7, 37 unsigned long r6, unsigned long r7,
38 struct pt_regs __regs); 38 struct pt_regs __regs);
39asmlinkage int sys_pipe(unsigned long r4, unsigned long r5, 39asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5,
40 unsigned long r6, unsigned long r7, 40 unsigned long r6, unsigned long r7,
41 struct pt_regs __regs); 41 struct pt_regs __regs);
42asmlinkage ssize_t sys_pread_wrapper(unsigned int fd, char __user *buf, 42asmlinkage ssize_t sys_pread_wrapper(unsigned int fd, char __user *buf,
43 size_t count, long dummy, loff_t pos); 43 size_t count, long dummy, loff_t pos);
44asmlinkage ssize_t sys_pwrite_wrapper(unsigned int fd, const char __user *buf, 44asmlinkage ssize_t sys_pwrite_wrapper(unsigned int fd, const char __user *buf,
diff --git a/arch/sh/kernel/cpu/sh2a/clock-sh7201.c b/arch/sh/kernel/cpu/sh2a/clock-sh7201.c
index 020a96fe961a..4a5e59732334 100644
--- a/arch/sh/kernel/cpu/sh2a/clock-sh7201.c
+++ b/arch/sh/kernel/cpu/sh2a/clock-sh7201.c
@@ -18,8 +18,8 @@
18#include <asm/freq.h> 18#include <asm/freq.h>
19#include <asm/io.h> 19#include <asm/io.h>
20 20
21const static int pll1rate[]={1,2,3,4,6,8}; 21static const int pll1rate[]={1,2,3,4,6,8};
22const static int pfc_divisors[]={1,2,3,4,6,8,12}; 22static const int pfc_divisors[]={1,2,3,4,6,8,12};
23#define ifc_divisors pfc_divisors 23#define ifc_divisors pfc_divisors
24 24
25#if (CONFIG_SH_CLK_MD == 0) 25#if (CONFIG_SH_CLK_MD == 0)
diff --git a/arch/sh/kernel/cpu/sh4/fpu.c b/arch/sh/kernel/cpu/sh4/fpu.c
index 2780917c0088..e3ea5411da6d 100644
--- a/arch/sh/kernel/cpu/sh4/fpu.c
+++ b/arch/sh/kernel/cpu/sh4/fpu.c
@@ -423,7 +423,7 @@ static int ieee_fpe_handler(struct pt_regs *regs)
423 int m; 423 int m;
424 unsigned int hx; 424 unsigned int hx;
425 425
426 m = (finsn >> 9) & 0x7; 426 m = (finsn >> 8) & 0x7;
427 hx = tsk->thread.fpu.hard.fp_regs[m]; 427 hx = tsk->thread.fpu.hard.fp_regs[m];
428 428
429 if ((tsk->thread.fpu.hard.fpscr & FPSCR_CAUSE_ERROR) 429 if ((tsk->thread.fpu.hard.fpscr & FPSCR_CAUSE_ERROR)
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
index 0623e377f488..4ff4dc64520c 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
@@ -112,6 +112,34 @@ static struct platform_device veu_device = {
112 .num_resources = ARRAY_SIZE(veu_resources), 112 .num_resources = ARRAY_SIZE(veu_resources),
113}; 113};
114 114
115static struct uio_info jpu_platform_data = {
116 .name = "JPU",
117 .version = "0",
118 .irq = 27,
119};
120
121static struct resource jpu_resources[] = {
122 [0] = {
123 .name = "JPU",
124 .start = 0xfea00000,
125 .end = 0xfea102d3,
126 .flags = IORESOURCE_MEM,
127 },
128 [1] = {
129 /* place holder for contiguous memory */
130 },
131};
132
133static struct platform_device jpu_device = {
134 .name = "uio_pdrv_genirq",
135 .id = 2,
136 .dev = {
137 .platform_data = &jpu_platform_data,
138 },
139 .resource = jpu_resources,
140 .num_resources = ARRAY_SIZE(jpu_resources),
141};
142
115static struct plat_sci_port sci_platform_data[] = { 143static struct plat_sci_port sci_platform_data[] = {
116 { 144 {
117 .mapbase = 0xffe00000, 145 .mapbase = 0xffe00000,
@@ -152,6 +180,7 @@ static struct platform_device *sh7343_devices[] __initdata = {
152 &sci_device, 180 &sci_device,
153 &vpu_device, 181 &vpu_device,
154 &veu_device, 182 &veu_device,
183 &jpu_device,
155}; 184};
156 185
157static int __init sh7343_devices_setup(void) 186static int __init sh7343_devices_setup(void)
@@ -160,9 +189,11 @@ static int __init sh7343_devices_setup(void)
160 clk_always_enable("xymem0"); /* XYMEM */ 189 clk_always_enable("xymem0"); /* XYMEM */
161 clk_always_enable("veu0"); /* VEU */ 190 clk_always_enable("veu0"); /* VEU */
162 clk_always_enable("vpu0"); /* VPU */ 191 clk_always_enable("vpu0"); /* VPU */
192 clk_always_enable("jpu0"); /* JPU */
163 193
164 platform_resource_setup_memory(&vpu_device, "vpu", 1 << 20); 194 platform_resource_setup_memory(&vpu_device, "vpu", 1 << 20);
165 platform_resource_setup_memory(&veu_device, "veu", 2 << 20); 195 platform_resource_setup_memory(&veu_device, "veu", 2 << 20);
196 platform_resource_setup_memory(&jpu_device, "jpu", 2 << 20);
166 197
167 return platform_add_devices(sh7343_devices, 198 return platform_add_devices(sh7343_devices,
168 ARRAY_SIZE(sh7343_devices)); 199 ARRAY_SIZE(sh7343_devices));
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
index 50cf6838ec41..5146afc156e0 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
@@ -158,7 +158,7 @@ static struct resource jpu_resources[] = {
158 [0] = { 158 [0] = {
159 .name = "JPU", 159 .name = "JPU",
160 .start = 0xfea00000, 160 .start = 0xfea00000,
161 .end = 0xfea102d0, 161 .end = 0xfea102d3,
162 .flags = IORESOURCE_MEM, 162 .flags = IORESOURCE_MEM,
163 }, 163 },
164 [1] = { 164 [1] = {
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c
index a7e5f2e74bac..c90c7e5e5fee 100644
--- a/arch/sh/kernel/process_64.c
+++ b/arch/sh/kernel/process_64.c
@@ -520,7 +520,6 @@ asmlinkage int sys_execve(char *ufilename, char **uargv,
520 int error; 520 int error;
521 char *filename; 521 char *filename;
522 522
523 lock_kernel();
524 filename = getname((char __user *)ufilename); 523 filename = getname((char __user *)ufilename);
525 error = PTR_ERR(filename); 524 error = PTR_ERR(filename);
526 if (IS_ERR(filename)) 525 if (IS_ERR(filename))
@@ -537,7 +536,6 @@ asmlinkage int sys_execve(char *ufilename, char **uargv,
537 } 536 }
538 putname(filename); 537 putname(filename);
539out: 538out:
540 unlock_kernel();
541 return error; 539 return error;
542} 540}
543 541
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index 534247508572..370d2cfa34eb 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -262,11 +262,11 @@ void __init setup_bootmem_allocator(unsigned long free_pfn)
262 BOOTMEM_DEFAULT); 262 BOOTMEM_DEFAULT);
263 263
264 /* 264 /*
265 * reserve physical page 0 - it's a special BIOS page on many boxes, 265 * Reserve physical pages below CONFIG_ZERO_PAGE_OFFSET.
266 * enabling clean reboots, SMP operation, laptop functions.
267 */ 266 */
268 reserve_bootmem(__MEMORY_START, CONFIG_ZERO_PAGE_OFFSET, 267 if (CONFIG_ZERO_PAGE_OFFSET != 0)
269 BOOTMEM_DEFAULT); 268 reserve_bootmem(__MEMORY_START, CONFIG_ZERO_PAGE_OFFSET,
269 BOOTMEM_DEFAULT);
270 270
271 sparse_memory_present_with_active_regions(0); 271 sparse_memory_present_with_active_regions(0);
272 272
diff --git a/arch/sh/kernel/signal_32.c b/arch/sh/kernel/signal_32.c
index 77c21bde376a..17784e19ae34 100644
--- a/arch/sh/kernel/signal_32.c
+++ b/arch/sh/kernel/signal_32.c
@@ -510,7 +510,6 @@ handle_syscall_restart(unsigned long save_r0, struct pt_regs *regs,
510 case -ERESTARTNOHAND: 510 case -ERESTARTNOHAND:
511 no_system_call_restart: 511 no_system_call_restart:
512 regs->regs[0] = -EINTR; 512 regs->regs[0] = -EINTR;
513 regs->sr |= 1;
514 break; 513 break;
515 514
516 case -ERESTARTSYS: 515 case -ERESTARTSYS:
@@ -589,8 +588,7 @@ static void do_signal(struct pt_regs *regs, unsigned int save_r0)
589 588
590 signr = get_signal_to_deliver(&info, &ka, regs, NULL); 589 signr = get_signal_to_deliver(&info, &ka, regs, NULL);
591 if (signr > 0) { 590 if (signr > 0) {
592 if (regs->sr & 1) 591 handle_syscall_restart(save_r0, regs, &ka.sa);
593 handle_syscall_restart(save_r0, regs, &ka.sa);
594 592
595 /* Whee! Actually deliver the signal. */ 593 /* Whee! Actually deliver the signal. */
596 if (handle_signal(signr, &ka, &info, oldset, 594 if (handle_signal(signr, &ka, &info, oldset,
diff --git a/arch/sh/kernel/signal_64.c b/arch/sh/kernel/signal_64.c
index b22fdfaaa191..0663a0ee6021 100644
--- a/arch/sh/kernel/signal_64.c
+++ b/arch/sh/kernel/signal_64.c
@@ -60,7 +60,6 @@ handle_syscall_restart(struct pt_regs *regs, struct sigaction *sa)
60 case -ERESTARTNOHAND: 60 case -ERESTARTNOHAND:
61 no_system_call_restart: 61 no_system_call_restart:
62 regs->regs[REG_RET] = -EINTR; 62 regs->regs[REG_RET] = -EINTR;
63 regs->sr |= 1;
64 break; 63 break;
65 64
66 case -ERESTARTSYS: 65 case -ERESTARTSYS:
@@ -109,8 +108,7 @@ static int do_signal(struct pt_regs *regs, sigset_t *oldset)
109 108
110 signr = get_signal_to_deliver(&info, &ka, regs, 0); 109 signr = get_signal_to_deliver(&info, &ka, regs, 0);
111 if (signr > 0) { 110 if (signr > 0) {
112 if (regs->sr & 1) 111 handle_syscall_restart(regs, &ka.sa);
113 handle_syscall_restart(regs, &ka.sa);
114 112
115 /* Whee! Actually deliver the signal. */ 113 /* Whee! Actually deliver the signal. */
116 if (handle_signal(signr, &info, &ka, oldset, regs) == 0) { 114 if (handle_signal(signr, &info, &ka, oldset, regs) == 0) {
diff --git a/arch/sh/kernel/sys_sh32.c b/arch/sh/kernel/sys_sh32.c
index dbba1e1833d4..63ba12836eae 100644
--- a/arch/sh/kernel/sys_sh32.c
+++ b/arch/sh/kernel/sys_sh32.c
@@ -22,7 +22,7 @@
22 * sys_pipe() is the normal C calling standard for creating 22 * sys_pipe() is the normal C calling standard for creating
23 * a pipe. It's not the way Unix traditionally does this, though. 23 * a pipe. It's not the way Unix traditionally does this, though.
24 */ 24 */
25asmlinkage int sys_pipe(unsigned long r4, unsigned long r5, 25asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5,
26 unsigned long r6, unsigned long r7, 26 unsigned long r6, unsigned long r7,
27 struct pt_regs __regs) 27 struct pt_regs __regs)
28{ 28{
diff --git a/arch/sh/kernel/syscalls_32.S b/arch/sh/kernel/syscalls_32.S
index 0af693e65764..e67c1733e1b9 100644
--- a/arch/sh/kernel/syscalls_32.S
+++ b/arch/sh/kernel/syscalls_32.S
@@ -58,7 +58,7 @@ ENTRY(sys_call_table)
58 .long sys_mkdir 58 .long sys_mkdir
59 .long sys_rmdir /* 40 */ 59 .long sys_rmdir /* 40 */
60 .long sys_dup 60 .long sys_dup
61 .long sys_pipe 61 .long sys_sh_pipe
62 .long sys_times 62 .long sys_times
63 .long sys_ni_syscall /* old prof syscall holder */ 63 .long sys_ni_syscall /* old prof syscall holder */
64 .long sys_brk /* 45 */ 64 .long sys_brk /* 45 */
@@ -105,7 +105,7 @@ ENTRY(sys_call_table)
105 .long sys_uselib 105 .long sys_uselib
106 .long sys_swapon 106 .long sys_swapon
107 .long sys_reboot 107 .long sys_reboot
108 .long old_readdir 108 .long sys_old_readdir
109 .long old_mmap /* 90 */ 109 .long old_mmap /* 90 */
110 .long sys_munmap 110 .long sys_munmap
111 .long sys_truncate 111 .long sys_truncate
diff --git a/arch/sh/kernel/syscalls_64.S b/arch/sh/kernel/syscalls_64.S
index 0b436aa3cad7..557cb91f5caf 100644
--- a/arch/sh/kernel/syscalls_64.S
+++ b/arch/sh/kernel/syscalls_64.S
@@ -109,7 +109,7 @@ sys_call_table:
109 .long sys_uselib 109 .long sys_uselib
110 .long sys_swapon 110 .long sys_swapon
111 .long sys_reboot 111 .long sys_reboot
112 .long old_readdir 112 .long sys_old_readdir
113 .long old_mmap /* 90 */ 113 .long old_mmap /* 90 */
114 .long sys_munmap 114 .long sys_munmap
115 .long sys_truncate 115 .long sys_truncate
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c
index c0aa3d83ec0e..60dcf87ed019 100644
--- a/arch/sh/kernel/traps_32.c
+++ b/arch/sh/kernel/traps_32.c
@@ -125,20 +125,18 @@ static inline void die_if_kernel(const char *str, struct pt_regs *regs,
125 * - userspace errors just cause EFAULT to be returned, resulting in SEGV 125 * - userspace errors just cause EFAULT to be returned, resulting in SEGV
126 * - kernel/userspace interfaces cause a jump to an appropriate handler 126 * - kernel/userspace interfaces cause a jump to an appropriate handler
127 * - other kernel errors are bad 127 * - other kernel errors are bad
128 * - return 0 if fixed-up, -EFAULT if non-fatal (to the kernel) fault
129 */ 128 */
130static int die_if_no_fixup(const char * str, struct pt_regs * regs, long err) 129static void die_if_no_fixup(const char * str, struct pt_regs * regs, long err)
131{ 130{
132 if (!user_mode(regs)) { 131 if (!user_mode(regs)) {
133 const struct exception_table_entry *fixup; 132 const struct exception_table_entry *fixup;
134 fixup = search_exception_tables(regs->pc); 133 fixup = search_exception_tables(regs->pc);
135 if (fixup) { 134 if (fixup) {
136 regs->pc = fixup->fixup; 135 regs->pc = fixup->fixup;
137 return 0; 136 return;
138 } 137 }
139 die(str, regs, err); 138 die(str, regs, err);
140 } 139 }
141 return -EFAULT;
142} 140}
143 141
144static inline void sign_extend(unsigned int count, unsigned char *dst) 142static inline void sign_extend(unsigned int count, unsigned char *dst)
@@ -314,7 +312,8 @@ static int handle_unaligned_ins(opcode_t instruction, struct pt_regs *regs,
314 /* Argh. Address not only misaligned but also non-existent. 312 /* Argh. Address not only misaligned but also non-existent.
315 * Raise an EFAULT and see if it's trapped 313 * Raise an EFAULT and see if it's trapped
316 */ 314 */
317 return die_if_no_fixup("Fault in unaligned fixup", regs, 0); 315 die_if_no_fixup("Fault in unaligned fixup", regs, 0);
316 return -EFAULT;
318} 317}
319 318
320/* 319/*
diff --git a/arch/sh/lib/checksum.S b/arch/sh/lib/checksum.S
index cbdd0d40e545..356c8ec92893 100644
--- a/arch/sh/lib/checksum.S
+++ b/arch/sh/lib/checksum.S
@@ -36,8 +36,7 @@
36 */ 36 */
37 37
38/* 38/*
39 * unsigned int csum_partial(const unsigned char *buf, int len, 39 * asmlinkage __wsum csum_partial(const void *buf, int len, __wsum sum);
40 * unsigned int sum);
41 */ 40 */
42 41
43.text 42.text
@@ -49,11 +48,31 @@ ENTRY(csum_partial)
49 * Fortunately, it is easy to convert 2-byte alignment to 4-byte 48 * Fortunately, it is easy to convert 2-byte alignment to 4-byte
50 * alignment for the unrolled loop. 49 * alignment for the unrolled loop.
51 */ 50 */
52 mov r5, r1
53 mov r4, r0 51 mov r4, r0
54 tst #2, r0 ! Check alignment. 52 tst #3, r0 ! Check alignment.
55 bt 2f ! Jump if alignment is ok. 53 bt/s 2f ! Jump if alignment is ok.
54 mov r4, r7 ! Keep a copy to check for alignment
56 ! 55 !
56 tst #1, r0 ! Check alignment.
57 bt 21f ! Jump if alignment is boundary of 2bytes.
58
59 ! buf is odd
60 tst r5, r5
61 add #-1, r5
62 bt 9f
63 mov.b @r4+, r0
64 extu.b r0, r0
65 addc r0, r6 ! t=0 from previous tst
66 mov r6, r0
67 shll8 r6
68 shlr16 r0
69 shlr8 r0
70 or r0, r6
71 mov r4, r0
72 tst #2, r0
73 bt 2f
7421:
75 ! buf is 2 byte aligned (len could be 0)
57 add #-2, r5 ! Alignment uses up two bytes. 76 add #-2, r5 ! Alignment uses up two bytes.
58 cmp/pz r5 ! 77 cmp/pz r5 !
59 bt/s 1f ! Jump if we had at least two bytes. 78 bt/s 1f ! Jump if we had at least two bytes.
@@ -61,16 +80,17 @@ ENTRY(csum_partial)
61 bra 6f 80 bra 6f
62 add #2, r5 ! r5 was < 2. Deal with it. 81 add #2, r5 ! r5 was < 2. Deal with it.
631: 821:
64 mov r5, r1 ! Save new len for later use.
65 mov.w @r4+, r0 83 mov.w @r4+, r0
66 extu.w r0, r0 84 extu.w r0, r0
67 addc r0, r6 85 addc r0, r6
68 bf 2f 86 bf 2f
69 add #1, r6 87 add #1, r6
702: 882:
89 ! buf is 4 byte aligned (len could be 0)
90 mov r5, r1
71 mov #-5, r0 91 mov #-5, r0
72 shld r0, r5 92 shld r0, r1
73 tst r5, r5 93 tst r1, r1
74 bt/s 4f ! if it's =0, go to 4f 94 bt/s 4f ! if it's =0, go to 4f
75 clrt 95 clrt
76 .align 2 96 .align 2
@@ -92,30 +112,31 @@ ENTRY(csum_partial)
92 addc r0, r6 112 addc r0, r6
93 addc r2, r6 113 addc r2, r6
94 movt r0 114 movt r0
95 dt r5 115 dt r1
96 bf/s 3b 116 bf/s 3b
97 cmp/eq #1, r0 117 cmp/eq #1, r0
98 ! here, we know r5==0 118 ! here, we know r1==0
99 addc r5, r6 ! add carry to r6 119 addc r1, r6 ! add carry to r6
1004: 1204:
101 mov r1, r0 121 mov r5, r0
102 and #0x1c, r0 122 and #0x1c, r0
103 tst r0, r0 123 tst r0, r0
104 bt/s 6f 124 bt 6f
105 mov r0, r5 125 ! 4 bytes or more remaining
106 shlr2 r5 126 mov r0, r1
127 shlr2 r1
107 mov #0, r2 128 mov #0, r2
1085: 1295:
109 addc r2, r6 130 addc r2, r6
110 mov.l @r4+, r2 131 mov.l @r4+, r2
111 movt r0 132 movt r0
112 dt r5 133 dt r1
113 bf/s 5b 134 bf/s 5b
114 cmp/eq #1, r0 135 cmp/eq #1, r0
115 addc r2, r6 136 addc r2, r6
116 addc r5, r6 ! r5==0 here, so it means add carry-bit 137 addc r1, r6 ! r1==0 here, so it means add carry-bit
1176: 1386:
118 mov r1, r5 139 ! 3 bytes or less remaining
119 mov #3, r0 140 mov #3, r0
120 and r0, r5 141 and r0, r5
121 tst r5, r5 142 tst r5, r5
@@ -139,8 +160,18 @@ ENTRY(csum_partial)
1398: 1608:
140 addc r0, r6 161 addc r0, r6
141 mov #0, r0 162 mov #0, r0
142 addc r0, r6 163 addc r0, r6
1439: 1649:
165 ! Check if the buffer was misaligned, if so realign sum
166 mov r7, r0
167 tst #1, r0
168 bt 10f
169 mov r6, r0
170 shll8 r6
171 shlr16 r0
172 shlr8 r0
173 or r0, r6
17410:
144 rts 175 rts
145 mov r6, r0 176 mov r6, r0
146 177
diff --git a/arch/sh/mm/ioremap_64.c b/arch/sh/mm/ioremap_64.c
index 6e0be24d26e2..31e1bb5effbe 100644
--- a/arch/sh/mm/ioremap_64.c
+++ b/arch/sh/mm/ioremap_64.c
@@ -71,9 +71,9 @@ void *__ioremap(unsigned long phys_addr, unsigned long size,
71 * Ok, go for it.. 71 * Ok, go for it..
72 */ 72 */
73 area = get_vm_area(size, VM_IOREMAP); 73 area = get_vm_area(size, VM_IOREMAP);
74 pr_debug("Get vm_area returns %p addr %p\n",area,area->addr);
75 if (!area) 74 if (!area)
76 return NULL; 75 return NULL;
76 pr_debug("Get vm_area returns %p addr %p\n", area, area->addr);
77 area->phys_addr = phys_addr; 77 area->phys_addr = phys_addr;
78 addr = area->addr; 78 addr = area->addr;
79 if (ioremap_page_range((unsigned long)addr, (unsigned long)addr + size, 79 if (ioremap_page_range((unsigned long)addr, (unsigned long)addr + size,
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index de58c02633b4..c3ea215334f6 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -36,6 +36,7 @@ config SPARC64
36 select HAVE_KRETPROBES 36 select HAVE_KRETPROBES
37 select HAVE_KPROBES 37 select HAVE_KPROBES
38 select HAVE_LMB 38 select HAVE_LMB
39 select HAVE_SYSCALL_WRAPPERS
39 select USE_GENERIC_SMP_HELPERS if SMP 40 select USE_GENERIC_SMP_HELPERS if SMP
40 select RTC_DRV_CMOS 41 select RTC_DRV_CMOS
41 select RTC_DRV_BQ4802 42 select RTC_DRV_BQ4802
diff --git a/arch/sparc/configs/sparc32_defconfig b/arch/sparc/configs/sparc32_defconfig
index 2e3a149ea0e7..09ab46e4c59d 100644
--- a/arch/sparc/configs/sparc32_defconfig
+++ b/arch/sparc/configs/sparc32_defconfig
@@ -1,15 +1,21 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25 3# Linux kernel version: 2.6.28
4# Tue Apr 29 01:28:58 2008 4# Thu Jan 8 16:45:44 2009
5# 5#
6# CONFIG_64BIT is not set
7CONFIG_SPARC=y
8CONFIG_SPARC32=y
9# CONFIG_SPARC64 is not set
10CONFIG_ARCH_DEFCONFIG="arch/sparc/configs/sparc32_defconfig"
11CONFIG_BITS=32
12CONFIG_AUDIT_ARCH=y
6CONFIG_MMU=y 13CONFIG_MMU=y
7CONFIG_HIGHMEM=y 14CONFIG_HIGHMEM=y
8CONFIG_ZONE_DMA=y 15CONFIG_ZONE_DMA=y
9CONFIG_GENERIC_ISA_DMA=y 16CONFIG_GENERIC_ISA_DMA=y
10CONFIG_ARCH_NO_VIRT_TO_BUS=y 17CONFIG_ARCH_NO_VIRT_TO_BUS=y
11CONFIG_OF=y 18CONFIG_OF=y
12CONFIG_HZ=100
13CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
14 20
15# 21#
@@ -66,31 +72,30 @@ CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 72CONFIG_TIMERFD=y
67CONFIG_EVENTFD=y 73CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 74CONFIG_SHMEM=y
75CONFIG_AIO=y
69CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y
70CONFIG_SLAB=y 78CONFIG_SLAB=y
71# CONFIG_SLUB is not set 79# CONFIG_SLUB is not set
72# CONFIG_SLOB is not set 80# CONFIG_SLOB is not set
73# CONFIG_PROFILING is not set 81# CONFIG_PROFILING is not set
74# CONFIG_MARKERS is not set
75CONFIG_HAVE_OPROFILE=y 82CONFIG_HAVE_OPROFILE=y
76# CONFIG_HAVE_KPROBES is not set 83CONFIG_HAVE_ARCH_TRACEHOOK=y
77# CONFIG_HAVE_KRETPROBES is not set 84# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
78CONFIG_PROC_PAGE_MONITOR=y
79CONFIG_SLABINFO=y 85CONFIG_SLABINFO=y
80CONFIG_RT_MUTEXES=y 86CONFIG_RT_MUTEXES=y
81# CONFIG_TINY_SHMEM is not set
82CONFIG_BASE_SMALL=0 87CONFIG_BASE_SMALL=0
83CONFIG_MODULES=y 88CONFIG_MODULES=y
89# CONFIG_MODULE_FORCE_LOAD is not set
84CONFIG_MODULE_UNLOAD=y 90CONFIG_MODULE_UNLOAD=y
85# CONFIG_MODULE_FORCE_UNLOAD is not set 91# CONFIG_MODULE_FORCE_UNLOAD is not set
86# CONFIG_MODVERSIONS is not set 92# CONFIG_MODVERSIONS is not set
87# CONFIG_MODULE_SRCVERSION_ALL is not set 93# CONFIG_MODULE_SRCVERSION_ALL is not set
88CONFIG_KMOD=y
89CONFIG_BLOCK=y 94CONFIG_BLOCK=y
90# CONFIG_LBD is not set 95# CONFIG_LBD is not set
91# CONFIG_BLK_DEV_IO_TRACE is not set 96# CONFIG_BLK_DEV_IO_TRACE is not set
92# CONFIG_LSF is not set
93# CONFIG_BLK_DEV_BSG is not set 97# CONFIG_BLK_DEV_BSG is not set
98# CONFIG_BLK_DEV_INTEGRITY is not set
94 99
95# 100#
96# IO Schedulers 101# IO Schedulers
@@ -105,59 +110,73 @@ CONFIG_DEFAULT_CFQ=y
105# CONFIG_DEFAULT_NOOP is not set 110# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="cfq" 111CONFIG_DEFAULT_IOSCHED="cfq"
107CONFIG_CLASSIC_RCU=y 112CONFIG_CLASSIC_RCU=y
113# CONFIG_TREE_RCU is not set
114# CONFIG_PREEMPT_RCU is not set
115# CONFIG_TREE_RCU_TRACE is not set
116# CONFIG_PREEMPT_RCU_TRACE is not set
117# CONFIG_FREEZER is not set
108 118
109# 119#
110# General machine setup 120# Processor type and features
111# 121#
112# CONFIG_SMP is not set 122# CONFIG_SMP is not set
113CONFIG_SPARC=y 123# CONFIG_HZ_100 is not set
114CONFIG_SPARC32=y 124CONFIG_HZ_250=y
115CONFIG_SBUS=y 125# CONFIG_HZ_300 is not set
116CONFIG_SBUSCHAR=y 126# CONFIG_HZ_1000 is not set
117CONFIG_SERIAL_CONSOLE=y 127CONFIG_HZ=250
118CONFIG_SUN_AUXIO=y 128# CONFIG_SCHED_HRTICK is not set
119CONFIG_SUN_IO=y
120CONFIG_RWSEM_GENERIC_SPINLOCK=y 129CONFIG_RWSEM_GENERIC_SPINLOCK=y
121CONFIG_GENERIC_FIND_NEXT_BIT=y 130CONFIG_GENERIC_FIND_NEXT_BIT=y
122CONFIG_GENERIC_HWEIGHT=y 131CONFIG_GENERIC_HWEIGHT=y
123CONFIG_GENERIC_CALIBRATE_DELAY=y 132CONFIG_GENERIC_CALIBRATE_DELAY=y
124CONFIG_ARCH_MAY_HAVE_PC_FDC=y 133CONFIG_ARCH_MAY_HAVE_PC_FDC=y
125# CONFIG_ARCH_HAS_ILOG2_U32 is not set
126# CONFIG_ARCH_HAS_ILOG2_U64 is not set
127CONFIG_EMULATED_CMPXCHG=y 134CONFIG_EMULATED_CMPXCHG=y
128CONFIG_SUN_PM=y
129# CONFIG_SUN4 is not set
130CONFIG_PCI=y
131CONFIG_PCI_SYSCALL=y
132# CONFIG_ARCH_SUPPORTS_MSI is not set
133CONFIG_PCI_LEGACY=y
134# CONFIG_PCI_DEBUG is not set
135# CONFIG_NO_DMA is not set
136CONFIG_SUN_OPENPROMFS=m
137# CONFIG_SPARC_LED is not set
138CONFIG_BINFMT_ELF=y
139CONFIG_BINFMT_MISC=m
140CONFIG_SELECT_MEMORY_MODEL=y 135CONFIG_SELECT_MEMORY_MODEL=y
141CONFIG_FLATMEM_MANUAL=y 136CONFIG_FLATMEM_MANUAL=y
142# CONFIG_DISCONTIGMEM_MANUAL is not set 137# CONFIG_DISCONTIGMEM_MANUAL is not set
143# CONFIG_SPARSEMEM_MANUAL is not set 138# CONFIG_SPARSEMEM_MANUAL is not set
144CONFIG_FLATMEM=y 139CONFIG_FLATMEM=y
145CONFIG_FLAT_NODE_MEM_MAP=y 140CONFIG_FLAT_NODE_MEM_MAP=y
146# CONFIG_SPARSEMEM_STATIC is not set 141CONFIG_PAGEFLAGS_EXTENDED=y
147# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
148CONFIG_SPLIT_PTLOCK_CPUS=4 142CONFIG_SPLIT_PTLOCK_CPUS=4
149# CONFIG_RESOURCES_64BIT is not set 143# CONFIG_PHYS_ADDR_T_64BIT is not set
150CONFIG_ZONE_DMA_FLAG=1 144CONFIG_ZONE_DMA_FLAG=1
151CONFIG_BOUNCE=y 145CONFIG_BOUNCE=y
146CONFIG_UNEVICTABLE_LRU=y
147CONFIG_SUN_PM=y
148# CONFIG_SPARC_LED is not set
149CONFIG_SERIAL_CONSOLE=y
152 150
153# 151#
154# Networking 152# Bus options (PCI etc.)
155# 153#
154CONFIG_SBUS=y
155CONFIG_SBUSCHAR=y
156CONFIG_PCI=y
157CONFIG_PCI_SYSCALL=y
158# CONFIG_ARCH_SUPPORTS_MSI is not set
159CONFIG_PCI_LEGACY=y
160# CONFIG_PCI_DEBUG is not set
161# CONFIG_PCI_STUB is not set
162# CONFIG_PCCARD is not set
163CONFIG_SUN_OPENPROMFS=m
164CONFIG_SPARC32_PCI=y
165
166#
167# Executable file formats
168#
169CONFIG_BINFMT_ELF=y
170# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
171# CONFIG_HAVE_AOUT is not set
172CONFIG_BINFMT_MISC=m
156CONFIG_NET=y 173CONFIG_NET=y
157 174
158# 175#
159# Networking options 176# Networking options
160# 177#
178# CONFIG_NET_NS is not set
179CONFIG_COMPAT_NET_DEV_OPS=y
161CONFIG_PACKET=y 180CONFIG_PACKET=y
162# CONFIG_PACKET_MMAP is not set 181# CONFIG_PACKET_MMAP is not set
163CONFIG_UNIX=y 182CONFIG_UNIX=y
@@ -166,6 +185,7 @@ CONFIG_XFRM_USER=m
166# CONFIG_XFRM_SUB_POLICY is not set 185# CONFIG_XFRM_SUB_POLICY is not set
167# CONFIG_XFRM_MIGRATE is not set 186# CONFIG_XFRM_MIGRATE is not set
168# CONFIG_XFRM_STATISTICS is not set 187# CONFIG_XFRM_STATISTICS is not set
188CONFIG_XFRM_IPCOMP=y
169CONFIG_NET_KEY=m 189CONFIG_NET_KEY=m
170# CONFIG_NET_KEY_MIGRATE is not set 190# CONFIG_NET_KEY_MIGRATE is not set
171CONFIG_INET=y 191CONFIG_INET=y
@@ -221,6 +241,7 @@ CONFIG_IPV6_TUNNEL=m
221# CONFIG_TIPC is not set 241# CONFIG_TIPC is not set
222# CONFIG_ATM is not set 242# CONFIG_ATM is not set
223# CONFIG_BRIDGE is not set 243# CONFIG_BRIDGE is not set
244# CONFIG_NET_DSA is not set
224# CONFIG_VLAN_8021Q is not set 245# CONFIG_VLAN_8021Q is not set
225# CONFIG_DECNET is not set 246# CONFIG_DECNET is not set
226# CONFIG_LLC2 is not set 247# CONFIG_LLC2 is not set
@@ -231,6 +252,7 @@ CONFIG_IPV6_TUNNEL=m
231# CONFIG_ECONET is not set 252# CONFIG_ECONET is not set
232# CONFIG_WAN_ROUTER is not set 253# CONFIG_WAN_ROUTER is not set
233# CONFIG_NET_SCHED is not set 254# CONFIG_NET_SCHED is not set
255# CONFIG_DCB is not set
234 256
235# 257#
236# Network testing 258# Network testing
@@ -241,14 +263,14 @@ CONFIG_NET_PKTGEN=m
241# CONFIG_IRDA is not set 263# CONFIG_IRDA is not set
242# CONFIG_BT is not set 264# CONFIG_BT is not set
243# CONFIG_AF_RXRPC is not set 265# CONFIG_AF_RXRPC is not set
244 266# CONFIG_PHONET is not set
245# 267CONFIG_WIRELESS=y
246# Wireless
247#
248# CONFIG_CFG80211 is not set 268# CONFIG_CFG80211 is not set
269CONFIG_WIRELESS_OLD_REGULATORY=y
249# CONFIG_WIRELESS_EXT is not set 270# CONFIG_WIRELESS_EXT is not set
271# CONFIG_LIB80211 is not set
250# CONFIG_MAC80211 is not set 272# CONFIG_MAC80211 is not set
251# CONFIG_IEEE80211 is not set 273# CONFIG_WIMAX is not set
252# CONFIG_RFKILL is not set 274# CONFIG_RFKILL is not set
253# CONFIG_NET_9P is not set 275# CONFIG_NET_9P is not set
254 276
@@ -262,7 +284,9 @@ CONFIG_NET_PKTGEN=m
262CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 284CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
263CONFIG_STANDALONE=y 285CONFIG_STANDALONE=y
264CONFIG_PREVENT_FIRMWARE_BUILD=y 286CONFIG_PREVENT_FIRMWARE_BUILD=y
265# CONFIG_FW_LOADER is not set 287CONFIG_FW_LOADER=y
288CONFIG_FIRMWARE_IN_KERNEL=y
289CONFIG_EXTRA_FIRMWARE=""
266# CONFIG_DEBUG_DRIVER is not set 290# CONFIG_DEBUG_DRIVER is not set
267# CONFIG_DEBUG_DEVRES is not set 291# CONFIG_DEBUG_DEVRES is not set
268# CONFIG_SYS_HYPERVISOR is not set 292# CONFIG_SYS_HYPERVISOR is not set
@@ -286,12 +310,15 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
286# CONFIG_BLK_DEV_XIP is not set 310# CONFIG_BLK_DEV_XIP is not set
287# CONFIG_CDROM_PKTCDVD is not set 311# CONFIG_CDROM_PKTCDVD is not set
288# CONFIG_ATA_OVER_ETH is not set 312# CONFIG_ATA_OVER_ETH is not set
313# CONFIG_BLK_DEV_HD is not set
289CONFIG_MISC_DEVICES=y 314CONFIG_MISC_DEVICES=y
290# CONFIG_PHANTOM is not set 315# CONFIG_PHANTOM is not set
291# CONFIG_EEPROM_93CX6 is not set 316# CONFIG_EEPROM_93CX6 is not set
292# CONFIG_SGI_IOC4 is not set 317# CONFIG_SGI_IOC4 is not set
293# CONFIG_TIFM_CORE is not set 318# CONFIG_TIFM_CORE is not set
294# CONFIG_ENCLOSURE_SERVICES is not set 319# CONFIG_ENCLOSURE_SERVICES is not set
320# CONFIG_HP_ILO is not set
321# CONFIG_C2PORT is not set
295CONFIG_HAVE_IDE=y 322CONFIG_HAVE_IDE=y
296# CONFIG_IDE is not set 323# CONFIG_IDE is not set
297 324
@@ -335,6 +362,7 @@ CONFIG_SCSI_SPI_ATTRS=y
335# CONFIG_SCSI_SRP_ATTRS is not set 362# CONFIG_SCSI_SRP_ATTRS is not set
336CONFIG_SCSI_LOWLEVEL=y 363CONFIG_SCSI_LOWLEVEL=y
337# CONFIG_ISCSI_TCP is not set 364# CONFIG_ISCSI_TCP is not set
365# CONFIG_SCSI_CXGB3_ISCSI is not set
338# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 366# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
339# CONFIG_SCSI_3W_9XXX is not set 367# CONFIG_SCSI_3W_9XXX is not set
340# CONFIG_SCSI_ACARD is not set 368# CONFIG_SCSI_ACARD is not set
@@ -348,6 +376,8 @@ CONFIG_SCSI_LOWLEVEL=y
348# CONFIG_MEGARAID_LEGACY is not set 376# CONFIG_MEGARAID_LEGACY is not set
349# CONFIG_MEGARAID_SAS is not set 377# CONFIG_MEGARAID_SAS is not set
350# CONFIG_SCSI_HPTIOP is not set 378# CONFIG_SCSI_HPTIOP is not set
379# CONFIG_LIBFC is not set
380# CONFIG_FCOE is not set
351# CONFIG_SCSI_DMX3191D is not set 381# CONFIG_SCSI_DMX3191D is not set
352# CONFIG_SCSI_FUTURE_DOMAIN is not set 382# CONFIG_SCSI_FUTURE_DOMAIN is not set
353# CONFIG_SCSI_IPS is not set 383# CONFIG_SCSI_IPS is not set
@@ -367,6 +397,7 @@ CONFIG_SCSI_QLOGICPTI=m
367# CONFIG_SCSI_DEBUG is not set 397# CONFIG_SCSI_DEBUG is not set
368CONFIG_SCSI_SUNESP=y 398CONFIG_SCSI_SUNESP=y
369# CONFIG_SCSI_SRP is not set 399# CONFIG_SCSI_SRP is not set
400# CONFIG_SCSI_DH is not set
370# CONFIG_ATA is not set 401# CONFIG_ATA is not set
371# CONFIG_MD is not set 402# CONFIG_MD is not set
372# CONFIG_FUSION is not set 403# CONFIG_FUSION is not set
@@ -374,11 +405,14 @@ CONFIG_SCSI_SUNESP=y
374# 405#
375# IEEE 1394 (FireWire) support 406# IEEE 1394 (FireWire) support
376# 407#
408
409#
410# Enable only one of the two stacks, unless you know what you are doing
411#
377# CONFIG_FIREWIRE is not set 412# CONFIG_FIREWIRE is not set
378# CONFIG_IEEE1394 is not set 413# CONFIG_IEEE1394 is not set
379# CONFIG_I2O is not set 414# CONFIG_I2O is not set
380CONFIG_NETDEVICES=y 415CONFIG_NETDEVICES=y
381# CONFIG_NETDEVICES_MULTIQUEUE is not set
382CONFIG_DUMMY=m 416CONFIG_DUMMY=m
383# CONFIG_BONDING is not set 417# CONFIG_BONDING is not set
384# CONFIG_MACVLAN is not set 418# CONFIG_MACVLAN is not set
@@ -402,14 +436,16 @@ CONFIG_SUNQE=m
402# CONFIG_IBM_NEW_EMAC_RGMII is not set 436# CONFIG_IBM_NEW_EMAC_RGMII is not set
403# CONFIG_IBM_NEW_EMAC_TAH is not set 437# CONFIG_IBM_NEW_EMAC_TAH is not set
404# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 438# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
439# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
440# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
441# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
405# CONFIG_NET_PCI is not set 442# CONFIG_NET_PCI is not set
406# CONFIG_B44 is not set 443# CONFIG_B44 is not set
444# CONFIG_ATL2 is not set
407CONFIG_NETDEV_1000=y 445CONFIG_NETDEV_1000=y
408# CONFIG_ACENIC is not set 446# CONFIG_ACENIC is not set
409# CONFIG_DL2K is not set 447# CONFIG_DL2K is not set
410# CONFIG_E1000 is not set 448# CONFIG_E1000 is not set
411# CONFIG_E1000E is not set
412# CONFIG_E1000E_ENABLED is not set
413# CONFIG_IP1000 is not set 449# CONFIG_IP1000 is not set
414# CONFIG_IGB is not set 450# CONFIG_IGB is not set
415# CONFIG_MYRI_SBUS is not set 451# CONFIG_MYRI_SBUS is not set
@@ -425,18 +461,25 @@ CONFIG_NETDEV_1000=y
425# CONFIG_BNX2 is not set 461# CONFIG_BNX2 is not set
426# CONFIG_QLA3XXX is not set 462# CONFIG_QLA3XXX is not set
427# CONFIG_ATL1 is not set 463# CONFIG_ATL1 is not set
464# CONFIG_ATL1E is not set
465# CONFIG_JME is not set
428CONFIG_NETDEV_10000=y 466CONFIG_NETDEV_10000=y
429# CONFIG_CHELSIO_T1 is not set 467# CONFIG_CHELSIO_T1 is not set
468CONFIG_CHELSIO_T3_DEPENDS=y
430# CONFIG_CHELSIO_T3 is not set 469# CONFIG_CHELSIO_T3 is not set
470# CONFIG_ENIC is not set
431# CONFIG_IXGBE is not set 471# CONFIG_IXGBE is not set
432# CONFIG_IXGB is not set 472# CONFIG_IXGB is not set
433# CONFIG_S2IO is not set 473# CONFIG_S2IO is not set
434# CONFIG_MYRI10GE is not set 474# CONFIG_MYRI10GE is not set
435# CONFIG_NETXEN_NIC is not set 475# CONFIG_NETXEN_NIC is not set
436# CONFIG_NIU is not set 476# CONFIG_NIU is not set
477# CONFIG_MLX4_EN is not set
437# CONFIG_MLX4_CORE is not set 478# CONFIG_MLX4_CORE is not set
438# CONFIG_TEHUTI is not set 479# CONFIG_TEHUTI is not set
439# CONFIG_BNX2X is not set 480# CONFIG_BNX2X is not set
481# CONFIG_QLGE is not set
482# CONFIG_SFC is not set
440# CONFIG_TR is not set 483# CONFIG_TR is not set
441 484
442# 485#
@@ -445,6 +488,10 @@ CONFIG_NETDEV_10000=y
445# CONFIG_WLAN_PRE80211 is not set 488# CONFIG_WLAN_PRE80211 is not set
446# CONFIG_WLAN_80211 is not set 489# CONFIG_WLAN_80211 is not set
447# CONFIG_IWLWIFI_LEDS is not set 490# CONFIG_IWLWIFI_LEDS is not set
491
492#
493# Enable WiMAX (Networking options) to see the WiMAX drivers
494#
448# CONFIG_WAN is not set 495# CONFIG_WAN is not set
449# CONFIG_FDDI is not set 496# CONFIG_FDDI is not set
450# CONFIG_HIPPI is not set 497# CONFIG_HIPPI is not set
@@ -492,9 +539,11 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
492CONFIG_MOUSE_PS2_SYNAPTICS=y 539CONFIG_MOUSE_PS2_SYNAPTICS=y
493CONFIG_MOUSE_PS2_LIFEBOOK=y 540CONFIG_MOUSE_PS2_LIFEBOOK=y
494CONFIG_MOUSE_PS2_TRACKPOINT=y 541CONFIG_MOUSE_PS2_TRACKPOINT=y
542# CONFIG_MOUSE_PS2_ELANTECH is not set
495# CONFIG_MOUSE_PS2_TOUCHKIT is not set 543# CONFIG_MOUSE_PS2_TOUCHKIT is not set
496CONFIG_MOUSE_SERIAL=m 544CONFIG_MOUSE_SERIAL=m
497# CONFIG_MOUSE_APPLETOUCH is not set 545# CONFIG_MOUSE_APPLETOUCH is not set
546# CONFIG_MOUSE_BCM5974 is not set
498# CONFIG_MOUSE_VSXXXAA is not set 547# CONFIG_MOUSE_VSXXXAA is not set
499# CONFIG_INPUT_JOYSTICK is not set 548# CONFIG_INPUT_JOYSTICK is not set
500# CONFIG_INPUT_TABLET is not set 549# CONFIG_INPUT_TABLET is not set
@@ -516,15 +565,18 @@ CONFIG_SERIO_LIBPS2=m
516# Character devices 565# Character devices
517# 566#
518CONFIG_VT=y 567CONFIG_VT=y
568CONFIG_CONSOLE_TRANSLATIONS=y
519CONFIG_VT_CONSOLE=y 569CONFIG_VT_CONSOLE=y
520CONFIG_HW_CONSOLE=y 570CONFIG_HW_CONSOLE=y
521# CONFIG_VT_HW_CONSOLE_BINDING is not set 571# CONFIG_VT_HW_CONSOLE_BINDING is not set
572CONFIG_DEVKMEM=y
522# CONFIG_SERIAL_NONSTANDARD is not set 573# CONFIG_SERIAL_NONSTANDARD is not set
523# CONFIG_NOZOMI is not set 574# CONFIG_NOZOMI is not set
524 575
525# 576#
526# Serial drivers 577# Serial drivers
527# 578#
579# CONFIG_SERIAL_8250 is not set
528 580
529# 581#
530# Non-8250 serial port support 582# Non-8250 serial port support
@@ -540,23 +592,20 @@ CONFIG_SERIAL_CORE_CONSOLE=y
540CONFIG_CONSOLE_POLL=y 592CONFIG_CONSOLE_POLL=y
541# CONFIG_SERIAL_JSM is not set 593# CONFIG_SERIAL_JSM is not set
542CONFIG_UNIX98_PTYS=y 594CONFIG_UNIX98_PTYS=y
595# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
543CONFIG_LEGACY_PTYS=y 596CONFIG_LEGACY_PTYS=y
544CONFIG_LEGACY_PTY_COUNT=256 597CONFIG_LEGACY_PTY_COUNT=256
545# CONFIG_IPMI_HANDLER is not set 598# CONFIG_IPMI_HANDLER is not set
546CONFIG_HW_RANDOM=m 599CONFIG_HW_RANDOM=m
547CONFIG_JS_RTC=m
548# CONFIG_R3964 is not set 600# CONFIG_R3964 is not set
549# CONFIG_APPLICOM is not set 601# CONFIG_APPLICOM is not set
550# CONFIG_RAW_DRIVER is not set 602# CONFIG_RAW_DRIVER is not set
551# CONFIG_TCG_TPM is not set 603# CONFIG_TCG_TPM is not set
552CONFIG_DEVPORT=y 604CONFIG_DEVPORT=y
553# CONFIG_I2C is not set 605# CONFIG_I2C is not set
554
555#
556# SPI support
557#
558# CONFIG_SPI is not set 606# CONFIG_SPI is not set
559# CONFIG_SPI_MASTER is not set 607CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
608# CONFIG_GPIOLIB is not set
560# CONFIG_W1 is not set 609# CONFIG_W1 is not set
561# CONFIG_POWER_SUPPLY is not set 610# CONFIG_POWER_SUPPLY is not set
562CONFIG_HWMON=y 611CONFIG_HWMON=y
@@ -577,25 +626,38 @@ CONFIG_HWMON=y
577# CONFIG_SENSORS_W83627EHF is not set 626# CONFIG_SENSORS_W83627EHF is not set
578# CONFIG_HWMON_DEBUG_CHIP is not set 627# CONFIG_HWMON_DEBUG_CHIP is not set
579# CONFIG_THERMAL is not set 628# CONFIG_THERMAL is not set
629# CONFIG_THERMAL_HWMON is not set
580# CONFIG_WATCHDOG is not set 630# CONFIG_WATCHDOG is not set
631CONFIG_SSB_POSSIBLE=y
581 632
582# 633#
583# Sonics Silicon Backplane 634# Sonics Silicon Backplane
584# 635#
585CONFIG_SSB_POSSIBLE=y
586# CONFIG_SSB is not set 636# CONFIG_SSB is not set
587 637
588# 638#
589# Multifunction device drivers 639# Multifunction device drivers
590# 640#
641# CONFIG_MFD_CORE is not set
591# CONFIG_MFD_SM501 is not set 642# CONFIG_MFD_SM501 is not set
592# CONFIG_HTC_PASIC3 is not set 643# CONFIG_HTC_PASIC3 is not set
644# CONFIG_MFD_TMIO is not set
645# CONFIG_REGULATOR is not set
593 646
594# 647#
595# Multimedia devices 648# Multimedia devices
596# 649#
650
651#
652# Multimedia core support
653#
597# CONFIG_VIDEO_DEV is not set 654# CONFIG_VIDEO_DEV is not set
598# CONFIG_DVB_CORE is not set 655# CONFIG_DVB_CORE is not set
656# CONFIG_VIDEO_MEDIA is not set
657
658#
659# Multimedia drivers
660#
599# CONFIG_DAB is not set 661# CONFIG_DAB is not set
600 662
601# 663#
@@ -616,15 +678,17 @@ CONFIG_SSB_POSSIBLE=y
616# 678#
617# CONFIG_PROM_CONSOLE is not set 679# CONFIG_PROM_CONSOLE is not set
618CONFIG_DUMMY_CONSOLE=y 680CONFIG_DUMMY_CONSOLE=y
619
620#
621# Sound
622#
623# CONFIG_SOUND is not set 681# CONFIG_SOUND is not set
624CONFIG_HID_SUPPORT=y 682CONFIG_HID_SUPPORT=y
625CONFIG_HID=y 683CONFIG_HID=y
626# CONFIG_HID_DEBUG is not set 684# CONFIG_HID_DEBUG is not set
627# CONFIG_HIDRAW is not set 685# CONFIG_HIDRAW is not set
686# CONFIG_HID_PID is not set
687
688#
689# Special HID drivers
690#
691CONFIG_HID_COMPAT=y
628CONFIG_USB_SUPPORT=y 692CONFIG_USB_SUPPORT=y
629CONFIG_USB_ARCH_HAS_HCD=y 693CONFIG_USB_ARCH_HAS_HCD=y
630CONFIG_USB_ARCH_HAS_OHCI=y 694CONFIG_USB_ARCH_HAS_OHCI=y
@@ -632,32 +696,71 @@ CONFIG_USB_ARCH_HAS_EHCI=y
632# CONFIG_USB is not set 696# CONFIG_USB is not set
633 697
634# 698#
635# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 699# Enable Host or Gadget support to see Inventra options
700#
701
702#
703# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
636# 704#
637# CONFIG_USB_GADGET is not set 705# CONFIG_USB_GADGET is not set
706
707#
708# OTG and related infrastructure
709#
710# CONFIG_UWB is not set
638# CONFIG_MMC is not set 711# CONFIG_MMC is not set
639# CONFIG_MEMSTICK is not set 712# CONFIG_MEMSTICK is not set
640# CONFIG_NEW_LEDS is not set 713# CONFIG_NEW_LEDS is not set
714# CONFIG_ACCESSIBILITY is not set
641# CONFIG_INFINIBAND is not set 715# CONFIG_INFINIBAND is not set
642# CONFIG_RTC_CLASS is not set 716CONFIG_RTC_LIB=y
717CONFIG_RTC_CLASS=y
718CONFIG_RTC_HCTOSYS=y
719CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
720# CONFIG_RTC_DEBUG is not set
721
722#
723# RTC interfaces
724#
725CONFIG_RTC_INTF_SYSFS=y
726CONFIG_RTC_INTF_PROC=y
727CONFIG_RTC_INTF_DEV=y
728# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
729# CONFIG_RTC_DRV_TEST is not set
730
731#
732# SPI RTC drivers
733#
734
735#
736# Platform RTC drivers
737#
738# CONFIG_RTC_DRV_DS1286 is not set
739# CONFIG_RTC_DRV_DS1511 is not set
740# CONFIG_RTC_DRV_DS1553 is not set
741# CONFIG_RTC_DRV_DS1742 is not set
742# CONFIG_RTC_DRV_STK17TA8 is not set
743# CONFIG_RTC_DRV_M48T86 is not set
744# CONFIG_RTC_DRV_M48T35 is not set
745CONFIG_RTC_DRV_M48T59=y
746# CONFIG_RTC_DRV_BQ4802 is not set
747# CONFIG_RTC_DRV_V3020 is not set
748
749#
750# on-CPU RTC drivers
751#
752# CONFIG_DMADEVICES is not set
643# CONFIG_UIO is not set 753# CONFIG_UIO is not set
754# CONFIG_STAGING is not set
644 755
645# 756#
646# Misc Linux/SPARC drivers 757# Misc Linux/SPARC drivers
647# 758#
648CONFIG_SUN_OPENPROMIO=m 759CONFIG_SUN_OPENPROMIO=m
649CONFIG_SUN_MOSTEK_RTC=m
650# CONFIG_SUN_BPP is not set
651# CONFIG_SUN_VIDEOPIX is not set
652# CONFIG_TADPOLE_TS102_UCTRL is not set 760# CONFIG_TADPOLE_TS102_UCTRL is not set
653# CONFIG_SUN_JSFLASH is not set 761# CONFIG_SUN_JSFLASH is not set
654 762
655# 763#
656# Unix98 PTY support
657#
658CONFIG_UNIX98_PTY_COUNT=256
659
660#
661# File systems 764# File systems
662# 765#
663CONFIG_EXT2_FS=y 766CONFIG_EXT2_FS=y
@@ -666,11 +769,12 @@ CONFIG_EXT2_FS_POSIX_ACL=y
666CONFIG_EXT2_FS_SECURITY=y 769CONFIG_EXT2_FS_SECURITY=y
667# CONFIG_EXT2_FS_XIP is not set 770# CONFIG_EXT2_FS_XIP is not set
668# CONFIG_EXT3_FS is not set 771# CONFIG_EXT3_FS is not set
669# CONFIG_EXT4DEV_FS is not set 772# CONFIG_EXT4_FS is not set
670CONFIG_FS_MBCACHE=y 773CONFIG_FS_MBCACHE=y
671# CONFIG_REISERFS_FS is not set 774# CONFIG_REISERFS_FS is not set
672# CONFIG_JFS_FS is not set 775# CONFIG_JFS_FS is not set
673CONFIG_FS_POSIX_ACL=y 776CONFIG_FS_POSIX_ACL=y
777CONFIG_FILE_LOCKING=y
674# CONFIG_XFS_FS is not set 778# CONFIG_XFS_FS is not set
675# CONFIG_OCFS2_FS is not set 779# CONFIG_OCFS2_FS is not set
676CONFIG_DNOTIFY=y 780CONFIG_DNOTIFY=y
@@ -702,14 +806,12 @@ CONFIG_ISO9660_FS=m
702CONFIG_PROC_FS=y 806CONFIG_PROC_FS=y
703CONFIG_PROC_KCORE=y 807CONFIG_PROC_KCORE=y
704CONFIG_PROC_SYSCTL=y 808CONFIG_PROC_SYSCTL=y
809CONFIG_PROC_PAGE_MONITOR=y
705CONFIG_SYSFS=y 810CONFIG_SYSFS=y
706# CONFIG_TMPFS is not set 811# CONFIG_TMPFS is not set
707# CONFIG_HUGETLB_PAGE is not set 812# CONFIG_HUGETLB_PAGE is not set
708# CONFIG_CONFIGFS_FS is not set 813# CONFIG_CONFIGFS_FS is not set
709 814CONFIG_MISC_FILESYSTEMS=y
710#
711# Miscellaneous filesystems
712#
713# CONFIG_ADFS_FS is not set 815# CONFIG_ADFS_FS is not set
714# CONFIG_AFFS_FS is not set 816# CONFIG_AFFS_FS is not set
715# CONFIG_HFS_FS is not set 817# CONFIG_HFS_FS is not set
@@ -720,6 +822,7 @@ CONFIG_SYSFS=y
720# CONFIG_CRAMFS is not set 822# CONFIG_CRAMFS is not set
721# CONFIG_VXFS_FS is not set 823# CONFIG_VXFS_FS is not set
722# CONFIG_MINIX_FS is not set 824# CONFIG_MINIX_FS is not set
825# CONFIG_OMFS_FS is not set
723# CONFIG_HPFS_FS is not set 826# CONFIG_HPFS_FS is not set
724# CONFIG_QNX4FS_FS is not set 827# CONFIG_QNX4FS_FS is not set
725CONFIG_ROMFS_FS=m 828CONFIG_ROMFS_FS=m
@@ -729,13 +832,13 @@ CONFIG_NETWORK_FILESYSTEMS=y
729CONFIG_NFS_FS=y 832CONFIG_NFS_FS=y
730# CONFIG_NFS_V3 is not set 833# CONFIG_NFS_V3 is not set
731# CONFIG_NFS_V4 is not set 834# CONFIG_NFS_V4 is not set
732# CONFIG_NFSD is not set
733CONFIG_ROOT_NFS=y 835CONFIG_ROOT_NFS=y
836# CONFIG_NFSD is not set
734CONFIG_LOCKD=y 837CONFIG_LOCKD=y
735CONFIG_NFS_COMMON=y 838CONFIG_NFS_COMMON=y
736CONFIG_SUNRPC=y 839CONFIG_SUNRPC=y
737CONFIG_SUNRPC_GSS=m 840CONFIG_SUNRPC_GSS=m
738# CONFIG_SUNRPC_BIND34 is not set 841# CONFIG_SUNRPC_REGISTER_V4 is not set
739CONFIG_RPCSEC_GSS_KRB5=m 842CONFIG_RPCSEC_GSS_KRB5=m
740# CONFIG_RPCSEC_GSS_SPKM3 is not set 843# CONFIG_RPCSEC_GSS_SPKM3 is not set
741# CONFIG_SMB_FS is not set 844# CONFIG_SMB_FS is not set
@@ -806,9 +909,12 @@ CONFIG_MAGIC_SYSRQ=y
806# CONFIG_HEADERS_CHECK is not set 909# CONFIG_HEADERS_CHECK is not set
807CONFIG_DEBUG_KERNEL=y 910CONFIG_DEBUG_KERNEL=y
808CONFIG_DETECT_SOFTLOCKUP=y 911CONFIG_DETECT_SOFTLOCKUP=y
912# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
913CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
809# CONFIG_SCHED_DEBUG is not set 914# CONFIG_SCHED_DEBUG is not set
810# CONFIG_SCHEDSTATS is not set 915# CONFIG_SCHEDSTATS is not set
811# CONFIG_TIMER_STATS is not set 916# CONFIG_TIMER_STATS is not set
917# CONFIG_DEBUG_OBJECTS is not set
812# CONFIG_DEBUG_SLAB is not set 918# CONFIG_DEBUG_SLAB is not set
813# CONFIG_DEBUG_RT_MUTEXES is not set 919# CONFIG_DEBUG_RT_MUTEXES is not set
814# CONFIG_RT_MUTEX_TESTER is not set 920# CONFIG_RT_MUTEX_TESTER is not set
@@ -822,37 +928,59 @@ CONFIG_DEBUG_BUGVERBOSE=y
822# CONFIG_DEBUG_INFO is not set 928# CONFIG_DEBUG_INFO is not set
823# CONFIG_DEBUG_VM is not set 929# CONFIG_DEBUG_VM is not set
824# CONFIG_DEBUG_WRITECOUNT is not set 930# CONFIG_DEBUG_WRITECOUNT is not set
931CONFIG_DEBUG_MEMORY_INIT=y
825# CONFIG_DEBUG_LIST is not set 932# CONFIG_DEBUG_LIST is not set
826# CONFIG_DEBUG_SG is not set 933# CONFIG_DEBUG_SG is not set
827CONFIG_FRAME_POINTER=y 934# CONFIG_DEBUG_NOTIFIERS is not set
828# CONFIG_BOOT_PRINTK_DELAY is not set 935# CONFIG_BOOT_PRINTK_DELAY is not set
829# CONFIG_RCU_TORTURE_TEST is not set 936# CONFIG_RCU_TORTURE_TEST is not set
937# CONFIG_RCU_CPU_STALL_DETECTOR is not set
830# CONFIG_BACKTRACE_SELF_TEST is not set 938# CONFIG_BACKTRACE_SELF_TEST is not set
939# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
831# CONFIG_FAULT_INJECTION is not set 940# CONFIG_FAULT_INJECTION is not set
941# CONFIG_SYSCTL_SYSCALL_CHECK is not set
942
943#
944# Tracers
945#
946# CONFIG_SCHED_TRACER is not set
947# CONFIG_CONTEXT_SWITCH_TRACER is not set
948# CONFIG_BOOT_TRACER is not set
949# CONFIG_TRACE_BRANCH_PROFILING is not set
950# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
832# CONFIG_SAMPLES is not set 951# CONFIG_SAMPLES is not set
833CONFIG_KGDB=y
834CONFIG_HAVE_ARCH_KGDB=y 952CONFIG_HAVE_ARCH_KGDB=y
953CONFIG_KGDB=y
835CONFIG_KGDB_SERIAL_CONSOLE=y 954CONFIG_KGDB_SERIAL_CONSOLE=y
836CONFIG_KGDB_TESTS=y 955CONFIG_KGDB_TESTS=y
837# CONFIG_KGDB_TESTS_ON_BOOT is not set 956# CONFIG_KGDB_TESTS_ON_BOOT is not set
838# CONFIG_DEBUG_STACK_USAGE is not set 957# CONFIG_DEBUG_STACK_USAGE is not set
958# CONFIG_STACK_DEBUG is not set
839 959
840# 960#
841# Security options 961# Security options
842# 962#
843# CONFIG_KEYS is not set 963# CONFIG_KEYS is not set
844# CONFIG_SECURITY is not set 964# CONFIG_SECURITY is not set
965# CONFIG_SECURITYFS is not set
845# CONFIG_SECURITY_FILE_CAPABILITIES is not set 966# CONFIG_SECURITY_FILE_CAPABILITIES is not set
846CONFIG_CRYPTO=y 967CONFIG_CRYPTO=y
847 968
848# 969#
849# Crypto core or helper 970# Crypto core or helper
850# 971#
972# CONFIG_CRYPTO_FIPS is not set
851CONFIG_CRYPTO_ALGAPI=y 973CONFIG_CRYPTO_ALGAPI=y
974CONFIG_CRYPTO_ALGAPI2=y
852CONFIG_CRYPTO_AEAD=y 975CONFIG_CRYPTO_AEAD=y
976CONFIG_CRYPTO_AEAD2=y
853CONFIG_CRYPTO_BLKCIPHER=y 977CONFIG_CRYPTO_BLKCIPHER=y
978CONFIG_CRYPTO_BLKCIPHER2=y
854CONFIG_CRYPTO_HASH=y 979CONFIG_CRYPTO_HASH=y
980CONFIG_CRYPTO_HASH2=y
981CONFIG_CRYPTO_RNG2=y
855CONFIG_CRYPTO_MANAGER=y 982CONFIG_CRYPTO_MANAGER=y
983CONFIG_CRYPTO_MANAGER2=y
856# CONFIG_CRYPTO_GF128MUL is not set 984# CONFIG_CRYPTO_GF128MUL is not set
857CONFIG_CRYPTO_NULL=m 985CONFIG_CRYPTO_NULL=m
858# CONFIG_CRYPTO_CRYPTD is not set 986# CONFIG_CRYPTO_CRYPTD is not set
@@ -890,6 +1018,10 @@ CONFIG_CRYPTO_CRC32C=m
890CONFIG_CRYPTO_MD4=y 1018CONFIG_CRYPTO_MD4=y
891CONFIG_CRYPTO_MD5=y 1019CONFIG_CRYPTO_MD5=y
892CONFIG_CRYPTO_MICHAEL_MIC=m 1020CONFIG_CRYPTO_MICHAEL_MIC=m
1021# CONFIG_CRYPTO_RMD128 is not set
1022# CONFIG_CRYPTO_RMD160 is not set
1023# CONFIG_CRYPTO_RMD256 is not set
1024# CONFIG_CRYPTO_RMD320 is not set
893CONFIG_CRYPTO_SHA1=y 1025CONFIG_CRYPTO_SHA1=y
894CONFIG_CRYPTO_SHA256=m 1026CONFIG_CRYPTO_SHA256=m
895CONFIG_CRYPTO_SHA512=m 1027CONFIG_CRYPTO_SHA512=m
@@ -921,15 +1053,21 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
921# 1053#
922CONFIG_CRYPTO_DEFLATE=y 1054CONFIG_CRYPTO_DEFLATE=y
923# CONFIG_CRYPTO_LZO is not set 1055# CONFIG_CRYPTO_LZO is not set
1056
1057#
1058# Random Number Generation
1059#
1060# CONFIG_CRYPTO_ANSI_CPRNG is not set
924# CONFIG_CRYPTO_HW is not set 1061# CONFIG_CRYPTO_HW is not set
925 1062
926# 1063#
927# Library routines 1064# Library routines
928# 1065#
929CONFIG_BITREVERSE=y 1066CONFIG_BITREVERSE=y
930# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1067CONFIG_GENERIC_FIND_LAST_BIT=y
931# CONFIG_CRC_CCITT is not set 1068# CONFIG_CRC_CCITT is not set
932# CONFIG_CRC16 is not set 1069# CONFIG_CRC16 is not set
1070# CONFIG_CRC_T10DIF is not set
933# CONFIG_CRC_ITU_T is not set 1071# CONFIG_CRC_ITU_T is not set
934CONFIG_CRC32=y 1072CONFIG_CRC32=y
935# CONFIG_CRC7 is not set 1073# CONFIG_CRC7 is not set
diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/sparc64_defconfig
index cde19ae78f5a..ade49941def2 100644
--- a/arch/sparc/configs/sparc64_defconfig
+++ b/arch/sparc/configs/sparc64_defconfig
@@ -867,8 +867,8 @@ CONFIG_I2C_ALGOBIT=y
867# Miscellaneous I2C Chip support 867# Miscellaneous I2C Chip support
868# 868#
869# CONFIG_DS1682 is not set 869# CONFIG_DS1682 is not set
870# CONFIG_AT24 is not set 870# CONFIG_EEPROM_AT24 is not set
871# CONFIG_SENSORS_EEPROM is not set 871# CONFIG_EEPROM_LEGACY is not set
872# CONFIG_SENSORS_PCF8574 is not set 872# CONFIG_SENSORS_PCF8574 is not set
873# CONFIG_PCF8575 is not set 873# CONFIG_PCF8575 is not set
874# CONFIG_SENSORS_PCA9539 is not set 874# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/sparc/include/asm/Kbuild b/arch/sparc/include/asm/Kbuild
index 95e38a43dff0..deeb0fba8029 100644
--- a/arch/sparc/include/asm/Kbuild
+++ b/arch/sparc/include/asm/Kbuild
@@ -17,4 +17,3 @@ header-y += traps.h
17header-y += uctx.h 17header-y += uctx.h
18header-y += utrap.h 18header-y += utrap.h
19header-y += watchdog.h 19header-y += watchdog.h
20header-y += swab.h
diff --git a/arch/sparc/include/asm/byteorder.h b/arch/sparc/include/asm/byteorder.h
index 48a047cd6fa9..ccc1b6b7de6c 100644
--- a/arch/sparc/include/asm/byteorder.h
+++ b/arch/sparc/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _SPARC_BYTEORDER_H 1#ifndef _SPARC_BYTEORDER_H
2#define _SPARC_BYTEORDER_H 2#define _SPARC_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/big_endian.h> 4#include <linux/byteorder/big_endian.h>
6 5
7#endif /* _SPARC_BYTEORDER_H */ 6#endif /* _SPARC_BYTEORDER_H */
diff --git a/arch/sparc/include/asm/compat.h b/arch/sparc/include/asm/compat.h
index f260b58f5ce9..0e706257918f 100644
--- a/arch/sparc/include/asm/compat.h
+++ b/arch/sparc/include/asm/compat.h
@@ -240,4 +240,9 @@ struct compat_shmid64_ds {
240 unsigned int __unused2; 240 unsigned int __unused2;
241}; 241};
242 242
243static inline int is_compat_task(void)
244{
245 return test_thread_flag(TIF_32BIT);
246}
247
243#endif /* _ASM_SPARC64_COMPAT_H */ 248#endif /* _ASM_SPARC64_COMPAT_H */
diff --git a/arch/sparc/include/asm/cpudata_64.h b/arch/sparc/include/asm/cpudata_64.h
index 7da7c13d23c4..a11b89ee9ef8 100644
--- a/arch/sparc/include/asm/cpudata_64.h
+++ b/arch/sparc/include/asm/cpudata_64.h
@@ -17,7 +17,7 @@
17typedef struct { 17typedef struct {
18 /* Dcache line 1 */ 18 /* Dcache line 1 */
19 unsigned int __softirq_pending; /* must be 1st, see rtrap.S */ 19 unsigned int __softirq_pending; /* must be 1st, see rtrap.S */
20 unsigned int __pad0; 20 unsigned int __nmi_count;
21 unsigned long clock_tick; /* %tick's per second */ 21 unsigned long clock_tick; /* %tick's per second */
22 unsigned long __pad; 22 unsigned long __pad;
23 unsigned int __pad1; 23 unsigned int __pad1;
diff --git a/arch/sparc/include/asm/irq_64.h b/arch/sparc/include/asm/irq_64.h
index d47d4a1955a9..1934f2cbf513 100644
--- a/arch/sparc/include/asm/irq_64.h
+++ b/arch/sparc/include/asm/irq_64.h
@@ -66,9 +66,6 @@ extern void virt_irq_free(unsigned int virt_irq);
66extern void __init init_IRQ(void); 66extern void __init init_IRQ(void);
67extern void fixup_irqs(void); 67extern void fixup_irqs(void);
68 68
69extern int register_perfctr_intr(void (*handler)(struct pt_regs *));
70extern void release_perfctr_intr(void (*handler)(struct pt_regs *));
71
72static inline void set_softint(unsigned long bits) 69static inline void set_softint(unsigned long bits)
73{ 70{
74 __asm__ __volatile__("wr %0, 0x0, %%set_softint" 71 __asm__ __volatile__("wr %0, 0x0, %%set_softint"
@@ -98,5 +95,6 @@ void __trigger_all_cpu_backtrace(void);
98extern void *hardirq_stack[NR_CPUS]; 95extern void *hardirq_stack[NR_CPUS];
99extern void *softirq_stack[NR_CPUS]; 96extern void *softirq_stack[NR_CPUS];
100#define __ARCH_HAS_DO_SOFTIRQ 97#define __ARCH_HAS_DO_SOFTIRQ
98#define ARCH_HAS_NMI_WATCHDOG
101 99
102#endif 100#endif
diff --git a/arch/sparc/include/asm/kdebug_64.h b/arch/sparc/include/asm/kdebug_64.h
index f905b773235a..feb3578e12c4 100644
--- a/arch/sparc/include/asm/kdebug_64.h
+++ b/arch/sparc/include/asm/kdebug_64.h
@@ -14,6 +14,8 @@ enum die_val {
14 DIE_TRAP, 14 DIE_TRAP,
15 DIE_TRAP_TL1, 15 DIE_TRAP_TL1,
16 DIE_CALL, 16 DIE_CALL,
17 DIE_NMI,
18 DIE_NMIWATCHDOG,
17}; 19};
18 20
19#endif 21#endif
diff --git a/arch/sparc/include/asm/nmi.h b/arch/sparc/include/asm/nmi.h
new file mode 100644
index 000000000000..fbd546dd4feb
--- /dev/null
+++ b/arch/sparc/include/asm/nmi.h
@@ -0,0 +1,10 @@
1#ifndef __NMI_H
2#define __NMI_H
3
4extern int __init nmi_init(void);
5extern void perfctr_irq(int irq, struct pt_regs *regs);
6extern void nmi_adjust_hz(unsigned int new_hz);
7
8extern int nmi_usable;
9
10#endif /* __NMI_H */
diff --git a/arch/sparc/include/asm/oplib_32.h b/arch/sparc/include/asm/oplib_32.h
index 73d45521db04..33e31ce6b31f 100644
--- a/arch/sparc/include/asm/oplib_32.h
+++ b/arch/sparc/include/asm/oplib_32.h
@@ -177,17 +177,6 @@ extern void prom_putsegment(int context, unsigned long virt_addr,
177 177
178/* PROM device tree traversal functions... */ 178/* PROM device tree traversal functions... */
179 179
180#ifdef PROMLIB_INTERNAL
181
182/* Internal version of prom_getchild. */
183extern int __prom_getchild(int parent_node);
184
185/* Internal version of prom_getsibling. */
186extern int __prom_getsibling(int node);
187
188#endif
189
190
191/* Get the child node of the given node, or zero if no child exists. */ 180/* Get the child node of the given node, or zero if no child exists. */
192extern int prom_getchild(int parent_node); 181extern int prom_getchild(int parent_node);
193 182
diff --git a/arch/sparc/include/asm/oplib_64.h b/arch/sparc/include/asm/oplib_64.h
index 6d2c2ca98039..a5db0317b5fb 100644
--- a/arch/sparc/include/asm/oplib_64.h
+++ b/arch/sparc/include/asm/oplib_64.h
@@ -218,16 +218,6 @@ extern void prom_unmap(unsigned long size, unsigned long vaddr);
218 218
219/* PROM device tree traversal functions... */ 219/* PROM device tree traversal functions... */
220 220
221#ifdef PROMLIB_INTERNAL
222
223/* Internal version of prom_getchild. */
224extern int __prom_getchild(int parent_node);
225
226/* Internal version of prom_getsibling. */
227extern int __prom_getsibling(int node);
228
229#endif
230
231/* Get the child node of the given node, or zero if no child exists. */ 221/* Get the child node of the given node, or zero if no child exists. */
232extern int prom_getchild(int parent_node); 222extern int prom_getchild(int parent_node);
233 223
diff --git a/arch/sparc/include/asm/pcr.h b/arch/sparc/include/asm/pcr.h
new file mode 100644
index 000000000000..a2f5c61f924e
--- /dev/null
+++ b/arch/sparc/include/asm/pcr.h
@@ -0,0 +1,46 @@
1#ifndef __PCR_H
2#define __PCR_H
3
4struct pcr_ops {
5 u64 (*read)(void);
6 void (*write)(u64);
7};
8extern const struct pcr_ops *pcr_ops;
9
10extern void deferred_pcr_work_irq(int irq, struct pt_regs *regs);
11extern void schedule_deferred_pcr_work(void);
12
13#define PCR_PIC_PRIV 0x00000001 /* PIC access is privileged */
14#define PCR_STRACE 0x00000002 /* Trace supervisor events */
15#define PCR_UTRACE 0x00000004 /* Trace user events */
16#define PCR_N2_HTRACE 0x00000008 /* Trace hypervisor events */
17#define PCR_N2_TOE_OV0 0x00000010 /* Trap if PIC 0 overflows */
18#define PCR_N2_TOE_OV1 0x00000020 /* Trap if PIC 1 overflows */
19#define PCR_N2_MASK0 0x00003fc0
20#define PCR_N2_MASK0_SHIFT 6
21#define PCR_N2_SL0 0x0003c000
22#define PCR_N2_SL0_SHIFT 14
23#define PCR_N2_OV0 0x00040000
24#define PCR_N2_MASK1 0x07f80000
25#define PCR_N2_MASK1_SHIFT 19
26#define PCR_N2_SL1 0x78000000
27#define PCR_N2_SL1_SHIFT 27
28#define PCR_N2_OV1 0x80000000
29
30extern unsigned int picl_shift;
31
32/* In order to commonize as much of the implementation as
33 * possible, we use PICH as our counter. Mostly this is
34 * to accomodate Niagara-1 which can only count insn cycles
35 * in PICH.
36 */
37static inline u64 picl_value(unsigned int nmi_hz)
38{
39 u32 delta = local_cpu_data().clock_tick / (nmi_hz << picl_shift);
40
41 return ((u64)((0 - delta) & 0xffffffff)) << 32;
42}
43
44extern u64 pcr_enable;
45
46#endif /* __PCR_H */
diff --git a/arch/sparc/include/asm/pil.h b/arch/sparc/include/asm/pil.h
index d573820c0ff4..32a7efe76d00 100644
--- a/arch/sparc/include/asm/pil.h
+++ b/arch/sparc/include/asm/pil.h
@@ -23,6 +23,7 @@
23#define PIL_SMP_CTX_NEW_VERSION 4 23#define PIL_SMP_CTX_NEW_VERSION 4
24#define PIL_DEVICE_IRQ 5 24#define PIL_DEVICE_IRQ 5
25#define PIL_SMP_CALL_FUNC_SNGL 6 25#define PIL_SMP_CALL_FUNC_SNGL 6
26#define PIL_DEFERRED_PCR_WORK 7
26#define PIL_NORMAL_MAX 14 27#define PIL_NORMAL_MAX 14
27#define PIL_NMI 15 28#define PIL_NMI 15
28 29
diff --git a/arch/sparc/include/asm/seccomp.h b/arch/sparc/include/asm/seccomp.h
index 7fcd9968192b..adca1bce41d4 100644
--- a/arch/sparc/include/asm/seccomp.h
+++ b/arch/sparc/include/asm/seccomp.h
@@ -1,11 +1,5 @@
1#ifndef _ASM_SECCOMP_H 1#ifndef _ASM_SECCOMP_H
2 2
3#include <linux/thread_info.h> /* already defines TIF_32BIT */
4
5#ifndef TIF_32BIT
6#error "unexpected TIF_32BIT on sparc64"
7#endif
8
9#include <linux/unistd.h> 3#include <linux/unistd.h>
10 4
11#define __NR_seccomp_read __NR_read 5#define __NR_seccomp_read __NR_read
diff --git a/arch/sparc/include/asm/signal.h b/arch/sparc/include/asm/signal.h
index 41535e77b255..cba45206b7f2 100644
--- a/arch/sparc/include/asm/signal.h
+++ b/arch/sparc/include/asm/signal.h
@@ -84,7 +84,11 @@
84 84
85#define __OLD_NSIG 32 85#define __OLD_NSIG 32
86#define __NEW_NSIG 64 86#define __NEW_NSIG 64
87#ifdef __arch64__
87#define _NSIG_BPW 64 88#define _NSIG_BPW 64
89#else
90#define _NSIG_BPW 32
91#endif
88#define _NSIG_WORDS (__NEW_NSIG / _NSIG_BPW) 92#define _NSIG_WORDS (__NEW_NSIG / _NSIG_BPW)
89 93
90#define SIGRTMIN 32 94#define SIGRTMIN 32
diff --git a/arch/sparc/include/asm/topology_64.h b/arch/sparc/include/asm/topology_64.h
index b8a65b64e1df..5bc0b8fd6374 100644
--- a/arch/sparc/include/asm/topology_64.h
+++ b/arch/sparc/include/asm/topology_64.h
@@ -47,6 +47,10 @@ static inline int pcibus_to_node(struct pci_bus *pbus)
47 (pcibus_to_node(bus) == -1 ? \ 47 (pcibus_to_node(bus) == -1 ? \
48 CPU_MASK_ALL : \ 48 CPU_MASK_ALL : \
49 node_to_cpumask(pcibus_to_node(bus))) 49 node_to_cpumask(pcibus_to_node(bus)))
50#define cpumask_of_pcibus(bus) \
51 (pcibus_to_node(bus) == -1 ? \
52 CPU_MASK_ALL_PTR : \
53 cpumask_of_node(pcibus_to_node(bus)))
50 54
51#define SD_NODE_INIT (struct sched_domain) { \ 55#define SD_NODE_INIT (struct sched_domain) { \
52 .min_interval = 8, \ 56 .min_interval = 8, \
diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
index 53adcaa0348b..54742e58831c 100644
--- a/arch/sparc/kernel/Makefile
+++ b/arch/sparc/kernel/Makefile
@@ -52,6 +52,8 @@ obj-$(CONFIG_SPARC64) += visemul.o
52obj-$(CONFIG_SPARC64) += hvapi.o 52obj-$(CONFIG_SPARC64) += hvapi.o
53obj-$(CONFIG_SPARC64) += sstate.o 53obj-$(CONFIG_SPARC64) += sstate.o
54obj-$(CONFIG_SPARC64) += mdesc.o 54obj-$(CONFIG_SPARC64) += mdesc.o
55obj-$(CONFIG_SPARC64) += pcr.o
56obj-$(CONFIG_SPARC64) += nmi.o
55 57
56# sparc32 do not use GENERIC_HARDIRQS but uses the generic devres implementation 58# sparc32 do not use GENERIC_HARDIRQS but uses the generic devres implementation
57obj-$(CONFIG_SPARC32) += devres.o 59obj-$(CONFIG_SPARC32) += devres.o
diff --git a/arch/sparc/kernel/auxio_32.c b/arch/sparc/kernel/auxio_32.c
index 09c857215a52..45c41232fc4c 100644
--- a/arch/sparc/kernel/auxio_32.c
+++ b/arch/sparc/kernel/auxio_32.c
@@ -76,6 +76,7 @@ unsigned char get_auxio(void)
76 return sbus_readb(auxio_register); 76 return sbus_readb(auxio_register);
77 return 0; 77 return 0;
78} 78}
79EXPORT_SYMBOL(get_auxio);
79 80
80void set_auxio(unsigned char bits_on, unsigned char bits_off) 81void set_auxio(unsigned char bits_on, unsigned char bits_off)
81{ 82{
@@ -102,7 +103,7 @@ void set_auxio(unsigned char bits_on, unsigned char bits_off)
102 }; 103 };
103 spin_unlock_irqrestore(&auxio_lock, flags); 104 spin_unlock_irqrestore(&auxio_lock, flags);
104} 105}
105 106EXPORT_SYMBOL(set_auxio);
106 107
107/* sun4m power control register (AUXIO2) */ 108/* sun4m power control register (AUXIO2) */
108 109
diff --git a/arch/sparc/kernel/auxio_64.c b/arch/sparc/kernel/auxio_64.c
index 8b67347d4221..9f52db2d441c 100644
--- a/arch/sparc/kernel/auxio_64.c
+++ b/arch/sparc/kernel/auxio_64.c
@@ -72,6 +72,7 @@ void auxio_set_led(int on)
72 bit = (ebus ? AUXIO_PCIO_LED : AUXIO_AUX1_LED); 72 bit = (ebus ? AUXIO_PCIO_LED : AUXIO_AUX1_LED);
73 __auxio_set_bit(bit, on, ebus); 73 __auxio_set_bit(bit, on, ebus);
74} 74}
75EXPORT_SYMBOL(auxio_set_led);
75 76
76static void __auxio_sbus_set_lte(int on) 77static void __auxio_sbus_set_lte(int on)
77{ 78{
@@ -90,6 +91,7 @@ void auxio_set_lte(int on)
90 break; 91 break;
91 } 92 }
92} 93}
94EXPORT_SYMBOL(auxio_set_lte);
93 95
94static struct of_device_id __initdata auxio_match[] = { 96static struct of_device_id __initdata auxio_match[] = {
95 { 97 {
diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c
index 05f1c916db06..f3b5466c389c 100644
--- a/arch/sparc/kernel/central.c
+++ b/arch/sparc/kernel/central.c
@@ -103,6 +103,7 @@ static int __devinit clock_board_probe(struct of_device *op,
103 p->leds_resource.name = "leds"; 103 p->leds_resource.name = "leds";
104 104
105 p->leds_pdev.name = "sunfire-clockboard-leds"; 105 p->leds_pdev.name = "sunfire-clockboard-leds";
106 p->leds_pdev.id = -1;
106 p->leds_pdev.resource = &p->leds_resource; 107 p->leds_pdev.resource = &p->leds_resource;
107 p->leds_pdev.num_resources = 1; 108 p->leds_pdev.num_resources = 1;
108 p->leds_pdev.dev.parent = &op->dev; 109 p->leds_pdev.dev.parent = &op->dev;
@@ -197,6 +198,7 @@ static int __devinit fhc_probe(struct of_device *op,
197 p->leds_resource.name = "leds"; 198 p->leds_resource.name = "leds";
198 199
199 p->leds_pdev.name = "sunfire-fhc-leds"; 200 p->leds_pdev.name = "sunfire-fhc-leds";
201 p->leds_pdev.id = p->board_num;
200 p->leds_pdev.resource = &p->leds_resource; 202 p->leds_pdev.resource = &p->leds_resource;
201 p->leds_pdev.num_resources = 1; 203 p->leds_pdev.num_resources = 1;
202 p->leds_pdev.dev.parent = &op->dev; 204 p->leds_pdev.dev.parent = &op->dev;
diff --git a/arch/sparc/kernel/chmc.c b/arch/sparc/kernel/chmc.c
index 3b9f4d6e14a9..e1a9598e2a4d 100644
--- a/arch/sparc/kernel/chmc.c
+++ b/arch/sparc/kernel/chmc.c
@@ -306,6 +306,7 @@ static int jbusmc_print_dimm(int syndrome_code,
306 buf[1] = '?'; 306 buf[1] = '?';
307 buf[2] = '?'; 307 buf[2] = '?';
308 buf[3] = '\0'; 308 buf[3] = '\0';
309 return 0;
309 } 310 }
310 p = dp->controller; 311 p = dp->controller;
311 prop = &p->layout; 312 prop = &p->layout;
diff --git a/arch/sparc/kernel/cpu.c b/arch/sparc/kernel/cpu.c
index 6c2da2420f76..d85c3dc4953a 100644
--- a/arch/sparc/kernel/cpu.c
+++ b/arch/sparc/kernel/cpu.c
@@ -5,6 +5,7 @@
5 */ 5 */
6 6
7#include <linux/kernel.h> 7#include <linux/kernel.h>
8#include <linux/module.h>
8#include <linux/init.h> 9#include <linux/init.h>
9#include <linux/smp.h> 10#include <linux/smp.h>
10#include <linux/threads.h> 11#include <linux/threads.h>
@@ -20,10 +21,12 @@
20#include "kernel.h" 21#include "kernel.h"
21 22
22DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 }; 23DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 };
24EXPORT_PER_CPU_SYMBOL(__cpu_data);
23 25
24struct cpu_info { 26struct cpu_info {
25 int psr_vers; 27 int psr_vers;
26 const char *name; 28 const char *name;
29 const char *pmu_name;
27}; 30};
28 31
29struct fpu_info { 32struct fpu_info {
@@ -43,6 +46,9 @@ struct manufacturer_info {
43#define CPU(ver, _name) \ 46#define CPU(ver, _name) \
44{ .psr_vers = ver, .name = _name } 47{ .psr_vers = ver, .name = _name }
45 48
49#define CPU_PMU(ver, _name, _pmu_name) \
50{ .psr_vers = ver, .name = _name, .pmu_name = _pmu_name }
51
46#define FPU(ver, _name) \ 52#define FPU(ver, _name) \
47{ .fp_vers = ver, .name = _name } 53{ .fp_vers = ver, .name = _name }
48 54
@@ -181,10 +187,10 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
181},{ 187},{
182 0x17, 188 0x17,
183 .cpu_info = { 189 .cpu_info = {
184 CPU(0x10, "TI UltraSparc I (SpitFire)"), 190 CPU_PMU(0x10, "TI UltraSparc I (SpitFire)", "ultra12"),
185 CPU(0x11, "TI UltraSparc II (BlackBird)"), 191 CPU_PMU(0x11, "TI UltraSparc II (BlackBird)", "ultra12"),
186 CPU(0x12, "TI UltraSparc IIi (Sabre)"), 192 CPU_PMU(0x12, "TI UltraSparc IIi (Sabre)", "ultra12"),
187 CPU(0x13, "TI UltraSparc IIe (Hummingbird)"), 193 CPU_PMU(0x13, "TI UltraSparc IIe (Hummingbird)", "ultra12"),
188 CPU(-1, NULL) 194 CPU(-1, NULL)
189 }, 195 },
190 .fpu_info = { 196 .fpu_info = {
@@ -197,7 +203,7 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
197},{ 203},{
198 0x22, 204 0x22,
199 .cpu_info = { 205 .cpu_info = {
200 CPU(0x10, "TI UltraSparc I (SpitFire)"), 206 CPU_PMU(0x10, "TI UltraSparc I (SpitFire)", "ultra12"),
201 CPU(-1, NULL) 207 CPU(-1, NULL)
202 }, 208 },
203 .fpu_info = { 209 .fpu_info = {
@@ -207,12 +213,12 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
207},{ 213},{
208 0x3e, 214 0x3e,
209 .cpu_info = { 215 .cpu_info = {
210 CPU(0x14, "TI UltraSparc III (Cheetah)"), 216 CPU_PMU(0x14, "TI UltraSparc III (Cheetah)", "ultra3"),
211 CPU(0x15, "TI UltraSparc III+ (Cheetah+)"), 217 CPU_PMU(0x15, "TI UltraSparc III+ (Cheetah+)", "ultra3+"),
212 CPU(0x16, "TI UltraSparc IIIi (Jalapeno)"), 218 CPU_PMU(0x16, "TI UltraSparc IIIi (Jalapeno)", "ultra3i"),
213 CPU(0x18, "TI UltraSparc IV (Jaguar)"), 219 CPU_PMU(0x18, "TI UltraSparc IV (Jaguar)", "ultra3+"),
214 CPU(0x19, "TI UltraSparc IV+ (Panther)"), 220 CPU_PMU(0x19, "TI UltraSparc IV+ (Panther)", "ultra4+"),
215 CPU(0x22, "TI UltraSparc IIIi+ (Serrano)"), 221 CPU_PMU(0x22, "TI UltraSparc IIIi+ (Serrano)", "ultra3i"),
216 CPU(-1, NULL) 222 CPU(-1, NULL)
217 }, 223 },
218 .fpu_info = { 224 .fpu_info = {
@@ -232,29 +238,44 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
232 238
233const char *sparc_cpu_type; 239const char *sparc_cpu_type;
234const char *sparc_fpu_type; 240const char *sparc_fpu_type;
241const char *sparc_pmu_type;
235 242
236unsigned int fsr_storage; 243unsigned int fsr_storage;
237 244
238static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers) 245static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
239{ 246{
247 const struct manufacturer_info *manuf;
248 int i;
249
240 sparc_cpu_type = NULL; 250 sparc_cpu_type = NULL;
241 sparc_fpu_type = NULL; 251 sparc_fpu_type = NULL;
242 if (psr_impl < ARRAY_SIZE(manufacturer_info)) 252 sparc_pmu_type = NULL;
253 manuf = NULL;
254
255 for (i = 0; i < ARRAY_SIZE(manufacturer_info); i++)
256 {
257 if (psr_impl == manufacturer_info[i].psr_impl) {
258 manuf = &manufacturer_info[i];
259 break;
260 }
261 }
262 if (manuf != NULL)
243 { 263 {
244 const struct cpu_info *cpu; 264 const struct cpu_info *cpu;
245 const struct fpu_info *fpu; 265 const struct fpu_info *fpu;
246 266
247 cpu = &manufacturer_info[psr_impl].cpu_info[0]; 267 cpu = &manuf->cpu_info[0];
248 while (cpu->psr_vers != -1) 268 while (cpu->psr_vers != -1)
249 { 269 {
250 if (cpu->psr_vers == psr_vers) { 270 if (cpu->psr_vers == psr_vers) {
251 sparc_cpu_type = cpu->name; 271 sparc_cpu_type = cpu->name;
272 sparc_pmu_type = cpu->pmu_name;
252 sparc_fpu_type = "No FPU"; 273 sparc_fpu_type = "No FPU";
253 break; 274 break;
254 } 275 }
255 cpu++; 276 cpu++;
256 } 277 }
257 fpu = &manufacturer_info[psr_impl].fpu_info[0]; 278 fpu = &manuf->fpu_info[0];
258 while (fpu->fp_vers != -1) 279 while (fpu->fp_vers != -1)
259 { 280 {
260 if (fpu->fp_vers == fpu_vers) { 281 if (fpu->fp_vers == fpu_vers) {
@@ -276,6 +297,8 @@ static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
276 psr_impl, fpu_vers); 297 psr_impl, fpu_vers);
277 sparc_fpu_type = "Unknown FPU"; 298 sparc_fpu_type = "Unknown FPU";
278 } 299 }
300 if (sparc_pmu_type == NULL)
301 sparc_pmu_type = "Unknown PMU";
279} 302}
280 303
281#ifdef CONFIG_SPARC32 304#ifdef CONFIG_SPARC32
@@ -301,11 +324,13 @@ static void __init sun4v_cpu_probe(void)
301 case SUN4V_CHIP_NIAGARA1: 324 case SUN4V_CHIP_NIAGARA1:
302 sparc_cpu_type = "UltraSparc T1 (Niagara)"; 325 sparc_cpu_type = "UltraSparc T1 (Niagara)";
303 sparc_fpu_type = "UltraSparc T1 integrated FPU"; 326 sparc_fpu_type = "UltraSparc T1 integrated FPU";
327 sparc_pmu_type = "niagara";
304 break; 328 break;
305 329
306 case SUN4V_CHIP_NIAGARA2: 330 case SUN4V_CHIP_NIAGARA2:
307 sparc_cpu_type = "UltraSparc T2 (Niagara2)"; 331 sparc_cpu_type = "UltraSparc T2 (Niagara2)";
308 sparc_fpu_type = "UltraSparc T2 integrated FPU"; 332 sparc_fpu_type = "UltraSparc T2 integrated FPU";
333 sparc_pmu_type = "niagara2";
309 break; 334 break;
310 335
311 default: 336 default:
diff --git a/arch/sparc/kernel/entry.S b/arch/sparc/kernel/entry.S
index faf9ccd9ef5d..f41ecc5ac0b4 100644
--- a/arch/sparc/kernel/entry.S
+++ b/arch/sparc/kernel/entry.S
@@ -1088,8 +1088,8 @@ sunos_execv:
1088 ld [%sp + STACKFRAME_SZ + PT_I0], %o0 1088 ld [%sp + STACKFRAME_SZ + PT_I0], %o0
1089 1089
1090 .align 4 1090 .align 4
1091 .globl sys_pipe 1091 .globl sys_sparc_pipe
1092sys_pipe: 1092sys_sparc_pipe:
1093 mov %o7, %l5 1093 mov %o7, %l5
1094 add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg 1094 add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg
1095 call sparc_pipe 1095 call sparc_pipe
diff --git a/arch/sparc/kernel/head_64.S b/arch/sparc/kernel/head_64.S
index 8ffee714f932..a46c3a21e26d 100644
--- a/arch/sparc/kernel/head_64.S
+++ b/arch/sparc/kernel/head_64.S
@@ -891,10 +891,35 @@ prom_tba: .xword 0
891tlb_type: .word 0 /* Must NOT end up in BSS */ 891tlb_type: .word 0 /* Must NOT end up in BSS */
892 .section ".fixup",#alloc,#execinstr 892 .section ".fixup",#alloc,#execinstr
893 893
894 .globl __ret_efault, __retl_efault 894 .globl __ret_efault, __retl_efault, __ret_one, __retl_one
895__ret_efault: 895ENTRY(__ret_efault)
896 ret 896 ret
897 restore %g0, -EFAULT, %o0 897 restore %g0, -EFAULT, %o0
898__retl_efault: 898ENDPROC(__ret_efault)
899
900ENTRY(__retl_efault)
899 retl 901 retl
900 mov -EFAULT, %o0 902 mov -EFAULT, %o0
903ENDPROC(__retl_efault)
904
905ENTRY(__retl_one)
906 retl
907 mov 1, %o0
908ENDPROC(__retl_one)
909
910ENTRY(__ret_one_asi)
911 wr %g0, ASI_AIUS, %asi
912 ret
913 restore %g0, 1, %o0
914ENDPROC(__ret_one_asi)
915
916ENTRY(__retl_one_asi)
917 wr %g0, ASI_AIUS, %asi
918 retl
919 mov 1, %o0
920ENDPROC(__retl_one_asi)
921
922ENTRY(__retl_o1)
923 retl
924 mov %o1, %o0
925ENDPROC(__retl_o1)
diff --git a/arch/sparc/kernel/idprom.c b/arch/sparc/kernel/idprom.c
index c16135e0c151..57922f69c3f7 100644
--- a/arch/sparc/kernel/idprom.c
+++ b/arch/sparc/kernel/idprom.c
@@ -8,11 +8,14 @@
8#include <linux/kernel.h> 8#include <linux/kernel.h>
9#include <linux/types.h> 9#include <linux/types.h>
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/module.h>
11 12
12#include <asm/oplib.h> 13#include <asm/oplib.h>
13#include <asm/idprom.h> 14#include <asm/idprom.h>
14 15
15struct idprom *idprom; 16struct idprom *idprom;
17EXPORT_SYMBOL(idprom);
18
16static struct idprom idprom_buffer; 19static struct idprom idprom_buffer;
17 20
18#ifdef CONFIG_SPARC32 21#ifdef CONFIG_SPARC32
diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c
index 7ce14f05eb48..87ea0d03d975 100644
--- a/arch/sparc/kernel/ioport.c
+++ b/arch/sparc/kernel/ioport.c
@@ -120,6 +120,7 @@ void __iomem *ioremap(unsigned long offset, unsigned long size)
120 sprintf(name, "phys_%08x", (u32)offset); 120 sprintf(name, "phys_%08x", (u32)offset);
121 return _sparc_alloc_io(0, offset, size, name); 121 return _sparc_alloc_io(0, offset, size, name);
122} 122}
123EXPORT_SYMBOL(ioremap);
123 124
124/* 125/*
125 * Comlimentary to ioremap(). 126 * Comlimentary to ioremap().
@@ -141,6 +142,7 @@ void iounmap(volatile void __iomem *virtual)
141 kfree(res); 142 kfree(res);
142 } 143 }
143} 144}
145EXPORT_SYMBOL(iounmap);
144 146
145void __iomem *of_ioremap(struct resource *res, unsigned long offset, 147void __iomem *of_ioremap(struct resource *res, unsigned long offset,
146 unsigned long size, char *name) 148 unsigned long size, char *name)
@@ -237,6 +239,7 @@ void sbus_set_sbus64(struct device *dev, int x)
237{ 239{
238 printk("sbus_set_sbus64: unsupported\n"); 240 printk("sbus_set_sbus64: unsupported\n");
239} 241}
242EXPORT_SYMBOL(sbus_set_sbus64);
240 243
241/* 244/*
242 * Allocate a chunk of memory suitable for DMA. 245 * Allocate a chunk of memory suitable for DMA.
@@ -436,6 +439,7 @@ void *pci_alloc_consistent(struct pci_dev *pdev, size_t len, dma_addr_t *pba)
436 *pba = virt_to_phys(va); /* equals virt_to_bus (R.I.P.) for us. */ 439 *pba = virt_to_phys(va); /* equals virt_to_bus (R.I.P.) for us. */
437 return (void *) res->start; 440 return (void *) res->start;
438} 441}
442EXPORT_SYMBOL(pci_alloc_consistent);
439 443
440/* Free and unmap a consistent DMA buffer. 444/* Free and unmap a consistent DMA buffer.
441 * cpu_addr is what was returned from pci_alloc_consistent, 445 * cpu_addr is what was returned from pci_alloc_consistent,
@@ -477,6 +481,7 @@ void pci_free_consistent(struct pci_dev *pdev, size_t n, void *p, dma_addr_t ba)
477 481
478 free_pages(pgp, get_order(n)); 482 free_pages(pgp, get_order(n));
479} 483}
484EXPORT_SYMBOL(pci_free_consistent);
480 485
481/* Map a single buffer of the indicated size for DMA in streaming mode. 486/* Map a single buffer of the indicated size for DMA in streaming mode.
482 * The 32-bit bus address to use is returned. 487 * The 32-bit bus address to use is returned.
@@ -491,6 +496,7 @@ dma_addr_t pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size,
491 /* IIep is write-through, not flushing. */ 496 /* IIep is write-through, not flushing. */
492 return virt_to_phys(ptr); 497 return virt_to_phys(ptr);
493} 498}
499EXPORT_SYMBOL(pci_map_single);
494 500
495/* Unmap a single streaming mode DMA translation. The dma_addr and size 501/* Unmap a single streaming mode DMA translation. The dma_addr and size
496 * must match what was provided for in a previous pci_map_single call. All 502 * must match what was provided for in a previous pci_map_single call. All
@@ -508,6 +514,7 @@ void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t ba, size_t size,
508 (size + PAGE_SIZE-1) & PAGE_MASK); 514 (size + PAGE_SIZE-1) & PAGE_MASK);
509 } 515 }
510} 516}
517EXPORT_SYMBOL(pci_unmap_single);
511 518
512/* 519/*
513 * Same as pci_map_single, but with pages. 520 * Same as pci_map_single, but with pages.
@@ -519,6 +526,7 @@ dma_addr_t pci_map_page(struct pci_dev *hwdev, struct page *page,
519 /* IIep is write-through, not flushing. */ 526 /* IIep is write-through, not flushing. */
520 return page_to_phys(page) + offset; 527 return page_to_phys(page) + offset;
521} 528}
529EXPORT_SYMBOL(pci_map_page);
522 530
523void pci_unmap_page(struct pci_dev *hwdev, 531void pci_unmap_page(struct pci_dev *hwdev,
524 dma_addr_t dma_address, size_t size, int direction) 532 dma_addr_t dma_address, size_t size, int direction)
@@ -526,6 +534,7 @@ void pci_unmap_page(struct pci_dev *hwdev,
526 BUG_ON(direction == PCI_DMA_NONE); 534 BUG_ON(direction == PCI_DMA_NONE);
527 /* mmu_inval_dma_area XXX */ 535 /* mmu_inval_dma_area XXX */
528} 536}
537EXPORT_SYMBOL(pci_unmap_page);
529 538
530/* Map a set of buffers described by scatterlist in streaming 539/* Map a set of buffers described by scatterlist in streaming
531 * mode for DMA. This is the scather-gather version of the 540 * mode for DMA. This is the scather-gather version of the
@@ -557,6 +566,7 @@ int pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sgl, int nents,
557 } 566 }
558 return nents; 567 return nents;
559} 568}
569EXPORT_SYMBOL(pci_map_sg);
560 570
561/* Unmap a set of streaming mode DMA translations. 571/* Unmap a set of streaming mode DMA translations.
562 * Again, cpu read rules concerning calls here are the same as for 572 * Again, cpu read rules concerning calls here are the same as for
@@ -578,6 +588,7 @@ void pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sgl, int nents,
578 } 588 }
579 } 589 }
580} 590}
591EXPORT_SYMBOL(pci_unmap_sg);
581 592
582/* Make physical memory consistent for a single 593/* Make physical memory consistent for a single
583 * streaming mode DMA translation before or after a transfer. 594 * streaming mode DMA translation before or after a transfer.
@@ -597,6 +608,7 @@ void pci_dma_sync_single_for_cpu(struct pci_dev *hwdev, dma_addr_t ba, size_t si
597 (size + PAGE_SIZE-1) & PAGE_MASK); 608 (size + PAGE_SIZE-1) & PAGE_MASK);
598 } 609 }
599} 610}
611EXPORT_SYMBOL(pci_dma_sync_single_for_cpu);
600 612
601void pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t ba, size_t size, int direction) 613void pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t ba, size_t size, int direction)
602{ 614{
@@ -606,6 +618,7 @@ void pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t ba, size_t
606 (size + PAGE_SIZE-1) & PAGE_MASK); 618 (size + PAGE_SIZE-1) & PAGE_MASK);
607 } 619 }
608} 620}
621EXPORT_SYMBOL(pci_dma_sync_single_for_device);
609 622
610/* Make physical memory consistent for a set of streaming 623/* Make physical memory consistent for a set of streaming
611 * mode DMA translations after a transfer. 624 * mode DMA translations after a transfer.
@@ -628,6 +641,7 @@ void pci_dma_sync_sg_for_cpu(struct pci_dev *hwdev, struct scatterlist *sgl, int
628 } 641 }
629 } 642 }
630} 643}
644EXPORT_SYMBOL(pci_dma_sync_sg_for_cpu);
631 645
632void pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sgl, int nents, int direction) 646void pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sgl, int nents, int direction)
633{ 647{
@@ -644,6 +658,7 @@ void pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sgl,
644 } 658 }
645 } 659 }
646} 660}
661EXPORT_SYMBOL(pci_dma_sync_sg_for_device);
647#endif /* CONFIG_PCI */ 662#endif /* CONFIG_PCI */
648 663
649#ifdef CONFIG_PROC_FS 664#ifdef CONFIG_PROC_FS
diff --git a/arch/sparc/kernel/irq_32.c b/arch/sparc/kernel/irq_32.c
index 1eff942fe22f..44dd5ee64339 100644
--- a/arch/sparc/kernel/irq_32.c
+++ b/arch/sparc/kernel/irq_32.c
@@ -294,6 +294,7 @@ void synchronize_irq(unsigned int irq)
294 while (sparc_irq[cpu_irq].flags & SPARC_IRQ_INPROGRESS) 294 while (sparc_irq[cpu_irq].flags & SPARC_IRQ_INPROGRESS)
295 cpu_relax(); 295 cpu_relax();
296} 296}
297EXPORT_SYMBOL(synchronize_irq);
297#endif /* SMP */ 298#endif /* SMP */
298 299
299void unexpected_irq(int irq, void *dev_id, struct pt_regs * regs) 300void unexpected_irq(int irq, void *dev_id, struct pt_regs * regs)
diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c
index cab8e0286871..3d2c6baae96b 100644
--- a/arch/sparc/kernel/irq_64.c
+++ b/arch/sparc/kernel/irq_64.c
@@ -196,6 +196,11 @@ int show_interrupts(struct seq_file *p, void *v)
196 seq_putc(p, '\n'); 196 seq_putc(p, '\n');
197skip: 197skip:
198 spin_unlock_irqrestore(&irq_desc[i].lock, flags); 198 spin_unlock_irqrestore(&irq_desc[i].lock, flags);
199 } else if (i == NR_IRQS) {
200 seq_printf(p, "NMI: ");
201 for_each_online_cpu(j)
202 seq_printf(p, "%10u ", cpu_data(j).__nmi_count);
203 seq_printf(p, " Non-maskable interrupts\n");
199 } 204 }
200 return 0; 205 return 0;
201} 206}
@@ -247,9 +252,10 @@ struct irq_handler_data {
247#ifdef CONFIG_SMP 252#ifdef CONFIG_SMP
248static int irq_choose_cpu(unsigned int virt_irq) 253static int irq_choose_cpu(unsigned int virt_irq)
249{ 254{
250 cpumask_t mask = irq_desc[virt_irq].affinity; 255 cpumask_t mask;
251 int cpuid; 256 int cpuid;
252 257
258 cpumask_copy(&mask, irq_desc[virt_irq].affinity);
253 if (cpus_equal(mask, CPU_MASK_ALL)) { 259 if (cpus_equal(mask, CPU_MASK_ALL)) {
254 static int irq_rover; 260 static int irq_rover;
255 static DEFINE_SPINLOCK(irq_rover_lock); 261 static DEFINE_SPINLOCK(irq_rover_lock);
@@ -778,69 +784,6 @@ void do_softirq(void)
778 local_irq_restore(flags); 784 local_irq_restore(flags);
779} 785}
780 786
781static void unhandled_perf_irq(struct pt_regs *regs)
782{
783 unsigned long pcr, pic;
784
785 read_pcr(pcr);
786 read_pic(pic);
787
788 write_pcr(0);
789
790 printk(KERN_EMERG "CPU %d: Got unexpected perf counter IRQ.\n",
791 smp_processor_id());
792 printk(KERN_EMERG "CPU %d: PCR[%016lx] PIC[%016lx]\n",
793 smp_processor_id(), pcr, pic);
794}
795
796/* Almost a direct copy of the powerpc PMC code. */
797static DEFINE_SPINLOCK(perf_irq_lock);
798static void *perf_irq_owner_caller; /* mostly for debugging */
799static void (*perf_irq)(struct pt_regs *regs) = unhandled_perf_irq;
800
801/* Invoked from level 15 PIL handler in trap table. */
802void perfctr_irq(int irq, struct pt_regs *regs)
803{
804 clear_softint(1 << irq);
805 perf_irq(regs);
806}
807
808int register_perfctr_intr(void (*handler)(struct pt_regs *))
809{
810 int ret;
811
812 if (!handler)
813 return -EINVAL;
814
815 spin_lock(&perf_irq_lock);
816 if (perf_irq != unhandled_perf_irq) {
817 printk(KERN_WARNING "register_perfctr_intr: "
818 "perf IRQ busy (reserved by caller %p)\n",
819 perf_irq_owner_caller);
820 ret = -EBUSY;
821 goto out;
822 }
823
824 perf_irq_owner_caller = __builtin_return_address(0);
825 perf_irq = handler;
826
827 ret = 0;
828out:
829 spin_unlock(&perf_irq_lock);
830
831 return ret;
832}
833EXPORT_SYMBOL_GPL(register_perfctr_intr);
834
835void release_perfctr_intr(void (*handler)(struct pt_regs *))
836{
837 spin_lock(&perf_irq_lock);
838 perf_irq_owner_caller = NULL;
839 perf_irq = unhandled_perf_irq;
840 spin_unlock(&perf_irq_lock);
841}
842EXPORT_SYMBOL_GPL(release_perfctr_intr);
843
844#ifdef CONFIG_HOTPLUG_CPU 787#ifdef CONFIG_HOTPLUG_CPU
845void fixup_irqs(void) 788void fixup_irqs(void)
846{ 789{
@@ -854,7 +797,7 @@ void fixup_irqs(void)
854 !(irq_desc[irq].status & IRQ_PER_CPU)) { 797 !(irq_desc[irq].status & IRQ_PER_CPU)) {
855 if (irq_desc[irq].chip->set_affinity) 798 if (irq_desc[irq].chip->set_affinity)
856 irq_desc[irq].chip->set_affinity(irq, 799 irq_desc[irq].chip->set_affinity(irq,
857 &irq_desc[irq].affinity); 800 irq_desc[irq].affinity);
858 } 801 }
859 spin_unlock_irqrestore(&irq_desc[irq].lock, flags); 802 spin_unlock_irqrestore(&irq_desc[irq].lock, flags);
860 } 803 }
diff --git a/arch/sparc/kernel/kernel.h b/arch/sparc/kernel/kernel.h
index 81a972e8d8ea..15d8a3f645c9 100644
--- a/arch/sparc/kernel/kernel.h
+++ b/arch/sparc/kernel/kernel.h
@@ -5,6 +5,7 @@
5 5
6/* cpu.c */ 6/* cpu.c */
7extern const char *sparc_cpu_type; 7extern const char *sparc_cpu_type;
8extern const char *sparc_pmu_type;
8extern const char *sparc_fpu_type; 9extern const char *sparc_fpu_type;
9 10
10extern unsigned int fsr_storage; 11extern unsigned int fsr_storage;
diff --git a/arch/sparc/kernel/nmi.c b/arch/sparc/kernel/nmi.c
new file mode 100644
index 000000000000..f3577223c863
--- /dev/null
+++ b/arch/sparc/kernel/nmi.c
@@ -0,0 +1,225 @@
1/* Pseudo NMI support on sparc64 systems.
2 *
3 * Copyright (C) 2009 David S. Miller <davem@davemloft.net>
4 *
5 * The NMI watchdog support and infrastructure is based almost
6 * entirely upon the x86 NMI support code.
7 */
8#include <linux/kernel.h>
9#include <linux/param.h>
10#include <linux/init.h>
11#include <linux/percpu.h>
12#include <linux/nmi.h>
13#include <linux/module.h>
14#include <linux/kprobes.h>
15#include <linux/kernel_stat.h>
16#include <linux/slab.h>
17#include <linux/kdebug.h>
18#include <linux/delay.h>
19#include <linux/smp.h>
20
21#include <asm/ptrace.h>
22#include <asm/local.h>
23#include <asm/pcr.h>
24
25/* We don't have a real NMI on sparc64, but we can fake one
26 * up using profiling counter overflow interrupts and interrupt
27 * levels.
28 *
29 * The profile overflow interrupts at level 15, so we use
30 * level 14 as our IRQ off level.
31 */
32
33static int nmi_watchdog_active;
34static int panic_on_timeout;
35
36int nmi_usable;
37EXPORT_SYMBOL_GPL(nmi_usable);
38
39static unsigned int nmi_hz = HZ;
40
41static DEFINE_PER_CPU(unsigned int, last_irq_sum);
42static DEFINE_PER_CPU(local_t, alert_counter);
43static DEFINE_PER_CPU(int, nmi_touch);
44
45void touch_nmi_watchdog(void)
46{
47 if (nmi_watchdog_active) {
48 int cpu;
49
50 for_each_present_cpu(cpu) {
51 if (per_cpu(nmi_touch, cpu) != 1)
52 per_cpu(nmi_touch, cpu) = 1;
53 }
54 }
55
56 touch_softlockup_watchdog();
57}
58EXPORT_SYMBOL(touch_nmi_watchdog);
59
60static void die_nmi(const char *str, struct pt_regs *regs, int do_panic)
61{
62 if (notify_die(DIE_NMIWATCHDOG, str, regs, 0,
63 pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP)
64 return;
65
66 console_verbose();
67 bust_spinlocks(1);
68
69 printk(KERN_EMERG "%s", str);
70 printk(" on CPU%d, ip %08lx, registers:\n",
71 smp_processor_id(), regs->tpc);
72 show_regs(regs);
73 dump_stack();
74
75 bust_spinlocks(0);
76
77 if (do_panic || panic_on_oops)
78 panic("Non maskable interrupt");
79
80 local_irq_enable();
81 do_exit(SIGBUS);
82}
83
84notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs)
85{
86 unsigned int sum, touched = 0;
87 int cpu = smp_processor_id();
88
89 clear_softint(1 << irq);
90 pcr_ops->write(PCR_PIC_PRIV);
91
92 local_cpu_data().__nmi_count++;
93
94 if (notify_die(DIE_NMI, "nmi", regs, 0,
95 pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP)
96 touched = 1;
97
98 sum = kstat_irqs_cpu(0, cpu);
99 if (__get_cpu_var(nmi_touch)) {
100 __get_cpu_var(nmi_touch) = 0;
101 touched = 1;
102 }
103 if (!touched && __get_cpu_var(last_irq_sum) == sum) {
104 local_inc(&__get_cpu_var(alert_counter));
105 if (local_read(&__get_cpu_var(alert_counter)) == 5 * nmi_hz)
106 die_nmi("BUG: NMI Watchdog detected LOCKUP",
107 regs, panic_on_timeout);
108 } else {
109 __get_cpu_var(last_irq_sum) = sum;
110 local_set(&__get_cpu_var(alert_counter), 0);
111 }
112 if (nmi_usable) {
113 write_pic(picl_value(nmi_hz));
114 pcr_ops->write(pcr_enable);
115 }
116}
117
118static inline unsigned int get_nmi_count(int cpu)
119{
120 return cpu_data(cpu).__nmi_count;
121}
122
123static int endflag __initdata;
124
125static __init void nmi_cpu_busy(void *data)
126{
127 local_irq_enable_in_hardirq();
128 while (endflag == 0)
129 mb();
130}
131
132static void report_broken_nmi(int cpu, int *prev_nmi_count)
133{
134 printk(KERN_CONT "\n");
135
136 printk(KERN_WARNING
137 "WARNING: CPU#%d: NMI appears to be stuck (%d->%d)!\n",
138 cpu, prev_nmi_count[cpu], get_nmi_count(cpu));
139
140 printk(KERN_WARNING
141 "Please report this to bugzilla.kernel.org,\n");
142 printk(KERN_WARNING
143 "and attach the output of the 'dmesg' command.\n");
144
145 nmi_usable = 0;
146}
147
148static void stop_watchdog(void *unused)
149{
150 pcr_ops->write(PCR_PIC_PRIV);
151}
152
153static int __init check_nmi_watchdog(void)
154{
155 unsigned int *prev_nmi_count;
156 int cpu, err;
157
158 prev_nmi_count = kmalloc(nr_cpu_ids * sizeof(unsigned int), GFP_KERNEL);
159 if (!prev_nmi_count) {
160 err = -ENOMEM;
161 goto error;
162 }
163
164 printk(KERN_INFO "Testing NMI watchdog ... ");
165
166 smp_call_function(nmi_cpu_busy, (void *)&endflag, 0);
167
168 for_each_possible_cpu(cpu)
169 prev_nmi_count[cpu] = get_nmi_count(cpu);
170 local_irq_enable();
171 mdelay((20 * 1000) / nmi_hz); /* wait 20 ticks */
172
173 for_each_online_cpu(cpu) {
174 if (get_nmi_count(cpu) - prev_nmi_count[cpu] <= 5)
175 report_broken_nmi(cpu, prev_nmi_count);
176 }
177 endflag = 1;
178 if (!nmi_usable) {
179 kfree(prev_nmi_count);
180 err = -ENODEV;
181 goto error;
182 }
183 printk("OK.\n");
184
185 nmi_hz = 1;
186
187 kfree(prev_nmi_count);
188 return 0;
189error:
190 on_each_cpu(stop_watchdog, NULL, 1);
191 return err;
192}
193
194static void start_watchdog(void *unused)
195{
196 pcr_ops->write(PCR_PIC_PRIV);
197 write_pic(picl_value(nmi_hz));
198
199 pcr_ops->write(pcr_enable);
200}
201
202void nmi_adjust_hz(unsigned int new_hz)
203{
204 nmi_hz = new_hz;
205 on_each_cpu(start_watchdog, NULL, 1);
206}
207EXPORT_SYMBOL_GPL(nmi_adjust_hz);
208
209int __init nmi_init(void)
210{
211 nmi_usable = 1;
212
213 on_each_cpu(start_watchdog, NULL, 1);
214
215 return check_nmi_watchdog();
216}
217
218static int __init setup_nmi_watchdog(char *str)
219{
220 if (!strncmp(str, "panic", 5))
221 panic_on_timeout = 1;
222
223 return 0;
224}
225__setup("nmi_watchdog=", setup_nmi_watchdog);
diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c
index 923e9bbb9fe2..4638fba799e4 100644
--- a/arch/sparc/kernel/pci.c
+++ b/arch/sparc/kernel/pci.c
@@ -1077,6 +1077,7 @@ int pci_dma_supported(struct pci_dev *pdev, u64 device_mask)
1077 1077
1078 return (device_mask & dma_addr_mask) == dma_addr_mask; 1078 return (device_mask & dma_addr_mask) == dma_addr_mask;
1079} 1079}
1080EXPORT_SYMBOL(pci_dma_supported);
1080 1081
1081void pci_resource_to_user(const struct pci_dev *pdev, int bar, 1082void pci_resource_to_user(const struct pci_dev *pdev, int bar,
1082 const struct resource *rp, resource_size_t *start, 1083 const struct resource *rp, resource_size_t *start,
diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c
index 75ed98be3edf..85e7037429b9 100644
--- a/arch/sparc/kernel/pcic.c
+++ b/arch/sparc/kernel/pcic.c
@@ -956,6 +956,7 @@ void outsb(unsigned long addr, const void *src, unsigned long count)
956 /* addr += 1; */ 956 /* addr += 1; */
957 } 957 }
958} 958}
959EXPORT_SYMBOL(outsb);
959 960
960void outsw(unsigned long addr, const void *src, unsigned long count) 961void outsw(unsigned long addr, const void *src, unsigned long count)
961{ 962{
@@ -966,6 +967,7 @@ void outsw(unsigned long addr, const void *src, unsigned long count)
966 /* addr += 2; */ 967 /* addr += 2; */
967 } 968 }
968} 969}
970EXPORT_SYMBOL(outsw);
969 971
970void outsl(unsigned long addr, const void *src, unsigned long count) 972void outsl(unsigned long addr, const void *src, unsigned long count)
971{ 973{
@@ -976,6 +978,7 @@ void outsl(unsigned long addr, const void *src, unsigned long count)
976 /* addr += 4; */ 978 /* addr += 4; */
977 } 979 }
978} 980}
981EXPORT_SYMBOL(outsl);
979 982
980void insb(unsigned long addr, void *dst, unsigned long count) 983void insb(unsigned long addr, void *dst, unsigned long count)
981{ 984{
@@ -986,6 +989,7 @@ void insb(unsigned long addr, void *dst, unsigned long count)
986 /* addr += 1; */ 989 /* addr += 1; */
987 } 990 }
988} 991}
992EXPORT_SYMBOL(insb);
989 993
990void insw(unsigned long addr, void *dst, unsigned long count) 994void insw(unsigned long addr, void *dst, unsigned long count)
991{ 995{
@@ -996,6 +1000,7 @@ void insw(unsigned long addr, void *dst, unsigned long count)
996 /* addr += 2; */ 1000 /* addr += 2; */
997 } 1001 }
998} 1002}
1003EXPORT_SYMBOL(insw);
999 1004
1000void insl(unsigned long addr, void *dst, unsigned long count) 1005void insl(unsigned long addr, void *dst, unsigned long count)
1001{ 1006{
@@ -1009,5 +1014,6 @@ void insl(unsigned long addr, void *dst, unsigned long count)
1009 /* addr += 4; */ 1014 /* addr += 4; */
1010 } 1015 }
1011} 1016}
1017EXPORT_SYMBOL(insl);
1012 1018
1013subsys_initcall(pcic_init); 1019subsys_initcall(pcic_init);
diff --git a/arch/sparc/kernel/pcr.c b/arch/sparc/kernel/pcr.c
new file mode 100644
index 000000000000..1ae8cdd7e703
--- /dev/null
+++ b/arch/sparc/kernel/pcr.c
@@ -0,0 +1,158 @@
1/* pcr.c: Generic sparc64 performance counter infrastructure.
2 *
3 * Copyright (C) 2009 David S. Miller (davem@davemloft.net)
4 */
5#include <linux/kernel.h>
6#include <linux/module.h>
7#include <linux/init.h>
8#include <linux/irq.h>
9
10#include <asm/pil.h>
11#include <asm/pcr.h>
12#include <asm/nmi.h>
13
14/* This code is shared between various users of the performance
15 * counters. Users will be oprofile, pseudo-NMI watchdog, and the
16 * perf_counter support layer.
17 */
18
19#define PCR_SUN4U_ENABLE (PCR_PIC_PRIV | PCR_STRACE | PCR_UTRACE)
20#define PCR_N2_ENABLE (PCR_PIC_PRIV | PCR_STRACE | PCR_UTRACE | \
21 PCR_N2_TOE_OV1 | \
22 (2 << PCR_N2_SL1_SHIFT) | \
23 (0xff << PCR_N2_MASK1_SHIFT))
24
25u64 pcr_enable;
26unsigned int picl_shift;
27
28/* Performance counter interrupts run unmasked at PIL level 15.
29 * Therefore we can't do things like wakeups and other work
30 * that expects IRQ disabling to be adhered to in locking etc.
31 *
32 * Therefore in such situations we defer the work by signalling
33 * a lower level cpu IRQ.
34 */
35void deferred_pcr_work_irq(int irq, struct pt_regs *regs)
36{
37 clear_softint(1 << PIL_DEFERRED_PCR_WORK);
38}
39
40void schedule_deferred_pcr_work(void)
41{
42 set_softint(1 << PIL_DEFERRED_PCR_WORK);
43}
44
45const struct pcr_ops *pcr_ops;
46EXPORT_SYMBOL_GPL(pcr_ops);
47
48static u64 direct_pcr_read(void)
49{
50 u64 val;
51
52 read_pcr(val);
53 return val;
54}
55
56static void direct_pcr_write(u64 val)
57{
58 write_pcr(val);
59}
60
61static const struct pcr_ops direct_pcr_ops = {
62 .read = direct_pcr_read,
63 .write = direct_pcr_write,
64};
65
66static void n2_pcr_write(u64 val)
67{
68 unsigned long ret;
69
70 ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val);
71 if (val != HV_EOK)
72 write_pcr(val);
73}
74
75static const struct pcr_ops n2_pcr_ops = {
76 .read = direct_pcr_read,
77 .write = n2_pcr_write,
78};
79
80static unsigned long perf_hsvc_group;
81static unsigned long perf_hsvc_major;
82static unsigned long perf_hsvc_minor;
83
84static int __init register_perf_hsvc(void)
85{
86 if (tlb_type == hypervisor) {
87 switch (sun4v_chip_type) {
88 case SUN4V_CHIP_NIAGARA1:
89 perf_hsvc_group = HV_GRP_NIAG_PERF;
90 break;
91
92 case SUN4V_CHIP_NIAGARA2:
93 perf_hsvc_group = HV_GRP_N2_CPU;
94 break;
95
96 default:
97 return -ENODEV;
98 }
99
100
101 perf_hsvc_major = 1;
102 perf_hsvc_minor = 0;
103 if (sun4v_hvapi_register(perf_hsvc_group,
104 perf_hsvc_major,
105 &perf_hsvc_minor)) {
106 printk("perfmon: Could not register hvapi.\n");
107 return -ENODEV;
108 }
109 }
110 return 0;
111}
112
113static void __init unregister_perf_hsvc(void)
114{
115 if (tlb_type != hypervisor)
116 return;
117 sun4v_hvapi_unregister(perf_hsvc_group);
118}
119
120int __init pcr_arch_init(void)
121{
122 int err = register_perf_hsvc();
123
124 if (err)
125 return err;
126
127 switch (tlb_type) {
128 case hypervisor:
129 pcr_ops = &n2_pcr_ops;
130 pcr_enable = PCR_N2_ENABLE;
131 picl_shift = 2;
132 break;
133
134 case cheetah:
135 case cheetah_plus:
136 pcr_ops = &direct_pcr_ops;
137 pcr_enable = PCR_SUN4U_ENABLE;
138 break;
139
140 case spitfire:
141 /* UltraSPARC-I/II and derivatives lack a profile
142 * counter overflow interrupt so we can't make use of
143 * their hardware currently.
144 */
145 /* fallthrough */
146 default:
147 err = -ENODEV;
148 goto out_unregister;
149 }
150
151 return nmi_init();
152
153out_unregister:
154 unregister_perf_hsvc();
155 return err;
156}
157
158arch_initcall(pcr_arch_init);
diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c
index 5a8d8ced33da..f4bee35a1b46 100644
--- a/arch/sparc/kernel/process_32.c
+++ b/arch/sparc/kernel/process_32.c
@@ -44,6 +44,7 @@
44 * Set in pm platform drivers (apc.c and pmc.c) 44 * Set in pm platform drivers (apc.c and pmc.c)
45 */ 45 */
46void (*pm_idle)(void); 46void (*pm_idle)(void);
47EXPORT_SYMBOL(pm_idle);
47 48
48/* 49/*
49 * Power-off handler instantiation for pm.h compliance 50 * Power-off handler instantiation for pm.h compliance
@@ -673,6 +674,7 @@ pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
673 "g1", "g2", "g3", "o0", "o1", "memory", "cc"); 674 "g1", "g2", "g3", "o0", "o1", "memory", "cc");
674 return retval; 675 return retval;
675} 676}
677EXPORT_SYMBOL(kernel_thread);
676 678
677unsigned long get_wchan(struct task_struct *task) 679unsigned long get_wchan(struct task_struct *task)
678{ 680{
diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
index d5e2acef9877..a73954b87f0a 100644
--- a/arch/sparc/kernel/process_64.c
+++ b/arch/sparc/kernel/process_64.c
@@ -29,6 +29,7 @@
29#include <linux/cpu.h> 29#include <linux/cpu.h>
30#include <linux/elfcore.h> 30#include <linux/elfcore.h>
31#include <linux/sysrq.h> 31#include <linux/sysrq.h>
32#include <linux/nmi.h>
32 33
33#include <asm/uaccess.h> 34#include <asm/uaccess.h>
34#include <asm/system.h> 35#include <asm/system.h>
@@ -52,8 +53,10 @@
52 53
53static void sparc64_yield(int cpu) 54static void sparc64_yield(int cpu)
54{ 55{
55 if (tlb_type != hypervisor) 56 if (tlb_type != hypervisor) {
57 touch_nmi_watchdog();
56 return; 58 return;
59 }
57 60
58 clear_thread_flag(TIF_POLLING_NRFLAG); 61 clear_thread_flag(TIF_POLLING_NRFLAG);
59 smp_mb__after_clear_bit(); 62 smp_mb__after_clear_bit();
@@ -678,6 +681,7 @@ pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
678 "g1", "g2", "g3", "o0", "o1", "memory", "cc"); 681 "g1", "g2", "g3", "o0", "o1", "memory", "cc");
679 return retval; 682 return retval;
680} 683}
684EXPORT_SYMBOL(kernel_thread);
681 685
682typedef struct { 686typedef struct {
683 union { 687 union {
@@ -743,6 +747,7 @@ int dump_fpu (struct pt_regs * regs, elf_fpregset_t * fpregs)
743 } 747 }
744 return 1; 748 return 1;
745} 749}
750EXPORT_SYMBOL(dump_fpu);
746 751
747/* 752/*
748 * sparc_execve() executes a new program after the asm stub has set 753 * sparc_execve() executes a new program after the asm stub has set
diff --git a/arch/sparc/kernel/psycho_common.c b/arch/sparc/kernel/psycho_common.c
index 40689ae3c9b0..8f1478475421 100644
--- a/arch/sparc/kernel/psycho_common.c
+++ b/arch/sparc/kernel/psycho_common.c
@@ -11,19 +11,19 @@
11#include "iommu_common.h" 11#include "iommu_common.h"
12#include "psycho_common.h" 12#include "psycho_common.h"
13 13
14#define PSYCHO_STRBUF_CTRL_DENAB 0x0000000000000002UL 14#define PSYCHO_STRBUF_CTRL_DENAB 0x0000000000000002ULL
15#define PSYCHO_STCERR_WRITE 0x0000000000000002UL 15#define PSYCHO_STCERR_WRITE 0x0000000000000002ULL
16#define PSYCHO_STCERR_READ 0x0000000000000001UL 16#define PSYCHO_STCERR_READ 0x0000000000000001ULL
17#define PSYCHO_STCTAG_PPN 0x0fffffff00000000UL 17#define PSYCHO_STCTAG_PPN 0x0fffffff00000000ULL
18#define PSYCHO_STCTAG_VPN 0x00000000ffffe000UL 18#define PSYCHO_STCTAG_VPN 0x00000000ffffe000ULL
19#define PSYCHO_STCTAG_VALID 0x0000000000000002UL 19#define PSYCHO_STCTAG_VALID 0x0000000000000002ULL
20#define PSYCHO_STCTAG_WRITE 0x0000000000000001UL 20#define PSYCHO_STCTAG_WRITE 0x0000000000000001ULL
21#define PSYCHO_STCLINE_LINDX 0x0000000001e00000UL 21#define PSYCHO_STCLINE_LINDX 0x0000000001e00000ULL
22#define PSYCHO_STCLINE_SPTR 0x00000000001f8000UL 22#define PSYCHO_STCLINE_SPTR 0x00000000001f8000ULL
23#define PSYCHO_STCLINE_LADDR 0x0000000000007f00UL 23#define PSYCHO_STCLINE_LADDR 0x0000000000007f00ULL
24#define PSYCHO_STCLINE_EPTR 0x00000000000000fcUL 24#define PSYCHO_STCLINE_EPTR 0x00000000000000fcULL
25#define PSYCHO_STCLINE_VALID 0x0000000000000002UL 25#define PSYCHO_STCLINE_VALID 0x0000000000000002ULL
26#define PSYCHO_STCLINE_FOFN 0x0000000000000001UL 26#define PSYCHO_STCLINE_FOFN 0x0000000000000001ULL
27 27
28static DEFINE_SPINLOCK(stc_buf_lock); 28static DEFINE_SPINLOCK(stc_buf_lock);
29static unsigned long stc_error_buf[128]; 29static unsigned long stc_error_buf[128];
@@ -144,10 +144,10 @@ static void psycho_record_iommu_tags_and_data(struct pci_pbm_info *pbm,
144#define PSYCHO_IOMMU_TAG_WRITE (0x1UL << 21UL) 144#define PSYCHO_IOMMU_TAG_WRITE (0x1UL << 21UL)
145#define PSYCHO_IOMMU_TAG_STREAM (0x1UL << 20UL) 145#define PSYCHO_IOMMU_TAG_STREAM (0x1UL << 20UL)
146#define PSYCHO_IOMMU_TAG_SIZE (0x1UL << 19UL) 146#define PSYCHO_IOMMU_TAG_SIZE (0x1UL << 19UL)
147#define PSYCHO_IOMMU_TAG_VPAGE 0x7ffffUL 147#define PSYCHO_IOMMU_TAG_VPAGE 0x7ffffULL
148#define PSYCHO_IOMMU_DATA_VALID (1UL << 30UL) 148#define PSYCHO_IOMMU_DATA_VALID (1UL << 30UL)
149#define PSYCHO_IOMMU_DATA_CACHE (1UL << 28UL) 149#define PSYCHO_IOMMU_DATA_CACHE (1UL << 28UL)
150#define PSYCHO_IOMMU_DATA_PPAGE 0xfffffffUL 150#define PSYCHO_IOMMU_DATA_PPAGE 0xfffffffULL
151 151
152static void psycho_dump_iommu_tags_and_data(struct pci_pbm_info *pbm, 152static void psycho_dump_iommu_tags_and_data(struct pci_pbm_info *pbm,
153 u64 *tag, u64 *data) 153 u64 *tag, u64 *data)
@@ -190,7 +190,7 @@ static void psycho_dump_iommu_tags_and_data(struct pci_pbm_info *pbm,
190 pbm->name, i, 190 pbm->name, i,
191 ((data_val & PSYCHO_IOMMU_DATA_VALID) ? 1 : 0), 191 ((data_val & PSYCHO_IOMMU_DATA_VALID) ? 1 : 0),
192 ((data_val & PSYCHO_IOMMU_DATA_CACHE) ? 1 : 0), 192 ((data_val & PSYCHO_IOMMU_DATA_CACHE) ? 1 : 0),
193 (data_val & PSYCHO_IOMMU_DATA_PPAGE)<<IOMMU_PAGE_SHIFT); 193 (data_val & PSYCHO_IOMMU_DATA_PPAGE) << IOMMU_PAGE_SHIFT);
194 } 194 }
195} 195}
196 196
@@ -285,20 +285,20 @@ static irqreturn_t psycho_pcierr_intr_other(struct pci_pbm_info *pbm)
285 return ret; 285 return ret;
286} 286}
287 287
288#define PSYCHO_PCIAFSR_PMA 0x8000000000000000UL 288#define PSYCHO_PCIAFSR_PMA 0x8000000000000000ULL
289#define PSYCHO_PCIAFSR_PTA 0x4000000000000000UL 289#define PSYCHO_PCIAFSR_PTA 0x4000000000000000ULL
290#define PSYCHO_PCIAFSR_PRTRY 0x2000000000000000UL 290#define PSYCHO_PCIAFSR_PRTRY 0x2000000000000000ULL
291#define PSYCHO_PCIAFSR_PPERR 0x1000000000000000UL 291#define PSYCHO_PCIAFSR_PPERR 0x1000000000000000ULL
292#define PSYCHO_PCIAFSR_SMA 0x0800000000000000UL 292#define PSYCHO_PCIAFSR_SMA 0x0800000000000000ULL
293#define PSYCHO_PCIAFSR_STA 0x0400000000000000UL 293#define PSYCHO_PCIAFSR_STA 0x0400000000000000ULL
294#define PSYCHO_PCIAFSR_SRTRY 0x0200000000000000UL 294#define PSYCHO_PCIAFSR_SRTRY 0x0200000000000000ULL
295#define PSYCHO_PCIAFSR_SPERR 0x0100000000000000UL 295#define PSYCHO_PCIAFSR_SPERR 0x0100000000000000ULL
296#define PSYCHO_PCIAFSR_RESV1 0x00ff000000000000UL 296#define PSYCHO_PCIAFSR_RESV1 0x00ff000000000000ULL
297#define PSYCHO_PCIAFSR_BMSK 0x0000ffff00000000UL 297#define PSYCHO_PCIAFSR_BMSK 0x0000ffff00000000ULL
298#define PSYCHO_PCIAFSR_BLK 0x0000000080000000UL 298#define PSYCHO_PCIAFSR_BLK 0x0000000080000000ULL
299#define PSYCHO_PCIAFSR_RESV2 0x0000000040000000UL 299#define PSYCHO_PCIAFSR_RESV2 0x0000000040000000ULL
300#define PSYCHO_PCIAFSR_MID 0x000000003e000000UL 300#define PSYCHO_PCIAFSR_MID 0x000000003e000000ULL
301#define PSYCHO_PCIAFSR_RESV3 0x0000000001ffffffUL 301#define PSYCHO_PCIAFSR_RESV3 0x0000000001ffffffULL
302 302
303irqreturn_t psycho_pcierr_intr(int irq, void *dev_id) 303irqreturn_t psycho_pcierr_intr(int irq, void *dev_id)
304{ 304{
diff --git a/arch/sparc/kernel/sbus.c b/arch/sparc/kernel/sbus.c
index 2ead310066d1..406e0872504e 100644
--- a/arch/sparc/kernel/sbus.c
+++ b/arch/sparc/kernel/sbus.c
@@ -117,6 +117,7 @@ void sbus_set_sbus64(struct device *dev, int bursts)
117 val |= (1UL << 4UL); 117 val |= (1UL << 4UL);
118 upa_writeq(val, cfg_reg); 118 upa_writeq(val, cfg_reg);
119} 119}
120EXPORT_SYMBOL(sbus_set_sbus64);
120 121
121/* INO number to IMAP register offset for SYSIO external IRQ's. 122/* INO number to IMAP register offset for SYSIO external IRQ's.
122 * This should conform to both Sunfire/Wildfire server and Fusion 123 * This should conform to both Sunfire/Wildfire server and Fusion
diff --git a/arch/sparc/kernel/setup_32.c b/arch/sparc/kernel/setup_32.c
index c96c65d1b58b..998cadb4e7f2 100644
--- a/arch/sparc/kernel/setup_32.c
+++ b/arch/sparc/kernel/setup_32.c
@@ -199,7 +199,9 @@ extern unsigned short ram_flags;
199extern int root_mountflags; 199extern int root_mountflags;
200 200
201char reboot_command[COMMAND_LINE_SIZE]; 201char reboot_command[COMMAND_LINE_SIZE];
202
202enum sparc_cpu sparc_cpu_model; 203enum sparc_cpu sparc_cpu_model;
204EXPORT_SYMBOL(sparc_cpu_model);
203 205
204struct tt_entry *sparc_ttable; 206struct tt_entry *sparc_ttable;
205 207
@@ -391,6 +393,7 @@ void sun_do_break(void)
391 393
392 prom_cmdline(); 394 prom_cmdline();
393} 395}
396EXPORT_SYMBOL(sun_do_break);
394 397
395int stop_a_enabled = 1; 398int stop_a_enabled = 1;
396 399
diff --git a/arch/sparc/kernel/setup_64.c b/arch/sparc/kernel/setup_64.c
index 555db7452ebe..f2bcfd2967d7 100644
--- a/arch/sparc/kernel/setup_64.c
+++ b/arch/sparc/kernel/setup_64.c
@@ -58,6 +58,7 @@
58 * operations in asm/ns87303.h 58 * operations in asm/ns87303.h
59 */ 59 */
60DEFINE_SPINLOCK(ns87303_lock); 60DEFINE_SPINLOCK(ns87303_lock);
61EXPORT_SYMBOL(ns87303_lock);
61 62
62struct screen_info screen_info = { 63struct screen_info screen_info = {
63 0, 0, /* orig-x, orig-y */ 64 0, 0, /* orig-x, orig-y */
@@ -353,6 +354,7 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
353 seq_printf(m, 354 seq_printf(m,
354 "cpu\t\t: %s\n" 355 "cpu\t\t: %s\n"
355 "fpu\t\t: %s\n" 356 "fpu\t\t: %s\n"
357 "pmu\t\t: %s\n"
356 "prom\t\t: %s\n" 358 "prom\t\t: %s\n"
357 "type\t\t: %s\n" 359 "type\t\t: %s\n"
358 "ncpus probed\t: %d\n" 360 "ncpus probed\t: %d\n"
@@ -365,6 +367,7 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
365 , 367 ,
366 sparc_cpu_type, 368 sparc_cpu_type,
367 sparc_fpu_type, 369 sparc_fpu_type,
370 sparc_pmu_type,
368 prom_version, 371 prom_version,
369 ((tlb_type == hypervisor) ? 372 ((tlb_type == hypervisor) ?
370 "sun4v" : 373 "sun4v" :
@@ -425,5 +428,7 @@ void sun_do_break(void)
425 428
426 prom_cmdline(); 429 prom_cmdline();
427} 430}
431EXPORT_SYMBOL(sun_do_break);
428 432
429int stop_a_enabled = 1; 433int stop_a_enabled = 1;
434EXPORT_SYMBOL(stop_a_enabled);
diff --git a/arch/sparc/kernel/sparc_ksyms_32.c b/arch/sparc/kernel/sparc_ksyms_32.c
index e1e97639231b..baeab8720237 100644
--- a/arch/sparc/kernel/sparc_ksyms_32.c
+++ b/arch/sparc/kernel/sparc_ksyms_32.c
@@ -5,49 +5,14 @@
5 * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be) 5 * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be)
6 */ 6 */
7 7
8/* Tell string.h we don't want memcpy etc. as cpp defines */
9#define EXPORT_SYMTAB_STROPS
10#define PROMLIB_INTERNAL
11
12#include <linux/module.h> 8#include <linux/module.h>
13#include <linux/init.h> 9#include <linux/init.h>
14#include <linux/smp.h>
15#include <linux/types.h>
16#include <linux/string.h>
17#include <linux/sched.h>
18#include <linux/interrupt.h>
19#include <linux/in6.h>
20#include <linux/spinlock.h>
21#include <linux/mm.h>
22#include <linux/syscalls.h>
23#ifdef CONFIG_PCI
24#include <linux/pci.h>
25#endif
26#include <linux/pm.h>
27#ifdef CONFIG_HIGHMEM
28#include <linux/highmem.h>
29#endif
30 10
31#include <asm/oplib.h>
32#include <asm/delay.h>
33#include <asm/system.h>
34#include <asm/auxio.h>
35#include <asm/pgtable.h> 11#include <asm/pgtable.h>
36#include <asm/io.h>
37#include <asm/irq.h>
38#include <asm/idprom.h>
39#include <asm/head.h>
40#include <asm/smp.h>
41#include <asm/ptrace.h>
42#include <asm/uaccess.h> 12#include <asm/uaccess.h>
43#include <asm/checksum.h> 13#include <asm/delay.h>
44#ifdef CONFIG_SBUS 14#include <asm/head.h>
45#include <asm/dma.h> 15#include <asm/dma.h>
46#endif
47#include <asm/io-unit.h>
48#include <asm/bug.h>
49
50extern spinlock_t rtc_lock;
51 16
52struct poll { 17struct poll {
53 int fd; 18 int fd;
@@ -55,72 +20,15 @@ struct poll {
55 short revents; 20 short revents;
56}; 21};
57 22
58extern void (*__copy_1page)(void *, const void *); 23/* from entry.S */
59extern void __memmove(void *, const void *, __kernel_size_t);
60extern void (*bzero_1page)(void *);
61extern void *__bzero(void *, size_t);
62extern void *__memscan_zero(void *, size_t);
63extern void *__memscan_generic(void *, int, size_t);
64extern int __strncmp(const char *, const char *, __kernel_size_t);
65
66extern int __ashrdi3(int, int);
67extern int __ashldi3(int, int);
68extern int __lshrdi3(int, int);
69extern int __muldi3(int, int);
70extern int __divdi3(int, int);
71
72/* Private functions with odd calling conventions. */
73extern void ___atomic24_add(void);
74extern void ___atomic24_sub(void);
75extern void ___rw_read_enter(void);
76extern void ___rw_read_try(void);
77extern void ___rw_read_exit(void);
78extern void ___rw_write_enter(void);
79
80/* Alias functions whose names begin with "." and export the aliases.
81 * The module references will be fixed up by module_frob_arch_sections.
82 */
83extern int _Div(int, int);
84extern int _Mul(int, int);
85extern int _Rem(int, int);
86extern unsigned _Udiv(unsigned, unsigned);
87extern unsigned _Umul(unsigned, unsigned);
88extern unsigned _Urem(unsigned, unsigned);
89
90/* used by various drivers */
91EXPORT_SYMBOL(sparc_cpu_model);
92EXPORT_SYMBOL(kernel_thread);
93#ifdef CONFIG_SMP
94// XXX find what uses (or used) these. AV: see asm/spinlock.h
95EXPORT_SYMBOL(___rw_read_enter);
96EXPORT_SYMBOL(___rw_read_try);
97EXPORT_SYMBOL(___rw_read_exit);
98EXPORT_SYMBOL(___rw_write_enter);
99#endif
100
101EXPORT_SYMBOL(sparc_valid_addr_bitmap);
102EXPORT_SYMBOL(phys_base);
103EXPORT_SYMBOL(pfn_base);
104
105/* Atomic operations. */
106EXPORT_SYMBOL(___atomic24_add);
107EXPORT_SYMBOL(___atomic24_sub);
108
109/* Per-CPU information table */
110EXPORT_PER_CPU_SYMBOL(__cpu_data);
111
112#ifdef CONFIG_SMP
113/* IRQ implementation. */
114EXPORT_SYMBOL(synchronize_irq);
115#endif
116
117EXPORT_SYMBOL(__udelay); 24EXPORT_SYMBOL(__udelay);
118EXPORT_SYMBOL(__ndelay); 25EXPORT_SYMBOL(__ndelay);
119EXPORT_SYMBOL(rtc_lock);
120EXPORT_SYMBOL(set_auxio);
121EXPORT_SYMBOL(get_auxio);
122EXPORT_SYMBOL(io_remap_pfn_range);
123 26
27/* from head_32.S */
28EXPORT_SYMBOL(__ret_efault);
29EXPORT_SYMBOL(empty_zero_page);
30
31/* Defined using magic */
124#ifndef CONFIG_SMP 32#ifndef CONFIG_SMP
125EXPORT_SYMBOL(BTFIXUP_CALL(___xchg32)); 33EXPORT_SYMBOL(BTFIXUP_CALL(___xchg32));
126#else 34#else
@@ -132,122 +40,7 @@ EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_sgl));
132EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_one)); 40EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_one));
133EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_sgl)); 41EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_sgl));
134EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_one)); 42EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_one));
135
136EXPORT_SYMBOL(BTFIXUP_CALL(pgprot_noncached)); 43EXPORT_SYMBOL(BTFIXUP_CALL(pgprot_noncached));
137 44
138#ifdef CONFIG_SBUS 45/* Exporting a symbol from /init/main.c */
139EXPORT_SYMBOL(sbus_set_sbus64);
140#endif
141#ifdef CONFIG_PCI
142EXPORT_SYMBOL(insb);
143EXPORT_SYMBOL(outsb);
144EXPORT_SYMBOL(insw);
145EXPORT_SYMBOL(outsw);
146EXPORT_SYMBOL(insl);
147EXPORT_SYMBOL(outsl);
148EXPORT_SYMBOL(pci_alloc_consistent);
149EXPORT_SYMBOL(pci_free_consistent);
150EXPORT_SYMBOL(pci_map_single);
151EXPORT_SYMBOL(pci_unmap_single);
152EXPORT_SYMBOL(pci_dma_sync_single_for_cpu);
153EXPORT_SYMBOL(pci_dma_sync_single_for_device);
154EXPORT_SYMBOL(pci_dma_sync_sg_for_cpu);
155EXPORT_SYMBOL(pci_dma_sync_sg_for_device);
156EXPORT_SYMBOL(pci_map_sg);
157EXPORT_SYMBOL(pci_unmap_sg);
158EXPORT_SYMBOL(pci_map_page);
159EXPORT_SYMBOL(pci_unmap_page);
160/* Actually, ioremap/iounmap are not PCI specific. But it is ok for drivers. */
161EXPORT_SYMBOL(ioremap);
162EXPORT_SYMBOL(iounmap);
163#endif
164
165/* in arch/sparc/mm/highmem.c */
166#ifdef CONFIG_HIGHMEM
167EXPORT_SYMBOL(kmap_atomic);
168EXPORT_SYMBOL(kunmap_atomic);
169#endif
170
171/* prom symbols */
172EXPORT_SYMBOL(idprom);
173EXPORT_SYMBOL(prom_root_node);
174EXPORT_SYMBOL(prom_getchild);
175EXPORT_SYMBOL(prom_getsibling);
176EXPORT_SYMBOL(prom_searchsiblings);
177EXPORT_SYMBOL(prom_firstprop);
178EXPORT_SYMBOL(prom_nextprop);
179EXPORT_SYMBOL(prom_getproplen);
180EXPORT_SYMBOL(prom_getproperty);
181EXPORT_SYMBOL(prom_node_has_property);
182EXPORT_SYMBOL(prom_setprop);
183EXPORT_SYMBOL(saved_command_line); 46EXPORT_SYMBOL(saved_command_line);
184EXPORT_SYMBOL(prom_apply_obio_ranges);
185EXPORT_SYMBOL(prom_feval);
186EXPORT_SYMBOL(prom_getbool);
187EXPORT_SYMBOL(prom_getstring);
188EXPORT_SYMBOL(prom_getint);
189EXPORT_SYMBOL(prom_getintdefault);
190EXPORT_SYMBOL(prom_finddevice);
191EXPORT_SYMBOL(romvec);
192EXPORT_SYMBOL(__prom_getchild);
193EXPORT_SYMBOL(__prom_getsibling);
194
195/* sparc library symbols */
196EXPORT_SYMBOL(memscan);
197EXPORT_SYMBOL(strlen);
198EXPORT_SYMBOL(strncmp);
199EXPORT_SYMBOL(page_kernel);
200
201/* Special internal versions of library functions. */
202EXPORT_SYMBOL(__copy_1page);
203EXPORT_SYMBOL(__memcpy);
204EXPORT_SYMBOL(__memset);
205EXPORT_SYMBOL(bzero_1page);
206EXPORT_SYMBOL(__bzero);
207EXPORT_SYMBOL(__memscan_zero);
208EXPORT_SYMBOL(__memscan_generic);
209EXPORT_SYMBOL(__strncmp);
210EXPORT_SYMBOL(__memmove);
211
212/* Moving data to/from userspace. */
213EXPORT_SYMBOL(__copy_user);
214EXPORT_SYMBOL(__strncpy_from_user);
215EXPORT_SYMBOL(__strnlen_user);
216
217/* Networking helper routines. */
218EXPORT_SYMBOL(__csum_partial_copy_sparc_generic);
219EXPORT_SYMBOL(csum_partial);
220
221/* Cache flushing. */
222EXPORT_SYMBOL(sparc_flush_page_to_ram);
223
224/* For when serial stuff is built as modules. */
225EXPORT_SYMBOL(sun_do_break);
226
227EXPORT_SYMBOL(__ret_efault);
228
229EXPORT_SYMBOL(memcmp);
230EXPORT_SYMBOL(memcpy);
231EXPORT_SYMBOL(memset);
232EXPORT_SYMBOL(memmove);
233EXPORT_SYMBOL(__ashrdi3);
234EXPORT_SYMBOL(__ashldi3);
235EXPORT_SYMBOL(__lshrdi3);
236EXPORT_SYMBOL(__muldi3);
237EXPORT_SYMBOL(__divdi3);
238
239EXPORT_SYMBOL(_Rem);
240EXPORT_SYMBOL(_Urem);
241EXPORT_SYMBOL(_Mul);
242EXPORT_SYMBOL(_Umul);
243EXPORT_SYMBOL(_Div);
244EXPORT_SYMBOL(_Udiv);
245
246#ifdef CONFIG_DEBUG_BUGVERBOSE
247EXPORT_SYMBOL(do_BUG);
248#endif
249
250/* Sun Power Management Idle Handler */
251EXPORT_SYMBOL(pm_idle);
252
253EXPORT_SYMBOL(empty_zero_page);
diff --git a/arch/sparc/kernel/sparc_ksyms_64.c b/arch/sparc/kernel/sparc_ksyms_64.c
index 0133211ab634..0f26066a08d9 100644
--- a/arch/sparc/kernel/sparc_ksyms_64.c
+++ b/arch/sparc/kernel/sparc_ksyms_64.c
@@ -5,50 +5,15 @@
5 * Copyright (C) 1999 Jakub Jelinek (jj@ultra.linux.cz) 5 * Copyright (C) 1999 Jakub Jelinek (jj@ultra.linux.cz)
6 */ 6 */
7 7
8/* Tell string.h we don't want memcpy etc. as cpp defines */
9#define EXPORT_SYMTAB_STROPS
10#define PROMLIB_INTERNAL
11
12#include <linux/module.h> 8#include <linux/module.h>
13#include <linux/types.h>
14#include <linux/string.h>
15#include <linux/sched.h>
16#include <linux/in6.h>
17#include <linux/pci.h> 9#include <linux/pci.h>
18#include <linux/interrupt.h>
19#include <linux/fs_struct.h>
20#include <linux/fs.h>
21#include <linux/mm.h>
22#include <linux/socket.h>
23#include <linux/syscalls.h>
24#include <linux/percpu.h>
25#include <linux/init.h> 10#include <linux/init.h>
26#include <linux/rwsem.h>
27#include <net/compat.h>
28 11
29#include <asm/oplib.h>
30#include <asm/system.h> 12#include <asm/system.h>
31#include <asm/auxio.h>
32#include <asm/pgtable.h>
33#include <asm/io.h>
34#include <asm/irq.h>
35#include <asm/idprom.h>
36#include <asm/elf.h>
37#include <asm/head.h>
38#include <asm/smp.h>
39#include <asm/ptrace.h>
40#include <asm/uaccess.h>
41#include <asm/checksum.h>
42#include <asm/fpumacro.h>
43#include <asm/pgalloc.h>
44#include <asm/cacheflush.h>
45#ifdef CONFIG_SBUS
46#include <asm/dma.h>
47#endif
48#include <asm/ns87303.h>
49#include <asm/timer.h>
50#include <asm/cpudata.h> 13#include <asm/cpudata.h>
51#include <asm/ftrace.h> 14#include <asm/uaccess.h>
15#include <asm/spitfire.h>
16#include <asm/oplib.h>
52#include <asm/hypervisor.h> 17#include <asm/hypervisor.h>
53 18
54struct poll { 19struct poll {
@@ -57,114 +22,24 @@ struct poll {
57 short revents; 22 short revents;
58}; 23};
59 24
60extern void die_if_kernel(char *str, struct pt_regs *regs); 25/* from helpers.S */
61extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
62extern void *__bzero(void *, size_t);
63extern void *__memscan_zero(void *, size_t);
64extern void *__memscan_generic(void *, int, size_t);
65extern __kernel_size_t strlen(const char *);
66extern void sys_sigsuspend(void);
67extern int compat_sys_ioctl(unsigned int fd, unsigned int cmd, u32 arg);
68extern int (*handle_mathemu)(struct pt_regs *, struct fpustate *);
69extern long sparc32_open(const char __user * filename, int flags, int mode);
70extern int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long from,
71 unsigned long pfn, unsigned long size, pgprot_t prot);
72
73extern int __ashrdi3(int, int);
74
75extern int dump_fpu (struct pt_regs * regs, elf_fpregset_t * fpregs);
76
77extern void xor_vis_2(unsigned long, unsigned long *, unsigned long *);
78extern void xor_vis_3(unsigned long, unsigned long *, unsigned long *,
79 unsigned long *);
80extern void xor_vis_4(unsigned long, unsigned long *, unsigned long *,
81 unsigned long *, unsigned long *);
82extern void xor_vis_5(unsigned long, unsigned long *, unsigned long *,
83 unsigned long *, unsigned long *, unsigned long *);
84
85extern void xor_niagara_2(unsigned long, unsigned long *, unsigned long *);
86extern void xor_niagara_3(unsigned long, unsigned long *, unsigned long *,
87 unsigned long *);
88extern void xor_niagara_4(unsigned long, unsigned long *, unsigned long *,
89 unsigned long *, unsigned long *);
90extern void xor_niagara_5(unsigned long, unsigned long *, unsigned long *,
91 unsigned long *, unsigned long *, unsigned long *);
92
93/* Per-CPU information table */
94EXPORT_PER_CPU_SYMBOL(__cpu_data);
95
96/* used by various drivers */
97#ifdef CONFIG_SMP
98/* Out of line rw-locking implementation. */
99EXPORT_SYMBOL(__read_lock);
100EXPORT_SYMBOL(__read_unlock);
101EXPORT_SYMBOL(__write_lock);
102EXPORT_SYMBOL(__write_unlock);
103EXPORT_SYMBOL(__write_trylock);
104#endif /* CONFIG_SMP */
105
106#ifdef CONFIG_MCOUNT
107EXPORT_SYMBOL(_mcount);
108#endif
109
110EXPORT_SYMBOL(sparc64_get_clock_tick);
111
112/* RW semaphores */
113EXPORT_SYMBOL(__down_read);
114EXPORT_SYMBOL(__down_read_trylock);
115EXPORT_SYMBOL(__down_write);
116EXPORT_SYMBOL(__down_write_trylock);
117EXPORT_SYMBOL(__up_read);
118EXPORT_SYMBOL(__up_write);
119EXPORT_SYMBOL(__downgrade_write);
120
121/* Atomic counter implementation. */
122EXPORT_SYMBOL(atomic_add);
123EXPORT_SYMBOL(atomic_add_ret);
124EXPORT_SYMBOL(atomic_sub);
125EXPORT_SYMBOL(atomic_sub_ret);
126EXPORT_SYMBOL(atomic64_add);
127EXPORT_SYMBOL(atomic64_add_ret);
128EXPORT_SYMBOL(atomic64_sub);
129EXPORT_SYMBOL(atomic64_sub_ret);
130
131/* Atomic bit operations. */
132EXPORT_SYMBOL(test_and_set_bit);
133EXPORT_SYMBOL(test_and_clear_bit);
134EXPORT_SYMBOL(test_and_change_bit);
135EXPORT_SYMBOL(set_bit);
136EXPORT_SYMBOL(clear_bit);
137EXPORT_SYMBOL(change_bit);
138
139EXPORT_SYMBOL(__flushw_user); 26EXPORT_SYMBOL(__flushw_user);
27EXPORT_SYMBOL_GPL(real_hard_smp_processor_id);
140 28
29/* from head_64.S */
30EXPORT_SYMBOL(__ret_efault);
141EXPORT_SYMBOL(tlb_type); 31EXPORT_SYMBOL(tlb_type);
142EXPORT_SYMBOL(sun4v_chip_type); 32EXPORT_SYMBOL(sun4v_chip_type);
143EXPORT_SYMBOL(get_fb_unmapped_area); 33EXPORT_SYMBOL(prom_root_node);
144EXPORT_SYMBOL(flush_icache_range);
145
146EXPORT_SYMBOL(flush_dcache_page);
147#ifdef DCACHE_ALIASING_POSSIBLE
148EXPORT_SYMBOL(__flush_dcache_range);
149#endif
150 34
35/* from hvcalls.S */
151EXPORT_SYMBOL(sun4v_niagara_getperf); 36EXPORT_SYMBOL(sun4v_niagara_getperf);
152EXPORT_SYMBOL(sun4v_niagara_setperf); 37EXPORT_SYMBOL(sun4v_niagara_setperf);
153EXPORT_SYMBOL(sun4v_niagara2_getperf); 38EXPORT_SYMBOL(sun4v_niagara2_getperf);
154EXPORT_SYMBOL(sun4v_niagara2_setperf); 39EXPORT_SYMBOL(sun4v_niagara2_setperf);
155 40
156EXPORT_SYMBOL(auxio_set_led);
157EXPORT_SYMBOL(auxio_set_lte);
158#ifdef CONFIG_SBUS
159EXPORT_SYMBOL(sbus_set_sbus64);
160#endif
161EXPORT_SYMBOL(outsb);
162EXPORT_SYMBOL(outsw);
163EXPORT_SYMBOL(outsl);
164EXPORT_SYMBOL(insb);
165EXPORT_SYMBOL(insw);
166EXPORT_SYMBOL(insl);
167#ifdef CONFIG_PCI 41#ifdef CONFIG_PCI
42/* inline functions in asm/pci_64.h */
168EXPORT_SYMBOL(pci_alloc_consistent); 43EXPORT_SYMBOL(pci_alloc_consistent);
169EXPORT_SYMBOL(pci_free_consistent); 44EXPORT_SYMBOL(pci_free_consistent);
170EXPORT_SYMBOL(pci_map_single); 45EXPORT_SYMBOL(pci_map_single);
@@ -173,112 +48,7 @@ EXPORT_SYMBOL(pci_map_sg);
173EXPORT_SYMBOL(pci_unmap_sg); 48EXPORT_SYMBOL(pci_unmap_sg);
174EXPORT_SYMBOL(pci_dma_sync_single_for_cpu); 49EXPORT_SYMBOL(pci_dma_sync_single_for_cpu);
175EXPORT_SYMBOL(pci_dma_sync_sg_for_cpu); 50EXPORT_SYMBOL(pci_dma_sync_sg_for_cpu);
176EXPORT_SYMBOL(pci_dma_supported);
177#endif 51#endif
178 52
179/* I/O device mmaping on Sparc64. */ 53/* Exporting a symbol from /init/main.c */
180EXPORT_SYMBOL(io_remap_pfn_range);
181
182EXPORT_SYMBOL(dump_fpu);
183
184/* math-emu wants this */
185EXPORT_SYMBOL(die_if_kernel);
186
187/* Kernel thread creation. */
188EXPORT_SYMBOL(kernel_thread);
189
190/* prom symbols */
191EXPORT_SYMBOL(idprom);
192EXPORT_SYMBOL(prom_root_node);
193EXPORT_SYMBOL(prom_getchild);
194EXPORT_SYMBOL(prom_getsibling);
195EXPORT_SYMBOL(prom_searchsiblings);
196EXPORT_SYMBOL(prom_firstprop);
197EXPORT_SYMBOL(prom_nextprop);
198EXPORT_SYMBOL(prom_getproplen);
199EXPORT_SYMBOL(prom_getproperty);
200EXPORT_SYMBOL(prom_node_has_property);
201EXPORT_SYMBOL(prom_setprop);
202EXPORT_SYMBOL(saved_command_line); 54EXPORT_SYMBOL(saved_command_line);
203EXPORT_SYMBOL(prom_finddevice);
204EXPORT_SYMBOL(prom_feval);
205EXPORT_SYMBOL(prom_getbool);
206EXPORT_SYMBOL(prom_getstring);
207EXPORT_SYMBOL(prom_getint);
208EXPORT_SYMBOL(prom_getintdefault);
209EXPORT_SYMBOL(__prom_getchild);
210EXPORT_SYMBOL(__prom_getsibling);
211
212/* sparc library symbols */
213EXPORT_SYMBOL(strlen);
214EXPORT_SYMBOL(__strlen_user);
215EXPORT_SYMBOL(__strnlen_user);
216
217/* Special internal versions of library functions. */
218EXPORT_SYMBOL(_clear_page);
219EXPORT_SYMBOL(clear_user_page);
220EXPORT_SYMBOL(copy_user_page);
221EXPORT_SYMBOL(__bzero);
222EXPORT_SYMBOL(__memscan_zero);
223EXPORT_SYMBOL(__memscan_generic);
224EXPORT_SYMBOL(__memset);
225
226EXPORT_SYMBOL(csum_partial);
227EXPORT_SYMBOL(csum_partial_copy_nocheck);
228EXPORT_SYMBOL(__csum_partial_copy_from_user);
229EXPORT_SYMBOL(__csum_partial_copy_to_user);
230EXPORT_SYMBOL(ip_fast_csum);
231
232/* Moving data to/from/in userspace. */
233EXPORT_SYMBOL(___copy_to_user);
234EXPORT_SYMBOL(___copy_from_user);
235EXPORT_SYMBOL(___copy_in_user);
236EXPORT_SYMBOL(copy_to_user_fixup);
237EXPORT_SYMBOL(copy_from_user_fixup);
238EXPORT_SYMBOL(copy_in_user_fixup);
239EXPORT_SYMBOL(__strncpy_from_user);
240EXPORT_SYMBOL(__clear_user);
241
242/* Various address conversion macros use this. */
243EXPORT_SYMBOL(sparc64_valid_addr_bitmap);
244
245/* No version information on this, heavily used in inline asm,
246 * and will always be 'void __ret_efault(void)'.
247 */
248EXPORT_SYMBOL(__ret_efault);
249
250/* No version information on these, as gcc produces such symbols. */
251EXPORT_SYMBOL(memcmp);
252EXPORT_SYMBOL(memcpy);
253EXPORT_SYMBOL(memset);
254EXPORT_SYMBOL(memmove);
255EXPORT_SYMBOL(strncmp);
256
257void VISenter(void);
258/* RAID code needs this */
259EXPORT_SYMBOL(VISenter);
260
261/* for input/keybdev */
262EXPORT_SYMBOL(sun_do_break);
263EXPORT_SYMBOL(stop_a_enabled);
264
265#ifdef CONFIG_DEBUG_BUGVERBOSE
266EXPORT_SYMBOL(do_BUG);
267#endif
268
269/* for ns8703 */
270EXPORT_SYMBOL(ns87303_lock);
271
272EXPORT_SYMBOL(tick_ops);
273
274EXPORT_SYMBOL(xor_vis_2);
275EXPORT_SYMBOL(xor_vis_3);
276EXPORT_SYMBOL(xor_vis_4);
277EXPORT_SYMBOL(xor_vis_5);
278
279EXPORT_SYMBOL(xor_niagara_2);
280EXPORT_SYMBOL(xor_niagara_3);
281EXPORT_SYMBOL(xor_niagara_4);
282EXPORT_SYMBOL(xor_niagara_5);
283
284EXPORT_SYMBOL_GPL(real_hard_smp_processor_id);
diff --git a/arch/sparc/kernel/sun4d_smp.c b/arch/sparc/kernel/sun4d_smp.c
index 16ab0cb731c5..50afaed99c8a 100644
--- a/arch/sparc/kernel/sun4d_smp.c
+++ b/arch/sparc/kernel/sun4d_smp.c
@@ -60,7 +60,7 @@ extern int __smp4d_processor_id(void);
60#define SMP_PRINTK(x) 60#define SMP_PRINTK(x)
61#endif 61#endif
62 62
63static inline unsigned long swap(volatile unsigned long *ptr, unsigned long val) 63static inline unsigned long sun4d_swap(volatile unsigned long *ptr, unsigned long val)
64{ 64{
65 __asm__ __volatile__("swap [%1], %0\n\t" : 65 __asm__ __volatile__("swap [%1], %0\n\t" :
66 "=&r" (val), "=&r" (ptr) : 66 "=&r" (val), "=&r" (ptr) :
@@ -115,7 +115,7 @@ void __cpuinit smp4d_callin(void)
115 local_flush_tlb_all(); 115 local_flush_tlb_all();
116 116
117 /* Allow master to continue. */ 117 /* Allow master to continue. */
118 swap((unsigned long *)&cpu_callin_map[cpuid], 1); 118 sun4d_swap((unsigned long *)&cpu_callin_map[cpuid], 1);
119 local_flush_cache_all(); 119 local_flush_cache_all();
120 local_flush_tlb_all(); 120 local_flush_tlb_all();
121 121
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
index 39749e32dc7e..e2d102447a43 100644
--- a/arch/sparc/kernel/sys_sparc_64.c
+++ b/arch/sparc/kernel/sys_sparc_64.c
@@ -23,6 +23,7 @@
23#include <linux/ipc.h> 23#include <linux/ipc.h>
24#include <linux/personality.h> 24#include <linux/personality.h>
25#include <linux/random.h> 25#include <linux/random.h>
26#include <linux/module.h>
26 27
27#include <asm/uaccess.h> 28#include <asm/uaccess.h>
28#include <asm/utrap.h> 29#include <asm/utrap.h>
@@ -354,6 +355,7 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u
354 355
355 return addr; 356 return addr;
356} 357}
358EXPORT_SYMBOL(get_fb_unmapped_area);
357 359
358/* Essentially the same as PowerPC... */ 360/* Essentially the same as PowerPC... */
359void arch_pick_mmap_layout(struct mm_struct *mm) 361void arch_pick_mmap_layout(struct mm_struct *mm)
@@ -397,7 +399,7 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
397 } 399 }
398} 400}
399 401
400asmlinkage unsigned long sparc_brk(unsigned long brk) 402SYSCALL_DEFINE1(sparc_brk, unsigned long, brk)
401{ 403{
402 /* People could try to be nasty and use ta 0x6d in 32bit programs */ 404 /* People could try to be nasty and use ta 0x6d in 32bit programs */
403 if (test_thread_flag(TIF_32BIT) && brk >= STACK_TOP32) 405 if (test_thread_flag(TIF_32BIT) && brk >= STACK_TOP32)
@@ -413,7 +415,7 @@ asmlinkage unsigned long sparc_brk(unsigned long brk)
413 * sys_pipe() is the normal C calling standard for creating 415 * sys_pipe() is the normal C calling standard for creating
414 * a pipe. It's not the way unix traditionally does this, though. 416 * a pipe. It's not the way unix traditionally does this, though.
415 */ 417 */
416asmlinkage long sparc_pipe(struct pt_regs *regs) 418SYSCALL_DEFINE1(sparc_pipe_real, struct pt_regs *, regs)
417{ 419{
418 int fd[2]; 420 int fd[2];
419 int error; 421 int error;
@@ -433,8 +435,8 @@ out:
433 * This is really horribly ugly. 435 * This is really horribly ugly.
434 */ 436 */
435 437
436asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second, 438SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, unsigned long, second,
437 unsigned long third, void __user *ptr, long fifth) 439 unsigned long, third, void __user *, ptr, long, fifth)
438{ 440{
439 long err; 441 long err;
440 442
@@ -517,7 +519,7 @@ out:
517 return err; 519 return err;
518} 520}
519 521
520asmlinkage long sparc64_newuname(struct new_utsname __user *name) 522SYSCALL_DEFINE1(sparc64_newuname, struct new_utsname __user *, name)
521{ 523{
522 int ret = sys_newuname(name); 524 int ret = sys_newuname(name);
523 525
@@ -528,7 +530,7 @@ asmlinkage long sparc64_newuname(struct new_utsname __user *name)
528 return ret; 530 return ret;
529} 531}
530 532
531asmlinkage long sparc64_personality(unsigned long personality) 533SYSCALL_DEFINE1(sparc64_personality, unsigned long, personality)
532{ 534{
533 int ret; 535 int ret;
534 536
@@ -562,9 +564,9 @@ int sparc_mmap_check(unsigned long addr, unsigned long len)
562} 564}
563 565
564/* Linux version of mmap */ 566/* Linux version of mmap */
565asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len, 567SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len,
566 unsigned long prot, unsigned long flags, unsigned long fd, 568 unsigned long, prot, unsigned long, flags, unsigned long, fd,
567 unsigned long off) 569 unsigned long, off)
568{ 570{
569 struct file * file = NULL; 571 struct file * file = NULL;
570 unsigned long retval = -EBADF; 572 unsigned long retval = -EBADF;
@@ -587,7 +589,7 @@ out:
587 return retval; 589 return retval;
588} 590}
589 591
590asmlinkage long sys64_munmap(unsigned long addr, size_t len) 592SYSCALL_DEFINE2(64_munmap, unsigned long, addr, size_t, len)
591{ 593{
592 long ret; 594 long ret;
593 595
@@ -604,9 +606,9 @@ extern unsigned long do_mremap(unsigned long addr,
604 unsigned long old_len, unsigned long new_len, 606 unsigned long old_len, unsigned long new_len,
605 unsigned long flags, unsigned long new_addr); 607 unsigned long flags, unsigned long new_addr);
606 608
607asmlinkage unsigned long sys64_mremap(unsigned long addr, 609SYSCALL_DEFINE5(64_mremap, unsigned long, addr, unsigned long, old_len,
608 unsigned long old_len, unsigned long new_len, 610 unsigned long, new_len, unsigned long, flags,
609 unsigned long flags, unsigned long new_addr) 611 unsigned long, new_addr)
610{ 612{
611 unsigned long ret = -EINVAL; 613 unsigned long ret = -EINVAL;
612 614
@@ -669,7 +671,7 @@ asmlinkage void sparc_breakpoint(struct pt_regs *regs)
669 671
670extern void check_pending(int signum); 672extern void check_pending(int signum);
671 673
672asmlinkage long sys_getdomainname(char __user *name, int len) 674SYSCALL_DEFINE2(getdomainname, char __user *, name, int, len)
673{ 675{
674 int nlen, err; 676 int nlen, err;
675 677
@@ -692,11 +694,10 @@ out:
692 return err; 694 return err;
693} 695}
694 696
695asmlinkage long sys_utrap_install(utrap_entry_t type, 697SYSCALL_DEFINE5(utrap_install, utrap_entry_t, type,
696 utrap_handler_t new_p, 698 utrap_handler_t, new_p, utrap_handler_t, new_d,
697 utrap_handler_t new_d, 699 utrap_handler_t __user *, old_p,
698 utrap_handler_t __user *old_p, 700 utrap_handler_t __user *, old_d)
699 utrap_handler_t __user *old_d)
700{ 701{
701 if (type < UT_INSTRUCTION_EXCEPTION || type > UT_TRAP_INSTRUCTION_31) 702 if (type < UT_INSTRUCTION_EXCEPTION || type > UT_TRAP_INSTRUCTION_31)
702 return -EINVAL; 703 return -EINVAL;
@@ -762,11 +763,9 @@ asmlinkage long sparc_memory_ordering(unsigned long model,
762 return 0; 763 return 0;
763} 764}
764 765
765asmlinkage long sys_rt_sigaction(int sig, 766SYSCALL_DEFINE5(rt_sigaction, int, sig, const struct sigaction __user *, act,
766 const struct sigaction __user *act, 767 struct sigaction __user *, oact, void __user *, restorer,
767 struct sigaction __user *oact, 768 size_t, sigsetsize)
768 void __user *restorer,
769 size_t sigsetsize)
770{ 769{
771 struct k_sigaction new_ka, old_ka; 770 struct k_sigaction new_ka, old_ka;
772 int ret; 771 int ret;
@@ -806,7 +805,8 @@ asmlinkage void update_perfctrs(void)
806 reset_pic(); 805 reset_pic();
807} 806}
808 807
809asmlinkage long sys_perfctr(int opcode, unsigned long arg0, unsigned long arg1, unsigned long arg2) 808SYSCALL_DEFINE4(perfctr, int, opcode, unsigned long, arg0,
809 unsigned long, arg1, unsigned long, arg2)
810{ 810{
811 int err = 0; 811 int err = 0;
812 812
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
index 7a6786a71363..d150c2aa98d2 100644
--- a/arch/sparc/kernel/syscalls.S
+++ b/arch/sparc/kernel/syscalls.S
@@ -20,8 +20,8 @@ execve_merge:
20 add %sp, PTREGS_OFF, %o0 20 add %sp, PTREGS_OFF, %o0
21 21
22 .align 32 22 .align 32
23sys_pipe: 23sys_sparc_pipe:
24 ba,pt %xcc, sparc_pipe 24 ba,pt %xcc, sys_sparc_pipe_real
25 add %sp, PTREGS_OFF, %o0 25 add %sp, PTREGS_OFF, %o0
26sys_nis_syscall: 26sys_nis_syscall:
27 ba,pt %xcc, c_sys_nis_syscall 27 ba,pt %xcc, c_sys_nis_syscall
diff --git a/arch/sparc/kernel/systbls.h b/arch/sparc/kernel/systbls.h
index bc9f5dac4069..15c2d752b2bc 100644
--- a/arch/sparc/kernel/systbls.h
+++ b/arch/sparc/kernel/systbls.h
@@ -16,9 +16,6 @@ extern asmlinkage long sys_ipc(unsigned int call, int first,
16 void __user *ptr, long fifth); 16 void __user *ptr, long fifth);
17extern asmlinkage long sparc64_newuname(struct new_utsname __user *name); 17extern asmlinkage long sparc64_newuname(struct new_utsname __user *name);
18extern asmlinkage long sparc64_personality(unsigned long personality); 18extern asmlinkage long sparc64_personality(unsigned long personality);
19extern asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len,
20 unsigned long prot, unsigned long flags,
21 unsigned long fd, unsigned long off);
22extern asmlinkage long sys64_munmap(unsigned long addr, size_t len); 19extern asmlinkage long sys64_munmap(unsigned long addr, size_t len);
23extern asmlinkage unsigned long sys64_mremap(unsigned long addr, 20extern asmlinkage unsigned long sys64_mremap(unsigned long addr,
24 unsigned long old_len, 21 unsigned long old_len,
diff --git a/arch/sparc/kernel/systbls_32.S b/arch/sparc/kernel/systbls_32.S
index 7d0807586442..dccc95df0c7f 100644
--- a/arch/sparc/kernel/systbls_32.S
+++ b/arch/sparc/kernel/systbls_32.S
@@ -24,7 +24,7 @@ sys_call_table:
24/*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause 24/*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause
25/*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice 25/*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice
26/*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile 26/*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile
27/*40*/ .long sys_newlstat, sys_dup, sys_pipe, sys_times, sys_getuid 27/*40*/ .long sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_getuid
28/*45*/ .long sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16 28/*45*/ .long sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16
29/*50*/ .long sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, sys_ioctl 29/*50*/ .long sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, sys_ioctl
30/*55*/ .long sys_reboot, sys_mmap2, sys_symlink, sys_readlink, sys_execve 30/*55*/ .long sys_reboot, sys_mmap2, sys_symlink, sys_readlink, sys_execve
@@ -56,7 +56,7 @@ sys_call_table:
56/*185*/ .long sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname 56/*185*/ .long sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname
57/*190*/ .long sys_init_module, sys_personality, sparc_remap_file_pages, sys_epoll_create, sys_epoll_ctl 57/*190*/ .long sys_init_module, sys_personality, sparc_remap_file_pages, sys_epoll_create, sys_epoll_ctl
58/*195*/ .long sys_epoll_wait, sys_ioprio_set, sys_getppid, sparc_sigaction, sys_sgetmask 58/*195*/ .long sys_epoll_wait, sys_ioprio_set, sys_getppid, sparc_sigaction, sys_sgetmask
59/*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, old_readdir 59/*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, sys_old_readdir
60/*205*/ .long sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64 60/*205*/ .long sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
61/*210*/ .long sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo 61/*210*/ .long sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo
62/*215*/ .long sys_ipc, sys_sigreturn, sys_clone, sys_ioprio_get, sys_adjtimex 62/*215*/ .long sys_ipc, sys_sigreturn, sys_clone, sys_ioprio_get, sys_adjtimex
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S
index 9fc78cf354bd..f93c42a2b522 100644
--- a/arch/sparc/kernel/systbls_64.S
+++ b/arch/sparc/kernel/systbls_64.S
@@ -21,12 +21,12 @@ sys_call_table32:
21/*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write 21/*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write
22/*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link 22/*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link
23/*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys32_mknod 23/*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys32_mknod
24/*15*/ .word sys_chmod, sys_lchown16, sparc_brk, sys32_perfctr, sys32_lseek 24/*15*/ .word sys_chmod, sys_lchown16, sys_sparc_brk, sys32_perfctr, sys32_lseek
25/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16 25/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16
26/*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause 26/*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause
27/*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice 27/*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice
28 .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile 28 .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile
29/*40*/ .word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid 29/*40*/ .word compat_sys_newlstat, sys_dup, sys_sparc_pipe, compat_sys_times, sys_getuid
30 .word sys32_umount, sys_setgid16, sys_getgid16, sys32_signal, sys_geteuid16 30 .word sys32_umount, sys_setgid16, sys_getgid16, sys32_signal, sys_geteuid16
31/*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl 31/*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
32 .word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve 32 .word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve
@@ -55,8 +55,8 @@ sys_call_table32:
55/*170*/ .word sys32_lsetxattr, sys32_fsetxattr, sys_getxattr, sys_lgetxattr, compat_sys_getdents 55/*170*/ .word sys32_lsetxattr, sys32_fsetxattr, sys_getxattr, sys_lgetxattr, compat_sys_getdents
56 .word sys_setsid, sys_fchdir, sys32_fgetxattr, sys_listxattr, sys_llistxattr 56 .word sys_setsid, sys_fchdir, sys32_fgetxattr, sys_listxattr, sys_llistxattr
57/*180*/ .word sys32_flistxattr, sys_removexattr, sys_lremovexattr, compat_sys_sigpending, sys_ni_syscall 57/*180*/ .word sys32_flistxattr, sys_removexattr, sys_lremovexattr, compat_sys_sigpending, sys_ni_syscall
58 .word sys32_setpgid, sys32_fremovexattr, sys32_tkill, sys32_exit_group, sparc64_newuname 58 .word sys32_setpgid, sys32_fremovexattr, sys32_tkill, sys32_exit_group, sys_sparc64_newuname
59/*190*/ .word sys32_init_module, sparc64_personality, sys_remap_file_pages, sys32_epoll_create, sys32_epoll_ctl 59/*190*/ .word sys32_init_module, sys_sparc64_personality, sys_remap_file_pages, sys32_epoll_create, sys32_epoll_ctl
60 .word sys32_epoll_wait, sys32_ioprio_set, sys_getppid, sys32_sigaction, sys_sgetmask 60 .word sys32_epoll_wait, sys32_ioprio_set, sys_getppid, sys32_sigaction, sys_sgetmask
61/*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir 61/*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir
62 .word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64 62 .word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64
@@ -95,18 +95,18 @@ sys_call_table:
95/*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write 95/*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write
96/*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link 96/*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link
97/*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod 97/*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod
98/*15*/ .word sys_chmod, sys_lchown, sparc_brk, sys_perfctr, sys_lseek 98/*15*/ .word sys_chmod, sys_lchown, sys_sparc_brk, sys_perfctr, sys_lseek
99/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid 99/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid
100/*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall 100/*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall
101/*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice 101/*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice
102 .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64 102 .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64
103/*40*/ .word sys_newlstat, sys_dup, sys_pipe, sys_times, sys_nis_syscall 103/*40*/ .word sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_nis_syscall
104 .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid 104 .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid
105/*50*/ .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl 105/*50*/ .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl
106 .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve 106 .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve
107/*60*/ .word sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize 107/*60*/ .word sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize
108 .word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall 108 .word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall
109/*70*/ .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys64_munmap, sys_mprotect 109/*70*/ .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys_64_munmap, sys_mprotect
110 .word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups 110 .word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups
111/*80*/ .word sys_setgroups, sys_getpgrp, sys_nis_syscall, sys_setitimer, sys_nis_syscall 111/*80*/ .word sys_setgroups, sys_getpgrp, sys_nis_syscall, sys_setitimer, sys_nis_syscall
112 .word sys_swapon, sys_getitimer, sys_nis_syscall, sys_sethostname, sys_nis_syscall 112 .word sys_swapon, sys_getitimer, sys_nis_syscall, sys_sethostname, sys_nis_syscall
@@ -129,8 +129,8 @@ sys_call_table:
129/*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents 129/*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents
130 .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr 130 .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr
131/*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall 131/*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall
132 .word sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sparc64_newuname 132 .word sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_sparc64_newuname
133/*190*/ .word sys_init_module, sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl 133/*190*/ .word sys_init_module, sys_sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl
134 .word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask 134 .word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask
135/*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall 135/*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall
136 .word sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64 136 .word sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
@@ -142,7 +142,7 @@ sys_call_table:
142 .word sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall 142 .word sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall
143/*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler 143/*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler
144 .word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep 144 .word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep
145/*250*/ .word sys64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl 145/*250*/ .word sys_64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl
146 .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep 146 .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
147/*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun 147/*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
148 .word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy 148 .word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy
diff --git a/arch/sparc/kernel/time_32.c b/arch/sparc/kernel/time_32.c
index 00f7383c7657..614ac7b4a9dd 100644
--- a/arch/sparc/kernel/time_32.c
+++ b/arch/sparc/kernel/time_32.c
@@ -48,6 +48,8 @@
48#include "irq.h" 48#include "irq.h"
49 49
50DEFINE_SPINLOCK(rtc_lock); 50DEFINE_SPINLOCK(rtc_lock);
51EXPORT_SYMBOL(rtc_lock);
52
51static int set_rtc_mmss(unsigned long); 53static int set_rtc_mmss(unsigned long);
52static int sbus_do_settimeofday(struct timespec *tv); 54static int sbus_do_settimeofday(struct timespec *tv);
53 55
diff --git a/arch/sparc/kernel/time_64.c b/arch/sparc/kernel/time_64.c
index 54405d362148..db310aa00183 100644
--- a/arch/sparc/kernel/time_64.c
+++ b/arch/sparc/kernel/time_64.c
@@ -176,6 +176,7 @@ static struct sparc64_tick_ops tick_operations __read_mostly = {
176}; 176};
177 177
178struct sparc64_tick_ops *tick_ops __read_mostly = &tick_operations; 178struct sparc64_tick_ops *tick_ops __read_mostly = &tick_operations;
179EXPORT_SYMBOL(tick_ops);
179 180
180static void stick_disable_irq(void) 181static void stick_disable_irq(void)
181{ 182{
@@ -639,6 +640,7 @@ unsigned long sparc64_get_clock_tick(unsigned int cpu)
639 return ft->clock_tick_ref; 640 return ft->clock_tick_ref;
640 return cpu_data(cpu).clock_tick; 641 return cpu_data(cpu).clock_tick;
641} 642}
643EXPORT_SYMBOL(sparc64_get_clock_tick);
642 644
643#ifdef CONFIG_CPU_FREQ 645#ifdef CONFIG_CPU_FREQ
644 646
@@ -727,7 +729,7 @@ void timer_interrupt(int irq, struct pt_regs *regs)
727 729
728 irq_enter(); 730 irq_enter();
729 731
730 kstat_this_cpu.irqs[0]++; 732 kstat_incr_irqs_this_cpu(0, irq_to_desc(0));
731 733
732 if (unlikely(!evt->event_handler)) { 734 if (unlikely(!evt->event_handler)) {
733 printk(KERN_WARNING 735 printk(KERN_WARNING
diff --git a/arch/sparc/kernel/traps_32.c b/arch/sparc/kernel/traps_32.c
index 213645be6e92..358283341b47 100644
--- a/arch/sparc/kernel/traps_32.c
+++ b/arch/sparc/kernel/traps_32.c
@@ -424,6 +424,7 @@ void do_BUG(const char *file, int line)
424 // bust_spinlocks(1); XXX Not in our original BUG() 424 // bust_spinlocks(1); XXX Not in our original BUG()
425 printk("kernel BUG at %s:%d!\n", file, line); 425 printk("kernel BUG at %s:%d!\n", file, line);
426} 426}
427EXPORT_SYMBOL(do_BUG);
427#endif 428#endif
428 429
429/* Since we have our mappings set up, on multiprocessors we can spin them 430/* Since we have our mappings set up, on multiprocessors we can spin them
diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
index bca3b4e09c41..d809c4ebb48f 100644
--- a/arch/sparc/kernel/traps_64.c
+++ b/arch/sparc/kernel/traps_64.c
@@ -1,6 +1,6 @@
1/* arch/sparc64/kernel/traps.c 1/* arch/sparc64/kernel/traps.c
2 * 2 *
3 * Copyright (C) 1995,1997,2008 David S. Miller (davem@davemloft.net) 3 * Copyright (C) 1995,1997,2008,2009 David S. Miller (davem@davemloft.net)
4 * Copyright (C) 1997,1999,2000 Jakub Jelinek (jakub@redhat.com) 4 * Copyright (C) 1997,1999,2000 Jakub Jelinek (jakub@redhat.com)
5 */ 5 */
6 6
@@ -128,6 +128,7 @@ void do_BUG(const char *file, int line)
128 bust_spinlocks(1); 128 bust_spinlocks(1);
129 printk("kernel BUG at %s:%d!\n", file, line); 129 printk("kernel BUG at %s:%d!\n", file, line);
130} 130}
131EXPORT_SYMBOL(do_BUG);
131#endif 132#endif
132 133
133static DEFINE_SPINLOCK(dimm_handler_lock); 134static DEFINE_SPINLOCK(dimm_handler_lock);
@@ -313,6 +314,21 @@ void sun4v_data_access_exception(struct pt_regs *regs, unsigned long addr, unsig
313 return; 314 return;
314 315
315 if (regs->tstate & TSTATE_PRIV) { 316 if (regs->tstate & TSTATE_PRIV) {
317 /* Test if this comes from uaccess places. */
318 const struct exception_table_entry *entry;
319
320 entry = search_exception_tables(regs->tpc);
321 if (entry) {
322 /* Ouch, somebody is trying VM hole tricks on us... */
323#ifdef DEBUG_EXCEPTIONS
324 printk("Exception: PC<%016lx> faddr<UNKNOWN>\n", regs->tpc);
325 printk("EX_TABLE: insn<%016lx> fixup<%016lx>\n",
326 regs->tpc, entry->fixup);
327#endif
328 regs->tpc = entry->fixup;
329 regs->tnpc = regs->tpc + 4;
330 return;
331 }
316 printk("sun4v_data_access_exception: ADDR[%016lx] " 332 printk("sun4v_data_access_exception: ADDR[%016lx] "
317 "CTX[%04x] TYPE[%04x], going.\n", 333 "CTX[%04x] TYPE[%04x], going.\n",
318 addr, ctx, type); 334 addr, ctx, type);
@@ -2261,6 +2277,7 @@ void die_if_kernel(char *str, struct pt_regs *regs)
2261 do_exit(SIGKILL); 2277 do_exit(SIGKILL);
2262 do_exit(SIGSEGV); 2278 do_exit(SIGSEGV);
2263} 2279}
2280EXPORT_SYMBOL(die_if_kernel);
2264 2281
2265#define VIS_OPCODE_MASK ((0x3 << 30) | (0x3f << 19)) 2282#define VIS_OPCODE_MASK ((0x3 << 30) | (0x3f << 19))
2266#define VIS_OPCODE_VAL ((0x2 << 30) | (0x36 << 19)) 2283#define VIS_OPCODE_VAL ((0x2 << 30) | (0x36 << 19))
diff --git a/arch/sparc/kernel/ttable.S b/arch/sparc/kernel/ttable.S
index ea925503b42e..d9bdfb9d5c18 100644
--- a/arch/sparc/kernel/ttable.S
+++ b/arch/sparc/kernel/ttable.S
@@ -63,7 +63,8 @@ tl0_irq6: TRAP_IRQ(smp_call_function_single_client, 6)
63#else 63#else
64tl0_irq6: BTRAP(0x46) 64tl0_irq6: BTRAP(0x46)
65#endif 65#endif
66tl0_irq7: BTRAP(0x47) BTRAP(0x48) BTRAP(0x49) 66tl0_irq7: TRAP_IRQ(deferred_pcr_work_irq, 7)
67tl0_irq8: BTRAP(0x48) BTRAP(0x49)
67tl0_irq10: BTRAP(0x4a) BTRAP(0x4b) BTRAP(0x4c) BTRAP(0x4d) 68tl0_irq10: BTRAP(0x4a) BTRAP(0x4b) BTRAP(0x4c) BTRAP(0x4d)
68tl0_irq14: TRAP_IRQ(timer_interrupt, 14) 69tl0_irq14: TRAP_IRQ(timer_interrupt, 14)
69tl0_irq15: TRAP_NMI_IRQ(perfctr_irq, 15) 70tl0_irq15: TRAP_NMI_IRQ(perfctr_irq, 15)
diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c
index f164d5a850f9..379209982a07 100644
--- a/arch/sparc/kernel/unaligned_64.c
+++ b/arch/sparc/kernel/unaligned_64.c
@@ -589,7 +589,6 @@ void handle_lddfmna(struct pt_regs *regs, unsigned long sfar, unsigned long sfsr
589 unsigned long pc = regs->tpc; 589 unsigned long pc = regs->tpc;
590 unsigned long tstate = regs->tstate; 590 unsigned long tstate = regs->tstate;
591 u32 insn; 591 u32 insn;
592 u32 first, second;
593 u64 value; 592 u64 value;
594 u8 freg; 593 u8 freg;
595 int flag; 594 int flag;
@@ -601,19 +600,20 @@ void handle_lddfmna(struct pt_regs *regs, unsigned long sfar, unsigned long sfsr
601 pc = (u32)pc; 600 pc = (u32)pc;
602 if (get_user(insn, (u32 __user *) pc) != -EFAULT) { 601 if (get_user(insn, (u32 __user *) pc) != -EFAULT) {
603 int asi = decode_asi(insn, regs); 602 int asi = decode_asi(insn, regs);
603 u32 first, second;
604 int err; 604 int err;
605 605
606 if ((asi > ASI_SNFL) || 606 if ((asi > ASI_SNFL) ||
607 (asi < ASI_P)) 607 (asi < ASI_P))
608 goto daex; 608 goto daex;
609 first = second = 0;
609 err = get_user(first, (u32 __user *)sfar); 610 err = get_user(first, (u32 __user *)sfar);
610 if (!err) 611 if (!err)
611 err = get_user(second, (u32 __user *)(sfar + 4)); 612 err = get_user(second, (u32 __user *)(sfar + 4));
612 if (err) { 613 if (err) {
613 if (asi & 0x2) /* NF */ { 614 if (!(asi & 0x2))
614 first = 0; second = 0;
615 } else
616 goto daex; 615 goto daex;
616 first = second = 0;
617 } 617 }
618 save_and_clear_fpu(); 618 save_and_clear_fpu();
619 freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20); 619 freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20);
diff --git a/arch/sparc/lib/GENbzero.S b/arch/sparc/lib/GENbzero.S
index 6a4f956a2f7a..8e7a843ddd88 100644
--- a/arch/sparc/lib/GENbzero.S
+++ b/arch/sparc/lib/GENbzero.S
@@ -6,13 +6,9 @@
6 6
7#define EX_ST(x,y) \ 7#define EX_ST(x,y) \
898: x,y; \ 898: x,y; \
9 .section .fixup; \
10 .align 4; \
1199: retl; \
12 mov %o1, %o0; \
13 .section __ex_table,"a";\ 9 .section __ex_table,"a";\
14 .align 4; \ 10 .align 4; \
15 .word 98b, 99b; \ 11 .word 98b, __retl_o1; \
16 .text; \ 12 .text; \
17 .align 4; 13 .align 4;
18 14
diff --git a/arch/sparc/lib/GENcopy_from_user.S b/arch/sparc/lib/GENcopy_from_user.S
index 2b9df99e87f9..b7d0bd6b1406 100644
--- a/arch/sparc/lib/GENcopy_from_user.S
+++ b/arch/sparc/lib/GENcopy_from_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_LD(x) \ 6#define EX_LD(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
@@ -27,7 +23,7 @@
27#define PREAMBLE \ 23#define PREAMBLE \
28 rd %asi, %g1; \ 24 rd %asi, %g1; \
29 cmp %g1, ASI_AIUS; \ 25 cmp %g1, ASI_AIUS; \
30 bne,pn %icc, memcpy_user_stub; \ 26 bne,pn %icc, ___copy_in_user; \
31 nop 27 nop
32#endif 28#endif
33 29
diff --git a/arch/sparc/lib/GENcopy_to_user.S b/arch/sparc/lib/GENcopy_to_user.S
index bb3f7084daf9..780550e1afc7 100644
--- a/arch/sparc/lib/GENcopy_to_user.S
+++ b/arch/sparc/lib/GENcopy_to_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_ST(x) \ 6#define EX_ST(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
@@ -31,7 +27,7 @@
31#define PREAMBLE \ 27#define PREAMBLE \
32 rd %asi, %g1; \ 28 rd %asi, %g1; \
33 cmp %g1, ASI_AIUS; \ 29 cmp %g1, ASI_AIUS; \
34 bne,pn %icc, memcpy_user_stub; \ 30 bne,pn %icc, ___copy_in_user; \
35 nop 31 nop
36#endif 32#endif
37 33
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
index 375016e19144..e75faf0e59ae 100644
--- a/arch/sparc/lib/Makefile
+++ b/arch/sparc/lib/Makefile
@@ -18,7 +18,7 @@ lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
18lib-y += rwsem_$(BITS).o 18lib-y += rwsem_$(BITS).o
19lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o 19lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o
20 20
21lib-$(CONFIG_SPARC64) += PeeCeeI.o copy_page.o clear_page.o bzero.o 21lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o
22lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o 22lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o
23lib-$(CONFIG_SPARC64) += VISsave.o 23lib-$(CONFIG_SPARC64) += VISsave.o
24lib-$(CONFIG_SPARC64) += bitops.o 24lib-$(CONFIG_SPARC64) += bitops.o
@@ -42,3 +42,5 @@ lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o
42 42
43obj-y += iomap.o 43obj-y += iomap.o
44obj-$(CONFIG_SPARC32) += atomic32.o 44obj-$(CONFIG_SPARC32) += atomic32.o
45obj-y += ksyms.o
46obj-$(CONFIG_SPARC64) += PeeCeeI.o
diff --git a/arch/sparc/lib/NG2copy_from_user.S b/arch/sparc/lib/NG2copy_from_user.S
index c77ef5f22102..119ccb9a54f4 100644
--- a/arch/sparc/lib/NG2copy_from_user.S
+++ b/arch/sparc/lib/NG2copy_from_user.S
@@ -5,14 +5,9 @@
5 5
6#define EX_LD(x) \ 6#define EX_LD(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: wr %g0, ASI_AIUS, %asi;\
11 retl; \
12 mov 1, %o0; \
13 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
14 .align 4; \ 9 .align 4; \
15 .word 98b, 99b; \ 10 .word 98b, __retl_one_asi;\
16 .text; \ 11 .text; \
17 .align 4; 12 .align 4;
18 13
@@ -33,7 +28,7 @@
33#define PREAMBLE \ 28#define PREAMBLE \
34 rd %asi, %g1; \ 29 rd %asi, %g1; \
35 cmp %g1, ASI_AIUS; \ 30 cmp %g1, ASI_AIUS; \
36 bne,pn %icc, memcpy_user_stub; \ 31 bne,pn %icc, ___copy_in_user; \
37 nop 32 nop
38#endif 33#endif
39 34
diff --git a/arch/sparc/lib/NG2copy_to_user.S b/arch/sparc/lib/NG2copy_to_user.S
index 4bd4093acbbd..7fe1ccefd9d0 100644
--- a/arch/sparc/lib/NG2copy_to_user.S
+++ b/arch/sparc/lib/NG2copy_to_user.S
@@ -5,14 +5,9 @@
5 5
6#define EX_ST(x) \ 6#define EX_ST(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: wr %g0, ASI_AIUS, %asi;\
11 retl; \
12 mov 1, %o0; \
13 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
14 .align 4; \ 9 .align 4; \
15 .word 98b, 99b; \ 10 .word 98b, __retl_one_asi;\
16 .text; \ 11 .text; \
17 .align 4; 12 .align 4;
18 13
@@ -42,7 +37,7 @@
42#define PREAMBLE \ 37#define PREAMBLE \
43 rd %asi, %g1; \ 38 rd %asi, %g1; \
44 cmp %g1, ASI_AIUS; \ 39 cmp %g1, ASI_AIUS; \
45 bne,pn %icc, memcpy_user_stub; \ 40 bne,pn %icc, ___copy_in_user; \
46 nop 41 nop
47#endif 42#endif
48 43
diff --git a/arch/sparc/lib/NGbzero.S b/arch/sparc/lib/NGbzero.S
index 814d5f7a45e1..beab29bf419b 100644
--- a/arch/sparc/lib/NGbzero.S
+++ b/arch/sparc/lib/NGbzero.S
@@ -6,13 +6,9 @@
6 6
7#define EX_ST(x,y) \ 7#define EX_ST(x,y) \
898: x,y; \ 898: x,y; \
9 .section .fixup; \
10 .align 4; \
1199: retl; \
12 mov %o1, %o0; \
13 .section __ex_table,"a";\ 9 .section __ex_table,"a";\
14 .align 4; \ 10 .align 4; \
15 .word 98b, 99b; \ 11 .word 98b, __retl_o1; \
16 .text; \ 12 .text; \
17 .align 4; 13 .align 4;
18 14
diff --git a/arch/sparc/lib/NGcopy_from_user.S b/arch/sparc/lib/NGcopy_from_user.S
index e7f433f71b42..5d1e4d1ac21e 100644
--- a/arch/sparc/lib/NGcopy_from_user.S
+++ b/arch/sparc/lib/NGcopy_from_user.S
@@ -5,14 +5,9 @@
5 5
6#define EX_LD(x) \ 6#define EX_LD(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: wr %g0, ASI_AIUS, %asi;\
11 ret; \
12 restore %g0, 1, %o0; \
13 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
14 .align 4; \ 9 .align 4; \
15 .word 98b, 99b; \ 10 .word 98b, __ret_one_asi;\
16 .text; \ 11 .text; \
17 .align 4; 12 .align 4;
18 13
@@ -30,7 +25,7 @@
30#define PREAMBLE \ 25#define PREAMBLE \
31 rd %asi, %g1; \ 26 rd %asi, %g1; \
32 cmp %g1, ASI_AIUS; \ 27 cmp %g1, ASI_AIUS; \
33 bne,pn %icc, memcpy_user_stub; \ 28 bne,pn %icc, ___copy_in_user; \
34 nop 29 nop
35#endif 30#endif
36 31
diff --git a/arch/sparc/lib/NGcopy_to_user.S b/arch/sparc/lib/NGcopy_to_user.S
index 6ea01c5532a0..ff630dcb273c 100644
--- a/arch/sparc/lib/NGcopy_to_user.S
+++ b/arch/sparc/lib/NGcopy_to_user.S
@@ -5,14 +5,9 @@
5 5
6#define EX_ST(x) \ 6#define EX_ST(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: wr %g0, ASI_AIUS, %asi;\
11 ret; \
12 restore %g0, 1, %o0; \
13 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
14 .align 4; \ 9 .align 4; \
15 .word 98b, 99b; \ 10 .word 98b, __ret_one_asi;\
16 .text; \ 11 .text; \
17 .align 4; 12 .align 4;
18 13
@@ -33,7 +28,7 @@
33#define PREAMBLE \ 28#define PREAMBLE \
34 rd %asi, %g1; \ 29 rd %asi, %g1; \
35 cmp %g1, ASI_AIUS; \ 30 cmp %g1, ASI_AIUS; \
36 bne,pn %icc, memcpy_user_stub; \ 31 bne,pn %icc, ___copy_in_user; \
37 nop 32 nop
38#endif 33#endif
39 34
diff --git a/arch/sparc/lib/PeeCeeI.c b/arch/sparc/lib/PeeCeeI.c
index 46053e6ddd7b..6529f8657597 100644
--- a/arch/sparc/lib/PeeCeeI.c
+++ b/arch/sparc/lib/PeeCeeI.c
@@ -4,6 +4,8 @@
4 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) 4 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
5 */ 5 */
6 6
7#include <linux/module.h>
8
7#include <asm/io.h> 9#include <asm/io.h>
8#include <asm/byteorder.h> 10#include <asm/byteorder.h>
9 11
@@ -15,6 +17,7 @@ void outsb(unsigned long __addr, const void *src, unsigned long count)
15 while (count--) 17 while (count--)
16 outb(*p++, addr); 18 outb(*p++, addr);
17} 19}
20EXPORT_SYMBOL(outsb);
18 21
19void outsw(unsigned long __addr, const void *src, unsigned long count) 22void outsw(unsigned long __addr, const void *src, unsigned long count)
20{ 23{
@@ -25,6 +28,7 @@ void outsw(unsigned long __addr, const void *src, unsigned long count)
25 src += sizeof(u16); 28 src += sizeof(u16);
26 } 29 }
27} 30}
31EXPORT_SYMBOL(outsw);
28 32
29void outsl(unsigned long __addr, const void *src, unsigned long count) 33void outsl(unsigned long __addr, const void *src, unsigned long count)
30{ 34{
@@ -78,6 +82,7 @@ void outsl(unsigned long __addr, const void *src, unsigned long count)
78 break; 82 break;
79 } 83 }
80} 84}
85EXPORT_SYMBOL(outsl);
81 86
82void insb(unsigned long __addr, void *dst, unsigned long count) 87void insb(unsigned long __addr, void *dst, unsigned long count)
83{ 88{
@@ -105,6 +110,7 @@ void insb(unsigned long __addr, void *dst, unsigned long count)
105 *pb++ = inb(addr); 110 *pb++ = inb(addr);
106 } 111 }
107} 112}
113EXPORT_SYMBOL(insb);
108 114
109void insw(unsigned long __addr, void *dst, unsigned long count) 115void insw(unsigned long __addr, void *dst, unsigned long count)
110{ 116{
@@ -132,6 +138,7 @@ void insw(unsigned long __addr, void *dst, unsigned long count)
132 *ps = le16_to_cpu(inw(addr)); 138 *ps = le16_to_cpu(inw(addr));
133 } 139 }
134} 140}
141EXPORT_SYMBOL(insw);
135 142
136void insl(unsigned long __addr, void *dst, unsigned long count) 143void insl(unsigned long __addr, void *dst, unsigned long count)
137{ 144{
@@ -200,4 +207,5 @@ void insl(unsigned long __addr, void *dst, unsigned long count)
200 } 207 }
201 } 208 }
202} 209}
210EXPORT_SYMBOL(insl);
203 211
diff --git a/arch/sparc/lib/U1copy_from_user.S b/arch/sparc/lib/U1copy_from_user.S
index 3192b0bf4fab..a6ae2ea04bf5 100644
--- a/arch/sparc/lib/U1copy_from_user.S
+++ b/arch/sparc/lib/U1copy_from_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_LD(x) \ 6#define EX_LD(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
@@ -27,7 +23,7 @@
27#define PREAMBLE \ 23#define PREAMBLE \
28 rd %asi, %g1; \ 24 rd %asi, %g1; \
29 cmp %g1, ASI_AIUS; \ 25 cmp %g1, ASI_AIUS; \
30 bne,pn %icc, memcpy_user_stub; \ 26 bne,pn %icc, ___copy_in_user; \
31 nop; \ 27 nop; \
32 28
33#include "U1memcpy.S" 29#include "U1memcpy.S"
diff --git a/arch/sparc/lib/U1copy_to_user.S b/arch/sparc/lib/U1copy_to_user.S
index d1210ffb0b82..f4b970eeb485 100644
--- a/arch/sparc/lib/U1copy_to_user.S
+++ b/arch/sparc/lib/U1copy_to_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_ST(x) \ 6#define EX_ST(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
@@ -27,7 +23,7 @@
27#define PREAMBLE \ 23#define PREAMBLE \
28 rd %asi, %g1; \ 24 rd %asi, %g1; \
29 cmp %g1, ASI_AIUS; \ 25 cmp %g1, ASI_AIUS; \
30 bne,pn %icc, memcpy_user_stub; \ 26 bne,pn %icc, ___copy_in_user; \
31 nop; \ 27 nop; \
32 28
33#include "U1memcpy.S" 29#include "U1memcpy.S"
diff --git a/arch/sparc/lib/U3copy_from_user.S b/arch/sparc/lib/U3copy_from_user.S
index f5bfc8d9d216..b1acd1331c33 100644
--- a/arch/sparc/lib/U3copy_from_user.S
+++ b/arch/sparc/lib/U3copy_from_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_LD(x) \ 6#define EX_LD(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
diff --git a/arch/sparc/lib/U3copy_to_user.S b/arch/sparc/lib/U3copy_to_user.S
index 2334f111bb0c..ef1e493afdfa 100644
--- a/arch/sparc/lib/U3copy_to_user.S
+++ b/arch/sparc/lib/U3copy_to_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_ST(x) \ 6#define EX_ST(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
@@ -27,7 +23,7 @@
27#define PREAMBLE \ 23#define PREAMBLE \
28 rd %asi, %g1; \ 24 rd %asi, %g1; \
29 cmp %g1, ASI_AIUS; \ 25 cmp %g1, ASI_AIUS; \
30 bne,pn %icc, memcpy_user_stub; \ 26 bne,pn %icc, ___copy_in_user; \
31 nop; \ 27 nop; \
32 28
33#include "U3memcpy.S" 29#include "U3memcpy.S"
diff --git a/arch/sparc/lib/bzero.S b/arch/sparc/lib/bzero.S
index c7bbae8c590f..b6557297440f 100644
--- a/arch/sparc/lib/bzero.S
+++ b/arch/sparc/lib/bzero.S
@@ -88,13 +88,9 @@ __bzero_done:
88 88
89#define EX_ST(x,y) \ 89#define EX_ST(x,y) \
9098: x,y; \ 9098: x,y; \
91 .section .fixup; \
92 .align 4; \
9399: retl; \
94 mov %o1, %o0; \
95 .section __ex_table,"a";\ 91 .section __ex_table,"a";\
96 .align 4; \ 92 .align 4; \
97 .word 98b, 99b; \ 93 .word 98b, __retl_o1; \
98 .text; \ 94 .text; \
99 .align 4; 95 .align 4;
100 96
diff --git a/arch/sparc/lib/copy_in_user.S b/arch/sparc/lib/copy_in_user.S
index 650af3f21f78..302c0e60dc2c 100644
--- a/arch/sparc/lib/copy_in_user.S
+++ b/arch/sparc/lib/copy_in_user.S
@@ -3,19 +3,16 @@
3 * Copyright (C) 1999, 2000, 2004 David S. Miller (davem@redhat.com) 3 * Copyright (C) 1999, 2000, 2004 David S. Miller (davem@redhat.com)
4 */ 4 */
5 5
6#include <linux/linkage.h>
6#include <asm/asi.h> 7#include <asm/asi.h>
7 8
8#define XCC xcc 9#define XCC xcc
9 10
10#define EX(x,y) \ 11#define EX(x,y) \
1198: x,y; \ 1298: x,y; \
12 .section .fixup; \
13 .align 4; \
1499: retl; \
15 mov 1, %o0; \
16 .section __ex_table,"a";\ 13 .section __ex_table,"a";\
17 .align 4; \ 14 .align 4; \
18 .word 98b, 99b; \ 15 .word 98b, __retl_one; \
19 .text; \ 16 .text; \
20 .align 4; 17 .align 4;
21 18
@@ -31,18 +28,7 @@
31 * to copy register windows around during thread cloning. 28 * to copy register windows around during thread cloning.
32 */ 29 */
33 30
34 .globl ___copy_in_user 31ENTRY(___copy_in_user) /* %o0=dst, %o1=src, %o2=len */
35 .type ___copy_in_user,#function
36___copy_in_user: /* %o0=dst, %o1=src, %o2=len */
37 /* Writing to %asi is _expensive_ so we hardcode it.
38 * Reading %asi to check for KERNEL_DS is comparatively
39 * cheap.
40 */
41 rd %asi, %g1
42 cmp %g1, ASI_AIUS
43 bne,pn %icc, memcpy_user_stub
44 nop
45
46 cmp %o2, 0 32 cmp %o2, 0
47 be,pn %XCC, 85f 33 be,pn %XCC, 85f
48 or %o0, %o1, %o3 34 or %o0, %o1, %o3
@@ -53,22 +39,24 @@ ___copy_in_user: /* %o0=dst, %o1=src, %o2=len */
53 /* 16 < len <= 64 */ 39 /* 16 < len <= 64 */
54 andcc %o3, 0x7, %g0 40 andcc %o3, 0x7, %g0
55 bne,pn %XCC, 90f 41 bne,pn %XCC, 90f
56 sub %o0, %o1, %o3 42 nop
57 43
58 andn %o2, 0x7, %o4 44 andn %o2, 0x7, %o4
59 and %o2, 0x7, %o2 45 and %o2, 0x7, %o2
601: subcc %o4, 0x8, %o4 461: subcc %o4, 0x8, %o4
61 EX(ldxa [%o1] %asi, %o5) 47 EX(ldxa [%o1] %asi, %o5)
62 EX(stxa %o5, [%o1 + %o3] ASI_AIUS) 48 EX(stxa %o5, [%o0] %asi)
49 add %o1, 0x8, %o1
63 bgu,pt %XCC, 1b 50 bgu,pt %XCC, 1b
64 add %o1, 0x8, %o1 51 add %o0, 0x8, %o0
65 andcc %o2, 0x4, %g0 52 andcc %o2, 0x4, %g0
66 be,pt %XCC, 1f 53 be,pt %XCC, 1f
67 nop 54 nop
68 sub %o2, 0x4, %o2 55 sub %o2, 0x4, %o2
69 EX(lduwa [%o1] %asi, %o5) 56 EX(lduwa [%o1] %asi, %o5)
70 EX(stwa %o5, [%o1 + %o3] ASI_AIUS) 57 EX(stwa %o5, [%o0] %asi)
71 add %o1, 0x4, %o1 58 add %o1, 0x4, %o1
59 add %o0, 0x4, %o0
721: cmp %o2, 0 601: cmp %o2, 0
73 be,pt %XCC, 85f 61 be,pt %XCC, 85f
74 nop 62 nop
@@ -78,14 +66,15 @@ ___copy_in_user: /* %o0=dst, %o1=src, %o2=len */
7880: /* 0 < len <= 16 */ 6680: /* 0 < len <= 16 */
79 andcc %o3, 0x3, %g0 67 andcc %o3, 0x3, %g0
80 bne,pn %XCC, 90f 68 bne,pn %XCC, 90f
81 sub %o0, %o1, %o3 69 nop
82 70
8382: 7182:
84 subcc %o2, 4, %o2 72 subcc %o2, 4, %o2
85 EX(lduwa [%o1] %asi, %g1) 73 EX(lduwa [%o1] %asi, %g1)
86 EX(stwa %g1, [%o1 + %o3] ASI_AIUS) 74 EX(stwa %g1, [%o0] %asi)
75 add %o1, 4, %o1
87 bgu,pt %XCC, 82b 76 bgu,pt %XCC, 82b
88 add %o1, 4, %o1 77 add %o0, 4, %o0
89 78
9085: retl 7985: retl
91 clr %o0 80 clr %o0
@@ -94,26 +83,10 @@ ___copy_in_user: /* %o0=dst, %o1=src, %o2=len */
9490: 8390:
95 subcc %o2, 1, %o2 84 subcc %o2, 1, %o2
96 EX(lduba [%o1] %asi, %g1) 85 EX(lduba [%o1] %asi, %g1)
97 EX(stba %g1, [%o1 + %o3] ASI_AIUS) 86 EX(stba %g1, [%o0] %asi)
87 add %o1, 1, %o1
98 bgu,pt %XCC, 90b 88 bgu,pt %XCC, 90b
99 add %o1, 1, %o1 89 add %o0, 1, %o0
100 retl 90 retl
101 clr %o0 91 clr %o0
102 92ENDPROC(___copy_in_user)
103 .size ___copy_in_user, .-___copy_in_user
104
105 /* Act like copy_{to,in}_user(), ie. return zero instead
106 * of original destination pointer. This is invoked when
107 * copy_{to,in}_user() finds that %asi is kernel space.
108 */
109 .globl memcpy_user_stub
110 .type memcpy_user_stub,#function
111memcpy_user_stub:
112 save %sp, -192, %sp
113 mov %i0, %o0
114 mov %i1, %o1
115 call memcpy
116 mov %i2, %o2
117 ret
118 restore %g0, %g0, %o0
119 .size memcpy_user_stub, .-memcpy_user_stub
diff --git a/arch/sparc/lib/ksyms.c b/arch/sparc/lib/ksyms.c
new file mode 100644
index 000000000000..704b12668388
--- /dev/null
+++ b/arch/sparc/lib/ksyms.c
@@ -0,0 +1,196 @@
1/*
2 * Export of symbols defined in assembler
3 */
4
5/* Tell string.h we don't want memcpy etc. as cpp defines */
6#define EXPORT_SYMTAB_STROPS
7
8#include <linux/module.h>
9#include <linux/string.h>
10#include <linux/types.h>
11
12#include <asm/checksum.h>
13#include <asm/uaccess.h>
14#include <asm/ftrace.h>
15
16/* string functions */
17EXPORT_SYMBOL(strlen);
18EXPORT_SYMBOL(__strlen_user);
19EXPORT_SYMBOL(__strnlen_user);
20EXPORT_SYMBOL(strncmp);
21
22/* mem* functions */
23extern void *__memscan_zero(void *, size_t);
24extern void *__memscan_generic(void *, int, size_t);
25extern void *__bzero(void *, size_t);
26
27EXPORT_SYMBOL(memscan);
28EXPORT_SYMBOL(__memscan_zero);
29EXPORT_SYMBOL(__memscan_generic);
30EXPORT_SYMBOL(memcmp);
31EXPORT_SYMBOL(memcpy);
32EXPORT_SYMBOL(memset);
33EXPORT_SYMBOL(__memset);
34EXPORT_SYMBOL(memmove);
35EXPORT_SYMBOL(__bzero);
36
37/* Moving data to/from/in userspace. */
38EXPORT_SYMBOL(__strncpy_from_user);
39
40/* Networking helper routines. */
41EXPORT_SYMBOL(csum_partial);
42
43#ifdef CONFIG_MCOUNT
44EXPORT_SYMBOL(_mcount);
45#endif
46
47/*
48 * sparc
49 */
50#ifdef CONFIG_SPARC32
51extern int __ashrdi3(int, int);
52extern int __ashldi3(int, int);
53extern int __lshrdi3(int, int);
54extern int __muldi3(int, int);
55extern int __divdi3(int, int);
56
57extern void (*__copy_1page)(void *, const void *);
58extern void (*bzero_1page)(void *);
59
60extern int __strncmp(const char *, const char *, __kernel_size_t);
61
62extern void ___rw_read_enter(void);
63extern void ___rw_read_try(void);
64extern void ___rw_read_exit(void);
65extern void ___rw_write_enter(void);
66extern void ___atomic24_add(void);
67extern void ___atomic24_sub(void);
68
69/* Alias functions whose names begin with "." and export the aliases.
70 * The module references will be fixed up by module_frob_arch_sections.
71 */
72extern int _Div(int, int);
73extern int _Mul(int, int);
74extern int _Rem(int, int);
75extern unsigned _Udiv(unsigned, unsigned);
76extern unsigned _Umul(unsigned, unsigned);
77extern unsigned _Urem(unsigned, unsigned);
78
79/* Networking helper routines. */
80EXPORT_SYMBOL(__csum_partial_copy_sparc_generic);
81
82/* Special internal versions of library functions. */
83EXPORT_SYMBOL(__copy_1page);
84EXPORT_SYMBOL(__memcpy);
85EXPORT_SYMBOL(__memmove);
86EXPORT_SYMBOL(bzero_1page);
87
88/* string functions */
89EXPORT_SYMBOL(__strncmp);
90
91/* Moving data to/from/in userspace. */
92EXPORT_SYMBOL(__copy_user);
93
94/* Used by asm/spinlock.h */
95#ifdef CONFIG_SMP
96EXPORT_SYMBOL(___rw_read_enter);
97EXPORT_SYMBOL(___rw_read_try);
98EXPORT_SYMBOL(___rw_read_exit);
99EXPORT_SYMBOL(___rw_write_enter);
100#endif
101
102/* Atomic operations. */
103EXPORT_SYMBOL(___atomic24_add);
104EXPORT_SYMBOL(___atomic24_sub);
105
106EXPORT_SYMBOL(__ashrdi3);
107EXPORT_SYMBOL(__ashldi3);
108EXPORT_SYMBOL(__lshrdi3);
109EXPORT_SYMBOL(__muldi3);
110EXPORT_SYMBOL(__divdi3);
111
112EXPORT_SYMBOL(_Rem);
113EXPORT_SYMBOL(_Urem);
114EXPORT_SYMBOL(_Mul);
115EXPORT_SYMBOL(_Umul);
116EXPORT_SYMBOL(_Div);
117EXPORT_SYMBOL(_Udiv);
118#endif
119
120/*
121 * sparc64
122 */
123#ifdef CONFIG_SPARC64
124/* Networking helper routines. */
125EXPORT_SYMBOL(csum_partial_copy_nocheck);
126EXPORT_SYMBOL(__csum_partial_copy_from_user);
127EXPORT_SYMBOL(__csum_partial_copy_to_user);
128EXPORT_SYMBOL(ip_fast_csum);
129
130/* Moving data to/from/in userspace. */
131EXPORT_SYMBOL(___copy_to_user);
132EXPORT_SYMBOL(___copy_from_user);
133EXPORT_SYMBOL(___copy_in_user);
134EXPORT_SYMBOL(__clear_user);
135
136/* RW semaphores */
137EXPORT_SYMBOL(__down_read);
138EXPORT_SYMBOL(__down_read_trylock);
139EXPORT_SYMBOL(__down_write);
140EXPORT_SYMBOL(__down_write_trylock);
141EXPORT_SYMBOL(__up_read);
142EXPORT_SYMBOL(__up_write);
143EXPORT_SYMBOL(__downgrade_write);
144
145/* Atomic counter implementation. */
146EXPORT_SYMBOL(atomic_add);
147EXPORT_SYMBOL(atomic_add_ret);
148EXPORT_SYMBOL(atomic_sub);
149EXPORT_SYMBOL(atomic_sub_ret);
150EXPORT_SYMBOL(atomic64_add);
151EXPORT_SYMBOL(atomic64_add_ret);
152EXPORT_SYMBOL(atomic64_sub);
153EXPORT_SYMBOL(atomic64_sub_ret);
154
155/* Atomic bit operations. */
156EXPORT_SYMBOL(test_and_set_bit);
157EXPORT_SYMBOL(test_and_clear_bit);
158EXPORT_SYMBOL(test_and_change_bit);
159EXPORT_SYMBOL(set_bit);
160EXPORT_SYMBOL(clear_bit);
161EXPORT_SYMBOL(change_bit);
162
163/* Special internal versions of library functions. */
164EXPORT_SYMBOL(_clear_page);
165EXPORT_SYMBOL(clear_user_page);
166EXPORT_SYMBOL(copy_user_page);
167
168/* RAID code needs this */
169void VISenter(void);
170EXPORT_SYMBOL(VISenter);
171
172extern void xor_vis_2(unsigned long, unsigned long *, unsigned long *);
173extern void xor_vis_3(unsigned long, unsigned long *, unsigned long *,
174 unsigned long *);
175extern void xor_vis_4(unsigned long, unsigned long *, unsigned long *,
176 unsigned long *, unsigned long *);
177extern void xor_vis_5(unsigned long, unsigned long *, unsigned long *,
178 unsigned long *, unsigned long *, unsigned long *);
179EXPORT_SYMBOL(xor_vis_2);
180EXPORT_SYMBOL(xor_vis_3);
181EXPORT_SYMBOL(xor_vis_4);
182EXPORT_SYMBOL(xor_vis_5);
183
184extern void xor_niagara_2(unsigned long, unsigned long *, unsigned long *);
185extern void xor_niagara_3(unsigned long, unsigned long *, unsigned long *,
186 unsigned long *);
187extern void xor_niagara_4(unsigned long, unsigned long *, unsigned long *,
188 unsigned long *, unsigned long *);
189extern void xor_niagara_5(unsigned long, unsigned long *, unsigned long *,
190 unsigned long *, unsigned long *, unsigned long *);
191
192EXPORT_SYMBOL(xor_niagara_2);
193EXPORT_SYMBOL(xor_niagara_3);
194EXPORT_SYMBOL(xor_niagara_4);
195EXPORT_SYMBOL(xor_niagara_5);
196#endif
diff --git a/arch/sparc/lib/user_fixup.c b/arch/sparc/lib/user_fixup.c
index 05a361b0a1a4..ac96ae236709 100644
--- a/arch/sparc/lib/user_fixup.c
+++ b/arch/sparc/lib/user_fixup.c
@@ -7,6 +7,8 @@
7#include <linux/kernel.h> 7#include <linux/kernel.h>
8#include <linux/string.h> 8#include <linux/string.h>
9#include <linux/errno.h> 9#include <linux/errno.h>
10#include <linux/module.h>
11
10#include <asm/uaccess.h> 12#include <asm/uaccess.h>
11 13
12/* Calculating the exact fault address when using 14/* Calculating the exact fault address when using
@@ -40,6 +42,7 @@ unsigned long copy_from_user_fixup(void *to, const void __user *from, unsigned l
40 42
41 return size; 43 return size;
42} 44}
45EXPORT_SYMBOL(copy_from_user_fixup);
43 46
44unsigned long copy_to_user_fixup(void __user *to, const void *from, unsigned long size) 47unsigned long copy_to_user_fixup(void __user *to, const void *from, unsigned long size)
45{ 48{
@@ -47,6 +50,7 @@ unsigned long copy_to_user_fixup(void __user *to, const void *from, unsigned lon
47 50
48 return compute_size((unsigned long) to, size, &offset); 51 return compute_size((unsigned long) to, size, &offset);
49} 52}
53EXPORT_SYMBOL(copy_to_user_fixup);
50 54
51unsigned long copy_in_user_fixup(void __user *to, void __user *from, unsigned long size) 55unsigned long copy_in_user_fixup(void __user *to, void __user *from, unsigned long size)
52{ 56{
@@ -64,3 +68,4 @@ unsigned long copy_in_user_fixup(void __user *to, void __user *from, unsigned lo
64 68
65 return size; 69 return size;
66} 70}
71EXPORT_SYMBOL(copy_in_user_fixup);
diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
index a9e474bf6385..4ab8993b0863 100644
--- a/arch/sparc/mm/fault_64.c
+++ b/arch/sparc/mm/fault_64.c
@@ -19,6 +19,7 @@
19#include <linux/interrupt.h> 19#include <linux/interrupt.h>
20#include <linux/kprobes.h> 20#include <linux/kprobes.h>
21#include <linux/kdebug.h> 21#include <linux/kdebug.h>
22#include <linux/percpu.h>
22 23
23#include <asm/page.h> 24#include <asm/page.h>
24#include <asm/pgtable.h> 25#include <asm/pgtable.h>
@@ -224,6 +225,30 @@ cannot_handle:
224 unhandled_fault (address, current, regs); 225 unhandled_fault (address, current, regs);
225} 226}
226 227
228static void noinline bogus_32bit_fault_tpc(struct pt_regs *regs)
229{
230 static int times;
231
232 if (times++ < 10)
233 printk(KERN_ERR "FAULT[%s:%d]: 32-bit process reports "
234 "64-bit TPC [%lx]\n",
235 current->comm, current->pid,
236 regs->tpc);
237 show_regs(regs);
238}
239
240static void noinline bogus_32bit_fault_address(struct pt_regs *regs,
241 unsigned long addr)
242{
243 static int times;
244
245 if (times++ < 10)
246 printk(KERN_ERR "FAULT[%s:%d]: 32-bit process "
247 "reports 64-bit fault address [%lx]\n",
248 current->comm, current->pid, addr);
249 show_regs(regs);
250}
251
227asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs) 252asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
228{ 253{
229 struct mm_struct *mm = current->mm; 254 struct mm_struct *mm = current->mm;
@@ -244,6 +269,19 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
244 (fault_code & FAULT_CODE_DTLB)) 269 (fault_code & FAULT_CODE_DTLB))
245 BUG(); 270 BUG();
246 271
272 if (test_thread_flag(TIF_32BIT)) {
273 if (!(regs->tstate & TSTATE_PRIV)) {
274 if (unlikely((regs->tpc >> 32) != 0)) {
275 bogus_32bit_fault_tpc(regs);
276 goto intr_or_no_mm;
277 }
278 }
279 if (unlikely((address >> 32) != 0)) {
280 bogus_32bit_fault_address(regs, address);
281 goto intr_or_no_mm;
282 }
283 }
284
247 if (regs->tstate & TSTATE_PRIV) { 285 if (regs->tstate & TSTATE_PRIV) {
248 unsigned long tpc = regs->tpc; 286 unsigned long tpc = regs->tpc;
249 287
@@ -264,12 +302,6 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
264 if (in_atomic() || !mm) 302 if (in_atomic() || !mm)
265 goto intr_or_no_mm; 303 goto intr_or_no_mm;
266 304
267 if (test_thread_flag(TIF_32BIT)) {
268 if (!(regs->tstate & TSTATE_PRIV))
269 regs->tpc &= 0xffffffff;
270 address &= 0xffffffff;
271 }
272
273 if (!down_read_trylock(&mm->mmap_sem)) { 305 if (!down_read_trylock(&mm->mmap_sem)) {
274 if ((regs->tstate & TSTATE_PRIV) && 306 if ((regs->tstate & TSTATE_PRIV) &&
275 !search_exception_tables(regs->tpc)) { 307 !search_exception_tables(regs->tpc)) {
diff --git a/arch/sparc/mm/generic_32.c b/arch/sparc/mm/generic_32.c
index a289261da9fd..5edcac184eaf 100644
--- a/arch/sparc/mm/generic_32.c
+++ b/arch/sparc/mm/generic_32.c
@@ -95,3 +95,4 @@ int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long from,
95 flush_tlb_range(vma, beg, end); 95 flush_tlb_range(vma, beg, end);
96 return error; 96 return error;
97} 97}
98EXPORT_SYMBOL(io_remap_pfn_range);
diff --git a/arch/sparc/mm/generic_64.c b/arch/sparc/mm/generic_64.c
index f362c2037013..04f2bf4cd571 100644
--- a/arch/sparc/mm/generic_64.c
+++ b/arch/sparc/mm/generic_64.c
@@ -161,3 +161,4 @@ int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long from,
161 flush_tlb_range(vma, beg, end); 161 flush_tlb_range(vma, beg, end);
162 return error; 162 return error;
163} 163}
164EXPORT_SYMBOL(io_remap_pfn_range);
diff --git a/arch/sparc/mm/highmem.c b/arch/sparc/mm/highmem.c
index 01fc6c254292..752d0c9fb544 100644
--- a/arch/sparc/mm/highmem.c
+++ b/arch/sparc/mm/highmem.c
@@ -62,6 +62,7 @@ void *kmap_atomic(struct page *page, enum km_type type)
62 62
63 return (void*) vaddr; 63 return (void*) vaddr;
64} 64}
65EXPORT_SYMBOL(kmap_atomic);
65 66
66void kunmap_atomic(void *kvaddr, enum km_type type) 67void kunmap_atomic(void *kvaddr, enum km_type type)
67{ 68{
@@ -98,6 +99,7 @@ void kunmap_atomic(void *kvaddr, enum km_type type)
98 99
99 pagefault_enable(); 100 pagefault_enable();
100} 101}
102EXPORT_SYMBOL(kunmap_atomic);
101 103
102/* We may be fed a pagetable here by ptep_to_xxx and others. */ 104/* We may be fed a pagetable here by ptep_to_xxx and others. */
103struct page *kmap_atomic_to_page(void *ptr) 105struct page *kmap_atomic_to_page(void *ptr)
diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
index fec926021f49..cbb282dab5a7 100644
--- a/arch/sparc/mm/init_32.c
+++ b/arch/sparc/mm/init_32.c
@@ -38,11 +38,16 @@
38DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); 38DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
39 39
40unsigned long *sparc_valid_addr_bitmap; 40unsigned long *sparc_valid_addr_bitmap;
41EXPORT_SYMBOL(sparc_valid_addr_bitmap);
41 42
42unsigned long phys_base; 43unsigned long phys_base;
44EXPORT_SYMBOL(phys_base);
45
43unsigned long pfn_base; 46unsigned long pfn_base;
47EXPORT_SYMBOL(pfn_base);
44 48
45unsigned long page_kernel; 49unsigned long page_kernel;
50EXPORT_SYMBOL(page_kernel);
46 51
47struct sparc_phys_banks sp_banks[SPARC_PHYS_BANKS+1]; 52struct sparc_phys_banks sp_banks[SPARC_PHYS_BANKS+1];
48unsigned long sparc_unmapped_base; 53unsigned long sparc_unmapped_base;
@@ -522,3 +527,4 @@ void sparc_flush_page_to_ram(struct page *page)
522 if (vaddr) 527 if (vaddr)
523 __flush_page_to_ram(vaddr); 528 __flush_page_to_ram(vaddr);
524} 529}
530EXPORT_SYMBOL(sparc_flush_page_to_ram);
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index c77c7ef5d5d4..00373ce2d8fb 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -146,6 +146,7 @@ static void __init read_obp_memory(const char *property,
146} 146}
147 147
148unsigned long *sparc64_valid_addr_bitmap __read_mostly; 148unsigned long *sparc64_valid_addr_bitmap __read_mostly;
149EXPORT_SYMBOL(sparc64_valid_addr_bitmap);
149 150
150/* Kernel physical address base and size in bytes. */ 151/* Kernel physical address base and size in bytes. */
151unsigned long kern_base __read_mostly; 152unsigned long kern_base __read_mostly;
@@ -369,6 +370,7 @@ void flush_dcache_page(struct page *page)
369out: 370out:
370 put_cpu(); 371 put_cpu();
371} 372}
373EXPORT_SYMBOL(flush_dcache_page);
372 374
373void __kprobes flush_icache_range(unsigned long start, unsigned long end) 375void __kprobes flush_icache_range(unsigned long start, unsigned long end)
374{ 376{
@@ -396,6 +398,7 @@ void __kprobes flush_icache_range(unsigned long start, unsigned long end)
396 } 398 }
397 } 399 }
398} 400}
401EXPORT_SYMBOL(flush_icache_range);
399 402
400void mmu_info(struct seq_file *m) 403void mmu_info(struct seq_file *m)
401{ 404{
@@ -599,6 +602,7 @@ void __flush_dcache_range(unsigned long start, unsigned long end)
599 "i" (ASI_DCACHE_INVALIDATE)); 602 "i" (ASI_DCACHE_INVALIDATE));
600 } 603 }
601} 604}
605EXPORT_SYMBOL(__flush_dcache_range);
602 606
603/* get_new_mmu_context() uses "cache + 1". */ 607/* get_new_mmu_context() uses "cache + 1". */
604DEFINE_SPINLOCK(ctx_alloc_lock); 608DEFINE_SPINLOCK(ctx_alloc_lock);
diff --git a/arch/sparc/oprofile/init.c b/arch/sparc/oprofile/init.c
index d6e170c074fc..d172f86439b1 100644
--- a/arch/sparc/oprofile/init.c
+++ b/arch/sparc/oprofile/init.c
@@ -13,217 +13,57 @@
13#include <linux/init.h> 13#include <linux/init.h>
14 14
15#ifdef CONFIG_SPARC64 15#ifdef CONFIG_SPARC64
16#include <asm/hypervisor.h> 16#include <linux/notifier.h>
17#include <asm/spitfire.h> 17#include <linux/rcupdate.h>
18#include <asm/cpudata.h> 18#include <linux/kdebug.h>
19#include <asm/irq.h> 19#include <asm/nmi.h>
20 20
21static int nmi_enabled; 21static int profile_timer_exceptions_notify(struct notifier_block *self,
22 22 unsigned long val, void *data)
23struct pcr_ops {
24 u64 (*read)(void);
25 void (*write)(u64);
26};
27static const struct pcr_ops *pcr_ops;
28
29static u64 direct_pcr_read(void)
30{
31 u64 val;
32
33 read_pcr(val);
34 return val;
35}
36
37static void direct_pcr_write(u64 val)
38{
39 write_pcr(val);
40}
41
42static const struct pcr_ops direct_pcr_ops = {
43 .read = direct_pcr_read,
44 .write = direct_pcr_write,
45};
46
47static void n2_pcr_write(u64 val)
48{ 23{
49 unsigned long ret; 24 struct die_args *args = (struct die_args *)data;
50 25 int ret = NOTIFY_DONE;
51 ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val);
52 if (val != HV_EOK)
53 write_pcr(val);
54}
55
56static const struct pcr_ops n2_pcr_ops = {
57 .read = direct_pcr_read,
58 .write = n2_pcr_write,
59};
60
61/* In order to commonize as much of the implementation as
62 * possible, we use PICH as our counter. Mostly this is
63 * to accomodate Niagara-1 which can only count insn cycles
64 * in PICH.
65 */
66static u64 picl_value(void)
67{
68 u32 delta = local_cpu_data().clock_tick / HZ;
69
70 return ((u64)((0 - delta) & 0xffffffff)) << 32;
71}
72
73#define PCR_PIC_PRIV 0x00000001 /* PIC access is privileged */
74#define PCR_STRACE 0x00000002 /* Trace supervisor events */
75#define PCR_UTRACE 0x00000004 /* Trace user events */
76#define PCR_N2_HTRACE 0x00000008 /* Trace hypervisor events */
77#define PCR_N2_TOE_OV0 0x00000010 /* Trap if PIC 0 overflows */
78#define PCR_N2_TOE_OV1 0x00000020 /* Trap if PIC 1 overflows */
79#define PCR_N2_MASK0 0x00003fc0
80#define PCR_N2_MASK0_SHIFT 6
81#define PCR_N2_SL0 0x0003c000
82#define PCR_N2_SL0_SHIFT 14
83#define PCR_N2_OV0 0x00040000
84#define PCR_N2_MASK1 0x07f80000
85#define PCR_N2_MASK1_SHIFT 19
86#define PCR_N2_SL1 0x78000000
87#define PCR_N2_SL1_SHIFT 27
88#define PCR_N2_OV1 0x80000000
89
90#define PCR_SUN4U_ENABLE (PCR_PIC_PRIV | PCR_STRACE | PCR_UTRACE)
91#define PCR_N2_ENABLE (PCR_PIC_PRIV | PCR_STRACE | PCR_UTRACE | \
92 PCR_N2_TOE_OV1 | \
93 (2 << PCR_N2_SL1_SHIFT) | \
94 (0xff << PCR_N2_MASK1_SHIFT))
95
96static u64 pcr_enable = PCR_SUN4U_ENABLE;
97
98static void nmi_handler(struct pt_regs *regs)
99{
100 pcr_ops->write(PCR_PIC_PRIV);
101
102 if (nmi_enabled) {
103 oprofile_add_sample(regs, 0);
104
105 write_pic(picl_value());
106 pcr_ops->write(pcr_enable);
107 }
108}
109
110/* We count "clock cycle" events in the lower 32-bit PIC.
111 * Then configure it such that it overflows every HZ, and thus
112 * generates a level 15 interrupt at that frequency.
113 */
114static void cpu_nmi_start(void *_unused)
115{
116 pcr_ops->write(PCR_PIC_PRIV);
117 write_pic(picl_value());
118
119 pcr_ops->write(pcr_enable);
120}
121 26
122static void cpu_nmi_stop(void *_unused) 27 switch (val) {
123{ 28 case DIE_NMI:
124 pcr_ops->write(PCR_PIC_PRIV); 29 oprofile_add_sample(args->regs, 0);
125} 30 ret = NOTIFY_STOP;
126 31 break;
127static int nmi_start(void) 32 default:
128{ 33 break;
129 int err = register_perfctr_intr(nmi_handler);
130
131 if (!err) {
132 nmi_enabled = 1;
133 wmb();
134 err = on_each_cpu(cpu_nmi_start, NULL, 1);
135 if (err) {
136 nmi_enabled = 0;
137 wmb();
138 on_each_cpu(cpu_nmi_stop, NULL, 1);
139 release_perfctr_intr(nmi_handler);
140 }
141 } 34 }
142 35 return ret;
143 return err;
144}
145
146static void nmi_stop(void)
147{
148 nmi_enabled = 0;
149 wmb();
150
151 on_each_cpu(cpu_nmi_stop, NULL, 1);
152 release_perfctr_intr(nmi_handler);
153 synchronize_sched();
154} 36}
155 37
156static unsigned long perf_hsvc_group; 38static struct notifier_block profile_timer_exceptions_nb = {
157static unsigned long perf_hsvc_major; 39 .notifier_call = profile_timer_exceptions_notify,
158static unsigned long perf_hsvc_minor; 40};
159 41
160static int __init register_perf_hsvc(void) 42static int timer_start(void)
161{ 43{
162 if (tlb_type == hypervisor) { 44 if (register_die_notifier(&profile_timer_exceptions_nb))
163 switch (sun4v_chip_type) { 45 return 1;
164 case SUN4V_CHIP_NIAGARA1: 46 nmi_adjust_hz(HZ);
165 perf_hsvc_group = HV_GRP_NIAG_PERF;
166 break;
167
168 case SUN4V_CHIP_NIAGARA2:
169 perf_hsvc_group = HV_GRP_N2_CPU;
170 break;
171
172 default:
173 return -ENODEV;
174 }
175
176
177 perf_hsvc_major = 1;
178 perf_hsvc_minor = 0;
179 if (sun4v_hvapi_register(perf_hsvc_group,
180 perf_hsvc_major,
181 &perf_hsvc_minor)) {
182 printk("perfmon: Could not register N2 hvapi.\n");
183 return -ENODEV;
184 }
185 }
186 return 0; 47 return 0;
187} 48}
188 49
189static void unregister_perf_hsvc(void) 50
51static void timer_stop(void)
190{ 52{
191 if (tlb_type != hypervisor) 53 nmi_adjust_hz(1);
192 return; 54 unregister_die_notifier(&profile_timer_exceptions_nb);
193 sun4v_hvapi_unregister(perf_hsvc_group); 55 synchronize_sched(); /* Allow already-started NMIs to complete. */
194} 56}
195 57
196static int oprofile_nmi_init(struct oprofile_operations *ops) 58static int op_nmi_timer_init(struct oprofile_operations *ops)
197{ 59{
198 int err = register_perf_hsvc(); 60 if (!nmi_usable)
199
200 if (err)
201 return err;
202
203 switch (tlb_type) {
204 case hypervisor:
205 pcr_ops = &n2_pcr_ops;
206 pcr_enable = PCR_N2_ENABLE;
207 break;
208
209 case cheetah:
210 case cheetah_plus:
211 pcr_ops = &direct_pcr_ops;
212 break;
213
214 default:
215 return -ENODEV; 61 return -ENODEV;
216 }
217 62
218 ops->create_files = NULL; 63 ops->start = timer_start;
219 ops->setup = NULL; 64 ops->stop = timer_stop;
220 ops->shutdown = NULL;
221 ops->start = nmi_start;
222 ops->stop = nmi_stop;
223 ops->cpu_type = "timer"; 65 ops->cpu_type = "timer";
224 66 printk(KERN_INFO "oprofile: Using perfctr NMI timer interrupt.\n");
225 printk(KERN_INFO "oprofile: Using perfctr based NMI timer interrupt.\n");
226
227 return 0; 67 return 0;
228} 68}
229#endif 69#endif
@@ -233,7 +73,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
233 int ret = -ENODEV; 73 int ret = -ENODEV;
234 74
235#ifdef CONFIG_SPARC64 75#ifdef CONFIG_SPARC64
236 ret = oprofile_nmi_init(ops); 76 ret = op_nmi_timer_init(ops);
237 if (!ret) 77 if (!ret)
238 return ret; 78 return ret;
239#endif 79#endif
@@ -241,10 +81,6 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
241 return ret; 81 return ret;
242} 82}
243 83
244
245void oprofile_arch_exit(void) 84void oprofile_arch_exit(void)
246{ 85{
247#ifdef CONFIG_SPARC64
248 unregister_perf_hsvc();
249#endif
250} 86}
diff --git a/arch/sparc/prom/init_32.c b/arch/sparc/prom/init_32.c
index 873217c6d823..6193c33ed4d4 100644
--- a/arch/sparc/prom/init_32.c
+++ b/arch/sparc/prom/init_32.c
@@ -8,16 +8,20 @@
8 8
9#include <linux/kernel.h> 9#include <linux/kernel.h>
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/module.h>
11 12
12#include <asm/openprom.h> 13#include <asm/openprom.h>
13#include <asm/oplib.h> 14#include <asm/oplib.h>
14 15
15struct linux_romvec *romvec; 16struct linux_romvec *romvec;
17EXPORT_SYMBOL(romvec);
18
16enum prom_major_version prom_vers; 19enum prom_major_version prom_vers;
17unsigned int prom_rev, prom_prev; 20unsigned int prom_rev, prom_prev;
18 21
19/* The root node of the prom device tree. */ 22/* The root node of the prom device tree. */
20int prom_root_node; 23int prom_root_node;
24EXPORT_SYMBOL(prom_root_node);
21 25
22/* Pointer to the device tree operations structure. */ 26/* Pointer to the device tree operations structure. */
23struct linux_nodeops *prom_nodeops; 27struct linux_nodeops *prom_nodeops;
diff --git a/arch/sparc/prom/misc_32.c b/arch/sparc/prom/misc_32.c
index cf6c3f6d36c3..4d61c540bb3d 100644
--- a/arch/sparc/prom/misc_32.c
+++ b/arch/sparc/prom/misc_32.c
@@ -8,6 +8,8 @@
8#include <linux/types.h> 8#include <linux/types.h>
9#include <linux/kernel.h> 9#include <linux/kernel.h>
10#include <linux/sched.h> 10#include <linux/sched.h>
11#include <linux/module.h>
12
11#include <asm/openprom.h> 13#include <asm/openprom.h>
12#include <asm/oplib.h> 14#include <asm/oplib.h>
13#include <asm/auxio.h> 15#include <asm/auxio.h>
@@ -44,6 +46,7 @@ prom_feval(char *fstring)
44 restore_current(); 46 restore_current();
45 spin_unlock_irqrestore(&prom_lock, flags); 47 spin_unlock_irqrestore(&prom_lock, flags);
46} 48}
49EXPORT_SYMBOL(prom_feval);
47 50
48/* Drop into the prom, with the chance to continue with the 'go' 51/* Drop into the prom, with the chance to continue with the 'go'
49 * prom command. 52 * prom command.
diff --git a/arch/sparc/prom/misc_64.c b/arch/sparc/prom/misc_64.c
index 9b0c0760901e..eedffb4fec2d 100644
--- a/arch/sparc/prom/misc_64.c
+++ b/arch/sparc/prom/misc_64.c
@@ -11,6 +11,8 @@
11#include <linux/sched.h> 11#include <linux/sched.h>
12#include <linux/interrupt.h> 12#include <linux/interrupt.h>
13#include <linux/delay.h> 13#include <linux/delay.h>
14#include <linux/module.h>
15
14#include <asm/openprom.h> 16#include <asm/openprom.h>
15#include <asm/oplib.h> 17#include <asm/oplib.h>
16#include <asm/system.h> 18#include <asm/system.h>
@@ -54,6 +56,7 @@ void prom_feval(const char *fstring)
54 p1275_cmd("interpret", P1275_ARG(0, P1275_ARG_IN_STRING) | 56 p1275_cmd("interpret", P1275_ARG(0, P1275_ARG_IN_STRING) |
55 P1275_INOUT(1, 1), fstring); 57 P1275_INOUT(1, 1), fstring);
56} 58}
59EXPORT_SYMBOL(prom_feval);
57 60
58#ifdef CONFIG_SMP 61#ifdef CONFIG_SMP
59extern void smp_capture(void); 62extern void smp_capture(void);
diff --git a/arch/sparc/prom/ranges.c b/arch/sparc/prom/ranges.c
index 64579a376419..cd5790853ff6 100644
--- a/arch/sparc/prom/ranges.c
+++ b/arch/sparc/prom/ranges.c
@@ -6,6 +6,8 @@
6 */ 6 */
7 7
8#include <linux/init.h> 8#include <linux/init.h>
9#include <linux/module.h>
10
9#include <asm/openprom.h> 11#include <asm/openprom.h>
10#include <asm/oplib.h> 12#include <asm/oplib.h>
11#include <asm/types.h> 13#include <asm/types.h>
@@ -62,6 +64,7 @@ prom_apply_obio_ranges(struct linux_prom_registers *regs, int nregs)
62 if(num_obio_ranges) 64 if(num_obio_ranges)
63 prom_adjust_regs(regs, nregs, promlib_obio_ranges, num_obio_ranges); 65 prom_adjust_regs(regs, nregs, promlib_obio_ranges, num_obio_ranges);
64} 66}
67EXPORT_SYMBOL(prom_apply_obio_ranges);
65 68
66void __init prom_ranges_init(void) 69void __init prom_ranges_init(void)
67{ 70{
diff --git a/arch/sparc/prom/tree_32.c b/arch/sparc/prom/tree_32.c
index 6d8187357331..646d244b1fdb 100644
--- a/arch/sparc/prom/tree_32.c
+++ b/arch/sparc/prom/tree_32.c
@@ -5,13 +5,12 @@
5 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 5 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
6 */ 6 */
7 7
8#define PROMLIB_INTERNAL
9
10#include <linux/string.h> 8#include <linux/string.h>
11#include <linux/types.h> 9#include <linux/types.h>
12#include <linux/kernel.h> 10#include <linux/kernel.h>
13#include <linux/sched.h> 11#include <linux/sched.h>
14#include <linux/ctype.h> 12#include <linux/ctype.h>
13#include <linux/module.h>
15 14
16#include <asm/openprom.h> 15#include <asm/openprom.h>
17#include <asm/oplib.h> 16#include <asm/oplib.h>
@@ -50,6 +49,7 @@ int prom_getchild(int node)
50 49
51 return cnode; 50 return cnode;
52} 51}
52EXPORT_SYMBOL(prom_getchild);
53 53
54/* Internal version of prom_getsibling that does not alter return values. */ 54/* Internal version of prom_getsibling that does not alter return values. */
55int __prom_getsibling(int node) 55int __prom_getsibling(int node)
@@ -81,6 +81,7 @@ int prom_getsibling(int node)
81 81
82 return sibnode; 82 return sibnode;
83} 83}
84EXPORT_SYMBOL(prom_getsibling);
84 85
85/* Return the length in bytes of property 'prop' at node 'node'. 86/* Return the length in bytes of property 'prop' at node 'node'.
86 * Return -1 on error. 87 * Return -1 on error.
@@ -99,6 +100,7 @@ int prom_getproplen(int node, const char *prop)
99 spin_unlock_irqrestore(&prom_lock, flags); 100 spin_unlock_irqrestore(&prom_lock, flags);
100 return ret; 101 return ret;
101} 102}
103EXPORT_SYMBOL(prom_getproplen);
102 104
103/* Acquire a property 'prop' at node 'node' and place it in 105/* Acquire a property 'prop' at node 'node' and place it in
104 * 'buffer' which has a size of 'bufsize'. If the acquisition 106 * 'buffer' which has a size of 'bufsize'. If the acquisition
@@ -119,6 +121,7 @@ int prom_getproperty(int node, const char *prop, char *buffer, int bufsize)
119 spin_unlock_irqrestore(&prom_lock, flags); 121 spin_unlock_irqrestore(&prom_lock, flags);
120 return ret; 122 return ret;
121} 123}
124EXPORT_SYMBOL(prom_getproperty);
122 125
123/* Acquire an integer property and return its value. Returns -1 126/* Acquire an integer property and return its value. Returns -1
124 * on failure. 127 * on failure.
@@ -132,6 +135,7 @@ int prom_getint(int node, char *prop)
132 135
133 return -1; 136 return -1;
134} 137}
138EXPORT_SYMBOL(prom_getint);
135 139
136/* Acquire an integer property, upon error return the passed default 140/* Acquire an integer property, upon error return the passed default
137 * integer. 141 * integer.
@@ -145,6 +149,7 @@ int prom_getintdefault(int node, char *property, int deflt)
145 149
146 return retval; 150 return retval;
147} 151}
152EXPORT_SYMBOL(prom_getintdefault);
148 153
149/* Acquire a boolean property, 1=TRUE 0=FALSE. */ 154/* Acquire a boolean property, 1=TRUE 0=FALSE. */
150int prom_getbool(int node, char *prop) 155int prom_getbool(int node, char *prop)
@@ -155,6 +160,7 @@ int prom_getbool(int node, char *prop)
155 if(retval == -1) return 0; 160 if(retval == -1) return 0;
156 return 1; 161 return 1;
157} 162}
163EXPORT_SYMBOL(prom_getbool);
158 164
159/* Acquire a property whose value is a string, returns a null 165/* Acquire a property whose value is a string, returns a null
160 * string on error. The char pointer is the user supplied string 166 * string on error. The char pointer is the user supplied string
@@ -169,6 +175,7 @@ void prom_getstring(int node, char *prop, char *user_buf, int ubuf_size)
169 user_buf[0] = 0; 175 user_buf[0] = 0;
170 return; 176 return;
171} 177}
178EXPORT_SYMBOL(prom_getstring);
172 179
173 180
174/* Does the device at node 'node' have name 'name'? 181/* Does the device at node 'node' have name 'name'?
@@ -204,6 +211,7 @@ int prom_searchsiblings(int node_start, char *nodename)
204 211
205 return 0; 212 return 0;
206} 213}
214EXPORT_SYMBOL(prom_searchsiblings);
207 215
208/* Interal version of nextprop that does not alter return values. */ 216/* Interal version of nextprop that does not alter return values. */
209char * __prom_nextprop(int node, char * oprop) 217char * __prom_nextprop(int node, char * oprop)
@@ -228,6 +236,7 @@ char * prom_firstprop(int node, char *bufer)
228 236
229 return __prom_nextprop(node, ""); 237 return __prom_nextprop(node, "");
230} 238}
239EXPORT_SYMBOL(prom_firstprop);
231 240
232/* Return the property type string after property type 'oprop' 241/* Return the property type string after property type 'oprop'
233 * at node 'node' . Returns empty string if no more 242 * at node 'node' . Returns empty string if no more
@@ -240,6 +249,7 @@ char * prom_nextprop(int node, char *oprop, char *buffer)
240 249
241 return __prom_nextprop(node, oprop); 250 return __prom_nextprop(node, oprop);
242} 251}
252EXPORT_SYMBOL(prom_nextprop);
243 253
244int prom_finddevice(char *name) 254int prom_finddevice(char *name)
245{ 255{
@@ -287,6 +297,7 @@ int prom_finddevice(char *name)
287 } 297 }
288 return node; 298 return node;
289} 299}
300EXPORT_SYMBOL(prom_finddevice);
290 301
291int prom_node_has_property(int node, char *prop) 302int prom_node_has_property(int node, char *prop)
292{ 303{
@@ -299,6 +310,7 @@ int prom_node_has_property(int node, char *prop)
299 } while (*current_property); 310 } while (*current_property);
300 return 0; 311 return 0;
301} 312}
313EXPORT_SYMBOL(prom_node_has_property);
302 314
303/* Set property 'pname' at node 'node' to value 'value' which has a length 315/* Set property 'pname' at node 'node' to value 'value' which has a length
304 * of 'size' bytes. Return the number of bytes the prom accepted. 316 * of 'size' bytes. Return the number of bytes the prom accepted.
@@ -316,6 +328,7 @@ int prom_setprop(int node, const char *pname, char *value, int size)
316 spin_unlock_irqrestore(&prom_lock, flags); 328 spin_unlock_irqrestore(&prom_lock, flags);
317 return ret; 329 return ret;
318} 330}
331EXPORT_SYMBOL(prom_setprop);
319 332
320int prom_inst2pkg(int inst) 333int prom_inst2pkg(int inst)
321{ 334{
diff --git a/arch/sparc/prom/tree_64.c b/arch/sparc/prom/tree_64.c
index 281aea44790b..8ea73ddc61dc 100644
--- a/arch/sparc/prom/tree_64.c
+++ b/arch/sparc/prom/tree_64.c
@@ -10,6 +10,7 @@
10#include <linux/types.h> 10#include <linux/types.h>
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/sched.h> 12#include <linux/sched.h>
13#include <linux/module.h>
13 14
14#include <asm/openprom.h> 15#include <asm/openprom.h>
15#include <asm/oplib.h> 16#include <asm/oplib.h>
@@ -32,6 +33,7 @@ inline int prom_getchild(int node)
32 if(cnode == -1) return 0; 33 if(cnode == -1) return 0;
33 return (int)cnode; 34 return (int)cnode;
34} 35}
36EXPORT_SYMBOL(prom_getchild);
35 37
36inline int prom_getparent(int node) 38inline int prom_getparent(int node)
37{ 39{
@@ -63,6 +65,7 @@ inline int prom_getsibling(int node)
63 65
64 return sibnode; 66 return sibnode;
65} 67}
68EXPORT_SYMBOL(prom_getsibling);
66 69
67/* Return the length in bytes of property 'prop' at node 'node'. 70/* Return the length in bytes of property 'prop' at node 'node'.
68 * Return -1 on error. 71 * Return -1 on error.
@@ -75,6 +78,7 @@ inline int prom_getproplen(int node, const char *prop)
75 P1275_INOUT(2, 1), 78 P1275_INOUT(2, 1),
76 node, prop); 79 node, prop);
77} 80}
81EXPORT_SYMBOL(prom_getproplen);
78 82
79/* Acquire a property 'prop' at node 'node' and place it in 83/* Acquire a property 'prop' at node 'node' and place it in
80 * 'buffer' which has a size of 'bufsize'. If the acquisition 84 * 'buffer' which has a size of 'bufsize'. If the acquisition
@@ -97,6 +101,7 @@ inline int prom_getproperty(int node, const char *prop,
97 node, prop, buffer, P1275_SIZE(plen)); 101 node, prop, buffer, P1275_SIZE(plen));
98 } 102 }
99} 103}
104EXPORT_SYMBOL(prom_getproperty);
100 105
101/* Acquire an integer property and return its value. Returns -1 106/* Acquire an integer property and return its value. Returns -1
102 * on failure. 107 * on failure.
@@ -110,6 +115,7 @@ inline int prom_getint(int node, const char *prop)
110 115
111 return -1; 116 return -1;
112} 117}
118EXPORT_SYMBOL(prom_getint);
113 119
114/* Acquire an integer property, upon error return the passed default 120/* Acquire an integer property, upon error return the passed default
115 * integer. 121 * integer.
@@ -124,6 +130,7 @@ int prom_getintdefault(int node, const char *property, int deflt)
124 130
125 return retval; 131 return retval;
126} 132}
133EXPORT_SYMBOL(prom_getintdefault);
127 134
128/* Acquire a boolean property, 1=TRUE 0=FALSE. */ 135/* Acquire a boolean property, 1=TRUE 0=FALSE. */
129int prom_getbool(int node, const char *prop) 136int prom_getbool(int node, const char *prop)
@@ -134,6 +141,7 @@ int prom_getbool(int node, const char *prop)
134 if(retval == -1) return 0; 141 if(retval == -1) return 0;
135 return 1; 142 return 1;
136} 143}
144EXPORT_SYMBOL(prom_getbool);
137 145
138/* Acquire a property whose value is a string, returns a null 146/* Acquire a property whose value is a string, returns a null
139 * string on error. The char pointer is the user supplied string 147 * string on error. The char pointer is the user supplied string
@@ -148,7 +156,7 @@ void prom_getstring(int node, const char *prop, char *user_buf, int ubuf_size)
148 user_buf[0] = 0; 156 user_buf[0] = 0;
149 return; 157 return;
150} 158}
151 159EXPORT_SYMBOL(prom_getstring);
152 160
153/* Does the device at node 'node' have name 'name'? 161/* Does the device at node 'node' have name 'name'?
154 * YES = 1 NO = 0 162 * YES = 1 NO = 0
@@ -181,6 +189,7 @@ int prom_searchsiblings(int node_start, const char *nodename)
181 189
182 return 0; 190 return 0;
183} 191}
192EXPORT_SYMBOL(prom_searchsiblings);
184 193
185/* Return the first property type for node 'node'. 194/* Return the first property type for node 'node'.
186 * buffer should be at least 32B in length 195 * buffer should be at least 32B in length
@@ -194,6 +203,7 @@ inline char *prom_firstprop(int node, char *buffer)
194 node, (char *) 0x0, buffer); 203 node, (char *) 0x0, buffer);
195 return buffer; 204 return buffer;
196} 205}
206EXPORT_SYMBOL(prom_firstprop);
197 207
198/* Return the property type string after property type 'oprop' 208/* Return the property type string after property type 'oprop'
199 * at node 'node' . Returns NULL string if no more 209 * at node 'node' . Returns NULL string if no more
@@ -217,6 +227,7 @@ inline char *prom_nextprop(int node, const char *oprop, char *buffer)
217 node, oprop, buffer); 227 node, oprop, buffer);
218 return buffer; 228 return buffer;
219} 229}
230EXPORT_SYMBOL(prom_nextprop);
220 231
221int 232int
222prom_finddevice(const char *name) 233prom_finddevice(const char *name)
@@ -228,6 +239,7 @@ prom_finddevice(const char *name)
228 P1275_INOUT(1, 1), 239 P1275_INOUT(1, 1),
229 name); 240 name);
230} 241}
242EXPORT_SYMBOL(prom_finddevice);
231 243
232int prom_node_has_property(int node, const char *prop) 244int prom_node_has_property(int node, const char *prop)
233{ 245{
@@ -241,7 +253,8 @@ int prom_node_has_property(int node, const char *prop)
241 } while (*buf); 253 } while (*buf);
242 return 0; 254 return 0;
243} 255}
244 256EXPORT_SYMBOL(prom_node_has_property);
257
245/* Set property 'pname' at node 'node' to value 'value' which has a length 258/* Set property 'pname' at node 'node' to value 'value' which has a length
246 * of 'size' bytes. Return the number of bytes the prom accepted. 259 * of 'size' bytes. Return the number of bytes the prom accepted.
247 */ 260 */
@@ -264,6 +277,7 @@ prom_setprop(int node, const char *pname, char *value, int size)
264 P1275_INOUT(4, 1), 277 P1275_INOUT(4, 1),
265 node, pname, value, P1275_SIZE(size)); 278 node, pname, value, P1275_SIZE(size));
266} 279}
280EXPORT_SYMBOL(prom_setprop);
267 281
268inline int prom_inst2pkg(int inst) 282inline int prom_inst2pkg(int inst)
269{ 283{
diff --git a/arch/um/drivers/vde_user.c b/arch/um/drivers/vde_user.c
index 56533db25343..c5c43253e6ce 100644
--- a/arch/um/drivers/vde_user.c
+++ b/arch/um/drivers/vde_user.c
@@ -78,7 +78,7 @@ void vde_init_libstuff(struct vde_data *vpri, struct vde_init *init)
78{ 78{
79 struct vde_open_args *args; 79 struct vde_open_args *args;
80 80
81 vpri->args = kmalloc(sizeof(struct vde_open_args), UM_GFP_KERNEL); 81 vpri->args = uml_kmalloc(sizeof(struct vde_open_args), UM_GFP_KERNEL);
82 if (vpri->args == NULL) { 82 if (vpri->args == NULL) {
83 printk(UM_KERN_ERR "vde_init_libstuff - vde_open_args " 83 printk(UM_KERN_ERR "vde_init_libstuff - vde_open_args "
84 "allocation failed"); 84 "allocation failed");
@@ -91,8 +91,8 @@ void vde_init_libstuff(struct vde_data *vpri, struct vde_init *init)
91 args->group = init->group; 91 args->group = init->group;
92 args->mode = init->mode ? init->mode : 0700; 92 args->mode = init->mode ? init->mode : 0700;
93 93
94 args->port ? printk(UM_KERN_INFO "port %d", args->port) : 94 args->port ? printk("port %d", args->port) :
95 printk(UM_KERN_INFO "undefined port"); 95 printk("undefined port");
96} 96}
97 97
98int vde_user_read(void *conn, void *buf, int len) 98int vde_user_read(void *conn, void *buf, int len)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 7b66c34d0aae..469f3450bf81 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -5,7 +5,7 @@ mainmenu "Linux Kernel Configuration for x86"
5config 64BIT 5config 64BIT
6 bool "64-bit kernel" if ARCH = "x86" 6 bool "64-bit kernel" if ARCH = "x86"
7 default ARCH = "x86_64" 7 default ARCH = "x86_64"
8 help 8 ---help---
9 Say yes to build a 64-bit kernel - formerly known as x86_64 9 Say yes to build a 64-bit kernel - formerly known as x86_64
10 Say no to build a 32-bit kernel - formerly known as i386 10 Say no to build a 32-bit kernel - formerly known as i386
11 11
@@ -27,14 +27,15 @@ config X86
27 select HAVE_IOREMAP_PROT 27 select HAVE_IOREMAP_PROT
28 select HAVE_KPROBES 28 select HAVE_KPROBES
29 select ARCH_WANT_OPTIONAL_GPIOLIB 29 select ARCH_WANT_OPTIONAL_GPIOLIB
30 select ARCH_WANT_FRAME_POINTERS
30 select HAVE_KRETPROBES 31 select HAVE_KRETPROBES
31 select HAVE_FTRACE_MCOUNT_RECORD 32 select HAVE_FTRACE_MCOUNT_RECORD
32 select HAVE_DYNAMIC_FTRACE 33 select HAVE_DYNAMIC_FTRACE
33 select HAVE_FUNCTION_TRACER 34 select HAVE_FUNCTION_TRACER
34 select HAVE_FUNCTION_GRAPH_TRACER 35 select HAVE_FUNCTION_GRAPH_TRACER
35 select HAVE_FUNCTION_TRACE_MCOUNT_TEST 36 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
36 select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) 37 select HAVE_KVM
37 select HAVE_ARCH_KGDB if !X86_VOYAGER 38 select HAVE_ARCH_KGDB
38 select HAVE_ARCH_TRACEHOOK 39 select HAVE_ARCH_TRACEHOOK
39 select HAVE_GENERIC_DMA_COHERENT if X86_32 40 select HAVE_GENERIC_DMA_COHERENT if X86_32
40 select HAVE_EFFICIENT_UNALIGNED_ACCESS 41 select HAVE_EFFICIENT_UNALIGNED_ACCESS
@@ -135,18 +136,16 @@ config ARCH_HAS_CACHE_LINE_SIZE
135 def_bool y 136 def_bool y
136 137
137config HAVE_SETUP_PER_CPU_AREA 138config HAVE_SETUP_PER_CPU_AREA
138 def_bool X86_64_SMP || (X86_SMP && !X86_VOYAGER) 139 def_bool y
139 140
140config HAVE_CPUMASK_OF_CPU_MAP 141config HAVE_CPUMASK_OF_CPU_MAP
141 def_bool X86_64_SMP 142 def_bool X86_64_SMP
142 143
143config ARCH_HIBERNATION_POSSIBLE 144config ARCH_HIBERNATION_POSSIBLE
144 def_bool y 145 def_bool y
145 depends on !SMP || !X86_VOYAGER
146 146
147config ARCH_SUSPEND_POSSIBLE 147config ARCH_SUSPEND_POSSIBLE
148 def_bool y 148 def_bool y
149 depends on !X86_VOYAGER
150 149
151config ZONE_DMA32 150config ZONE_DMA32
152 bool 151 bool
@@ -176,11 +175,6 @@ config GENERIC_PENDING_IRQ
176 depends on GENERIC_HARDIRQS && SMP 175 depends on GENERIC_HARDIRQS && SMP
177 default y 176 default y
178 177
179config X86_SMP
180 bool
181 depends on SMP && ((X86_32 && !X86_VOYAGER) || X86_64)
182 default y
183
184config USE_GENERIC_SMP_HELPERS 178config USE_GENERIC_SMP_HELPERS
185 def_bool y 179 def_bool y
186 depends on SMP 180 depends on SMP
@@ -196,19 +190,17 @@ config X86_64_SMP
196config X86_HT 190config X86_HT
197 bool 191 bool
198 depends on SMP 192 depends on SMP
199 depends on (X86_32 && !X86_VOYAGER) || X86_64
200 default y
201
202config X86_BIOS_REBOOT
203 bool
204 depends on !X86_VOYAGER
205 default y 193 default y
206 194
207config X86_TRAMPOLINE 195config X86_TRAMPOLINE
208 bool 196 bool
209 depends on X86_SMP || (X86_VOYAGER && SMP) || (64BIT && ACPI_SLEEP) 197 depends on SMP || (64BIT && ACPI_SLEEP)
210 default y 198 default y
211 199
200config X86_32_LAZY_GS
201 def_bool y
202 depends on X86_32 && !CC_STACKPROTECTOR
203
212config KTIME_SCALAR 204config KTIME_SCALAR
213 def_bool X86_32 205 def_bool X86_32
214source "init/Kconfig" 206source "init/Kconfig"
@@ -246,14 +238,24 @@ config SMP
246 238
247 If you don't know what to do here, say N. 239 If you don't know what to do here, say N.
248 240
249config X86_HAS_BOOT_CPU_ID 241config X86_X2APIC
250 def_bool y 242 bool "Support x2apic"
251 depends on X86_VOYAGER 243 depends on X86_LOCAL_APIC && X86_64
244 ---help---
245 This enables x2apic support on CPUs that have this feature.
246
247 This allows 32-bit apic IDs (so it can support very large systems),
248 and accesses the local apic via MSRs not via mmio.
249
250 ( On certain CPU models you may need to enable INTR_REMAP too,
251 to get functional x2apic mode. )
252
253 If you don't know what to do here, say N.
252 254
253config SPARSE_IRQ 255config SPARSE_IRQ
254 bool "Support sparse irq numbering" 256 bool "Support sparse irq numbering"
255 depends on PCI_MSI || HT_IRQ 257 depends on PCI_MSI || HT_IRQ
256 help 258 ---help---
257 This enables support for sparse irqs. This is useful for distro 259 This enables support for sparse irqs. This is useful for distro
258 kernels that want to define a high CONFIG_NR_CPUS value but still 260 kernels that want to define a high CONFIG_NR_CPUS value but still
259 want to have low kernel memory footprint on smaller machines. 261 want to have low kernel memory footprint on smaller machines.
@@ -267,114 +269,140 @@ config NUMA_MIGRATE_IRQ_DESC
267 bool "Move irq desc when changing irq smp_affinity" 269 bool "Move irq desc when changing irq smp_affinity"
268 depends on SPARSE_IRQ && NUMA 270 depends on SPARSE_IRQ && NUMA
269 default n 271 default n
270 help 272 ---help---
271 This enables moving irq_desc to cpu/node that irq will use handled. 273 This enables moving irq_desc to cpu/node that irq will use handled.
272 274
273 If you don't know what to do here, say N. 275 If you don't know what to do here, say N.
274 276
275config X86_FIND_SMP_CONFIG
276 def_bool y
277 depends on X86_MPPARSE || X86_VOYAGER
278
279config X86_MPPARSE 277config X86_MPPARSE
280 bool "Enable MPS table" if ACPI 278 bool "Enable MPS table" if ACPI
281 default y 279 default y
282 depends on X86_LOCAL_APIC 280 depends on X86_LOCAL_APIC
283 help 281 ---help---
284 For old smp systems that do not have proper acpi support. Newer systems 282 For old smp systems that do not have proper acpi support. Newer systems
285 (esp with 64bit cpus) with acpi support, MADT and DSDT will override it 283 (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
286 284
287choice 285config X86_BIGSMP
288 prompt "Subarchitecture Type" 286 bool "Support for big SMP systems with more than 8 CPUs"
289 default X86_PC 287 depends on X86_32 && SMP
288 ---help---
289 This option is needed for the systems that have more than 8 CPUs
290 290
291config X86_PC 291if X86_32
292 bool "PC-compatible" 292config X86_EXTENDED_PLATFORM
293 help 293 bool "Support for extended (non-PC) x86 platforms"
294 Choose this option if your computer is a standard PC or compatible. 294 default y
295 ---help---
296 If you disable this option then the kernel will only support
297 standard PC platforms. (which covers the vast majority of
298 systems out there.)
299
300 If you enable this option then you'll be able to select support
301 for the following (non-PC) 32 bit x86 platforms:
302 AMD Elan
303 NUMAQ (IBM/Sequent)
304 RDC R-321x SoC
305 SGI 320/540 (Visual Workstation)
306 Summit/EXA (IBM x440)
307 Unisys ES7000 IA32 series
308
309 If you have one of these systems, or if you want to build a
310 generic distribution kernel, say Y here - otherwise say N.
311endif
312
313if X86_64
314config X86_EXTENDED_PLATFORM
315 bool "Support for extended (non-PC) x86 platforms"
316 default y
317 ---help---
318 If you disable this option then the kernel will only support
319 standard PC platforms. (which covers the vast majority of
320 systems out there.)
321
322 If you enable this option then you'll be able to select support
323 for the following (non-PC) 64 bit x86 platforms:
324 ScaleMP vSMP
325 SGI Ultraviolet
326
327 If you have one of these systems, or if you want to build a
328 generic distribution kernel, say Y here - otherwise say N.
329endif
330# This is an alphabetically sorted list of 64 bit extended platforms
331# Please maintain the alphabetic order if and when there are additions
332
333config X86_VSMP
334 bool "ScaleMP vSMP"
335 select PARAVIRT
336 depends on X86_64 && PCI
337 depends on X86_EXTENDED_PLATFORM
338 ---help---
339 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
340 supposed to run on these EM64T-based machines. Only choose this option
341 if you have one of these machines.
342
343config X86_UV
344 bool "SGI Ultraviolet"
345 depends on X86_64
346 depends on X86_EXTENDED_PLATFORM
347 select X86_X2APIC
348 ---help---
349 This option is needed in order to support SGI Ultraviolet systems.
350 If you don't have one of these, you should say N here.
351
352# Following is an alphabetically sorted list of 32 bit extended platforms
353# Please maintain the alphabetic order if and when there are additions
295 354
296config X86_ELAN 355config X86_ELAN
297 bool "AMD Elan" 356 bool "AMD Elan"
298 depends on X86_32 357 depends on X86_32
299 help 358 depends on X86_EXTENDED_PLATFORM
359 ---help---
300 Select this for an AMD Elan processor. 360 Select this for an AMD Elan processor.
301 361
302 Do not use this option for K6/Athlon/Opteron processors! 362 Do not use this option for K6/Athlon/Opteron processors!
303 363
304 If unsure, choose "PC-compatible" instead. 364 If unsure, choose "PC-compatible" instead.
305 365
306config X86_VOYAGER 366config X86_RDC321X
307 bool "Voyager (NCR)" 367 bool "RDC R-321x SoC"
308 depends on X86_32 && (SMP || BROKEN) && !PCI
309 help
310 Voyager is an MCA-based 32-way capable SMP architecture proprietary
311 to NCR Corp. Machine classes 345x/35xx/4100/51xx are Voyager-based.
312
313 *** WARNING ***
314
315 If you do not specifically know you have a Voyager based machine,
316 say N here, otherwise the kernel you build will not be bootable.
317
318config X86_GENERICARCH
319 bool "Generic architecture"
320 depends on X86_32 368 depends on X86_32
321 help 369 depends on X86_EXTENDED_PLATFORM
322 This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default 370 select M486
371 select X86_REBOOTFIXUPS
372 ---help---
373 This option is needed for RDC R-321x system-on-chip, also known
374 as R-8610-(G).
375 If you don't have one of these chips, you should say N here.
376
377config X86_32_NON_STANDARD
378 bool "Support non-standard 32-bit SMP architectures"
379 depends on X86_32 && SMP
380 depends on X86_EXTENDED_PLATFORM
381 ---help---
382 This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default
323 subarchitectures. It is intended for a generic binary kernel. 383 subarchitectures. It is intended for a generic binary kernel.
324 if you select them all, kernel will probe it one by one. and will 384 if you select them all, kernel will probe it one by one. and will
325 fallback to default. 385 fallback to default.
326 386
327if X86_GENERICARCH 387# Alphabetically sorted list of Non standard 32 bit platforms
328 388
329config X86_NUMAQ 389config X86_NUMAQ
330 bool "NUMAQ (IBM/Sequent)" 390 bool "NUMAQ (IBM/Sequent)"
331 depends on SMP && X86_32 && PCI && X86_MPPARSE 391 depends on X86_32_NON_STANDARD
332 select NUMA 392 select NUMA
333 help 393 select X86_MPPARSE
394 ---help---
334 This option is used for getting Linux to run on a NUMAQ (IBM/Sequent) 395 This option is used for getting Linux to run on a NUMAQ (IBM/Sequent)
335 NUMA multiquad box. This changes the way that processors are 396 NUMA multiquad box. This changes the way that processors are
336 bootstrapped, and uses Clustered Logical APIC addressing mode instead 397 bootstrapped, and uses Clustered Logical APIC addressing mode instead
337 of Flat Logical. You will need a new lynxer.elf file to flash your 398 of Flat Logical. You will need a new lynxer.elf file to flash your
338 firmware with - send email to <Martin.Bligh@us.ibm.com>. 399 firmware with - send email to <Martin.Bligh@us.ibm.com>.
339 400
340config X86_SUMMIT
341 bool "Summit/EXA (IBM x440)"
342 depends on X86_32 && SMP
343 help
344 This option is needed for IBM systems that use the Summit/EXA chipset.
345 In particular, it is needed for the x440.
346
347config X86_ES7000
348 bool "Support for Unisys ES7000 IA32 series"
349 depends on X86_32 && SMP
350 help
351 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is
352 supposed to run on an IA32-based Unisys ES7000 system.
353
354config X86_BIGSMP
355 bool "Support for big SMP systems with more than 8 CPUs"
356 depends on X86_32 && SMP
357 help
358 This option is needed for the systems that have more than 8 CPUs
359 and if the system is not of any sub-arch type above.
360
361endif
362
363config X86_VSMP
364 bool "Support for ScaleMP vSMP"
365 select PARAVIRT
366 depends on X86_64 && PCI
367 help
368 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
369 supposed to run on these EM64T-based machines. Only choose this option
370 if you have one of these machines.
371
372endchoice
373
374config X86_VISWS 401config X86_VISWS
375 bool "SGI 320/540 (Visual Workstation)" 402 bool "SGI 320/540 (Visual Workstation)"
376 depends on X86_32 && PCI && !X86_VOYAGER && X86_MPPARSE && PCI_GODIRECT 403 depends on X86_32 && PCI && X86_MPPARSE && PCI_GODIRECT
377 help 404 depends on X86_32_NON_STANDARD
405 ---help---
378 The SGI Visual Workstation series is an IA32-based workstation 406 The SGI Visual Workstation series is an IA32-based workstation
379 based on SGI systems chips with some legacy PC hardware attached. 407 based on SGI systems chips with some legacy PC hardware attached.
380 408
@@ -383,21 +411,25 @@ config X86_VISWS
383 A kernel compiled for the Visual Workstation will run on general 411 A kernel compiled for the Visual Workstation will run on general
384 PCs as well. See <file:Documentation/sgi-visws.txt> for details. 412 PCs as well. See <file:Documentation/sgi-visws.txt> for details.
385 413
386config X86_RDC321X 414config X86_SUMMIT
387 bool "RDC R-321x SoC" 415 bool "Summit/EXA (IBM x440)"
388 depends on X86_32 416 depends on X86_32_NON_STANDARD
389 select M486 417 ---help---
390 select X86_REBOOTFIXUPS 418 This option is needed for IBM systems that use the Summit/EXA chipset.
391 help 419 In particular, it is needed for the x440.
392 This option is needed for RDC R-321x system-on-chip, also known 420
393 as R-8610-(G). 421config X86_ES7000
394 If you don't have one of these chips, you should say N here. 422 bool "Unisys ES7000 IA32 series"
423 depends on X86_32_NON_STANDARD && X86_BIGSMP
424 ---help---
425 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is
426 supposed to run on an IA32-based Unisys ES7000 system.
395 427
396config SCHED_OMIT_FRAME_POINTER 428config SCHED_OMIT_FRAME_POINTER
397 def_bool y 429 def_bool y
398 prompt "Single-depth WCHAN output" 430 prompt "Single-depth WCHAN output"
399 depends on X86 431 depends on X86
400 help 432 ---help---
401 Calculate simpler /proc/<PID>/wchan values. If this option 433 Calculate simpler /proc/<PID>/wchan values. If this option
402 is disabled then wchan values will recurse back to the 434 is disabled then wchan values will recurse back to the
403 caller function. This provides more accurate wchan values, 435 caller function. This provides more accurate wchan values,
@@ -407,7 +439,7 @@ config SCHED_OMIT_FRAME_POINTER
407 439
408menuconfig PARAVIRT_GUEST 440menuconfig PARAVIRT_GUEST
409 bool "Paravirtualized guest support" 441 bool "Paravirtualized guest support"
410 help 442 ---help---
411 Say Y here to get to see options related to running Linux under 443 Say Y here to get to see options related to running Linux under
412 various hypervisors. This option alone does not add any kernel code. 444 various hypervisors. This option alone does not add any kernel code.
413 445
@@ -421,8 +453,7 @@ config VMI
421 bool "VMI Guest support" 453 bool "VMI Guest support"
422 select PARAVIRT 454 select PARAVIRT
423 depends on X86_32 455 depends on X86_32
424 depends on !X86_VOYAGER 456 ---help---
425 help
426 VMI provides a paravirtualized interface to the VMware ESX server 457 VMI provides a paravirtualized interface to the VMware ESX server
427 (it could be used by other hypervisors in theory too, but is not 458 (it could be used by other hypervisors in theory too, but is not
428 at the moment), by linking the kernel to a GPL-ed ROM module 459 at the moment), by linking the kernel to a GPL-ed ROM module
@@ -432,8 +463,7 @@ config KVM_CLOCK
432 bool "KVM paravirtualized clock" 463 bool "KVM paravirtualized clock"
433 select PARAVIRT 464 select PARAVIRT
434 select PARAVIRT_CLOCK 465 select PARAVIRT_CLOCK
435 depends on !X86_VOYAGER 466 ---help---
436 help
437 Turning on this option will allow you to run a paravirtualized clock 467 Turning on this option will allow you to run a paravirtualized clock
438 when running over the KVM hypervisor. Instead of relying on a PIT 468 when running over the KVM hypervisor. Instead of relying on a PIT
439 (or probably other) emulation by the underlying device model, the host 469 (or probably other) emulation by the underlying device model, the host
@@ -443,17 +473,15 @@ config KVM_CLOCK
443config KVM_GUEST 473config KVM_GUEST
444 bool "KVM Guest support" 474 bool "KVM Guest support"
445 select PARAVIRT 475 select PARAVIRT
446 depends on !X86_VOYAGER 476 ---help---
447 help 477 This option enables various optimizations for running under the KVM
448 This option enables various optimizations for running under the KVM 478 hypervisor.
449 hypervisor.
450 479
451source "arch/x86/lguest/Kconfig" 480source "arch/x86/lguest/Kconfig"
452 481
453config PARAVIRT 482config PARAVIRT
454 bool "Enable paravirtualization code" 483 bool "Enable paravirtualization code"
455 depends on !X86_VOYAGER 484 ---help---
456 help
457 This changes the kernel so it can modify itself when it is run 485 This changes the kernel so it can modify itself when it is run
458 under a hypervisor, potentially improving performance significantly 486 under a hypervisor, potentially improving performance significantly
459 over full virtualization. However, when run without a hypervisor 487 over full virtualization. However, when run without a hypervisor
@@ -466,51 +494,51 @@ config PARAVIRT_CLOCK
466endif 494endif
467 495
468config PARAVIRT_DEBUG 496config PARAVIRT_DEBUG
469 bool "paravirt-ops debugging" 497 bool "paravirt-ops debugging"
470 depends on PARAVIRT && DEBUG_KERNEL 498 depends on PARAVIRT && DEBUG_KERNEL
471 help 499 ---help---
472 Enable to debug paravirt_ops internals. Specifically, BUG if 500 Enable to debug paravirt_ops internals. Specifically, BUG if
473 a paravirt_op is missing when it is called. 501 a paravirt_op is missing when it is called.
474 502
475config MEMTEST 503config MEMTEST
476 bool "Memtest" 504 bool "Memtest"
477 help 505 ---help---
478 This option adds a kernel parameter 'memtest', which allows memtest 506 This option adds a kernel parameter 'memtest', which allows memtest
479 to be set. 507 to be set.
480 memtest=0, mean disabled; -- default 508 memtest=0, mean disabled; -- default
481 memtest=1, mean do 1 test pattern; 509 memtest=1, mean do 1 test pattern;
482 ... 510 ...
483 memtest=4, mean do 4 test patterns. 511 memtest=4, mean do 4 test patterns.
484 If you are unsure how to answer this question, answer N. 512 If you are unsure how to answer this question, answer N.
485 513
486config X86_SUMMIT_NUMA 514config X86_SUMMIT_NUMA
487 def_bool y 515 def_bool y
488 depends on X86_32 && NUMA && X86_GENERICARCH 516 depends on X86_32 && NUMA && X86_32_NON_STANDARD
489 517
490config X86_CYCLONE_TIMER 518config X86_CYCLONE_TIMER
491 def_bool y 519 def_bool y
492 depends on X86_GENERICARCH 520 depends on X86_32_NON_STANDARD
493 521
494source "arch/x86/Kconfig.cpu" 522source "arch/x86/Kconfig.cpu"
495 523
496config HPET_TIMER 524config HPET_TIMER
497 def_bool X86_64 525 def_bool X86_64
498 prompt "HPET Timer Support" if X86_32 526 prompt "HPET Timer Support" if X86_32
499 help 527 ---help---
500 Use the IA-PC HPET (High Precision Event Timer) to manage 528 Use the IA-PC HPET (High Precision Event Timer) to manage
501 time in preference to the PIT and RTC, if a HPET is 529 time in preference to the PIT and RTC, if a HPET is
502 present. 530 present.
503 HPET is the next generation timer replacing legacy 8254s. 531 HPET is the next generation timer replacing legacy 8254s.
504 The HPET provides a stable time base on SMP 532 The HPET provides a stable time base on SMP
505 systems, unlike the TSC, but it is more expensive to access, 533 systems, unlike the TSC, but it is more expensive to access,
506 as it is off-chip. You can find the HPET spec at 534 as it is off-chip. You can find the HPET spec at
507 <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>. 535 <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>.
508 536
509 You can safely choose Y here. However, HPET will only be 537 You can safely choose Y here. However, HPET will only be
510 activated if the platform and the BIOS support this feature. 538 activated if the platform and the BIOS support this feature.
511 Otherwise the 8254 will be used for timing services. 539 Otherwise the 8254 will be used for timing services.
512 540
513 Choose N to continue using the legacy 8254 timer. 541 Choose N to continue using the legacy 8254 timer.
514 542
515config HPET_EMULATE_RTC 543config HPET_EMULATE_RTC
516 def_bool y 544 def_bool y
@@ -521,7 +549,7 @@ config HPET_EMULATE_RTC
521config DMI 549config DMI
522 default y 550 default y
523 bool "Enable DMI scanning" if EMBEDDED 551 bool "Enable DMI scanning" if EMBEDDED
524 help 552 ---help---
525 Enabled scanning of DMI to identify machine quirks. Say Y 553 Enabled scanning of DMI to identify machine quirks. Say Y
526 here unless you have verified that your setup is not 554 here unless you have verified that your setup is not
527 affected by entries in the DMI blacklist. Required by PNP 555 affected by entries in the DMI blacklist. Required by PNP
@@ -533,7 +561,7 @@ config GART_IOMMU
533 select SWIOTLB 561 select SWIOTLB
534 select AGP 562 select AGP
535 depends on X86_64 && PCI 563 depends on X86_64 && PCI
536 help 564 ---help---
537 Support for full DMA access of devices with 32bit memory access only 565 Support for full DMA access of devices with 32bit memory access only
538 on systems with more than 3GB. This is usually needed for USB, 566 on systems with more than 3GB. This is usually needed for USB,
539 sound, many IDE/SATA chipsets and some other devices. 567 sound, many IDE/SATA chipsets and some other devices.
@@ -548,7 +576,7 @@ config CALGARY_IOMMU
548 bool "IBM Calgary IOMMU support" 576 bool "IBM Calgary IOMMU support"
549 select SWIOTLB 577 select SWIOTLB
550 depends on X86_64 && PCI && EXPERIMENTAL 578 depends on X86_64 && PCI && EXPERIMENTAL
551 help 579 ---help---
552 Support for hardware IOMMUs in IBM's xSeries x366 and x460 580 Support for hardware IOMMUs in IBM's xSeries x366 and x460
553 systems. Needed to run systems with more than 3GB of memory 581 systems. Needed to run systems with more than 3GB of memory
554 properly with 32-bit PCI devices that do not support DAC 582 properly with 32-bit PCI devices that do not support DAC
@@ -566,7 +594,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
566 def_bool y 594 def_bool y
567 prompt "Should Calgary be enabled by default?" 595 prompt "Should Calgary be enabled by default?"
568 depends on CALGARY_IOMMU 596 depends on CALGARY_IOMMU
569 help 597 ---help---
570 Should Calgary be enabled by default? if you choose 'y', Calgary 598 Should Calgary be enabled by default? if you choose 'y', Calgary
571 will be used (if it exists). If you choose 'n', Calgary will not be 599 will be used (if it exists). If you choose 'n', Calgary will not be
572 used even if it exists. If you choose 'n' and would like to use 600 used even if it exists. If you choose 'n' and would like to use
@@ -578,7 +606,7 @@ config AMD_IOMMU
578 select SWIOTLB 606 select SWIOTLB
579 select PCI_MSI 607 select PCI_MSI
580 depends on X86_64 && PCI && ACPI 608 depends on X86_64 && PCI && ACPI
581 help 609 ---help---
582 With this option you can enable support for AMD IOMMU hardware in 610 With this option you can enable support for AMD IOMMU hardware in
583 your system. An IOMMU is a hardware component which provides 611 your system. An IOMMU is a hardware component which provides
584 remapping of DMA memory accesses from devices. With an AMD IOMMU you 612 remapping of DMA memory accesses from devices. With an AMD IOMMU you
@@ -593,7 +621,7 @@ config AMD_IOMMU_STATS
593 bool "Export AMD IOMMU statistics to debugfs" 621 bool "Export AMD IOMMU statistics to debugfs"
594 depends on AMD_IOMMU 622 depends on AMD_IOMMU
595 select DEBUG_FS 623 select DEBUG_FS
596 help 624 ---help---
597 This option enables code in the AMD IOMMU driver to collect various 625 This option enables code in the AMD IOMMU driver to collect various
598 statistics about whats happening in the driver and exports that 626 statistics about whats happening in the driver and exports that
599 information to userspace via debugfs. 627 information to userspace via debugfs.
@@ -602,7 +630,7 @@ config AMD_IOMMU_STATS
602# need this always selected by IOMMU for the VIA workaround 630# need this always selected by IOMMU for the VIA workaround
603config SWIOTLB 631config SWIOTLB
604 def_bool y if X86_64 632 def_bool y if X86_64
605 help 633 ---help---
606 Support for software bounce buffers used on x86-64 systems 634 Support for software bounce buffers used on x86-64 systems
607 which don't have a hardware IOMMU (e.g. the current generation 635 which don't have a hardware IOMMU (e.g. the current generation
608 of Intel's x86-64 CPUs). Using this PCI devices which can only 636 of Intel's x86-64 CPUs). Using this PCI devices which can only
@@ -620,7 +648,7 @@ config MAXSMP
620 depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL 648 depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL
621 select CPUMASK_OFFSTACK 649 select CPUMASK_OFFSTACK
622 default n 650 default n
623 help 651 ---help---
624 Configure maximum number of CPUS and NUMA Nodes for this architecture. 652 Configure maximum number of CPUS and NUMA Nodes for this architecture.
625 If unsure, say N. 653 If unsure, say N.
626 654
@@ -631,7 +659,7 @@ config NR_CPUS
631 default "4096" if MAXSMP 659 default "4096" if MAXSMP
632 default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000) 660 default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000)
633 default "8" if SMP 661 default "8" if SMP
634 help 662 ---help---
635 This allows you to specify the maximum number of CPUs which this 663 This allows you to specify the maximum number of CPUs which this
636 kernel will support. The maximum supported value is 512 and the 664 kernel will support. The maximum supported value is 512 and the
637 minimum value which makes sense is 2. 665 minimum value which makes sense is 2.
@@ -642,7 +670,7 @@ config NR_CPUS
642config SCHED_SMT 670config SCHED_SMT
643 bool "SMT (Hyperthreading) scheduler support" 671 bool "SMT (Hyperthreading) scheduler support"
644 depends on X86_HT 672 depends on X86_HT
645 help 673 ---help---
646 SMT scheduler support improves the CPU scheduler's decision making 674 SMT scheduler support improves the CPU scheduler's decision making
647 when dealing with Intel Pentium 4 chips with HyperThreading at a 675 when dealing with Intel Pentium 4 chips with HyperThreading at a
648 cost of slightly increased overhead in some places. If unsure say 676 cost of slightly increased overhead in some places. If unsure say
@@ -652,7 +680,7 @@ config SCHED_MC
652 def_bool y 680 def_bool y
653 prompt "Multi-core scheduler support" 681 prompt "Multi-core scheduler support"
654 depends on X86_HT 682 depends on X86_HT
655 help 683 ---help---
656 Multi-core scheduler support improves the CPU scheduler's decision 684 Multi-core scheduler support improves the CPU scheduler's decision
657 making when dealing with multi-core CPU chips at a cost of slightly 685 making when dealing with multi-core CPU chips at a cost of slightly
658 increased overhead in some places. If unsure say N here. 686 increased overhead in some places. If unsure say N here.
@@ -661,8 +689,8 @@ source "kernel/Kconfig.preempt"
661 689
662config X86_UP_APIC 690config X86_UP_APIC
663 bool "Local APIC support on uniprocessors" 691 bool "Local APIC support on uniprocessors"
664 depends on X86_32 && !SMP && !(X86_VOYAGER || X86_GENERICARCH) 692 depends on X86_32 && !SMP && !X86_32_NON_STANDARD
665 help 693 ---help---
666 A local APIC (Advanced Programmable Interrupt Controller) is an 694 A local APIC (Advanced Programmable Interrupt Controller) is an
667 integrated interrupt controller in the CPU. If you have a single-CPU 695 integrated interrupt controller in the CPU. If you have a single-CPU
668 system which has a processor with a local APIC, you can say Y here to 696 system which has a processor with a local APIC, you can say Y here to
@@ -675,7 +703,7 @@ config X86_UP_APIC
675config X86_UP_IOAPIC 703config X86_UP_IOAPIC
676 bool "IO-APIC support on uniprocessors" 704 bool "IO-APIC support on uniprocessors"
677 depends on X86_UP_APIC 705 depends on X86_UP_APIC
678 help 706 ---help---
679 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an 707 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
680 SMP-capable replacement for PC-style interrupt controllers. Most 708 SMP-capable replacement for PC-style interrupt controllers. Most
681 SMP systems and many recent uniprocessor systems have one. 709 SMP systems and many recent uniprocessor systems have one.
@@ -686,11 +714,11 @@ config X86_UP_IOAPIC
686 714
687config X86_LOCAL_APIC 715config X86_LOCAL_APIC
688 def_bool y 716 def_bool y
689 depends on X86_64 || (X86_32 && (X86_UP_APIC || (SMP && !X86_VOYAGER) || X86_GENERICARCH)) 717 depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC
690 718
691config X86_IO_APIC 719config X86_IO_APIC
692 def_bool y 720 def_bool y
693 depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !X86_VOYAGER) || X86_GENERICARCH)) 721 depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC
694 722
695config X86_VISWS_APIC 723config X86_VISWS_APIC
696 def_bool y 724 def_bool y
@@ -700,7 +728,7 @@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
700 bool "Reroute for broken boot IRQs" 728 bool "Reroute for broken boot IRQs"
701 default n 729 default n
702 depends on X86_IO_APIC 730 depends on X86_IO_APIC
703 help 731 ---help---
704 This option enables a workaround that fixes a source of 732 This option enables a workaround that fixes a source of
705 spurious interrupts. This is recommended when threaded 733 spurious interrupts. This is recommended when threaded
706 interrupt handling is used on systems where the generation of 734 interrupt handling is used on systems where the generation of
@@ -722,7 +750,6 @@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
722 750
723config X86_MCE 751config X86_MCE
724 bool "Machine Check Exception" 752 bool "Machine Check Exception"
725 depends on !X86_VOYAGER
726 ---help--- 753 ---help---
727 Machine Check Exception support allows the processor to notify the 754 Machine Check Exception support allows the processor to notify the
728 kernel if it detects a problem (e.g. overheating, component failure). 755 kernel if it detects a problem (e.g. overheating, component failure).
@@ -741,7 +768,7 @@ config X86_MCE_INTEL
741 def_bool y 768 def_bool y
742 prompt "Intel MCE features" 769 prompt "Intel MCE features"
743 depends on X86_64 && X86_MCE && X86_LOCAL_APIC 770 depends on X86_64 && X86_MCE && X86_LOCAL_APIC
744 help 771 ---help---
745 Additional support for intel specific MCE features such as 772 Additional support for intel specific MCE features such as
746 the thermal monitor. 773 the thermal monitor.
747 774
@@ -749,14 +776,14 @@ config X86_MCE_AMD
749 def_bool y 776 def_bool y
750 prompt "AMD MCE features" 777 prompt "AMD MCE features"
751 depends on X86_64 && X86_MCE && X86_LOCAL_APIC 778 depends on X86_64 && X86_MCE && X86_LOCAL_APIC
752 help 779 ---help---
753 Additional support for AMD specific MCE features such as 780 Additional support for AMD specific MCE features such as
754 the DRAM Error Threshold. 781 the DRAM Error Threshold.
755 782
756config X86_MCE_NONFATAL 783config X86_MCE_NONFATAL
757 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4" 784 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
758 depends on X86_32 && X86_MCE 785 depends on X86_32 && X86_MCE
759 help 786 ---help---
760 Enabling this feature starts a timer that triggers every 5 seconds which 787 Enabling this feature starts a timer that triggers every 5 seconds which
761 will look at the machine check registers to see if anything happened. 788 will look at the machine check registers to see if anything happened.
762 Non-fatal problems automatically get corrected (but still logged). 789 Non-fatal problems automatically get corrected (but still logged).
@@ -769,7 +796,7 @@ config X86_MCE_NONFATAL
769config X86_MCE_P4THERMAL 796config X86_MCE_P4THERMAL
770 bool "check for P4 thermal throttling interrupt." 797 bool "check for P4 thermal throttling interrupt."
771 depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP) 798 depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP)
772 help 799 ---help---
773 Enabling this feature will cause a message to be printed when the P4 800 Enabling this feature will cause a message to be printed when the P4
774 enters thermal throttling. 801 enters thermal throttling.
775 802
@@ -777,11 +804,11 @@ config VM86
777 bool "Enable VM86 support" if EMBEDDED 804 bool "Enable VM86 support" if EMBEDDED
778 default y 805 default y
779 depends on X86_32 806 depends on X86_32
780 help 807 ---help---
781 This option is required by programs like DOSEMU to run 16-bit legacy 808 This option is required by programs like DOSEMU to run 16-bit legacy
782 code on X86 processors. It also may be needed by software like 809 code on X86 processors. It also may be needed by software like
783 XFree86 to initialize some video cards via BIOS. Disabling this 810 XFree86 to initialize some video cards via BIOS. Disabling this
784 option saves about 6k. 811 option saves about 6k.
785 812
786config TOSHIBA 813config TOSHIBA
787 tristate "Toshiba Laptop support" 814 tristate "Toshiba Laptop support"
@@ -855,33 +882,33 @@ config MICROCODE
855 module will be called microcode. 882 module will be called microcode.
856 883
857config MICROCODE_INTEL 884config MICROCODE_INTEL
858 bool "Intel microcode patch loading support" 885 bool "Intel microcode patch loading support"
859 depends on MICROCODE 886 depends on MICROCODE
860 default MICROCODE 887 default MICROCODE
861 select FW_LOADER 888 select FW_LOADER
862 --help--- 889 ---help---
863 This options enables microcode patch loading support for Intel 890 This options enables microcode patch loading support for Intel
864 processors. 891 processors.
865 892
866 For latest news and information on obtaining all the required 893 For latest news and information on obtaining all the required
867 Intel ingredients for this driver, check: 894 Intel ingredients for this driver, check:
868 <http://www.urbanmyth.org/microcode/>. 895 <http://www.urbanmyth.org/microcode/>.
869 896
870config MICROCODE_AMD 897config MICROCODE_AMD
871 bool "AMD microcode patch loading support" 898 bool "AMD microcode patch loading support"
872 depends on MICROCODE 899 depends on MICROCODE
873 select FW_LOADER 900 select FW_LOADER
874 --help--- 901 ---help---
875 If you select this option, microcode patch loading support for AMD 902 If you select this option, microcode patch loading support for AMD
876 processors will be enabled. 903 processors will be enabled.
877 904
878 config MICROCODE_OLD_INTERFACE 905config MICROCODE_OLD_INTERFACE
879 def_bool y 906 def_bool y
880 depends on MICROCODE 907 depends on MICROCODE
881 908
882config X86_MSR 909config X86_MSR
883 tristate "/dev/cpu/*/msr - Model-specific register support" 910 tristate "/dev/cpu/*/msr - Model-specific register support"
884 help 911 ---help---
885 This device gives privileged processes access to the x86 912 This device gives privileged processes access to the x86
886 Model-Specific Registers (MSRs). It is a character device with 913 Model-Specific Registers (MSRs). It is a character device with
887 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. 914 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
@@ -890,7 +917,7 @@ config X86_MSR
890 917
891config X86_CPUID 918config X86_CPUID
892 tristate "/dev/cpu/*/cpuid - CPU information support" 919 tristate "/dev/cpu/*/cpuid - CPU information support"
893 help 920 ---help---
894 This device gives processes access to the x86 CPUID instruction to 921 This device gives processes access to the x86 CPUID instruction to
895 be executed on a specific processor. It is a character device 922 be executed on a specific processor. It is a character device
896 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 923 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
@@ -942,7 +969,7 @@ config NOHIGHMEM
942config HIGHMEM4G 969config HIGHMEM4G
943 bool "4GB" 970 bool "4GB"
944 depends on !X86_NUMAQ 971 depends on !X86_NUMAQ
945 help 972 ---help---
946 Select this if you have a 32-bit processor and between 1 and 4 973 Select this if you have a 32-bit processor and between 1 and 4
947 gigabytes of physical RAM. 974 gigabytes of physical RAM.
948 975
@@ -950,7 +977,7 @@ config HIGHMEM64G
950 bool "64GB" 977 bool "64GB"
951 depends on !M386 && !M486 978 depends on !M386 && !M486
952 select X86_PAE 979 select X86_PAE
953 help 980 ---help---
954 Select this if you have a 32-bit processor and more than 4 981 Select this if you have a 32-bit processor and more than 4
955 gigabytes of physical RAM. 982 gigabytes of physical RAM.
956 983
@@ -961,7 +988,7 @@ choice
961 prompt "Memory split" if EMBEDDED 988 prompt "Memory split" if EMBEDDED
962 default VMSPLIT_3G 989 default VMSPLIT_3G
963 depends on X86_32 990 depends on X86_32
964 help 991 ---help---
965 Select the desired split between kernel and user memory. 992 Select the desired split between kernel and user memory.
966 993
967 If the address range available to the kernel is less than the 994 If the address range available to the kernel is less than the
@@ -1007,20 +1034,20 @@ config HIGHMEM
1007config X86_PAE 1034config X86_PAE
1008 bool "PAE (Physical Address Extension) Support" 1035 bool "PAE (Physical Address Extension) Support"
1009 depends on X86_32 && !HIGHMEM4G 1036 depends on X86_32 && !HIGHMEM4G
1010 help 1037 ---help---
1011 PAE is required for NX support, and furthermore enables 1038 PAE is required for NX support, and furthermore enables
1012 larger swapspace support for non-overcommit purposes. It 1039 larger swapspace support for non-overcommit purposes. It
1013 has the cost of more pagetable lookup overhead, and also 1040 has the cost of more pagetable lookup overhead, and also
1014 consumes more pagetable space per process. 1041 consumes more pagetable space per process.
1015 1042
1016config ARCH_PHYS_ADDR_T_64BIT 1043config ARCH_PHYS_ADDR_T_64BIT
1017 def_bool X86_64 || X86_PAE 1044 def_bool X86_64 || X86_PAE
1018 1045
1019config DIRECT_GBPAGES 1046config DIRECT_GBPAGES
1020 bool "Enable 1GB pages for kernel pagetables" if EMBEDDED 1047 bool "Enable 1GB pages for kernel pagetables" if EMBEDDED
1021 default y 1048 default y
1022 depends on X86_64 1049 depends on X86_64
1023 help 1050 ---help---
1024 Allow the kernel linear mapping to use 1GB pages on CPUs that 1051 Allow the kernel linear mapping to use 1GB pages on CPUs that
1025 support it. This can improve the kernel's performance a tiny bit by 1052 support it. This can improve the kernel's performance a tiny bit by
1026 reducing TLB pressure. If in doubt, say "Y". 1053 reducing TLB pressure. If in doubt, say "Y".
@@ -1030,9 +1057,8 @@ config NUMA
1030 bool "Numa Memory Allocation and Scheduler Support" 1057 bool "Numa Memory Allocation and Scheduler Support"
1031 depends on SMP 1058 depends on SMP
1032 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) 1059 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL)
1033 default n if X86_PC
1034 default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) 1060 default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP)
1035 help 1061 ---help---
1036 Enable NUMA (Non Uniform Memory Access) support. 1062 Enable NUMA (Non Uniform Memory Access) support.
1037 1063
1038 The kernel will try to allocate memory used by a CPU on the 1064 The kernel will try to allocate memory used by a CPU on the
@@ -1055,19 +1081,19 @@ config K8_NUMA
1055 def_bool y 1081 def_bool y
1056 prompt "Old style AMD Opteron NUMA detection" 1082 prompt "Old style AMD Opteron NUMA detection"
1057 depends on X86_64 && NUMA && PCI 1083 depends on X86_64 && NUMA && PCI
1058 help 1084 ---help---
1059 Enable K8 NUMA node topology detection. You should say Y here if 1085 Enable K8 NUMA node topology detection. You should say Y here if
1060 you have a multi processor AMD K8 system. This uses an old 1086 you have a multi processor AMD K8 system. This uses an old
1061 method to read the NUMA configuration directly from the builtin 1087 method to read the NUMA configuration directly from the builtin
1062 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA 1088 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
1063 instead, which also takes priority if both are compiled in. 1089 instead, which also takes priority if both are compiled in.
1064 1090
1065config X86_64_ACPI_NUMA 1091config X86_64_ACPI_NUMA
1066 def_bool y 1092 def_bool y
1067 prompt "ACPI NUMA detection" 1093 prompt "ACPI NUMA detection"
1068 depends on X86_64 && NUMA && ACPI && PCI 1094 depends on X86_64 && NUMA && ACPI && PCI
1069 select ACPI_NUMA 1095 select ACPI_NUMA
1070 help 1096 ---help---
1071 Enable ACPI SRAT based node topology detection. 1097 Enable ACPI SRAT based node topology detection.
1072 1098
1073# Some NUMA nodes have memory ranges that span 1099# Some NUMA nodes have memory ranges that span
@@ -1082,7 +1108,7 @@ config NODES_SPAN_OTHER_NODES
1082config NUMA_EMU 1108config NUMA_EMU
1083 bool "NUMA emulation" 1109 bool "NUMA emulation"
1084 depends on X86_64 && NUMA 1110 depends on X86_64 && NUMA
1085 help 1111 ---help---
1086 Enable NUMA emulation. A flat machine will be split 1112 Enable NUMA emulation. A flat machine will be split
1087 into virtual nodes when booted with "numa=fake=N", where N is the 1113 into virtual nodes when booted with "numa=fake=N", where N is the
1088 number of nodes. This is only useful for debugging. 1114 number of nodes. This is only useful for debugging.
@@ -1095,7 +1121,7 @@ config NODES_SHIFT
1095 default "4" if X86_NUMAQ 1121 default "4" if X86_NUMAQ
1096 default "3" 1122 default "3"
1097 depends on NEED_MULTIPLE_NODES 1123 depends on NEED_MULTIPLE_NODES
1098 help 1124 ---help---
1099 Specify the maximum number of NUMA Nodes available on the target 1125 Specify the maximum number of NUMA Nodes available on the target
1100 system. Increases memory reserved to accomodate various tables. 1126 system. Increases memory reserved to accomodate various tables.
1101 1127
@@ -1133,7 +1159,7 @@ config ARCH_SPARSEMEM_DEFAULT
1133 1159
1134config ARCH_SPARSEMEM_ENABLE 1160config ARCH_SPARSEMEM_ENABLE
1135 def_bool y 1161 def_bool y
1136 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC) || X86_GENERICARCH 1162 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_32) || X86_32_NON_STANDARD
1137 select SPARSEMEM_STATIC if X86_32 1163 select SPARSEMEM_STATIC if X86_32
1138 select SPARSEMEM_VMEMMAP_ENABLE if X86_64 1164 select SPARSEMEM_VMEMMAP_ENABLE if X86_64
1139 1165
@@ -1150,61 +1176,61 @@ source "mm/Kconfig"
1150config HIGHPTE 1176config HIGHPTE
1151 bool "Allocate 3rd-level pagetables from highmem" 1177 bool "Allocate 3rd-level pagetables from highmem"
1152 depends on X86_32 && (HIGHMEM4G || HIGHMEM64G) 1178 depends on X86_32 && (HIGHMEM4G || HIGHMEM64G)
1153 help 1179 ---help---
1154 The VM uses one page table entry for each page of physical memory. 1180 The VM uses one page table entry for each page of physical memory.
1155 For systems with a lot of RAM, this can be wasteful of precious 1181 For systems with a lot of RAM, this can be wasteful of precious
1156 low memory. Setting this option will put user-space page table 1182 low memory. Setting this option will put user-space page table
1157 entries in high memory. 1183 entries in high memory.
1158 1184
1159config X86_CHECK_BIOS_CORRUPTION 1185config X86_CHECK_BIOS_CORRUPTION
1160 bool "Check for low memory corruption" 1186 bool "Check for low memory corruption"
1161 help 1187 ---help---
1162 Periodically check for memory corruption in low memory, which 1188 Periodically check for memory corruption in low memory, which
1163 is suspected to be caused by BIOS. Even when enabled in the 1189 is suspected to be caused by BIOS. Even when enabled in the
1164 configuration, it is disabled at runtime. Enable it by 1190 configuration, it is disabled at runtime. Enable it by
1165 setting "memory_corruption_check=1" on the kernel command 1191 setting "memory_corruption_check=1" on the kernel command
1166 line. By default it scans the low 64k of memory every 60 1192 line. By default it scans the low 64k of memory every 60
1167 seconds; see the memory_corruption_check_size and 1193 seconds; see the memory_corruption_check_size and
1168 memory_corruption_check_period parameters in 1194 memory_corruption_check_period parameters in
1169 Documentation/kernel-parameters.txt to adjust this. 1195 Documentation/kernel-parameters.txt to adjust this.
1170 1196
1171 When enabled with the default parameters, this option has 1197 When enabled with the default parameters, this option has
1172 almost no overhead, as it reserves a relatively small amount 1198 almost no overhead, as it reserves a relatively small amount
1173 of memory and scans it infrequently. It both detects corruption 1199 of memory and scans it infrequently. It both detects corruption
1174 and prevents it from affecting the running system. 1200 and prevents it from affecting the running system.
1175 1201
1176 It is, however, intended as a diagnostic tool; if repeatable 1202 It is, however, intended as a diagnostic tool; if repeatable
1177 BIOS-originated corruption always affects the same memory, 1203 BIOS-originated corruption always affects the same memory,
1178 you can use memmap= to prevent the kernel from using that 1204 you can use memmap= to prevent the kernel from using that
1179 memory. 1205 memory.
1180 1206
1181config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK 1207config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
1182 bool "Set the default setting of memory_corruption_check" 1208 bool "Set the default setting of memory_corruption_check"
1183 depends on X86_CHECK_BIOS_CORRUPTION 1209 depends on X86_CHECK_BIOS_CORRUPTION
1184 default y 1210 default y
1185 help 1211 ---help---
1186 Set whether the default state of memory_corruption_check is 1212 Set whether the default state of memory_corruption_check is
1187 on or off. 1213 on or off.
1188 1214
1189config X86_RESERVE_LOW_64K 1215config X86_RESERVE_LOW_64K
1190 bool "Reserve low 64K of RAM on AMI/Phoenix BIOSen" 1216 bool "Reserve low 64K of RAM on AMI/Phoenix BIOSen"
1191 default y 1217 default y
1192 help 1218 ---help---
1193 Reserve the first 64K of physical RAM on BIOSes that are known 1219 Reserve the first 64K of physical RAM on BIOSes that are known
1194 to potentially corrupt that memory range. A numbers of BIOSes are 1220 to potentially corrupt that memory range. A numbers of BIOSes are
1195 known to utilize this area during suspend/resume, so it must not 1221 known to utilize this area during suspend/resume, so it must not
1196 be used by the kernel. 1222 be used by the kernel.
1197 1223
1198 Set this to N if you are absolutely sure that you trust the BIOS 1224 Set this to N if you are absolutely sure that you trust the BIOS
1199 to get all its memory reservations and usages right. 1225 to get all its memory reservations and usages right.
1200 1226
1201 If you have doubts about the BIOS (e.g. suspend/resume does not 1227 If you have doubts about the BIOS (e.g. suspend/resume does not
1202 work or there's kernel crashes after certain hardware hotplug 1228 work or there's kernel crashes after certain hardware hotplug
1203 events) and it's not AMI or Phoenix, then you might want to enable 1229 events) and it's not AMI or Phoenix, then you might want to enable
1204 X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check typical 1230 X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check typical
1205 corruption patterns. 1231 corruption patterns.
1206 1232
1207 Say Y if unsure. 1233 Say Y if unsure.
1208 1234
1209config MATH_EMULATION 1235config MATH_EMULATION
1210 bool 1236 bool
@@ -1270,7 +1296,7 @@ config MTRR_SANITIZER
1270 def_bool y 1296 def_bool y
1271 prompt "MTRR cleanup support" 1297 prompt "MTRR cleanup support"
1272 depends on MTRR 1298 depends on MTRR
1273 help 1299 ---help---
1274 Convert MTRR layout from continuous to discrete, so X drivers can 1300 Convert MTRR layout from continuous to discrete, so X drivers can
1275 add writeback entries. 1301 add writeback entries.
1276 1302
@@ -1285,7 +1311,7 @@ config MTRR_SANITIZER_ENABLE_DEFAULT
1285 range 0 1 1311 range 0 1
1286 default "0" 1312 default "0"
1287 depends on MTRR_SANITIZER 1313 depends on MTRR_SANITIZER
1288 help 1314 ---help---
1289 Enable mtrr cleanup default value 1315 Enable mtrr cleanup default value
1290 1316
1291config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT 1317config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
@@ -1293,7 +1319,7 @@ config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
1293 range 0 7 1319 range 0 7
1294 default "1" 1320 default "1"
1295 depends on MTRR_SANITIZER 1321 depends on MTRR_SANITIZER
1296 help 1322 ---help---
1297 mtrr cleanup spare entries default, it can be changed via 1323 mtrr cleanup spare entries default, it can be changed via
1298 mtrr_spare_reg_nr=N on the kernel command line. 1324 mtrr_spare_reg_nr=N on the kernel command line.
1299 1325
@@ -1301,7 +1327,7 @@ config X86_PAT
1301 bool 1327 bool
1302 prompt "x86 PAT support" 1328 prompt "x86 PAT support"
1303 depends on MTRR 1329 depends on MTRR
1304 help 1330 ---help---
1305 Use PAT attributes to setup page level cache control. 1331 Use PAT attributes to setup page level cache control.
1306 1332
1307 PATs are the modern equivalents of MTRRs and are much more 1333 PATs are the modern equivalents of MTRRs and are much more
@@ -1316,20 +1342,20 @@ config EFI
1316 bool "EFI runtime service support" 1342 bool "EFI runtime service support"
1317 depends on ACPI 1343 depends on ACPI
1318 ---help--- 1344 ---help---
1319 This enables the kernel to use EFI runtime services that are 1345 This enables the kernel to use EFI runtime services that are
1320 available (such as the EFI variable services). 1346 available (such as the EFI variable services).
1321 1347
1322 This option is only useful on systems that have EFI firmware. 1348 This option is only useful on systems that have EFI firmware.
1323 In addition, you should use the latest ELILO loader available 1349 In addition, you should use the latest ELILO loader available
1324 at <http://elilo.sourceforge.net> in order to take advantage 1350 at <http://elilo.sourceforge.net> in order to take advantage
1325 of EFI runtime services. However, even with this option, the 1351 of EFI runtime services. However, even with this option, the
1326 resultant kernel should continue to boot on existing non-EFI 1352 resultant kernel should continue to boot on existing non-EFI
1327 platforms. 1353 platforms.
1328 1354
1329config SECCOMP 1355config SECCOMP
1330 def_bool y 1356 def_bool y
1331 prompt "Enable seccomp to safely compute untrusted bytecode" 1357 prompt "Enable seccomp to safely compute untrusted bytecode"
1332 help 1358 ---help---
1333 This kernel feature is useful for number crunching applications 1359 This kernel feature is useful for number crunching applications
1334 that may need to compute untrusted bytecode during their 1360 that may need to compute untrusted bytecode during their
1335 execution. By using pipes or other transports made available to 1361 execution. By using pipes or other transports made available to
@@ -1342,13 +1368,16 @@ config SECCOMP
1342 1368
1343 If unsure, say Y. Only embedded should say N here. 1369 If unsure, say Y. Only embedded should say N here.
1344 1370
1371config CC_STACKPROTECTOR_ALL
1372 bool
1373
1345config CC_STACKPROTECTOR 1374config CC_STACKPROTECTOR
1346 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 1375 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1347 depends on X86_64 && EXPERIMENTAL && BROKEN 1376 select CC_STACKPROTECTOR_ALL
1348 help 1377 ---help---
1349 This option turns on the -fstack-protector GCC feature. This 1378 This option turns on the -fstack-protector GCC feature. This
1350 feature puts, at the beginning of critical functions, a canary 1379 feature puts, at the beginning of functions, a canary value on
1351 value on the stack just before the return address, and validates 1380 the stack just before the return address, and validates
1352 the value just before actually returning. Stack based buffer 1381 the value just before actually returning. Stack based buffer
1353 overflows (that need to overwrite this return address) now also 1382 overflows (that need to overwrite this return address) now also
1354 overwrite the canary, which gets detected and the attack is then 1383 overwrite the canary, which gets detected and the attack is then
@@ -1356,22 +1385,14 @@ config CC_STACKPROTECTOR
1356 1385
1357 This feature requires gcc version 4.2 or above, or a distribution 1386 This feature requires gcc version 4.2 or above, or a distribution
1358 gcc with the feature backported. Older versions are automatically 1387 gcc with the feature backported. Older versions are automatically
1359 detected and for those versions, this configuration option is ignored. 1388 detected and for those versions, this configuration option is
1360 1389 ignored. (and a warning is printed during bootup)
1361config CC_STACKPROTECTOR_ALL
1362 bool "Use stack-protector for all functions"
1363 depends on CC_STACKPROTECTOR
1364 help
1365 Normally, GCC only inserts the canary value protection for
1366 functions that use large-ish on-stack buffers. By enabling
1367 this option, GCC will be asked to do this for ALL functions.
1368 1390
1369source kernel/Kconfig.hz 1391source kernel/Kconfig.hz
1370 1392
1371config KEXEC 1393config KEXEC
1372 bool "kexec system call" 1394 bool "kexec system call"
1373 depends on X86_BIOS_REBOOT 1395 ---help---
1374 help
1375 kexec is a system call that implements the ability to shutdown your 1396 kexec is a system call that implements the ability to shutdown your
1376 current kernel, and to start another kernel. It is like a reboot 1397 current kernel, and to start another kernel. It is like a reboot
1377 but it is independent of the system firmware. And like a reboot 1398 but it is independent of the system firmware. And like a reboot
@@ -1388,7 +1409,7 @@ config KEXEC
1388config CRASH_DUMP 1409config CRASH_DUMP
1389 bool "kernel crash dumps" 1410 bool "kernel crash dumps"
1390 depends on X86_64 || (X86_32 && HIGHMEM) 1411 depends on X86_64 || (X86_32 && HIGHMEM)
1391 help 1412 ---help---
1392 Generate crash dump after being started by kexec. 1413 Generate crash dump after being started by kexec.
1393 This should be normally only set in special crash dump kernels 1414 This should be normally only set in special crash dump kernels
1394 which are loaded in the main kernel with kexec-tools into 1415 which are loaded in the main kernel with kexec-tools into
@@ -1403,7 +1424,7 @@ config KEXEC_JUMP
1403 bool "kexec jump (EXPERIMENTAL)" 1424 bool "kexec jump (EXPERIMENTAL)"
1404 depends on EXPERIMENTAL 1425 depends on EXPERIMENTAL
1405 depends on KEXEC && HIBERNATION && X86_32 1426 depends on KEXEC && HIBERNATION && X86_32
1406 help 1427 ---help---
1407 Jump between original kernel and kexeced kernel and invoke 1428 Jump between original kernel and kexeced kernel and invoke
1408 code in physical address mode via KEXEC 1429 code in physical address mode via KEXEC
1409 1430
@@ -1412,7 +1433,7 @@ config PHYSICAL_START
1412 default "0x1000000" if X86_NUMAQ 1433 default "0x1000000" if X86_NUMAQ
1413 default "0x200000" if X86_64 1434 default "0x200000" if X86_64
1414 default "0x100000" 1435 default "0x100000"
1415 help 1436 ---help---
1416 This gives the physical address where the kernel is loaded. 1437 This gives the physical address where the kernel is loaded.
1417 1438
1418 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then 1439 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
@@ -1453,7 +1474,7 @@ config PHYSICAL_START
1453config RELOCATABLE 1474config RELOCATABLE
1454 bool "Build a relocatable kernel (EXPERIMENTAL)" 1475 bool "Build a relocatable kernel (EXPERIMENTAL)"
1455 depends on EXPERIMENTAL 1476 depends on EXPERIMENTAL
1456 help 1477 ---help---
1457 This builds a kernel image that retains relocation information 1478 This builds a kernel image that retains relocation information
1458 so it can be loaded someplace besides the default 1MB. 1479 so it can be loaded someplace besides the default 1MB.
1459 The relocations tend to make the kernel binary about 10% larger, 1480 The relocations tend to make the kernel binary about 10% larger,
@@ -1473,7 +1494,7 @@ config PHYSICAL_ALIGN
1473 default "0x100000" if X86_32 1494 default "0x100000" if X86_32
1474 default "0x200000" if X86_64 1495 default "0x200000" if X86_64
1475 range 0x2000 0x400000 1496 range 0x2000 0x400000
1476 help 1497 ---help---
1477 This value puts the alignment restrictions on physical address 1498 This value puts the alignment restrictions on physical address
1478 where kernel is loaded and run from. Kernel is compiled for an 1499 where kernel is loaded and run from. Kernel is compiled for an
1479 address which meets above alignment restriction. 1500 address which meets above alignment restriction.
@@ -1494,7 +1515,7 @@ config PHYSICAL_ALIGN
1494 1515
1495config HOTPLUG_CPU 1516config HOTPLUG_CPU
1496 bool "Support for hot-pluggable CPUs" 1517 bool "Support for hot-pluggable CPUs"
1497 depends on SMP && HOTPLUG && !X86_VOYAGER 1518 depends on SMP && HOTPLUG
1498 ---help--- 1519 ---help---
1499 Say Y here to allow turning CPUs off and on. CPUs can be 1520 Say Y here to allow turning CPUs off and on. CPUs can be
1500 controlled through /sys/devices/system/cpu. 1521 controlled through /sys/devices/system/cpu.
@@ -1506,7 +1527,7 @@ config COMPAT_VDSO
1506 def_bool y 1527 def_bool y
1507 prompt "Compat VDSO support" 1528 prompt "Compat VDSO support"
1508 depends on X86_32 || IA32_EMULATION 1529 depends on X86_32 || IA32_EMULATION
1509 help 1530 ---help---
1510 Map the 32-bit VDSO to the predictable old-style address too. 1531 Map the 32-bit VDSO to the predictable old-style address too.
1511 ---help--- 1532 ---help---
1512 Say N here if you are running a sufficiently recent glibc 1533 Say N here if you are running a sufficiently recent glibc
@@ -1518,7 +1539,7 @@ config COMPAT_VDSO
1518config CMDLINE_BOOL 1539config CMDLINE_BOOL
1519 bool "Built-in kernel command line" 1540 bool "Built-in kernel command line"
1520 default n 1541 default n
1521 help 1542 ---help---
1522 Allow for specifying boot arguments to the kernel at 1543 Allow for specifying boot arguments to the kernel at
1523 build time. On some systems (e.g. embedded ones), it is 1544 build time. On some systems (e.g. embedded ones), it is
1524 necessary or convenient to provide some or all of the 1545 necessary or convenient to provide some or all of the
@@ -1536,7 +1557,7 @@ config CMDLINE
1536 string "Built-in kernel command string" 1557 string "Built-in kernel command string"
1537 depends on CMDLINE_BOOL 1558 depends on CMDLINE_BOOL
1538 default "" 1559 default ""
1539 help 1560 ---help---
1540 Enter arguments here that should be compiled into the kernel 1561 Enter arguments here that should be compiled into the kernel
1541 image and used at boot time. If the boot loader provides a 1562 image and used at boot time. If the boot loader provides a
1542 command line at boot time, it is appended to this string to 1563 command line at boot time, it is appended to this string to
@@ -1553,7 +1574,7 @@ config CMDLINE_OVERRIDE
1553 bool "Built-in command line overrides boot loader arguments" 1574 bool "Built-in command line overrides boot loader arguments"
1554 default n 1575 default n
1555 depends on CMDLINE_BOOL 1576 depends on CMDLINE_BOOL
1556 help 1577 ---help---
1557 Set this option to 'Y' to have the kernel ignore the boot loader 1578 Set this option to 'Y' to have the kernel ignore the boot loader
1558 command line, and use ONLY the built-in command line. 1579 command line, and use ONLY the built-in command line.
1559 1580
@@ -1575,7 +1596,6 @@ config HAVE_ARCH_EARLY_PFN_TO_NID
1575 depends on NUMA 1596 depends on NUMA
1576 1597
1577menu "Power management and ACPI options" 1598menu "Power management and ACPI options"
1578 depends on !X86_VOYAGER
1579 1599
1580config ARCH_HIBERNATION_HEADER 1600config ARCH_HIBERNATION_HEADER
1581 def_bool y 1601 def_bool y
@@ -1653,7 +1673,7 @@ if APM
1653 1673
1654config APM_IGNORE_USER_SUSPEND 1674config APM_IGNORE_USER_SUSPEND
1655 bool "Ignore USER SUSPEND" 1675 bool "Ignore USER SUSPEND"
1656 help 1676 ---help---
1657 This option will ignore USER SUSPEND requests. On machines with a 1677 This option will ignore USER SUSPEND requests. On machines with a
1658 compliant APM BIOS, you want to say N. However, on the NEC Versa M 1678 compliant APM BIOS, you want to say N. However, on the NEC Versa M
1659 series notebooks, it is necessary to say Y because of a BIOS bug. 1679 series notebooks, it is necessary to say Y because of a BIOS bug.
@@ -1677,7 +1697,7 @@ config APM_DO_ENABLE
1677 1697
1678config APM_CPU_IDLE 1698config APM_CPU_IDLE
1679 bool "Make CPU Idle calls when idle" 1699 bool "Make CPU Idle calls when idle"
1680 help 1700 ---help---
1681 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop. 1701 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
1682 On some machines, this can activate improved power savings, such as 1702 On some machines, this can activate improved power savings, such as
1683 a slowed CPU clock rate, when the machine is idle. These idle calls 1703 a slowed CPU clock rate, when the machine is idle. These idle calls
@@ -1688,7 +1708,7 @@ config APM_CPU_IDLE
1688 1708
1689config APM_DISPLAY_BLANK 1709config APM_DISPLAY_BLANK
1690 bool "Enable console blanking using APM" 1710 bool "Enable console blanking using APM"
1691 help 1711 ---help---
1692 Enable console blanking using the APM. Some laptops can use this to 1712 Enable console blanking using the APM. Some laptops can use this to
1693 turn off the LCD backlight when the screen blanker of the Linux 1713 turn off the LCD backlight when the screen blanker of the Linux
1694 virtual console blanks the screen. Note that this is only used by 1714 virtual console blanks the screen. Note that this is only used by
@@ -1701,7 +1721,7 @@ config APM_DISPLAY_BLANK
1701 1721
1702config APM_ALLOW_INTS 1722config APM_ALLOW_INTS
1703 bool "Allow interrupts during APM BIOS calls" 1723 bool "Allow interrupts during APM BIOS calls"
1704 help 1724 ---help---
1705 Normally we disable external interrupts while we are making calls to 1725 Normally we disable external interrupts while we are making calls to
1706 the APM BIOS as a measure to lessen the effects of a badly behaving 1726 the APM BIOS as a measure to lessen the effects of a badly behaving
1707 BIOS implementation. The BIOS should reenable interrupts if it 1727 BIOS implementation. The BIOS should reenable interrupts if it
@@ -1726,7 +1746,7 @@ config PCI
1726 bool "PCI support" 1746 bool "PCI support"
1727 default y 1747 default y
1728 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC) 1748 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
1729 help 1749 ---help---
1730 Find out whether you have a PCI motherboard. PCI is the name of a 1750 Find out whether you have a PCI motherboard. PCI is the name of a
1731 bus system, i.e. the way the CPU talks to the other stuff inside 1751 bus system, i.e. the way the CPU talks to the other stuff inside
1732 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or 1752 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
@@ -1797,40 +1817,52 @@ config PCI_MMCONFIG
1797config DMAR 1817config DMAR
1798 bool "Support for DMA Remapping Devices (EXPERIMENTAL)" 1818 bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
1799 depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL 1819 depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL
1800 help 1820 ---help---
1801 DMA remapping (DMAR) devices support enables independent address 1821 DMA remapping (DMAR) devices support enables independent address
1802 translations for Direct Memory Access (DMA) from devices. 1822 translations for Direct Memory Access (DMA) from devices.
1803 These DMA remapping devices are reported via ACPI tables 1823 These DMA remapping devices are reported via ACPI tables
1804 and include PCI device scope covered by these DMA 1824 and include PCI device scope covered by these DMA
1805 remapping devices. 1825 remapping devices.
1806 1826
1827config DMAR_DEFAULT_ON
1828 def_bool y
1829 prompt "Enable DMA Remapping Devices by default"
1830 depends on DMAR
1831 help
1832 Selecting this option will enable a DMAR device at boot time if
1833 one is found. If this option is not selected, DMAR support can
1834 be enabled by passing intel_iommu=on to the kernel. It is
1835 recommended you say N here while the DMAR code remains
1836 experimental.
1837
1807config DMAR_GFX_WA 1838config DMAR_GFX_WA
1808 def_bool y 1839 def_bool y
1809 prompt "Support for Graphics workaround" 1840 prompt "Support for Graphics workaround"
1810 depends on DMAR 1841 depends on DMAR
1811 help 1842 ---help---
1812 Current Graphics drivers tend to use physical address 1843 Current Graphics drivers tend to use physical address
1813 for DMA and avoid using DMA APIs. Setting this config 1844 for DMA and avoid using DMA APIs. Setting this config
1814 option permits the IOMMU driver to set a unity map for 1845 option permits the IOMMU driver to set a unity map for
1815 all the OS-visible memory. Hence the driver can continue 1846 all the OS-visible memory. Hence the driver can continue
1816 to use physical addresses for DMA. 1847 to use physical addresses for DMA.
1817 1848
1818config DMAR_FLOPPY_WA 1849config DMAR_FLOPPY_WA
1819 def_bool y 1850 def_bool y
1820 depends on DMAR 1851 depends on DMAR
1821 help 1852 ---help---
1822 Floppy disk drivers are know to bypass DMA API calls 1853 Floppy disk drivers are know to bypass DMA API calls
1823 thereby failing to work when IOMMU is enabled. This 1854 thereby failing to work when IOMMU is enabled. This
1824 workaround will setup a 1:1 mapping for the first 1855 workaround will setup a 1:1 mapping for the first
1825 16M to make floppy (an ISA device) work. 1856 16M to make floppy (an ISA device) work.
1826 1857
1827config INTR_REMAP 1858config INTR_REMAP
1828 bool "Support for Interrupt Remapping (EXPERIMENTAL)" 1859 bool "Support for Interrupt Remapping (EXPERIMENTAL)"
1829 depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL 1860 depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL
1830 help 1861 select X86_X2APIC
1831 Supports Interrupt remapping for IO-APIC and MSI devices. 1862 ---help---
1832 To use x2apic mode in the CPU's which support x2APIC enhancements or 1863 Supports Interrupt remapping for IO-APIC and MSI devices.
1833 to support platforms with CPU's having > 8 bit APIC ID, say Y. 1864 To use x2apic mode in the CPU's which support x2APIC enhancements or
1865 to support platforms with CPU's having > 8 bit APIC ID, say Y.
1834 1866
1835source "drivers/pci/pcie/Kconfig" 1867source "drivers/pci/pcie/Kconfig"
1836 1868
@@ -1844,8 +1876,7 @@ if X86_32
1844 1876
1845config ISA 1877config ISA
1846 bool "ISA support" 1878 bool "ISA support"
1847 depends on !X86_VOYAGER 1879 ---help---
1848 help
1849 Find out whether you have ISA slots on your motherboard. ISA is the 1880 Find out whether you have ISA slots on your motherboard. ISA is the
1850 name of a bus system, i.e. the way the CPU talks to the other stuff 1881 name of a bus system, i.e. the way the CPU talks to the other stuff
1851 inside your box. Other bus systems are PCI, EISA, MicroChannel 1882 inside your box. Other bus systems are PCI, EISA, MicroChannel
@@ -1871,9 +1902,8 @@ config EISA
1871source "drivers/eisa/Kconfig" 1902source "drivers/eisa/Kconfig"
1872 1903
1873config MCA 1904config MCA
1874 bool "MCA support" if !X86_VOYAGER 1905 bool "MCA support"
1875 default y if X86_VOYAGER 1906 ---help---
1876 help
1877 MicroChannel Architecture is found in some IBM PS/2 machines and 1907 MicroChannel Architecture is found in some IBM PS/2 machines and
1878 laptops. It is a bus system similar to PCI or ISA. See 1908 laptops. It is a bus system similar to PCI or ISA. See
1879 <file:Documentation/mca.txt> (and especially the web page given 1909 <file:Documentation/mca.txt> (and especially the web page given
@@ -1883,8 +1913,7 @@ source "drivers/mca/Kconfig"
1883 1913
1884config SCx200 1914config SCx200
1885 tristate "NatSemi SCx200 support" 1915 tristate "NatSemi SCx200 support"
1886 depends on !X86_VOYAGER 1916 ---help---
1887 help
1888 This provides basic support for National Semiconductor's 1917 This provides basic support for National Semiconductor's
1889 (now AMD's) Geode processors. The driver probes for the 1918 (now AMD's) Geode processors. The driver probes for the
1890 PCI-IDs of several on-chip devices, so its a good dependency 1919 PCI-IDs of several on-chip devices, so its a good dependency
@@ -1896,7 +1925,7 @@ config SCx200HR_TIMER
1896 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support" 1925 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
1897 depends on SCx200 && GENERIC_TIME 1926 depends on SCx200 && GENERIC_TIME
1898 default y 1927 default y
1899 help 1928 ---help---
1900 This driver provides a clocksource built upon the on-chip 1929 This driver provides a clocksource built upon the on-chip
1901 27MHz high-resolution timer. Its also a workaround for 1930 27MHz high-resolution timer. Its also a workaround for
1902 NSC Geode SC-1100's buggy TSC, which loses time when the 1931 NSC Geode SC-1100's buggy TSC, which loses time when the
@@ -1907,7 +1936,7 @@ config GEODE_MFGPT_TIMER
1907 def_bool y 1936 def_bool y
1908 prompt "Geode Multi-Function General Purpose Timer (MFGPT) events" 1937 prompt "Geode Multi-Function General Purpose Timer (MFGPT) events"
1909 depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS 1938 depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS
1910 help 1939 ---help---
1911 This driver provides a clock event source based on the MFGPT 1940 This driver provides a clock event source based on the MFGPT
1912 timer(s) in the CS5535 and CS5536 companion chip for the geode. 1941 timer(s) in the CS5535 and CS5536 companion chip for the geode.
1913 MFGPTs have a better resolution and max interval than the 1942 MFGPTs have a better resolution and max interval than the
@@ -1916,7 +1945,7 @@ config GEODE_MFGPT_TIMER
1916config OLPC 1945config OLPC
1917 bool "One Laptop Per Child support" 1946 bool "One Laptop Per Child support"
1918 default n 1947 default n
1919 help 1948 ---help---
1920 Add support for detecting the unique features of the OLPC 1949 Add support for detecting the unique features of the OLPC
1921 XO hardware. 1950 XO hardware.
1922 1951
@@ -1941,16 +1970,16 @@ config IA32_EMULATION
1941 bool "IA32 Emulation" 1970 bool "IA32 Emulation"
1942 depends on X86_64 1971 depends on X86_64
1943 select COMPAT_BINFMT_ELF 1972 select COMPAT_BINFMT_ELF
1944 help 1973 ---help---
1945 Include code to run 32-bit programs under a 64-bit kernel. You should 1974 Include code to run 32-bit programs under a 64-bit kernel. You should
1946 likely turn this on, unless you're 100% sure that you don't have any 1975 likely turn this on, unless you're 100% sure that you don't have any
1947 32-bit programs left. 1976 32-bit programs left.
1948 1977
1949config IA32_AOUT 1978config IA32_AOUT
1950 tristate "IA32 a.out support" 1979 tristate "IA32 a.out support"
1951 depends on IA32_EMULATION 1980 depends on IA32_EMULATION
1952 help 1981 ---help---
1953 Support old a.out binaries in the 32bit emulation. 1982 Support old a.out binaries in the 32bit emulation.
1954 1983
1955config COMPAT 1984config COMPAT
1956 def_bool y 1985 def_bool y
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 8078955845ae..a95eaf0e582a 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -50,7 +50,7 @@ config M386
50config M486 50config M486
51 bool "486" 51 bool "486"
52 depends on X86_32 52 depends on X86_32
53 help 53 ---help---
54 Select this for a 486 series processor, either Intel or one of the 54 Select this for a 486 series processor, either Intel or one of the
55 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX, 55 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX,
56 DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or 56 DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
@@ -59,7 +59,7 @@ config M486
59config M586 59config M586
60 bool "586/K5/5x86/6x86/6x86MX" 60 bool "586/K5/5x86/6x86/6x86MX"
61 depends on X86_32 61 depends on X86_32
62 help 62 ---help---
63 Select this for an 586 or 686 series processor such as the AMD K5, 63 Select this for an 586 or 686 series processor such as the AMD K5,
64 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not 64 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not
65 assume the RDTSC (Read Time Stamp Counter) instruction. 65 assume the RDTSC (Read Time Stamp Counter) instruction.
@@ -67,21 +67,21 @@ config M586
67config M586TSC 67config M586TSC
68 bool "Pentium-Classic" 68 bool "Pentium-Classic"
69 depends on X86_32 69 depends on X86_32
70 help 70 ---help---
71 Select this for a Pentium Classic processor with the RDTSC (Read 71 Select this for a Pentium Classic processor with the RDTSC (Read
72 Time Stamp Counter) instruction for benchmarking. 72 Time Stamp Counter) instruction for benchmarking.
73 73
74config M586MMX 74config M586MMX
75 bool "Pentium-MMX" 75 bool "Pentium-MMX"
76 depends on X86_32 76 depends on X86_32
77 help 77 ---help---
78 Select this for a Pentium with the MMX graphics/multimedia 78 Select this for a Pentium with the MMX graphics/multimedia
79 extended instructions. 79 extended instructions.
80 80
81config M686 81config M686
82 bool "Pentium-Pro" 82 bool "Pentium-Pro"
83 depends on X86_32 83 depends on X86_32
84 help 84 ---help---
85 Select this for Intel Pentium Pro chips. This enables the use of 85 Select this for Intel Pentium Pro chips. This enables the use of
86 Pentium Pro extended instructions, and disables the init-time guard 86 Pentium Pro extended instructions, and disables the init-time guard
87 against the f00f bug found in earlier Pentiums. 87 against the f00f bug found in earlier Pentiums.
@@ -89,7 +89,7 @@ config M686
89config MPENTIUMII 89config MPENTIUMII
90 bool "Pentium-II/Celeron(pre-Coppermine)" 90 bool "Pentium-II/Celeron(pre-Coppermine)"
91 depends on X86_32 91 depends on X86_32
92 help 92 ---help---
93 Select this for Intel chips based on the Pentium-II and 93 Select this for Intel chips based on the Pentium-II and
94 pre-Coppermine Celeron core. This option enables an unaligned 94 pre-Coppermine Celeron core. This option enables an unaligned
95 copy optimization, compiles the kernel with optimization flags 95 copy optimization, compiles the kernel with optimization flags
@@ -99,7 +99,7 @@ config MPENTIUMII
99config MPENTIUMIII 99config MPENTIUMIII
100 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon" 100 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
101 depends on X86_32 101 depends on X86_32
102 help 102 ---help---
103 Select this for Intel chips based on the Pentium-III and 103 Select this for Intel chips based on the Pentium-III and
104 Celeron-Coppermine core. This option enables use of some 104 Celeron-Coppermine core. This option enables use of some
105 extended prefetch instructions in addition to the Pentium II 105 extended prefetch instructions in addition to the Pentium II
@@ -108,14 +108,14 @@ config MPENTIUMIII
108config MPENTIUMM 108config MPENTIUMM
109 bool "Pentium M" 109 bool "Pentium M"
110 depends on X86_32 110 depends on X86_32
111 help 111 ---help---
112 Select this for Intel Pentium M (not Pentium-4 M) 112 Select this for Intel Pentium M (not Pentium-4 M)
113 notebook chips. 113 notebook chips.
114 114
115config MPENTIUM4 115config MPENTIUM4
116 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon" 116 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon"
117 depends on X86_32 117 depends on X86_32
118 help 118 ---help---
119 Select this for Intel Pentium 4 chips. This includes the 119 Select this for Intel Pentium 4 chips. This includes the
120 Pentium 4, Pentium D, P4-based Celeron and Xeon, and 120 Pentium 4, Pentium D, P4-based Celeron and Xeon, and
121 Pentium-4 M (not Pentium M) chips. This option enables compile 121 Pentium-4 M (not Pentium M) chips. This option enables compile
@@ -151,7 +151,7 @@ config MPENTIUM4
151config MK6 151config MK6
152 bool "K6/K6-II/K6-III" 152 bool "K6/K6-II/K6-III"
153 depends on X86_32 153 depends on X86_32
154 help 154 ---help---
155 Select this for an AMD K6-family processor. Enables use of 155 Select this for an AMD K6-family processor. Enables use of
156 some extended instructions, and passes appropriate optimization 156 some extended instructions, and passes appropriate optimization
157 flags to GCC. 157 flags to GCC.
@@ -159,22 +159,22 @@ config MK6
159config MK7 159config MK7
160 bool "Athlon/Duron/K7" 160 bool "Athlon/Duron/K7"
161 depends on X86_32 161 depends on X86_32
162 help 162 ---help---
163 Select this for an AMD Athlon K7-family processor. Enables use of 163 Select this for an AMD Athlon K7-family processor. Enables use of
164 some extended instructions, and passes appropriate optimization 164 some extended instructions, and passes appropriate optimization
165 flags to GCC. 165 flags to GCC.
166 166
167config MK8 167config MK8
168 bool "Opteron/Athlon64/Hammer/K8" 168 bool "Opteron/Athlon64/Hammer/K8"
169 help 169 ---help---
170 Select this for an AMD Opteron or Athlon64 Hammer-family processor. Enables 170 Select this for an AMD Opteron or Athlon64 Hammer-family processor.
171 use of some extended instructions, and passes appropriate optimization 171 Enables use of some extended instructions, and passes appropriate
172 flags to GCC. 172 optimization flags to GCC.
173 173
174config MCRUSOE 174config MCRUSOE
175 bool "Crusoe" 175 bool "Crusoe"
176 depends on X86_32 176 depends on X86_32
177 help 177 ---help---
178 Select this for a Transmeta Crusoe processor. Treats the processor 178 Select this for a Transmeta Crusoe processor. Treats the processor
179 like a 586 with TSC, and sets some GCC optimization flags (like a 179 like a 586 with TSC, and sets some GCC optimization flags (like a
180 Pentium Pro with no alignment requirements). 180 Pentium Pro with no alignment requirements).
@@ -182,13 +182,13 @@ config MCRUSOE
182config MEFFICEON 182config MEFFICEON
183 bool "Efficeon" 183 bool "Efficeon"
184 depends on X86_32 184 depends on X86_32
185 help 185 ---help---
186 Select this for a Transmeta Efficeon processor. 186 Select this for a Transmeta Efficeon processor.
187 187
188config MWINCHIPC6 188config MWINCHIPC6
189 bool "Winchip-C6" 189 bool "Winchip-C6"
190 depends on X86_32 190 depends on X86_32
191 help 191 ---help---
192 Select this for an IDT Winchip C6 chip. Linux and GCC 192 Select this for an IDT Winchip C6 chip. Linux and GCC
193 treat this chip as a 586TSC with some extended instructions 193 treat this chip as a 586TSC with some extended instructions
194 and alignment requirements. 194 and alignment requirements.
@@ -196,7 +196,7 @@ config MWINCHIPC6
196config MWINCHIP3D 196config MWINCHIP3D
197 bool "Winchip-2/Winchip-2A/Winchip-3" 197 bool "Winchip-2/Winchip-2A/Winchip-3"
198 depends on X86_32 198 depends on X86_32
199 help 199 ---help---
200 Select this for an IDT Winchip-2, 2A or 3. Linux and GCC 200 Select this for an IDT Winchip-2, 2A or 3. Linux and GCC
201 treat this chip as a 586TSC with some extended instructions 201 treat this chip as a 586TSC with some extended instructions
202 and alignment requirements. Also enable out of order memory 202 and alignment requirements. Also enable out of order memory
@@ -206,19 +206,19 @@ config MWINCHIP3D
206config MGEODEGX1 206config MGEODEGX1
207 bool "GeodeGX1" 207 bool "GeodeGX1"
208 depends on X86_32 208 depends on X86_32
209 help 209 ---help---
210 Select this for a Geode GX1 (Cyrix MediaGX) chip. 210 Select this for a Geode GX1 (Cyrix MediaGX) chip.
211 211
212config MGEODE_LX 212config MGEODE_LX
213 bool "Geode GX/LX" 213 bool "Geode GX/LX"
214 depends on X86_32 214 depends on X86_32
215 help 215 ---help---
216 Select this for AMD Geode GX and LX processors. 216 Select this for AMD Geode GX and LX processors.
217 217
218config MCYRIXIII 218config MCYRIXIII
219 bool "CyrixIII/VIA-C3" 219 bool "CyrixIII/VIA-C3"
220 depends on X86_32 220 depends on X86_32
221 help 221 ---help---
222 Select this for a Cyrix III or C3 chip. Presently Linux and GCC 222 Select this for a Cyrix III or C3 chip. Presently Linux and GCC
223 treat this chip as a generic 586. Whilst the CPU is 686 class, 223 treat this chip as a generic 586. Whilst the CPU is 686 class,
224 it lacks the cmov extension which gcc assumes is present when 224 it lacks the cmov extension which gcc assumes is present when
@@ -230,7 +230,7 @@ config MCYRIXIII
230config MVIAC3_2 230config MVIAC3_2
231 bool "VIA C3-2 (Nehemiah)" 231 bool "VIA C3-2 (Nehemiah)"
232 depends on X86_32 232 depends on X86_32
233 help 233 ---help---
234 Select this for a VIA C3 "Nehemiah". Selecting this enables usage 234 Select this for a VIA C3 "Nehemiah". Selecting this enables usage
235 of SSE and tells gcc to treat the CPU as a 686. 235 of SSE and tells gcc to treat the CPU as a 686.
236 Note, this kernel will not boot on older (pre model 9) C3s. 236 Note, this kernel will not boot on older (pre model 9) C3s.
@@ -238,14 +238,14 @@ config MVIAC3_2
238config MVIAC7 238config MVIAC7
239 bool "VIA C7" 239 bool "VIA C7"
240 depends on X86_32 240 depends on X86_32
241 help 241 ---help---
242 Select this for a VIA C7. Selecting this uses the correct cache 242 Select this for a VIA C7. Selecting this uses the correct cache
243 shift and tells gcc to treat the CPU as a 686. 243 shift and tells gcc to treat the CPU as a 686.
244 244
245config MPSC 245config MPSC
246 bool "Intel P4 / older Netburst based Xeon" 246 bool "Intel P4 / older Netburst based Xeon"
247 depends on X86_64 247 depends on X86_64
248 help 248 ---help---
249 Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey 249 Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey
250 Xeon CPUs with Intel 64bit which is compatible with x86-64. 250 Xeon CPUs with Intel 64bit which is compatible with x86-64.
251 Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the 251 Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the
@@ -255,15 +255,17 @@ config MPSC
255 255
256config MCORE2 256config MCORE2
257 bool "Core 2/newer Xeon" 257 bool "Core 2/newer Xeon"
258 help 258 ---help---
259 Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx) 259
260 CPUs. You can distinguish newer from older Xeons by the CPU family 260 Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
261 in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo) 261 53xx) CPUs. You can distinguish newer from older Xeons by the CPU
262 family in /proc/cpuinfo. Newer ones have 6 and older ones 15
263 (not a typo)
262 264
263config GENERIC_CPU 265config GENERIC_CPU
264 bool "Generic-x86-64" 266 bool "Generic-x86-64"
265 depends on X86_64 267 depends on X86_64
266 help 268 ---help---
267 Generic x86-64 CPU. 269 Generic x86-64 CPU.
268 Run equally well on all x86-64 CPUs. 270 Run equally well on all x86-64 CPUs.
269 271
@@ -272,7 +274,7 @@ endchoice
272config X86_GENERIC 274config X86_GENERIC
273 bool "Generic x86 support" 275 bool "Generic x86 support"
274 depends on X86_32 276 depends on X86_32
275 help 277 ---help---
276 Instead of just including optimizations for the selected 278 Instead of just including optimizations for the selected
277 x86 variant (e.g. PII, Crusoe or Athlon), include some more 279 x86 variant (e.g. PII, Crusoe or Athlon), include some more
278 generic optimizations as well. This will make the kernel 280 generic optimizations as well. This will make the kernel
@@ -292,25 +294,23 @@ config X86_CPU
292# Define implied options from the CPU selection here 294# Define implied options from the CPU selection here
293config X86_L1_CACHE_BYTES 295config X86_L1_CACHE_BYTES
294 int 296 int
295 default "128" if GENERIC_CPU || MPSC 297 default "128" if MPSC
296 default "64" if MK8 || MCORE2 298 default "64" if GENERIC_CPU || MK8 || MCORE2 || X86_32
297 depends on X86_64
298 299
299config X86_INTERNODE_CACHE_BYTES 300config X86_INTERNODE_CACHE_BYTES
300 int 301 int
301 default "4096" if X86_VSMP 302 default "4096" if X86_VSMP
302 default X86_L1_CACHE_BYTES if !X86_VSMP 303 default X86_L1_CACHE_BYTES if !X86_VSMP
303 depends on X86_64
304 304
305config X86_CMPXCHG 305config X86_CMPXCHG
306 def_bool X86_64 || (X86_32 && !M386) 306 def_bool X86_64 || (X86_32 && !M386)
307 307
308config X86_L1_CACHE_SHIFT 308config X86_L1_CACHE_SHIFT
309 int 309 int
310 default "7" if MPENTIUM4 || X86_GENERIC || GENERIC_CPU || MPSC 310 default "7" if MPENTIUM4 || MPSC
311 default "4" if X86_ELAN || M486 || M386 || MGEODEGX1 311 default "4" if X86_ELAN || M486 || M386 || MGEODEGX1
312 default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX 312 default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
313 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MVIAC7 313 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MVIAC7 || X86_GENERIC || GENERIC_CPU
314 314
315config X86_XADD 315config X86_XADD
316 def_bool y 316 def_bool y
@@ -319,15 +319,15 @@ config X86_XADD
319config X86_PPRO_FENCE 319config X86_PPRO_FENCE
320 bool "PentiumPro memory ordering errata workaround" 320 bool "PentiumPro memory ordering errata workaround"
321 depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODEGX1 321 depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODEGX1
322 help 322 ---help---
323 Old PentiumPro multiprocessor systems had errata that could cause memory 323 Old PentiumPro multiprocessor systems had errata that could cause
324 operations to violate the x86 ordering standard in rare cases. Enabling this 324 memory operations to violate the x86 ordering standard in rare cases.
325 option will attempt to work around some (but not all) occurances of 325 Enabling this option will attempt to work around some (but not all)
326 this problem, at the cost of much heavier spinlock and memory barrier 326 occurances of this problem, at the cost of much heavier spinlock and
327 operations. 327 memory barrier operations.
328 328
329 If unsure, say n here. Even distro kernels should think twice before enabling 329 If unsure, say n here. Even distro kernels should think twice before
330 this: there are few systems, and an unlikely bug. 330 enabling this: there are few systems, and an unlikely bug.
331 331
332config X86_F00F_BUG 332config X86_F00F_BUG
333 def_bool y 333 def_bool y
@@ -412,14 +412,14 @@ config X86_DEBUGCTLMSR
412 412
413menuconfig PROCESSOR_SELECT 413menuconfig PROCESSOR_SELECT
414 bool "Supported processor vendors" if EMBEDDED 414 bool "Supported processor vendors" if EMBEDDED
415 help 415 ---help---
416 This lets you choose what x86 vendor support code your kernel 416 This lets you choose what x86 vendor support code your kernel
417 will include. 417 will include.
418 418
419config CPU_SUP_INTEL 419config CPU_SUP_INTEL
420 default y 420 default y
421 bool "Support Intel processors" if PROCESSOR_SELECT 421 bool "Support Intel processors" if PROCESSOR_SELECT
422 help 422 ---help---
423 This enables detection, tunings and quirks for Intel processors 423 This enables detection, tunings and quirks for Intel processors
424 424
425 You need this enabled if you want your kernel to run on an 425 You need this enabled if you want your kernel to run on an
@@ -433,7 +433,7 @@ config CPU_SUP_CYRIX_32
433 default y 433 default y
434 bool "Support Cyrix processors" if PROCESSOR_SELECT 434 bool "Support Cyrix processors" if PROCESSOR_SELECT
435 depends on !64BIT 435 depends on !64BIT
436 help 436 ---help---
437 This enables detection, tunings and quirks for Cyrix processors 437 This enables detection, tunings and quirks for Cyrix processors
438 438
439 You need this enabled if you want your kernel to run on a 439 You need this enabled if you want your kernel to run on a
@@ -446,7 +446,7 @@ config CPU_SUP_CYRIX_32
446config CPU_SUP_AMD 446config CPU_SUP_AMD
447 default y 447 default y
448 bool "Support AMD processors" if PROCESSOR_SELECT 448 bool "Support AMD processors" if PROCESSOR_SELECT
449 help 449 ---help---
450 This enables detection, tunings and quirks for AMD processors 450 This enables detection, tunings and quirks for AMD processors
451 451
452 You need this enabled if you want your kernel to run on an 452 You need this enabled if you want your kernel to run on an
@@ -460,7 +460,7 @@ config CPU_SUP_CENTAUR_32
460 default y 460 default y
461 bool "Support Centaur processors" if PROCESSOR_SELECT 461 bool "Support Centaur processors" if PROCESSOR_SELECT
462 depends on !64BIT 462 depends on !64BIT
463 help 463 ---help---
464 This enables detection, tunings and quirks for Centaur processors 464 This enables detection, tunings and quirks for Centaur processors
465 465
466 You need this enabled if you want your kernel to run on a 466 You need this enabled if you want your kernel to run on a
@@ -474,7 +474,7 @@ config CPU_SUP_CENTAUR_64
474 default y 474 default y
475 bool "Support Centaur processors" if PROCESSOR_SELECT 475 bool "Support Centaur processors" if PROCESSOR_SELECT
476 depends on 64BIT 476 depends on 64BIT
477 help 477 ---help---
478 This enables detection, tunings and quirks for Centaur processors 478 This enables detection, tunings and quirks for Centaur processors
479 479
480 You need this enabled if you want your kernel to run on a 480 You need this enabled if you want your kernel to run on a
@@ -488,7 +488,7 @@ config CPU_SUP_TRANSMETA_32
488 default y 488 default y
489 bool "Support Transmeta processors" if PROCESSOR_SELECT 489 bool "Support Transmeta processors" if PROCESSOR_SELECT
490 depends on !64BIT 490 depends on !64BIT
491 help 491 ---help---
492 This enables detection, tunings and quirks for Transmeta processors 492 This enables detection, tunings and quirks for Transmeta processors
493 493
494 You need this enabled if you want your kernel to run on a 494 You need this enabled if you want your kernel to run on a
@@ -502,7 +502,7 @@ config CPU_SUP_UMC_32
502 default y 502 default y
503 bool "Support UMC processors" if PROCESSOR_SELECT 503 bool "Support UMC processors" if PROCESSOR_SELECT
504 depends on !64BIT 504 depends on !64BIT
505 help 505 ---help---
506 This enables detection, tunings and quirks for UMC processors 506 This enables detection, tunings and quirks for UMC processors
507 507
508 You need this enabled if you want your kernel to run on a 508 You need this enabled if you want your kernel to run on a
@@ -521,7 +521,7 @@ config X86_PTRACE_BTS
521 bool "Branch Trace Store" 521 bool "Branch Trace Store"
522 default y 522 default y
523 depends on X86_DEBUGCTLMSR 523 depends on X86_DEBUGCTLMSR
524 help 524 ---help---
525 This adds a ptrace interface to the hardware's branch trace store. 525 This adds a ptrace interface to the hardware's branch trace store.
526 526
527 Debuggers may use it to collect an execution trace of the debugged 527 Debuggers may use it to collect an execution trace of the debugged
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
index 10d6cc3fd052..fdb45df608b6 100644
--- a/arch/x86/Kconfig.debug
+++ b/arch/x86/Kconfig.debug
@@ -7,7 +7,7 @@ source "lib/Kconfig.debug"
7 7
8config STRICT_DEVMEM 8config STRICT_DEVMEM
9 bool "Filter access to /dev/mem" 9 bool "Filter access to /dev/mem"
10 help 10 ---help---
11 If this option is disabled, you allow userspace (root) access to all 11 If this option is disabled, you allow userspace (root) access to all
12 of memory, including kernel and userspace memory. Accidental 12 of memory, including kernel and userspace memory. Accidental
13 access to this is obviously disastrous, but specific access can 13 access to this is obviously disastrous, but specific access can
@@ -25,7 +25,7 @@ config STRICT_DEVMEM
25config X86_VERBOSE_BOOTUP 25config X86_VERBOSE_BOOTUP
26 bool "Enable verbose x86 bootup info messages" 26 bool "Enable verbose x86 bootup info messages"
27 default y 27 default y
28 help 28 ---help---
29 Enables the informational output from the decompression stage 29 Enables the informational output from the decompression stage
30 (e.g. bzImage) of the boot. If you disable this you will still 30 (e.g. bzImage) of the boot. If you disable this you will still
31 see errors. Disable this if you want silent bootup. 31 see errors. Disable this if you want silent bootup.
@@ -33,7 +33,7 @@ config X86_VERBOSE_BOOTUP
33config EARLY_PRINTK 33config EARLY_PRINTK
34 bool "Early printk" if EMBEDDED 34 bool "Early printk" if EMBEDDED
35 default y 35 default y
36 help 36 ---help---
37 Write kernel log output directly into the VGA buffer or to a serial 37 Write kernel log output directly into the VGA buffer or to a serial
38 port. 38 port.
39 39
@@ -47,7 +47,7 @@ config EARLY_PRINTK_DBGP
47 bool "Early printk via EHCI debug port" 47 bool "Early printk via EHCI debug port"
48 default n 48 default n
49 depends on EARLY_PRINTK && PCI 49 depends on EARLY_PRINTK && PCI
50 help 50 ---help---
51 Write kernel log output directly into the EHCI debug port. 51 Write kernel log output directly into the EHCI debug port.
52 52
53 This is useful for kernel debugging when your machine crashes very 53 This is useful for kernel debugging when your machine crashes very
@@ -59,14 +59,14 @@ config EARLY_PRINTK_DBGP
59config DEBUG_STACKOVERFLOW 59config DEBUG_STACKOVERFLOW
60 bool "Check for stack overflows" 60 bool "Check for stack overflows"
61 depends on DEBUG_KERNEL 61 depends on DEBUG_KERNEL
62 help 62 ---help---
63 This option will cause messages to be printed if free stack space 63 This option will cause messages to be printed if free stack space
64 drops below a certain limit. 64 drops below a certain limit.
65 65
66config DEBUG_STACK_USAGE 66config DEBUG_STACK_USAGE
67 bool "Stack utilization instrumentation" 67 bool "Stack utilization instrumentation"
68 depends on DEBUG_KERNEL 68 depends on DEBUG_KERNEL
69 help 69 ---help---
70 Enables the display of the minimum amount of free stack which each 70 Enables the display of the minimum amount of free stack which each
71 task has ever had available in the sysrq-T and sysrq-P debug output. 71 task has ever had available in the sysrq-T and sysrq-P debug output.
72 72
@@ -75,7 +75,7 @@ config DEBUG_STACK_USAGE
75config DEBUG_PAGEALLOC 75config DEBUG_PAGEALLOC
76 bool "Debug page memory allocations" 76 bool "Debug page memory allocations"
77 depends on DEBUG_KERNEL 77 depends on DEBUG_KERNEL
78 help 78 ---help---
79 Unmap pages from the kernel linear mapping after free_pages(). 79 Unmap pages from the kernel linear mapping after free_pages().
80 This results in a large slowdown, but helps to find certain types 80 This results in a large slowdown, but helps to find certain types
81 of memory corruptions. 81 of memory corruptions.
@@ -83,9 +83,9 @@ config DEBUG_PAGEALLOC
83config DEBUG_PER_CPU_MAPS 83config DEBUG_PER_CPU_MAPS
84 bool "Debug access to per_cpu maps" 84 bool "Debug access to per_cpu maps"
85 depends on DEBUG_KERNEL 85 depends on DEBUG_KERNEL
86 depends on X86_SMP 86 depends on SMP
87 default n 87 default n
88 help 88 ---help---
89 Say Y to verify that the per_cpu map being accessed has 89 Say Y to verify that the per_cpu map being accessed has
90 been setup. Adds a fair amount of code to kernel memory 90 been setup. Adds a fair amount of code to kernel memory
91 and decreases performance. 91 and decreases performance.
@@ -96,7 +96,7 @@ config X86_PTDUMP
96 bool "Export kernel pagetable layout to userspace via debugfs" 96 bool "Export kernel pagetable layout to userspace via debugfs"
97 depends on DEBUG_KERNEL 97 depends on DEBUG_KERNEL
98 select DEBUG_FS 98 select DEBUG_FS
99 help 99 ---help---
100 Say Y here if you want to show the kernel pagetable layout in a 100 Say Y here if you want to show the kernel pagetable layout in a
101 debugfs file. This information is only useful for kernel developers 101 debugfs file. This information is only useful for kernel developers
102 who are working in architecture specific areas of the kernel. 102 who are working in architecture specific areas of the kernel.
@@ -108,7 +108,7 @@ config DEBUG_RODATA
108 bool "Write protect kernel read-only data structures" 108 bool "Write protect kernel read-only data structures"
109 default y 109 default y
110 depends on DEBUG_KERNEL 110 depends on DEBUG_KERNEL
111 help 111 ---help---
112 Mark the kernel read-only data as write-protected in the pagetables, 112 Mark the kernel read-only data as write-protected in the pagetables,
113 in order to catch accidental (and incorrect) writes to such const 113 in order to catch accidental (and incorrect) writes to such const
114 data. This is recommended so that we can catch kernel bugs sooner. 114 data. This is recommended so that we can catch kernel bugs sooner.
@@ -117,7 +117,8 @@ config DEBUG_RODATA
117config DEBUG_RODATA_TEST 117config DEBUG_RODATA_TEST
118 bool "Testcase for the DEBUG_RODATA feature" 118 bool "Testcase for the DEBUG_RODATA feature"
119 depends on DEBUG_RODATA 119 depends on DEBUG_RODATA
120 help 120 default y
121 ---help---
121 This option enables a testcase for the DEBUG_RODATA 122 This option enables a testcase for the DEBUG_RODATA
122 feature as well as for the change_page_attr() infrastructure. 123 feature as well as for the change_page_attr() infrastructure.
123 If in doubt, say "N" 124 If in doubt, say "N"
@@ -125,7 +126,7 @@ config DEBUG_RODATA_TEST
125config DEBUG_NX_TEST 126config DEBUG_NX_TEST
126 tristate "Testcase for the NX non-executable stack feature" 127 tristate "Testcase for the NX non-executable stack feature"
127 depends on DEBUG_KERNEL && m 128 depends on DEBUG_KERNEL && m
128 help 129 ---help---
129 This option enables a testcase for the CPU NX capability 130 This option enables a testcase for the CPU NX capability
130 and the software setup of this feature. 131 and the software setup of this feature.
131 If in doubt, say "N" 132 If in doubt, say "N"
@@ -133,7 +134,7 @@ config DEBUG_NX_TEST
133config 4KSTACKS 134config 4KSTACKS
134 bool "Use 4Kb for kernel stacks instead of 8Kb" 135 bool "Use 4Kb for kernel stacks instead of 8Kb"
135 depends on X86_32 136 depends on X86_32
136 help 137 ---help---
137 If you say Y here the kernel will use a 4Kb stacksize for the 138 If you say Y here the kernel will use a 4Kb stacksize for the
138 kernel stack attached to each process/thread. This facilitates 139 kernel stack attached to each process/thread. This facilitates
139 running more threads on a system and also reduces the pressure 140 running more threads on a system and also reduces the pressure
@@ -144,7 +145,7 @@ config DOUBLEFAULT
144 default y 145 default y
145 bool "Enable doublefault exception handler" if EMBEDDED 146 bool "Enable doublefault exception handler" if EMBEDDED
146 depends on X86_32 147 depends on X86_32
147 help 148 ---help---
148 This option allows trapping of rare doublefault exceptions that 149 This option allows trapping of rare doublefault exceptions that
149 would otherwise cause a system to silently reboot. Disabling this 150 would otherwise cause a system to silently reboot. Disabling this
150 option saves about 4k and might cause you much additional grey 151 option saves about 4k and might cause you much additional grey
@@ -154,7 +155,7 @@ config IOMMU_DEBUG
154 bool "Enable IOMMU debugging" 155 bool "Enable IOMMU debugging"
155 depends on GART_IOMMU && DEBUG_KERNEL 156 depends on GART_IOMMU && DEBUG_KERNEL
156 depends on X86_64 157 depends on X86_64
157 help 158 ---help---
158 Force the IOMMU to on even when you have less than 4GB of 159 Force the IOMMU to on even when you have less than 4GB of
159 memory and add debugging code. On overflow always panic. And 160 memory and add debugging code. On overflow always panic. And
160 allow to enable IOMMU leak tracing. Can be disabled at boot 161 allow to enable IOMMU leak tracing. Can be disabled at boot
@@ -170,32 +171,12 @@ config IOMMU_LEAK
170 bool "IOMMU leak tracing" 171 bool "IOMMU leak tracing"
171 depends on DEBUG_KERNEL 172 depends on DEBUG_KERNEL
172 depends on IOMMU_DEBUG 173 depends on IOMMU_DEBUG
173 help 174 ---help---
174 Add a simple leak tracer to the IOMMU code. This is useful when you 175 Add a simple leak tracer to the IOMMU code. This is useful when you
175 are debugging a buggy device driver that leaks IOMMU mappings. 176 are debugging a buggy device driver that leaks IOMMU mappings.
176 177
177config MMIOTRACE 178config HAVE_MMIOTRACE_SUPPORT
178 bool "Memory mapped IO tracing" 179 def_bool y
179 depends on DEBUG_KERNEL && PCI
180 select TRACING
181 help
182 Mmiotrace traces Memory Mapped I/O access and is meant for
183 debugging and reverse engineering. It is called from the ioremap
184 implementation and works via page faults. Tracing is disabled by
185 default and can be enabled at run-time.
186
187 See Documentation/tracers/mmiotrace.txt.
188 If you are not helping to develop drivers, say N.
189
190config MMIOTRACE_TEST
191 tristate "Test module for mmiotrace"
192 depends on MMIOTRACE && m
193 help
194 This is a dumb module for testing mmiotrace. It is very dangerous
195 as it will write garbage to IO memory starting at a given address.
196 However, it should be safe to use on e.g. unused portion of VRAM.
197
198 Say N, unless you absolutely know what you are doing.
199 180
200# 181#
201# IO delay types: 182# IO delay types:
@@ -223,25 +204,25 @@ choice
223 204
224config IO_DELAY_0X80 205config IO_DELAY_0X80
225 bool "port 0x80 based port-IO delay [recommended]" 206 bool "port 0x80 based port-IO delay [recommended]"
226 help 207 ---help---
227 This is the traditional Linux IO delay used for in/out_p. 208 This is the traditional Linux IO delay used for in/out_p.
228 It is the most tested hence safest selection here. 209 It is the most tested hence safest selection here.
229 210
230config IO_DELAY_0XED 211config IO_DELAY_0XED
231 bool "port 0xed based port-IO delay" 212 bool "port 0xed based port-IO delay"
232 help 213 ---help---
233 Use port 0xed as the IO delay. This frees up port 0x80 which is 214 Use port 0xed as the IO delay. This frees up port 0x80 which is
234 often used as a hardware-debug port. 215 often used as a hardware-debug port.
235 216
236config IO_DELAY_UDELAY 217config IO_DELAY_UDELAY
237 bool "udelay based port-IO delay" 218 bool "udelay based port-IO delay"
238 help 219 ---help---
239 Use udelay(2) as the IO delay method. This provides the delay 220 Use udelay(2) as the IO delay method. This provides the delay
240 while not having any side-effect on the IO port space. 221 while not having any side-effect on the IO port space.
241 222
242config IO_DELAY_NONE 223config IO_DELAY_NONE
243 bool "no port-IO delay" 224 bool "no port-IO delay"
244 help 225 ---help---
245 No port-IO delay. Will break on old boxes that require port-IO 226 No port-IO delay. Will break on old boxes that require port-IO
246 delay for certain operations. Should work on most new machines. 227 delay for certain operations. Should work on most new machines.
247 228
@@ -275,18 +256,18 @@ config DEBUG_BOOT_PARAMS
275 bool "Debug boot parameters" 256 bool "Debug boot parameters"
276 depends on DEBUG_KERNEL 257 depends on DEBUG_KERNEL
277 depends on DEBUG_FS 258 depends on DEBUG_FS
278 help 259 ---help---
279 This option will cause struct boot_params to be exported via debugfs. 260 This option will cause struct boot_params to be exported via debugfs.
280 261
281config CPA_DEBUG 262config CPA_DEBUG
282 bool "CPA self-test code" 263 bool "CPA self-test code"
283 depends on DEBUG_KERNEL 264 depends on DEBUG_KERNEL
284 help 265 ---help---
285 Do change_page_attr() self-tests every 30 seconds. 266 Do change_page_attr() self-tests every 30 seconds.
286 267
287config OPTIMIZE_INLINING 268config OPTIMIZE_INLINING
288 bool "Allow gcc to uninline functions marked 'inline'" 269 bool "Allow gcc to uninline functions marked 'inline'"
289 help 270 ---help---
290 This option determines if the kernel forces gcc to inline the functions 271 This option determines if the kernel forces gcc to inline the functions
291 developers have marked 'inline'. Doing so takes away freedom from gcc to 272 developers have marked 'inline'. Doing so takes away freedom from gcc to
292 do what it thinks is best, which is desirable for the gcc 3.x series of 273 do what it thinks is best, which is desirable for the gcc 3.x series of
@@ -299,4 +280,3 @@ config OPTIMIZE_INLINING
299 If unsure, say N. 280 If unsure, say N.
300 281
301endmenu 282endmenu
302
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index d1a47adb5aec..1836191839ee 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -70,14 +70,17 @@ else
70 # this works around some issues with generating unwind tables in older gccs 70 # this works around some issues with generating unwind tables in older gccs
71 # newer gccs do it by default 71 # newer gccs do it by default
72 KBUILD_CFLAGS += -maccumulate-outgoing-args 72 KBUILD_CFLAGS += -maccumulate-outgoing-args
73endif
73 74
74 stackp := $(CONFIG_SHELL) $(srctree)/scripts/gcc-x86_64-has-stack-protector.sh 75ifdef CONFIG_CC_STACKPROTECTOR
75 stackp-$(CONFIG_CC_STACKPROTECTOR) := $(shell $(stackp) \ 76 cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh
76 "$(CC)" -fstack-protector ) 77 ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC)),y)
77 stackp-$(CONFIG_CC_STACKPROTECTOR_ALL) += $(shell $(stackp) \ 78 stackp-y := -fstack-protector
78 "$(CC)" -fstack-protector-all ) 79 stackp-$(CONFIG_CC_STACKPROTECTOR_ALL) += -fstack-protector-all
79 80 KBUILD_CFLAGS += $(stackp-y)
80 KBUILD_CFLAGS += $(stackp-y) 81 else
82 $(warning stack protector enabled but no compiler support)
83 endif
81endif 84endif
82 85
83# Stackpointer is addressed different for 32 bit and 64 bit x86 86# Stackpointer is addressed different for 32 bit and 64 bit x86
@@ -102,29 +105,6 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
102# prevent gcc from generating any FP code by mistake 105# prevent gcc from generating any FP code by mistake
103KBUILD_CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,) 106KBUILD_CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,)
104 107
105###
106# Sub architecture support
107# fcore-y is linked before mcore-y files.
108
109# Default subarch .c files
110mcore-y := arch/x86/mach-default/
111
112# Voyager subarch support
113mflags-$(CONFIG_X86_VOYAGER) := -Iarch/x86/include/asm/mach-voyager
114mcore-$(CONFIG_X86_VOYAGER) := arch/x86/mach-voyager/
115
116# generic subarchitecture
117mflags-$(CONFIG_X86_GENERICARCH):= -Iarch/x86/include/asm/mach-generic
118fcore-$(CONFIG_X86_GENERICARCH) += arch/x86/mach-generic/
119mcore-$(CONFIG_X86_GENERICARCH) := arch/x86/mach-default/
120
121# default subarch .h files
122mflags-y += -Iarch/x86/include/asm/mach-default
123
124# 64 bit does not support subarch support - clear sub arch variables
125fcore-$(CONFIG_X86_64) :=
126mcore-$(CONFIG_X86_64) :=
127
128KBUILD_CFLAGS += $(mflags-y) 108KBUILD_CFLAGS += $(mflags-y)
129KBUILD_AFLAGS += $(mflags-y) 109KBUILD_AFLAGS += $(mflags-y)
130 110
@@ -150,9 +130,6 @@ core-$(CONFIG_LGUEST_GUEST) += arch/x86/lguest/
150core-y += arch/x86/kernel/ 130core-y += arch/x86/kernel/
151core-y += arch/x86/mm/ 131core-y += arch/x86/mm/
152 132
153# Remaining sub architecture files
154core-y += $(mcore-y)
155
156core-y += arch/x86/crypto/ 133core-y += arch/x86/crypto/
157core-y += arch/x86/vdso/ 134core-y += arch/x86/vdso/
158core-$(CONFIG_IA32_EMULATION) += arch/x86/ia32/ 135core-$(CONFIG_IA32_EMULATION) += arch/x86/ia32/
diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
index cd48c7210016..c70eff69a1fb 100644
--- a/arch/x86/boot/Makefile
+++ b/arch/x86/boot/Makefile
@@ -32,7 +32,6 @@ setup-y += a20.o cmdline.o copy.o cpu.o cpucheck.o edd.o
32setup-y += header.o main.o mca.o memory.o pm.o pmjump.o 32setup-y += header.o main.o mca.o memory.o pm.o pmjump.o
33setup-y += printf.o string.o tty.o video.o video-mode.o version.o 33setup-y += printf.o string.o tty.o video.o video-mode.o version.o
34setup-$(CONFIG_X86_APM_BOOT) += apm.o 34setup-$(CONFIG_X86_APM_BOOT) += apm.o
35setup-$(CONFIG_X86_VOYAGER) += voyager.o
36 35
37# The link order of the video-*.o modules can matter. In particular, 36# The link order of the video-*.o modules can matter. In particular,
38# video-vga.o *must* be listed first, followed by video-vesa.o. 37# video-vga.o *must* be listed first, followed by video-vesa.o.
diff --git a/arch/x86/boot/a20.c b/arch/x86/boot/a20.c
index 4063d630deff..7c19ce8c2442 100644
--- a/arch/x86/boot/a20.c
+++ b/arch/x86/boot/a20.c
@@ -2,6 +2,7 @@
2 * 2 *
3 * Copyright (C) 1991, 1992 Linus Torvalds 3 * Copyright (C) 1991, 1992 Linus Torvalds
4 * Copyright 2007-2008 rPath, Inc. - All Rights Reserved 4 * Copyright 2007-2008 rPath, Inc. - All Rights Reserved
5 * Copyright 2009 Intel Corporation
5 * 6 *
6 * This file is part of the Linux kernel, and is made available under 7 * This file is part of the Linux kernel, and is made available under
7 * the terms of the GNU General Public License version 2. 8 * the terms of the GNU General Public License version 2.
@@ -15,16 +16,23 @@
15#include "boot.h" 16#include "boot.h"
16 17
17#define MAX_8042_LOOPS 100000 18#define MAX_8042_LOOPS 100000
19#define MAX_8042_FF 32
18 20
19static int empty_8042(void) 21static int empty_8042(void)
20{ 22{
21 u8 status; 23 u8 status;
22 int loops = MAX_8042_LOOPS; 24 int loops = MAX_8042_LOOPS;
25 int ffs = MAX_8042_FF;
23 26
24 while (loops--) { 27 while (loops--) {
25 io_delay(); 28 io_delay();
26 29
27 status = inb(0x64); 30 status = inb(0x64);
31 if (status == 0xff) {
32 /* FF is a plausible, but very unlikely status */
33 if (!--ffs)
34 return -1; /* Assume no KBC present */
35 }
28 if (status & 1) { 36 if (status & 1) {
29 /* Read and discard input data */ 37 /* Read and discard input data */
30 io_delay(); 38 io_delay();
@@ -118,44 +126,37 @@ static void enable_a20_fast(void)
118 126
119int enable_a20(void) 127int enable_a20(void)
120{ 128{
121#if defined(CONFIG_X86_ELAN)
122 /* Elan croaks if we try to touch the KBC */
123 enable_a20_fast();
124 while (!a20_test_long())
125 ;
126 return 0;
127#elif defined(CONFIG_X86_VOYAGER)
128 /* On Voyager, a20_test() is unsafe? */
129 enable_a20_kbc();
130 return 0;
131#else
132 int loops = A20_ENABLE_LOOPS; 129 int loops = A20_ENABLE_LOOPS;
133 while (loops--) { 130 int kbc_err;
134 /* First, check to see if A20 is already enabled 131
135 (legacy free, etc.) */ 132 while (loops--) {
136 if (a20_test_short()) 133 /* First, check to see if A20 is already enabled
137 return 0; 134 (legacy free, etc.) */
138 135 if (a20_test_short())
139 /* Next, try the BIOS (INT 0x15, AX=0x2401) */ 136 return 0;
140 enable_a20_bios(); 137
141 if (a20_test_short()) 138 /* Next, try the BIOS (INT 0x15, AX=0x2401) */
142 return 0; 139 enable_a20_bios();
143 140 if (a20_test_short())
144 /* Try enabling A20 through the keyboard controller */ 141 return 0;
145 empty_8042(); 142
146 if (a20_test_short()) 143 /* Try enabling A20 through the keyboard controller */
147 return 0; /* BIOS worked, but with delayed reaction */ 144 kbc_err = empty_8042();
148 145
149 enable_a20_kbc(); 146 if (a20_test_short())
150 if (a20_test_long()) 147 return 0; /* BIOS worked, but with delayed reaction */
151 return 0; 148
152 149 if (!kbc_err) {
153 /* Finally, try enabling the "fast A20 gate" */ 150 enable_a20_kbc();
154 enable_a20_fast(); 151 if (a20_test_long())
155 if (a20_test_long()) 152 return 0;
156 return 0; 153 }
157 } 154
158 155 /* Finally, try enabling the "fast A20 gate" */
159 return -1; 156 enable_a20_fast();
160#endif 157 if (a20_test_long())
158 return 0;
159 }
160
161 return -1;
161} 162}
diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
index cc0ef13fba7a..7b2692e897e5 100644
--- a/arch/x86/boot/boot.h
+++ b/arch/x86/boot/boot.h
@@ -302,9 +302,6 @@ void probe_cards(int unsafe);
302/* video-vesa.c */ 302/* video-vesa.c */
303void vesa_store_edid(void); 303void vesa_store_edid(void);
304 304
305/* voyager.c */
306int query_voyager(void);
307
308#endif /* __ASSEMBLY__ */ 305#endif /* __ASSEMBLY__ */
309 306
310#endif /* BOOT_BOOT_H */ 307#endif /* BOOT_BOOT_H */
diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
index 29c5fbf08392..3a8a866fb2e2 100644
--- a/arch/x86/boot/compressed/head_32.S
+++ b/arch/x86/boot/compressed/head_32.S
@@ -25,14 +25,12 @@
25 25
26#include <linux/linkage.h> 26#include <linux/linkage.h>
27#include <asm/segment.h> 27#include <asm/segment.h>
28#include <asm/page.h> 28#include <asm/page_types.h>
29#include <asm/boot.h> 29#include <asm/boot.h>
30#include <asm/asm-offsets.h> 30#include <asm/asm-offsets.h>
31 31
32.section ".text.head","ax",@progbits 32.section ".text.head","ax",@progbits
33 .globl startup_32 33ENTRY(startup_32)
34
35startup_32:
36 cld 34 cld
37 /* test KEEP_SEGMENTS flag to see if the bootloader is asking 35 /* test KEEP_SEGMENTS flag to see if the bootloader is asking
38 * us to not reload segments */ 36 * us to not reload segments */
@@ -113,6 +111,8 @@ startup_32:
113 */ 111 */
114 leal relocated(%ebx), %eax 112 leal relocated(%ebx), %eax
115 jmp *%eax 113 jmp *%eax
114ENDPROC(startup_32)
115
116.section ".text" 116.section ".text"
117relocated: 117relocated:
118 118
diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
index 1d5dff4123e1..ed4a82948002 100644
--- a/arch/x86/boot/compressed/head_64.S
+++ b/arch/x86/boot/compressed/head_64.S
@@ -26,8 +26,8 @@
26 26
27#include <linux/linkage.h> 27#include <linux/linkage.h>
28#include <asm/segment.h> 28#include <asm/segment.h>
29#include <asm/pgtable.h> 29#include <asm/pgtable_types.h>
30#include <asm/page.h> 30#include <asm/page_types.h>
31#include <asm/boot.h> 31#include <asm/boot.h>
32#include <asm/msr.h> 32#include <asm/msr.h>
33#include <asm/processor-flags.h> 33#include <asm/processor-flags.h>
@@ -35,9 +35,7 @@
35 35
36.section ".text.head" 36.section ".text.head"
37 .code32 37 .code32
38 .globl startup_32 38ENTRY(startup_32)
39
40startup_32:
41 cld 39 cld
42 /* test KEEP_SEGMENTS flag to see if the bootloader is asking 40 /* test KEEP_SEGMENTS flag to see if the bootloader is asking
43 * us to not reload segments */ 41 * us to not reload segments */
@@ -176,6 +174,7 @@ startup_32:
176 174
177 /* Jump from 32bit compatibility mode into 64bit mode. */ 175 /* Jump from 32bit compatibility mode into 64bit mode. */
178 lret 176 lret
177ENDPROC(startup_32)
179 178
180no_longmode: 179no_longmode:
181 /* This isn't an x86-64 CPU so hang */ 180 /* This isn't an x86-64 CPU so hang */
@@ -295,7 +294,6 @@ relocated:
295 call decompress_kernel 294 call decompress_kernel
296 popq %rsi 295 popq %rsi
297 296
298
299/* 297/*
300 * Jump to the decompressed kernel. 298 * Jump to the decompressed kernel.
301 */ 299 */
diff --git a/arch/x86/boot/copy.S b/arch/x86/boot/copy.S
index ef50c84e8b4b..11f272c6f5e9 100644
--- a/arch/x86/boot/copy.S
+++ b/arch/x86/boot/copy.S
@@ -8,6 +8,8 @@
8 * 8 *
9 * ----------------------------------------------------------------------- */ 9 * ----------------------------------------------------------------------- */
10 10
11#include <linux/linkage.h>
12
11/* 13/*
12 * Memory copy routines 14 * Memory copy routines
13 */ 15 */
@@ -15,9 +17,7 @@
15 .code16gcc 17 .code16gcc
16 .text 18 .text
17 19
18 .globl memcpy 20GLOBAL(memcpy)
19 .type memcpy, @function
20memcpy:
21 pushw %si 21 pushw %si
22 pushw %di 22 pushw %di
23 movw %ax, %di 23 movw %ax, %di
@@ -31,11 +31,9 @@ memcpy:
31 popw %di 31 popw %di
32 popw %si 32 popw %si
33 ret 33 ret
34 .size memcpy, .-memcpy 34ENDPROC(memcpy)
35 35
36 .globl memset 36GLOBAL(memset)
37 .type memset, @function
38memset:
39 pushw %di 37 pushw %di
40 movw %ax, %di 38 movw %ax, %di
41 movzbl %dl, %eax 39 movzbl %dl, %eax
@@ -48,52 +46,42 @@ memset:
48 rep; stosb 46 rep; stosb
49 popw %di 47 popw %di
50 ret 48 ret
51 .size memset, .-memset 49ENDPROC(memset)
52 50
53 .globl copy_from_fs 51GLOBAL(copy_from_fs)
54 .type copy_from_fs, @function
55copy_from_fs:
56 pushw %ds 52 pushw %ds
57 pushw %fs 53 pushw %fs
58 popw %ds 54 popw %ds
59 call memcpy 55 call memcpy
60 popw %ds 56 popw %ds
61 ret 57 ret
62 .size copy_from_fs, .-copy_from_fs 58ENDPROC(copy_from_fs)
63 59
64 .globl copy_to_fs 60GLOBAL(copy_to_fs)
65 .type copy_to_fs, @function
66copy_to_fs:
67 pushw %es 61 pushw %es
68 pushw %fs 62 pushw %fs
69 popw %es 63 popw %es
70 call memcpy 64 call memcpy
71 popw %es 65 popw %es
72 ret 66 ret
73 .size copy_to_fs, .-copy_to_fs 67ENDPROC(copy_to_fs)
74 68
75#if 0 /* Not currently used, but can be enabled as needed */ 69#if 0 /* Not currently used, but can be enabled as needed */
76 70GLOBAL(copy_from_gs)
77 .globl copy_from_gs
78 .type copy_from_gs, @function
79copy_from_gs:
80 pushw %ds 71 pushw %ds
81 pushw %gs 72 pushw %gs
82 popw %ds 73 popw %ds
83 call memcpy 74 call memcpy
84 popw %ds 75 popw %ds
85 ret 76 ret
86 .size copy_from_gs, .-copy_from_gs 77ENDPROC(copy_from_gs)
87 .globl copy_to_gs
88 78
89 .type copy_to_gs, @function 79GLOBAL(copy_to_gs)
90copy_to_gs:
91 pushw %es 80 pushw %es
92 pushw %gs 81 pushw %gs
93 popw %es 82 popw %es
94 call memcpy 83 call memcpy
95 popw %es 84 popw %es
96 ret 85 ret
97 .size copy_to_gs, .-copy_to_gs 86ENDPROC(copy_to_gs)
98
99#endif 87#endif
diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index b993062e9a5f..7ccff4884a23 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -19,7 +19,7 @@
19#include <linux/utsrelease.h> 19#include <linux/utsrelease.h>
20#include <asm/boot.h> 20#include <asm/boot.h>
21#include <asm/e820.h> 21#include <asm/e820.h>
22#include <asm/page.h> 22#include <asm/page_types.h>
23#include <asm/setup.h> 23#include <asm/setup.h>
24#include "boot.h" 24#include "boot.h"
25#include "offsets.h" 25#include "offsets.h"
diff --git a/arch/x86/boot/main.c b/arch/x86/boot/main.c
index 197421db1af1..58f0415d3ae0 100644
--- a/arch/x86/boot/main.c
+++ b/arch/x86/boot/main.c
@@ -149,11 +149,6 @@ void main(void)
149 /* Query MCA information */ 149 /* Query MCA information */
150 query_mca(); 150 query_mca();
151 151
152 /* Voyager */
153#ifdef CONFIG_X86_VOYAGER
154 query_voyager();
155#endif
156
157 /* Query Intel SpeedStep (IST) information */ 152 /* Query Intel SpeedStep (IST) information */
158 query_ist(); 153 query_ist();
159 154
diff --git a/arch/x86/boot/pmjump.S b/arch/x86/boot/pmjump.S
index 141b6e20ed31..019c17a75851 100644
--- a/arch/x86/boot/pmjump.S
+++ b/arch/x86/boot/pmjump.S
@@ -15,18 +15,15 @@
15#include <asm/boot.h> 15#include <asm/boot.h>
16#include <asm/processor-flags.h> 16#include <asm/processor-flags.h>
17#include <asm/segment.h> 17#include <asm/segment.h>
18#include <linux/linkage.h>
18 19
19 .text 20 .text
20
21 .globl protected_mode_jump
22 .type protected_mode_jump, @function
23
24 .code16 21 .code16
25 22
26/* 23/*
27 * void protected_mode_jump(u32 entrypoint, u32 bootparams); 24 * void protected_mode_jump(u32 entrypoint, u32 bootparams);
28 */ 25 */
29protected_mode_jump: 26GLOBAL(protected_mode_jump)
30 movl %edx, %esi # Pointer to boot_params table 27 movl %edx, %esi # Pointer to boot_params table
31 28
32 xorl %ebx, %ebx 29 xorl %ebx, %ebx
@@ -47,12 +44,10 @@ protected_mode_jump:
47 .byte 0x66, 0xea # ljmpl opcode 44 .byte 0x66, 0xea # ljmpl opcode
482: .long in_pm32 # offset 452: .long in_pm32 # offset
49 .word __BOOT_CS # segment 46 .word __BOOT_CS # segment
50 47ENDPROC(protected_mode_jump)
51 .size protected_mode_jump, .-protected_mode_jump
52 48
53 .code32 49 .code32
54 .type in_pm32, @function 50GLOBAL(in_pm32)
55in_pm32:
56 # Set up data segments for flat 32-bit mode 51 # Set up data segments for flat 32-bit mode
57 movl %ecx, %ds 52 movl %ecx, %ds
58 movl %ecx, %es 53 movl %ecx, %es
@@ -78,5 +73,4 @@ in_pm32:
78 lldt %cx 73 lldt %cx
79 74
80 jmpl *%eax # Jump to the 32-bit entrypoint 75 jmpl *%eax # Jump to the 32-bit entrypoint
81 76ENDPROC(in_pm32)
82 .size in_pm32, .-in_pm32
diff --git a/arch/x86/boot/video-vesa.c b/arch/x86/boot/video-vesa.c
index 75115849af33..4a58c8ce3f69 100644
--- a/arch/x86/boot/video-vesa.c
+++ b/arch/x86/boot/video-vesa.c
@@ -269,9 +269,8 @@ void vesa_store_edid(void)
269 we genuinely have to assume all registers are destroyed here. */ 269 we genuinely have to assume all registers are destroyed here. */
270 270
271 asm("pushw %%es; movw %2,%%es; "INT10"; popw %%es" 271 asm("pushw %%es; movw %2,%%es; "INT10"; popw %%es"
272 : "+a" (ax), "+b" (bx) 272 : "+a" (ax), "+b" (bx), "+c" (cx), "+D" (di)
273 : "c" (cx), "D" (di) 273 : : "esi", "edx");
274 : "esi");
275 274
276 if (ax != 0x004f) 275 if (ax != 0x004f)
277 return; /* No EDID */ 276 return; /* No EDID */
@@ -285,9 +284,9 @@ void vesa_store_edid(void)
285 dx = 0; /* EDID block number */ 284 dx = 0; /* EDID block number */
286 di =(size_t) &boot_params.edid_info; /* (ES:)Pointer to block */ 285 di =(size_t) &boot_params.edid_info; /* (ES:)Pointer to block */
287 asm(INT10 286 asm(INT10
288 : "+a" (ax), "+b" (bx), "+d" (dx), "=m" (boot_params.edid_info) 287 : "+a" (ax), "+b" (bx), "+d" (dx), "=m" (boot_params.edid_info),
289 : "c" (cx), "D" (di) 288 "+c" (cx), "+D" (di)
290 : "esi"); 289 : : "esi");
291#endif /* CONFIG_FIRMWARE_EDID */ 290#endif /* CONFIG_FIRMWARE_EDID */
292} 291}
293 292
diff --git a/arch/x86/boot/voyager.c b/arch/x86/boot/voyager.c
deleted file mode 100644
index 433909d61e5c..000000000000
--- a/arch/x86/boot/voyager.c
+++ /dev/null
@@ -1,40 +0,0 @@
1/* -*- linux-c -*- ------------------------------------------------------- *
2 *
3 * Copyright (C) 1991, 1992 Linus Torvalds
4 * Copyright 2007 rPath, Inc. - All Rights Reserved
5 *
6 * This file is part of the Linux kernel, and is made available under
7 * the terms of the GNU General Public License version 2.
8 *
9 * ----------------------------------------------------------------------- */
10
11/*
12 * Get the Voyager config information
13 */
14
15#include "boot.h"
16
17int query_voyager(void)
18{
19 u8 err;
20 u16 es, di;
21 /* Abuse the apm_bios_info area for this */
22 u8 *data_ptr = (u8 *)&boot_params.apm_bios_info;
23
24 data_ptr[0] = 0xff; /* Flag on config not found(?) */
25
26 asm("pushw %%es ; "
27 "int $0x15 ; "
28 "setc %0 ; "
29 "movw %%es, %1 ; "
30 "popw %%es"
31 : "=q" (err), "=r" (es), "=D" (di)
32 : "a" (0xffc0));
33
34 if (err)
35 return -1; /* Not Voyager */
36
37 set_fs(es);
38 copy_from_fs(data_ptr, di, 7); /* Table is 7 bytes apparently */
39 return 0;
40}
diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
index b30a08ed8eb4..235b81d0f6f2 100644
--- a/arch/x86/configs/i386_defconfig
+++ b/arch/x86/configs/i386_defconfig
@@ -1,14 +1,13 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc5 3# Linux kernel version: 2.6.29-rc4
4# Wed Sep 3 17:23:09 2008 4# Tue Feb 24 15:50:58 2009
5# 5#
6# CONFIG_64BIT is not set 6# CONFIG_64BIT is not set
7CONFIG_X86_32=y 7CONFIG_X86_32=y
8# CONFIG_X86_64 is not set 8# CONFIG_X86_64 is not set
9CONFIG_X86=y 9CONFIG_X86=y
10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
11# CONFIG_GENERIC_LOCKBREAK is not set
12CONFIG_GENERIC_TIME=y 11CONFIG_GENERIC_TIME=y
13CONFIG_GENERIC_CMOS_UPDATE=y 12CONFIG_GENERIC_CMOS_UPDATE=y
14CONFIG_CLOCKSOURCE_WATCHDOG=y 13CONFIG_CLOCKSOURCE_WATCHDOG=y
@@ -24,16 +23,14 @@ CONFIG_GENERIC_ISA_DMA=y
24CONFIG_GENERIC_IOMAP=y 23CONFIG_GENERIC_IOMAP=y
25CONFIG_GENERIC_BUG=y 24CONFIG_GENERIC_BUG=y
26CONFIG_GENERIC_HWEIGHT=y 25CONFIG_GENERIC_HWEIGHT=y
27# CONFIG_GENERIC_GPIO is not set
28CONFIG_ARCH_MAY_HAVE_PC_FDC=y 26CONFIG_ARCH_MAY_HAVE_PC_FDC=y
29# CONFIG_RWSEM_GENERIC_SPINLOCK is not set 27# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y 28CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31# CONFIG_ARCH_HAS_ILOG2_U32 is not set
32# CONFIG_ARCH_HAS_ILOG2_U64 is not set
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 29CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_GENERIC_CALIBRATE_DELAY=y 30CONFIG_GENERIC_CALIBRATE_DELAY=y
35# CONFIG_GENERIC_TIME_VSYSCALL is not set 31# CONFIG_GENERIC_TIME_VSYSCALL is not set
36CONFIG_ARCH_HAS_CPU_RELAX=y 32CONFIG_ARCH_HAS_CPU_RELAX=y
33CONFIG_ARCH_HAS_DEFAULT_IDLE=y
37CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y 34CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
38CONFIG_HAVE_SETUP_PER_CPU_AREA=y 35CONFIG_HAVE_SETUP_PER_CPU_AREA=y
39# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set 36# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
@@ -42,12 +39,12 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
42# CONFIG_ZONE_DMA32 is not set 39# CONFIG_ZONE_DMA32 is not set
43CONFIG_ARCH_POPULATES_NODE_MAP=y 40CONFIG_ARCH_POPULATES_NODE_MAP=y
44# CONFIG_AUDIT_ARCH is not set 41# CONFIG_AUDIT_ARCH is not set
45CONFIG_ARCH_SUPPORTS_AOUT=y
46CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y 42CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
47CONFIG_GENERIC_HARDIRQS=y 43CONFIG_GENERIC_HARDIRQS=y
48CONFIG_GENERIC_IRQ_PROBE=y 44CONFIG_GENERIC_IRQ_PROBE=y
49CONFIG_GENERIC_PENDING_IRQ=y 45CONFIG_GENERIC_PENDING_IRQ=y
50CONFIG_X86_SMP=y 46CONFIG_X86_SMP=y
47CONFIG_USE_GENERIC_SMP_HELPERS=y
51CONFIG_X86_32_SMP=y 48CONFIG_X86_32_SMP=y
52CONFIG_X86_HT=y 49CONFIG_X86_HT=y
53CONFIG_X86_BIOS_REBOOT=y 50CONFIG_X86_BIOS_REBOOT=y
@@ -76,30 +73,44 @@ CONFIG_TASK_IO_ACCOUNTING=y
76CONFIG_AUDIT=y 73CONFIG_AUDIT=y
77CONFIG_AUDITSYSCALL=y 74CONFIG_AUDITSYSCALL=y
78CONFIG_AUDIT_TREE=y 75CONFIG_AUDIT_TREE=y
76
77#
78# RCU Subsystem
79#
80# CONFIG_CLASSIC_RCU is not set
81CONFIG_TREE_RCU=y
82# CONFIG_PREEMPT_RCU is not set
83# CONFIG_RCU_TRACE is not set
84CONFIG_RCU_FANOUT=32
85# CONFIG_RCU_FANOUT_EXACT is not set
86# CONFIG_TREE_RCU_TRACE is not set
87# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 88# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=18 89CONFIG_LOG_BUF_SHIFT=18
81CONFIG_CGROUPS=y
82# CONFIG_CGROUP_DEBUG is not set
83CONFIG_CGROUP_NS=y
84# CONFIG_CGROUP_DEVICE is not set
85CONFIG_CPUSETS=y
86CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y 90CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
87CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
88CONFIG_FAIR_GROUP_SCHED=y 92CONFIG_FAIR_GROUP_SCHED=y
89# CONFIG_RT_GROUP_SCHED is not set 93# CONFIG_RT_GROUP_SCHED is not set
90# CONFIG_USER_SCHED is not set 94# CONFIG_USER_SCHED is not set
91CONFIG_CGROUP_SCHED=y 95CONFIG_CGROUP_SCHED=y
96CONFIG_CGROUPS=y
97# CONFIG_CGROUP_DEBUG is not set
98CONFIG_CGROUP_NS=y
99CONFIG_CGROUP_FREEZER=y
100# CONFIG_CGROUP_DEVICE is not set
101CONFIG_CPUSETS=y
102CONFIG_PROC_PID_CPUSET=y
92CONFIG_CGROUP_CPUACCT=y 103CONFIG_CGROUP_CPUACCT=y
93CONFIG_RESOURCE_COUNTERS=y 104CONFIG_RESOURCE_COUNTERS=y
94# CONFIG_CGROUP_MEM_RES_CTLR is not set 105# CONFIG_CGROUP_MEM_RES_CTLR is not set
95# CONFIG_SYSFS_DEPRECATED_V2 is not set 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
96CONFIG_PROC_PID_CPUSET=y
97CONFIG_RELAY=y 107CONFIG_RELAY=y
98CONFIG_NAMESPACES=y 108CONFIG_NAMESPACES=y
99CONFIG_UTS_NS=y 109CONFIG_UTS_NS=y
100CONFIG_IPC_NS=y 110CONFIG_IPC_NS=y
101CONFIG_USER_NS=y 111CONFIG_USER_NS=y
102CONFIG_PID_NS=y 112CONFIG_PID_NS=y
113CONFIG_NET_NS=y
103CONFIG_BLK_DEV_INITRD=y 114CONFIG_BLK_DEV_INITRD=y
104CONFIG_INITRAMFS_SOURCE="" 115CONFIG_INITRAMFS_SOURCE=""
105CONFIG_CC_OPTIMIZE_FOR_SIZE=y 116CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -124,12 +135,15 @@ CONFIG_SIGNALFD=y
124CONFIG_TIMERFD=y 135CONFIG_TIMERFD=y
125CONFIG_EVENTFD=y 136CONFIG_EVENTFD=y
126CONFIG_SHMEM=y 137CONFIG_SHMEM=y
138CONFIG_AIO=y
127CONFIG_VM_EVENT_COUNTERS=y 139CONFIG_VM_EVENT_COUNTERS=y
140CONFIG_PCI_QUIRKS=y
128CONFIG_SLUB_DEBUG=y 141CONFIG_SLUB_DEBUG=y
129# CONFIG_SLAB is not set 142# CONFIG_SLAB is not set
130CONFIG_SLUB=y 143CONFIG_SLUB=y
131# CONFIG_SLOB is not set 144# CONFIG_SLOB is not set
132CONFIG_PROFILING=y 145CONFIG_PROFILING=y
146CONFIG_TRACEPOINTS=y
133CONFIG_MARKERS=y 147CONFIG_MARKERS=y
134# CONFIG_OPROFILE is not set 148# CONFIG_OPROFILE is not set
135CONFIG_HAVE_OPROFILE=y 149CONFIG_HAVE_OPROFILE=y
@@ -139,15 +153,10 @@ CONFIG_KRETPROBES=y
139CONFIG_HAVE_IOREMAP_PROT=y 153CONFIG_HAVE_IOREMAP_PROT=y
140CONFIG_HAVE_KPROBES=y 154CONFIG_HAVE_KPROBES=y
141CONFIG_HAVE_KRETPROBES=y 155CONFIG_HAVE_KRETPROBES=y
142# CONFIG_HAVE_ARCH_TRACEHOOK is not set 156CONFIG_HAVE_ARCH_TRACEHOOK=y
143# CONFIG_HAVE_DMA_ATTRS is not set
144CONFIG_USE_GENERIC_SMP_HELPERS=y
145# CONFIG_HAVE_CLK is not set
146CONFIG_PROC_PAGE_MONITOR=y
147CONFIG_HAVE_GENERIC_DMA_COHERENT=y 157CONFIG_HAVE_GENERIC_DMA_COHERENT=y
148CONFIG_SLABINFO=y 158CONFIG_SLABINFO=y
149CONFIG_RT_MUTEXES=y 159CONFIG_RT_MUTEXES=y
150# CONFIG_TINY_SHMEM is not set
151CONFIG_BASE_SMALL=0 160CONFIG_BASE_SMALL=0
152CONFIG_MODULES=y 161CONFIG_MODULES=y
153# CONFIG_MODULE_FORCE_LOAD is not set 162# CONFIG_MODULE_FORCE_LOAD is not set
@@ -155,12 +164,10 @@ CONFIG_MODULE_UNLOAD=y
155CONFIG_MODULE_FORCE_UNLOAD=y 164CONFIG_MODULE_FORCE_UNLOAD=y
156# CONFIG_MODVERSIONS is not set 165# CONFIG_MODVERSIONS is not set
157# CONFIG_MODULE_SRCVERSION_ALL is not set 166# CONFIG_MODULE_SRCVERSION_ALL is not set
158CONFIG_KMOD=y
159CONFIG_STOP_MACHINE=y 167CONFIG_STOP_MACHINE=y
160CONFIG_BLOCK=y 168CONFIG_BLOCK=y
161# CONFIG_LBD is not set 169# CONFIG_LBD is not set
162CONFIG_BLK_DEV_IO_TRACE=y 170CONFIG_BLK_DEV_IO_TRACE=y
163# CONFIG_LSF is not set
164CONFIG_BLK_DEV_BSG=y 171CONFIG_BLK_DEV_BSG=y
165# CONFIG_BLK_DEV_INTEGRITY is not set 172# CONFIG_BLK_DEV_INTEGRITY is not set
166 173
@@ -176,7 +183,7 @@ CONFIG_IOSCHED_CFQ=y
176CONFIG_DEFAULT_CFQ=y 183CONFIG_DEFAULT_CFQ=y
177# CONFIG_DEFAULT_NOOP is not set 184# CONFIG_DEFAULT_NOOP is not set
178CONFIG_DEFAULT_IOSCHED="cfq" 185CONFIG_DEFAULT_IOSCHED="cfq"
179CONFIG_CLASSIC_RCU=y 186CONFIG_FREEZER=y
180 187
181# 188#
182# Processor type and features 189# Processor type and features
@@ -186,15 +193,14 @@ CONFIG_NO_HZ=y
186CONFIG_HIGH_RES_TIMERS=y 193CONFIG_HIGH_RES_TIMERS=y
187CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 194CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
188CONFIG_SMP=y 195CONFIG_SMP=y
196CONFIG_SPARSE_IRQ=y
189CONFIG_X86_FIND_SMP_CONFIG=y 197CONFIG_X86_FIND_SMP_CONFIG=y
190CONFIG_X86_MPPARSE=y 198CONFIG_X86_MPPARSE=y
191CONFIG_X86_PC=y
192# CONFIG_X86_ELAN is not set 199# CONFIG_X86_ELAN is not set
193# CONFIG_X86_VOYAGER is not set
194# CONFIG_X86_GENERICARCH is not set 200# CONFIG_X86_GENERICARCH is not set
195# CONFIG_X86_VSMP is not set 201# CONFIG_X86_VSMP is not set
196# CONFIG_X86_RDC321X is not set 202# CONFIG_X86_RDC321X is not set
197CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 203CONFIG_SCHED_OMIT_FRAME_POINTER=y
198# CONFIG_PARAVIRT_GUEST is not set 204# CONFIG_PARAVIRT_GUEST is not set
199# CONFIG_MEMTEST is not set 205# CONFIG_MEMTEST is not set
200# CONFIG_M386 is not set 206# CONFIG_M386 is not set
@@ -238,10 +244,19 @@ CONFIG_X86_TSC=y
238CONFIG_X86_CMOV=y 244CONFIG_X86_CMOV=y
239CONFIG_X86_MINIMUM_CPU_FAMILY=4 245CONFIG_X86_MINIMUM_CPU_FAMILY=4
240CONFIG_X86_DEBUGCTLMSR=y 246CONFIG_X86_DEBUGCTLMSR=y
247CONFIG_CPU_SUP_INTEL=y
248CONFIG_CPU_SUP_CYRIX_32=y
249CONFIG_CPU_SUP_AMD=y
250CONFIG_CPU_SUP_CENTAUR_32=y
251CONFIG_CPU_SUP_TRANSMETA_32=y
252CONFIG_CPU_SUP_UMC_32=y
253CONFIG_X86_DS=y
254CONFIG_X86_PTRACE_BTS=y
241CONFIG_HPET_TIMER=y 255CONFIG_HPET_TIMER=y
242CONFIG_HPET_EMULATE_RTC=y 256CONFIG_HPET_EMULATE_RTC=y
243CONFIG_DMI=y 257CONFIG_DMI=y
244# CONFIG_IOMMU_HELPER is not set 258# CONFIG_IOMMU_HELPER is not set
259# CONFIG_IOMMU_API is not set
245CONFIG_NR_CPUS=64 260CONFIG_NR_CPUS=64
246CONFIG_SCHED_SMT=y 261CONFIG_SCHED_SMT=y
247CONFIG_SCHED_MC=y 262CONFIG_SCHED_MC=y
@@ -250,12 +265,17 @@ CONFIG_PREEMPT_VOLUNTARY=y
250# CONFIG_PREEMPT is not set 265# CONFIG_PREEMPT is not set
251CONFIG_X86_LOCAL_APIC=y 266CONFIG_X86_LOCAL_APIC=y
252CONFIG_X86_IO_APIC=y 267CONFIG_X86_IO_APIC=y
253# CONFIG_X86_MCE is not set 268CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
269CONFIG_X86_MCE=y
270CONFIG_X86_MCE_NONFATAL=y
271CONFIG_X86_MCE_P4THERMAL=y
254CONFIG_VM86=y 272CONFIG_VM86=y
255# CONFIG_TOSHIBA is not set 273# CONFIG_TOSHIBA is not set
256# CONFIG_I8K is not set 274# CONFIG_I8K is not set
257CONFIG_X86_REBOOTFIXUPS=y 275CONFIG_X86_REBOOTFIXUPS=y
258CONFIG_MICROCODE=y 276CONFIG_MICROCODE=y
277CONFIG_MICROCODE_INTEL=y
278CONFIG_MICROCODE_AMD=y
259CONFIG_MICROCODE_OLD_INTERFACE=y 279CONFIG_MICROCODE_OLD_INTERFACE=y
260CONFIG_X86_MSR=y 280CONFIG_X86_MSR=y
261CONFIG_X86_CPUID=y 281CONFIG_X86_CPUID=y
@@ -264,6 +284,7 @@ CONFIG_HIGHMEM4G=y
264# CONFIG_HIGHMEM64G is not set 284# CONFIG_HIGHMEM64G is not set
265CONFIG_PAGE_OFFSET=0xC0000000 285CONFIG_PAGE_OFFSET=0xC0000000
266CONFIG_HIGHMEM=y 286CONFIG_HIGHMEM=y
287# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
267CONFIG_ARCH_FLATMEM_ENABLE=y 288CONFIG_ARCH_FLATMEM_ENABLE=y
268CONFIG_ARCH_SPARSEMEM_ENABLE=y 289CONFIG_ARCH_SPARSEMEM_ENABLE=y
269CONFIG_ARCH_SELECT_MEMORY_MODEL=y 290CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@@ -274,14 +295,17 @@ CONFIG_FLATMEM_MANUAL=y
274CONFIG_FLATMEM=y 295CONFIG_FLATMEM=y
275CONFIG_FLAT_NODE_MEM_MAP=y 296CONFIG_FLAT_NODE_MEM_MAP=y
276CONFIG_SPARSEMEM_STATIC=y 297CONFIG_SPARSEMEM_STATIC=y
277# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
278CONFIG_PAGEFLAGS_EXTENDED=y 298CONFIG_PAGEFLAGS_EXTENDED=y
279CONFIG_SPLIT_PTLOCK_CPUS=4 299CONFIG_SPLIT_PTLOCK_CPUS=4
280CONFIG_RESOURCES_64BIT=y 300# CONFIG_PHYS_ADDR_T_64BIT is not set
281CONFIG_ZONE_DMA_FLAG=1 301CONFIG_ZONE_DMA_FLAG=1
282CONFIG_BOUNCE=y 302CONFIG_BOUNCE=y
283CONFIG_VIRT_TO_BUS=y 303CONFIG_VIRT_TO_BUS=y
304CONFIG_UNEVICTABLE_LRU=y
284CONFIG_HIGHPTE=y 305CONFIG_HIGHPTE=y
306CONFIG_X86_CHECK_BIOS_CORRUPTION=y
307CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
308CONFIG_X86_RESERVE_LOW_64K=y
285# CONFIG_MATH_EMULATION is not set 309# CONFIG_MATH_EMULATION is not set
286CONFIG_MTRR=y 310CONFIG_MTRR=y
287# CONFIG_MTRR_SANITIZER is not set 311# CONFIG_MTRR_SANITIZER is not set
@@ -302,10 +326,11 @@ CONFIG_PHYSICAL_START=0x1000000
302CONFIG_PHYSICAL_ALIGN=0x200000 326CONFIG_PHYSICAL_ALIGN=0x200000
303CONFIG_HOTPLUG_CPU=y 327CONFIG_HOTPLUG_CPU=y
304# CONFIG_COMPAT_VDSO is not set 328# CONFIG_COMPAT_VDSO is not set
329# CONFIG_CMDLINE_BOOL is not set
305CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 330CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
306 331
307# 332#
308# Power management options 333# Power management and ACPI options
309# 334#
310CONFIG_PM=y 335CONFIG_PM=y
311CONFIG_PM_DEBUG=y 336CONFIG_PM_DEBUG=y
@@ -331,19 +356,13 @@ CONFIG_ACPI_BATTERY=y
331CONFIG_ACPI_BUTTON=y 356CONFIG_ACPI_BUTTON=y
332CONFIG_ACPI_FAN=y 357CONFIG_ACPI_FAN=y
333CONFIG_ACPI_DOCK=y 358CONFIG_ACPI_DOCK=y
334# CONFIG_ACPI_BAY is not set
335CONFIG_ACPI_PROCESSOR=y 359CONFIG_ACPI_PROCESSOR=y
336CONFIG_ACPI_HOTPLUG_CPU=y 360CONFIG_ACPI_HOTPLUG_CPU=y
337CONFIG_ACPI_THERMAL=y 361CONFIG_ACPI_THERMAL=y
338# CONFIG_ACPI_WMI is not set
339# CONFIG_ACPI_ASUS is not set
340# CONFIG_ACPI_TOSHIBA is not set
341# CONFIG_ACPI_CUSTOM_DSDT is not set 362# CONFIG_ACPI_CUSTOM_DSDT is not set
342CONFIG_ACPI_BLACKLIST_YEAR=0 363CONFIG_ACPI_BLACKLIST_YEAR=0
343# CONFIG_ACPI_DEBUG is not set 364# CONFIG_ACPI_DEBUG is not set
344CONFIG_ACPI_EC=y
345# CONFIG_ACPI_PCI_SLOT is not set 365# CONFIG_ACPI_PCI_SLOT is not set
346CONFIG_ACPI_POWER=y
347CONFIG_ACPI_SYSTEM=y 366CONFIG_ACPI_SYSTEM=y
348CONFIG_X86_PM_TIMER=y 367CONFIG_X86_PM_TIMER=y
349CONFIG_ACPI_CONTAINER=y 368CONFIG_ACPI_CONTAINER=y
@@ -388,7 +407,6 @@ CONFIG_X86_ACPI_CPUFREQ=y
388# 407#
389# shared options 408# shared options
390# 409#
391# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
392# CONFIG_X86_SPEEDSTEP_LIB is not set 410# CONFIG_X86_SPEEDSTEP_LIB is not set
393CONFIG_CPU_IDLE=y 411CONFIG_CPU_IDLE=y
394CONFIG_CPU_IDLE_GOV_LADDER=y 412CONFIG_CPU_IDLE_GOV_LADDER=y
@@ -415,6 +433,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
415CONFIG_PCI_MSI=y 433CONFIG_PCI_MSI=y
416# CONFIG_PCI_LEGACY is not set 434# CONFIG_PCI_LEGACY is not set
417# CONFIG_PCI_DEBUG is not set 435# CONFIG_PCI_DEBUG is not set
436# CONFIG_PCI_STUB is not set
418CONFIG_HT_IRQ=y 437CONFIG_HT_IRQ=y
419CONFIG_ISA_DMA_API=y 438CONFIG_ISA_DMA_API=y
420# CONFIG_ISA is not set 439# CONFIG_ISA is not set
@@ -452,13 +471,17 @@ CONFIG_HOTPLUG_PCI=y
452# Executable file formats / Emulations 471# Executable file formats / Emulations
453# 472#
454CONFIG_BINFMT_ELF=y 473CONFIG_BINFMT_ELF=y
474CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
475CONFIG_HAVE_AOUT=y
455# CONFIG_BINFMT_AOUT is not set 476# CONFIG_BINFMT_AOUT is not set
456CONFIG_BINFMT_MISC=y 477CONFIG_BINFMT_MISC=y
478CONFIG_HAVE_ATOMIC_IOMAP=y
457CONFIG_NET=y 479CONFIG_NET=y
458 480
459# 481#
460# Networking options 482# Networking options
461# 483#
484CONFIG_COMPAT_NET_DEV_OPS=y
462CONFIG_PACKET=y 485CONFIG_PACKET=y
463CONFIG_PACKET_MMAP=y 486CONFIG_PACKET_MMAP=y
464CONFIG_UNIX=y 487CONFIG_UNIX=y
@@ -519,7 +542,6 @@ CONFIG_DEFAULT_CUBIC=y
519# CONFIG_DEFAULT_RENO is not set 542# CONFIG_DEFAULT_RENO is not set
520CONFIG_DEFAULT_TCP_CONG="cubic" 543CONFIG_DEFAULT_TCP_CONG="cubic"
521CONFIG_TCP_MD5SIG=y 544CONFIG_TCP_MD5SIG=y
522# CONFIG_IP_VS is not set
523CONFIG_IPV6=y 545CONFIG_IPV6=y
524# CONFIG_IPV6_PRIVACY is not set 546# CONFIG_IPV6_PRIVACY is not set
525# CONFIG_IPV6_ROUTER_PREF is not set 547# CONFIG_IPV6_ROUTER_PREF is not set
@@ -557,19 +579,21 @@ CONFIG_NF_CONNTRACK_IRC=y
557CONFIG_NF_CONNTRACK_SIP=y 579CONFIG_NF_CONNTRACK_SIP=y
558CONFIG_NF_CT_NETLINK=y 580CONFIG_NF_CT_NETLINK=y
559CONFIG_NETFILTER_XTABLES=y 581CONFIG_NETFILTER_XTABLES=y
582CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
560CONFIG_NETFILTER_XT_TARGET_MARK=y 583CONFIG_NETFILTER_XT_TARGET_MARK=y
561CONFIG_NETFILTER_XT_TARGET_NFLOG=y 584CONFIG_NETFILTER_XT_TARGET_NFLOG=y
562CONFIG_NETFILTER_XT_TARGET_SECMARK=y 585CONFIG_NETFILTER_XT_TARGET_SECMARK=y
563CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
564CONFIG_NETFILTER_XT_TARGET_TCPMSS=y 586CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
565CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y 587CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
566CONFIG_NETFILTER_XT_MATCH_MARK=y 588CONFIG_NETFILTER_XT_MATCH_MARK=y
567CONFIG_NETFILTER_XT_MATCH_POLICY=y 589CONFIG_NETFILTER_XT_MATCH_POLICY=y
568CONFIG_NETFILTER_XT_MATCH_STATE=y 590CONFIG_NETFILTER_XT_MATCH_STATE=y
591# CONFIG_IP_VS is not set
569 592
570# 593#
571# IP: Netfilter Configuration 594# IP: Netfilter Configuration
572# 595#
596CONFIG_NF_DEFRAG_IPV4=y
573CONFIG_NF_CONNTRACK_IPV4=y 597CONFIG_NF_CONNTRACK_IPV4=y
574CONFIG_NF_CONNTRACK_PROC_COMPAT=y 598CONFIG_NF_CONNTRACK_PROC_COMPAT=y
575CONFIG_IP_NF_IPTABLES=y 599CONFIG_IP_NF_IPTABLES=y
@@ -595,8 +619,8 @@ CONFIG_IP_NF_MANGLE=y
595CONFIG_NF_CONNTRACK_IPV6=y 619CONFIG_NF_CONNTRACK_IPV6=y
596CONFIG_IP6_NF_IPTABLES=y 620CONFIG_IP6_NF_IPTABLES=y
597CONFIG_IP6_NF_MATCH_IPV6HEADER=y 621CONFIG_IP6_NF_MATCH_IPV6HEADER=y
598CONFIG_IP6_NF_FILTER=y
599CONFIG_IP6_NF_TARGET_LOG=y 622CONFIG_IP6_NF_TARGET_LOG=y
623CONFIG_IP6_NF_FILTER=y
600CONFIG_IP6_NF_TARGET_REJECT=y 624CONFIG_IP6_NF_TARGET_REJECT=y
601CONFIG_IP6_NF_MANGLE=y 625CONFIG_IP6_NF_MANGLE=y
602# CONFIG_IP_DCCP is not set 626# CONFIG_IP_DCCP is not set
@@ -604,6 +628,7 @@ CONFIG_IP6_NF_MANGLE=y
604# CONFIG_TIPC is not set 628# CONFIG_TIPC is not set
605# CONFIG_ATM is not set 629# CONFIG_ATM is not set
606# CONFIG_BRIDGE is not set 630# CONFIG_BRIDGE is not set
631# CONFIG_NET_DSA is not set
607# CONFIG_VLAN_8021Q is not set 632# CONFIG_VLAN_8021Q is not set
608# CONFIG_DECNET is not set 633# CONFIG_DECNET is not set
609CONFIG_LLC=y 634CONFIG_LLC=y
@@ -623,6 +648,7 @@ CONFIG_NET_SCHED=y
623# CONFIG_NET_SCH_HTB is not set 648# CONFIG_NET_SCH_HTB is not set
624# CONFIG_NET_SCH_HFSC is not set 649# CONFIG_NET_SCH_HFSC is not set
625# CONFIG_NET_SCH_PRIO is not set 650# CONFIG_NET_SCH_PRIO is not set
651# CONFIG_NET_SCH_MULTIQ is not set
626# CONFIG_NET_SCH_RED is not set 652# CONFIG_NET_SCH_RED is not set
627# CONFIG_NET_SCH_SFQ is not set 653# CONFIG_NET_SCH_SFQ is not set
628# CONFIG_NET_SCH_TEQL is not set 654# CONFIG_NET_SCH_TEQL is not set
@@ -630,6 +656,7 @@ CONFIG_NET_SCHED=y
630# CONFIG_NET_SCH_GRED is not set 656# CONFIG_NET_SCH_GRED is not set
631# CONFIG_NET_SCH_DSMARK is not set 657# CONFIG_NET_SCH_DSMARK is not set
632# CONFIG_NET_SCH_NETEM is not set 658# CONFIG_NET_SCH_NETEM is not set
659# CONFIG_NET_SCH_DRR is not set
633# CONFIG_NET_SCH_INGRESS is not set 660# CONFIG_NET_SCH_INGRESS is not set
634 661
635# 662#
@@ -644,6 +671,7 @@ CONFIG_NET_CLS=y
644# CONFIG_NET_CLS_RSVP is not set 671# CONFIG_NET_CLS_RSVP is not set
645# CONFIG_NET_CLS_RSVP6 is not set 672# CONFIG_NET_CLS_RSVP6 is not set
646# CONFIG_NET_CLS_FLOW is not set 673# CONFIG_NET_CLS_FLOW is not set
674# CONFIG_NET_CLS_CGROUP is not set
647CONFIG_NET_EMATCH=y 675CONFIG_NET_EMATCH=y
648CONFIG_NET_EMATCH_STACK=32 676CONFIG_NET_EMATCH_STACK=32
649# CONFIG_NET_EMATCH_CMP is not set 677# CONFIG_NET_EMATCH_CMP is not set
@@ -659,7 +687,9 @@ CONFIG_NET_CLS_ACT=y
659# CONFIG_NET_ACT_NAT is not set 687# CONFIG_NET_ACT_NAT is not set
660# CONFIG_NET_ACT_PEDIT is not set 688# CONFIG_NET_ACT_PEDIT is not set
661# CONFIG_NET_ACT_SIMP is not set 689# CONFIG_NET_ACT_SIMP is not set
690# CONFIG_NET_ACT_SKBEDIT is not set
662CONFIG_NET_SCH_FIFO=y 691CONFIG_NET_SCH_FIFO=y
692# CONFIG_DCB is not set
663 693
664# 694#
665# Network testing 695# Network testing
@@ -676,29 +706,33 @@ CONFIG_HAMRADIO=y
676# CONFIG_IRDA is not set 706# CONFIG_IRDA is not set
677# CONFIG_BT is not set 707# CONFIG_BT is not set
678# CONFIG_AF_RXRPC is not set 708# CONFIG_AF_RXRPC is not set
709# CONFIG_PHONET is not set
679CONFIG_FIB_RULES=y 710CONFIG_FIB_RULES=y
680 711CONFIG_WIRELESS=y
681#
682# Wireless
683#
684CONFIG_CFG80211=y 712CONFIG_CFG80211=y
713# CONFIG_CFG80211_REG_DEBUG is not set
685CONFIG_NL80211=y 714CONFIG_NL80211=y
715CONFIG_WIRELESS_OLD_REGULATORY=y
686CONFIG_WIRELESS_EXT=y 716CONFIG_WIRELESS_EXT=y
687CONFIG_WIRELESS_EXT_SYSFS=y 717CONFIG_WIRELESS_EXT_SYSFS=y
718# CONFIG_LIB80211 is not set
688CONFIG_MAC80211=y 719CONFIG_MAC80211=y
689 720
690# 721#
691# Rate control algorithm selection 722# Rate control algorithm selection
692# 723#
693CONFIG_MAC80211_RC_PID=y 724CONFIG_MAC80211_RC_MINSTREL=y
694CONFIG_MAC80211_RC_DEFAULT_PID=y 725# CONFIG_MAC80211_RC_DEFAULT_PID is not set
695CONFIG_MAC80211_RC_DEFAULT="pid" 726CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
727CONFIG_MAC80211_RC_DEFAULT="minstrel"
696# CONFIG_MAC80211_MESH is not set 728# CONFIG_MAC80211_MESH is not set
697CONFIG_MAC80211_LEDS=y 729CONFIG_MAC80211_LEDS=y
698# CONFIG_MAC80211_DEBUGFS is not set 730# CONFIG_MAC80211_DEBUGFS is not set
699# CONFIG_MAC80211_DEBUG_MENU is not set 731# CONFIG_MAC80211_DEBUG_MENU is not set
700# CONFIG_IEEE80211 is not set 732# CONFIG_WIMAX is not set
701# CONFIG_RFKILL is not set 733CONFIG_RFKILL=y
734# CONFIG_RFKILL_INPUT is not set
735CONFIG_RFKILL_LEDS=y
702# CONFIG_NET_9P is not set 736# CONFIG_NET_9P is not set
703 737
704# 738#
@@ -722,7 +756,7 @@ CONFIG_PROC_EVENTS=y
722# CONFIG_MTD is not set 756# CONFIG_MTD is not set
723# CONFIG_PARPORT is not set 757# CONFIG_PARPORT is not set
724CONFIG_PNP=y 758CONFIG_PNP=y
725# CONFIG_PNP_DEBUG is not set 759CONFIG_PNP_DEBUG_MESSAGES=y
726 760
727# 761#
728# Protocols 762# Protocols
@@ -750,20 +784,19 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
750CONFIG_MISC_DEVICES=y 784CONFIG_MISC_DEVICES=y
751# CONFIG_IBM_ASM is not set 785# CONFIG_IBM_ASM is not set
752# CONFIG_PHANTOM is not set 786# CONFIG_PHANTOM is not set
753# CONFIG_EEPROM_93CX6 is not set
754# CONFIG_SGI_IOC4 is not set 787# CONFIG_SGI_IOC4 is not set
755# CONFIG_TIFM_CORE is not set 788# CONFIG_TIFM_CORE is not set
756# CONFIG_ACER_WMI is not set 789# CONFIG_ICS932S401 is not set
757# CONFIG_ASUS_LAPTOP is not set
758# CONFIG_FUJITSU_LAPTOP is not set
759# CONFIG_TC1100_WMI is not set
760# CONFIG_MSI_LAPTOP is not set
761# CONFIG_COMPAL_LAPTOP is not set
762# CONFIG_SONY_LAPTOP is not set
763# CONFIG_THINKPAD_ACPI is not set
764# CONFIG_INTEL_MENLOW is not set
765# CONFIG_ENCLOSURE_SERVICES is not set 790# CONFIG_ENCLOSURE_SERVICES is not set
766# CONFIG_HP_ILO is not set 791# CONFIG_HP_ILO is not set
792# CONFIG_C2PORT is not set
793
794#
795# EEPROM support
796#
797# CONFIG_EEPROM_AT24 is not set
798# CONFIG_EEPROM_LEGACY is not set
799# CONFIG_EEPROM_93CX6 is not set
767CONFIG_HAVE_IDE=y 800CONFIG_HAVE_IDE=y
768# CONFIG_IDE is not set 801# CONFIG_IDE is not set
769 802
@@ -802,7 +835,7 @@ CONFIG_SCSI_WAIT_SCAN=m
802# 835#
803CONFIG_SCSI_SPI_ATTRS=y 836CONFIG_SCSI_SPI_ATTRS=y
804# CONFIG_SCSI_FC_ATTRS is not set 837# CONFIG_SCSI_FC_ATTRS is not set
805CONFIG_SCSI_ISCSI_ATTRS=y 838# CONFIG_SCSI_ISCSI_ATTRS is not set
806# CONFIG_SCSI_SAS_ATTRS is not set 839# CONFIG_SCSI_SAS_ATTRS is not set
807# CONFIG_SCSI_SAS_LIBSAS is not set 840# CONFIG_SCSI_SAS_LIBSAS is not set
808# CONFIG_SCSI_SRP_ATTRS is not set 841# CONFIG_SCSI_SRP_ATTRS is not set
@@ -875,6 +908,7 @@ CONFIG_PATA_OLDPIIX=y
875CONFIG_PATA_SCH=y 908CONFIG_PATA_SCH=y
876CONFIG_MD=y 909CONFIG_MD=y
877CONFIG_BLK_DEV_MD=y 910CONFIG_BLK_DEV_MD=y
911CONFIG_MD_AUTODETECT=y
878# CONFIG_MD_LINEAR is not set 912# CONFIG_MD_LINEAR is not set
879# CONFIG_MD_RAID0 is not set 913# CONFIG_MD_RAID0 is not set
880# CONFIG_MD_RAID1 is not set 914# CONFIG_MD_RAID1 is not set
@@ -930,6 +964,9 @@ CONFIG_PHYLIB=y
930# CONFIG_BROADCOM_PHY is not set 964# CONFIG_BROADCOM_PHY is not set
931# CONFIG_ICPLUS_PHY is not set 965# CONFIG_ICPLUS_PHY is not set
932# CONFIG_REALTEK_PHY is not set 966# CONFIG_REALTEK_PHY is not set
967# CONFIG_NATIONAL_PHY is not set
968# CONFIG_STE10XP is not set
969# CONFIG_LSI_ET1011C_PHY is not set
933# CONFIG_FIXED_PHY is not set 970# CONFIG_FIXED_PHY is not set
934# CONFIG_MDIO_BITBANG is not set 971# CONFIG_MDIO_BITBANG is not set
935CONFIG_NET_ETHERNET=y 972CONFIG_NET_ETHERNET=y
@@ -953,6 +990,9 @@ CONFIG_NET_TULIP=y
953# CONFIG_IBM_NEW_EMAC_RGMII is not set 990# CONFIG_IBM_NEW_EMAC_RGMII is not set
954# CONFIG_IBM_NEW_EMAC_TAH is not set 991# CONFIG_IBM_NEW_EMAC_TAH is not set
955# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 992# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
993# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
994# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
995# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
956CONFIG_NET_PCI=y 996CONFIG_NET_PCI=y
957# CONFIG_PCNET32 is not set 997# CONFIG_PCNET32 is not set
958# CONFIG_AMD8111_ETH is not set 998# CONFIG_AMD8111_ETH is not set
@@ -960,7 +1000,6 @@ CONFIG_NET_PCI=y
960# CONFIG_B44 is not set 1000# CONFIG_B44 is not set
961CONFIG_FORCEDETH=y 1001CONFIG_FORCEDETH=y
962# CONFIG_FORCEDETH_NAPI is not set 1002# CONFIG_FORCEDETH_NAPI is not set
963# CONFIG_EEPRO100 is not set
964CONFIG_E100=y 1003CONFIG_E100=y
965# CONFIG_FEALNX is not set 1004# CONFIG_FEALNX is not set
966# CONFIG_NATSEMI is not set 1005# CONFIG_NATSEMI is not set
@@ -974,15 +1013,16 @@ CONFIG_8139TOO=y
974# CONFIG_R6040 is not set 1013# CONFIG_R6040 is not set
975# CONFIG_SIS900 is not set 1014# CONFIG_SIS900 is not set
976# CONFIG_EPIC100 is not set 1015# CONFIG_EPIC100 is not set
1016# CONFIG_SMSC9420 is not set
977# CONFIG_SUNDANCE is not set 1017# CONFIG_SUNDANCE is not set
978# CONFIG_TLAN is not set 1018# CONFIG_TLAN is not set
979# CONFIG_VIA_RHINE is not set 1019# CONFIG_VIA_RHINE is not set
980# CONFIG_SC92031 is not set 1020# CONFIG_SC92031 is not set
1021# CONFIG_ATL2 is not set
981CONFIG_NETDEV_1000=y 1022CONFIG_NETDEV_1000=y
982# CONFIG_ACENIC is not set 1023# CONFIG_ACENIC is not set
983# CONFIG_DL2K is not set 1024# CONFIG_DL2K is not set
984CONFIG_E1000=y 1025CONFIG_E1000=y
985# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
986CONFIG_E1000E=y 1026CONFIG_E1000E=y
987# CONFIG_IP1000 is not set 1027# CONFIG_IP1000 is not set
988# CONFIG_IGB is not set 1028# CONFIG_IGB is not set
@@ -1000,18 +1040,23 @@ CONFIG_BNX2=y
1000# CONFIG_QLA3XXX is not set 1040# CONFIG_QLA3XXX is not set
1001# CONFIG_ATL1 is not set 1041# CONFIG_ATL1 is not set
1002# CONFIG_ATL1E is not set 1042# CONFIG_ATL1E is not set
1043# CONFIG_JME is not set
1003CONFIG_NETDEV_10000=y 1044CONFIG_NETDEV_10000=y
1004# CONFIG_CHELSIO_T1 is not set 1045# CONFIG_CHELSIO_T1 is not set
1046CONFIG_CHELSIO_T3_DEPENDS=y
1005# CONFIG_CHELSIO_T3 is not set 1047# CONFIG_CHELSIO_T3 is not set
1048# CONFIG_ENIC is not set
1006# CONFIG_IXGBE is not set 1049# CONFIG_IXGBE is not set
1007# CONFIG_IXGB is not set 1050# CONFIG_IXGB is not set
1008# CONFIG_S2IO is not set 1051# CONFIG_S2IO is not set
1009# CONFIG_MYRI10GE is not set 1052# CONFIG_MYRI10GE is not set
1010# CONFIG_NETXEN_NIC is not set 1053# CONFIG_NETXEN_NIC is not set
1011# CONFIG_NIU is not set 1054# CONFIG_NIU is not set
1055# CONFIG_MLX4_EN is not set
1012# CONFIG_MLX4_CORE is not set 1056# CONFIG_MLX4_CORE is not set
1013# CONFIG_TEHUTI is not set 1057# CONFIG_TEHUTI is not set
1014# CONFIG_BNX2X is not set 1058# CONFIG_BNX2X is not set
1059# CONFIG_QLGE is not set
1015# CONFIG_SFC is not set 1060# CONFIG_SFC is not set
1016CONFIG_TR=y 1061CONFIG_TR=y
1017# CONFIG_IBMOL is not set 1062# CONFIG_IBMOL is not set
@@ -1025,9 +1070,8 @@ CONFIG_TR=y
1025# CONFIG_WLAN_PRE80211 is not set 1070# CONFIG_WLAN_PRE80211 is not set
1026CONFIG_WLAN_80211=y 1071CONFIG_WLAN_80211=y
1027# CONFIG_PCMCIA_RAYCS is not set 1072# CONFIG_PCMCIA_RAYCS is not set
1028# CONFIG_IPW2100 is not set
1029# CONFIG_IPW2200 is not set
1030# CONFIG_LIBERTAS is not set 1073# CONFIG_LIBERTAS is not set
1074# CONFIG_LIBERTAS_THINFIRM is not set
1031# CONFIG_AIRO is not set 1075# CONFIG_AIRO is not set
1032# CONFIG_HERMES is not set 1076# CONFIG_HERMES is not set
1033# CONFIG_ATMEL is not set 1077# CONFIG_ATMEL is not set
@@ -1044,6 +1088,8 @@ CONFIG_WLAN_80211=y
1044CONFIG_ATH5K=y 1088CONFIG_ATH5K=y
1045# CONFIG_ATH5K_DEBUG is not set 1089# CONFIG_ATH5K_DEBUG is not set
1046# CONFIG_ATH9K is not set 1090# CONFIG_ATH9K is not set
1091# CONFIG_IPW2100 is not set
1092# CONFIG_IPW2200 is not set
1047# CONFIG_IWLCORE is not set 1093# CONFIG_IWLCORE is not set
1048# CONFIG_IWLWIFI_LEDS is not set 1094# CONFIG_IWLWIFI_LEDS is not set
1049# CONFIG_IWLAGN is not set 1095# CONFIG_IWLAGN is not set
@@ -1055,6 +1101,10 @@ CONFIG_ATH5K=y
1055# CONFIG_RT2X00 is not set 1101# CONFIG_RT2X00 is not set
1056 1102
1057# 1103#
1104# Enable WiMAX (Networking options) to see the WiMAX drivers
1105#
1106
1107#
1058# USB Network Adapters 1108# USB Network Adapters
1059# 1109#
1060# CONFIG_USB_CATC is not set 1110# CONFIG_USB_CATC is not set
@@ -1062,6 +1112,7 @@ CONFIG_ATH5K=y
1062# CONFIG_USB_PEGASUS is not set 1112# CONFIG_USB_PEGASUS is not set
1063# CONFIG_USB_RTL8150 is not set 1113# CONFIG_USB_RTL8150 is not set
1064# CONFIG_USB_USBNET is not set 1114# CONFIG_USB_USBNET is not set
1115# CONFIG_USB_HSO is not set
1065CONFIG_NET_PCMCIA=y 1116CONFIG_NET_PCMCIA=y
1066# CONFIG_PCMCIA_3C589 is not set 1117# CONFIG_PCMCIA_3C589 is not set
1067# CONFIG_PCMCIA_3C574 is not set 1118# CONFIG_PCMCIA_3C574 is not set
@@ -1123,6 +1174,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
1123CONFIG_MOUSE_PS2_SYNAPTICS=y 1174CONFIG_MOUSE_PS2_SYNAPTICS=y
1124CONFIG_MOUSE_PS2_LIFEBOOK=y 1175CONFIG_MOUSE_PS2_LIFEBOOK=y
1125CONFIG_MOUSE_PS2_TRACKPOINT=y 1176CONFIG_MOUSE_PS2_TRACKPOINT=y
1177# CONFIG_MOUSE_PS2_ELANTECH is not set
1126# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1178# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1127# CONFIG_MOUSE_SERIAL is not set 1179# CONFIG_MOUSE_SERIAL is not set
1128# CONFIG_MOUSE_APPLETOUCH is not set 1180# CONFIG_MOUSE_APPLETOUCH is not set
@@ -1160,15 +1212,16 @@ CONFIG_INPUT_TOUCHSCREEN=y
1160# CONFIG_TOUCHSCREEN_FUJITSU is not set 1212# CONFIG_TOUCHSCREEN_FUJITSU is not set
1161# CONFIG_TOUCHSCREEN_GUNZE is not set 1213# CONFIG_TOUCHSCREEN_GUNZE is not set
1162# CONFIG_TOUCHSCREEN_ELO is not set 1214# CONFIG_TOUCHSCREEN_ELO is not set
1215# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
1163# CONFIG_TOUCHSCREEN_MTOUCH is not set 1216# CONFIG_TOUCHSCREEN_MTOUCH is not set
1164# CONFIG_TOUCHSCREEN_INEXIO is not set 1217# CONFIG_TOUCHSCREEN_INEXIO is not set
1165# CONFIG_TOUCHSCREEN_MK712 is not set 1218# CONFIG_TOUCHSCREEN_MK712 is not set
1166# CONFIG_TOUCHSCREEN_PENMOUNT is not set 1219# CONFIG_TOUCHSCREEN_PENMOUNT is not set
1167# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 1220# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
1168# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 1221# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
1169# CONFIG_TOUCHSCREEN_UCB1400 is not set
1170# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 1222# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
1171# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set 1223# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
1224# CONFIG_TOUCHSCREEN_TSC2007 is not set
1172CONFIG_INPUT_MISC=y 1225CONFIG_INPUT_MISC=y
1173# CONFIG_INPUT_PCSPKR is not set 1226# CONFIG_INPUT_PCSPKR is not set
1174# CONFIG_INPUT_APANEL is not set 1227# CONFIG_INPUT_APANEL is not set
@@ -1179,6 +1232,7 @@ CONFIG_INPUT_MISC=y
1179# CONFIG_INPUT_KEYSPAN_REMOTE is not set 1232# CONFIG_INPUT_KEYSPAN_REMOTE is not set
1180# CONFIG_INPUT_POWERMATE is not set 1233# CONFIG_INPUT_POWERMATE is not set
1181# CONFIG_INPUT_YEALINK is not set 1234# CONFIG_INPUT_YEALINK is not set
1235# CONFIG_INPUT_CM109 is not set
1182# CONFIG_INPUT_UINPUT is not set 1236# CONFIG_INPUT_UINPUT is not set
1183 1237
1184# 1238#
@@ -1245,6 +1299,7 @@ CONFIG_SERIAL_CORE=y
1245CONFIG_SERIAL_CORE_CONSOLE=y 1299CONFIG_SERIAL_CORE_CONSOLE=y
1246# CONFIG_SERIAL_JSM is not set 1300# CONFIG_SERIAL_JSM is not set
1247CONFIG_UNIX98_PTYS=y 1301CONFIG_UNIX98_PTYS=y
1302# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1248# CONFIG_LEGACY_PTYS is not set 1303# CONFIG_LEGACY_PTYS is not set
1249# CONFIG_IPMI_HANDLER is not set 1304# CONFIG_IPMI_HANDLER is not set
1250CONFIG_HW_RANDOM=y 1305CONFIG_HW_RANDOM=y
@@ -1279,6 +1334,7 @@ CONFIG_I2C=y
1279CONFIG_I2C_BOARDINFO=y 1334CONFIG_I2C_BOARDINFO=y
1280# CONFIG_I2C_CHARDEV is not set 1335# CONFIG_I2C_CHARDEV is not set
1281CONFIG_I2C_HELPER_AUTO=y 1336CONFIG_I2C_HELPER_AUTO=y
1337CONFIG_I2C_ALGOBIT=y
1282 1338
1283# 1339#
1284# I2C Hardware Bus support 1340# I2C Hardware Bus support
@@ -1331,8 +1387,6 @@ CONFIG_I2C_I801=y
1331# Miscellaneous I2C Chip support 1387# Miscellaneous I2C Chip support
1332# 1388#
1333# CONFIG_DS1682 is not set 1389# CONFIG_DS1682 is not set
1334# CONFIG_AT24 is not set
1335# CONFIG_SENSORS_EEPROM is not set
1336# CONFIG_SENSORS_PCF8574 is not set 1390# CONFIG_SENSORS_PCF8574 is not set
1337# CONFIG_PCF8575 is not set 1391# CONFIG_PCF8575 is not set
1338# CONFIG_SENSORS_PCA9539 is not set 1392# CONFIG_SENSORS_PCA9539 is not set
@@ -1351,8 +1405,78 @@ CONFIG_POWER_SUPPLY=y
1351# CONFIG_POWER_SUPPLY_DEBUG is not set 1405# CONFIG_POWER_SUPPLY_DEBUG is not set
1352# CONFIG_PDA_POWER is not set 1406# CONFIG_PDA_POWER is not set
1353# CONFIG_BATTERY_DS2760 is not set 1407# CONFIG_BATTERY_DS2760 is not set
1354# CONFIG_HWMON is not set 1408# CONFIG_BATTERY_BQ27x00 is not set
1409CONFIG_HWMON=y
1410# CONFIG_HWMON_VID is not set
1411# CONFIG_SENSORS_ABITUGURU is not set
1412# CONFIG_SENSORS_ABITUGURU3 is not set
1413# CONFIG_SENSORS_AD7414 is not set
1414# CONFIG_SENSORS_AD7418 is not set
1415# CONFIG_SENSORS_ADM1021 is not set
1416# CONFIG_SENSORS_ADM1025 is not set
1417# CONFIG_SENSORS_ADM1026 is not set
1418# CONFIG_SENSORS_ADM1029 is not set
1419# CONFIG_SENSORS_ADM1031 is not set
1420# CONFIG_SENSORS_ADM9240 is not set
1421# CONFIG_SENSORS_ADT7462 is not set
1422# CONFIG_SENSORS_ADT7470 is not set
1423# CONFIG_SENSORS_ADT7473 is not set
1424# CONFIG_SENSORS_ADT7475 is not set
1425# CONFIG_SENSORS_K8TEMP is not set
1426# CONFIG_SENSORS_ASB100 is not set
1427# CONFIG_SENSORS_ATXP1 is not set
1428# CONFIG_SENSORS_DS1621 is not set
1429# CONFIG_SENSORS_I5K_AMB is not set
1430# CONFIG_SENSORS_F71805F is not set
1431# CONFIG_SENSORS_F71882FG is not set
1432# CONFIG_SENSORS_F75375S is not set
1433# CONFIG_SENSORS_FSCHER is not set
1434# CONFIG_SENSORS_FSCPOS is not set
1435# CONFIG_SENSORS_FSCHMD is not set
1436# CONFIG_SENSORS_GL518SM is not set
1437# CONFIG_SENSORS_GL520SM is not set
1438# CONFIG_SENSORS_CORETEMP is not set
1439# CONFIG_SENSORS_IT87 is not set
1440# CONFIG_SENSORS_LM63 is not set
1441# CONFIG_SENSORS_LM75 is not set
1442# CONFIG_SENSORS_LM77 is not set
1443# CONFIG_SENSORS_LM78 is not set
1444# CONFIG_SENSORS_LM80 is not set
1445# CONFIG_SENSORS_LM83 is not set
1446# CONFIG_SENSORS_LM85 is not set
1447# CONFIG_SENSORS_LM87 is not set
1448# CONFIG_SENSORS_LM90 is not set
1449# CONFIG_SENSORS_LM92 is not set
1450# CONFIG_SENSORS_LM93 is not set
1451# CONFIG_SENSORS_LTC4245 is not set
1452# CONFIG_SENSORS_MAX1619 is not set
1453# CONFIG_SENSORS_MAX6650 is not set
1454# CONFIG_SENSORS_PC87360 is not set
1455# CONFIG_SENSORS_PC87427 is not set
1456# CONFIG_SENSORS_SIS5595 is not set
1457# CONFIG_SENSORS_DME1737 is not set
1458# CONFIG_SENSORS_SMSC47M1 is not set
1459# CONFIG_SENSORS_SMSC47M192 is not set
1460# CONFIG_SENSORS_SMSC47B397 is not set
1461# CONFIG_SENSORS_ADS7828 is not set
1462# CONFIG_SENSORS_THMC50 is not set
1463# CONFIG_SENSORS_VIA686A is not set
1464# CONFIG_SENSORS_VT1211 is not set
1465# CONFIG_SENSORS_VT8231 is not set
1466# CONFIG_SENSORS_W83781D is not set
1467# CONFIG_SENSORS_W83791D is not set
1468# CONFIG_SENSORS_W83792D is not set
1469# CONFIG_SENSORS_W83793 is not set
1470# CONFIG_SENSORS_W83L785TS is not set
1471# CONFIG_SENSORS_W83L786NG is not set
1472# CONFIG_SENSORS_W83627HF is not set
1473# CONFIG_SENSORS_W83627EHF is not set
1474# CONFIG_SENSORS_HDAPS is not set
1475# CONFIG_SENSORS_LIS3LV02D is not set
1476# CONFIG_SENSORS_APPLESMC is not set
1477# CONFIG_HWMON_DEBUG_CHIP is not set
1355CONFIG_THERMAL=y 1478CONFIG_THERMAL=y
1479# CONFIG_THERMAL_HWMON is not set
1356CONFIG_WATCHDOG=y 1480CONFIG_WATCHDOG=y
1357# CONFIG_WATCHDOG_NOWAYOUT is not set 1481# CONFIG_WATCHDOG_NOWAYOUT is not set
1358 1482
@@ -1372,6 +1496,7 @@ CONFIG_WATCHDOG=y
1372# CONFIG_I6300ESB_WDT is not set 1496# CONFIG_I6300ESB_WDT is not set
1373# CONFIG_ITCO_WDT is not set 1497# CONFIG_ITCO_WDT is not set
1374# CONFIG_IT8712F_WDT is not set 1498# CONFIG_IT8712F_WDT is not set
1499# CONFIG_IT87_WDT is not set
1375# CONFIG_HP_WATCHDOG is not set 1500# CONFIG_HP_WATCHDOG is not set
1376# CONFIG_SC1200_WDT is not set 1501# CONFIG_SC1200_WDT is not set
1377# CONFIG_PC87413_WDT is not set 1502# CONFIG_PC87413_WDT is not set
@@ -1379,9 +1504,11 @@ CONFIG_WATCHDOG=y
1379# CONFIG_SBC8360_WDT is not set 1504# CONFIG_SBC8360_WDT is not set
1380# CONFIG_SBC7240_WDT is not set 1505# CONFIG_SBC7240_WDT is not set
1381# CONFIG_CPU5_WDT is not set 1506# CONFIG_CPU5_WDT is not set
1507# CONFIG_SMSC_SCH311X_WDT is not set
1382# CONFIG_SMSC37B787_WDT is not set 1508# CONFIG_SMSC37B787_WDT is not set
1383# CONFIG_W83627HF_WDT is not set 1509# CONFIG_W83627HF_WDT is not set
1384# CONFIG_W83697HF_WDT is not set 1510# CONFIG_W83697HF_WDT is not set
1511# CONFIG_W83697UG_WDT is not set
1385# CONFIG_W83877F_WDT is not set 1512# CONFIG_W83877F_WDT is not set
1386# CONFIG_W83977F_WDT is not set 1513# CONFIG_W83977F_WDT is not set
1387# CONFIG_MACHZ_WDT is not set 1514# CONFIG_MACHZ_WDT is not set
@@ -1397,11 +1524,11 @@ CONFIG_WATCHDOG=y
1397# USB-based Watchdog Cards 1524# USB-based Watchdog Cards
1398# 1525#
1399# CONFIG_USBPCWATCHDOG is not set 1526# CONFIG_USBPCWATCHDOG is not set
1527CONFIG_SSB_POSSIBLE=y
1400 1528
1401# 1529#
1402# Sonics Silicon Backplane 1530# Sonics Silicon Backplane
1403# 1531#
1404CONFIG_SSB_POSSIBLE=y
1405# CONFIG_SSB is not set 1532# CONFIG_SSB is not set
1406 1533
1407# 1534#
@@ -1410,7 +1537,13 @@ CONFIG_SSB_POSSIBLE=y
1410# CONFIG_MFD_CORE is not set 1537# CONFIG_MFD_CORE is not set
1411# CONFIG_MFD_SM501 is not set 1538# CONFIG_MFD_SM501 is not set
1412# CONFIG_HTC_PASIC3 is not set 1539# CONFIG_HTC_PASIC3 is not set
1540# CONFIG_TWL4030_CORE is not set
1413# CONFIG_MFD_TMIO is not set 1541# CONFIG_MFD_TMIO is not set
1542# CONFIG_PMIC_DA903X is not set
1543# CONFIG_MFD_WM8400 is not set
1544# CONFIG_MFD_WM8350_I2C is not set
1545# CONFIG_MFD_PCF50633 is not set
1546# CONFIG_REGULATOR is not set
1414 1547
1415# 1548#
1416# Multimedia devices 1549# Multimedia devices
@@ -1450,6 +1583,7 @@ CONFIG_DRM=y
1450# CONFIG_DRM_I810 is not set 1583# CONFIG_DRM_I810 is not set
1451# CONFIG_DRM_I830 is not set 1584# CONFIG_DRM_I830 is not set
1452CONFIG_DRM_I915=y 1585CONFIG_DRM_I915=y
1586# CONFIG_DRM_I915_KMS is not set
1453# CONFIG_DRM_MGA is not set 1587# CONFIG_DRM_MGA is not set
1454# CONFIG_DRM_SIS is not set 1588# CONFIG_DRM_SIS is not set
1455# CONFIG_DRM_VIA is not set 1589# CONFIG_DRM_VIA is not set
@@ -1459,6 +1593,7 @@ CONFIG_DRM_I915=y
1459CONFIG_FB=y 1593CONFIG_FB=y
1460# CONFIG_FIRMWARE_EDID is not set 1594# CONFIG_FIRMWARE_EDID is not set
1461# CONFIG_FB_DDC is not set 1595# CONFIG_FB_DDC is not set
1596# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1462CONFIG_FB_CFB_FILLRECT=y 1597CONFIG_FB_CFB_FILLRECT=y
1463CONFIG_FB_CFB_COPYAREA=y 1598CONFIG_FB_CFB_COPYAREA=y
1464CONFIG_FB_CFB_IMAGEBLIT=y 1599CONFIG_FB_CFB_IMAGEBLIT=y
@@ -1487,7 +1622,6 @@ CONFIG_FB_TILEBLITTING=y
1487# CONFIG_FB_UVESA is not set 1622# CONFIG_FB_UVESA is not set
1488# CONFIG_FB_VESA is not set 1623# CONFIG_FB_VESA is not set
1489CONFIG_FB_EFI=y 1624CONFIG_FB_EFI=y
1490# CONFIG_FB_IMAC is not set
1491# CONFIG_FB_N411 is not set 1625# CONFIG_FB_N411 is not set
1492# CONFIG_FB_HGA is not set 1626# CONFIG_FB_HGA is not set
1493# CONFIG_FB_S1D13XXX is not set 1627# CONFIG_FB_S1D13XXX is not set
@@ -1503,6 +1637,7 @@ CONFIG_FB_EFI=y
1503# CONFIG_FB_S3 is not set 1637# CONFIG_FB_S3 is not set
1504# CONFIG_FB_SAVAGE is not set 1638# CONFIG_FB_SAVAGE is not set
1505# CONFIG_FB_SIS is not set 1639# CONFIG_FB_SIS is not set
1640# CONFIG_FB_VIA is not set
1506# CONFIG_FB_NEOMAGIC is not set 1641# CONFIG_FB_NEOMAGIC is not set
1507# CONFIG_FB_KYRO is not set 1642# CONFIG_FB_KYRO is not set
1508# CONFIG_FB_3DFX is not set 1643# CONFIG_FB_3DFX is not set
@@ -1515,12 +1650,15 @@ CONFIG_FB_EFI=y
1515# CONFIG_FB_CARMINE is not set 1650# CONFIG_FB_CARMINE is not set
1516# CONFIG_FB_GEODE is not set 1651# CONFIG_FB_GEODE is not set
1517# CONFIG_FB_VIRTUAL is not set 1652# CONFIG_FB_VIRTUAL is not set
1653# CONFIG_FB_METRONOME is not set
1654# CONFIG_FB_MB862XX is not set
1518CONFIG_BACKLIGHT_LCD_SUPPORT=y 1655CONFIG_BACKLIGHT_LCD_SUPPORT=y
1519# CONFIG_LCD_CLASS_DEVICE is not set 1656# CONFIG_LCD_CLASS_DEVICE is not set
1520CONFIG_BACKLIGHT_CLASS_DEVICE=y 1657CONFIG_BACKLIGHT_CLASS_DEVICE=y
1521# CONFIG_BACKLIGHT_CORGI is not set 1658CONFIG_BACKLIGHT_GENERIC=y
1522# CONFIG_BACKLIGHT_PROGEAR is not set 1659# CONFIG_BACKLIGHT_PROGEAR is not set
1523# CONFIG_BACKLIGHT_MBP_NVIDIA is not set 1660# CONFIG_BACKLIGHT_MBP_NVIDIA is not set
1661# CONFIG_BACKLIGHT_SAHARA is not set
1524 1662
1525# 1663#
1526# Display device support 1664# Display device support
@@ -1540,10 +1678,12 @@ CONFIG_LOGO=y
1540# CONFIG_LOGO_LINUX_VGA16 is not set 1678# CONFIG_LOGO_LINUX_VGA16 is not set
1541CONFIG_LOGO_LINUX_CLUT224=y 1679CONFIG_LOGO_LINUX_CLUT224=y
1542CONFIG_SOUND=y 1680CONFIG_SOUND=y
1681CONFIG_SOUND_OSS_CORE=y
1543CONFIG_SND=y 1682CONFIG_SND=y
1544CONFIG_SND_TIMER=y 1683CONFIG_SND_TIMER=y
1545CONFIG_SND_PCM=y 1684CONFIG_SND_PCM=y
1546CONFIG_SND_HWDEP=y 1685CONFIG_SND_HWDEP=y
1686CONFIG_SND_JACK=y
1547CONFIG_SND_SEQUENCER=y 1687CONFIG_SND_SEQUENCER=y
1548CONFIG_SND_SEQ_DUMMY=y 1688CONFIG_SND_SEQ_DUMMY=y
1549CONFIG_SND_OSSEMUL=y 1689CONFIG_SND_OSSEMUL=y
@@ -1551,6 +1691,8 @@ CONFIG_SND_MIXER_OSS=y
1551CONFIG_SND_PCM_OSS=y 1691CONFIG_SND_PCM_OSS=y
1552CONFIG_SND_PCM_OSS_PLUGINS=y 1692CONFIG_SND_PCM_OSS_PLUGINS=y
1553CONFIG_SND_SEQUENCER_OSS=y 1693CONFIG_SND_SEQUENCER_OSS=y
1694CONFIG_SND_HRTIMER=y
1695CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
1554CONFIG_SND_DYNAMIC_MINORS=y 1696CONFIG_SND_DYNAMIC_MINORS=y
1555CONFIG_SND_SUPPORT_OLD_API=y 1697CONFIG_SND_SUPPORT_OLD_API=y
1556CONFIG_SND_VERBOSE_PROCFS=y 1698CONFIG_SND_VERBOSE_PROCFS=y
@@ -1605,11 +1747,16 @@ CONFIG_SND_PCI=y
1605# CONFIG_SND_FM801 is not set 1747# CONFIG_SND_FM801 is not set
1606CONFIG_SND_HDA_INTEL=y 1748CONFIG_SND_HDA_INTEL=y
1607CONFIG_SND_HDA_HWDEP=y 1749CONFIG_SND_HDA_HWDEP=y
1750# CONFIG_SND_HDA_RECONFIG is not set
1751# CONFIG_SND_HDA_INPUT_BEEP is not set
1608CONFIG_SND_HDA_CODEC_REALTEK=y 1752CONFIG_SND_HDA_CODEC_REALTEK=y
1609CONFIG_SND_HDA_CODEC_ANALOG=y 1753CONFIG_SND_HDA_CODEC_ANALOG=y
1610CONFIG_SND_HDA_CODEC_SIGMATEL=y 1754CONFIG_SND_HDA_CODEC_SIGMATEL=y
1611CONFIG_SND_HDA_CODEC_VIA=y 1755CONFIG_SND_HDA_CODEC_VIA=y
1612CONFIG_SND_HDA_CODEC_ATIHDMI=y 1756CONFIG_SND_HDA_CODEC_ATIHDMI=y
1757CONFIG_SND_HDA_CODEC_NVHDMI=y
1758CONFIG_SND_HDA_CODEC_INTELHDMI=y
1759CONFIG_SND_HDA_ELD=y
1613CONFIG_SND_HDA_CODEC_CONEXANT=y 1760CONFIG_SND_HDA_CODEC_CONEXANT=y
1614CONFIG_SND_HDA_CODEC_CMEDIA=y 1761CONFIG_SND_HDA_CODEC_CMEDIA=y
1615CONFIG_SND_HDA_CODEC_SI3054=y 1762CONFIG_SND_HDA_CODEC_SI3054=y
@@ -1643,6 +1790,7 @@ CONFIG_SND_USB=y
1643# CONFIG_SND_USB_AUDIO is not set 1790# CONFIG_SND_USB_AUDIO is not set
1644# CONFIG_SND_USB_USX2Y is not set 1791# CONFIG_SND_USB_USX2Y is not set
1645# CONFIG_SND_USB_CAIAQ is not set 1792# CONFIG_SND_USB_CAIAQ is not set
1793# CONFIG_SND_USB_US122L is not set
1646CONFIG_SND_PCMCIA=y 1794CONFIG_SND_PCMCIA=y
1647# CONFIG_SND_VXPOCKET is not set 1795# CONFIG_SND_VXPOCKET is not set
1648# CONFIG_SND_PDAUDIOCF is not set 1796# CONFIG_SND_PDAUDIOCF is not set
@@ -1657,15 +1805,37 @@ CONFIG_HIDRAW=y
1657# USB Input Devices 1805# USB Input Devices
1658# 1806#
1659CONFIG_USB_HID=y 1807CONFIG_USB_HID=y
1660CONFIG_USB_HIDINPUT_POWERBOOK=y
1661CONFIG_HID_FF=y
1662CONFIG_HID_PID=y 1808CONFIG_HID_PID=y
1809CONFIG_USB_HIDDEV=y
1810
1811#
1812# Special HID drivers
1813#
1814CONFIG_HID_COMPAT=y
1815CONFIG_HID_A4TECH=y
1816CONFIG_HID_APPLE=y
1817CONFIG_HID_BELKIN=y
1818CONFIG_HID_CHERRY=y
1819CONFIG_HID_CHICONY=y
1820CONFIG_HID_CYPRESS=y
1821CONFIG_HID_EZKEY=y
1822CONFIG_HID_GYRATION=y
1823CONFIG_HID_LOGITECH=y
1663CONFIG_LOGITECH_FF=y 1824CONFIG_LOGITECH_FF=y
1664# CONFIG_LOGIRUMBLEPAD2_FF is not set 1825# CONFIG_LOGIRUMBLEPAD2_FF is not set
1826CONFIG_HID_MICROSOFT=y
1827CONFIG_HID_MONTEREY=y
1828CONFIG_HID_NTRIG=y
1829CONFIG_HID_PANTHERLORD=y
1665CONFIG_PANTHERLORD_FF=y 1830CONFIG_PANTHERLORD_FF=y
1831CONFIG_HID_PETALYNX=y
1832CONFIG_HID_SAMSUNG=y
1833CONFIG_HID_SONY=y
1834CONFIG_HID_SUNPLUS=y
1835# CONFIG_GREENASIA_FF is not set
1836CONFIG_HID_TOPSEED=y
1666CONFIG_THRUSTMASTER_FF=y 1837CONFIG_THRUSTMASTER_FF=y
1667CONFIG_ZEROPLUS_FF=y 1838CONFIG_ZEROPLUS_FF=y
1668CONFIG_USB_HIDDEV=y
1669CONFIG_USB_SUPPORT=y 1839CONFIG_USB_SUPPORT=y
1670CONFIG_USB_ARCH_HAS_HCD=y 1840CONFIG_USB_ARCH_HAS_HCD=y
1671CONFIG_USB_ARCH_HAS_OHCI=y 1841CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1683,6 +1853,8 @@ CONFIG_USB_DEVICEFS=y
1683CONFIG_USB_SUSPEND=y 1853CONFIG_USB_SUSPEND=y
1684# CONFIG_USB_OTG is not set 1854# CONFIG_USB_OTG is not set
1685CONFIG_USB_MON=y 1855CONFIG_USB_MON=y
1856# CONFIG_USB_WUSB is not set
1857# CONFIG_USB_WUSB_CBAF is not set
1686 1858
1687# 1859#
1688# USB Host Controller Drivers 1860# USB Host Controller Drivers
@@ -1691,6 +1863,7 @@ CONFIG_USB_MON=y
1691CONFIG_USB_EHCI_HCD=y 1863CONFIG_USB_EHCI_HCD=y
1692# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1864# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1693# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1865# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1866# CONFIG_USB_OXU210HP_HCD is not set
1694# CONFIG_USB_ISP116X_HCD is not set 1867# CONFIG_USB_ISP116X_HCD is not set
1695# CONFIG_USB_ISP1760_HCD is not set 1868# CONFIG_USB_ISP1760_HCD is not set
1696CONFIG_USB_OHCI_HCD=y 1869CONFIG_USB_OHCI_HCD=y
@@ -1700,6 +1873,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1700CONFIG_USB_UHCI_HCD=y 1873CONFIG_USB_UHCI_HCD=y
1701# CONFIG_USB_SL811_HCD is not set 1874# CONFIG_USB_SL811_HCD is not set
1702# CONFIG_USB_R8A66597_HCD is not set 1875# CONFIG_USB_R8A66597_HCD is not set
1876# CONFIG_USB_WHCI_HCD is not set
1877# CONFIG_USB_HWA_HCD is not set
1703 1878
1704# 1879#
1705# USB Device Class drivers 1880# USB Device Class drivers
@@ -1707,20 +1882,20 @@ CONFIG_USB_UHCI_HCD=y
1707# CONFIG_USB_ACM is not set 1882# CONFIG_USB_ACM is not set
1708CONFIG_USB_PRINTER=y 1883CONFIG_USB_PRINTER=y
1709# CONFIG_USB_WDM is not set 1884# CONFIG_USB_WDM is not set
1885# CONFIG_USB_TMC is not set
1710 1886
1711# 1887#
1712# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1888# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1713# 1889#
1714 1890
1715# 1891#
1716# may also be needed; see USB_STORAGE Help for more information 1892# see USB_STORAGE Help for more information
1717# 1893#
1718CONFIG_USB_STORAGE=y 1894CONFIG_USB_STORAGE=y
1719# CONFIG_USB_STORAGE_DEBUG is not set 1895# CONFIG_USB_STORAGE_DEBUG is not set
1720# CONFIG_USB_STORAGE_DATAFAB is not set 1896# CONFIG_USB_STORAGE_DATAFAB is not set
1721# CONFIG_USB_STORAGE_FREECOM is not set 1897# CONFIG_USB_STORAGE_FREECOM is not set
1722# CONFIG_USB_STORAGE_ISD200 is not set 1898# CONFIG_USB_STORAGE_ISD200 is not set
1723# CONFIG_USB_STORAGE_DPCM is not set
1724# CONFIG_USB_STORAGE_USBAT is not set 1899# CONFIG_USB_STORAGE_USBAT is not set
1725# CONFIG_USB_STORAGE_SDDR09 is not set 1900# CONFIG_USB_STORAGE_SDDR09 is not set
1726# CONFIG_USB_STORAGE_SDDR55 is not set 1901# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1728,7 +1903,6 @@ CONFIG_USB_STORAGE=y
1728# CONFIG_USB_STORAGE_ALAUDA is not set 1903# CONFIG_USB_STORAGE_ALAUDA is not set
1729# CONFIG_USB_STORAGE_ONETOUCH is not set 1904# CONFIG_USB_STORAGE_ONETOUCH is not set
1730# CONFIG_USB_STORAGE_KARMA is not set 1905# CONFIG_USB_STORAGE_KARMA is not set
1731# CONFIG_USB_STORAGE_SIERRA is not set
1732# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1906# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1733CONFIG_USB_LIBUSUAL=y 1907CONFIG_USB_LIBUSUAL=y
1734 1908
@@ -1749,6 +1923,7 @@ CONFIG_USB_LIBUSUAL=y
1749# CONFIG_USB_EMI62 is not set 1923# CONFIG_USB_EMI62 is not set
1750# CONFIG_USB_EMI26 is not set 1924# CONFIG_USB_EMI26 is not set
1751# CONFIG_USB_ADUTUX is not set 1925# CONFIG_USB_ADUTUX is not set
1926# CONFIG_USB_SEVSEG is not set
1752# CONFIG_USB_RIO500 is not set 1927# CONFIG_USB_RIO500 is not set
1753# CONFIG_USB_LEGOTOWER is not set 1928# CONFIG_USB_LEGOTOWER is not set
1754# CONFIG_USB_LCD is not set 1929# CONFIG_USB_LCD is not set
@@ -1766,7 +1941,13 @@ CONFIG_USB_LIBUSUAL=y
1766# CONFIG_USB_IOWARRIOR is not set 1941# CONFIG_USB_IOWARRIOR is not set
1767# CONFIG_USB_TEST is not set 1942# CONFIG_USB_TEST is not set
1768# CONFIG_USB_ISIGHTFW is not set 1943# CONFIG_USB_ISIGHTFW is not set
1944# CONFIG_USB_VST is not set
1769# CONFIG_USB_GADGET is not set 1945# CONFIG_USB_GADGET is not set
1946
1947#
1948# OTG and related infrastructure
1949#
1950# CONFIG_UWB is not set
1770# CONFIG_MMC is not set 1951# CONFIG_MMC is not set
1771# CONFIG_MEMSTICK is not set 1952# CONFIG_MEMSTICK is not set
1772CONFIG_NEW_LEDS=y 1953CONFIG_NEW_LEDS=y
@@ -1775,6 +1956,7 @@ CONFIG_LEDS_CLASS=y
1775# 1956#
1776# LED drivers 1957# LED drivers
1777# 1958#
1959# CONFIG_LEDS_ALIX2 is not set
1778# CONFIG_LEDS_PCA9532 is not set 1960# CONFIG_LEDS_PCA9532 is not set
1779# CONFIG_LEDS_CLEVO_MAIL is not set 1961# CONFIG_LEDS_CLEVO_MAIL is not set
1780# CONFIG_LEDS_PCA955X is not set 1962# CONFIG_LEDS_PCA955X is not set
@@ -1785,6 +1967,7 @@ CONFIG_LEDS_CLASS=y
1785CONFIG_LEDS_TRIGGERS=y 1967CONFIG_LEDS_TRIGGERS=y
1786# CONFIG_LEDS_TRIGGER_TIMER is not set 1968# CONFIG_LEDS_TRIGGER_TIMER is not set
1787# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 1969# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1970# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1788# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 1971# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1789# CONFIG_ACCESSIBILITY is not set 1972# CONFIG_ACCESSIBILITY is not set
1790# CONFIG_INFINIBAND is not set 1973# CONFIG_INFINIBAND is not set
@@ -1824,6 +2007,7 @@ CONFIG_RTC_INTF_DEV=y
1824# CONFIG_RTC_DRV_M41T80 is not set 2007# CONFIG_RTC_DRV_M41T80 is not set
1825# CONFIG_RTC_DRV_S35390A is not set 2008# CONFIG_RTC_DRV_S35390A is not set
1826# CONFIG_RTC_DRV_FM3130 is not set 2009# CONFIG_RTC_DRV_FM3130 is not set
2010# CONFIG_RTC_DRV_RX8581 is not set
1827 2011
1828# 2012#
1829# SPI RTC drivers 2013# SPI RTC drivers
@@ -1833,12 +2017,15 @@ CONFIG_RTC_INTF_DEV=y
1833# Platform RTC drivers 2017# Platform RTC drivers
1834# 2018#
1835CONFIG_RTC_DRV_CMOS=y 2019CONFIG_RTC_DRV_CMOS=y
2020# CONFIG_RTC_DRV_DS1286 is not set
1836# CONFIG_RTC_DRV_DS1511 is not set 2021# CONFIG_RTC_DRV_DS1511 is not set
1837# CONFIG_RTC_DRV_DS1553 is not set 2022# CONFIG_RTC_DRV_DS1553 is not set
1838# CONFIG_RTC_DRV_DS1742 is not set 2023# CONFIG_RTC_DRV_DS1742 is not set
1839# CONFIG_RTC_DRV_STK17TA8 is not set 2024# CONFIG_RTC_DRV_STK17TA8 is not set
1840# CONFIG_RTC_DRV_M48T86 is not set 2025# CONFIG_RTC_DRV_M48T86 is not set
2026# CONFIG_RTC_DRV_M48T35 is not set
1841# CONFIG_RTC_DRV_M48T59 is not set 2027# CONFIG_RTC_DRV_M48T59 is not set
2028# CONFIG_RTC_DRV_BQ4802 is not set
1842# CONFIG_RTC_DRV_V3020 is not set 2029# CONFIG_RTC_DRV_V3020 is not set
1843 2030
1844# 2031#
@@ -1851,6 +2038,22 @@ CONFIG_DMADEVICES=y
1851# 2038#
1852# CONFIG_INTEL_IOATDMA is not set 2039# CONFIG_INTEL_IOATDMA is not set
1853# CONFIG_UIO is not set 2040# CONFIG_UIO is not set
2041# CONFIG_STAGING is not set
2042CONFIG_X86_PLATFORM_DEVICES=y
2043# CONFIG_ACER_WMI is not set
2044# CONFIG_ASUS_LAPTOP is not set
2045# CONFIG_FUJITSU_LAPTOP is not set
2046# CONFIG_TC1100_WMI is not set
2047# CONFIG_MSI_LAPTOP is not set
2048# CONFIG_PANASONIC_LAPTOP is not set
2049# CONFIG_COMPAL_LAPTOP is not set
2050# CONFIG_SONY_LAPTOP is not set
2051# CONFIG_THINKPAD_ACPI is not set
2052# CONFIG_INTEL_MENLOW is not set
2053CONFIG_EEEPC_LAPTOP=y
2054# CONFIG_ACPI_WMI is not set
2055# CONFIG_ACPI_ASUS is not set
2056# CONFIG_ACPI_TOSHIBA is not set
1854 2057
1855# 2058#
1856# Firmware Drivers 2059# Firmware Drivers
@@ -1861,8 +2064,7 @@ CONFIG_EFI_VARS=y
1861# CONFIG_DELL_RBU is not set 2064# CONFIG_DELL_RBU is not set
1862# CONFIG_DCDBAS is not set 2065# CONFIG_DCDBAS is not set
1863CONFIG_DMIID=y 2066CONFIG_DMIID=y
1864CONFIG_ISCSI_IBFT_FIND=y 2067# CONFIG_ISCSI_IBFT_FIND is not set
1865CONFIG_ISCSI_IBFT=y
1866 2068
1867# 2069#
1868# File systems 2070# File systems
@@ -1872,21 +2074,24 @@ CONFIG_EXT3_FS=y
1872CONFIG_EXT3_FS_XATTR=y 2074CONFIG_EXT3_FS_XATTR=y
1873CONFIG_EXT3_FS_POSIX_ACL=y 2075CONFIG_EXT3_FS_POSIX_ACL=y
1874CONFIG_EXT3_FS_SECURITY=y 2076CONFIG_EXT3_FS_SECURITY=y
1875# CONFIG_EXT4DEV_FS is not set 2077# CONFIG_EXT4_FS is not set
1876CONFIG_JBD=y 2078CONFIG_JBD=y
1877# CONFIG_JBD_DEBUG is not set 2079# CONFIG_JBD_DEBUG is not set
1878CONFIG_FS_MBCACHE=y 2080CONFIG_FS_MBCACHE=y
1879# CONFIG_REISERFS_FS is not set 2081# CONFIG_REISERFS_FS is not set
1880# CONFIG_JFS_FS is not set 2082# CONFIG_JFS_FS is not set
1881CONFIG_FS_POSIX_ACL=y 2083CONFIG_FS_POSIX_ACL=y
2084CONFIG_FILE_LOCKING=y
1882# CONFIG_XFS_FS is not set 2085# CONFIG_XFS_FS is not set
1883# CONFIG_OCFS2_FS is not set 2086# CONFIG_OCFS2_FS is not set
2087# CONFIG_BTRFS_FS is not set
1884CONFIG_DNOTIFY=y 2088CONFIG_DNOTIFY=y
1885CONFIG_INOTIFY=y 2089CONFIG_INOTIFY=y
1886CONFIG_INOTIFY_USER=y 2090CONFIG_INOTIFY_USER=y
1887CONFIG_QUOTA=y 2091CONFIG_QUOTA=y
1888CONFIG_QUOTA_NETLINK_INTERFACE=y 2092CONFIG_QUOTA_NETLINK_INTERFACE=y
1889# CONFIG_PRINT_QUOTA_WARNING is not set 2093# CONFIG_PRINT_QUOTA_WARNING is not set
2094CONFIG_QUOTA_TREE=y
1890# CONFIG_QFMT_V1 is not set 2095# CONFIG_QFMT_V1 is not set
1891CONFIG_QFMT_V2=y 2096CONFIG_QFMT_V2=y
1892CONFIG_QUOTACTL=y 2097CONFIG_QUOTACTL=y
@@ -1920,16 +2125,14 @@ CONFIG_PROC_FS=y
1920CONFIG_PROC_KCORE=y 2125CONFIG_PROC_KCORE=y
1921CONFIG_PROC_VMCORE=y 2126CONFIG_PROC_VMCORE=y
1922CONFIG_PROC_SYSCTL=y 2127CONFIG_PROC_SYSCTL=y
2128CONFIG_PROC_PAGE_MONITOR=y
1923CONFIG_SYSFS=y 2129CONFIG_SYSFS=y
1924CONFIG_TMPFS=y 2130CONFIG_TMPFS=y
1925CONFIG_TMPFS_POSIX_ACL=y 2131CONFIG_TMPFS_POSIX_ACL=y
1926CONFIG_HUGETLBFS=y 2132CONFIG_HUGETLBFS=y
1927CONFIG_HUGETLB_PAGE=y 2133CONFIG_HUGETLB_PAGE=y
1928# CONFIG_CONFIGFS_FS is not set 2134# CONFIG_CONFIGFS_FS is not set
1929 2135CONFIG_MISC_FILESYSTEMS=y
1930#
1931# Miscellaneous filesystems
1932#
1933# CONFIG_ADFS_FS is not set 2136# CONFIG_ADFS_FS is not set
1934# CONFIG_AFFS_FS is not set 2137# CONFIG_AFFS_FS is not set
1935# CONFIG_ECRYPT_FS is not set 2138# CONFIG_ECRYPT_FS is not set
@@ -1939,6 +2142,7 @@ CONFIG_HUGETLB_PAGE=y
1939# CONFIG_BFS_FS is not set 2142# CONFIG_BFS_FS is not set
1940# CONFIG_EFS_FS is not set 2143# CONFIG_EFS_FS is not set
1941# CONFIG_CRAMFS is not set 2144# CONFIG_CRAMFS is not set
2145# CONFIG_SQUASHFS is not set
1942# CONFIG_VXFS_FS is not set 2146# CONFIG_VXFS_FS is not set
1943# CONFIG_MINIX_FS is not set 2147# CONFIG_MINIX_FS is not set
1944# CONFIG_OMFS_FS is not set 2148# CONFIG_OMFS_FS is not set
@@ -1960,6 +2164,7 @@ CONFIG_NFS_ACL_SUPPORT=y
1960CONFIG_NFS_COMMON=y 2164CONFIG_NFS_COMMON=y
1961CONFIG_SUNRPC=y 2165CONFIG_SUNRPC=y
1962CONFIG_SUNRPC_GSS=y 2166CONFIG_SUNRPC_GSS=y
2167# CONFIG_SUNRPC_REGISTER_V4 is not set
1963CONFIG_RPCSEC_GSS_KRB5=y 2168CONFIG_RPCSEC_GSS_KRB5=y
1964# CONFIG_RPCSEC_GSS_SPKM3 is not set 2169# CONFIG_RPCSEC_GSS_SPKM3 is not set
1965# CONFIG_SMB_FS is not set 2170# CONFIG_SMB_FS is not set
@@ -2036,7 +2241,7 @@ CONFIG_NLS_UTF8=y
2036# 2241#
2037CONFIG_TRACE_IRQFLAGS_SUPPORT=y 2242CONFIG_TRACE_IRQFLAGS_SUPPORT=y
2038CONFIG_PRINTK_TIME=y 2243CONFIG_PRINTK_TIME=y
2039CONFIG_ENABLE_WARN_DEPRECATED=y 2244# CONFIG_ENABLE_WARN_DEPRECATED is not set
2040CONFIG_ENABLE_MUST_CHECK=y 2245CONFIG_ENABLE_MUST_CHECK=y
2041CONFIG_FRAME_WARN=2048 2246CONFIG_FRAME_WARN=2048
2042CONFIG_MAGIC_SYSRQ=y 2247CONFIG_MAGIC_SYSRQ=y
@@ -2066,33 +2271,54 @@ CONFIG_TIMER_STATS=y
2066CONFIG_DEBUG_BUGVERBOSE=y 2271CONFIG_DEBUG_BUGVERBOSE=y
2067# CONFIG_DEBUG_INFO is not set 2272# CONFIG_DEBUG_INFO is not set
2068# CONFIG_DEBUG_VM is not set 2273# CONFIG_DEBUG_VM is not set
2274# CONFIG_DEBUG_VIRTUAL is not set
2069# CONFIG_DEBUG_WRITECOUNT is not set 2275# CONFIG_DEBUG_WRITECOUNT is not set
2070CONFIG_DEBUG_MEMORY_INIT=y 2276CONFIG_DEBUG_MEMORY_INIT=y
2071# CONFIG_DEBUG_LIST is not set 2277# CONFIG_DEBUG_LIST is not set
2072# CONFIG_DEBUG_SG is not set 2278# CONFIG_DEBUG_SG is not set
2279# CONFIG_DEBUG_NOTIFIERS is not set
2280CONFIG_ARCH_WANT_FRAME_POINTERS=y
2073CONFIG_FRAME_POINTER=y 2281CONFIG_FRAME_POINTER=y
2074# CONFIG_BOOT_PRINTK_DELAY is not set 2282# CONFIG_BOOT_PRINTK_DELAY is not set
2075# CONFIG_RCU_TORTURE_TEST is not set 2283# CONFIG_RCU_TORTURE_TEST is not set
2284# CONFIG_RCU_CPU_STALL_DETECTOR is not set
2076# CONFIG_KPROBES_SANITY_TEST is not set 2285# CONFIG_KPROBES_SANITY_TEST is not set
2077# CONFIG_BACKTRACE_SELF_TEST is not set 2286# CONFIG_BACKTRACE_SELF_TEST is not set
2287# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
2078# CONFIG_LKDTM is not set 2288# CONFIG_LKDTM is not set
2079# CONFIG_FAULT_INJECTION is not set 2289# CONFIG_FAULT_INJECTION is not set
2080# CONFIG_LATENCYTOP is not set 2290# CONFIG_LATENCYTOP is not set
2081CONFIG_SYSCTL_SYSCALL_CHECK=y 2291CONFIG_SYSCTL_SYSCALL_CHECK=y
2082CONFIG_HAVE_FTRACE=y 2292CONFIG_USER_STACKTRACE_SUPPORT=y
2293CONFIG_HAVE_FUNCTION_TRACER=y
2294CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
2295CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
2083CONFIG_HAVE_DYNAMIC_FTRACE=y 2296CONFIG_HAVE_DYNAMIC_FTRACE=y
2084# CONFIG_FTRACE is not set 2297CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
2298CONFIG_HAVE_HW_BRANCH_TRACER=y
2299
2300#
2301# Tracers
2302#
2303# CONFIG_FUNCTION_TRACER is not set
2085# CONFIG_IRQSOFF_TRACER is not set 2304# CONFIG_IRQSOFF_TRACER is not set
2086# CONFIG_SYSPROF_TRACER is not set 2305# CONFIG_SYSPROF_TRACER is not set
2087# CONFIG_SCHED_TRACER is not set 2306# CONFIG_SCHED_TRACER is not set
2088# CONFIG_CONTEXT_SWITCH_TRACER is not set 2307# CONFIG_CONTEXT_SWITCH_TRACER is not set
2308# CONFIG_BOOT_TRACER is not set
2309# CONFIG_TRACE_BRANCH_PROFILING is not set
2310# CONFIG_POWER_TRACER is not set
2311# CONFIG_STACK_TRACER is not set
2312# CONFIG_HW_BRANCH_TRACER is not set
2089CONFIG_PROVIDE_OHCI1394_DMA_INIT=y 2313CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
2314# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
2090# CONFIG_SAMPLES is not set 2315# CONFIG_SAMPLES is not set
2091CONFIG_HAVE_ARCH_KGDB=y 2316CONFIG_HAVE_ARCH_KGDB=y
2092# CONFIG_KGDB is not set 2317# CONFIG_KGDB is not set
2093# CONFIG_STRICT_DEVMEM is not set 2318# CONFIG_STRICT_DEVMEM is not set
2094CONFIG_X86_VERBOSE_BOOTUP=y 2319CONFIG_X86_VERBOSE_BOOTUP=y
2095CONFIG_EARLY_PRINTK=y 2320CONFIG_EARLY_PRINTK=y
2321CONFIG_EARLY_PRINTK_DBGP=y
2096CONFIG_DEBUG_STACKOVERFLOW=y 2322CONFIG_DEBUG_STACKOVERFLOW=y
2097CONFIG_DEBUG_STACK_USAGE=y 2323CONFIG_DEBUG_STACK_USAGE=y
2098# CONFIG_DEBUG_PAGEALLOC is not set 2324# CONFIG_DEBUG_PAGEALLOC is not set
@@ -2123,8 +2349,10 @@ CONFIG_OPTIMIZE_INLINING=y
2123CONFIG_KEYS=y 2349CONFIG_KEYS=y
2124CONFIG_KEYS_DEBUG_PROC_KEYS=y 2350CONFIG_KEYS_DEBUG_PROC_KEYS=y
2125CONFIG_SECURITY=y 2351CONFIG_SECURITY=y
2352# CONFIG_SECURITYFS is not set
2126CONFIG_SECURITY_NETWORK=y 2353CONFIG_SECURITY_NETWORK=y
2127# CONFIG_SECURITY_NETWORK_XFRM is not set 2354# CONFIG_SECURITY_NETWORK_XFRM is not set
2355# CONFIG_SECURITY_PATH is not set
2128CONFIG_SECURITY_FILE_CAPABILITIES=y 2356CONFIG_SECURITY_FILE_CAPABILITIES=y
2129# CONFIG_SECURITY_ROOTPLUG is not set 2357# CONFIG_SECURITY_ROOTPLUG is not set
2130CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 2358CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536
@@ -2135,7 +2363,6 @@ CONFIG_SECURITY_SELINUX_DISABLE=y
2135CONFIG_SECURITY_SELINUX_DEVELOP=y 2363CONFIG_SECURITY_SELINUX_DEVELOP=y
2136CONFIG_SECURITY_SELINUX_AVC_STATS=y 2364CONFIG_SECURITY_SELINUX_AVC_STATS=y
2137CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 2365CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
2138# CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set
2139# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set 2366# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
2140# CONFIG_SECURITY_SMACK is not set 2367# CONFIG_SECURITY_SMACK is not set
2141CONFIG_CRYPTO=y 2368CONFIG_CRYPTO=y
@@ -2143,11 +2370,18 @@ CONFIG_CRYPTO=y
2143# 2370#
2144# Crypto core or helper 2371# Crypto core or helper
2145# 2372#
2373# CONFIG_CRYPTO_FIPS is not set
2146CONFIG_CRYPTO_ALGAPI=y 2374CONFIG_CRYPTO_ALGAPI=y
2375CONFIG_CRYPTO_ALGAPI2=y
2147CONFIG_CRYPTO_AEAD=y 2376CONFIG_CRYPTO_AEAD=y
2377CONFIG_CRYPTO_AEAD2=y
2148CONFIG_CRYPTO_BLKCIPHER=y 2378CONFIG_CRYPTO_BLKCIPHER=y
2379CONFIG_CRYPTO_BLKCIPHER2=y
2149CONFIG_CRYPTO_HASH=y 2380CONFIG_CRYPTO_HASH=y
2381CONFIG_CRYPTO_HASH2=y
2382CONFIG_CRYPTO_RNG2=y
2150CONFIG_CRYPTO_MANAGER=y 2383CONFIG_CRYPTO_MANAGER=y
2384CONFIG_CRYPTO_MANAGER2=y
2151# CONFIG_CRYPTO_GF128MUL is not set 2385# CONFIG_CRYPTO_GF128MUL is not set
2152# CONFIG_CRYPTO_NULL is not set 2386# CONFIG_CRYPTO_NULL is not set
2153# CONFIG_CRYPTO_CRYPTD is not set 2387# CONFIG_CRYPTO_CRYPTD is not set
@@ -2182,6 +2416,7 @@ CONFIG_CRYPTO_HMAC=y
2182# Digest 2416# Digest
2183# 2417#
2184# CONFIG_CRYPTO_CRC32C is not set 2418# CONFIG_CRYPTO_CRC32C is not set
2419# CONFIG_CRYPTO_CRC32C_INTEL is not set
2185# CONFIG_CRYPTO_MD4 is not set 2420# CONFIG_CRYPTO_MD4 is not set
2186CONFIG_CRYPTO_MD5=y 2421CONFIG_CRYPTO_MD5=y
2187# CONFIG_CRYPTO_MICHAEL_MIC is not set 2422# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -2222,6 +2457,11 @@ CONFIG_CRYPTO_DES=y
2222# 2457#
2223# CONFIG_CRYPTO_DEFLATE is not set 2458# CONFIG_CRYPTO_DEFLATE is not set
2224# CONFIG_CRYPTO_LZO is not set 2459# CONFIG_CRYPTO_LZO is not set
2460
2461#
2462# Random Number Generation
2463#
2464# CONFIG_CRYPTO_ANSI_CPRNG is not set
2225CONFIG_CRYPTO_HW=y 2465CONFIG_CRYPTO_HW=y
2226# CONFIG_CRYPTO_DEV_PADLOCK is not set 2466# CONFIG_CRYPTO_DEV_PADLOCK is not set
2227# CONFIG_CRYPTO_DEV_GEODE is not set 2467# CONFIG_CRYPTO_DEV_GEODE is not set
@@ -2239,6 +2479,7 @@ CONFIG_VIRTUALIZATION=y
2239CONFIG_BITREVERSE=y 2479CONFIG_BITREVERSE=y
2240CONFIG_GENERIC_FIND_FIRST_BIT=y 2480CONFIG_GENERIC_FIND_FIRST_BIT=y
2241CONFIG_GENERIC_FIND_NEXT_BIT=y 2481CONFIG_GENERIC_FIND_NEXT_BIT=y
2482CONFIG_GENERIC_FIND_LAST_BIT=y
2242# CONFIG_CRC_CCITT is not set 2483# CONFIG_CRC_CCITT is not set
2243# CONFIG_CRC16 is not set 2484# CONFIG_CRC16 is not set
2244CONFIG_CRC_T10DIF=y 2485CONFIG_CRC_T10DIF=y
diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig
index 0e7dbc0a3e46..9fe5d212ab4c 100644
--- a/arch/x86/configs/x86_64_defconfig
+++ b/arch/x86/configs/x86_64_defconfig
@@ -1,14 +1,13 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc5 3# Linux kernel version: 2.6.29-rc4
4# Wed Sep 3 17:13:39 2008 4# Tue Feb 24 15:44:16 2009
5# 5#
6CONFIG_64BIT=y 6CONFIG_64BIT=y
7# CONFIG_X86_32 is not set 7# CONFIG_X86_32 is not set
8CONFIG_X86_64=y 8CONFIG_X86_64=y
9CONFIG_X86=y 9CONFIG_X86=y
10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
11# CONFIG_GENERIC_LOCKBREAK is not set
12CONFIG_GENERIC_TIME=y 11CONFIG_GENERIC_TIME=y
13CONFIG_GENERIC_CMOS_UPDATE=y 12CONFIG_GENERIC_CMOS_UPDATE=y
14CONFIG_CLOCKSOURCE_WATCHDOG=y 13CONFIG_CLOCKSOURCE_WATCHDOG=y
@@ -23,17 +22,16 @@ CONFIG_ZONE_DMA=y
23CONFIG_GENERIC_ISA_DMA=y 22CONFIG_GENERIC_ISA_DMA=y
24CONFIG_GENERIC_IOMAP=y 23CONFIG_GENERIC_IOMAP=y
25CONFIG_GENERIC_BUG=y 24CONFIG_GENERIC_BUG=y
25CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
26CONFIG_GENERIC_HWEIGHT=y 26CONFIG_GENERIC_HWEIGHT=y
27# CONFIG_GENERIC_GPIO is not set
28CONFIG_ARCH_MAY_HAVE_PC_FDC=y 27CONFIG_ARCH_MAY_HAVE_PC_FDC=y
29CONFIG_RWSEM_GENERIC_SPINLOCK=y 28CONFIG_RWSEM_GENERIC_SPINLOCK=y
30# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 29# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
31# CONFIG_ARCH_HAS_ILOG2_U32 is not set
32# CONFIG_ARCH_HAS_ILOG2_U64 is not set
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 30CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_GENERIC_CALIBRATE_DELAY=y 31CONFIG_GENERIC_CALIBRATE_DELAY=y
35CONFIG_GENERIC_TIME_VSYSCALL=y 32CONFIG_GENERIC_TIME_VSYSCALL=y
36CONFIG_ARCH_HAS_CPU_RELAX=y 33CONFIG_ARCH_HAS_CPU_RELAX=y
34CONFIG_ARCH_HAS_DEFAULT_IDLE=y
37CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y 35CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
38CONFIG_HAVE_SETUP_PER_CPU_AREA=y 36CONFIG_HAVE_SETUP_PER_CPU_AREA=y
39CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y 37CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
@@ -42,12 +40,12 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
42CONFIG_ZONE_DMA32=y 40CONFIG_ZONE_DMA32=y
43CONFIG_ARCH_POPULATES_NODE_MAP=y 41CONFIG_ARCH_POPULATES_NODE_MAP=y
44CONFIG_AUDIT_ARCH=y 42CONFIG_AUDIT_ARCH=y
45CONFIG_ARCH_SUPPORTS_AOUT=y
46CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y 43CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
47CONFIG_GENERIC_HARDIRQS=y 44CONFIG_GENERIC_HARDIRQS=y
48CONFIG_GENERIC_IRQ_PROBE=y 45CONFIG_GENERIC_IRQ_PROBE=y
49CONFIG_GENERIC_PENDING_IRQ=y 46CONFIG_GENERIC_PENDING_IRQ=y
50CONFIG_X86_SMP=y 47CONFIG_X86_SMP=y
48CONFIG_USE_GENERIC_SMP_HELPERS=y
51CONFIG_X86_64_SMP=y 49CONFIG_X86_64_SMP=y
52CONFIG_X86_HT=y 50CONFIG_X86_HT=y
53CONFIG_X86_BIOS_REBOOT=y 51CONFIG_X86_BIOS_REBOOT=y
@@ -76,30 +74,44 @@ CONFIG_TASK_IO_ACCOUNTING=y
76CONFIG_AUDIT=y 74CONFIG_AUDIT=y
77CONFIG_AUDITSYSCALL=y 75CONFIG_AUDITSYSCALL=y
78CONFIG_AUDIT_TREE=y 76CONFIG_AUDIT_TREE=y
77
78#
79# RCU Subsystem
80#
81# CONFIG_CLASSIC_RCU is not set
82CONFIG_TREE_RCU=y
83# CONFIG_PREEMPT_RCU is not set
84# CONFIG_RCU_TRACE is not set
85CONFIG_RCU_FANOUT=64
86# CONFIG_RCU_FANOUT_EXACT is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=18 90CONFIG_LOG_BUF_SHIFT=18
81CONFIG_CGROUPS=y
82# CONFIG_CGROUP_DEBUG is not set
83CONFIG_CGROUP_NS=y
84# CONFIG_CGROUP_DEVICE is not set
85CONFIG_CPUSETS=y
86CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y 91CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
87CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
88CONFIG_FAIR_GROUP_SCHED=y 93CONFIG_FAIR_GROUP_SCHED=y
89# CONFIG_RT_GROUP_SCHED is not set 94# CONFIG_RT_GROUP_SCHED is not set
90# CONFIG_USER_SCHED is not set 95# CONFIG_USER_SCHED is not set
91CONFIG_CGROUP_SCHED=y 96CONFIG_CGROUP_SCHED=y
97CONFIG_CGROUPS=y
98# CONFIG_CGROUP_DEBUG is not set
99CONFIG_CGROUP_NS=y
100CONFIG_CGROUP_FREEZER=y
101# CONFIG_CGROUP_DEVICE is not set
102CONFIG_CPUSETS=y
103CONFIG_PROC_PID_CPUSET=y
92CONFIG_CGROUP_CPUACCT=y 104CONFIG_CGROUP_CPUACCT=y
93CONFIG_RESOURCE_COUNTERS=y 105CONFIG_RESOURCE_COUNTERS=y
94# CONFIG_CGROUP_MEM_RES_CTLR is not set 106# CONFIG_CGROUP_MEM_RES_CTLR is not set
95# CONFIG_SYSFS_DEPRECATED_V2 is not set 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
96CONFIG_PROC_PID_CPUSET=y
97CONFIG_RELAY=y 108CONFIG_RELAY=y
98CONFIG_NAMESPACES=y 109CONFIG_NAMESPACES=y
99CONFIG_UTS_NS=y 110CONFIG_UTS_NS=y
100CONFIG_IPC_NS=y 111CONFIG_IPC_NS=y
101CONFIG_USER_NS=y 112CONFIG_USER_NS=y
102CONFIG_PID_NS=y 113CONFIG_PID_NS=y
114CONFIG_NET_NS=y
103CONFIG_BLK_DEV_INITRD=y 115CONFIG_BLK_DEV_INITRD=y
104CONFIG_INITRAMFS_SOURCE="" 116CONFIG_INITRAMFS_SOURCE=""
105CONFIG_CC_OPTIMIZE_FOR_SIZE=y 117CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -124,12 +136,15 @@ CONFIG_SIGNALFD=y
124CONFIG_TIMERFD=y 136CONFIG_TIMERFD=y
125CONFIG_EVENTFD=y 137CONFIG_EVENTFD=y
126CONFIG_SHMEM=y 138CONFIG_SHMEM=y
139CONFIG_AIO=y
127CONFIG_VM_EVENT_COUNTERS=y 140CONFIG_VM_EVENT_COUNTERS=y
141CONFIG_PCI_QUIRKS=y
128CONFIG_SLUB_DEBUG=y 142CONFIG_SLUB_DEBUG=y
129# CONFIG_SLAB is not set 143# CONFIG_SLAB is not set
130CONFIG_SLUB=y 144CONFIG_SLUB=y
131# CONFIG_SLOB is not set 145# CONFIG_SLOB is not set
132CONFIG_PROFILING=y 146CONFIG_PROFILING=y
147CONFIG_TRACEPOINTS=y
133CONFIG_MARKERS=y 148CONFIG_MARKERS=y
134# CONFIG_OPROFILE is not set 149# CONFIG_OPROFILE is not set
135CONFIG_HAVE_OPROFILE=y 150CONFIG_HAVE_OPROFILE=y
@@ -139,15 +154,10 @@ CONFIG_KRETPROBES=y
139CONFIG_HAVE_IOREMAP_PROT=y 154CONFIG_HAVE_IOREMAP_PROT=y
140CONFIG_HAVE_KPROBES=y 155CONFIG_HAVE_KPROBES=y
141CONFIG_HAVE_KRETPROBES=y 156CONFIG_HAVE_KRETPROBES=y
142# CONFIG_HAVE_ARCH_TRACEHOOK is not set 157CONFIG_HAVE_ARCH_TRACEHOOK=y
143# CONFIG_HAVE_DMA_ATTRS is not set
144CONFIG_USE_GENERIC_SMP_HELPERS=y
145# CONFIG_HAVE_CLK is not set
146CONFIG_PROC_PAGE_MONITOR=y
147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 158# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
148CONFIG_SLABINFO=y 159CONFIG_SLABINFO=y
149CONFIG_RT_MUTEXES=y 160CONFIG_RT_MUTEXES=y
150# CONFIG_TINY_SHMEM is not set
151CONFIG_BASE_SMALL=0 161CONFIG_BASE_SMALL=0
152CONFIG_MODULES=y 162CONFIG_MODULES=y
153# CONFIG_MODULE_FORCE_LOAD is not set 163# CONFIG_MODULE_FORCE_LOAD is not set
@@ -155,7 +165,6 @@ CONFIG_MODULE_UNLOAD=y
155CONFIG_MODULE_FORCE_UNLOAD=y 165CONFIG_MODULE_FORCE_UNLOAD=y
156# CONFIG_MODVERSIONS is not set 166# CONFIG_MODVERSIONS is not set
157# CONFIG_MODULE_SRCVERSION_ALL is not set 167# CONFIG_MODULE_SRCVERSION_ALL is not set
158CONFIG_KMOD=y
159CONFIG_STOP_MACHINE=y 168CONFIG_STOP_MACHINE=y
160CONFIG_BLOCK=y 169CONFIG_BLOCK=y
161CONFIG_BLK_DEV_IO_TRACE=y 170CONFIG_BLK_DEV_IO_TRACE=y
@@ -175,7 +184,7 @@ CONFIG_IOSCHED_CFQ=y
175CONFIG_DEFAULT_CFQ=y 184CONFIG_DEFAULT_CFQ=y
176# CONFIG_DEFAULT_NOOP is not set 185# CONFIG_DEFAULT_NOOP is not set
177CONFIG_DEFAULT_IOSCHED="cfq" 186CONFIG_DEFAULT_IOSCHED="cfq"
178CONFIG_CLASSIC_RCU=y 187CONFIG_FREEZER=y
179 188
180# 189#
181# Processor type and features 190# Processor type and features
@@ -185,13 +194,14 @@ CONFIG_NO_HZ=y
185CONFIG_HIGH_RES_TIMERS=y 194CONFIG_HIGH_RES_TIMERS=y
186CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 195CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
187CONFIG_SMP=y 196CONFIG_SMP=y
197CONFIG_SPARSE_IRQ=y
198# CONFIG_NUMA_MIGRATE_IRQ_DESC is not set
188CONFIG_X86_FIND_SMP_CONFIG=y 199CONFIG_X86_FIND_SMP_CONFIG=y
189CONFIG_X86_MPPARSE=y 200CONFIG_X86_MPPARSE=y
190CONFIG_X86_PC=y
191# CONFIG_X86_ELAN is not set 201# CONFIG_X86_ELAN is not set
192# CONFIG_X86_VOYAGER is not set
193# CONFIG_X86_GENERICARCH is not set 202# CONFIG_X86_GENERICARCH is not set
194# CONFIG_X86_VSMP is not set 203# CONFIG_X86_VSMP is not set
204CONFIG_SCHED_OMIT_FRAME_POINTER=y
195# CONFIG_PARAVIRT_GUEST is not set 205# CONFIG_PARAVIRT_GUEST is not set
196# CONFIG_MEMTEST is not set 206# CONFIG_MEMTEST is not set
197# CONFIG_M386 is not set 207# CONFIG_M386 is not set
@@ -230,6 +240,11 @@ CONFIG_X86_CMPXCHG64=y
230CONFIG_X86_CMOV=y 240CONFIG_X86_CMOV=y
231CONFIG_X86_MINIMUM_CPU_FAMILY=64 241CONFIG_X86_MINIMUM_CPU_FAMILY=64
232CONFIG_X86_DEBUGCTLMSR=y 242CONFIG_X86_DEBUGCTLMSR=y
243CONFIG_CPU_SUP_INTEL=y
244CONFIG_CPU_SUP_AMD=y
245CONFIG_CPU_SUP_CENTAUR_64=y
246CONFIG_X86_DS=y
247CONFIG_X86_PTRACE_BTS=y
233CONFIG_HPET_TIMER=y 248CONFIG_HPET_TIMER=y
234CONFIG_HPET_EMULATE_RTC=y 249CONFIG_HPET_EMULATE_RTC=y
235CONFIG_DMI=y 250CONFIG_DMI=y
@@ -237,8 +252,11 @@ CONFIG_GART_IOMMU=y
237CONFIG_CALGARY_IOMMU=y 252CONFIG_CALGARY_IOMMU=y
238CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y 253CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
239CONFIG_AMD_IOMMU=y 254CONFIG_AMD_IOMMU=y
255CONFIG_AMD_IOMMU_STATS=y
240CONFIG_SWIOTLB=y 256CONFIG_SWIOTLB=y
241CONFIG_IOMMU_HELPER=y 257CONFIG_IOMMU_HELPER=y
258CONFIG_IOMMU_API=y
259# CONFIG_MAXSMP is not set
242CONFIG_NR_CPUS=64 260CONFIG_NR_CPUS=64
243CONFIG_SCHED_SMT=y 261CONFIG_SCHED_SMT=y
244CONFIG_SCHED_MC=y 262CONFIG_SCHED_MC=y
@@ -247,12 +265,19 @@ CONFIG_PREEMPT_VOLUNTARY=y
247# CONFIG_PREEMPT is not set 265# CONFIG_PREEMPT is not set
248CONFIG_X86_LOCAL_APIC=y 266CONFIG_X86_LOCAL_APIC=y
249CONFIG_X86_IO_APIC=y 267CONFIG_X86_IO_APIC=y
250# CONFIG_X86_MCE is not set 268CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
269CONFIG_X86_MCE=y
270CONFIG_X86_MCE_INTEL=y
271CONFIG_X86_MCE_AMD=y
251# CONFIG_I8K is not set 272# CONFIG_I8K is not set
252CONFIG_MICROCODE=y 273CONFIG_MICROCODE=y
274CONFIG_MICROCODE_INTEL=y
275CONFIG_MICROCODE_AMD=y
253CONFIG_MICROCODE_OLD_INTERFACE=y 276CONFIG_MICROCODE_OLD_INTERFACE=y
254CONFIG_X86_MSR=y 277CONFIG_X86_MSR=y
255CONFIG_X86_CPUID=y 278CONFIG_X86_CPUID=y
279CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
280CONFIG_DIRECT_GBPAGES=y
256CONFIG_NUMA=y 281CONFIG_NUMA=y
257CONFIG_K8_NUMA=y 282CONFIG_K8_NUMA=y
258CONFIG_X86_64_ACPI_NUMA=y 283CONFIG_X86_64_ACPI_NUMA=y
@@ -269,7 +294,6 @@ CONFIG_SPARSEMEM_MANUAL=y
269CONFIG_SPARSEMEM=y 294CONFIG_SPARSEMEM=y
270CONFIG_NEED_MULTIPLE_NODES=y 295CONFIG_NEED_MULTIPLE_NODES=y
271CONFIG_HAVE_MEMORY_PRESENT=y 296CONFIG_HAVE_MEMORY_PRESENT=y
272# CONFIG_SPARSEMEM_STATIC is not set
273CONFIG_SPARSEMEM_EXTREME=y 297CONFIG_SPARSEMEM_EXTREME=y
274CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 298CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
275CONFIG_SPARSEMEM_VMEMMAP=y 299CONFIG_SPARSEMEM_VMEMMAP=y
@@ -280,10 +304,14 @@ CONFIG_SPARSEMEM_VMEMMAP=y
280CONFIG_PAGEFLAGS_EXTENDED=y 304CONFIG_PAGEFLAGS_EXTENDED=y
281CONFIG_SPLIT_PTLOCK_CPUS=4 305CONFIG_SPLIT_PTLOCK_CPUS=4
282CONFIG_MIGRATION=y 306CONFIG_MIGRATION=y
283CONFIG_RESOURCES_64BIT=y 307CONFIG_PHYS_ADDR_T_64BIT=y
284CONFIG_ZONE_DMA_FLAG=1 308CONFIG_ZONE_DMA_FLAG=1
285CONFIG_BOUNCE=y 309CONFIG_BOUNCE=y
286CONFIG_VIRT_TO_BUS=y 310CONFIG_VIRT_TO_BUS=y
311CONFIG_UNEVICTABLE_LRU=y
312CONFIG_X86_CHECK_BIOS_CORRUPTION=y
313CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
314CONFIG_X86_RESERVE_LOW_64K=y
287CONFIG_MTRR=y 315CONFIG_MTRR=y
288# CONFIG_MTRR_SANITIZER is not set 316# CONFIG_MTRR_SANITIZER is not set
289CONFIG_X86_PAT=y 317CONFIG_X86_PAT=y
@@ -302,11 +330,12 @@ CONFIG_PHYSICAL_START=0x1000000
302CONFIG_PHYSICAL_ALIGN=0x200000 330CONFIG_PHYSICAL_ALIGN=0x200000
303CONFIG_HOTPLUG_CPU=y 331CONFIG_HOTPLUG_CPU=y
304# CONFIG_COMPAT_VDSO is not set 332# CONFIG_COMPAT_VDSO is not set
333# CONFIG_CMDLINE_BOOL is not set
305CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 334CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
306CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y 335CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
307 336
308# 337#
309# Power management options 338# Power management and ACPI options
310# 339#
311CONFIG_ARCH_HIBERNATION_HEADER=y 340CONFIG_ARCH_HIBERNATION_HEADER=y
312CONFIG_PM=y 341CONFIG_PM=y
@@ -333,20 +362,14 @@ CONFIG_ACPI_BATTERY=y
333CONFIG_ACPI_BUTTON=y 362CONFIG_ACPI_BUTTON=y
334CONFIG_ACPI_FAN=y 363CONFIG_ACPI_FAN=y
335CONFIG_ACPI_DOCK=y 364CONFIG_ACPI_DOCK=y
336# CONFIG_ACPI_BAY is not set
337CONFIG_ACPI_PROCESSOR=y 365CONFIG_ACPI_PROCESSOR=y
338CONFIG_ACPI_HOTPLUG_CPU=y 366CONFIG_ACPI_HOTPLUG_CPU=y
339CONFIG_ACPI_THERMAL=y 367CONFIG_ACPI_THERMAL=y
340CONFIG_ACPI_NUMA=y 368CONFIG_ACPI_NUMA=y
341# CONFIG_ACPI_WMI is not set
342# CONFIG_ACPI_ASUS is not set
343# CONFIG_ACPI_TOSHIBA is not set
344# CONFIG_ACPI_CUSTOM_DSDT is not set 369# CONFIG_ACPI_CUSTOM_DSDT is not set
345CONFIG_ACPI_BLACKLIST_YEAR=0 370CONFIG_ACPI_BLACKLIST_YEAR=0
346# CONFIG_ACPI_DEBUG is not set 371# CONFIG_ACPI_DEBUG is not set
347CONFIG_ACPI_EC=y
348# CONFIG_ACPI_PCI_SLOT is not set 372# CONFIG_ACPI_PCI_SLOT is not set
349CONFIG_ACPI_POWER=y
350CONFIG_ACPI_SYSTEM=y 373CONFIG_ACPI_SYSTEM=y
351CONFIG_X86_PM_TIMER=y 374CONFIG_X86_PM_TIMER=y
352CONFIG_ACPI_CONTAINER=y 375CONFIG_ACPI_CONTAINER=y
@@ -381,13 +404,17 @@ CONFIG_X86_ACPI_CPUFREQ=y
381# 404#
382# shared options 405# shared options
383# 406#
384# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
385# CONFIG_X86_SPEEDSTEP_LIB is not set 407# CONFIG_X86_SPEEDSTEP_LIB is not set
386CONFIG_CPU_IDLE=y 408CONFIG_CPU_IDLE=y
387CONFIG_CPU_IDLE_GOV_LADDER=y 409CONFIG_CPU_IDLE_GOV_LADDER=y
388CONFIG_CPU_IDLE_GOV_MENU=y 410CONFIG_CPU_IDLE_GOV_MENU=y
389 411
390# 412#
413# Memory power savings
414#
415# CONFIG_I7300_IDLE is not set
416
417#
391# Bus options (PCI etc.) 418# Bus options (PCI etc.)
392# 419#
393CONFIG_PCI=y 420CONFIG_PCI=y
@@ -395,8 +422,10 @@ CONFIG_PCI_DIRECT=y
395CONFIG_PCI_MMCONFIG=y 422CONFIG_PCI_MMCONFIG=y
396CONFIG_PCI_DOMAINS=y 423CONFIG_PCI_DOMAINS=y
397CONFIG_DMAR=y 424CONFIG_DMAR=y
425# CONFIG_DMAR_DEFAULT_ON is not set
398CONFIG_DMAR_GFX_WA=y 426CONFIG_DMAR_GFX_WA=y
399CONFIG_DMAR_FLOPPY_WA=y 427CONFIG_DMAR_FLOPPY_WA=y
428# CONFIG_INTR_REMAP is not set
400CONFIG_PCIEPORTBUS=y 429CONFIG_PCIEPORTBUS=y
401# CONFIG_HOTPLUG_PCI_PCIE is not set 430# CONFIG_HOTPLUG_PCI_PCIE is not set
402CONFIG_PCIEAER=y 431CONFIG_PCIEAER=y
@@ -405,6 +434,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
405CONFIG_PCI_MSI=y 434CONFIG_PCI_MSI=y
406# CONFIG_PCI_LEGACY is not set 435# CONFIG_PCI_LEGACY is not set
407# CONFIG_PCI_DEBUG is not set 436# CONFIG_PCI_DEBUG is not set
437# CONFIG_PCI_STUB is not set
408CONFIG_HT_IRQ=y 438CONFIG_HT_IRQ=y
409CONFIG_ISA_DMA_API=y 439CONFIG_ISA_DMA_API=y
410CONFIG_K8_NB=y 440CONFIG_K8_NB=y
@@ -438,6 +468,8 @@ CONFIG_HOTPLUG_PCI=y
438# 468#
439CONFIG_BINFMT_ELF=y 469CONFIG_BINFMT_ELF=y
440CONFIG_COMPAT_BINFMT_ELF=y 470CONFIG_COMPAT_BINFMT_ELF=y
471CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
472# CONFIG_HAVE_AOUT is not set
441CONFIG_BINFMT_MISC=y 473CONFIG_BINFMT_MISC=y
442CONFIG_IA32_EMULATION=y 474CONFIG_IA32_EMULATION=y
443# CONFIG_IA32_AOUT is not set 475# CONFIG_IA32_AOUT is not set
@@ -449,6 +481,7 @@ CONFIG_NET=y
449# 481#
450# Networking options 482# Networking options
451# 483#
484CONFIG_COMPAT_NET_DEV_OPS=y
452CONFIG_PACKET=y 485CONFIG_PACKET=y
453CONFIG_PACKET_MMAP=y 486CONFIG_PACKET_MMAP=y
454CONFIG_UNIX=y 487CONFIG_UNIX=y
@@ -509,7 +542,6 @@ CONFIG_DEFAULT_CUBIC=y
509# CONFIG_DEFAULT_RENO is not set 542# CONFIG_DEFAULT_RENO is not set
510CONFIG_DEFAULT_TCP_CONG="cubic" 543CONFIG_DEFAULT_TCP_CONG="cubic"
511CONFIG_TCP_MD5SIG=y 544CONFIG_TCP_MD5SIG=y
512# CONFIG_IP_VS is not set
513CONFIG_IPV6=y 545CONFIG_IPV6=y
514# CONFIG_IPV6_PRIVACY is not set 546# CONFIG_IPV6_PRIVACY is not set
515# CONFIG_IPV6_ROUTER_PREF is not set 547# CONFIG_IPV6_ROUTER_PREF is not set
@@ -547,19 +579,21 @@ CONFIG_NF_CONNTRACK_IRC=y
547CONFIG_NF_CONNTRACK_SIP=y 579CONFIG_NF_CONNTRACK_SIP=y
548CONFIG_NF_CT_NETLINK=y 580CONFIG_NF_CT_NETLINK=y
549CONFIG_NETFILTER_XTABLES=y 581CONFIG_NETFILTER_XTABLES=y
582CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
550CONFIG_NETFILTER_XT_TARGET_MARK=y 583CONFIG_NETFILTER_XT_TARGET_MARK=y
551CONFIG_NETFILTER_XT_TARGET_NFLOG=y 584CONFIG_NETFILTER_XT_TARGET_NFLOG=y
552CONFIG_NETFILTER_XT_TARGET_SECMARK=y 585CONFIG_NETFILTER_XT_TARGET_SECMARK=y
553CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
554CONFIG_NETFILTER_XT_TARGET_TCPMSS=y 586CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
555CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y 587CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
556CONFIG_NETFILTER_XT_MATCH_MARK=y 588CONFIG_NETFILTER_XT_MATCH_MARK=y
557CONFIG_NETFILTER_XT_MATCH_POLICY=y 589CONFIG_NETFILTER_XT_MATCH_POLICY=y
558CONFIG_NETFILTER_XT_MATCH_STATE=y 590CONFIG_NETFILTER_XT_MATCH_STATE=y
591# CONFIG_IP_VS is not set
559 592
560# 593#
561# IP: Netfilter Configuration 594# IP: Netfilter Configuration
562# 595#
596CONFIG_NF_DEFRAG_IPV4=y
563CONFIG_NF_CONNTRACK_IPV4=y 597CONFIG_NF_CONNTRACK_IPV4=y
564CONFIG_NF_CONNTRACK_PROC_COMPAT=y 598CONFIG_NF_CONNTRACK_PROC_COMPAT=y
565CONFIG_IP_NF_IPTABLES=y 599CONFIG_IP_NF_IPTABLES=y
@@ -585,8 +619,8 @@ CONFIG_IP_NF_MANGLE=y
585CONFIG_NF_CONNTRACK_IPV6=y 619CONFIG_NF_CONNTRACK_IPV6=y
586CONFIG_IP6_NF_IPTABLES=y 620CONFIG_IP6_NF_IPTABLES=y
587CONFIG_IP6_NF_MATCH_IPV6HEADER=y 621CONFIG_IP6_NF_MATCH_IPV6HEADER=y
588CONFIG_IP6_NF_FILTER=y
589CONFIG_IP6_NF_TARGET_LOG=y 622CONFIG_IP6_NF_TARGET_LOG=y
623CONFIG_IP6_NF_FILTER=y
590CONFIG_IP6_NF_TARGET_REJECT=y 624CONFIG_IP6_NF_TARGET_REJECT=y
591CONFIG_IP6_NF_MANGLE=y 625CONFIG_IP6_NF_MANGLE=y
592# CONFIG_IP_DCCP is not set 626# CONFIG_IP_DCCP is not set
@@ -594,6 +628,7 @@ CONFIG_IP6_NF_MANGLE=y
594# CONFIG_TIPC is not set 628# CONFIG_TIPC is not set
595# CONFIG_ATM is not set 629# CONFIG_ATM is not set
596# CONFIG_BRIDGE is not set 630# CONFIG_BRIDGE is not set
631# CONFIG_NET_DSA is not set
597# CONFIG_VLAN_8021Q is not set 632# CONFIG_VLAN_8021Q is not set
598# CONFIG_DECNET is not set 633# CONFIG_DECNET is not set
599CONFIG_LLC=y 634CONFIG_LLC=y
@@ -613,6 +648,7 @@ CONFIG_NET_SCHED=y
613# CONFIG_NET_SCH_HTB is not set 648# CONFIG_NET_SCH_HTB is not set
614# CONFIG_NET_SCH_HFSC is not set 649# CONFIG_NET_SCH_HFSC is not set
615# CONFIG_NET_SCH_PRIO is not set 650# CONFIG_NET_SCH_PRIO is not set
651# CONFIG_NET_SCH_MULTIQ is not set
616# CONFIG_NET_SCH_RED is not set 652# CONFIG_NET_SCH_RED is not set
617# CONFIG_NET_SCH_SFQ is not set 653# CONFIG_NET_SCH_SFQ is not set
618# CONFIG_NET_SCH_TEQL is not set 654# CONFIG_NET_SCH_TEQL is not set
@@ -620,6 +656,7 @@ CONFIG_NET_SCHED=y
620# CONFIG_NET_SCH_GRED is not set 656# CONFIG_NET_SCH_GRED is not set
621# CONFIG_NET_SCH_DSMARK is not set 657# CONFIG_NET_SCH_DSMARK is not set
622# CONFIG_NET_SCH_NETEM is not set 658# CONFIG_NET_SCH_NETEM is not set
659# CONFIG_NET_SCH_DRR is not set
623# CONFIG_NET_SCH_INGRESS is not set 660# CONFIG_NET_SCH_INGRESS is not set
624 661
625# 662#
@@ -634,6 +671,7 @@ CONFIG_NET_CLS=y
634# CONFIG_NET_CLS_RSVP is not set 671# CONFIG_NET_CLS_RSVP is not set
635# CONFIG_NET_CLS_RSVP6 is not set 672# CONFIG_NET_CLS_RSVP6 is not set
636# CONFIG_NET_CLS_FLOW is not set 673# CONFIG_NET_CLS_FLOW is not set
674# CONFIG_NET_CLS_CGROUP is not set
637CONFIG_NET_EMATCH=y 675CONFIG_NET_EMATCH=y
638CONFIG_NET_EMATCH_STACK=32 676CONFIG_NET_EMATCH_STACK=32
639# CONFIG_NET_EMATCH_CMP is not set 677# CONFIG_NET_EMATCH_CMP is not set
@@ -649,7 +687,9 @@ CONFIG_NET_CLS_ACT=y
649# CONFIG_NET_ACT_NAT is not set 687# CONFIG_NET_ACT_NAT is not set
650# CONFIG_NET_ACT_PEDIT is not set 688# CONFIG_NET_ACT_PEDIT is not set
651# CONFIG_NET_ACT_SIMP is not set 689# CONFIG_NET_ACT_SIMP is not set
690# CONFIG_NET_ACT_SKBEDIT is not set
652CONFIG_NET_SCH_FIFO=y 691CONFIG_NET_SCH_FIFO=y
692# CONFIG_DCB is not set
653 693
654# 694#
655# Network testing 695# Network testing
@@ -666,29 +706,33 @@ CONFIG_HAMRADIO=y
666# CONFIG_IRDA is not set 706# CONFIG_IRDA is not set
667# CONFIG_BT is not set 707# CONFIG_BT is not set
668# CONFIG_AF_RXRPC is not set 708# CONFIG_AF_RXRPC is not set
709# CONFIG_PHONET is not set
669CONFIG_FIB_RULES=y 710CONFIG_FIB_RULES=y
670 711CONFIG_WIRELESS=y
671#
672# Wireless
673#
674CONFIG_CFG80211=y 712CONFIG_CFG80211=y
713# CONFIG_CFG80211_REG_DEBUG is not set
675CONFIG_NL80211=y 714CONFIG_NL80211=y
715CONFIG_WIRELESS_OLD_REGULATORY=y
676CONFIG_WIRELESS_EXT=y 716CONFIG_WIRELESS_EXT=y
677CONFIG_WIRELESS_EXT_SYSFS=y 717CONFIG_WIRELESS_EXT_SYSFS=y
718# CONFIG_LIB80211 is not set
678CONFIG_MAC80211=y 719CONFIG_MAC80211=y
679 720
680# 721#
681# Rate control algorithm selection 722# Rate control algorithm selection
682# 723#
683CONFIG_MAC80211_RC_PID=y 724CONFIG_MAC80211_RC_MINSTREL=y
684CONFIG_MAC80211_RC_DEFAULT_PID=y 725# CONFIG_MAC80211_RC_DEFAULT_PID is not set
685CONFIG_MAC80211_RC_DEFAULT="pid" 726CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
727CONFIG_MAC80211_RC_DEFAULT="minstrel"
686# CONFIG_MAC80211_MESH is not set 728# CONFIG_MAC80211_MESH is not set
687CONFIG_MAC80211_LEDS=y 729CONFIG_MAC80211_LEDS=y
688# CONFIG_MAC80211_DEBUGFS is not set 730# CONFIG_MAC80211_DEBUGFS is not set
689# CONFIG_MAC80211_DEBUG_MENU is not set 731# CONFIG_MAC80211_DEBUG_MENU is not set
690# CONFIG_IEEE80211 is not set 732# CONFIG_WIMAX is not set
691# CONFIG_RFKILL is not set 733CONFIG_RFKILL=y
734# CONFIG_RFKILL_INPUT is not set
735CONFIG_RFKILL_LEDS=y
692# CONFIG_NET_9P is not set 736# CONFIG_NET_9P is not set
693 737
694# 738#
@@ -712,7 +756,7 @@ CONFIG_PROC_EVENTS=y
712# CONFIG_MTD is not set 756# CONFIG_MTD is not set
713# CONFIG_PARPORT is not set 757# CONFIG_PARPORT is not set
714CONFIG_PNP=y 758CONFIG_PNP=y
715# CONFIG_PNP_DEBUG is not set 759CONFIG_PNP_DEBUG_MESSAGES=y
716 760
717# 761#
718# Protocols 762# Protocols
@@ -740,21 +784,21 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
740CONFIG_MISC_DEVICES=y 784CONFIG_MISC_DEVICES=y
741# CONFIG_IBM_ASM is not set 785# CONFIG_IBM_ASM is not set
742# CONFIG_PHANTOM is not set 786# CONFIG_PHANTOM is not set
743# CONFIG_EEPROM_93CX6 is not set
744# CONFIG_SGI_IOC4 is not set 787# CONFIG_SGI_IOC4 is not set
745# CONFIG_TIFM_CORE is not set 788# CONFIG_TIFM_CORE is not set
746# CONFIG_ACER_WMI is not set 789# CONFIG_ICS932S401 is not set
747# CONFIG_ASUS_LAPTOP is not set
748# CONFIG_FUJITSU_LAPTOP is not set
749# CONFIG_MSI_LAPTOP is not set
750# CONFIG_COMPAL_LAPTOP is not set
751# CONFIG_SONY_LAPTOP is not set
752# CONFIG_THINKPAD_ACPI is not set
753# CONFIG_INTEL_MENLOW is not set
754# CONFIG_ENCLOSURE_SERVICES is not set 790# CONFIG_ENCLOSURE_SERVICES is not set
755# CONFIG_SGI_XP is not set 791# CONFIG_SGI_XP is not set
756# CONFIG_HP_ILO is not set 792# CONFIG_HP_ILO is not set
757# CONFIG_SGI_GRU is not set 793# CONFIG_SGI_GRU is not set
794# CONFIG_C2PORT is not set
795
796#
797# EEPROM support
798#
799# CONFIG_EEPROM_AT24 is not set
800# CONFIG_EEPROM_LEGACY is not set
801# CONFIG_EEPROM_93CX6 is not set
758CONFIG_HAVE_IDE=y 802CONFIG_HAVE_IDE=y
759# CONFIG_IDE is not set 803# CONFIG_IDE is not set
760 804
@@ -793,7 +837,7 @@ CONFIG_SCSI_WAIT_SCAN=m
793# 837#
794CONFIG_SCSI_SPI_ATTRS=y 838CONFIG_SCSI_SPI_ATTRS=y
795# CONFIG_SCSI_FC_ATTRS is not set 839# CONFIG_SCSI_FC_ATTRS is not set
796CONFIG_SCSI_ISCSI_ATTRS=y 840# CONFIG_SCSI_ISCSI_ATTRS is not set
797# CONFIG_SCSI_SAS_ATTRS is not set 841# CONFIG_SCSI_SAS_ATTRS is not set
798# CONFIG_SCSI_SAS_LIBSAS is not set 842# CONFIG_SCSI_SAS_LIBSAS is not set
799# CONFIG_SCSI_SRP_ATTRS is not set 843# CONFIG_SCSI_SRP_ATTRS is not set
@@ -864,6 +908,7 @@ CONFIG_PATA_OLDPIIX=y
864CONFIG_PATA_SCH=y 908CONFIG_PATA_SCH=y
865CONFIG_MD=y 909CONFIG_MD=y
866CONFIG_BLK_DEV_MD=y 910CONFIG_BLK_DEV_MD=y
911CONFIG_MD_AUTODETECT=y
867# CONFIG_MD_LINEAR is not set 912# CONFIG_MD_LINEAR is not set
868# CONFIG_MD_RAID0 is not set 913# CONFIG_MD_RAID0 is not set
869# CONFIG_MD_RAID1 is not set 914# CONFIG_MD_RAID1 is not set
@@ -919,6 +964,9 @@ CONFIG_PHYLIB=y
919# CONFIG_BROADCOM_PHY is not set 964# CONFIG_BROADCOM_PHY is not set
920# CONFIG_ICPLUS_PHY is not set 965# CONFIG_ICPLUS_PHY is not set
921# CONFIG_REALTEK_PHY is not set 966# CONFIG_REALTEK_PHY is not set
967# CONFIG_NATIONAL_PHY is not set
968# CONFIG_STE10XP is not set
969# CONFIG_LSI_ET1011C_PHY is not set
922# CONFIG_FIXED_PHY is not set 970# CONFIG_FIXED_PHY is not set
923# CONFIG_MDIO_BITBANG is not set 971# CONFIG_MDIO_BITBANG is not set
924CONFIG_NET_ETHERNET=y 972CONFIG_NET_ETHERNET=y
@@ -942,6 +990,9 @@ CONFIG_NET_TULIP=y
942# CONFIG_IBM_NEW_EMAC_RGMII is not set 990# CONFIG_IBM_NEW_EMAC_RGMII is not set
943# CONFIG_IBM_NEW_EMAC_TAH is not set 991# CONFIG_IBM_NEW_EMAC_TAH is not set
944# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 992# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
993# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
994# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
995# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
945CONFIG_NET_PCI=y 996CONFIG_NET_PCI=y
946# CONFIG_PCNET32 is not set 997# CONFIG_PCNET32 is not set
947# CONFIG_AMD8111_ETH is not set 998# CONFIG_AMD8111_ETH is not set
@@ -949,7 +1000,6 @@ CONFIG_NET_PCI=y
949# CONFIG_B44 is not set 1000# CONFIG_B44 is not set
950CONFIG_FORCEDETH=y 1001CONFIG_FORCEDETH=y
951# CONFIG_FORCEDETH_NAPI is not set 1002# CONFIG_FORCEDETH_NAPI is not set
952# CONFIG_EEPRO100 is not set
953CONFIG_E100=y 1003CONFIG_E100=y
954# CONFIG_FEALNX is not set 1004# CONFIG_FEALNX is not set
955# CONFIG_NATSEMI is not set 1005# CONFIG_NATSEMI is not set
@@ -963,15 +1013,16 @@ CONFIG_8139TOO_PIO=y
963# CONFIG_R6040 is not set 1013# CONFIG_R6040 is not set
964# CONFIG_SIS900 is not set 1014# CONFIG_SIS900 is not set
965# CONFIG_EPIC100 is not set 1015# CONFIG_EPIC100 is not set
1016# CONFIG_SMSC9420 is not set
966# CONFIG_SUNDANCE is not set 1017# CONFIG_SUNDANCE is not set
967# CONFIG_TLAN is not set 1018# CONFIG_TLAN is not set
968# CONFIG_VIA_RHINE is not set 1019# CONFIG_VIA_RHINE is not set
969# CONFIG_SC92031 is not set 1020# CONFIG_SC92031 is not set
1021# CONFIG_ATL2 is not set
970CONFIG_NETDEV_1000=y 1022CONFIG_NETDEV_1000=y
971# CONFIG_ACENIC is not set 1023# CONFIG_ACENIC is not set
972# CONFIG_DL2K is not set 1024# CONFIG_DL2K is not set
973CONFIG_E1000=y 1025CONFIG_E1000=y
974# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
975# CONFIG_E1000E is not set 1026# CONFIG_E1000E is not set
976# CONFIG_IP1000 is not set 1027# CONFIG_IP1000 is not set
977# CONFIG_IGB is not set 1028# CONFIG_IGB is not set
@@ -989,18 +1040,23 @@ CONFIG_TIGON3=y
989# CONFIG_QLA3XXX is not set 1040# CONFIG_QLA3XXX is not set
990# CONFIG_ATL1 is not set 1041# CONFIG_ATL1 is not set
991# CONFIG_ATL1E is not set 1042# CONFIG_ATL1E is not set
1043# CONFIG_JME is not set
992CONFIG_NETDEV_10000=y 1044CONFIG_NETDEV_10000=y
993# CONFIG_CHELSIO_T1 is not set 1045# CONFIG_CHELSIO_T1 is not set
1046CONFIG_CHELSIO_T3_DEPENDS=y
994# CONFIG_CHELSIO_T3 is not set 1047# CONFIG_CHELSIO_T3 is not set
1048# CONFIG_ENIC is not set
995# CONFIG_IXGBE is not set 1049# CONFIG_IXGBE is not set
996# CONFIG_IXGB is not set 1050# CONFIG_IXGB is not set
997# CONFIG_S2IO is not set 1051# CONFIG_S2IO is not set
998# CONFIG_MYRI10GE is not set 1052# CONFIG_MYRI10GE is not set
999# CONFIG_NETXEN_NIC is not set 1053# CONFIG_NETXEN_NIC is not set
1000# CONFIG_NIU is not set 1054# CONFIG_NIU is not set
1055# CONFIG_MLX4_EN is not set
1001# CONFIG_MLX4_CORE is not set 1056# CONFIG_MLX4_CORE is not set
1002# CONFIG_TEHUTI is not set 1057# CONFIG_TEHUTI is not set
1003# CONFIG_BNX2X is not set 1058# CONFIG_BNX2X is not set
1059# CONFIG_QLGE is not set
1004# CONFIG_SFC is not set 1060# CONFIG_SFC is not set
1005CONFIG_TR=y 1061CONFIG_TR=y
1006# CONFIG_IBMOL is not set 1062# CONFIG_IBMOL is not set
@@ -1013,9 +1069,8 @@ CONFIG_TR=y
1013# CONFIG_WLAN_PRE80211 is not set 1069# CONFIG_WLAN_PRE80211 is not set
1014CONFIG_WLAN_80211=y 1070CONFIG_WLAN_80211=y
1015# CONFIG_PCMCIA_RAYCS is not set 1071# CONFIG_PCMCIA_RAYCS is not set
1016# CONFIG_IPW2100 is not set
1017# CONFIG_IPW2200 is not set
1018# CONFIG_LIBERTAS is not set 1072# CONFIG_LIBERTAS is not set
1073# CONFIG_LIBERTAS_THINFIRM is not set
1019# CONFIG_AIRO is not set 1074# CONFIG_AIRO is not set
1020# CONFIG_HERMES is not set 1075# CONFIG_HERMES is not set
1021# CONFIG_ATMEL is not set 1076# CONFIG_ATMEL is not set
@@ -1032,6 +1087,8 @@ CONFIG_WLAN_80211=y
1032CONFIG_ATH5K=y 1087CONFIG_ATH5K=y
1033# CONFIG_ATH5K_DEBUG is not set 1088# CONFIG_ATH5K_DEBUG is not set
1034# CONFIG_ATH9K is not set 1089# CONFIG_ATH9K is not set
1090# CONFIG_IPW2100 is not set
1091# CONFIG_IPW2200 is not set
1035# CONFIG_IWLCORE is not set 1092# CONFIG_IWLCORE is not set
1036# CONFIG_IWLWIFI_LEDS is not set 1093# CONFIG_IWLWIFI_LEDS is not set
1037# CONFIG_IWLAGN is not set 1094# CONFIG_IWLAGN is not set
@@ -1043,6 +1100,10 @@ CONFIG_ATH5K=y
1043# CONFIG_RT2X00 is not set 1100# CONFIG_RT2X00 is not set
1044 1101
1045# 1102#
1103# Enable WiMAX (Networking options) to see the WiMAX drivers
1104#
1105
1106#
1046# USB Network Adapters 1107# USB Network Adapters
1047# 1108#
1048# CONFIG_USB_CATC is not set 1109# CONFIG_USB_CATC is not set
@@ -1050,6 +1111,7 @@ CONFIG_ATH5K=y
1050# CONFIG_USB_PEGASUS is not set 1111# CONFIG_USB_PEGASUS is not set
1051# CONFIG_USB_RTL8150 is not set 1112# CONFIG_USB_RTL8150 is not set
1052# CONFIG_USB_USBNET is not set 1113# CONFIG_USB_USBNET is not set
1114# CONFIG_USB_HSO is not set
1053CONFIG_NET_PCMCIA=y 1115CONFIG_NET_PCMCIA=y
1054# CONFIG_PCMCIA_3C589 is not set 1116# CONFIG_PCMCIA_3C589 is not set
1055# CONFIG_PCMCIA_3C574 is not set 1117# CONFIG_PCMCIA_3C574 is not set
@@ -1059,6 +1121,7 @@ CONFIG_NET_PCMCIA=y
1059# CONFIG_PCMCIA_SMC91C92 is not set 1121# CONFIG_PCMCIA_SMC91C92 is not set
1060# CONFIG_PCMCIA_XIRC2PS is not set 1122# CONFIG_PCMCIA_XIRC2PS is not set
1061# CONFIG_PCMCIA_AXNET is not set 1123# CONFIG_PCMCIA_AXNET is not set
1124# CONFIG_PCMCIA_IBMTR is not set
1062# CONFIG_WAN is not set 1125# CONFIG_WAN is not set
1063CONFIG_FDDI=y 1126CONFIG_FDDI=y
1064# CONFIG_DEFXX is not set 1127# CONFIG_DEFXX is not set
@@ -1110,6 +1173,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
1110CONFIG_MOUSE_PS2_SYNAPTICS=y 1173CONFIG_MOUSE_PS2_SYNAPTICS=y
1111CONFIG_MOUSE_PS2_LIFEBOOK=y 1174CONFIG_MOUSE_PS2_LIFEBOOK=y
1112CONFIG_MOUSE_PS2_TRACKPOINT=y 1175CONFIG_MOUSE_PS2_TRACKPOINT=y
1176# CONFIG_MOUSE_PS2_ELANTECH is not set
1113# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1177# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1114# CONFIG_MOUSE_SERIAL is not set 1178# CONFIG_MOUSE_SERIAL is not set
1115# CONFIG_MOUSE_APPLETOUCH is not set 1179# CONFIG_MOUSE_APPLETOUCH is not set
@@ -1147,15 +1211,16 @@ CONFIG_INPUT_TOUCHSCREEN=y
1147# CONFIG_TOUCHSCREEN_FUJITSU is not set 1211# CONFIG_TOUCHSCREEN_FUJITSU is not set
1148# CONFIG_TOUCHSCREEN_GUNZE is not set 1212# CONFIG_TOUCHSCREEN_GUNZE is not set
1149# CONFIG_TOUCHSCREEN_ELO is not set 1213# CONFIG_TOUCHSCREEN_ELO is not set
1214# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
1150# CONFIG_TOUCHSCREEN_MTOUCH is not set 1215# CONFIG_TOUCHSCREEN_MTOUCH is not set
1151# CONFIG_TOUCHSCREEN_INEXIO is not set 1216# CONFIG_TOUCHSCREEN_INEXIO is not set
1152# CONFIG_TOUCHSCREEN_MK712 is not set 1217# CONFIG_TOUCHSCREEN_MK712 is not set
1153# CONFIG_TOUCHSCREEN_PENMOUNT is not set 1218# CONFIG_TOUCHSCREEN_PENMOUNT is not set
1154# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 1219# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
1155# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 1220# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
1156# CONFIG_TOUCHSCREEN_UCB1400 is not set
1157# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 1221# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
1158# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set 1222# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
1223# CONFIG_TOUCHSCREEN_TSC2007 is not set
1159CONFIG_INPUT_MISC=y 1224CONFIG_INPUT_MISC=y
1160# CONFIG_INPUT_PCSPKR is not set 1225# CONFIG_INPUT_PCSPKR is not set
1161# CONFIG_INPUT_APANEL is not set 1226# CONFIG_INPUT_APANEL is not set
@@ -1165,6 +1230,7 @@ CONFIG_INPUT_MISC=y
1165# CONFIG_INPUT_KEYSPAN_REMOTE is not set 1230# CONFIG_INPUT_KEYSPAN_REMOTE is not set
1166# CONFIG_INPUT_POWERMATE is not set 1231# CONFIG_INPUT_POWERMATE is not set
1167# CONFIG_INPUT_YEALINK is not set 1232# CONFIG_INPUT_YEALINK is not set
1233# CONFIG_INPUT_CM109 is not set
1168# CONFIG_INPUT_UINPUT is not set 1234# CONFIG_INPUT_UINPUT is not set
1169 1235
1170# 1236#
@@ -1231,6 +1297,7 @@ CONFIG_SERIAL_CORE=y
1231CONFIG_SERIAL_CORE_CONSOLE=y 1297CONFIG_SERIAL_CORE_CONSOLE=y
1232# CONFIG_SERIAL_JSM is not set 1298# CONFIG_SERIAL_JSM is not set
1233CONFIG_UNIX98_PTYS=y 1299CONFIG_UNIX98_PTYS=y
1300# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1234# CONFIG_LEGACY_PTYS is not set 1301# CONFIG_LEGACY_PTYS is not set
1235# CONFIG_IPMI_HANDLER is not set 1302# CONFIG_IPMI_HANDLER is not set
1236CONFIG_HW_RANDOM=y 1303CONFIG_HW_RANDOM=y
@@ -1260,6 +1327,7 @@ CONFIG_I2C=y
1260CONFIG_I2C_BOARDINFO=y 1327CONFIG_I2C_BOARDINFO=y
1261# CONFIG_I2C_CHARDEV is not set 1328# CONFIG_I2C_CHARDEV is not set
1262CONFIG_I2C_HELPER_AUTO=y 1329CONFIG_I2C_HELPER_AUTO=y
1330CONFIG_I2C_ALGOBIT=y
1263 1331
1264# 1332#
1265# I2C Hardware Bus support 1333# I2C Hardware Bus support
@@ -1311,8 +1379,6 @@ CONFIG_I2C_I801=y
1311# Miscellaneous I2C Chip support 1379# Miscellaneous I2C Chip support
1312# 1380#
1313# CONFIG_DS1682 is not set 1381# CONFIG_DS1682 is not set
1314# CONFIG_AT24 is not set
1315# CONFIG_SENSORS_EEPROM is not set
1316# CONFIG_SENSORS_PCF8574 is not set 1382# CONFIG_SENSORS_PCF8574 is not set
1317# CONFIG_PCF8575 is not set 1383# CONFIG_PCF8575 is not set
1318# CONFIG_SENSORS_PCA9539 is not set 1384# CONFIG_SENSORS_PCA9539 is not set
@@ -1331,8 +1397,78 @@ CONFIG_POWER_SUPPLY=y
1331# CONFIG_POWER_SUPPLY_DEBUG is not set 1397# CONFIG_POWER_SUPPLY_DEBUG is not set
1332# CONFIG_PDA_POWER is not set 1398# CONFIG_PDA_POWER is not set
1333# CONFIG_BATTERY_DS2760 is not set 1399# CONFIG_BATTERY_DS2760 is not set
1334# CONFIG_HWMON is not set 1400# CONFIG_BATTERY_BQ27x00 is not set
1401CONFIG_HWMON=y
1402# CONFIG_HWMON_VID is not set
1403# CONFIG_SENSORS_ABITUGURU is not set
1404# CONFIG_SENSORS_ABITUGURU3 is not set
1405# CONFIG_SENSORS_AD7414 is not set
1406# CONFIG_SENSORS_AD7418 is not set
1407# CONFIG_SENSORS_ADM1021 is not set
1408# CONFIG_SENSORS_ADM1025 is not set
1409# CONFIG_SENSORS_ADM1026 is not set
1410# CONFIG_SENSORS_ADM1029 is not set
1411# CONFIG_SENSORS_ADM1031 is not set
1412# CONFIG_SENSORS_ADM9240 is not set
1413# CONFIG_SENSORS_ADT7462 is not set
1414# CONFIG_SENSORS_ADT7470 is not set
1415# CONFIG_SENSORS_ADT7473 is not set
1416# CONFIG_SENSORS_ADT7475 is not set
1417# CONFIG_SENSORS_K8TEMP is not set
1418# CONFIG_SENSORS_ASB100 is not set
1419# CONFIG_SENSORS_ATXP1 is not set
1420# CONFIG_SENSORS_DS1621 is not set
1421# CONFIG_SENSORS_I5K_AMB is not set
1422# CONFIG_SENSORS_F71805F is not set
1423# CONFIG_SENSORS_F71882FG is not set
1424# CONFIG_SENSORS_F75375S is not set
1425# CONFIG_SENSORS_FSCHER is not set
1426# CONFIG_SENSORS_FSCPOS is not set
1427# CONFIG_SENSORS_FSCHMD is not set
1428# CONFIG_SENSORS_GL518SM is not set
1429# CONFIG_SENSORS_GL520SM is not set
1430# CONFIG_SENSORS_CORETEMP is not set
1431# CONFIG_SENSORS_IT87 is not set
1432# CONFIG_SENSORS_LM63 is not set
1433# CONFIG_SENSORS_LM75 is not set
1434# CONFIG_SENSORS_LM77 is not set
1435# CONFIG_SENSORS_LM78 is not set
1436# CONFIG_SENSORS_LM80 is not set
1437# CONFIG_SENSORS_LM83 is not set
1438# CONFIG_SENSORS_LM85 is not set
1439# CONFIG_SENSORS_LM87 is not set
1440# CONFIG_SENSORS_LM90 is not set
1441# CONFIG_SENSORS_LM92 is not set
1442# CONFIG_SENSORS_LM93 is not set
1443# CONFIG_SENSORS_LTC4245 is not set
1444# CONFIG_SENSORS_MAX1619 is not set
1445# CONFIG_SENSORS_MAX6650 is not set
1446# CONFIG_SENSORS_PC87360 is not set
1447# CONFIG_SENSORS_PC87427 is not set
1448# CONFIG_SENSORS_SIS5595 is not set
1449# CONFIG_SENSORS_DME1737 is not set
1450# CONFIG_SENSORS_SMSC47M1 is not set
1451# CONFIG_SENSORS_SMSC47M192 is not set
1452# CONFIG_SENSORS_SMSC47B397 is not set
1453# CONFIG_SENSORS_ADS7828 is not set
1454# CONFIG_SENSORS_THMC50 is not set
1455# CONFIG_SENSORS_VIA686A is not set
1456# CONFIG_SENSORS_VT1211 is not set
1457# CONFIG_SENSORS_VT8231 is not set
1458# CONFIG_SENSORS_W83781D is not set
1459# CONFIG_SENSORS_W83791D is not set
1460# CONFIG_SENSORS_W83792D is not set
1461# CONFIG_SENSORS_W83793 is not set
1462# CONFIG_SENSORS_W83L785TS is not set
1463# CONFIG_SENSORS_W83L786NG is not set
1464# CONFIG_SENSORS_W83627HF is not set
1465# CONFIG_SENSORS_W83627EHF is not set
1466# CONFIG_SENSORS_HDAPS is not set
1467# CONFIG_SENSORS_LIS3LV02D is not set
1468# CONFIG_SENSORS_APPLESMC is not set
1469# CONFIG_HWMON_DEBUG_CHIP is not set
1335CONFIG_THERMAL=y 1470CONFIG_THERMAL=y
1471# CONFIG_THERMAL_HWMON is not set
1336CONFIG_WATCHDOG=y 1472CONFIG_WATCHDOG=y
1337# CONFIG_WATCHDOG_NOWAYOUT is not set 1473# CONFIG_WATCHDOG_NOWAYOUT is not set
1338 1474
@@ -1352,15 +1488,18 @@ CONFIG_WATCHDOG=y
1352# CONFIG_I6300ESB_WDT is not set 1488# CONFIG_I6300ESB_WDT is not set
1353# CONFIG_ITCO_WDT is not set 1489# CONFIG_ITCO_WDT is not set
1354# CONFIG_IT8712F_WDT is not set 1490# CONFIG_IT8712F_WDT is not set
1491# CONFIG_IT87_WDT is not set
1355# CONFIG_HP_WATCHDOG is not set 1492# CONFIG_HP_WATCHDOG is not set
1356# CONFIG_SC1200_WDT is not set 1493# CONFIG_SC1200_WDT is not set
1357# CONFIG_PC87413_WDT is not set 1494# CONFIG_PC87413_WDT is not set
1358# CONFIG_60XX_WDT is not set 1495# CONFIG_60XX_WDT is not set
1359# CONFIG_SBC8360_WDT is not set 1496# CONFIG_SBC8360_WDT is not set
1360# CONFIG_CPU5_WDT is not set 1497# CONFIG_CPU5_WDT is not set
1498# CONFIG_SMSC_SCH311X_WDT is not set
1361# CONFIG_SMSC37B787_WDT is not set 1499# CONFIG_SMSC37B787_WDT is not set
1362# CONFIG_W83627HF_WDT is not set 1500# CONFIG_W83627HF_WDT is not set
1363# CONFIG_W83697HF_WDT is not set 1501# CONFIG_W83697HF_WDT is not set
1502# CONFIG_W83697UG_WDT is not set
1364# CONFIG_W83877F_WDT is not set 1503# CONFIG_W83877F_WDT is not set
1365# CONFIG_W83977F_WDT is not set 1504# CONFIG_W83977F_WDT is not set
1366# CONFIG_MACHZ_WDT is not set 1505# CONFIG_MACHZ_WDT is not set
@@ -1376,11 +1515,11 @@ CONFIG_WATCHDOG=y
1376# USB-based Watchdog Cards 1515# USB-based Watchdog Cards
1377# 1516#
1378# CONFIG_USBPCWATCHDOG is not set 1517# CONFIG_USBPCWATCHDOG is not set
1518CONFIG_SSB_POSSIBLE=y
1379 1519
1380# 1520#
1381# Sonics Silicon Backplane 1521# Sonics Silicon Backplane
1382# 1522#
1383CONFIG_SSB_POSSIBLE=y
1384# CONFIG_SSB is not set 1523# CONFIG_SSB is not set
1385 1524
1386# 1525#
@@ -1389,7 +1528,13 @@ CONFIG_SSB_POSSIBLE=y
1389# CONFIG_MFD_CORE is not set 1528# CONFIG_MFD_CORE is not set
1390# CONFIG_MFD_SM501 is not set 1529# CONFIG_MFD_SM501 is not set
1391# CONFIG_HTC_PASIC3 is not set 1530# CONFIG_HTC_PASIC3 is not set
1531# CONFIG_TWL4030_CORE is not set
1392# CONFIG_MFD_TMIO is not set 1532# CONFIG_MFD_TMIO is not set
1533# CONFIG_PMIC_DA903X is not set
1534# CONFIG_MFD_WM8400 is not set
1535# CONFIG_MFD_WM8350_I2C is not set
1536# CONFIG_MFD_PCF50633 is not set
1537# CONFIG_REGULATOR is not set
1393 1538
1394# 1539#
1395# Multimedia devices 1540# Multimedia devices
@@ -1423,6 +1568,7 @@ CONFIG_DRM=y
1423# CONFIG_DRM_I810 is not set 1568# CONFIG_DRM_I810 is not set
1424# CONFIG_DRM_I830 is not set 1569# CONFIG_DRM_I830 is not set
1425CONFIG_DRM_I915=y 1570CONFIG_DRM_I915=y
1571CONFIG_DRM_I915_KMS=y
1426# CONFIG_DRM_MGA is not set 1572# CONFIG_DRM_MGA is not set
1427# CONFIG_DRM_SIS is not set 1573# CONFIG_DRM_SIS is not set
1428# CONFIG_DRM_VIA is not set 1574# CONFIG_DRM_VIA is not set
@@ -1432,6 +1578,7 @@ CONFIG_DRM_I915=y
1432CONFIG_FB=y 1578CONFIG_FB=y
1433# CONFIG_FIRMWARE_EDID is not set 1579# CONFIG_FIRMWARE_EDID is not set
1434# CONFIG_FB_DDC is not set 1580# CONFIG_FB_DDC is not set
1581# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1435CONFIG_FB_CFB_FILLRECT=y 1582CONFIG_FB_CFB_FILLRECT=y
1436CONFIG_FB_CFB_COPYAREA=y 1583CONFIG_FB_CFB_COPYAREA=y
1437CONFIG_FB_CFB_IMAGEBLIT=y 1584CONFIG_FB_CFB_IMAGEBLIT=y
@@ -1460,7 +1607,6 @@ CONFIG_FB_TILEBLITTING=y
1460# CONFIG_FB_UVESA is not set 1607# CONFIG_FB_UVESA is not set
1461# CONFIG_FB_VESA is not set 1608# CONFIG_FB_VESA is not set
1462CONFIG_FB_EFI=y 1609CONFIG_FB_EFI=y
1463# CONFIG_FB_IMAC is not set
1464# CONFIG_FB_N411 is not set 1610# CONFIG_FB_N411 is not set
1465# CONFIG_FB_HGA is not set 1611# CONFIG_FB_HGA is not set
1466# CONFIG_FB_S1D13XXX is not set 1612# CONFIG_FB_S1D13XXX is not set
@@ -1475,6 +1621,7 @@ CONFIG_FB_EFI=y
1475# CONFIG_FB_S3 is not set 1621# CONFIG_FB_S3 is not set
1476# CONFIG_FB_SAVAGE is not set 1622# CONFIG_FB_SAVAGE is not set
1477# CONFIG_FB_SIS is not set 1623# CONFIG_FB_SIS is not set
1624# CONFIG_FB_VIA is not set
1478# CONFIG_FB_NEOMAGIC is not set 1625# CONFIG_FB_NEOMAGIC is not set
1479# CONFIG_FB_KYRO is not set 1626# CONFIG_FB_KYRO is not set
1480# CONFIG_FB_3DFX is not set 1627# CONFIG_FB_3DFX is not set
@@ -1486,12 +1633,15 @@ CONFIG_FB_EFI=y
1486# CONFIG_FB_CARMINE is not set 1633# CONFIG_FB_CARMINE is not set
1487# CONFIG_FB_GEODE is not set 1634# CONFIG_FB_GEODE is not set
1488# CONFIG_FB_VIRTUAL is not set 1635# CONFIG_FB_VIRTUAL is not set
1636# CONFIG_FB_METRONOME is not set
1637# CONFIG_FB_MB862XX is not set
1489CONFIG_BACKLIGHT_LCD_SUPPORT=y 1638CONFIG_BACKLIGHT_LCD_SUPPORT=y
1490# CONFIG_LCD_CLASS_DEVICE is not set 1639# CONFIG_LCD_CLASS_DEVICE is not set
1491CONFIG_BACKLIGHT_CLASS_DEVICE=y 1640CONFIG_BACKLIGHT_CLASS_DEVICE=y
1492# CONFIG_BACKLIGHT_CORGI is not set 1641CONFIG_BACKLIGHT_GENERIC=y
1493# CONFIG_BACKLIGHT_PROGEAR is not set 1642# CONFIG_BACKLIGHT_PROGEAR is not set
1494# CONFIG_BACKLIGHT_MBP_NVIDIA is not set 1643# CONFIG_BACKLIGHT_MBP_NVIDIA is not set
1644# CONFIG_BACKLIGHT_SAHARA is not set
1495 1645
1496# 1646#
1497# Display device support 1647# Display device support
@@ -1511,10 +1661,12 @@ CONFIG_LOGO=y
1511# CONFIG_LOGO_LINUX_VGA16 is not set 1661# CONFIG_LOGO_LINUX_VGA16 is not set
1512CONFIG_LOGO_LINUX_CLUT224=y 1662CONFIG_LOGO_LINUX_CLUT224=y
1513CONFIG_SOUND=y 1663CONFIG_SOUND=y
1664CONFIG_SOUND_OSS_CORE=y
1514CONFIG_SND=y 1665CONFIG_SND=y
1515CONFIG_SND_TIMER=y 1666CONFIG_SND_TIMER=y
1516CONFIG_SND_PCM=y 1667CONFIG_SND_PCM=y
1517CONFIG_SND_HWDEP=y 1668CONFIG_SND_HWDEP=y
1669CONFIG_SND_JACK=y
1518CONFIG_SND_SEQUENCER=y 1670CONFIG_SND_SEQUENCER=y
1519CONFIG_SND_SEQ_DUMMY=y 1671CONFIG_SND_SEQ_DUMMY=y
1520CONFIG_SND_OSSEMUL=y 1672CONFIG_SND_OSSEMUL=y
@@ -1522,6 +1674,8 @@ CONFIG_SND_MIXER_OSS=y
1522CONFIG_SND_PCM_OSS=y 1674CONFIG_SND_PCM_OSS=y
1523CONFIG_SND_PCM_OSS_PLUGINS=y 1675CONFIG_SND_PCM_OSS_PLUGINS=y
1524CONFIG_SND_SEQUENCER_OSS=y 1676CONFIG_SND_SEQUENCER_OSS=y
1677CONFIG_SND_HRTIMER=y
1678CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
1525CONFIG_SND_DYNAMIC_MINORS=y 1679CONFIG_SND_DYNAMIC_MINORS=y
1526CONFIG_SND_SUPPORT_OLD_API=y 1680CONFIG_SND_SUPPORT_OLD_API=y
1527CONFIG_SND_VERBOSE_PROCFS=y 1681CONFIG_SND_VERBOSE_PROCFS=y
@@ -1575,11 +1729,16 @@ CONFIG_SND_PCI=y
1575# CONFIG_SND_FM801 is not set 1729# CONFIG_SND_FM801 is not set
1576CONFIG_SND_HDA_INTEL=y 1730CONFIG_SND_HDA_INTEL=y
1577CONFIG_SND_HDA_HWDEP=y 1731CONFIG_SND_HDA_HWDEP=y
1732# CONFIG_SND_HDA_RECONFIG is not set
1733# CONFIG_SND_HDA_INPUT_BEEP is not set
1578CONFIG_SND_HDA_CODEC_REALTEK=y 1734CONFIG_SND_HDA_CODEC_REALTEK=y
1579CONFIG_SND_HDA_CODEC_ANALOG=y 1735CONFIG_SND_HDA_CODEC_ANALOG=y
1580CONFIG_SND_HDA_CODEC_SIGMATEL=y 1736CONFIG_SND_HDA_CODEC_SIGMATEL=y
1581CONFIG_SND_HDA_CODEC_VIA=y 1737CONFIG_SND_HDA_CODEC_VIA=y
1582CONFIG_SND_HDA_CODEC_ATIHDMI=y 1738CONFIG_SND_HDA_CODEC_ATIHDMI=y
1739CONFIG_SND_HDA_CODEC_NVHDMI=y
1740CONFIG_SND_HDA_CODEC_INTELHDMI=y
1741CONFIG_SND_HDA_ELD=y
1583CONFIG_SND_HDA_CODEC_CONEXANT=y 1742CONFIG_SND_HDA_CODEC_CONEXANT=y
1584CONFIG_SND_HDA_CODEC_CMEDIA=y 1743CONFIG_SND_HDA_CODEC_CMEDIA=y
1585CONFIG_SND_HDA_CODEC_SI3054=y 1744CONFIG_SND_HDA_CODEC_SI3054=y
@@ -1612,6 +1771,7 @@ CONFIG_SND_USB=y
1612# CONFIG_SND_USB_AUDIO is not set 1771# CONFIG_SND_USB_AUDIO is not set
1613# CONFIG_SND_USB_USX2Y is not set 1772# CONFIG_SND_USB_USX2Y is not set
1614# CONFIG_SND_USB_CAIAQ is not set 1773# CONFIG_SND_USB_CAIAQ is not set
1774# CONFIG_SND_USB_US122L is not set
1615CONFIG_SND_PCMCIA=y 1775CONFIG_SND_PCMCIA=y
1616# CONFIG_SND_VXPOCKET is not set 1776# CONFIG_SND_VXPOCKET is not set
1617# CONFIG_SND_PDAUDIOCF is not set 1777# CONFIG_SND_PDAUDIOCF is not set
@@ -1626,15 +1786,37 @@ CONFIG_HIDRAW=y
1626# USB Input Devices 1786# USB Input Devices
1627# 1787#
1628CONFIG_USB_HID=y 1788CONFIG_USB_HID=y
1629CONFIG_USB_HIDINPUT_POWERBOOK=y
1630CONFIG_HID_FF=y
1631CONFIG_HID_PID=y 1789CONFIG_HID_PID=y
1790CONFIG_USB_HIDDEV=y
1791
1792#
1793# Special HID drivers
1794#
1795CONFIG_HID_COMPAT=y
1796CONFIG_HID_A4TECH=y
1797CONFIG_HID_APPLE=y
1798CONFIG_HID_BELKIN=y
1799CONFIG_HID_CHERRY=y
1800CONFIG_HID_CHICONY=y
1801CONFIG_HID_CYPRESS=y
1802CONFIG_HID_EZKEY=y
1803CONFIG_HID_GYRATION=y
1804CONFIG_HID_LOGITECH=y
1632CONFIG_LOGITECH_FF=y 1805CONFIG_LOGITECH_FF=y
1633# CONFIG_LOGIRUMBLEPAD2_FF is not set 1806# CONFIG_LOGIRUMBLEPAD2_FF is not set
1807CONFIG_HID_MICROSOFT=y
1808CONFIG_HID_MONTEREY=y
1809CONFIG_HID_NTRIG=y
1810CONFIG_HID_PANTHERLORD=y
1634CONFIG_PANTHERLORD_FF=y 1811CONFIG_PANTHERLORD_FF=y
1812CONFIG_HID_PETALYNX=y
1813CONFIG_HID_SAMSUNG=y
1814CONFIG_HID_SONY=y
1815CONFIG_HID_SUNPLUS=y
1816# CONFIG_GREENASIA_FF is not set
1817CONFIG_HID_TOPSEED=y
1635CONFIG_THRUSTMASTER_FF=y 1818CONFIG_THRUSTMASTER_FF=y
1636CONFIG_ZEROPLUS_FF=y 1819CONFIG_ZEROPLUS_FF=y
1637CONFIG_USB_HIDDEV=y
1638CONFIG_USB_SUPPORT=y 1820CONFIG_USB_SUPPORT=y
1639CONFIG_USB_ARCH_HAS_HCD=y 1821CONFIG_USB_ARCH_HAS_HCD=y
1640CONFIG_USB_ARCH_HAS_OHCI=y 1822CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1652,6 +1834,8 @@ CONFIG_USB_DEVICEFS=y
1652CONFIG_USB_SUSPEND=y 1834CONFIG_USB_SUSPEND=y
1653# CONFIG_USB_OTG is not set 1835# CONFIG_USB_OTG is not set
1654CONFIG_USB_MON=y 1836CONFIG_USB_MON=y
1837# CONFIG_USB_WUSB is not set
1838# CONFIG_USB_WUSB_CBAF is not set
1655 1839
1656# 1840#
1657# USB Host Controller Drivers 1841# USB Host Controller Drivers
@@ -1660,6 +1844,7 @@ CONFIG_USB_MON=y
1660CONFIG_USB_EHCI_HCD=y 1844CONFIG_USB_EHCI_HCD=y
1661# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1845# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1662# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1846# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1847# CONFIG_USB_OXU210HP_HCD is not set
1663# CONFIG_USB_ISP116X_HCD is not set 1848# CONFIG_USB_ISP116X_HCD is not set
1664# CONFIG_USB_ISP1760_HCD is not set 1849# CONFIG_USB_ISP1760_HCD is not set
1665CONFIG_USB_OHCI_HCD=y 1850CONFIG_USB_OHCI_HCD=y
@@ -1669,6 +1854,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1669CONFIG_USB_UHCI_HCD=y 1854CONFIG_USB_UHCI_HCD=y
1670# CONFIG_USB_SL811_HCD is not set 1855# CONFIG_USB_SL811_HCD is not set
1671# CONFIG_USB_R8A66597_HCD is not set 1856# CONFIG_USB_R8A66597_HCD is not set
1857# CONFIG_USB_WHCI_HCD is not set
1858# CONFIG_USB_HWA_HCD is not set
1672 1859
1673# 1860#
1674# USB Device Class drivers 1861# USB Device Class drivers
@@ -1676,20 +1863,20 @@ CONFIG_USB_UHCI_HCD=y
1676# CONFIG_USB_ACM is not set 1863# CONFIG_USB_ACM is not set
1677CONFIG_USB_PRINTER=y 1864CONFIG_USB_PRINTER=y
1678# CONFIG_USB_WDM is not set 1865# CONFIG_USB_WDM is not set
1866# CONFIG_USB_TMC is not set
1679 1867
1680# 1868#
1681# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1869# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1682# 1870#
1683 1871
1684# 1872#
1685# may also be needed; see USB_STORAGE Help for more information 1873# see USB_STORAGE Help for more information
1686# 1874#
1687CONFIG_USB_STORAGE=y 1875CONFIG_USB_STORAGE=y
1688# CONFIG_USB_STORAGE_DEBUG is not set 1876# CONFIG_USB_STORAGE_DEBUG is not set
1689# CONFIG_USB_STORAGE_DATAFAB is not set 1877# CONFIG_USB_STORAGE_DATAFAB is not set
1690# CONFIG_USB_STORAGE_FREECOM is not set 1878# CONFIG_USB_STORAGE_FREECOM is not set
1691# CONFIG_USB_STORAGE_ISD200 is not set 1879# CONFIG_USB_STORAGE_ISD200 is not set
1692# CONFIG_USB_STORAGE_DPCM is not set
1693# CONFIG_USB_STORAGE_USBAT is not set 1880# CONFIG_USB_STORAGE_USBAT is not set
1694# CONFIG_USB_STORAGE_SDDR09 is not set 1881# CONFIG_USB_STORAGE_SDDR09 is not set
1695# CONFIG_USB_STORAGE_SDDR55 is not set 1882# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1697,7 +1884,6 @@ CONFIG_USB_STORAGE=y
1697# CONFIG_USB_STORAGE_ALAUDA is not set 1884# CONFIG_USB_STORAGE_ALAUDA is not set
1698# CONFIG_USB_STORAGE_ONETOUCH is not set 1885# CONFIG_USB_STORAGE_ONETOUCH is not set
1699# CONFIG_USB_STORAGE_KARMA is not set 1886# CONFIG_USB_STORAGE_KARMA is not set
1700# CONFIG_USB_STORAGE_SIERRA is not set
1701# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1887# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1702CONFIG_USB_LIBUSUAL=y 1888CONFIG_USB_LIBUSUAL=y
1703 1889
@@ -1718,6 +1904,7 @@ CONFIG_USB_LIBUSUAL=y
1718# CONFIG_USB_EMI62 is not set 1904# CONFIG_USB_EMI62 is not set
1719# CONFIG_USB_EMI26 is not set 1905# CONFIG_USB_EMI26 is not set
1720# CONFIG_USB_ADUTUX is not set 1906# CONFIG_USB_ADUTUX is not set
1907# CONFIG_USB_SEVSEG is not set
1721# CONFIG_USB_RIO500 is not set 1908# CONFIG_USB_RIO500 is not set
1722# CONFIG_USB_LEGOTOWER is not set 1909# CONFIG_USB_LEGOTOWER is not set
1723# CONFIG_USB_LCD is not set 1910# CONFIG_USB_LCD is not set
@@ -1735,7 +1922,13 @@ CONFIG_USB_LIBUSUAL=y
1735# CONFIG_USB_IOWARRIOR is not set 1922# CONFIG_USB_IOWARRIOR is not set
1736# CONFIG_USB_TEST is not set 1923# CONFIG_USB_TEST is not set
1737# CONFIG_USB_ISIGHTFW is not set 1924# CONFIG_USB_ISIGHTFW is not set
1925# CONFIG_USB_VST is not set
1738# CONFIG_USB_GADGET is not set 1926# CONFIG_USB_GADGET is not set
1927
1928#
1929# OTG and related infrastructure
1930#
1931# CONFIG_UWB is not set
1739# CONFIG_MMC is not set 1932# CONFIG_MMC is not set
1740# CONFIG_MEMSTICK is not set 1933# CONFIG_MEMSTICK is not set
1741CONFIG_NEW_LEDS=y 1934CONFIG_NEW_LEDS=y
@@ -1744,6 +1937,7 @@ CONFIG_LEDS_CLASS=y
1744# 1937#
1745# LED drivers 1938# LED drivers
1746# 1939#
1940# CONFIG_LEDS_ALIX2 is not set
1747# CONFIG_LEDS_PCA9532 is not set 1941# CONFIG_LEDS_PCA9532 is not set
1748# CONFIG_LEDS_CLEVO_MAIL is not set 1942# CONFIG_LEDS_CLEVO_MAIL is not set
1749# CONFIG_LEDS_PCA955X is not set 1943# CONFIG_LEDS_PCA955X is not set
@@ -1754,6 +1948,7 @@ CONFIG_LEDS_CLASS=y
1754CONFIG_LEDS_TRIGGERS=y 1948CONFIG_LEDS_TRIGGERS=y
1755# CONFIG_LEDS_TRIGGER_TIMER is not set 1949# CONFIG_LEDS_TRIGGER_TIMER is not set
1756# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 1950# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1951# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1757# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 1952# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1758# CONFIG_ACCESSIBILITY is not set 1953# CONFIG_ACCESSIBILITY is not set
1759# CONFIG_INFINIBAND is not set 1954# CONFIG_INFINIBAND is not set
@@ -1793,6 +1988,7 @@ CONFIG_RTC_INTF_DEV=y
1793# CONFIG_RTC_DRV_M41T80 is not set 1988# CONFIG_RTC_DRV_M41T80 is not set
1794# CONFIG_RTC_DRV_S35390A is not set 1989# CONFIG_RTC_DRV_S35390A is not set
1795# CONFIG_RTC_DRV_FM3130 is not set 1990# CONFIG_RTC_DRV_FM3130 is not set
1991# CONFIG_RTC_DRV_RX8581 is not set
1796 1992
1797# 1993#
1798# SPI RTC drivers 1994# SPI RTC drivers
@@ -1802,12 +1998,15 @@ CONFIG_RTC_INTF_DEV=y
1802# Platform RTC drivers 1998# Platform RTC drivers
1803# 1999#
1804CONFIG_RTC_DRV_CMOS=y 2000CONFIG_RTC_DRV_CMOS=y
2001# CONFIG_RTC_DRV_DS1286 is not set
1805# CONFIG_RTC_DRV_DS1511 is not set 2002# CONFIG_RTC_DRV_DS1511 is not set
1806# CONFIG_RTC_DRV_DS1553 is not set 2003# CONFIG_RTC_DRV_DS1553 is not set
1807# CONFIG_RTC_DRV_DS1742 is not set 2004# CONFIG_RTC_DRV_DS1742 is not set
1808# CONFIG_RTC_DRV_STK17TA8 is not set 2005# CONFIG_RTC_DRV_STK17TA8 is not set
1809# CONFIG_RTC_DRV_M48T86 is not set 2006# CONFIG_RTC_DRV_M48T86 is not set
2007# CONFIG_RTC_DRV_M48T35 is not set
1810# CONFIG_RTC_DRV_M48T59 is not set 2008# CONFIG_RTC_DRV_M48T59 is not set
2009# CONFIG_RTC_DRV_BQ4802 is not set
1811# CONFIG_RTC_DRV_V3020 is not set 2010# CONFIG_RTC_DRV_V3020 is not set
1812 2011
1813# 2012#
@@ -1820,6 +2019,21 @@ CONFIG_DMADEVICES=y
1820# 2019#
1821# CONFIG_INTEL_IOATDMA is not set 2020# CONFIG_INTEL_IOATDMA is not set
1822# CONFIG_UIO is not set 2021# CONFIG_UIO is not set
2022# CONFIG_STAGING is not set
2023CONFIG_X86_PLATFORM_DEVICES=y
2024# CONFIG_ACER_WMI is not set
2025# CONFIG_ASUS_LAPTOP is not set
2026# CONFIG_FUJITSU_LAPTOP is not set
2027# CONFIG_MSI_LAPTOP is not set
2028# CONFIG_PANASONIC_LAPTOP is not set
2029# CONFIG_COMPAL_LAPTOP is not set
2030# CONFIG_SONY_LAPTOP is not set
2031# CONFIG_THINKPAD_ACPI is not set
2032# CONFIG_INTEL_MENLOW is not set
2033CONFIG_EEEPC_LAPTOP=y
2034# CONFIG_ACPI_WMI is not set
2035# CONFIG_ACPI_ASUS is not set
2036# CONFIG_ACPI_TOSHIBA is not set
1823 2037
1824# 2038#
1825# Firmware Drivers 2039# Firmware Drivers
@@ -1830,8 +2044,7 @@ CONFIG_EFI_VARS=y
1830# CONFIG_DELL_RBU is not set 2044# CONFIG_DELL_RBU is not set
1831# CONFIG_DCDBAS is not set 2045# CONFIG_DCDBAS is not set
1832CONFIG_DMIID=y 2046CONFIG_DMIID=y
1833CONFIG_ISCSI_IBFT_FIND=y 2047# CONFIG_ISCSI_IBFT_FIND is not set
1834CONFIG_ISCSI_IBFT=y
1835 2048
1836# 2049#
1837# File systems 2050# File systems
@@ -1841,22 +2054,25 @@ CONFIG_EXT3_FS=y
1841CONFIG_EXT3_FS_XATTR=y 2054CONFIG_EXT3_FS_XATTR=y
1842CONFIG_EXT3_FS_POSIX_ACL=y 2055CONFIG_EXT3_FS_POSIX_ACL=y
1843CONFIG_EXT3_FS_SECURITY=y 2056CONFIG_EXT3_FS_SECURITY=y
1844# CONFIG_EXT4DEV_FS is not set 2057# CONFIG_EXT4_FS is not set
1845CONFIG_JBD=y 2058CONFIG_JBD=y
1846# CONFIG_JBD_DEBUG is not set 2059# CONFIG_JBD_DEBUG is not set
1847CONFIG_FS_MBCACHE=y 2060CONFIG_FS_MBCACHE=y
1848# CONFIG_REISERFS_FS is not set 2061# CONFIG_REISERFS_FS is not set
1849# CONFIG_JFS_FS is not set 2062# CONFIG_JFS_FS is not set
1850CONFIG_FS_POSIX_ACL=y 2063CONFIG_FS_POSIX_ACL=y
2064CONFIG_FILE_LOCKING=y
1851# CONFIG_XFS_FS is not set 2065# CONFIG_XFS_FS is not set
1852# CONFIG_GFS2_FS is not set 2066# CONFIG_GFS2_FS is not set
1853# CONFIG_OCFS2_FS is not set 2067# CONFIG_OCFS2_FS is not set
2068# CONFIG_BTRFS_FS is not set
1854CONFIG_DNOTIFY=y 2069CONFIG_DNOTIFY=y
1855CONFIG_INOTIFY=y 2070CONFIG_INOTIFY=y
1856CONFIG_INOTIFY_USER=y 2071CONFIG_INOTIFY_USER=y
1857CONFIG_QUOTA=y 2072CONFIG_QUOTA=y
1858CONFIG_QUOTA_NETLINK_INTERFACE=y 2073CONFIG_QUOTA_NETLINK_INTERFACE=y
1859# CONFIG_PRINT_QUOTA_WARNING is not set 2074# CONFIG_PRINT_QUOTA_WARNING is not set
2075CONFIG_QUOTA_TREE=y
1860# CONFIG_QFMT_V1 is not set 2076# CONFIG_QFMT_V1 is not set
1861CONFIG_QFMT_V2=y 2077CONFIG_QFMT_V2=y
1862CONFIG_QUOTACTL=y 2078CONFIG_QUOTACTL=y
@@ -1890,16 +2106,14 @@ CONFIG_PROC_FS=y
1890CONFIG_PROC_KCORE=y 2106CONFIG_PROC_KCORE=y
1891CONFIG_PROC_VMCORE=y 2107CONFIG_PROC_VMCORE=y
1892CONFIG_PROC_SYSCTL=y 2108CONFIG_PROC_SYSCTL=y
2109CONFIG_PROC_PAGE_MONITOR=y
1893CONFIG_SYSFS=y 2110CONFIG_SYSFS=y
1894CONFIG_TMPFS=y 2111CONFIG_TMPFS=y
1895CONFIG_TMPFS_POSIX_ACL=y 2112CONFIG_TMPFS_POSIX_ACL=y
1896CONFIG_HUGETLBFS=y 2113CONFIG_HUGETLBFS=y
1897CONFIG_HUGETLB_PAGE=y 2114CONFIG_HUGETLB_PAGE=y
1898# CONFIG_CONFIGFS_FS is not set 2115# CONFIG_CONFIGFS_FS is not set
1899 2116CONFIG_MISC_FILESYSTEMS=y
1900#
1901# Miscellaneous filesystems
1902#
1903# CONFIG_ADFS_FS is not set 2117# CONFIG_ADFS_FS is not set
1904# CONFIG_AFFS_FS is not set 2118# CONFIG_AFFS_FS is not set
1905# CONFIG_ECRYPT_FS is not set 2119# CONFIG_ECRYPT_FS is not set
@@ -1909,6 +2123,7 @@ CONFIG_HUGETLB_PAGE=y
1909# CONFIG_BFS_FS is not set 2123# CONFIG_BFS_FS is not set
1910# CONFIG_EFS_FS is not set 2124# CONFIG_EFS_FS is not set
1911# CONFIG_CRAMFS is not set 2125# CONFIG_CRAMFS is not set
2126# CONFIG_SQUASHFS is not set
1912# CONFIG_VXFS_FS is not set 2127# CONFIG_VXFS_FS is not set
1913# CONFIG_MINIX_FS is not set 2128# CONFIG_MINIX_FS is not set
1914# CONFIG_OMFS_FS is not set 2129# CONFIG_OMFS_FS is not set
@@ -1930,6 +2145,7 @@ CONFIG_NFS_ACL_SUPPORT=y
1930CONFIG_NFS_COMMON=y 2145CONFIG_NFS_COMMON=y
1931CONFIG_SUNRPC=y 2146CONFIG_SUNRPC=y
1932CONFIG_SUNRPC_GSS=y 2147CONFIG_SUNRPC_GSS=y
2148# CONFIG_SUNRPC_REGISTER_V4 is not set
1933CONFIG_RPCSEC_GSS_KRB5=y 2149CONFIG_RPCSEC_GSS_KRB5=y
1934# CONFIG_RPCSEC_GSS_SPKM3 is not set 2150# CONFIG_RPCSEC_GSS_SPKM3 is not set
1935# CONFIG_SMB_FS is not set 2151# CONFIG_SMB_FS is not set
@@ -2006,7 +2222,7 @@ CONFIG_NLS_UTF8=y
2006# 2222#
2007CONFIG_TRACE_IRQFLAGS_SUPPORT=y 2223CONFIG_TRACE_IRQFLAGS_SUPPORT=y
2008CONFIG_PRINTK_TIME=y 2224CONFIG_PRINTK_TIME=y
2009CONFIG_ENABLE_WARN_DEPRECATED=y 2225# CONFIG_ENABLE_WARN_DEPRECATED is not set
2010CONFIG_ENABLE_MUST_CHECK=y 2226CONFIG_ENABLE_MUST_CHECK=y
2011CONFIG_FRAME_WARN=2048 2227CONFIG_FRAME_WARN=2048
2012CONFIG_MAGIC_SYSRQ=y 2228CONFIG_MAGIC_SYSRQ=y
@@ -2035,40 +2251,60 @@ CONFIG_TIMER_STATS=y
2035CONFIG_DEBUG_BUGVERBOSE=y 2251CONFIG_DEBUG_BUGVERBOSE=y
2036# CONFIG_DEBUG_INFO is not set 2252# CONFIG_DEBUG_INFO is not set
2037# CONFIG_DEBUG_VM is not set 2253# CONFIG_DEBUG_VM is not set
2254# CONFIG_DEBUG_VIRTUAL is not set
2038# CONFIG_DEBUG_WRITECOUNT is not set 2255# CONFIG_DEBUG_WRITECOUNT is not set
2039CONFIG_DEBUG_MEMORY_INIT=y 2256CONFIG_DEBUG_MEMORY_INIT=y
2040# CONFIG_DEBUG_LIST is not set 2257# CONFIG_DEBUG_LIST is not set
2041# CONFIG_DEBUG_SG is not set 2258# CONFIG_DEBUG_SG is not set
2259# CONFIG_DEBUG_NOTIFIERS is not set
2260CONFIG_ARCH_WANT_FRAME_POINTERS=y
2042CONFIG_FRAME_POINTER=y 2261CONFIG_FRAME_POINTER=y
2043# CONFIG_BOOT_PRINTK_DELAY is not set 2262# CONFIG_BOOT_PRINTK_DELAY is not set
2044# CONFIG_RCU_TORTURE_TEST is not set 2263# CONFIG_RCU_TORTURE_TEST is not set
2264# CONFIG_RCU_CPU_STALL_DETECTOR is not set
2045# CONFIG_KPROBES_SANITY_TEST is not set 2265# CONFIG_KPROBES_SANITY_TEST is not set
2046# CONFIG_BACKTRACE_SELF_TEST is not set 2266# CONFIG_BACKTRACE_SELF_TEST is not set
2267# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
2047# CONFIG_LKDTM is not set 2268# CONFIG_LKDTM is not set
2048# CONFIG_FAULT_INJECTION is not set 2269# CONFIG_FAULT_INJECTION is not set
2049# CONFIG_LATENCYTOP is not set 2270# CONFIG_LATENCYTOP is not set
2050CONFIG_SYSCTL_SYSCALL_CHECK=y 2271CONFIG_SYSCTL_SYSCALL_CHECK=y
2051CONFIG_HAVE_FTRACE=y 2272CONFIG_USER_STACKTRACE_SUPPORT=y
2273CONFIG_HAVE_FUNCTION_TRACER=y
2274CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
2275CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
2052CONFIG_HAVE_DYNAMIC_FTRACE=y 2276CONFIG_HAVE_DYNAMIC_FTRACE=y
2053# CONFIG_FTRACE is not set 2277CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
2278CONFIG_HAVE_HW_BRANCH_TRACER=y
2279
2280#
2281# Tracers
2282#
2283# CONFIG_FUNCTION_TRACER is not set
2054# CONFIG_IRQSOFF_TRACER is not set 2284# CONFIG_IRQSOFF_TRACER is not set
2055# CONFIG_SYSPROF_TRACER is not set 2285# CONFIG_SYSPROF_TRACER is not set
2056# CONFIG_SCHED_TRACER is not set 2286# CONFIG_SCHED_TRACER is not set
2057# CONFIG_CONTEXT_SWITCH_TRACER is not set 2287# CONFIG_CONTEXT_SWITCH_TRACER is not set
2288# CONFIG_BOOT_TRACER is not set
2289# CONFIG_TRACE_BRANCH_PROFILING is not set
2290# CONFIG_POWER_TRACER is not set
2291# CONFIG_STACK_TRACER is not set
2292# CONFIG_HW_BRANCH_TRACER is not set
2058CONFIG_PROVIDE_OHCI1394_DMA_INIT=y 2293CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
2294# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
2059# CONFIG_SAMPLES is not set 2295# CONFIG_SAMPLES is not set
2060CONFIG_HAVE_ARCH_KGDB=y 2296CONFIG_HAVE_ARCH_KGDB=y
2061# CONFIG_KGDB is not set 2297# CONFIG_KGDB is not set
2062# CONFIG_STRICT_DEVMEM is not set 2298# CONFIG_STRICT_DEVMEM is not set
2063CONFIG_X86_VERBOSE_BOOTUP=y 2299CONFIG_X86_VERBOSE_BOOTUP=y
2064CONFIG_EARLY_PRINTK=y 2300CONFIG_EARLY_PRINTK=y
2301CONFIG_EARLY_PRINTK_DBGP=y
2065CONFIG_DEBUG_STACKOVERFLOW=y 2302CONFIG_DEBUG_STACKOVERFLOW=y
2066CONFIG_DEBUG_STACK_USAGE=y 2303CONFIG_DEBUG_STACK_USAGE=y
2067# CONFIG_DEBUG_PAGEALLOC is not set 2304# CONFIG_DEBUG_PAGEALLOC is not set
2068# CONFIG_DEBUG_PER_CPU_MAPS is not set 2305# CONFIG_DEBUG_PER_CPU_MAPS is not set
2069# CONFIG_X86_PTDUMP is not set 2306# CONFIG_X86_PTDUMP is not set
2070CONFIG_DEBUG_RODATA=y 2307CONFIG_DEBUG_RODATA=y
2071# CONFIG_DIRECT_GBPAGES is not set
2072# CONFIG_DEBUG_RODATA_TEST is not set 2308# CONFIG_DEBUG_RODATA_TEST is not set
2073CONFIG_DEBUG_NX_TEST=m 2309CONFIG_DEBUG_NX_TEST=m
2074# CONFIG_IOMMU_DEBUG is not set 2310# CONFIG_IOMMU_DEBUG is not set
@@ -2092,8 +2328,10 @@ CONFIG_OPTIMIZE_INLINING=y
2092CONFIG_KEYS=y 2328CONFIG_KEYS=y
2093CONFIG_KEYS_DEBUG_PROC_KEYS=y 2329CONFIG_KEYS_DEBUG_PROC_KEYS=y
2094CONFIG_SECURITY=y 2330CONFIG_SECURITY=y
2331# CONFIG_SECURITYFS is not set
2095CONFIG_SECURITY_NETWORK=y 2332CONFIG_SECURITY_NETWORK=y
2096# CONFIG_SECURITY_NETWORK_XFRM is not set 2333# CONFIG_SECURITY_NETWORK_XFRM is not set
2334# CONFIG_SECURITY_PATH is not set
2097CONFIG_SECURITY_FILE_CAPABILITIES=y 2335CONFIG_SECURITY_FILE_CAPABILITIES=y
2098# CONFIG_SECURITY_ROOTPLUG is not set 2336# CONFIG_SECURITY_ROOTPLUG is not set
2099CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 2337CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536
@@ -2104,7 +2342,6 @@ CONFIG_SECURITY_SELINUX_DISABLE=y
2104CONFIG_SECURITY_SELINUX_DEVELOP=y 2342CONFIG_SECURITY_SELINUX_DEVELOP=y
2105CONFIG_SECURITY_SELINUX_AVC_STATS=y 2343CONFIG_SECURITY_SELINUX_AVC_STATS=y
2106CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 2344CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
2107# CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set
2108# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set 2345# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
2109# CONFIG_SECURITY_SMACK is not set 2346# CONFIG_SECURITY_SMACK is not set
2110CONFIG_CRYPTO=y 2347CONFIG_CRYPTO=y
@@ -2112,11 +2349,18 @@ CONFIG_CRYPTO=y
2112# 2349#
2113# Crypto core or helper 2350# Crypto core or helper
2114# 2351#
2352# CONFIG_CRYPTO_FIPS is not set
2115CONFIG_CRYPTO_ALGAPI=y 2353CONFIG_CRYPTO_ALGAPI=y
2354CONFIG_CRYPTO_ALGAPI2=y
2116CONFIG_CRYPTO_AEAD=y 2355CONFIG_CRYPTO_AEAD=y
2356CONFIG_CRYPTO_AEAD2=y
2117CONFIG_CRYPTO_BLKCIPHER=y 2357CONFIG_CRYPTO_BLKCIPHER=y
2358CONFIG_CRYPTO_BLKCIPHER2=y
2118CONFIG_CRYPTO_HASH=y 2359CONFIG_CRYPTO_HASH=y
2360CONFIG_CRYPTO_HASH2=y
2361CONFIG_CRYPTO_RNG2=y
2119CONFIG_CRYPTO_MANAGER=y 2362CONFIG_CRYPTO_MANAGER=y
2363CONFIG_CRYPTO_MANAGER2=y
2120# CONFIG_CRYPTO_GF128MUL is not set 2364# CONFIG_CRYPTO_GF128MUL is not set
2121# CONFIG_CRYPTO_NULL is not set 2365# CONFIG_CRYPTO_NULL is not set
2122# CONFIG_CRYPTO_CRYPTD is not set 2366# CONFIG_CRYPTO_CRYPTD is not set
@@ -2151,6 +2395,7 @@ CONFIG_CRYPTO_HMAC=y
2151# Digest 2395# Digest
2152# 2396#
2153# CONFIG_CRYPTO_CRC32C is not set 2397# CONFIG_CRYPTO_CRC32C is not set
2398# CONFIG_CRYPTO_CRC32C_INTEL is not set
2154# CONFIG_CRYPTO_MD4 is not set 2399# CONFIG_CRYPTO_MD4 is not set
2155CONFIG_CRYPTO_MD5=y 2400CONFIG_CRYPTO_MD5=y
2156# CONFIG_CRYPTO_MICHAEL_MIC is not set 2401# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -2191,6 +2436,11 @@ CONFIG_CRYPTO_DES=y
2191# 2436#
2192# CONFIG_CRYPTO_DEFLATE is not set 2437# CONFIG_CRYPTO_DEFLATE is not set
2193# CONFIG_CRYPTO_LZO is not set 2438# CONFIG_CRYPTO_LZO is not set
2439
2440#
2441# Random Number Generation
2442#
2443# CONFIG_CRYPTO_ANSI_CPRNG is not set
2194CONFIG_CRYPTO_HW=y 2444CONFIG_CRYPTO_HW=y
2195# CONFIG_CRYPTO_DEV_HIFN_795X is not set 2445# CONFIG_CRYPTO_DEV_HIFN_795X is not set
2196CONFIG_HAVE_KVM=y 2446CONFIG_HAVE_KVM=y
@@ -2205,6 +2455,7 @@ CONFIG_VIRTUALIZATION=y
2205CONFIG_BITREVERSE=y 2455CONFIG_BITREVERSE=y
2206CONFIG_GENERIC_FIND_FIRST_BIT=y 2456CONFIG_GENERIC_FIND_FIRST_BIT=y
2207CONFIG_GENERIC_FIND_NEXT_BIT=y 2457CONFIG_GENERIC_FIND_NEXT_BIT=y
2458CONFIG_GENERIC_FIND_LAST_BIT=y
2208# CONFIG_CRC_CCITT is not set 2459# CONFIG_CRC_CCITT is not set
2209# CONFIG_CRC16 is not set 2460# CONFIG_CRC16 is not set
2210CONFIG_CRC_T10DIF=y 2461CONFIG_CRC_T10DIF=y
diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
index 9dabd00e9805..588a7aa937e1 100644
--- a/arch/x86/ia32/ia32_signal.c
+++ b/arch/x86/ia32/ia32_signal.c
@@ -33,8 +33,6 @@
33#include <asm/sigframe.h> 33#include <asm/sigframe.h>
34#include <asm/sys_ia32.h> 34#include <asm/sys_ia32.h>
35 35
36#define DEBUG_SIG 0
37
38#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) 36#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
39 37
40#define FIX_EFLAGS (X86_EFLAGS_AC | X86_EFLAGS_OF | \ 38#define FIX_EFLAGS (X86_EFLAGS_AC | X86_EFLAGS_OF | \
@@ -46,78 +44,83 @@ void signal_fault(struct pt_regs *regs, void __user *frame, char *where);
46 44
47int copy_siginfo_to_user32(compat_siginfo_t __user *to, siginfo_t *from) 45int copy_siginfo_to_user32(compat_siginfo_t __user *to, siginfo_t *from)
48{ 46{
49 int err; 47 int err = 0;
50 48
51 if (!access_ok(VERIFY_WRITE, to, sizeof(compat_siginfo_t))) 49 if (!access_ok(VERIFY_WRITE, to, sizeof(compat_siginfo_t)))
52 return -EFAULT; 50 return -EFAULT;
53 51
54 /* If you change siginfo_t structure, please make sure that 52 put_user_try {
55 this code is fixed accordingly. 53 /* If you change siginfo_t structure, please make sure that
56 It should never copy any pad contained in the structure 54 this code is fixed accordingly.
57 to avoid security leaks, but must copy the generic 55 It should never copy any pad contained in the structure
58 3 ints plus the relevant union member. */ 56 to avoid security leaks, but must copy the generic
59 err = __put_user(from->si_signo, &to->si_signo); 57 3 ints plus the relevant union member. */
60 err |= __put_user(from->si_errno, &to->si_errno); 58 put_user_ex(from->si_signo, &to->si_signo);
61 err |= __put_user((short)from->si_code, &to->si_code); 59 put_user_ex(from->si_errno, &to->si_errno);
62 60 put_user_ex((short)from->si_code, &to->si_code);
63 if (from->si_code < 0) { 61
64 err |= __put_user(from->si_pid, &to->si_pid); 62 if (from->si_code < 0) {
65 err |= __put_user(from->si_uid, &to->si_uid); 63 put_user_ex(from->si_pid, &to->si_pid);
66 err |= __put_user(ptr_to_compat(from->si_ptr), &to->si_ptr); 64 put_user_ex(from->si_uid, &to->si_uid);
67 } else { 65 put_user_ex(ptr_to_compat(from->si_ptr), &to->si_ptr);
68 /* 66 } else {
69 * First 32bits of unions are always present: 67 /*
70 * si_pid === si_band === si_tid === si_addr(LS half) 68 * First 32bits of unions are always present:
71 */ 69 * si_pid === si_band === si_tid === si_addr(LS half)
72 err |= __put_user(from->_sifields._pad[0], 70 */
73 &to->_sifields._pad[0]); 71 put_user_ex(from->_sifields._pad[0],
74 switch (from->si_code >> 16) { 72 &to->_sifields._pad[0]);
75 case __SI_FAULT >> 16: 73 switch (from->si_code >> 16) {
76 break; 74 case __SI_FAULT >> 16:
77 case __SI_CHLD >> 16: 75 break;
78 err |= __put_user(from->si_utime, &to->si_utime); 76 case __SI_CHLD >> 16:
79 err |= __put_user(from->si_stime, &to->si_stime); 77 put_user_ex(from->si_utime, &to->si_utime);
80 err |= __put_user(from->si_status, &to->si_status); 78 put_user_ex(from->si_stime, &to->si_stime);
81 /* FALL THROUGH */ 79 put_user_ex(from->si_status, &to->si_status);
82 default: 80 /* FALL THROUGH */
83 case __SI_KILL >> 16: 81 default:
84 err |= __put_user(from->si_uid, &to->si_uid); 82 case __SI_KILL >> 16:
85 break; 83 put_user_ex(from->si_uid, &to->si_uid);
86 case __SI_POLL >> 16: 84 break;
87 err |= __put_user(from->si_fd, &to->si_fd); 85 case __SI_POLL >> 16:
88 break; 86 put_user_ex(from->si_fd, &to->si_fd);
89 case __SI_TIMER >> 16: 87 break;
90 err |= __put_user(from->si_overrun, &to->si_overrun); 88 case __SI_TIMER >> 16:
91 err |= __put_user(ptr_to_compat(from->si_ptr), 89 put_user_ex(from->si_overrun, &to->si_overrun);
92 &to->si_ptr); 90 put_user_ex(ptr_to_compat(from->si_ptr),
93 break; 91 &to->si_ptr);
94 /* This is not generated by the kernel as of now. */ 92 break;
95 case __SI_RT >> 16: 93 /* This is not generated by the kernel as of now. */
96 case __SI_MESGQ >> 16: 94 case __SI_RT >> 16:
97 err |= __put_user(from->si_uid, &to->si_uid); 95 case __SI_MESGQ >> 16:
98 err |= __put_user(from->si_int, &to->si_int); 96 put_user_ex(from->si_uid, &to->si_uid);
99 break; 97 put_user_ex(from->si_int, &to->si_int);
98 break;
99 }
100 } 100 }
101 } 101 } put_user_catch(err);
102
102 return err; 103 return err;
103} 104}
104 105
105int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from) 106int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from)
106{ 107{
107 int err; 108 int err = 0;
108 u32 ptr32; 109 u32 ptr32;
109 110
110 if (!access_ok(VERIFY_READ, from, sizeof(compat_siginfo_t))) 111 if (!access_ok(VERIFY_READ, from, sizeof(compat_siginfo_t)))
111 return -EFAULT; 112 return -EFAULT;
112 113
113 err = __get_user(to->si_signo, &from->si_signo); 114 get_user_try {
114 err |= __get_user(to->si_errno, &from->si_errno); 115 get_user_ex(to->si_signo, &from->si_signo);
115 err |= __get_user(to->si_code, &from->si_code); 116 get_user_ex(to->si_errno, &from->si_errno);
117 get_user_ex(to->si_code, &from->si_code);
116 118
117 err |= __get_user(to->si_pid, &from->si_pid); 119 get_user_ex(to->si_pid, &from->si_pid);
118 err |= __get_user(to->si_uid, &from->si_uid); 120 get_user_ex(to->si_uid, &from->si_uid);
119 err |= __get_user(ptr32, &from->si_ptr); 121 get_user_ex(ptr32, &from->si_ptr);
120 to->si_ptr = compat_ptr(ptr32); 122 to->si_ptr = compat_ptr(ptr32);
123 } get_user_catch(err);
121 124
122 return err; 125 return err;
123} 126}
@@ -142,17 +145,23 @@ asmlinkage long sys32_sigaltstack(const stack_ia32_t __user *uss_ptr,
142 struct pt_regs *regs) 145 struct pt_regs *regs)
143{ 146{
144 stack_t uss, uoss; 147 stack_t uss, uoss;
145 int ret; 148 int ret, err = 0;
146 mm_segment_t seg; 149 mm_segment_t seg;
147 150
148 if (uss_ptr) { 151 if (uss_ptr) {
149 u32 ptr; 152 u32 ptr;
150 153
151 memset(&uss, 0, sizeof(stack_t)); 154 memset(&uss, 0, sizeof(stack_t));
152 if (!access_ok(VERIFY_READ, uss_ptr, sizeof(stack_ia32_t)) || 155 if (!access_ok(VERIFY_READ, uss_ptr, sizeof(stack_ia32_t)))
153 __get_user(ptr, &uss_ptr->ss_sp) || 156 return -EFAULT;
154 __get_user(uss.ss_flags, &uss_ptr->ss_flags) || 157
155 __get_user(uss.ss_size, &uss_ptr->ss_size)) 158 get_user_try {
159 get_user_ex(ptr, &uss_ptr->ss_sp);
160 get_user_ex(uss.ss_flags, &uss_ptr->ss_flags);
161 get_user_ex(uss.ss_size, &uss_ptr->ss_size);
162 } get_user_catch(err);
163
164 if (err)
156 return -EFAULT; 165 return -EFAULT;
157 uss.ss_sp = compat_ptr(ptr); 166 uss.ss_sp = compat_ptr(ptr);
158 } 167 }
@@ -161,10 +170,16 @@ asmlinkage long sys32_sigaltstack(const stack_ia32_t __user *uss_ptr,
161 ret = do_sigaltstack(uss_ptr ? &uss : NULL, &uoss, regs->sp); 170 ret = do_sigaltstack(uss_ptr ? &uss : NULL, &uoss, regs->sp);
162 set_fs(seg); 171 set_fs(seg);
163 if (ret >= 0 && uoss_ptr) { 172 if (ret >= 0 && uoss_ptr) {
164 if (!access_ok(VERIFY_WRITE, uoss_ptr, sizeof(stack_ia32_t)) || 173 if (!access_ok(VERIFY_WRITE, uoss_ptr, sizeof(stack_ia32_t)))
165 __put_user(ptr_to_compat(uoss.ss_sp), &uoss_ptr->ss_sp) || 174 return -EFAULT;
166 __put_user(uoss.ss_flags, &uoss_ptr->ss_flags) || 175
167 __put_user(uoss.ss_size, &uoss_ptr->ss_size)) 176 put_user_try {
177 put_user_ex(ptr_to_compat(uoss.ss_sp), &uoss_ptr->ss_sp);
178 put_user_ex(uoss.ss_flags, &uoss_ptr->ss_flags);
179 put_user_ex(uoss.ss_size, &uoss_ptr->ss_size);
180 } put_user_catch(err);
181
182 if (err)
168 ret = -EFAULT; 183 ret = -EFAULT;
169 } 184 }
170 return ret; 185 return ret;
@@ -173,75 +188,78 @@ asmlinkage long sys32_sigaltstack(const stack_ia32_t __user *uss_ptr,
173/* 188/*
174 * Do a signal return; undo the signal stack. 189 * Do a signal return; undo the signal stack.
175 */ 190 */
191#define loadsegment_gs(v) load_gs_index(v)
192#define loadsegment_fs(v) loadsegment(fs, v)
193#define loadsegment_ds(v) loadsegment(ds, v)
194#define loadsegment_es(v) loadsegment(es, v)
195
196#define get_user_seg(seg) ({ unsigned int v; savesegment(seg, v); v; })
197#define set_user_seg(seg, v) loadsegment_##seg(v)
198
176#define COPY(x) { \ 199#define COPY(x) { \
177 err |= __get_user(regs->x, &sc->x); \ 200 get_user_ex(regs->x, &sc->x); \
178} 201}
179 202
180#define COPY_SEG_CPL3(seg) { \ 203#define GET_SEG(seg) ({ \
181 unsigned short tmp; \ 204 unsigned short tmp; \
182 err |= __get_user(tmp, &sc->seg); \ 205 get_user_ex(tmp, &sc->seg); \
183 regs->seg = tmp | 3; \ 206 tmp; \
184} 207})
208
209#define COPY_SEG_CPL3(seg) do { \
210 regs->seg = GET_SEG(seg) | 3; \
211} while (0)
185 212
186#define RELOAD_SEG(seg) { \ 213#define RELOAD_SEG(seg) { \
187 unsigned int cur, pre; \ 214 unsigned int pre = GET_SEG(seg); \
188 err |= __get_user(pre, &sc->seg); \ 215 unsigned int cur = get_user_seg(seg); \
189 savesegment(seg, cur); \
190 pre |= 3; \ 216 pre |= 3; \
191 if (pre != cur) \ 217 if (pre != cur) \
192 loadsegment(seg, pre); \ 218 set_user_seg(seg, pre); \
193} 219}
194 220
195static int ia32_restore_sigcontext(struct pt_regs *regs, 221static int ia32_restore_sigcontext(struct pt_regs *regs,
196 struct sigcontext_ia32 __user *sc, 222 struct sigcontext_ia32 __user *sc,
197 unsigned int *pax) 223 unsigned int *pax)
198{ 224{
199 unsigned int tmpflags, gs, oldgs, err = 0; 225 unsigned int tmpflags, err = 0;
200 void __user *buf; 226 void __user *buf;
201 u32 tmp; 227 u32 tmp;
202 228
203 /* Always make any pending restarted system calls return -EINTR */ 229 /* Always make any pending restarted system calls return -EINTR */
204 current_thread_info()->restart_block.fn = do_no_restart_syscall; 230 current_thread_info()->restart_block.fn = do_no_restart_syscall;
205 231
206#if DEBUG_SIG 232 get_user_try {
207 printk(KERN_DEBUG "SIG restore_sigcontext: " 233 /*
208 "sc=%p err(%x) eip(%x) cs(%x) flg(%x)\n", 234 * Reload fs and gs if they have changed in the signal
209 sc, sc->err, sc->ip, sc->cs, sc->flags); 235 * handler. This does not handle long fs/gs base changes in
210#endif 236 * the handler, but does not clobber them at least in the
211 237 * normal case.
212 /* 238 */
213 * Reload fs and gs if they have changed in the signal 239 RELOAD_SEG(gs);
214 * handler. This does not handle long fs/gs base changes in 240 RELOAD_SEG(fs);
215 * the handler, but does not clobber them at least in the 241 RELOAD_SEG(ds);
216 * normal case. 242 RELOAD_SEG(es);
217 */ 243
218 err |= __get_user(gs, &sc->gs); 244 COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx);
219 gs |= 3; 245 COPY(dx); COPY(cx); COPY(ip);
220 savesegment(gs, oldgs); 246 /* Don't touch extended registers */
221 if (gs != oldgs) 247
222 load_gs_index(gs); 248 COPY_SEG_CPL3(cs);
223 249 COPY_SEG_CPL3(ss);
224 RELOAD_SEG(fs); 250
225 RELOAD_SEG(ds); 251 get_user_ex(tmpflags, &sc->flags);
226 RELOAD_SEG(es); 252 regs->flags = (regs->flags & ~FIX_EFLAGS) | (tmpflags & FIX_EFLAGS);
227 253 /* disable syscall checks */
228 COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx); 254 regs->orig_ax = -1;
229 COPY(dx); COPY(cx); COPY(ip); 255
230 /* Don't touch extended registers */ 256 get_user_ex(tmp, &sc->fpstate);
231 257 buf = compat_ptr(tmp);
232 COPY_SEG_CPL3(cs); 258 err |= restore_i387_xstate_ia32(buf);
233 COPY_SEG_CPL3(ss); 259
234 260 get_user_ex(*pax, &sc->ax);
235 err |= __get_user(tmpflags, &sc->flags); 261 } get_user_catch(err);
236 regs->flags = (regs->flags & ~FIX_EFLAGS) | (tmpflags & FIX_EFLAGS); 262
237 /* disable syscall checks */
238 regs->orig_ax = -1;
239
240 err |= __get_user(tmp, &sc->fpstate);
241 buf = compat_ptr(tmp);
242 err |= restore_i387_xstate_ia32(buf);
243
244 err |= __get_user(*pax, &sc->ax);
245 return err; 263 return err;
246} 264}
247 265
@@ -317,38 +335,36 @@ static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc,
317 void __user *fpstate, 335 void __user *fpstate,
318 struct pt_regs *regs, unsigned int mask) 336 struct pt_regs *regs, unsigned int mask)
319{ 337{
320 int tmp, err = 0; 338 int err = 0;
321 339
322 savesegment(gs, tmp); 340 put_user_try {
323 err |= __put_user(tmp, (unsigned int __user *)&sc->gs); 341 put_user_ex(get_user_seg(gs), (unsigned int __user *)&sc->gs);
324 savesegment(fs, tmp); 342 put_user_ex(get_user_seg(fs), (unsigned int __user *)&sc->fs);
325 err |= __put_user(tmp, (unsigned int __user *)&sc->fs); 343 put_user_ex(get_user_seg(ds), (unsigned int __user *)&sc->ds);
326 savesegment(ds, tmp); 344 put_user_ex(get_user_seg(es), (unsigned int __user *)&sc->es);
327 err |= __put_user(tmp, (unsigned int __user *)&sc->ds); 345
328 savesegment(es, tmp); 346 put_user_ex(regs->di, &sc->di);
329 err |= __put_user(tmp, (unsigned int __user *)&sc->es); 347 put_user_ex(regs->si, &sc->si);
330 348 put_user_ex(regs->bp, &sc->bp);
331 err |= __put_user(regs->di, &sc->di); 349 put_user_ex(regs->sp, &sc->sp);
332 err |= __put_user(regs->si, &sc->si); 350 put_user_ex(regs->bx, &sc->bx);
333 err |= __put_user(regs->bp, &sc->bp); 351 put_user_ex(regs->dx, &sc->dx);
334 err |= __put_user(regs->sp, &sc->sp); 352 put_user_ex(regs->cx, &sc->cx);
335 err |= __put_user(regs->bx, &sc->bx); 353 put_user_ex(regs->ax, &sc->ax);
336 err |= __put_user(regs->dx, &sc->dx); 354 put_user_ex(current->thread.trap_no, &sc->trapno);
337 err |= __put_user(regs->cx, &sc->cx); 355 put_user_ex(current->thread.error_code, &sc->err);
338 err |= __put_user(regs->ax, &sc->ax); 356 put_user_ex(regs->ip, &sc->ip);
339 err |= __put_user(current->thread.trap_no, &sc->trapno); 357 put_user_ex(regs->cs, (unsigned int __user *)&sc->cs);
340 err |= __put_user(current->thread.error_code, &sc->err); 358 put_user_ex(regs->flags, &sc->flags);
341 err |= __put_user(regs->ip, &sc->ip); 359 put_user_ex(regs->sp, &sc->sp_at_signal);
342 err |= __put_user(regs->cs, (unsigned int __user *)&sc->cs); 360 put_user_ex(regs->ss, (unsigned int __user *)&sc->ss);
343 err |= __put_user(regs->flags, &sc->flags); 361
344 err |= __put_user(regs->sp, &sc->sp_at_signal); 362 put_user_ex(ptr_to_compat(fpstate), &sc->fpstate);
345 err |= __put_user(regs->ss, (unsigned int __user *)&sc->ss); 363
346 364 /* non-iBCS2 extensions.. */
347 err |= __put_user(ptr_to_compat(fpstate), &sc->fpstate); 365 put_user_ex(mask, &sc->oldmask);
348 366 put_user_ex(current->thread.cr2, &sc->cr2);
349 /* non-iBCS2 extensions.. */ 367 } put_user_catch(err);
350 err |= __put_user(mask, &sc->oldmask);
351 err |= __put_user(current->thread.cr2, &sc->cr2);
352 368
353 return err; 369 return err;
354} 370}
@@ -437,13 +453,17 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
437 else 453 else
438 restorer = &frame->retcode; 454 restorer = &frame->retcode;
439 } 455 }
440 err |= __put_user(ptr_to_compat(restorer), &frame->pretcode);
441 456
442 /* 457 put_user_try {
443 * These are actually not used anymore, but left because some 458 put_user_ex(ptr_to_compat(restorer), &frame->pretcode);
444 * gdb versions depend on them as a marker. 459
445 */ 460 /*
446 err |= __put_user(*((u64 *)&code), (u64 *)frame->retcode); 461 * These are actually not used anymore, but left because some
462 * gdb versions depend on them as a marker.
463 */
464 put_user_ex(*((u64 *)&code), (u64 *)frame->retcode);
465 } put_user_catch(err);
466
447 if (err) 467 if (err)
448 return -EFAULT; 468 return -EFAULT;
449 469
@@ -462,11 +482,6 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
462 regs->cs = __USER32_CS; 482 regs->cs = __USER32_CS;
463 regs->ss = __USER32_DS; 483 regs->ss = __USER32_DS;
464 484
465#if DEBUG_SIG
466 printk(KERN_DEBUG "SIG deliver (%s:%d): sp=%p pc=%lx ra=%u\n",
467 current->comm, current->pid, frame, regs->ip, frame->pretcode);
468#endif
469
470 return 0; 485 return 0;
471} 486}
472 487
@@ -496,41 +511,40 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
496 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 511 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
497 return -EFAULT; 512 return -EFAULT;
498 513
499 err |= __put_user(sig, &frame->sig); 514 put_user_try {
500 err |= __put_user(ptr_to_compat(&frame->info), &frame->pinfo); 515 put_user_ex(sig, &frame->sig);
501 err |= __put_user(ptr_to_compat(&frame->uc), &frame->puc); 516 put_user_ex(ptr_to_compat(&frame->info), &frame->pinfo);
502 err |= copy_siginfo_to_user32(&frame->info, info); 517 put_user_ex(ptr_to_compat(&frame->uc), &frame->puc);
503 if (err) 518 err |= copy_siginfo_to_user32(&frame->info, info);
504 return -EFAULT;
505 519
506 /* Create the ucontext. */ 520 /* Create the ucontext. */
507 if (cpu_has_xsave) 521 if (cpu_has_xsave)
508 err |= __put_user(UC_FP_XSTATE, &frame->uc.uc_flags); 522 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags);
509 else 523 else
510 err |= __put_user(0, &frame->uc.uc_flags); 524 put_user_ex(0, &frame->uc.uc_flags);
511 err |= __put_user(0, &frame->uc.uc_link); 525 put_user_ex(0, &frame->uc.uc_link);
512 err |= __put_user(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); 526 put_user_ex(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp);
513 err |= __put_user(sas_ss_flags(regs->sp), 527 put_user_ex(sas_ss_flags(regs->sp),
514 &frame->uc.uc_stack.ss_flags); 528 &frame->uc.uc_stack.ss_flags);
515 err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); 529 put_user_ex(current->sas_ss_size, &frame->uc.uc_stack.ss_size);
516 err |= ia32_setup_sigcontext(&frame->uc.uc_mcontext, fpstate, 530 err |= ia32_setup_sigcontext(&frame->uc.uc_mcontext, fpstate,
517 regs, set->sig[0]); 531 regs, set->sig[0]);
518 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); 532 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
519 if (err) 533
520 return -EFAULT; 534 if (ka->sa.sa_flags & SA_RESTORER)
535 restorer = ka->sa.sa_restorer;
536 else
537 restorer = VDSO32_SYMBOL(current->mm->context.vdso,
538 rt_sigreturn);
539 put_user_ex(ptr_to_compat(restorer), &frame->pretcode);
540
541 /*
542 * Not actually used anymore, but left because some gdb
543 * versions need it.
544 */
545 put_user_ex(*((u64 *)&code), (u64 *)frame->retcode);
546 } put_user_catch(err);
521 547
522 if (ka->sa.sa_flags & SA_RESTORER)
523 restorer = ka->sa.sa_restorer;
524 else
525 restorer = VDSO32_SYMBOL(current->mm->context.vdso,
526 rt_sigreturn);
527 err |= __put_user(ptr_to_compat(restorer), &frame->pretcode);
528
529 /*
530 * Not actually used anymore, but left because some gdb
531 * versions need it.
532 */
533 err |= __put_user(*((u64 *)&code), (u64 *)frame->retcode);
534 if (err) 548 if (err)
535 return -EFAULT; 549 return -EFAULT;
536 550
@@ -549,10 +563,5 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
549 regs->cs = __USER32_CS; 563 regs->cs = __USER32_CS;
550 regs->ss = __USER32_DS; 564 regs->ss = __USER32_DS;
551 565
552#if DEBUG_SIG
553 printk(KERN_DEBUG "SIG deliver (%s:%d): sp=%p pc=%lx ra=%u\n",
554 current->comm, current->pid, frame, regs->ip, frame->pretcode);
555#endif
556
557 return 0; 566 return 0;
558} 567}
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
index 256b00b61892..097a6b64c24d 100644
--- a/arch/x86/ia32/ia32entry.S
+++ b/arch/x86/ia32/ia32entry.S
@@ -112,8 +112,8 @@ ENTRY(ia32_sysenter_target)
112 CFI_DEF_CFA rsp,0 112 CFI_DEF_CFA rsp,0
113 CFI_REGISTER rsp,rbp 113 CFI_REGISTER rsp,rbp
114 SWAPGS_UNSAFE_STACK 114 SWAPGS_UNSAFE_STACK
115 movq %gs:pda_kernelstack, %rsp 115 movq PER_CPU_VAR(kernel_stack), %rsp
116 addq $(PDA_STACKOFFSET),%rsp 116 addq $(KERNEL_STACK_OFFSET),%rsp
117 /* 117 /*
118 * No need to follow this irqs on/off section: the syscall 118 * No need to follow this irqs on/off section: the syscall
119 * disabled irqs, here we enable it straight after entry: 119 * disabled irqs, here we enable it straight after entry:
@@ -273,13 +273,13 @@ ENDPROC(ia32_sysenter_target)
273ENTRY(ia32_cstar_target) 273ENTRY(ia32_cstar_target)
274 CFI_STARTPROC32 simple 274 CFI_STARTPROC32 simple
275 CFI_SIGNAL_FRAME 275 CFI_SIGNAL_FRAME
276 CFI_DEF_CFA rsp,PDA_STACKOFFSET 276 CFI_DEF_CFA rsp,KERNEL_STACK_OFFSET
277 CFI_REGISTER rip,rcx 277 CFI_REGISTER rip,rcx
278 /*CFI_REGISTER rflags,r11*/ 278 /*CFI_REGISTER rflags,r11*/
279 SWAPGS_UNSAFE_STACK 279 SWAPGS_UNSAFE_STACK
280 movl %esp,%r8d 280 movl %esp,%r8d
281 CFI_REGISTER rsp,r8 281 CFI_REGISTER rsp,r8
282 movq %gs:pda_kernelstack,%rsp 282 movq PER_CPU_VAR(kernel_stack),%rsp
283 /* 283 /*
284 * No need to follow this irqs on/off section: the syscall 284 * No need to follow this irqs on/off section: the syscall
285 * disabled irqs and here we enable it straight after entry: 285 * disabled irqs and here we enable it straight after entry:
@@ -418,9 +418,9 @@ ENTRY(ia32_syscall)
418 orl $TS_COMPAT,TI_status(%r10) 418 orl $TS_COMPAT,TI_status(%r10)
419 testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10) 419 testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10)
420 jnz ia32_tracesys 420 jnz ia32_tracesys
421ia32_do_syscall:
422 cmpl $(IA32_NR_syscalls-1),%eax 421 cmpl $(IA32_NR_syscalls-1),%eax
423 ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */ 422 ja ia32_badsys
423ia32_do_call:
424 IA32_ARG_FIXUP 424 IA32_ARG_FIXUP
425 call *ia32_sys_call_table(,%rax,8) # xxx: rip relative 425 call *ia32_sys_call_table(,%rax,8) # xxx: rip relative
426ia32_sysret: 426ia32_sysret:
@@ -435,7 +435,9 @@ ia32_tracesys:
435 call syscall_trace_enter 435 call syscall_trace_enter
436 LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */ 436 LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */
437 RESTORE_REST 437 RESTORE_REST
438 jmp ia32_do_syscall 438 cmpl $(IA32_NR_syscalls-1),%eax
439 ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */
440 jmp ia32_do_call
439END(ia32_syscall) 441END(ia32_syscall)
440 442
441ia32_badsys: 443ia32_badsys:
diff --git a/arch/x86/include/asm/Kbuild b/arch/x86/include/asm/Kbuild
index a9f8a814a1f7..4a8e80cdcfa5 100644
--- a/arch/x86/include/asm/Kbuild
+++ b/arch/x86/include/asm/Kbuild
@@ -22,4 +22,3 @@ unifdef-y += unistd_32.h
22unifdef-y += unistd_64.h 22unifdef-y += unistd_64.h
23unifdef-y += vm86.h 23unifdef-y += vm86.h
24unifdef-y += vsyscall.h 24unifdef-y += vsyscall.h
25unifdef-y += swab.h
diff --git a/arch/x86/include/asm/a.out-core.h b/arch/x86/include/asm/a.out-core.h
index 37822206083e..bb70e397aa84 100644
--- a/arch/x86/include/asm/a.out-core.h
+++ b/arch/x86/include/asm/a.out-core.h
@@ -23,8 +23,6 @@
23 */ 23 */
24static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump) 24static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump)
25{ 25{
26 u16 gs;
27
28/* changed the size calculations - should hopefully work better. lbt */ 26/* changed the size calculations - should hopefully work better. lbt */
29 dump->magic = CMAGIC; 27 dump->magic = CMAGIC;
30 dump->start_code = 0; 28 dump->start_code = 0;
@@ -57,7 +55,7 @@ static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump)
57 dump->regs.ds = (u16)regs->ds; 55 dump->regs.ds = (u16)regs->ds;
58 dump->regs.es = (u16)regs->es; 56 dump->regs.es = (u16)regs->es;
59 dump->regs.fs = (u16)regs->fs; 57 dump->regs.fs = (u16)regs->fs;
60 savesegment(gs, gs); 58 dump->regs.gs = get_user_gs(regs);
61 dump->regs.orig_ax = regs->orig_ax; 59 dump->regs.orig_ax = regs->orig_ax;
62 dump->regs.ip = regs->ip; 60 dump->regs.ip = regs->ip;
63 dump->regs.cs = (u16)regs->cs; 61 dump->regs.cs = (u16)regs->cs;
diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h
index 9830681446ad..4518dc500903 100644
--- a/arch/x86/include/asm/acpi.h
+++ b/arch/x86/include/asm/acpi.h
@@ -102,9 +102,6 @@ static inline void disable_acpi(void)
102 acpi_noirq = 1; 102 acpi_noirq = 1;
103} 103}
104 104
105/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
106#define FIX_ACPI_PAGES 4
107
108extern int acpi_gsi_to_irq(u32 gsi, unsigned int *irq); 105extern int acpi_gsi_to_irq(u32 gsi, unsigned int *irq);
109 106
110static inline void acpi_noirq_set(void) { acpi_noirq = 1; } 107static inline void acpi_noirq_set(void) { acpi_noirq = 1; }
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index ab1d51a8855e..4ef949c1972e 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -1,15 +1,18 @@
1#ifndef _ASM_X86_APIC_H 1#ifndef _ASM_X86_APIC_H
2#define _ASM_X86_APIC_H 2#define _ASM_X86_APIC_H
3 3
4#include <linux/pm.h> 4#include <linux/cpumask.h>
5#include <linux/delay.h> 5#include <linux/delay.h>
6#include <linux/pm.h>
6 7
7#include <asm/alternative.h> 8#include <asm/alternative.h>
8#include <asm/fixmap.h> 9#include <asm/cpufeature.h>
9#include <asm/apicdef.h>
10#include <asm/processor.h> 10#include <asm/processor.h>
11#include <asm/apicdef.h>
12#include <asm/atomic.h>
13#include <asm/fixmap.h>
14#include <asm/mpspec.h>
11#include <asm/system.h> 15#include <asm/system.h>
12#include <asm/cpufeature.h>
13#include <asm/msr.h> 16#include <asm/msr.h>
14 17
15#define ARCH_APICTIMER_STOPS_ON_C3 1 18#define ARCH_APICTIMER_STOPS_ON_C3 1
@@ -33,7 +36,13 @@
33 } while (0) 36 } while (0)
34 37
35 38
39#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32)
36extern void generic_apic_probe(void); 40extern void generic_apic_probe(void);
41#else
42static inline void generic_apic_probe(void)
43{
44}
45#endif
37 46
38#ifdef CONFIG_X86_LOCAL_APIC 47#ifdef CONFIG_X86_LOCAL_APIC
39 48
@@ -41,6 +50,21 @@ extern unsigned int apic_verbosity;
41extern int local_apic_timer_c2_ok; 50extern int local_apic_timer_c2_ok;
42 51
43extern int disable_apic; 52extern int disable_apic;
53
54#ifdef CONFIG_SMP
55extern void __inquire_remote_apic(int apicid);
56#else /* CONFIG_SMP */
57static inline void __inquire_remote_apic(int apicid)
58{
59}
60#endif /* CONFIG_SMP */
61
62static inline void default_inquire_remote_apic(int apicid)
63{
64 if (apic_verbosity >= APIC_DEBUG)
65 __inquire_remote_apic(apicid);
66}
67
44/* 68/*
45 * Basic functions accessing APICs. 69 * Basic functions accessing APICs.
46 */ 70 */
@@ -51,7 +75,14 @@ extern int disable_apic;
51#define setup_secondary_clock setup_secondary_APIC_clock 75#define setup_secondary_clock setup_secondary_APIC_clock
52#endif 76#endif
53 77
78#ifdef CONFIG_X86_VSMP
54extern int is_vsmp_box(void); 79extern int is_vsmp_box(void);
80#else
81static inline int is_vsmp_box(void)
82{
83 return 0;
84}
85#endif
55extern void xapic_wait_icr_idle(void); 86extern void xapic_wait_icr_idle(void);
56extern u32 safe_xapic_wait_icr_idle(void); 87extern u32 safe_xapic_wait_icr_idle(void);
57extern void xapic_icr_write(u32, u32); 88extern void xapic_icr_write(u32, u32);
@@ -71,6 +102,12 @@ static inline u32 native_apic_mem_read(u32 reg)
71 return *((volatile u32 *)(APIC_BASE + reg)); 102 return *((volatile u32 *)(APIC_BASE + reg));
72} 103}
73 104
105extern void native_apic_wait_icr_idle(void);
106extern u32 native_safe_apic_wait_icr_idle(void);
107extern void native_apic_icr_write(u32 low, u32 id);
108extern u64 native_apic_icr_read(void);
109
110#ifdef CONFIG_X86_X2APIC
74static inline void native_apic_msr_write(u32 reg, u32 v) 111static inline void native_apic_msr_write(u32 reg, u32 v)
75{ 112{
76 if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || 113 if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR ||
@@ -91,8 +128,32 @@ static inline u32 native_apic_msr_read(u32 reg)
91 return low; 128 return low;
92} 129}
93 130
94#ifndef CONFIG_X86_32 131static inline void native_x2apic_wait_icr_idle(void)
95extern int x2apic; 132{
133 /* no need to wait for icr idle in x2apic */
134 return;
135}
136
137static inline u32 native_safe_x2apic_wait_icr_idle(void)
138{
139 /* no need to wait for icr idle in x2apic */
140 return 0;
141}
142
143static inline void native_x2apic_icr_write(u32 low, u32 id)
144{
145 wrmsrl(APIC_BASE_MSR + (APIC_ICR >> 4), ((__u64) id) << 32 | low);
146}
147
148static inline u64 native_x2apic_icr_read(void)
149{
150 unsigned long val;
151
152 rdmsrl(APIC_BASE_MSR + (APIC_ICR >> 4), val);
153 return val;
154}
155
156extern int x2apic, x2apic_phys;
96extern void check_x2apic(void); 157extern void check_x2apic(void);
97extern void enable_x2apic(void); 158extern void enable_x2apic(void);
98extern void enable_IR_x2apic(void); 159extern void enable_IR_x2apic(void);
@@ -110,30 +171,24 @@ static inline int x2apic_enabled(void)
110 return 0; 171 return 0;
111} 172}
112#else 173#else
113#define x2apic_enabled() 0 174static inline void check_x2apic(void)
175{
176}
177static inline void enable_x2apic(void)
178{
179}
180static inline void enable_IR_x2apic(void)
181{
182}
183static inline int x2apic_enabled(void)
184{
185 return 0;
186}
114#endif 187#endif
115 188
116struct apic_ops {
117 u32 (*read)(u32 reg);
118 void (*write)(u32 reg, u32 v);
119 u64 (*icr_read)(void);
120 void (*icr_write)(u32 low, u32 high);
121 void (*wait_icr_idle)(void);
122 u32 (*safe_wait_icr_idle)(void);
123};
124
125extern struct apic_ops *apic_ops;
126
127#define apic_read (apic_ops->read)
128#define apic_write (apic_ops->write)
129#define apic_icr_read (apic_ops->icr_read)
130#define apic_icr_write (apic_ops->icr_write)
131#define apic_wait_icr_idle (apic_ops->wait_icr_idle)
132#define safe_apic_wait_icr_idle (apic_ops->safe_wait_icr_idle)
133
134extern int get_physical_broadcast(void); 189extern int get_physical_broadcast(void);
135 190
136#ifdef CONFIG_X86_64 191#ifdef CONFIG_X86_X2APIC
137static inline void ack_x2APIC_irq(void) 192static inline void ack_x2APIC_irq(void)
138{ 193{
139 /* Docs say use 0 for future compatibility */ 194 /* Docs say use 0 for future compatibility */
@@ -141,18 +196,6 @@ static inline void ack_x2APIC_irq(void)
141} 196}
142#endif 197#endif
143 198
144
145static inline void ack_APIC_irq(void)
146{
147 /*
148 * ack_APIC_irq() actually gets compiled as a single instruction
149 * ... yummie.
150 */
151
152 /* Docs say use 0 for future compatibility */
153 apic_write(APIC_EOI, 0);
154}
155
156extern int lapic_get_maxlvt(void); 199extern int lapic_get_maxlvt(void);
157extern void clear_local_APIC(void); 200extern void clear_local_APIC(void);
158extern void connect_bsp_APIC(void); 201extern void connect_bsp_APIC(void);
@@ -196,4 +239,327 @@ static inline void disable_local_APIC(void) { }
196 239
197#endif /* !CONFIG_X86_LOCAL_APIC */ 240#endif /* !CONFIG_X86_LOCAL_APIC */
198 241
242#ifdef CONFIG_X86_64
243#define SET_APIC_ID(x) (apic->set_apic_id(x))
244#else
245
246#endif
247
248/*
249 * Copyright 2004 James Cleverdon, IBM.
250 * Subject to the GNU Public License, v.2
251 *
252 * Generic APIC sub-arch data struct.
253 *
254 * Hacked for x86-64 by James Cleverdon from i386 architecture code by
255 * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
256 * James Cleverdon.
257 */
258struct apic {
259 char *name;
260
261 int (*probe)(void);
262 int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id);
263 int (*apic_id_registered)(void);
264
265 u32 irq_delivery_mode;
266 u32 irq_dest_mode;
267
268 const struct cpumask *(*target_cpus)(void);
269
270 int disable_esr;
271
272 int dest_logical;
273 unsigned long (*check_apicid_used)(physid_mask_t bitmap, int apicid);
274 unsigned long (*check_apicid_present)(int apicid);
275
276 void (*vector_allocation_domain)(int cpu, struct cpumask *retmask);
277 void (*init_apic_ldr)(void);
278
279 physid_mask_t (*ioapic_phys_id_map)(physid_mask_t map);
280
281 void (*setup_apic_routing)(void);
282 int (*multi_timer_check)(int apic, int irq);
283 int (*apicid_to_node)(int logical_apicid);
284 int (*cpu_to_logical_apicid)(int cpu);
285 int (*cpu_present_to_apicid)(int mps_cpu);
286 physid_mask_t (*apicid_to_cpu_present)(int phys_apicid);
287 void (*setup_portio_remap)(void);
288 int (*check_phys_apicid_present)(int boot_cpu_physical_apicid);
289 void (*enable_apic_mode)(void);
290 int (*phys_pkg_id)(int cpuid_apic, int index_msb);
291
292 /*
293 * When one of the next two hooks returns 1 the apic
294 * is switched to this. Essentially they are additional
295 * probe functions:
296 */
297 int (*mps_oem_check)(struct mpc_table *mpc, char *oem, char *productid);
298
299 unsigned int (*get_apic_id)(unsigned long x);
300 unsigned long (*set_apic_id)(unsigned int id);
301 unsigned long apic_id_mask;
302
303 unsigned int (*cpu_mask_to_apicid)(const struct cpumask *cpumask);
304 unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask,
305 const struct cpumask *andmask);
306
307 /* ipi */
308 void (*send_IPI_mask)(const struct cpumask *mask, int vector);
309 void (*send_IPI_mask_allbutself)(const struct cpumask *mask,
310 int vector);
311 void (*send_IPI_allbutself)(int vector);
312 void (*send_IPI_all)(int vector);
313 void (*send_IPI_self)(int vector);
314
315 /* wakeup_secondary_cpu */
316 int (*wakeup_secondary_cpu)(int apicid, unsigned long start_eip);
317
318 int trampoline_phys_low;
319 int trampoline_phys_high;
320
321 void (*wait_for_init_deassert)(atomic_t *deassert);
322 void (*smp_callin_clear_local_apic)(void);
323 void (*inquire_remote_apic)(int apicid);
324
325 /* apic ops */
326 u32 (*read)(u32 reg);
327 void (*write)(u32 reg, u32 v);
328 u64 (*icr_read)(void);
329 void (*icr_write)(u32 low, u32 high);
330 void (*wait_icr_idle)(void);
331 u32 (*safe_wait_icr_idle)(void);
332};
333
334/*
335 * Pointer to the local APIC driver in use on this system (there's
336 * always just one such driver in use - the kernel decides via an
337 * early probing process which one it picks - and then sticks to it):
338 */
339extern struct apic *apic;
340
341/*
342 * APIC functionality to boot other CPUs - only used on SMP:
343 */
344#ifdef CONFIG_SMP
345extern atomic_t init_deasserted;
346extern int wakeup_secondary_cpu_via_nmi(int apicid, unsigned long start_eip);
347#endif
348
349static inline u32 apic_read(u32 reg)
350{
351 return apic->read(reg);
352}
353
354static inline void apic_write(u32 reg, u32 val)
355{
356 apic->write(reg, val);
357}
358
359static inline u64 apic_icr_read(void)
360{
361 return apic->icr_read();
362}
363
364static inline void apic_icr_write(u32 low, u32 high)
365{
366 apic->icr_write(low, high);
367}
368
369static inline void apic_wait_icr_idle(void)
370{
371 apic->wait_icr_idle();
372}
373
374static inline u32 safe_apic_wait_icr_idle(void)
375{
376 return apic->safe_wait_icr_idle();
377}
378
379
380static inline void ack_APIC_irq(void)
381{
382 /*
383 * ack_APIC_irq() actually gets compiled as a single instruction
384 * ... yummie.
385 */
386
387 /* Docs say use 0 for future compatibility */
388 apic_write(APIC_EOI, 0);
389}
390
391static inline unsigned default_get_apic_id(unsigned long x)
392{
393 unsigned int ver = GET_APIC_VERSION(apic_read(APIC_LVR));
394
395 if (APIC_XAPIC(ver))
396 return (x >> 24) & 0xFF;
397 else
398 return (x >> 24) & 0x0F;
399}
400
401/*
402 * Warm reset vector default position:
403 */
404#define DEFAULT_TRAMPOLINE_PHYS_LOW 0x467
405#define DEFAULT_TRAMPOLINE_PHYS_HIGH 0x469
406
407#ifdef CONFIG_X86_64
408extern struct apic apic_flat;
409extern struct apic apic_physflat;
410extern struct apic apic_x2apic_cluster;
411extern struct apic apic_x2apic_phys;
412extern int default_acpi_madt_oem_check(char *, char *);
413
414extern void apic_send_IPI_self(int vector);
415
416extern struct apic apic_x2apic_uv_x;
417DECLARE_PER_CPU(int, x2apic_extra_bits);
418
419extern int default_cpu_present_to_apicid(int mps_cpu);
420extern int default_check_phys_apicid_present(int boot_cpu_physical_apicid);
421#endif
422
423static inline void default_wait_for_init_deassert(atomic_t *deassert)
424{
425 while (!atomic_read(deassert))
426 cpu_relax();
427 return;
428}
429
430extern void generic_bigsmp_probe(void);
431
432
433#ifdef CONFIG_X86_LOCAL_APIC
434
435#include <asm/smp.h>
436
437#define APIC_DFR_VALUE (APIC_DFR_FLAT)
438
439static inline const struct cpumask *default_target_cpus(void)
440{
441#ifdef CONFIG_SMP
442 return cpu_online_mask;
443#else
444 return cpumask_of(0);
445#endif
446}
447
448DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid);
449
450
451static inline unsigned int read_apic_id(void)
452{
453 unsigned int reg;
454
455 reg = apic_read(APIC_ID);
456
457 return apic->get_apic_id(reg);
458}
459
460extern void default_setup_apic_routing(void);
461
462#ifdef CONFIG_X86_32
463/*
464 * Set up the logical destination ID.
465 *
466 * Intel recommends to set DFR, LDR and TPR before enabling
467 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
468 * document number 292116). So here it goes...
469 */
470extern void default_init_apic_ldr(void);
471
472static inline int default_apic_id_registered(void)
473{
474 return physid_isset(read_apic_id(), phys_cpu_present_map);
475}
476
477static inline unsigned int
478default_cpu_mask_to_apicid(const struct cpumask *cpumask)
479{
480 return cpumask_bits(cpumask)[0];
481}
482
483static inline unsigned int
484default_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
485 const struct cpumask *andmask)
486{
487 unsigned long mask1 = cpumask_bits(cpumask)[0];
488 unsigned long mask2 = cpumask_bits(andmask)[0];
489 unsigned long mask3 = cpumask_bits(cpu_online_mask)[0];
490
491 return (unsigned int)(mask1 & mask2 & mask3);
492}
493
494static inline int default_phys_pkg_id(int cpuid_apic, int index_msb)
495{
496 return cpuid_apic >> index_msb;
497}
498
499extern int default_apicid_to_node(int logical_apicid);
500
501#endif
502
503static inline unsigned long default_check_apicid_used(physid_mask_t bitmap, int apicid)
504{
505 return physid_isset(apicid, bitmap);
506}
507
508static inline unsigned long default_check_apicid_present(int bit)
509{
510 return physid_isset(bit, phys_cpu_present_map);
511}
512
513static inline physid_mask_t default_ioapic_phys_id_map(physid_mask_t phys_map)
514{
515 return phys_map;
516}
517
518/* Mapping from cpu number to logical apicid */
519static inline int default_cpu_to_logical_apicid(int cpu)
520{
521 return 1 << cpu;
522}
523
524static inline int __default_cpu_present_to_apicid(int mps_cpu)
525{
526 if (mps_cpu < nr_cpu_ids && cpu_present(mps_cpu))
527 return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu);
528 else
529 return BAD_APICID;
530}
531
532static inline int
533__default_check_phys_apicid_present(int boot_cpu_physical_apicid)
534{
535 return physid_isset(boot_cpu_physical_apicid, phys_cpu_present_map);
536}
537
538#ifdef CONFIG_X86_32
539static inline int default_cpu_present_to_apicid(int mps_cpu)
540{
541 return __default_cpu_present_to_apicid(mps_cpu);
542}
543
544static inline int
545default_check_phys_apicid_present(int boot_cpu_physical_apicid)
546{
547 return __default_check_phys_apicid_present(boot_cpu_physical_apicid);
548}
549#else
550extern int default_cpu_present_to_apicid(int mps_cpu);
551extern int default_check_phys_apicid_present(int boot_cpu_physical_apicid);
552#endif
553
554static inline physid_mask_t default_apicid_to_cpu_present(int phys_apicid)
555{
556 return physid_mask_of_physid(phys_apicid);
557}
558
559#endif /* CONFIG_X86_LOCAL_APIC */
560
561#ifdef CONFIG_X86_32
562extern u8 cpu_2_logical_apicid[NR_CPUS];
563#endif
564
199#endif /* _ASM_X86_APIC_H */ 565#endif /* _ASM_X86_APIC_H */
diff --git a/arch/x86/include/asm/apicnum.h b/arch/x86/include/asm/apicnum.h
new file mode 100644
index 000000000000..82f613c607ce
--- /dev/null
+++ b/arch/x86/include/asm/apicnum.h
@@ -0,0 +1,12 @@
1#ifndef _ASM_X86_APICNUM_H
2#define _ASM_X86_APICNUM_H
3
4/* define MAX_IO_APICS */
5#ifdef CONFIG_X86_32
6# define MAX_IO_APICS 64
7#else
8# define MAX_IO_APICS 128
9# define MAX_LOCAL_APIC 32768
10#endif
11
12#endif /* _ASM_X86_APICNUM_H */
diff --git a/arch/x86/include/asm/mach-default/apm.h b/arch/x86/include/asm/apm.h
index 20370c6db74b..20370c6db74b 100644
--- a/arch/x86/include/asm/mach-default/apm.h
+++ b/arch/x86/include/asm/apm.h
diff --git a/arch/x86/include/asm/arch_hooks.h b/arch/x86/include/asm/arch_hooks.h
deleted file mode 100644
index cbd4957838a6..000000000000
--- a/arch/x86/include/asm/arch_hooks.h
+++ /dev/null
@@ -1,26 +0,0 @@
1#ifndef _ASM_X86_ARCH_HOOKS_H
2#define _ASM_X86_ARCH_HOOKS_H
3
4#include <linux/interrupt.h>
5
6/*
7 * linux/include/asm/arch_hooks.h
8 *
9 * define the architecture specific hooks
10 */
11
12/* these aren't arch hooks, they are generic routines
13 * that can be used by the hooks */
14extern void init_ISA_irqs(void);
15extern irqreturn_t timer_interrupt(int irq, void *dev_id);
16
17/* these are the defined hooks */
18extern void intr_init_hook(void);
19extern void pre_intr_init_hook(void);
20extern void pre_setup_arch_hook(void);
21extern void trap_init_hook(void);
22extern void pre_time_init_hook(void);
23extern void time_init_hook(void);
24extern void mca_nmi_hook(void);
25
26#endif /* _ASM_X86_ARCH_HOOKS_H */
diff --git a/arch/x86/include/asm/bigsmp/apic.h b/arch/x86/include/asm/bigsmp/apic.h
deleted file mode 100644
index d8dd9f537911..000000000000
--- a/arch/x86/include/asm/bigsmp/apic.h
+++ /dev/null
@@ -1,155 +0,0 @@
1#ifndef __ASM_MACH_APIC_H
2#define __ASM_MACH_APIC_H
3
4#define xapic_phys_to_log_apicid(cpu) (per_cpu(x86_bios_cpu_apicid, cpu))
5#define esr_disable (1)
6
7static inline int apic_id_registered(void)
8{
9 return (1);
10}
11
12static inline const cpumask_t *target_cpus(void)
13{
14#ifdef CONFIG_SMP
15 return &cpu_online_map;
16#else
17 return &cpumask_of_cpu(0);
18#endif
19}
20
21#undef APIC_DEST_LOGICAL
22#define APIC_DEST_LOGICAL 0
23#define APIC_DFR_VALUE (APIC_DFR_FLAT)
24#define INT_DELIVERY_MODE (dest_Fixed)
25#define INT_DEST_MODE (0) /* phys delivery to target proc */
26#define NO_BALANCE_IRQ (0)
27
28static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
29{
30 return (0);
31}
32
33static inline unsigned long check_apicid_present(int bit)
34{
35 return (1);
36}
37
38static inline unsigned long calculate_ldr(int cpu)
39{
40 unsigned long val, id;
41 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
42 id = xapic_phys_to_log_apicid(cpu);
43 val |= SET_APIC_LOGICAL_ID(id);
44 return val;
45}
46
47/*
48 * Set up the logical destination ID.
49 *
50 * Intel recommends to set DFR, LDR and TPR before enabling
51 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
52 * document number 292116). So here it goes...
53 */
54static inline void init_apic_ldr(void)
55{
56 unsigned long val;
57 int cpu = smp_processor_id();
58
59 apic_write(APIC_DFR, APIC_DFR_VALUE);
60 val = calculate_ldr(cpu);
61 apic_write(APIC_LDR, val);
62}
63
64static inline void setup_apic_routing(void)
65{
66 printk("Enabling APIC mode: %s. Using %d I/O APICs\n",
67 "Physflat", nr_ioapics);
68}
69
70static inline int multi_timer_check(int apic, int irq)
71{
72 return (0);
73}
74
75static inline int apicid_to_node(int logical_apicid)
76{
77 return apicid_2_node[hard_smp_processor_id()];
78}
79
80static inline int cpu_present_to_apicid(int mps_cpu)
81{
82 if (mps_cpu < nr_cpu_ids)
83 return (int) per_cpu(x86_bios_cpu_apicid, mps_cpu);
84
85 return BAD_APICID;
86}
87
88static inline physid_mask_t apicid_to_cpu_present(int phys_apicid)
89{
90 return physid_mask_of_physid(phys_apicid);
91}
92
93extern u8 cpu_2_logical_apicid[];
94/* Mapping from cpu number to logical apicid */
95static inline int cpu_to_logical_apicid(int cpu)
96{
97 if (cpu >= nr_cpu_ids)
98 return BAD_APICID;
99 return cpu_physical_id(cpu);
100}
101
102static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
103{
104 /* For clustered we don't have a good way to do this yet - hack */
105 return physids_promote(0xFFL);
106}
107
108static inline void setup_portio_remap(void)
109{
110}
111
112static inline void enable_apic_mode(void)
113{
114}
115
116static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
117{
118 return (1);
119}
120
121/* As we are using single CPU as destination, pick only one CPU here */
122static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
123{
124 int cpu;
125 int apicid;
126
127 cpu = first_cpu(*cpumask);
128 apicid = cpu_to_logical_apicid(cpu);
129 return apicid;
130}
131
132static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *cpumask,
133 const struct cpumask *andmask)
134{
135 int cpu;
136
137 /*
138 * We're using fixed IRQ delivery, can only return one phys APIC ID.
139 * May as well be the first.
140 */
141 for_each_cpu_and(cpu, cpumask, andmask)
142 if (cpumask_test_cpu(cpu, cpu_online_mask))
143 break;
144 if (cpu < nr_cpu_ids)
145 return cpu_to_logical_apicid(cpu);
146
147 return BAD_APICID;
148}
149
150static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
151{
152 return cpuid_apic >> index_msb;
153}
154
155#endif /* __ASM_MACH_APIC_H */
diff --git a/arch/x86/include/asm/bigsmp/apicdef.h b/arch/x86/include/asm/bigsmp/apicdef.h
deleted file mode 100644
index 392c3f5ef2fe..000000000000
--- a/arch/x86/include/asm/bigsmp/apicdef.h
+++ /dev/null
@@ -1,13 +0,0 @@
1#ifndef __ASM_MACH_APICDEF_H
2#define __ASM_MACH_APICDEF_H
3
4#define APIC_ID_MASK (0xFF<<24)
5
6static inline unsigned get_apic_id(unsigned long x)
7{
8 return (((x)>>24)&0xFF);
9}
10
11#define GET_APIC_ID(x) get_apic_id(x)
12
13#endif
diff --git a/arch/x86/include/asm/bigsmp/ipi.h b/arch/x86/include/asm/bigsmp/ipi.h
deleted file mode 100644
index 27fcd01b3ae6..000000000000
--- a/arch/x86/include/asm/bigsmp/ipi.h
+++ /dev/null
@@ -1,22 +0,0 @@
1#ifndef __ASM_MACH_IPI_H
2#define __ASM_MACH_IPI_H
3
4void send_IPI_mask_sequence(const struct cpumask *mask, int vector);
5void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
6
7static inline void send_IPI_mask(const struct cpumask *mask, int vector)
8{
9 send_IPI_mask_sequence(mask, vector);
10}
11
12static inline void send_IPI_allbutself(int vector)
13{
14 send_IPI_mask_allbutself(cpu_online_mask, vector);
15}
16
17static inline void send_IPI_all(int vector)
18{
19 send_IPI_mask(cpu_online_mask, vector);
20}
21
22#endif /* __ASM_MACH_IPI_H */
diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
index e02a359d2aa5..02b47a603fc8 100644
--- a/arch/x86/include/asm/bitops.h
+++ b/arch/x86/include/asm/bitops.h
@@ -3,6 +3,9 @@
3 3
4/* 4/*
5 * Copyright 1992, Linus Torvalds. 5 * Copyright 1992, Linus Torvalds.
6 *
7 * Note: inlines with more than a single statement should be marked
8 * __always_inline to avoid problems with older gcc's inlining heuristics.
6 */ 9 */
7 10
8#ifndef _LINUX_BITOPS_H 11#ifndef _LINUX_BITOPS_H
@@ -53,7 +56,8 @@
53 * Note that @nr may be almost arbitrarily large; this function is not 56 * Note that @nr may be almost arbitrarily large; this function is not
54 * restricted to acting on a single-word quantity. 57 * restricted to acting on a single-word quantity.
55 */ 58 */
56static inline void set_bit(unsigned int nr, volatile unsigned long *addr) 59static __always_inline void
60set_bit(unsigned int nr, volatile unsigned long *addr)
57{ 61{
58 if (IS_IMMEDIATE(nr)) { 62 if (IS_IMMEDIATE(nr)) {
59 asm volatile(LOCK_PREFIX "orb %1,%0" 63 asm volatile(LOCK_PREFIX "orb %1,%0"
@@ -90,7 +94,8 @@ static inline void __set_bit(int nr, volatile unsigned long *addr)
90 * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit() 94 * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit()
91 * in order to ensure changes are visible on other processors. 95 * in order to ensure changes are visible on other processors.
92 */ 96 */
93static inline void clear_bit(int nr, volatile unsigned long *addr) 97static __always_inline void
98clear_bit(int nr, volatile unsigned long *addr)
94{ 99{
95 if (IS_IMMEDIATE(nr)) { 100 if (IS_IMMEDIATE(nr)) {
96 asm volatile(LOCK_PREFIX "andb %1,%0" 101 asm volatile(LOCK_PREFIX "andb %1,%0"
@@ -204,7 +209,8 @@ static inline int test_and_set_bit(int nr, volatile unsigned long *addr)
204 * 209 *
205 * This is the same as test_and_set_bit on x86. 210 * This is the same as test_and_set_bit on x86.
206 */ 211 */
207static inline int test_and_set_bit_lock(int nr, volatile unsigned long *addr) 212static __always_inline int
213test_and_set_bit_lock(int nr, volatile unsigned long *addr)
208{ 214{
209 return test_and_set_bit(nr, addr); 215 return test_and_set_bit(nr, addr);
210} 216}
@@ -300,7 +306,7 @@ static inline int test_and_change_bit(int nr, volatile unsigned long *addr)
300 return oldbit; 306 return oldbit;
301} 307}
302 308
303static inline int constant_test_bit(unsigned int nr, const volatile unsigned long *addr) 309static __always_inline int constant_test_bit(unsigned int nr, const volatile unsigned long *addr)
304{ 310{
305 return ((1UL << (nr % BITS_PER_LONG)) & 311 return ((1UL << (nr % BITS_PER_LONG)) &
306 (((unsigned long *)addr)[nr / BITS_PER_LONG])) != 0; 312 (((unsigned long *)addr)[nr / BITS_PER_LONG])) != 0;
diff --git a/arch/x86/include/asm/byteorder.h b/arch/x86/include/asm/byteorder.h
index 7c49917e3d9d..b13a7a88f3eb 100644
--- a/arch/x86/include/asm/byteorder.h
+++ b/arch/x86/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _ASM_X86_BYTEORDER_H 1#ifndef _ASM_X86_BYTEORDER_H
2#define _ASM_X86_BYTEORDER_H 2#define _ASM_X86_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/little_endian.h> 4#include <linux/byteorder/little_endian.h>
6 5
7#endif /* _ASM_X86_BYTEORDER_H */ 6#endif /* _ASM_X86_BYTEORDER_H */
diff --git a/arch/x86/include/asm/calling.h b/arch/x86/include/asm/calling.h
index 2bc162e0ec6e..0e63c9a2a8d0 100644
--- a/arch/x86/include/asm/calling.h
+++ b/arch/x86/include/asm/calling.h
@@ -1,5 +1,55 @@
1/* 1/*
2 * Some macros to handle stack frames in assembly. 2
3 x86 function call convention, 64-bit:
4 -------------------------------------
5 arguments | callee-saved | extra caller-saved | return
6 [callee-clobbered] | | [callee-clobbered] |
7 ---------------------------------------------------------------------------
8 rdi rsi rdx rcx r8-9 | rbx rbp [*] r12-15 | r10-11 | rax, rdx [**]
9
10 ( rsp is obviously invariant across normal function calls. (gcc can 'merge'
11 functions when it sees tail-call optimization possibilities) rflags is
12 clobbered. Leftover arguments are passed over the stack frame.)
13
14 [*] In the frame-pointers case rbp is fixed to the stack frame.
15
16 [**] for struct return values wider than 64 bits the return convention is a
17 bit more complex: up to 128 bits width we return small structures
18 straight in rax, rdx. For structures larger than that (3 words or
19 larger) the caller puts a pointer to an on-stack return struct
20 [allocated in the caller's stack frame] into the first argument - i.e.
21 into rdi. All other arguments shift up by one in this case.
22 Fortunately this case is rare in the kernel.
23
24For 32-bit we have the following conventions - kernel is built with
25-mregparm=3 and -freg-struct-return:
26
27 x86 function calling convention, 32-bit:
28 ----------------------------------------
29 arguments | callee-saved | extra caller-saved | return
30 [callee-clobbered] | | [callee-clobbered] |
31 -------------------------------------------------------------------------
32 eax edx ecx | ebx edi esi ebp [*] | <none> | eax, edx [**]
33
34 ( here too esp is obviously invariant across normal function calls. eflags
35 is clobbered. Leftover arguments are passed over the stack frame. )
36
37 [*] In the frame-pointers case ebp is fixed to the stack frame.
38
39 [**] We build with -freg-struct-return, which on 32-bit means similar
40 semantics as on 64-bit: edx can be used for a second return value
41 (i.e. covering integer and structure sizes up to 64 bits) - after that
42 it gets more complex and more expensive: 3-word or larger struct returns
43 get done in the caller's frame and the pointer to the return struct goes
44 into regparm0, i.e. eax - the other arguments shift up and the
45 function's register parameters degenerate to regparm=2 in essence.
46
47*/
48
49
50/*
51 * 64-bit system call stack frame layout defines and helpers,
52 * for assembly code:
3 */ 53 */
4 54
5#define R15 0 55#define R15 0
@@ -9,7 +59,7 @@
9#define RBP 32 59#define RBP 32
10#define RBX 40 60#define RBX 40
11 61
12/* arguments: interrupts/non tracing syscalls only save upto here*/ 62/* arguments: interrupts/non tracing syscalls only save up to here: */
13#define R11 48 63#define R11 48
14#define R10 56 64#define R10 56
15#define R9 64 65#define R9 64
@@ -22,7 +72,7 @@
22#define ORIG_RAX 120 /* + error_code */ 72#define ORIG_RAX 120 /* + error_code */
23/* end of arguments */ 73/* end of arguments */
24 74
25/* cpu exception frame or undefined in case of fast syscall. */ 75/* cpu exception frame or undefined in case of fast syscall: */
26#define RIP 128 76#define RIP 128
27#define CS 136 77#define CS 136
28#define EFLAGS 144 78#define EFLAGS 144
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
index bae482df6039..b185091bf19c 100644
--- a/arch/x86/include/asm/cpu.h
+++ b/arch/x86/include/asm/cpu.h
@@ -7,6 +7,20 @@
7#include <linux/nodemask.h> 7#include <linux/nodemask.h>
8#include <linux/percpu.h> 8#include <linux/percpu.h>
9 9
10#ifdef CONFIG_SMP
11
12extern void prefill_possible_map(void);
13
14#else /* CONFIG_SMP */
15
16static inline void prefill_possible_map(void) {}
17
18#define cpu_physical_id(cpu) boot_cpu_physical_apicid
19#define safe_smp_processor_id() 0
20#define stack_smp_processor_id() 0
21
22#endif /* CONFIG_SMP */
23
10struct x86_cpu { 24struct x86_cpu {
11 struct cpu cpu; 25 struct cpu cpu;
12}; 26};
@@ -17,4 +31,7 @@ extern void arch_unregister_cpu(int);
17#endif 31#endif
18 32
19DECLARE_PER_CPU(int, cpu_state); 33DECLARE_PER_CPU(int, cpu_state);
34
35extern unsigned int boot_cpu_id;
36
20#endif /* _ASM_X86_CPU_H */ 37#endif /* _ASM_X86_CPU_H */
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
index ea408dcba513..7301e60dc4a8 100644
--- a/arch/x86/include/asm/cpufeature.h
+++ b/arch/x86/include/asm/cpufeature.h
@@ -93,6 +93,7 @@
93#define X86_FEATURE_XTOPOLOGY (3*32+22) /* cpu topology enum extensions */ 93#define X86_FEATURE_XTOPOLOGY (3*32+22) /* cpu topology enum extensions */
94#define X86_FEATURE_TSC_RELIABLE (3*32+23) /* TSC is known to be reliable */ 94#define X86_FEATURE_TSC_RELIABLE (3*32+23) /* TSC is known to be reliable */
95#define X86_FEATURE_NONSTOP_TSC (3*32+24) /* TSC does not stop in C states */ 95#define X86_FEATURE_NONSTOP_TSC (3*32+24) /* TSC does not stop in C states */
96#define X86_FEATURE_CLFLUSH_MONITOR (3*32+25) /* "" clflush reqd with monitor */
96 97
97/* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */ 98/* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
98#define X86_FEATURE_XMM3 (4*32+ 0) /* "pni" SSE-3 */ 99#define X86_FEATURE_XMM3 (4*32+ 0) /* "pni" SSE-3 */
diff --git a/arch/x86/include/asm/cpumask.h b/arch/x86/include/asm/cpumask.h
new file mode 100644
index 000000000000..a7f3c75f8ad7
--- /dev/null
+++ b/arch/x86/include/asm/cpumask.h
@@ -0,0 +1,32 @@
1#ifndef _ASM_X86_CPUMASK_H
2#define _ASM_X86_CPUMASK_H
3#ifndef __ASSEMBLY__
4#include <linux/cpumask.h>
5
6#ifdef CONFIG_X86_64
7
8extern cpumask_var_t cpu_callin_mask;
9extern cpumask_var_t cpu_callout_mask;
10extern cpumask_var_t cpu_initialized_mask;
11extern cpumask_var_t cpu_sibling_setup_mask;
12
13extern void setup_cpu_local_masks(void);
14
15#else /* CONFIG_X86_32 */
16
17extern cpumask_t cpu_callin_map;
18extern cpumask_t cpu_callout_map;
19extern cpumask_t cpu_initialized;
20extern cpumask_t cpu_sibling_setup_map;
21
22#define cpu_callin_mask ((struct cpumask *)&cpu_callin_map)
23#define cpu_callout_mask ((struct cpumask *)&cpu_callout_map)
24#define cpu_initialized_mask ((struct cpumask *)&cpu_initialized)
25#define cpu_sibling_setup_mask ((struct cpumask *)&cpu_sibling_setup_map)
26
27static inline void setup_cpu_local_masks(void) { }
28
29#endif /* CONFIG_X86_32 */
30
31#endif /* __ASSEMBLY__ */
32#endif /* _ASM_X86_CPUMASK_H */
diff --git a/arch/x86/include/asm/current.h b/arch/x86/include/asm/current.h
index 0930b4f8d672..c68c361697e1 100644
--- a/arch/x86/include/asm/current.h
+++ b/arch/x86/include/asm/current.h
@@ -1,39 +1,21 @@
1#ifndef _ASM_X86_CURRENT_H 1#ifndef _ASM_X86_CURRENT_H
2#define _ASM_X86_CURRENT_H 2#define _ASM_X86_CURRENT_H
3 3
4#ifdef CONFIG_X86_32
5#include <linux/compiler.h> 4#include <linux/compiler.h>
6#include <asm/percpu.h> 5#include <asm/percpu.h>
7 6
7#ifndef __ASSEMBLY__
8struct task_struct; 8struct task_struct;
9 9
10DECLARE_PER_CPU(struct task_struct *, current_task); 10DECLARE_PER_CPU(struct task_struct *, current_task);
11static __always_inline struct task_struct *get_current(void)
12{
13 return x86_read_percpu(current_task);
14}
15
16#else /* X86_32 */
17
18#ifndef __ASSEMBLY__
19#include <asm/pda.h>
20
21struct task_struct;
22 11
23static __always_inline struct task_struct *get_current(void) 12static __always_inline struct task_struct *get_current(void)
24{ 13{
25 return read_pda(pcurrent); 14 return percpu_read(current_task);
26} 15}
27 16
28#else /* __ASSEMBLY__ */ 17#define current get_current()
29
30#include <asm/asm-offsets.h>
31#define GET_CURRENT(reg) movq %gs:(pda_pcurrent),reg
32 18
33#endif /* __ASSEMBLY__ */ 19#endif /* __ASSEMBLY__ */
34 20
35#endif /* X86_32 */
36
37#define current get_current()
38
39#endif /* _ASM_X86_CURRENT_H */ 21#endif /* _ASM_X86_CURRENT_H */
diff --git a/arch/x86/include/asm/dma-mapping.h b/arch/x86/include/asm/dma-mapping.h
index 4035357f5b9d..132a134d12f2 100644
--- a/arch/x86/include/asm/dma-mapping.h
+++ b/arch/x86/include/asm/dma-mapping.h
@@ -2,8 +2,8 @@
2#define _ASM_X86_DMA_MAPPING_H 2#define _ASM_X86_DMA_MAPPING_H
3 3
4/* 4/*
5 * IOMMU interface. See Documentation/DMA-mapping.txt and DMA-API.txt for 5 * IOMMU interface. See Documentation/PCI/PCI-DMA-mapping.txt and
6 * documentation. 6 * Documentation/DMA-API.txt for documentation.
7 */ 7 */
8 8
9#include <linux/scatterlist.h> 9#include <linux/scatterlist.h>
diff --git a/arch/x86/include/asm/mach-default/do_timer.h b/arch/x86/include/asm/do_timer.h
index 23ecda0b28a0..23ecda0b28a0 100644
--- a/arch/x86/include/asm/mach-default/do_timer.h
+++ b/arch/x86/include/asm/do_timer.h
diff --git a/arch/x86/include/asm/e820.h b/arch/x86/include/asm/e820.h
index 3d8ceddbd407..00d41ce4c844 100644
--- a/arch/x86/include/asm/e820.h
+++ b/arch/x86/include/asm/e820.h
@@ -49,6 +49,7 @@
49#define E820_RESERVED_KERN 128 49#define E820_RESERVED_KERN 128
50 50
51#ifndef __ASSEMBLY__ 51#ifndef __ASSEMBLY__
52#include <linux/types.h>
52struct e820entry { 53struct e820entry {
53 __u64 addr; /* start of memory segment */ 54 __u64 addr; /* start of memory segment */
54 __u64 size; /* size of memory segment */ 55 __u64 size; /* size of memory segment */
diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
index f51a3ddde01a..83c1bc8d2e8a 100644
--- a/arch/x86/include/asm/elf.h
+++ b/arch/x86/include/asm/elf.h
@@ -112,7 +112,7 @@ extern unsigned int vdso_enabled;
112 * now struct_user_regs, they are different) 112 * now struct_user_regs, they are different)
113 */ 113 */
114 114
115#define ELF_CORE_COPY_REGS(pr_reg, regs) \ 115#define ELF_CORE_COPY_REGS_COMMON(pr_reg, regs) \
116do { \ 116do { \
117 pr_reg[0] = regs->bx; \ 117 pr_reg[0] = regs->bx; \
118 pr_reg[1] = regs->cx; \ 118 pr_reg[1] = regs->cx; \
@@ -124,7 +124,6 @@ do { \
124 pr_reg[7] = regs->ds & 0xffff; \ 124 pr_reg[7] = regs->ds & 0xffff; \
125 pr_reg[8] = regs->es & 0xffff; \ 125 pr_reg[8] = regs->es & 0xffff; \
126 pr_reg[9] = regs->fs & 0xffff; \ 126 pr_reg[9] = regs->fs & 0xffff; \
127 savesegment(gs, pr_reg[10]); \
128 pr_reg[11] = regs->orig_ax; \ 127 pr_reg[11] = regs->orig_ax; \
129 pr_reg[12] = regs->ip; \ 128 pr_reg[12] = regs->ip; \
130 pr_reg[13] = regs->cs & 0xffff; \ 129 pr_reg[13] = regs->cs & 0xffff; \
@@ -133,6 +132,18 @@ do { \
133 pr_reg[16] = regs->ss & 0xffff; \ 132 pr_reg[16] = regs->ss & 0xffff; \
134} while (0); 133} while (0);
135 134
135#define ELF_CORE_COPY_REGS(pr_reg, regs) \
136do { \
137 ELF_CORE_COPY_REGS_COMMON(pr_reg, regs);\
138 pr_reg[10] = get_user_gs(regs); \
139} while (0);
140
141#define ELF_CORE_COPY_KERNEL_REGS(pr_reg, regs) \
142do { \
143 ELF_CORE_COPY_REGS_COMMON(pr_reg, regs);\
144 savesegment(gs, pr_reg[10]); \
145} while (0);
146
136#define ELF_PLATFORM (utsname()->machine) 147#define ELF_PLATFORM (utsname()->machine)
137#define set_personality_64bit() do { } while (0) 148#define set_personality_64bit() do { } while (0)
138 149
diff --git a/arch/x86/include/asm/mach-default/entry_arch.h b/arch/x86/include/asm/entry_arch.h
index 6b1add8e31dd..854d538ae857 100644
--- a/arch/x86/include/asm/mach-default/entry_arch.h
+++ b/arch/x86/include/asm/entry_arch.h
@@ -9,12 +9,28 @@
9 * is no hardware IRQ pin equivalent for them, they are triggered 9 * is no hardware IRQ pin equivalent for them, they are triggered
10 * through the ICC by us (IPIs) 10 * through the ICC by us (IPIs)
11 */ 11 */
12#ifdef CONFIG_X86_SMP 12#ifdef CONFIG_SMP
13BUILD_INTERRUPT(reschedule_interrupt,RESCHEDULE_VECTOR) 13BUILD_INTERRUPT(reschedule_interrupt,RESCHEDULE_VECTOR)
14BUILD_INTERRUPT(invalidate_interrupt,INVALIDATE_TLB_VECTOR)
15BUILD_INTERRUPT(call_function_interrupt,CALL_FUNCTION_VECTOR) 14BUILD_INTERRUPT(call_function_interrupt,CALL_FUNCTION_VECTOR)
16BUILD_INTERRUPT(call_function_single_interrupt,CALL_FUNCTION_SINGLE_VECTOR) 15BUILD_INTERRUPT(call_function_single_interrupt,CALL_FUNCTION_SINGLE_VECTOR)
17BUILD_INTERRUPT(irq_move_cleanup_interrupt,IRQ_MOVE_CLEANUP_VECTOR) 16BUILD_INTERRUPT(irq_move_cleanup_interrupt,IRQ_MOVE_CLEANUP_VECTOR)
17
18BUILD_INTERRUPT3(invalidate_interrupt0,INVALIDATE_TLB_VECTOR_START+0,
19 smp_invalidate_interrupt)
20BUILD_INTERRUPT3(invalidate_interrupt1,INVALIDATE_TLB_VECTOR_START+1,
21 smp_invalidate_interrupt)
22BUILD_INTERRUPT3(invalidate_interrupt2,INVALIDATE_TLB_VECTOR_START+2,
23 smp_invalidate_interrupt)
24BUILD_INTERRUPT3(invalidate_interrupt3,INVALIDATE_TLB_VECTOR_START+3,
25 smp_invalidate_interrupt)
26BUILD_INTERRUPT3(invalidate_interrupt4,INVALIDATE_TLB_VECTOR_START+4,
27 smp_invalidate_interrupt)
28BUILD_INTERRUPT3(invalidate_interrupt5,INVALIDATE_TLB_VECTOR_START+5,
29 smp_invalidate_interrupt)
30BUILD_INTERRUPT3(invalidate_interrupt6,INVALIDATE_TLB_VECTOR_START+6,
31 smp_invalidate_interrupt)
32BUILD_INTERRUPT3(invalidate_interrupt7,INVALIDATE_TLB_VECTOR_START+7,
33 smp_invalidate_interrupt)
18#endif 34#endif
19 35
20/* 36/*
@@ -25,10 +41,15 @@ BUILD_INTERRUPT(irq_move_cleanup_interrupt,IRQ_MOVE_CLEANUP_VECTOR)
25 * a much simpler SMP time architecture: 41 * a much simpler SMP time architecture:
26 */ 42 */
27#ifdef CONFIG_X86_LOCAL_APIC 43#ifdef CONFIG_X86_LOCAL_APIC
44
28BUILD_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR) 45BUILD_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR)
29BUILD_INTERRUPT(error_interrupt,ERROR_APIC_VECTOR) 46BUILD_INTERRUPT(error_interrupt,ERROR_APIC_VECTOR)
30BUILD_INTERRUPT(spurious_interrupt,SPURIOUS_APIC_VECTOR) 47BUILD_INTERRUPT(spurious_interrupt,SPURIOUS_APIC_VECTOR)
31 48
49#ifdef CONFIG_PERF_COUNTERS
50BUILD_INTERRUPT(perf_counter_interrupt, LOCAL_PERF_VECTOR)
51#endif
52
32#ifdef CONFIG_X86_MCE_P4THERMAL 53#ifdef CONFIG_X86_MCE_P4THERMAL
33BUILD_INTERRUPT(thermal_interrupt,THERMAL_APIC_VECTOR) 54BUILD_INTERRUPT(thermal_interrupt,THERMAL_APIC_VECTOR)
34#endif 55#endif
diff --git a/arch/x86/include/asm/es7000/apic.h b/arch/x86/include/asm/es7000/apic.h
deleted file mode 100644
index bc53d5ef1386..000000000000
--- a/arch/x86/include/asm/es7000/apic.h
+++ /dev/null
@@ -1,240 +0,0 @@
1#ifndef __ASM_ES7000_APIC_H
2#define __ASM_ES7000_APIC_H
3
4#define xapic_phys_to_log_apicid(cpu) per_cpu(x86_bios_cpu_apicid, cpu)
5#define esr_disable (1)
6
7static inline int apic_id_registered(void)
8{
9 return (1);
10}
11
12static inline const cpumask_t *target_cpus_cluster(void)
13{
14 return &CPU_MASK_ALL;
15}
16
17static inline const cpumask_t *target_cpus(void)
18{
19 return &cpumask_of_cpu(smp_processor_id());
20}
21
22#define APIC_DFR_VALUE_CLUSTER (APIC_DFR_CLUSTER)
23#define INT_DELIVERY_MODE_CLUSTER (dest_LowestPrio)
24#define INT_DEST_MODE_CLUSTER (1) /* logical delivery broadcast to all procs */
25#define NO_BALANCE_IRQ_CLUSTER (1)
26
27#define APIC_DFR_VALUE (APIC_DFR_FLAT)
28#define INT_DELIVERY_MODE (dest_Fixed)
29#define INT_DEST_MODE (0) /* phys delivery to target procs */
30#define NO_BALANCE_IRQ (0)
31#undef APIC_DEST_LOGICAL
32#define APIC_DEST_LOGICAL 0x0
33
34static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
35{
36 return 0;
37}
38static inline unsigned long check_apicid_present(int bit)
39{
40 return physid_isset(bit, phys_cpu_present_map);
41}
42
43#define apicid_cluster(apicid) (apicid & 0xF0)
44
45static inline unsigned long calculate_ldr(int cpu)
46{
47 unsigned long id;
48 id = xapic_phys_to_log_apicid(cpu);
49 return (SET_APIC_LOGICAL_ID(id));
50}
51
52/*
53 * Set up the logical destination ID.
54 *
55 * Intel recommends to set DFR, LdR and TPR before enabling
56 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
57 * document number 292116). So here it goes...
58 */
59static inline void init_apic_ldr_cluster(void)
60{
61 unsigned long val;
62 int cpu = smp_processor_id();
63
64 apic_write(APIC_DFR, APIC_DFR_VALUE_CLUSTER);
65 val = calculate_ldr(cpu);
66 apic_write(APIC_LDR, val);
67}
68
69static inline void init_apic_ldr(void)
70{
71 unsigned long val;
72 int cpu = smp_processor_id();
73
74 apic_write(APIC_DFR, APIC_DFR_VALUE);
75 val = calculate_ldr(cpu);
76 apic_write(APIC_LDR, val);
77}
78
79extern int apic_version [MAX_APICS];
80static inline void setup_apic_routing(void)
81{
82 int apic = per_cpu(x86_bios_cpu_apicid, smp_processor_id());
83 printk("Enabling APIC mode: %s. Using %d I/O APICs, target cpus %lx\n",
84 (apic_version[apic] == 0x14) ?
85 "Physical Cluster" : "Logical Cluster",
86 nr_ioapics, cpus_addr(*target_cpus())[0]);
87}
88
89static inline int multi_timer_check(int apic, int irq)
90{
91 return 0;
92}
93
94static inline int apicid_to_node(int logical_apicid)
95{
96 return 0;
97}
98
99
100static inline int cpu_present_to_apicid(int mps_cpu)
101{
102 if (!mps_cpu)
103 return boot_cpu_physical_apicid;
104 else if (mps_cpu < nr_cpu_ids)
105 return (int) per_cpu(x86_bios_cpu_apicid, mps_cpu);
106 else
107 return BAD_APICID;
108}
109
110static inline physid_mask_t apicid_to_cpu_present(int phys_apicid)
111{
112 static int id = 0;
113 physid_mask_t mask;
114 mask = physid_mask_of_physid(id);
115 ++id;
116 return mask;
117}
118
119extern u8 cpu_2_logical_apicid[];
120/* Mapping from cpu number to logical apicid */
121static inline int cpu_to_logical_apicid(int cpu)
122{
123#ifdef CONFIG_SMP
124 if (cpu >= nr_cpu_ids)
125 return BAD_APICID;
126 return (int)cpu_2_logical_apicid[cpu];
127#else
128 return logical_smp_processor_id();
129#endif
130}
131
132static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
133{
134 /* For clustered we don't have a good way to do this yet - hack */
135 return physids_promote(0xff);
136}
137
138
139static inline void setup_portio_remap(void)
140{
141}
142
143extern unsigned int boot_cpu_physical_apicid;
144static inline int check_phys_apicid_present(int cpu_physical_apicid)
145{
146 boot_cpu_physical_apicid = read_apic_id();
147 return (1);
148}
149
150static inline unsigned int
151cpu_mask_to_apicid_cluster(const struct cpumask *cpumask)
152{
153 int num_bits_set;
154 int cpus_found = 0;
155 int cpu;
156 int apicid;
157
158 num_bits_set = cpumask_weight(cpumask);
159 /* Return id to all */
160 if (num_bits_set == nr_cpu_ids)
161 return 0xFF;
162 /*
163 * The cpus in the mask must all be on the apic cluster. If are not
164 * on the same apicid cluster return default value of TARGET_CPUS.
165 */
166 cpu = cpumask_first(cpumask);
167 apicid = cpu_to_logical_apicid(cpu);
168 while (cpus_found < num_bits_set) {
169 if (cpumask_test_cpu(cpu, cpumask)) {
170 int new_apicid = cpu_to_logical_apicid(cpu);
171 if (apicid_cluster(apicid) !=
172 apicid_cluster(new_apicid)){
173 printk ("%s: Not a valid mask!\n", __func__);
174 return 0xFF;
175 }
176 apicid = new_apicid;
177 cpus_found++;
178 }
179 cpu++;
180 }
181 return apicid;
182}
183
184static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
185{
186 int num_bits_set;
187 int cpus_found = 0;
188 int cpu;
189 int apicid;
190
191 num_bits_set = cpus_weight(*cpumask);
192 /* Return id to all */
193 if (num_bits_set == nr_cpu_ids)
194 return cpu_to_logical_apicid(0);
195 /*
196 * The cpus in the mask must all be on the apic cluster. If are not
197 * on the same apicid cluster return default value of TARGET_CPUS.
198 */
199 cpu = first_cpu(*cpumask);
200 apicid = cpu_to_logical_apicid(cpu);
201 while (cpus_found < num_bits_set) {
202 if (cpu_isset(cpu, *cpumask)) {
203 int new_apicid = cpu_to_logical_apicid(cpu);
204 if (apicid_cluster(apicid) !=
205 apicid_cluster(new_apicid)){
206 printk ("%s: Not a valid mask!\n", __func__);
207 return cpu_to_logical_apicid(0);
208 }
209 apicid = new_apicid;
210 cpus_found++;
211 }
212 cpu++;
213 }
214 return apicid;
215}
216
217
218static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *inmask,
219 const struct cpumask *andmask)
220{
221 int apicid = cpu_to_logical_apicid(0);
222 cpumask_var_t cpumask;
223
224 if (!alloc_cpumask_var(&cpumask, GFP_ATOMIC))
225 return apicid;
226
227 cpumask_and(cpumask, inmask, andmask);
228 cpumask_and(cpumask, cpumask, cpu_online_mask);
229 apicid = cpu_mask_to_apicid(cpumask);
230
231 free_cpumask_var(cpumask);
232 return apicid;
233}
234
235static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
236{
237 return cpuid_apic >> index_msb;
238}
239
240#endif /* __ASM_ES7000_APIC_H */
diff --git a/arch/x86/include/asm/es7000/apicdef.h b/arch/x86/include/asm/es7000/apicdef.h
deleted file mode 100644
index 8b234a3cb851..000000000000
--- a/arch/x86/include/asm/es7000/apicdef.h
+++ /dev/null
@@ -1,13 +0,0 @@
1#ifndef __ASM_ES7000_APICDEF_H
2#define __ASM_ES7000_APICDEF_H
3
4#define APIC_ID_MASK (0xFF<<24)
5
6static inline unsigned get_apic_id(unsigned long x)
7{
8 return (((x)>>24)&0xFF);
9}
10
11#define GET_APIC_ID(x) get_apic_id(x)
12
13#endif
diff --git a/arch/x86/include/asm/es7000/ipi.h b/arch/x86/include/asm/es7000/ipi.h
deleted file mode 100644
index 7e8ed24d4b8a..000000000000
--- a/arch/x86/include/asm/es7000/ipi.h
+++ /dev/null
@@ -1,22 +0,0 @@
1#ifndef __ASM_ES7000_IPI_H
2#define __ASM_ES7000_IPI_H
3
4void send_IPI_mask_sequence(const struct cpumask *mask, int vector);
5void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
6
7static inline void send_IPI_mask(const struct cpumask *mask, int vector)
8{
9 send_IPI_mask_sequence(mask, vector);
10}
11
12static inline void send_IPI_allbutself(int vector)
13{
14 send_IPI_mask_allbutself(cpu_online_mask, vector);
15}
16
17static inline void send_IPI_all(int vector)
18{
19 send_IPI_mask(cpu_online_mask, vector);
20}
21
22#endif /* __ASM_ES7000_IPI_H */
diff --git a/arch/x86/include/asm/es7000/mpparse.h b/arch/x86/include/asm/es7000/mpparse.h
deleted file mode 100644
index ed5a3caae141..000000000000
--- a/arch/x86/include/asm/es7000/mpparse.h
+++ /dev/null
@@ -1,30 +0,0 @@
1#ifndef __ASM_ES7000_MPPARSE_H
2#define __ASM_ES7000_MPPARSE_H
3
4#include <linux/acpi.h>
5
6extern int parse_unisys_oem (char *oemptr);
7extern int find_unisys_acpi_oem_table(unsigned long *oem_addr);
8extern void unmap_unisys_acpi_oem_table(unsigned long oem_addr);
9extern void setup_unisys(void);
10
11#ifndef CONFIG_X86_GENERICARCH
12extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id);
13extern int mps_oem_check(struct mp_config_table *mpc, char *oem,
14 char *productid);
15#endif
16
17#ifdef CONFIG_ACPI
18
19static inline int es7000_check_dsdt(void)
20{
21 struct acpi_table_header header;
22
23 if (ACPI_SUCCESS(acpi_get_table_header(ACPI_SIG_DSDT, 0, &header)) &&
24 !strncmp(header.oem_id, "UNISYS", 6))
25 return 1;
26 return 0;
27}
28#endif
29
30#endif /* __ASM_MACH_MPPARSE_H */
diff --git a/arch/x86/include/asm/es7000/wakecpu.h b/arch/x86/include/asm/es7000/wakecpu.h
deleted file mode 100644
index 78f0daaee436..000000000000
--- a/arch/x86/include/asm/es7000/wakecpu.h
+++ /dev/null
@@ -1,37 +0,0 @@
1#ifndef __ASM_ES7000_WAKECPU_H
2#define __ASM_ES7000_WAKECPU_H
3
4#define TRAMPOLINE_PHYS_LOW 0x467
5#define TRAMPOLINE_PHYS_HIGH 0x469
6
7static inline void wait_for_init_deassert(atomic_t *deassert)
8{
9#ifndef CONFIG_ES7000_CLUSTERED_APIC
10 while (!atomic_read(deassert))
11 cpu_relax();
12#endif
13 return;
14}
15
16/* Nothing to do for most platforms, since cleared by the INIT cycle */
17static inline void smp_callin_clear_local_apic(void)
18{
19}
20
21static inline void store_NMI_vector(unsigned short *high, unsigned short *low)
22{
23}
24
25static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
26{
27}
28
29extern void __inquire_remote_apic(int apicid);
30
31static inline void inquire_remote_apic(int apicid)
32{
33 if (apic_verbosity >= APIC_DEBUG)
34 __inquire_remote_apic(apicid);
35}
36
37#endif /* __ASM_MACH_WAKECPU_H */
diff --git a/arch/x86/include/asm/fixmap.h b/arch/x86/include/asm/fixmap.h
index 23696d44a0af..dca8f03da5b2 100644
--- a/arch/x86/include/asm/fixmap.h
+++ b/arch/x86/include/asm/fixmap.h
@@ -1,11 +1,155 @@
1/*
2 * fixmap.h: compile-time virtual memory allocation
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
6 * for more details.
7 *
8 * Copyright (C) 1998 Ingo Molnar
9 *
10 * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999
11 * x86_32 and x86_64 integration by Gustavo F. Padovan, February 2009
12 */
13
1#ifndef _ASM_X86_FIXMAP_H 14#ifndef _ASM_X86_FIXMAP_H
2#define _ASM_X86_FIXMAP_H 15#define _ASM_X86_FIXMAP_H
3 16
17#ifndef __ASSEMBLY__
18#include <linux/kernel.h>
19#include <asm/acpi.h>
20#include <asm/apicdef.h>
21#include <asm/page.h>
22#ifdef CONFIG_X86_32
23#include <linux/threads.h>
24#include <asm/kmap_types.h>
25#else
26#include <asm/vsyscall.h>
27#ifdef CONFIG_EFI
28#include <asm/efi.h>
29#endif
30#endif
31
32/*
33 * We can't declare FIXADDR_TOP as variable for x86_64 because vsyscall
34 * uses fixmaps that relies on FIXADDR_TOP for proper address calculation.
35 * Because of this, FIXADDR_TOP x86 integration was left as later work.
36 */
37#ifdef CONFIG_X86_32
38/* used by vmalloc.c, vsyscall.lds.S.
39 *
40 * Leave one empty page between vmalloc'ed areas and
41 * the start of the fixmap.
42 */
43extern unsigned long __FIXADDR_TOP;
44#define FIXADDR_TOP ((unsigned long)__FIXADDR_TOP)
45
46#define FIXADDR_USER_START __fix_to_virt(FIX_VDSO)
47#define FIXADDR_USER_END __fix_to_virt(FIX_VDSO - 1)
48#else
49#define FIXADDR_TOP (VSYSCALL_END-PAGE_SIZE)
50
51/* Only covers 32bit vsyscalls currently. Need another set for 64bit. */
52#define FIXADDR_USER_START ((unsigned long)VSYSCALL32_VSYSCALL)
53#define FIXADDR_USER_END (FIXADDR_USER_START + PAGE_SIZE)
54#endif
55
56
57/*
58 * Here we define all the compile-time 'special' virtual
59 * addresses. The point is to have a constant address at
60 * compile time, but to set the physical address only
61 * in the boot process.
62 * for x86_32: We allocate these special addresses
63 * from the end of virtual memory (0xfffff000) backwards.
64 * Also this lets us do fail-safe vmalloc(), we
65 * can guarantee that these special addresses and
66 * vmalloc()-ed addresses never overlap.
67 *
68 * These 'compile-time allocated' memory buffers are
69 * fixed-size 4k pages (or larger if used with an increment
70 * higher than 1). Use set_fixmap(idx,phys) to associate
71 * physical memory with fixmap indices.
72 *
73 * TLB entries of such buffers will not be flushed across
74 * task switches.
75 */
76enum fixed_addresses {
4#ifdef CONFIG_X86_32 77#ifdef CONFIG_X86_32
5# include "fixmap_32.h" 78 FIX_HOLE,
79 FIX_VDSO,
6#else 80#else
7# include "fixmap_64.h" 81 VSYSCALL_LAST_PAGE,
82 VSYSCALL_FIRST_PAGE = VSYSCALL_LAST_PAGE
83 + ((VSYSCALL_END-VSYSCALL_START) >> PAGE_SHIFT) - 1,
84 VSYSCALL_HPET,
8#endif 85#endif
86 FIX_DBGP_BASE,
87 FIX_EARLYCON_MEM_BASE,
88#ifdef CONFIG_X86_LOCAL_APIC
89 FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */
90#endif
91#ifdef CONFIG_X86_IO_APIC
92 FIX_IO_APIC_BASE_0,
93 FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS - 1,
94#endif
95#ifdef CONFIG_X86_64
96#ifdef CONFIG_EFI
97 FIX_EFI_IO_MAP_LAST_PAGE,
98 FIX_EFI_IO_MAP_FIRST_PAGE = FIX_EFI_IO_MAP_LAST_PAGE
99 + MAX_EFI_IO_PAGES - 1,
100#endif
101#endif
102#ifdef CONFIG_X86_VISWS_APIC
103 FIX_CO_CPU, /* Cobalt timer */
104 FIX_CO_APIC, /* Cobalt APIC Redirection Table */
105 FIX_LI_PCIA, /* Lithium PCI Bridge A */
106 FIX_LI_PCIB, /* Lithium PCI Bridge B */
107#endif
108#ifdef CONFIG_X86_F00F_BUG
109 FIX_F00F_IDT, /* Virtual mapping for IDT */
110#endif
111#ifdef CONFIG_X86_CYCLONE_TIMER
112 FIX_CYCLONE_TIMER, /*cyclone timer register*/
113#endif
114#ifdef CONFIG_X86_32
115 FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
116 FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
117#ifdef CONFIG_PCI_MMCONFIG
118 FIX_PCIE_MCFG,
119#endif
120#endif
121#ifdef CONFIG_PARAVIRT
122 FIX_PARAVIRT_BOOTMAP,
123#endif
124 __end_of_permanent_fixed_addresses,
125#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
126 FIX_OHCI1394_BASE,
127#endif
128 /*
129 * 256 temporary boot-time mappings, used by early_ioremap(),
130 * before ioremap() is functional.
131 *
132 * We round it up to the next 256 pages boundary so that we
133 * can have a single pgd entry and a single pte table:
134 */
135#define NR_FIX_BTMAPS 64
136#define FIX_BTMAPS_SLOTS 4
137 FIX_BTMAP_END = __end_of_permanent_fixed_addresses + 256 -
138 (__end_of_permanent_fixed_addresses & 255),
139 FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS*FIX_BTMAPS_SLOTS - 1,
140#ifdef CONFIG_X86_32
141 FIX_WP_TEST,
142#endif
143 __end_of_fixed_addresses
144};
145
146
147extern void reserve_top_address(unsigned long reserve);
148
149#define FIXADDR_SIZE (__end_of_permanent_fixed_addresses << PAGE_SHIFT)
150#define FIXADDR_BOOT_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
151#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
152#define FIXADDR_BOOT_START (FIXADDR_TOP - FIXADDR_BOOT_SIZE)
9 153
10extern int fixmaps_set; 154extern int fixmaps_set;
11 155
@@ -69,4 +213,5 @@ static inline unsigned long virt_to_fix(const unsigned long vaddr)
69 BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); 213 BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START);
70 return __virt_to_fix(vaddr); 214 return __virt_to_fix(vaddr);
71} 215}
216#endif /* !__ASSEMBLY__ */
72#endif /* _ASM_X86_FIXMAP_H */ 217#endif /* _ASM_X86_FIXMAP_H */
diff --git a/arch/x86/include/asm/fixmap_32.h b/arch/x86/include/asm/fixmap_32.h
deleted file mode 100644
index c7115c1d7217..000000000000
--- a/arch/x86/include/asm/fixmap_32.h
+++ /dev/null
@@ -1,119 +0,0 @@
1/*
2 * fixmap.h: compile-time virtual memory allocation
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
6 * for more details.
7 *
8 * Copyright (C) 1998 Ingo Molnar
9 *
10 * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999
11 */
12
13#ifndef _ASM_X86_FIXMAP_32_H
14#define _ASM_X86_FIXMAP_32_H
15
16
17/* used by vmalloc.c, vsyscall.lds.S.
18 *
19 * Leave one empty page between vmalloc'ed areas and
20 * the start of the fixmap.
21 */
22extern unsigned long __FIXADDR_TOP;
23#define FIXADDR_USER_START __fix_to_virt(FIX_VDSO)
24#define FIXADDR_USER_END __fix_to_virt(FIX_VDSO - 1)
25
26#ifndef __ASSEMBLY__
27#include <linux/kernel.h>
28#include <asm/acpi.h>
29#include <asm/apicdef.h>
30#include <asm/page.h>
31#include <linux/threads.h>
32#include <asm/kmap_types.h>
33
34/*
35 * Here we define all the compile-time 'special' virtual
36 * addresses. The point is to have a constant address at
37 * compile time, but to set the physical address only
38 * in the boot process. We allocate these special addresses
39 * from the end of virtual memory (0xfffff000) backwards.
40 * Also this lets us do fail-safe vmalloc(), we
41 * can guarantee that these special addresses and
42 * vmalloc()-ed addresses never overlap.
43 *
44 * these 'compile-time allocated' memory buffers are
45 * fixed-size 4k pages. (or larger if used with an increment
46 * highger than 1) use fixmap_set(idx,phys) to associate
47 * physical memory with fixmap indices.
48 *
49 * TLB entries of such buffers will not be flushed across
50 * task switches.
51 */
52enum fixed_addresses {
53 FIX_HOLE,
54 FIX_VDSO,
55 FIX_DBGP_BASE,
56 FIX_EARLYCON_MEM_BASE,
57#ifdef CONFIG_X86_LOCAL_APIC
58 FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */
59#endif
60#ifdef CONFIG_X86_IO_APIC
61 FIX_IO_APIC_BASE_0,
62 FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1,
63#endif
64#ifdef CONFIG_X86_VISWS_APIC
65 FIX_CO_CPU, /* Cobalt timer */
66 FIX_CO_APIC, /* Cobalt APIC Redirection Table */
67 FIX_LI_PCIA, /* Lithium PCI Bridge A */
68 FIX_LI_PCIB, /* Lithium PCI Bridge B */
69#endif
70#ifdef CONFIG_X86_F00F_BUG
71 FIX_F00F_IDT, /* Virtual mapping for IDT */
72#endif
73#ifdef CONFIG_X86_CYCLONE_TIMER
74 FIX_CYCLONE_TIMER, /*cyclone timer register*/
75#endif
76 FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
77 FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
78#ifdef CONFIG_PCI_MMCONFIG
79 FIX_PCIE_MCFG,
80#endif
81#ifdef CONFIG_PARAVIRT
82 FIX_PARAVIRT_BOOTMAP,
83#endif
84 __end_of_permanent_fixed_addresses,
85 /*
86 * 256 temporary boot-time mappings, used by early_ioremap(),
87 * before ioremap() is functional.
88 *
89 * We round it up to the next 256 pages boundary so that we
90 * can have a single pgd entry and a single pte table:
91 */
92#define NR_FIX_BTMAPS 64
93#define FIX_BTMAPS_SLOTS 4
94 FIX_BTMAP_END = __end_of_permanent_fixed_addresses + 256 -
95 (__end_of_permanent_fixed_addresses & 255),
96 FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS*FIX_BTMAPS_SLOTS - 1,
97 FIX_WP_TEST,
98#ifdef CONFIG_ACPI
99 FIX_ACPI_BEGIN,
100 FIX_ACPI_END = FIX_ACPI_BEGIN + FIX_ACPI_PAGES - 1,
101#endif
102#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
103 FIX_OHCI1394_BASE,
104#endif
105 __end_of_fixed_addresses
106};
107
108extern void reserve_top_address(unsigned long reserve);
109
110
111#define FIXADDR_TOP ((unsigned long)__FIXADDR_TOP)
112
113#define __FIXADDR_SIZE (__end_of_permanent_fixed_addresses << PAGE_SHIFT)
114#define __FIXADDR_BOOT_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
115#define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE)
116#define FIXADDR_BOOT_START (FIXADDR_TOP - __FIXADDR_BOOT_SIZE)
117
118#endif /* !__ASSEMBLY__ */
119#endif /* _ASM_X86_FIXMAP_32_H */
diff --git a/arch/x86/include/asm/fixmap_64.h b/arch/x86/include/asm/fixmap_64.h
deleted file mode 100644
index 00a30ab9b1a5..000000000000
--- a/arch/x86/include/asm/fixmap_64.h
+++ /dev/null
@@ -1,83 +0,0 @@
1/*
2 * fixmap.h: compile-time virtual memory allocation
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
6 * for more details.
7 *
8 * Copyright (C) 1998 Ingo Molnar
9 */
10
11#ifndef _ASM_X86_FIXMAP_64_H
12#define _ASM_X86_FIXMAP_64_H
13
14#include <linux/kernel.h>
15#include <asm/acpi.h>
16#include <asm/apicdef.h>
17#include <asm/page.h>
18#include <asm/vsyscall.h>
19#include <asm/efi.h>
20
21/*
22 * Here we define all the compile-time 'special' virtual
23 * addresses. The point is to have a constant address at
24 * compile time, but to set the physical address only
25 * in the boot process.
26 *
27 * These 'compile-time allocated' memory buffers are
28 * fixed-size 4k pages (or larger if used with an increment
29 * higher than 1). Use set_fixmap(idx,phys) to associate
30 * physical memory with fixmap indices.
31 *
32 * TLB entries of such buffers will not be flushed across
33 * task switches.
34 */
35
36enum fixed_addresses {
37 VSYSCALL_LAST_PAGE,
38 VSYSCALL_FIRST_PAGE = VSYSCALL_LAST_PAGE
39 + ((VSYSCALL_END-VSYSCALL_START) >> PAGE_SHIFT) - 1,
40 VSYSCALL_HPET,
41 FIX_DBGP_BASE,
42 FIX_EARLYCON_MEM_BASE,
43 FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */
44 FIX_IO_APIC_BASE_0,
45 FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS - 1,
46 FIX_EFI_IO_MAP_LAST_PAGE,
47 FIX_EFI_IO_MAP_FIRST_PAGE = FIX_EFI_IO_MAP_LAST_PAGE
48 + MAX_EFI_IO_PAGES - 1,
49#ifdef CONFIG_PARAVIRT
50 FIX_PARAVIRT_BOOTMAP,
51#endif
52 __end_of_permanent_fixed_addresses,
53#ifdef CONFIG_ACPI
54 FIX_ACPI_BEGIN,
55 FIX_ACPI_END = FIX_ACPI_BEGIN + FIX_ACPI_PAGES - 1,
56#endif
57#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
58 FIX_OHCI1394_BASE,
59#endif
60 /*
61 * 256 temporary boot-time mappings, used by early_ioremap(),
62 * before ioremap() is functional.
63 *
64 * We round it up to the next 256 pages boundary so that we
65 * can have a single pgd entry and a single pte table:
66 */
67#define NR_FIX_BTMAPS 64
68#define FIX_BTMAPS_SLOTS 4
69 FIX_BTMAP_END = __end_of_permanent_fixed_addresses + 256 -
70 (__end_of_permanent_fixed_addresses & 255),
71 FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS*FIX_BTMAPS_SLOTS - 1,
72 __end_of_fixed_addresses
73};
74
75#define FIXADDR_TOP (VSYSCALL_END-PAGE_SIZE)
76#define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
77#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
78
79/* Only covers 32bit vsyscalls currently. Need another set for 64bit. */
80#define FIXADDR_USER_START ((unsigned long)VSYSCALL32_VSYSCALL)
81#define FIXADDR_USER_END (FIXADDR_USER_START + PAGE_SIZE)
82
83#endif /* _ASM_X86_FIXMAP_64_H */
diff --git a/arch/x86/include/asm/genapic.h b/arch/x86/include/asm/genapic.h
index d48bee663a6f..4b8b98fa7f25 100644
--- a/arch/x86/include/asm/genapic.h
+++ b/arch/x86/include/asm/genapic.h
@@ -1,5 +1 @@
1#ifdef CONFIG_X86_32 #include <asm/apic.h>
2# include "genapic_32.h"
3#else
4# include "genapic_64.h"
5#endif
diff --git a/arch/x86/include/asm/genapic_32.h b/arch/x86/include/asm/genapic_32.h
deleted file mode 100644
index 746f37a7963a..000000000000
--- a/arch/x86/include/asm/genapic_32.h
+++ /dev/null
@@ -1,148 +0,0 @@
1#ifndef _ASM_X86_GENAPIC_32_H
2#define _ASM_X86_GENAPIC_32_H
3
4#include <asm/mpspec.h>
5#include <asm/atomic.h>
6
7/*
8 * Generic APIC driver interface.
9 *
10 * An straight forward mapping of the APIC related parts of the
11 * x86 subarchitecture interface to a dynamic object.
12 *
13 * This is used by the "generic" x86 subarchitecture.
14 *
15 * Copyright 2003 Andi Kleen, SuSE Labs.
16 */
17
18struct mpc_config_bus;
19struct mp_config_table;
20struct mpc_config_processor;
21
22struct genapic {
23 char *name;
24 int (*probe)(void);
25
26 int (*apic_id_registered)(void);
27 const struct cpumask *(*target_cpus)(void);
28 int int_delivery_mode;
29 int int_dest_mode;
30 int ESR_DISABLE;
31 int apic_destination_logical;
32 unsigned long (*check_apicid_used)(physid_mask_t bitmap, int apicid);
33 unsigned long (*check_apicid_present)(int apicid);
34 int no_balance_irq;
35 int no_ioapic_check;
36 void (*init_apic_ldr)(void);
37 physid_mask_t (*ioapic_phys_id_map)(physid_mask_t map);
38
39 void (*setup_apic_routing)(void);
40 int (*multi_timer_check)(int apic, int irq);
41 int (*apicid_to_node)(int logical_apicid);
42 int (*cpu_to_logical_apicid)(int cpu);
43 int (*cpu_present_to_apicid)(int mps_cpu);
44 physid_mask_t (*apicid_to_cpu_present)(int phys_apicid);
45 void (*setup_portio_remap)(void);
46 int (*check_phys_apicid_present)(int boot_cpu_physical_apicid);
47 void (*enable_apic_mode)(void);
48 u32 (*phys_pkg_id)(u32 cpuid_apic, int index_msb);
49
50 /* mpparse */
51 /* When one of the next two hooks returns 1 the genapic
52 is switched to this. Essentially they are additional probe
53 functions. */
54 int (*mps_oem_check)(struct mp_config_table *mpc, char *oem,
55 char *productid);
56 int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id);
57
58 unsigned (*get_apic_id)(unsigned long x);
59 unsigned long apic_id_mask;
60 unsigned int (*cpu_mask_to_apicid)(const struct cpumask *cpumask);
61 unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask,
62 const struct cpumask *andmask);
63 void (*vector_allocation_domain)(int cpu, struct cpumask *retmask);
64
65#ifdef CONFIG_SMP
66 /* ipi */
67 void (*send_IPI_mask)(const struct cpumask *mask, int vector);
68 void (*send_IPI_mask_allbutself)(const struct cpumask *mask,
69 int vector);
70 void (*send_IPI_allbutself)(int vector);
71 void (*send_IPI_all)(int vector);
72#endif
73 int (*wakeup_cpu)(int apicid, unsigned long start_eip);
74 int trampoline_phys_low;
75 int trampoline_phys_high;
76 void (*wait_for_init_deassert)(atomic_t *deassert);
77 void (*smp_callin_clear_local_apic)(void);
78 void (*store_NMI_vector)(unsigned short *high, unsigned short *low);
79 void (*restore_NMI_vector)(unsigned short *high, unsigned short *low);
80 void (*inquire_remote_apic)(int apicid);
81};
82
83#define APICFUNC(x) .x = x,
84
85/* More functions could be probably marked IPIFUNC and save some space
86 in UP GENERICARCH kernels, but I don't have the nerve right now
87 to untangle this mess. -AK */
88#ifdef CONFIG_SMP
89#define IPIFUNC(x) APICFUNC(x)
90#else
91#define IPIFUNC(x)
92#endif
93
94#define APIC_INIT(aname, aprobe) \
95{ \
96 .name = aname, \
97 .probe = aprobe, \
98 .int_delivery_mode = INT_DELIVERY_MODE, \
99 .int_dest_mode = INT_DEST_MODE, \
100 .no_balance_irq = NO_BALANCE_IRQ, \
101 .ESR_DISABLE = esr_disable, \
102 .apic_destination_logical = APIC_DEST_LOGICAL, \
103 APICFUNC(apic_id_registered) \
104 APICFUNC(target_cpus) \
105 APICFUNC(check_apicid_used) \
106 APICFUNC(check_apicid_present) \
107 APICFUNC(init_apic_ldr) \
108 APICFUNC(ioapic_phys_id_map) \
109 APICFUNC(setup_apic_routing) \
110 APICFUNC(multi_timer_check) \
111 APICFUNC(apicid_to_node) \
112 APICFUNC(cpu_to_logical_apicid) \
113 APICFUNC(cpu_present_to_apicid) \
114 APICFUNC(apicid_to_cpu_present) \
115 APICFUNC(setup_portio_remap) \
116 APICFUNC(check_phys_apicid_present) \
117 APICFUNC(mps_oem_check) \
118 APICFUNC(get_apic_id) \
119 .apic_id_mask = APIC_ID_MASK, \
120 APICFUNC(cpu_mask_to_apicid) \
121 APICFUNC(cpu_mask_to_apicid_and) \
122 APICFUNC(vector_allocation_domain) \
123 APICFUNC(acpi_madt_oem_check) \
124 IPIFUNC(send_IPI_mask) \
125 IPIFUNC(send_IPI_allbutself) \
126 IPIFUNC(send_IPI_all) \
127 APICFUNC(enable_apic_mode) \
128 APICFUNC(phys_pkg_id) \
129 .trampoline_phys_low = TRAMPOLINE_PHYS_LOW, \
130 .trampoline_phys_high = TRAMPOLINE_PHYS_HIGH, \
131 APICFUNC(wait_for_init_deassert) \
132 APICFUNC(smp_callin_clear_local_apic) \
133 APICFUNC(store_NMI_vector) \
134 APICFUNC(restore_NMI_vector) \
135 APICFUNC(inquire_remote_apic) \
136}
137
138extern struct genapic *genapic;
139extern void es7000_update_genapic_to_cluster(void);
140
141enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC};
142#define get_uv_system_type() UV_NONE
143#define is_uv_system() 0
144#define uv_wakeup_secondary(a, b) 1
145#define uv_system_init() do {} while (0)
146
147
148#endif /* _ASM_X86_GENAPIC_32_H */
diff --git a/arch/x86/include/asm/genapic_64.h b/arch/x86/include/asm/genapic_64.h
deleted file mode 100644
index adf32fb56aa6..000000000000
--- a/arch/x86/include/asm/genapic_64.h
+++ /dev/null
@@ -1,66 +0,0 @@
1#ifndef _ASM_X86_GENAPIC_64_H
2#define _ASM_X86_GENAPIC_64_H
3
4#include <linux/cpumask.h>
5
6/*
7 * Copyright 2004 James Cleverdon, IBM.
8 * Subject to the GNU Public License, v.2
9 *
10 * Generic APIC sub-arch data struct.
11 *
12 * Hacked for x86-64 by James Cleverdon from i386 architecture code by
13 * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
14 * James Cleverdon.
15 */
16
17struct genapic {
18 char *name;
19 int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id);
20 u32 int_delivery_mode;
21 u32 int_dest_mode;
22 int (*apic_id_registered)(void);
23 const struct cpumask *(*target_cpus)(void);
24 void (*vector_allocation_domain)(int cpu, struct cpumask *retmask);
25 void (*init_apic_ldr)(void);
26 /* ipi */
27 void (*send_IPI_mask)(const struct cpumask *mask, int vector);
28 void (*send_IPI_mask_allbutself)(const struct cpumask *mask,
29 int vector);
30 void (*send_IPI_allbutself)(int vector);
31 void (*send_IPI_all)(int vector);
32 void (*send_IPI_self)(int vector);
33 /* */
34 unsigned int (*cpu_mask_to_apicid)(const struct cpumask *cpumask);
35 unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask,
36 const struct cpumask *andmask);
37 unsigned int (*phys_pkg_id)(int index_msb);
38 unsigned int (*get_apic_id)(unsigned long x);
39 unsigned long (*set_apic_id)(unsigned int id);
40 unsigned long apic_id_mask;
41 /* wakeup_secondary_cpu */
42 int (*wakeup_cpu)(int apicid, unsigned long start_eip);
43};
44
45extern struct genapic *genapic;
46
47extern struct genapic apic_flat;
48extern struct genapic apic_physflat;
49extern struct genapic apic_x2apic_cluster;
50extern struct genapic apic_x2apic_phys;
51extern int acpi_madt_oem_check(char *, char *);
52
53extern void apic_send_IPI_self(int vector);
54enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC};
55extern enum uv_system_type get_uv_system_type(void);
56extern int is_uv_system(void);
57
58extern struct genapic apic_x2apic_uv_x;
59DECLARE_PER_CPU(int, x2apic_extra_bits);
60extern void uv_cpu_init(void);
61extern void uv_system_init(void);
62extern int uv_wakeup_secondary(int phys_apicid, unsigned int start_rip);
63
64extern void setup_apic_routing(void);
65
66#endif /* _ASM_X86_GENAPIC_64_H */
diff --git a/arch/x86/include/asm/hardirq.h b/arch/x86/include/asm/hardirq.h
index 000787df66e6..176f058e7159 100644
--- a/arch/x86/include/asm/hardirq.h
+++ b/arch/x86/include/asm/hardirq.h
@@ -1,11 +1,52 @@
1#ifdef CONFIG_X86_32 1#ifndef _ASM_X86_HARDIRQ_H
2# include "hardirq_32.h" 2#define _ASM_X86_HARDIRQ_H
3#else 3
4# include "hardirq_64.h" 4#include <linux/threads.h>
5#include <linux/irq.h>
6
7typedef struct {
8 unsigned int __softirq_pending;
9 unsigned int __nmi_count; /* arch dependent */
10 unsigned int irq0_irqs;
11#ifdef CONFIG_X86_LOCAL_APIC
12 unsigned int apic_timer_irqs; /* arch dependent */
13 unsigned int irq_spurious_count;
14#endif
15#ifdef CONFIG_SMP
16 unsigned int irq_resched_count;
17 unsigned int irq_call_count;
18 unsigned int irq_tlb_count;
19#endif
20#ifdef CONFIG_X86_MCE
21 unsigned int irq_thermal_count;
22# ifdef CONFIG_X86_64
23 unsigned int irq_threshold_count;
24# endif
5#endif 25#endif
26} ____cacheline_aligned irq_cpustat_t;
27
28DECLARE_PER_CPU(irq_cpustat_t, irq_stat);
29
30/* We can have at most NR_VECTORS irqs routed to a cpu at a time */
31#define MAX_HARDIRQS_PER_CPU NR_VECTORS
32
33#define __ARCH_IRQ_STAT
34
35#define inc_irq_stat(member) percpu_add(irq_stat.member, 1)
36
37#define local_softirq_pending() percpu_read(irq_stat.__softirq_pending)
38
39#define __ARCH_SET_SOFTIRQ_PENDING
40
41#define set_softirq_pending(x) percpu_write(irq_stat.__softirq_pending, (x))
42#define or_softirq_pending(x) percpu_or(irq_stat.__softirq_pending, (x))
43
44extern void ack_bad_irq(unsigned int irq);
6 45
7extern u64 arch_irq_stat_cpu(unsigned int cpu); 46extern u64 arch_irq_stat_cpu(unsigned int cpu);
8#define arch_irq_stat_cpu arch_irq_stat_cpu 47#define arch_irq_stat_cpu arch_irq_stat_cpu
9 48
10extern u64 arch_irq_stat(void); 49extern u64 arch_irq_stat(void);
11#define arch_irq_stat arch_irq_stat 50#define arch_irq_stat arch_irq_stat
51
52#endif /* _ASM_X86_HARDIRQ_H */
diff --git a/arch/x86/include/asm/hardirq_32.h b/arch/x86/include/asm/hardirq_32.h
deleted file mode 100644
index cf7954d1405f..000000000000
--- a/arch/x86/include/asm/hardirq_32.h
+++ /dev/null
@@ -1,30 +0,0 @@
1#ifndef _ASM_X86_HARDIRQ_32_H
2#define _ASM_X86_HARDIRQ_32_H
3
4#include <linux/threads.h>
5#include <linux/irq.h>
6
7typedef struct {
8 unsigned int __softirq_pending;
9 unsigned long idle_timestamp;
10 unsigned int __nmi_count; /* arch dependent */
11 unsigned int apic_timer_irqs; /* arch dependent */
12 unsigned int irq0_irqs;
13 unsigned int irq_resched_count;
14 unsigned int irq_call_count;
15 unsigned int irq_tlb_count;
16 unsigned int irq_thermal_count;
17 unsigned int irq_spurious_count;
18} ____cacheline_aligned irq_cpustat_t;
19
20DECLARE_PER_CPU(irq_cpustat_t, irq_stat);
21
22#define __ARCH_IRQ_STAT
23#define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member)
24
25#define inc_irq_stat(member) (__get_cpu_var(irq_stat).member++)
26
27void ack_bad_irq(unsigned int irq);
28#include <linux/irq_cpustat.h>
29
30#endif /* _ASM_X86_HARDIRQ_32_H */
diff --git a/arch/x86/include/asm/hardirq_64.h b/arch/x86/include/asm/hardirq_64.h
deleted file mode 100644
index b5a6b5d56704..000000000000
--- a/arch/x86/include/asm/hardirq_64.h
+++ /dev/null
@@ -1,25 +0,0 @@
1#ifndef _ASM_X86_HARDIRQ_64_H
2#define _ASM_X86_HARDIRQ_64_H
3
4#include <linux/threads.h>
5#include <linux/irq.h>
6#include <asm/pda.h>
7#include <asm/apic.h>
8
9/* We can have at most NR_VECTORS irqs routed to a cpu at a time */
10#define MAX_HARDIRQS_PER_CPU NR_VECTORS
11
12#define __ARCH_IRQ_STAT 1
13
14#define inc_irq_stat(member) add_pda(member, 1)
15
16#define local_softirq_pending() read_pda(__softirq_pending)
17
18#define __ARCH_SET_SOFTIRQ_PENDING 1
19
20#define set_softirq_pending(x) write_pda(__softirq_pending, (x))
21#define or_softirq_pending(x) or_pda(__softirq_pending, (x))
22
23extern void ack_bad_irq(unsigned int irq);
24
25#endif /* _ASM_X86_HARDIRQ_64_H */
diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
index 8de644b6b959..370e1c83bb49 100644
--- a/arch/x86/include/asm/hw_irq.h
+++ b/arch/x86/include/asm/hw_irq.h
@@ -25,8 +25,6 @@
25#include <asm/irq.h> 25#include <asm/irq.h>
26#include <asm/sections.h> 26#include <asm/sections.h>
27 27
28#define platform_legacy_irq(irq) ((irq) < 16)
29
30/* Interrupt handlers registered during init_IRQ */ 28/* Interrupt handlers registered during init_IRQ */
31extern void apic_timer_interrupt(void); 29extern void apic_timer_interrupt(void);
32extern void error_interrupt(void); 30extern void error_interrupt(void);
@@ -58,7 +56,7 @@ extern void make_8259A_irq(unsigned int irq);
58extern void init_8259A(int aeoi); 56extern void init_8259A(int aeoi);
59 57
60/* IOAPIC */ 58/* IOAPIC */
61#define IO_APIC_IRQ(x) (((x) >= 16) || ((1<<(x)) & io_apic_irqs)) 59#define IO_APIC_IRQ(x) (((x) >= NR_IRQS_LEGACY) || ((1<<(x)) & io_apic_irqs))
62extern unsigned long io_apic_irqs; 60extern unsigned long io_apic_irqs;
63 61
64extern void init_VISWS_APIC_irqs(void); 62extern void init_VISWS_APIC_irqs(void);
@@ -67,15 +65,7 @@ extern void disable_IO_APIC(void);
67extern int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn); 65extern int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn);
68extern void setup_ioapic_dest(void); 66extern void setup_ioapic_dest(void);
69 67
70#ifdef CONFIG_X86_64
71extern void enable_IO_APIC(void); 68extern void enable_IO_APIC(void);
72#endif
73
74/* IPI functions */
75#ifdef CONFIG_X86_32
76extern void send_IPI_self(int vector);
77#endif
78extern void send_IPI(int dest, int vector);
79 69
80/* Statistics */ 70/* Statistics */
81extern atomic_t irq_err_count; 71extern atomic_t irq_err_count;
@@ -84,21 +74,11 @@ extern atomic_t irq_mis_count;
84/* EISA */ 74/* EISA */
85extern void eisa_set_level_irq(unsigned int irq); 75extern void eisa_set_level_irq(unsigned int irq);
86 76
87/* Voyager functions */
88extern asmlinkage void vic_cpi_interrupt(void);
89extern asmlinkage void vic_sys_interrupt(void);
90extern asmlinkage void vic_cmn_interrupt(void);
91extern asmlinkage void qic_timer_interrupt(void);
92extern asmlinkage void qic_invalidate_interrupt(void);
93extern asmlinkage void qic_reschedule_interrupt(void);
94extern asmlinkage void qic_enable_irq_interrupt(void);
95extern asmlinkage void qic_call_function_interrupt(void);
96
97/* SMP */ 77/* SMP */
98extern void smp_apic_timer_interrupt(struct pt_regs *); 78extern void smp_apic_timer_interrupt(struct pt_regs *);
99extern void smp_spurious_interrupt(struct pt_regs *); 79extern void smp_spurious_interrupt(struct pt_regs *);
100extern void smp_error_interrupt(struct pt_regs *); 80extern void smp_error_interrupt(struct pt_regs *);
101#ifdef CONFIG_X86_SMP 81#ifdef CONFIG_SMP
102extern void smp_reschedule_interrupt(struct pt_regs *); 82extern void smp_reschedule_interrupt(struct pt_regs *);
103extern void smp_call_function_interrupt(struct pt_regs *); 83extern void smp_call_function_interrupt(struct pt_regs *);
104extern void smp_call_function_single_interrupt(struct pt_regs *); 84extern void smp_call_function_single_interrupt(struct pt_regs *);
diff --git a/arch/x86/include/asm/i8259.h b/arch/x86/include/asm/i8259.h
index 58d7091eeb1f..1a99e6c092af 100644
--- a/arch/x86/include/asm/i8259.h
+++ b/arch/x86/include/asm/i8259.h
@@ -60,4 +60,8 @@ extern struct irq_chip i8259A_chip;
60extern void mask_8259A(void); 60extern void mask_8259A(void);
61extern void unmask_8259A(void); 61extern void unmask_8259A(void);
62 62
63#ifdef CONFIG_X86_32
64extern void init_ISA_irqs(void);
65#endif
66
63#endif /* _ASM_X86_I8259_H */ 67#endif /* _ASM_X86_I8259_H */
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 05cfed4485fa..683d0b4c00fc 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -5,6 +5,7 @@
5 5
6#include <linux/compiler.h> 6#include <linux/compiler.h>
7#include <asm-generic/int-ll64.h> 7#include <asm-generic/int-ll64.h>
8#include <asm/page.h>
8 9
9#define build_mmio_read(name, size, type, reg, barrier) \ 10#define build_mmio_read(name, size, type, reg, barrier) \
10static inline type name(const volatile void __iomem *addr) \ 11static inline type name(const volatile void __iomem *addr) \
@@ -80,6 +81,100 @@ static inline void writeq(__u64 val, volatile void __iomem *addr)
80#define readq readq 81#define readq readq
81#define writeq writeq 82#define writeq writeq
82 83
84/**
85 * virt_to_phys - map virtual addresses to physical
86 * @address: address to remap
87 *
88 * The returned physical address is the physical (CPU) mapping for
89 * the memory address given. It is only valid to use this function on
90 * addresses directly mapped or allocated via kmalloc.
91 *
92 * This function does not give bus mappings for DMA transfers. In
93 * almost all conceivable cases a device driver should not be using
94 * this function
95 */
96
97static inline phys_addr_t virt_to_phys(volatile void *address)
98{
99 return __pa(address);
100}
101
102/**
103 * phys_to_virt - map physical address to virtual
104 * @address: address to remap
105 *
106 * The returned virtual address is a current CPU mapping for
107 * the memory address given. It is only valid to use this function on
108 * addresses that have a kernel mapping
109 *
110 * This function does not handle bus mappings for DMA transfers. In
111 * almost all conceivable cases a device driver should not be using
112 * this function
113 */
114
115static inline void *phys_to_virt(phys_addr_t address)
116{
117 return __va(address);
118}
119
120/*
121 * Change "struct page" to physical address.
122 */
123#define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
124
125/*
126 * ISA I/O bus memory addresses are 1:1 with the physical address.
127 * However, we truncate the address to unsigned int to avoid undesirable
128 * promitions in legacy drivers.
129 */
130static inline unsigned int isa_virt_to_bus(volatile void *address)
131{
132 return (unsigned int)virt_to_phys(address);
133}
134#define isa_page_to_bus(page) ((unsigned int)page_to_phys(page))
135#define isa_bus_to_virt phys_to_virt
136
137/*
138 * However PCI ones are not necessarily 1:1 and therefore these interfaces
139 * are forbidden in portable PCI drivers.
140 *
141 * Allow them on x86 for legacy drivers, though.
142 */
143#define virt_to_bus virt_to_phys
144#define bus_to_virt phys_to_virt
145
146/**
147 * ioremap - map bus memory into CPU space
148 * @offset: bus address of the memory
149 * @size: size of the resource to map
150 *
151 * ioremap performs a platform specific sequence of operations to
152 * make bus memory CPU accessible via the readb/readw/readl/writeb/
153 * writew/writel functions and the other mmio helpers. The returned
154 * address is not guaranteed to be usable directly as a virtual
155 * address.
156 *
157 * If the area you are trying to map is a PCI BAR you should have a
158 * look at pci_iomap().
159 */
160extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
161extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
162extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size,
163 unsigned long prot_val);
164
165/*
166 * The default ioremap() behavior is non-cached:
167 */
168static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
169{
170 return ioremap_nocache(offset, size);
171}
172
173extern void iounmap(volatile void __iomem *addr);
174
175extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
176
177
83#ifdef CONFIG_X86_32 178#ifdef CONFIG_X86_32
84# include "io_32.h" 179# include "io_32.h"
85#else 180#else
@@ -91,7 +186,7 @@ extern void unxlate_dev_mem_ptr(unsigned long phys, void *addr);
91 186
92extern int ioremap_change_attr(unsigned long vaddr, unsigned long size, 187extern int ioremap_change_attr(unsigned long vaddr, unsigned long size,
93 unsigned long prot_val); 188 unsigned long prot_val);
94extern void __iomem *ioremap_wc(unsigned long offset, unsigned long size); 189extern void __iomem *ioremap_wc(resource_size_t offset, unsigned long size);
95 190
96/* 191/*
97 * early_ioremap() and early_iounmap() are for temporary early boot-time 192 * early_ioremap() and early_iounmap() are for temporary early boot-time
@@ -99,12 +194,12 @@ extern void __iomem *ioremap_wc(unsigned long offset, unsigned long size);
99 * A boot-time mapping is currently limited to at most 16 pages. 194 * A boot-time mapping is currently limited to at most 16 pages.
100 */ 195 */
101extern void early_ioremap_init(void); 196extern void early_ioremap_init(void);
102extern void early_ioremap_clear(void);
103extern void early_ioremap_reset(void); 197extern void early_ioremap_reset(void);
104extern void __iomem *early_ioremap(unsigned long offset, unsigned long size); 198extern void __iomem *early_ioremap(unsigned long offset, unsigned long size);
105extern void __iomem *early_memremap(unsigned long offset, unsigned long size); 199extern void __iomem *early_memremap(unsigned long offset, unsigned long size);
106extern void early_iounmap(void __iomem *addr, unsigned long size); 200extern void early_iounmap(void __iomem *addr, unsigned long size);
107extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys); 201extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
108 202
203#define IO_SPACE_LIMIT 0xffff
109 204
110#endif /* _ASM_X86_IO_H */ 205#endif /* _ASM_X86_IO_H */
diff --git a/arch/x86/include/asm/io_32.h b/arch/x86/include/asm/io_32.h
index d8e242e1b396..a299900f5920 100644
--- a/arch/x86/include/asm/io_32.h
+++ b/arch/x86/include/asm/io_32.h
@@ -37,8 +37,6 @@
37 * - Arnaldo Carvalho de Melo <acme@conectiva.com.br> 37 * - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
38 */ 38 */
39 39
40#define IO_SPACE_LIMIT 0xffff
41
42#define XQUAD_PORTIO_BASE 0xfe400000 40#define XQUAD_PORTIO_BASE 0xfe400000
43#define XQUAD_PORTIO_QUAD 0x40000 /* 256k per quad. */ 41#define XQUAD_PORTIO_QUAD 0x40000 /* 256k per quad. */
44 42
@@ -53,92 +51,6 @@
53 */ 51 */
54#define xlate_dev_kmem_ptr(p) p 52#define xlate_dev_kmem_ptr(p) p
55 53
56/**
57 * virt_to_phys - map virtual addresses to physical
58 * @address: address to remap
59 *
60 * The returned physical address is the physical (CPU) mapping for
61 * the memory address given. It is only valid to use this function on
62 * addresses directly mapped or allocated via kmalloc.
63 *
64 * This function does not give bus mappings for DMA transfers. In
65 * almost all conceivable cases a device driver should not be using
66 * this function
67 */
68
69static inline unsigned long virt_to_phys(volatile void *address)
70{
71 return __pa(address);
72}
73
74/**
75 * phys_to_virt - map physical address to virtual
76 * @address: address to remap
77 *
78 * The returned virtual address is a current CPU mapping for
79 * the memory address given. It is only valid to use this function on
80 * addresses that have a kernel mapping
81 *
82 * This function does not handle bus mappings for DMA transfers. In
83 * almost all conceivable cases a device driver should not be using
84 * this function
85 */
86
87static inline void *phys_to_virt(unsigned long address)
88{
89 return __va(address);
90}
91
92/*
93 * Change "struct page" to physical address.
94 */
95#define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
96
97/**
98 * ioremap - map bus memory into CPU space
99 * @offset: bus address of the memory
100 * @size: size of the resource to map
101 *
102 * ioremap performs a platform specific sequence of operations to
103 * make bus memory CPU accessible via the readb/readw/readl/writeb/
104 * writew/writel functions and the other mmio helpers. The returned
105 * address is not guaranteed to be usable directly as a virtual
106 * address.
107 *
108 * If the area you are trying to map is a PCI BAR you should have a
109 * look at pci_iomap().
110 */
111extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
112extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
113extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size,
114 unsigned long prot_val);
115
116/*
117 * The default ioremap() behavior is non-cached:
118 */
119static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
120{
121 return ioremap_nocache(offset, size);
122}
123
124extern void iounmap(volatile void __iomem *addr);
125
126/*
127 * ISA I/O bus memory addresses are 1:1 with the physical address.
128 */
129#define isa_virt_to_bus virt_to_phys
130#define isa_page_to_bus page_to_phys
131#define isa_bus_to_virt phys_to_virt
132
133/*
134 * However PCI ones are not necessarily 1:1 and therefore these interfaces
135 * are forbidden in portable PCI drivers.
136 *
137 * Allow them on x86 for legacy drivers, though.
138 */
139#define virt_to_bus virt_to_phys
140#define bus_to_virt phys_to_virt
141
142static inline void 54static inline void
143memset_io(volatile void __iomem *addr, unsigned char val, int count) 55memset_io(volatile void __iomem *addr, unsigned char val, int count)
144{ 56{
diff --git a/arch/x86/include/asm/io_64.h b/arch/x86/include/asm/io_64.h
index 563c16270ba6..244067893af4 100644
--- a/arch/x86/include/asm/io_64.h
+++ b/arch/x86/include/asm/io_64.h
@@ -136,73 +136,12 @@ __OUTS(b)
136__OUTS(w) 136__OUTS(w)
137__OUTS(l) 137__OUTS(l)
138 138
139#define IO_SPACE_LIMIT 0xffff
140
141#if defined(__KERNEL__) && defined(__x86_64__) 139#if defined(__KERNEL__) && defined(__x86_64__)
142 140
143#include <linux/vmalloc.h> 141#include <linux/vmalloc.h>
144 142
145#ifndef __i386__
146/*
147 * Change virtual addresses to physical addresses and vv.
148 * These are pretty trivial
149 */
150static inline unsigned long virt_to_phys(volatile void *address)
151{
152 return __pa(address);
153}
154
155static inline void *phys_to_virt(unsigned long address)
156{
157 return __va(address);
158}
159#endif
160
161/*
162 * Change "struct page" to physical address.
163 */
164#define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
165
166#include <asm-generic/iomap.h> 143#include <asm-generic/iomap.h>
167 144
168/*
169 * This one maps high address device memory and turns off caching for that area.
170 * it's useful if some control registers are in such an area and write combining
171 * or read caching is not desirable:
172 */
173extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
174extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
175extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size,
176 unsigned long prot_val);
177
178/*
179 * The default ioremap() behavior is non-cached:
180 */
181static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
182{
183 return ioremap_nocache(offset, size);
184}
185
186extern void iounmap(volatile void __iomem *addr);
187
188extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
189
190/*
191 * ISA I/O bus memory addresses are 1:1 with the physical address.
192 */
193#define isa_virt_to_bus virt_to_phys
194#define isa_page_to_bus page_to_phys
195#define isa_bus_to_virt phys_to_virt
196
197/*
198 * However PCI ones are not necessarily 1:1 and therefore these interfaces
199 * are forbidden in portable PCI drivers.
200 *
201 * Allow them on x86 for legacy drivers, though.
202 */
203#define virt_to_bus virt_to_phys
204#define bus_to_virt phys_to_virt
205
206void __memcpy_fromio(void *, unsigned long, unsigned); 145void __memcpy_fromio(void *, unsigned long, unsigned);
207void __memcpy_toio(unsigned long, const void *, unsigned); 146void __memcpy_toio(unsigned long, const void *, unsigned);
208 147
diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h
index 7a1f44ac1f17..59cb4a1317b7 100644
--- a/arch/x86/include/asm/io_apic.h
+++ b/arch/x86/include/asm/io_apic.h
@@ -114,38 +114,16 @@ struct IR_IO_APIC_route_entry {
114extern int nr_ioapics; 114extern int nr_ioapics;
115extern int nr_ioapic_registers[MAX_IO_APICS]; 115extern int nr_ioapic_registers[MAX_IO_APICS];
116 116
117/*
118 * MP-BIOS irq configuration table structures:
119 */
120
121#define MP_MAX_IOAPIC_PIN 127 117#define MP_MAX_IOAPIC_PIN 127
122 118
123struct mp_config_ioapic {
124 unsigned long mp_apicaddr;
125 unsigned int mp_apicid;
126 unsigned char mp_type;
127 unsigned char mp_apicver;
128 unsigned char mp_flags;
129};
130
131struct mp_config_intsrc {
132 unsigned int mp_dstapic;
133 unsigned char mp_type;
134 unsigned char mp_irqtype;
135 unsigned short mp_irqflag;
136 unsigned char mp_srcbus;
137 unsigned char mp_srcbusirq;
138 unsigned char mp_dstirq;
139};
140
141/* I/O APIC entries */ 119/* I/O APIC entries */
142extern struct mp_config_ioapic mp_ioapics[MAX_IO_APICS]; 120extern struct mpc_ioapic mp_ioapics[MAX_IO_APICS];
143 121
144/* # of MP IRQ source entries */ 122/* # of MP IRQ source entries */
145extern int mp_irq_entries; 123extern int mp_irq_entries;
146 124
147/* MP IRQ source entries */ 125/* MP IRQ source entries */
148extern struct mp_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; 126extern struct mpc_intsrc mp_irqs[MAX_IRQ_SOURCES];
149 127
150/* non-0 if default (table-less) MP configuration */ 128/* non-0 if default (table-less) MP configuration */
151extern int mpc_default_type; 129extern int mpc_default_type;
@@ -165,15 +143,6 @@ extern int noioapicreroute;
165/* 1 if the timer IRQ uses the '8259A Virtual Wire' mode */ 143/* 1 if the timer IRQ uses the '8259A Virtual Wire' mode */
166extern int timer_through_8259; 144extern int timer_through_8259;
167 145
168static inline void disable_ioapic_setup(void)
169{
170#ifdef CONFIG_PCI
171 noioapicquirk = 1;
172 noioapicreroute = -1;
173#endif
174 skip_ioapic_setup = 1;
175}
176
177/* 146/*
178 * If we use the IO-APIC for IRQ routing, disable automatic 147 * If we use the IO-APIC for IRQ routing, disable automatic
179 * assignment of PCI IRQ's. 148 * assignment of PCI IRQ's.
@@ -200,6 +169,12 @@ extern void reinit_intr_remapped_IO_APIC(int);
200 169
201extern void probe_nr_irqs_gsi(void); 170extern void probe_nr_irqs_gsi(void);
202 171
172extern int setup_ioapic_entry(int apic, int irq,
173 struct IO_APIC_route_entry *entry,
174 unsigned int destination, int trigger,
175 int polarity, int vector);
176extern void ioapic_write_entry(int apic, int pin,
177 struct IO_APIC_route_entry e);
203#else /* !CONFIG_X86_IO_APIC */ 178#else /* !CONFIG_X86_IO_APIC */
204#define io_apic_assign_pci_irqs 0 179#define io_apic_assign_pci_irqs 0
205static const int timer_through_8259 = 0; 180static const int timer_through_8259 = 0;
diff --git a/arch/x86/include/asm/iomap.h b/arch/x86/include/asm/iomap.h
index c1f06289b14b..86af26091d6c 100644
--- a/arch/x86/include/asm/iomap.h
+++ b/arch/x86/include/asm/iomap.h
@@ -23,6 +23,9 @@
23#include <asm/pgtable.h> 23#include <asm/pgtable.h>
24#include <asm/tlbflush.h> 24#include <asm/tlbflush.h>
25 25
26int
27is_io_mapping_possible(resource_size_t base, unsigned long size);
28
26void * 29void *
27iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot); 30iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot);
28 31
diff --git a/arch/x86/include/asm/ipi.h b/arch/x86/include/asm/ipi.h
index c745a306f7d3..0b7228268a63 100644
--- a/arch/x86/include/asm/ipi.h
+++ b/arch/x86/include/asm/ipi.h
@@ -1,6 +1,8 @@
1#ifndef _ASM_X86_IPI_H 1#ifndef _ASM_X86_IPI_H
2#define _ASM_X86_IPI_H 2#define _ASM_X86_IPI_H
3 3
4#ifdef CONFIG_X86_LOCAL_APIC
5
4/* 6/*
5 * Copyright 2004 James Cleverdon, IBM. 7 * Copyright 2004 James Cleverdon, IBM.
6 * Subject to the GNU Public License, v.2 8 * Subject to the GNU Public License, v.2
@@ -55,8 +57,8 @@ static inline void __xapic_wait_icr_idle(void)
55 cpu_relax(); 57 cpu_relax();
56} 58}
57 59
58static inline void __send_IPI_shortcut(unsigned int shortcut, int vector, 60static inline void
59 unsigned int dest) 61__default_send_IPI_shortcut(unsigned int shortcut, int vector, unsigned int dest)
60{ 62{
61 /* 63 /*
62 * Subtle. In the case of the 'never do double writes' workaround 64 * Subtle. In the case of the 'never do double writes' workaround
@@ -87,8 +89,8 @@ static inline void __send_IPI_shortcut(unsigned int shortcut, int vector,
87 * This is used to send an IPI with no shorthand notation (the destination is 89 * This is used to send an IPI with no shorthand notation (the destination is
88 * specified in bits 56 to 63 of the ICR). 90 * specified in bits 56 to 63 of the ICR).
89 */ 91 */
90static inline void __send_IPI_dest_field(unsigned int mask, int vector, 92static inline void
91 unsigned int dest) 93 __default_send_IPI_dest_field(unsigned int mask, int vector, unsigned int dest)
92{ 94{
93 unsigned long cfg; 95 unsigned long cfg;
94 96
@@ -117,41 +119,44 @@ static inline void __send_IPI_dest_field(unsigned int mask, int vector,
117 native_apic_mem_write(APIC_ICR, cfg); 119 native_apic_mem_write(APIC_ICR, cfg);
118} 120}
119 121
120static inline void send_IPI_mask_sequence(const struct cpumask *mask, 122extern void default_send_IPI_mask_sequence_phys(const struct cpumask *mask,
121 int vector) 123 int vector);
122{ 124extern void default_send_IPI_mask_allbutself_phys(const struct cpumask *mask,
123 unsigned long flags; 125 int vector);
124 unsigned long query_cpu; 126extern void default_send_IPI_mask_sequence_logical(const struct cpumask *mask,
127 int vector);
128extern void default_send_IPI_mask_allbutself_logical(const struct cpumask *mask,
129 int vector);
125 130
126 /* 131/* Avoid include hell */
127 * Hack. The clustered APIC addressing mode doesn't allow us to send 132#define NMI_VECTOR 0x02
128 * to an arbitrary mask, so I do a unicast to each CPU instead. 133
129 * - mbligh 134extern int no_broadcast;
130 */ 135
131 local_irq_save(flags); 136static inline void __default_local_send_IPI_allbutself(int vector)
132 for_each_cpu(query_cpu, mask) { 137{
133 __send_IPI_dest_field(per_cpu(x86_cpu_to_apicid, query_cpu), 138 if (no_broadcast || vector == NMI_VECTOR)
134 vector, APIC_DEST_PHYSICAL); 139 apic->send_IPI_mask_allbutself(cpu_online_mask, vector);
135 } 140 else
136 local_irq_restore(flags); 141 __default_send_IPI_shortcut(APIC_DEST_ALLBUT, vector, apic->dest_logical);
137} 142}
138 143
139static inline void send_IPI_mask_allbutself(const struct cpumask *mask, 144static inline void __default_local_send_IPI_all(int vector)
140 int vector)
141{ 145{
142 unsigned long flags; 146 if (no_broadcast || vector == NMI_VECTOR)
143 unsigned int query_cpu; 147 apic->send_IPI_mask(cpu_online_mask, vector);
144 unsigned int this_cpu = smp_processor_id(); 148 else
145 149 __default_send_IPI_shortcut(APIC_DEST_ALLINC, vector, apic->dest_logical);
146 /* See Hack comment above */
147
148 local_irq_save(flags);
149 for_each_cpu(query_cpu, mask)
150 if (query_cpu != this_cpu)
151 __send_IPI_dest_field(
152 per_cpu(x86_cpu_to_apicid, query_cpu),
153 vector, APIC_DEST_PHYSICAL);
154 local_irq_restore(flags);
155} 150}
156 151
152#ifdef CONFIG_X86_32
153extern void default_send_IPI_mask_logical(const struct cpumask *mask,
154 int vector);
155extern void default_send_IPI_allbutself(int vector);
156extern void default_send_IPI_all(int vector);
157extern void default_send_IPI_self(int vector);
158#endif
159
160#endif
161
157#endif /* _ASM_X86_IPI_H */ 162#endif /* _ASM_X86_IPI_H */
diff --git a/arch/x86/include/asm/irq.h b/arch/x86/include/asm/irq.h
index 592688ed04d3..107eb2196691 100644
--- a/arch/x86/include/asm/irq.h
+++ b/arch/x86/include/asm/irq.h
@@ -36,9 +36,11 @@ static inline int irq_canonicalize(int irq)
36extern void fixup_irqs(void); 36extern void fixup_irqs(void);
37#endif 37#endif
38 38
39extern unsigned int do_IRQ(struct pt_regs *regs);
40extern void init_IRQ(void); 39extern void init_IRQ(void);
41extern void native_init_IRQ(void); 40extern void native_init_IRQ(void);
41extern bool handle_irq(unsigned irq, struct pt_regs *regs);
42
43extern unsigned int do_IRQ(struct pt_regs *regs);
42 44
43/* Interrupt vector management */ 45/* Interrupt vector management */
44extern DECLARE_BITMAP(used_vectors, NR_VECTORS); 46extern DECLARE_BITMAP(used_vectors, NR_VECTORS);
diff --git a/arch/x86/include/asm/irq_regs.h b/arch/x86/include/asm/irq_regs.h
index 89c898ab298b..77843225b7ea 100644
--- a/arch/x86/include/asm/irq_regs.h
+++ b/arch/x86/include/asm/irq_regs.h
@@ -1,5 +1,31 @@
1#ifdef CONFIG_X86_32 1/*
2# include "irq_regs_32.h" 2 * Per-cpu current frame pointer - the location of the last exception frame on
3#else 3 * the stack, stored in the per-cpu area.
4# include "irq_regs_64.h" 4 *
5#endif 5 * Jeremy Fitzhardinge <jeremy@goop.org>
6 */
7#ifndef _ASM_X86_IRQ_REGS_H
8#define _ASM_X86_IRQ_REGS_H
9
10#include <asm/percpu.h>
11
12#define ARCH_HAS_OWN_IRQ_REGS
13
14DECLARE_PER_CPU(struct pt_regs *, irq_regs);
15
16static inline struct pt_regs *get_irq_regs(void)
17{
18 return percpu_read(irq_regs);
19}
20
21static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
22{
23 struct pt_regs *old_regs;
24
25 old_regs = get_irq_regs();
26 percpu_write(irq_regs, new_regs);
27
28 return old_regs;
29}
30
31#endif /* _ASM_X86_IRQ_REGS_32_H */
diff --git a/arch/x86/include/asm/irq_regs_32.h b/arch/x86/include/asm/irq_regs_32.h
deleted file mode 100644
index 86afd7473457..000000000000
--- a/arch/x86/include/asm/irq_regs_32.h
+++ /dev/null
@@ -1,31 +0,0 @@
1/*
2 * Per-cpu current frame pointer - the location of the last exception frame on
3 * the stack, stored in the per-cpu area.
4 *
5 * Jeremy Fitzhardinge <jeremy@goop.org>
6 */
7#ifndef _ASM_X86_IRQ_REGS_32_H
8#define _ASM_X86_IRQ_REGS_32_H
9
10#include <asm/percpu.h>
11
12#define ARCH_HAS_OWN_IRQ_REGS
13
14DECLARE_PER_CPU(struct pt_regs *, irq_regs);
15
16static inline struct pt_regs *get_irq_regs(void)
17{
18 return x86_read_percpu(irq_regs);
19}
20
21static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
22{
23 struct pt_regs *old_regs;
24
25 old_regs = get_irq_regs();
26 x86_write_percpu(irq_regs, new_regs);
27
28 return old_regs;
29}
30
31#endif /* _ASM_X86_IRQ_REGS_32_H */
diff --git a/arch/x86/include/asm/irq_regs_64.h b/arch/x86/include/asm/irq_regs_64.h
deleted file mode 100644
index 3dd9c0b70270..000000000000
--- a/arch/x86/include/asm/irq_regs_64.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-generic/irq_regs.h>
diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h
index f7ff65032b9d..8a285f356f8a 100644
--- a/arch/x86/include/asm/irq_vectors.h
+++ b/arch/x86/include/asm/irq_vectors.h
@@ -1,47 +1,69 @@
1#ifndef _ASM_X86_IRQ_VECTORS_H 1#ifndef _ASM_X86_IRQ_VECTORS_H
2#define _ASM_X86_IRQ_VECTORS_H 2#define _ASM_X86_IRQ_VECTORS_H
3 3
4#include <linux/threads.h> 4/*
5 * Linux IRQ vector layout.
6 *
7 * There are 256 IDT entries (per CPU - each entry is 8 bytes) which can
8 * be defined by Linux. They are used as a jump table by the CPU when a
9 * given vector is triggered - by a CPU-external, CPU-internal or
10 * software-triggered event.
11 *
12 * Linux sets the kernel code address each entry jumps to early during
13 * bootup, and never changes them. This is the general layout of the
14 * IDT entries:
15 *
16 * Vectors 0 ... 31 : system traps and exceptions - hardcoded events
17 * Vectors 32 ... 127 : device interrupts
18 * Vector 128 : legacy int80 syscall interface
19 * Vectors 129 ... 237 : device interrupts
20 * Vectors 238 ... 255 : special interrupts
21 *
22 * 64-bit x86 has per CPU IDT tables, 32-bit has one shared IDT table.
23 *
24 * This file enumerates the exact layout of them:
25 */
5 26
6#define NMI_VECTOR 0x02 27#define NMI_VECTOR 0x02
7 28
8/* 29/*
9 * IDT vectors usable for external interrupt sources start 30 * IDT vectors usable for external interrupt sources start
10 * at 0x20: 31 * at 0x20:
11 */ 32 */
12#define FIRST_EXTERNAL_VECTOR 0x20 33#define FIRST_EXTERNAL_VECTOR 0x20
13 34
14#ifdef CONFIG_X86_32 35#ifdef CONFIG_X86_32
15# define SYSCALL_VECTOR 0x80 36# define SYSCALL_VECTOR 0x80
16#else 37#else
17# define IA32_SYSCALL_VECTOR 0x80 38# define IA32_SYSCALL_VECTOR 0x80
18#endif 39#endif
19 40
20/* 41/*
21 * Reserve the lowest usable priority level 0x20 - 0x2f for triggering 42 * Reserve the lowest usable priority level 0x20 - 0x2f for triggering
22 * cleanup after irq migration. 43 * cleanup after irq migration.
23 */ 44 */
24#define IRQ_MOVE_CLEANUP_VECTOR FIRST_EXTERNAL_VECTOR 45#define IRQ_MOVE_CLEANUP_VECTOR FIRST_EXTERNAL_VECTOR
25 46
26/* 47/*
27 * Vectors 0x30-0x3f are used for ISA interrupts. 48 * Vectors 0x30-0x3f are used for ISA interrupts.
28 */ 49 */
29#define IRQ0_VECTOR (FIRST_EXTERNAL_VECTOR + 0x10) 50#define IRQ0_VECTOR (FIRST_EXTERNAL_VECTOR + 0x10)
30#define IRQ1_VECTOR (IRQ0_VECTOR + 1) 51
31#define IRQ2_VECTOR (IRQ0_VECTOR + 2) 52#define IRQ1_VECTOR (IRQ0_VECTOR + 1)
32#define IRQ3_VECTOR (IRQ0_VECTOR + 3) 53#define IRQ2_VECTOR (IRQ0_VECTOR + 2)
33#define IRQ4_VECTOR (IRQ0_VECTOR + 4) 54#define IRQ3_VECTOR (IRQ0_VECTOR + 3)
34#define IRQ5_VECTOR (IRQ0_VECTOR + 5) 55#define IRQ4_VECTOR (IRQ0_VECTOR + 4)
35#define IRQ6_VECTOR (IRQ0_VECTOR + 6) 56#define IRQ5_VECTOR (IRQ0_VECTOR + 5)
36#define IRQ7_VECTOR (IRQ0_VECTOR + 7) 57#define IRQ6_VECTOR (IRQ0_VECTOR + 6)
37#define IRQ8_VECTOR (IRQ0_VECTOR + 8) 58#define IRQ7_VECTOR (IRQ0_VECTOR + 7)
38#define IRQ9_VECTOR (IRQ0_VECTOR + 9) 59#define IRQ8_VECTOR (IRQ0_VECTOR + 8)
39#define IRQ10_VECTOR (IRQ0_VECTOR + 10) 60#define IRQ9_VECTOR (IRQ0_VECTOR + 9)
40#define IRQ11_VECTOR (IRQ0_VECTOR + 11) 61#define IRQ10_VECTOR (IRQ0_VECTOR + 10)
41#define IRQ12_VECTOR (IRQ0_VECTOR + 12) 62#define IRQ11_VECTOR (IRQ0_VECTOR + 11)
42#define IRQ13_VECTOR (IRQ0_VECTOR + 13) 63#define IRQ12_VECTOR (IRQ0_VECTOR + 12)
43#define IRQ14_VECTOR (IRQ0_VECTOR + 14) 64#define IRQ13_VECTOR (IRQ0_VECTOR + 13)
44#define IRQ15_VECTOR (IRQ0_VECTOR + 15) 65#define IRQ14_VECTOR (IRQ0_VECTOR + 14)
66#define IRQ15_VECTOR (IRQ0_VECTOR + 15)
45 67
46/* 68/*
47 * Special IRQ vectors used by the SMP architecture, 0xf0-0xff 69 * Special IRQ vectors used by the SMP architecture, 0xf0-0xff
@@ -49,119 +71,98 @@
49 * some of the following vectors are 'rare', they are merged 71 * some of the following vectors are 'rare', they are merged
50 * into a single vector (CALL_FUNCTION_VECTOR) to save vector space. 72 * into a single vector (CALL_FUNCTION_VECTOR) to save vector space.
51 * TLB, reschedule and local APIC vectors are performance-critical. 73 * TLB, reschedule and local APIC vectors are performance-critical.
52 *
53 * Vectors 0xf0-0xfa are free (reserved for future Linux use).
54 */ 74 */
55#ifdef CONFIG_X86_32
56
57# define SPURIOUS_APIC_VECTOR 0xff
58# define ERROR_APIC_VECTOR 0xfe
59# define INVALIDATE_TLB_VECTOR 0xfd
60# define RESCHEDULE_VECTOR 0xfc
61# define CALL_FUNCTION_VECTOR 0xfb
62# define CALL_FUNCTION_SINGLE_VECTOR 0xfa
63# define THERMAL_APIC_VECTOR 0xf0
64
65#else
66 75
67#define SPURIOUS_APIC_VECTOR 0xff 76#define SPURIOUS_APIC_VECTOR 0xff
77/*
78 * Sanity check
79 */
80#if ((SPURIOUS_APIC_VECTOR & 0x0F) != 0x0F)
81# error SPURIOUS_APIC_VECTOR definition error
82#endif
83
68#define ERROR_APIC_VECTOR 0xfe 84#define ERROR_APIC_VECTOR 0xfe
69#define RESCHEDULE_VECTOR 0xfd 85#define RESCHEDULE_VECTOR 0xfd
70#define CALL_FUNCTION_VECTOR 0xfc 86#define CALL_FUNCTION_VECTOR 0xfc
71#define CALL_FUNCTION_SINGLE_VECTOR 0xfb 87#define CALL_FUNCTION_SINGLE_VECTOR 0xfb
72#define THERMAL_APIC_VECTOR 0xfa 88#define THERMAL_APIC_VECTOR 0xfa
73#define THRESHOLD_APIC_VECTOR 0xf9
74#define UV_BAU_MESSAGE 0xf8
75#define INVALIDATE_TLB_VECTOR_END 0xf7
76#define INVALIDATE_TLB_VECTOR_START 0xf0 /* f0-f7 used for TLB flush */
77
78#define NUM_INVALIDATE_TLB_VECTORS 8
79 89
90#ifdef CONFIG_X86_32
91/* 0xf8 - 0xf9 : free */
92#else
93# define THRESHOLD_APIC_VECTOR 0xf9
94# define UV_BAU_MESSAGE 0xf8
80#endif 95#endif
81 96
97/* f0-f7 used for spreading out TLB flushes: */
98#define INVALIDATE_TLB_VECTOR_END 0xf7
99#define INVALIDATE_TLB_VECTOR_START 0xf0
100#define NUM_INVALIDATE_TLB_VECTORS 8
101
82/* 102/*
83 * Local APIC timer IRQ vector is on a different priority level, 103 * Local APIC timer IRQ vector is on a different priority level,
84 * to work around the 'lost local interrupt if more than 2 IRQ 104 * to work around the 'lost local interrupt if more than 2 IRQ
85 * sources per level' errata. 105 * sources per level' errata.
86 */ 106 */
87#define LOCAL_TIMER_VECTOR 0xef 107#define LOCAL_TIMER_VECTOR 0xef
108
109/*
110 * Performance monitoring interrupt vector:
111 */
112#define LOCAL_PERF_VECTOR 0xee
88 113
89/* 114/*
90 * First APIC vector available to drivers: (vectors 0x30-0xee) we 115 * First APIC vector available to drivers: (vectors 0x30-0xee) we
91 * start at 0x31(0x41) to spread out vectors evenly between priority 116 * start at 0x31(0x41) to spread out vectors evenly between priority
92 * levels. (0x80 is the syscall vector) 117 * levels. (0x80 is the syscall vector)
93 */ 118 */
94#define FIRST_DEVICE_VECTOR (IRQ15_VECTOR + 2) 119#define FIRST_DEVICE_VECTOR (IRQ15_VECTOR + 2)
95
96#define NR_VECTORS 256
97 120
98#define FPU_IRQ 13 121#define NR_VECTORS 256
99 122
100#define FIRST_VM86_IRQ 3 123#define FPU_IRQ 13
101#define LAST_VM86_IRQ 15
102#define invalid_vm86_irq(irq) ((irq) < 3 || (irq) > 15)
103 124
104#define NR_IRQS_LEGACY 16 125#define FIRST_VM86_IRQ 3
126#define LAST_VM86_IRQ 15
105 127
106#if defined(CONFIG_X86_IO_APIC) && !defined(CONFIG_X86_VOYAGER) 128#ifndef __ASSEMBLY__
107 129static inline int invalid_vm86_irq(int irq)
108#ifndef CONFIG_SPARSE_IRQ 130{
109# if NR_CPUS < MAX_IO_APICS 131 return irq < FIRST_VM86_IRQ || irq > LAST_VM86_IRQ;
110# define NR_IRQS (NR_VECTORS + (32 * NR_CPUS)) 132}
111# else
112# define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS))
113# endif
114#else
115# if (8 * NR_CPUS) > (32 * MAX_IO_APICS)
116# define NR_IRQS (NR_VECTORS + (8 * NR_CPUS))
117# else
118# define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS))
119# endif
120#endif 133#endif
121 134
122#elif defined(CONFIG_X86_VOYAGER) 135/*
123 136 * Size the maximum number of interrupts.
124# define NR_IRQS 224 137 *
138 * If the irq_desc[] array has a sparse layout, we can size things
139 * generously - it scales up linearly with the maximum number of CPUs,
140 * and the maximum number of IO-APICs, whichever is higher.
141 *
142 * In other cases we size more conservatively, to not create too large
143 * static arrays.
144 */
125 145
126#else /* IO_APIC || VOYAGER */ 146#define NR_IRQS_LEGACY 16
127 147
128# define NR_IRQS 16 148#define CPU_VECTOR_LIMIT ( 8 * NR_CPUS )
149#define IO_APIC_VECTOR_LIMIT ( 32 * MAX_IO_APICS )
129 150
151#ifdef CONFIG_X86_IO_APIC
152# ifdef CONFIG_SPARSE_IRQ
153# define NR_IRQS \
154 (CPU_VECTOR_LIMIT > IO_APIC_VECTOR_LIMIT ? \
155 (NR_VECTORS + CPU_VECTOR_LIMIT) : \
156 (NR_VECTORS + IO_APIC_VECTOR_LIMIT))
157# else
158# if NR_CPUS < MAX_IO_APICS
159# define NR_IRQS (NR_VECTORS + 4*CPU_VECTOR_LIMIT)
160# else
161# define NR_IRQS (NR_VECTORS + IO_APIC_VECTOR_LIMIT)
162# endif
163# endif
164#else /* !CONFIG_X86_IO_APIC: */
165# define NR_IRQS NR_IRQS_LEGACY
130#endif 166#endif
131 167
132/* Voyager specific defines */
133/* These define the CPIs we use in linux */
134#define VIC_CPI_LEVEL0 0
135#define VIC_CPI_LEVEL1 1
136/* now the fake CPIs */
137#define VIC_TIMER_CPI 2
138#define VIC_INVALIDATE_CPI 3
139#define VIC_RESCHEDULE_CPI 4
140#define VIC_ENABLE_IRQ_CPI 5
141#define VIC_CALL_FUNCTION_CPI 6
142#define VIC_CALL_FUNCTION_SINGLE_CPI 7
143
144/* Now the QIC CPIs: Since we don't need the two initial levels,
145 * these are 2 less than the VIC CPIs */
146#define QIC_CPI_OFFSET 1
147#define QIC_TIMER_CPI (VIC_TIMER_CPI - QIC_CPI_OFFSET)
148#define QIC_INVALIDATE_CPI (VIC_INVALIDATE_CPI - QIC_CPI_OFFSET)
149#define QIC_RESCHEDULE_CPI (VIC_RESCHEDULE_CPI - QIC_CPI_OFFSET)
150#define QIC_ENABLE_IRQ_CPI (VIC_ENABLE_IRQ_CPI - QIC_CPI_OFFSET)
151#define QIC_CALL_FUNCTION_CPI (VIC_CALL_FUNCTION_CPI - QIC_CPI_OFFSET)
152#define QIC_CALL_FUNCTION_SINGLE_CPI (VIC_CALL_FUNCTION_SINGLE_CPI - QIC_CPI_OFFSET)
153
154#define VIC_START_FAKE_CPI VIC_TIMER_CPI
155#define VIC_END_FAKE_CPI VIC_CALL_FUNCTION_SINGLE_CPI
156
157/* this is the SYS_INT CPI. */
158#define VIC_SYS_INT 8
159#define VIC_CMN_INT 15
160
161/* This is the boot CPI for alternate processors. It gets overwritten
162 * by the above once the system has activated all available processors */
163#define VIC_CPU_BOOT_CPI VIC_CPI_LEVEL0
164#define VIC_CPU_BOOT_ERRATA_CPI (VIC_CPI_LEVEL0 + 8)
165
166
167#endif /* _ASM_X86_IRQ_VECTORS_H */ 168#endif /* _ASM_X86_IRQ_VECTORS_H */
diff --git a/arch/x86/include/asm/kexec.h b/arch/x86/include/asm/kexec.h
index c61d8b2ab8b9..0ceb6d19ed30 100644
--- a/arch/x86/include/asm/kexec.h
+++ b/arch/x86/include/asm/kexec.h
@@ -9,23 +9,8 @@
9# define PAGES_NR 4 9# define PAGES_NR 4
10#else 10#else
11# define PA_CONTROL_PAGE 0 11# define PA_CONTROL_PAGE 0
12# define VA_CONTROL_PAGE 1 12# define PA_TABLE_PAGE 1
13# define PA_PGD 2 13# define PAGES_NR 2
14# define VA_PGD 3
15# define PA_PUD_0 4
16# define VA_PUD_0 5
17# define PA_PMD_0 6
18# define VA_PMD_0 7
19# define PA_PTE_0 8
20# define VA_PTE_0 9
21# define PA_PUD_1 10
22# define VA_PUD_1 11
23# define PA_PMD_1 12
24# define VA_PMD_1 13
25# define PA_PTE_1 14
26# define VA_PTE_1 15
27# define PA_TABLE_PAGE 16
28# define PAGES_NR 17
29#endif 14#endif
30 15
31#ifdef CONFIG_X86_32 16#ifdef CONFIG_X86_32
@@ -157,9 +142,9 @@ relocate_kernel(unsigned long indirection_page,
157 unsigned long start_address) ATTRIB_NORET; 142 unsigned long start_address) ATTRIB_NORET;
158#endif 143#endif
159 144
160#ifdef CONFIG_X86_32
161#define ARCH_HAS_KIMAGE_ARCH 145#define ARCH_HAS_KIMAGE_ARCH
162 146
147#ifdef CONFIG_X86_32
163struct kimage_arch { 148struct kimage_arch {
164 pgd_t *pgd; 149 pgd_t *pgd;
165#ifdef CONFIG_X86_PAE 150#ifdef CONFIG_X86_PAE
@@ -169,6 +154,12 @@ struct kimage_arch {
169 pte_t *pte0; 154 pte_t *pte0;
170 pte_t *pte1; 155 pte_t *pte1;
171}; 156};
157#else
158struct kimage_arch {
159 pud_t *pud;
160 pmd_t *pmd;
161 pte_t *pte;
162};
172#endif 163#endif
173 164
174#endif /* __ASSEMBLY__ */ 165#endif /* __ASSEMBLY__ */
diff --git a/arch/x86/include/asm/kvm.h b/arch/x86/include/asm/kvm.h
index b95162af0bf6..886c9402ec45 100644
--- a/arch/x86/include/asm/kvm.h
+++ b/arch/x86/include/asm/kvm.h
@@ -6,9 +6,16 @@
6 * 6 *
7 */ 7 */
8 8
9#include <asm/types.h> 9#include <linux/types.h>
10#include <linux/ioctl.h> 10#include <linux/ioctl.h>
11 11
12/* Select x86 specific features in <linux/kvm.h> */
13#define __KVM_HAVE_PIT
14#define __KVM_HAVE_IOAPIC
15#define __KVM_HAVE_DEVICE_ASSIGNMENT
16#define __KVM_HAVE_MSI
17#define __KVM_HAVE_USER_NMI
18
12/* Architectural interrupt line count. */ 19/* Architectural interrupt line count. */
13#define KVM_NR_INTERRUPTS 256 20#define KVM_NR_INTERRUPTS 256
14 21
diff --git a/arch/x86/include/asm/linkage.h b/arch/x86/include/asm/linkage.h
index 5d98d0b68ffc..9320e2a8a26a 100644
--- a/arch/x86/include/asm/linkage.h
+++ b/arch/x86/include/asm/linkage.h
@@ -52,70 +52,14 @@
52 52
53#endif 53#endif
54 54
55#define GLOBAL(name) \
56 .globl name; \
57 name:
58
55#ifdef CONFIG_X86_ALIGNMENT_16 59#ifdef CONFIG_X86_ALIGNMENT_16
56#define __ALIGN .align 16,0x90 60#define __ALIGN .align 16,0x90
57#define __ALIGN_STR ".align 16,0x90" 61#define __ALIGN_STR ".align 16,0x90"
58#endif 62#endif
59 63
60/*
61 * to check ENTRY_X86/END_X86 and
62 * KPROBE_ENTRY_X86/KPROBE_END_X86
63 * unbalanced-missed-mixed appearance
64 */
65#define __set_entry_x86 .set ENTRY_X86_IN, 0
66#define __unset_entry_x86 .set ENTRY_X86_IN, 1
67#define __set_kprobe_x86 .set KPROBE_X86_IN, 0
68#define __unset_kprobe_x86 .set KPROBE_X86_IN, 1
69
70#define __macro_err_x86 .error "ENTRY_X86/KPROBE_X86 unbalanced,missed,mixed"
71
72#define __check_entry_x86 \
73 .ifdef ENTRY_X86_IN; \
74 .ifeq ENTRY_X86_IN; \
75 __macro_err_x86; \
76 .abort; \
77 .endif; \
78 .endif
79
80#define __check_kprobe_x86 \
81 .ifdef KPROBE_X86_IN; \
82 .ifeq KPROBE_X86_IN; \
83 __macro_err_x86; \
84 .abort; \
85 .endif; \
86 .endif
87
88#define __check_entry_kprobe_x86 \
89 __check_entry_x86; \
90 __check_kprobe_x86
91
92#define ENTRY_KPROBE_FINAL_X86 __check_entry_kprobe_x86
93
94#define ENTRY_X86(name) \
95 __check_entry_kprobe_x86; \
96 __set_entry_x86; \
97 .globl name; \
98 __ALIGN; \
99 name:
100
101#define END_X86(name) \
102 __unset_entry_x86; \
103 __check_entry_kprobe_x86; \
104 .size name, .-name
105
106#define KPROBE_ENTRY_X86(name) \
107 __check_entry_kprobe_x86; \
108 __set_kprobe_x86; \
109 .pushsection .kprobes.text, "ax"; \
110 .globl name; \
111 __ALIGN; \
112 name:
113
114#define KPROBE_END_X86(name) \
115 __unset_kprobe_x86; \
116 __check_entry_kprobe_x86; \
117 .size name, .-name; \
118 .popsection
119
120#endif /* _ASM_X86_LINKAGE_H */ 64#endif /* _ASM_X86_LINKAGE_H */
121 65
diff --git a/arch/x86/include/asm/mach-default/mach_apic.h b/arch/x86/include/asm/mach-default/mach_apic.h
deleted file mode 100644
index cc09cbbee27e..000000000000
--- a/arch/x86/include/asm/mach-default/mach_apic.h
+++ /dev/null
@@ -1,168 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_APIC_H
2#define _ASM_X86_MACH_DEFAULT_MACH_APIC_H
3
4#ifdef CONFIG_X86_LOCAL_APIC
5
6#include <mach_apicdef.h>
7#include <asm/smp.h>
8
9#define APIC_DFR_VALUE (APIC_DFR_FLAT)
10
11static inline const struct cpumask *target_cpus(void)
12{
13#ifdef CONFIG_SMP
14 return cpu_online_mask;
15#else
16 return cpumask_of(0);
17#endif
18}
19
20#define NO_BALANCE_IRQ (0)
21#define esr_disable (0)
22
23#ifdef CONFIG_X86_64
24#include <asm/genapic.h>
25#define INT_DELIVERY_MODE (genapic->int_delivery_mode)
26#define INT_DEST_MODE (genapic->int_dest_mode)
27#define TARGET_CPUS (genapic->target_cpus())
28#define apic_id_registered (genapic->apic_id_registered)
29#define init_apic_ldr (genapic->init_apic_ldr)
30#define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid)
31#define cpu_mask_to_apicid_and (genapic->cpu_mask_to_apicid_and)
32#define phys_pkg_id (genapic->phys_pkg_id)
33#define vector_allocation_domain (genapic->vector_allocation_domain)
34#define read_apic_id() (GET_APIC_ID(apic_read(APIC_ID)))
35#define send_IPI_self (genapic->send_IPI_self)
36#define wakeup_secondary_cpu (genapic->wakeup_cpu)
37extern void setup_apic_routing(void);
38#else
39#define INT_DELIVERY_MODE dest_LowestPrio
40#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */
41#define TARGET_CPUS (target_cpus())
42#define wakeup_secondary_cpu wakeup_secondary_cpu_via_init
43/*
44 * Set up the logical destination ID.
45 *
46 * Intel recommends to set DFR, LDR and TPR before enabling
47 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
48 * document number 292116). So here it goes...
49 */
50static inline void init_apic_ldr(void)
51{
52 unsigned long val;
53
54 apic_write(APIC_DFR, APIC_DFR_VALUE);
55 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
56 val |= SET_APIC_LOGICAL_ID(1UL << smp_processor_id());
57 apic_write(APIC_LDR, val);
58}
59
60static inline int apic_id_registered(void)
61{
62 return physid_isset(read_apic_id(), phys_cpu_present_map);
63}
64
65static inline unsigned int cpu_mask_to_apicid(const struct cpumask *cpumask)
66{
67 return cpumask_bits(cpumask)[0];
68}
69
70static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *cpumask,
71 const struct cpumask *andmask)
72{
73 unsigned long mask1 = cpumask_bits(cpumask)[0];
74 unsigned long mask2 = cpumask_bits(andmask)[0];
75 unsigned long mask3 = cpumask_bits(cpu_online_mask)[0];
76
77 return (unsigned int)(mask1 & mask2 & mask3);
78}
79
80static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
81{
82 return cpuid_apic >> index_msb;
83}
84
85static inline void setup_apic_routing(void)
86{
87#ifdef CONFIG_X86_IO_APIC
88 printk("Enabling APIC mode: %s. Using %d I/O APICs\n",
89 "Flat", nr_ioapics);
90#endif
91}
92
93static inline int apicid_to_node(int logical_apicid)
94{
95#ifdef CONFIG_SMP
96 return apicid_2_node[hard_smp_processor_id()];
97#else
98 return 0;
99#endif
100}
101
102static inline void vector_allocation_domain(int cpu, struct cpumask *retmask)
103{
104 /* Careful. Some cpus do not strictly honor the set of cpus
105 * specified in the interrupt destination when using lowest
106 * priority interrupt delivery mode.
107 *
108 * In particular there was a hyperthreading cpu observed to
109 * deliver interrupts to the wrong hyperthread when only one
110 * hyperthread was specified in the interrupt desitination.
111 */
112 *retmask = (cpumask_t) { { [0] = APIC_ALL_CPUS } };
113}
114#endif
115
116static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
117{
118 return physid_isset(apicid, bitmap);
119}
120
121static inline unsigned long check_apicid_present(int bit)
122{
123 return physid_isset(bit, phys_cpu_present_map);
124}
125
126static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
127{
128 return phys_map;
129}
130
131static inline int multi_timer_check(int apic, int irq)
132{
133 return 0;
134}
135
136/* Mapping from cpu number to logical apicid */
137static inline int cpu_to_logical_apicid(int cpu)
138{
139 return 1 << cpu;
140}
141
142static inline int cpu_present_to_apicid(int mps_cpu)
143{
144 if (mps_cpu < nr_cpu_ids && cpu_present(mps_cpu))
145 return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu);
146 else
147 return BAD_APICID;
148}
149
150static inline physid_mask_t apicid_to_cpu_present(int phys_apicid)
151{
152 return physid_mask_of_physid(phys_apicid);
153}
154
155static inline void setup_portio_remap(void)
156{
157}
158
159static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
160{
161 return physid_isset(boot_cpu_physical_apicid, phys_cpu_present_map);
162}
163
164static inline void enable_apic_mode(void)
165{
166}
167#endif /* CONFIG_X86_LOCAL_APIC */
168#endif /* _ASM_X86_MACH_DEFAULT_MACH_APIC_H */
diff --git a/arch/x86/include/asm/mach-default/mach_apicdef.h b/arch/x86/include/asm/mach-default/mach_apicdef.h
deleted file mode 100644
index 53179936d6c6..000000000000
--- a/arch/x86/include/asm/mach-default/mach_apicdef.h
+++ /dev/null
@@ -1,24 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_APICDEF_H
2#define _ASM_X86_MACH_DEFAULT_MACH_APICDEF_H
3
4#include <asm/apic.h>
5
6#ifdef CONFIG_X86_64
7#define APIC_ID_MASK (genapic->apic_id_mask)
8#define GET_APIC_ID(x) (genapic->get_apic_id(x))
9#define SET_APIC_ID(x) (genapic->set_apic_id(x))
10#else
11#define APIC_ID_MASK (0xF<<24)
12static inline unsigned get_apic_id(unsigned long x)
13{
14 unsigned int ver = GET_APIC_VERSION(apic_read(APIC_LVR));
15 if (APIC_XAPIC(ver))
16 return (((x)>>24)&0xFF);
17 else
18 return (((x)>>24)&0xF);
19}
20
21#define GET_APIC_ID(x) get_apic_id(x)
22#endif
23
24#endif /* _ASM_X86_MACH_DEFAULT_MACH_APICDEF_H */
diff --git a/arch/x86/include/asm/mach-default/mach_ipi.h b/arch/x86/include/asm/mach-default/mach_ipi.h
deleted file mode 100644
index 191312d155da..000000000000
--- a/arch/x86/include/asm/mach-default/mach_ipi.h
+++ /dev/null
@@ -1,64 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_IPI_H
2#define _ASM_X86_MACH_DEFAULT_MACH_IPI_H
3
4/* Avoid include hell */
5#define NMI_VECTOR 0x02
6
7void send_IPI_mask_bitmask(const struct cpumask *mask, int vector);
8void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
9void __send_IPI_shortcut(unsigned int shortcut, int vector);
10
11extern int no_broadcast;
12
13#ifdef CONFIG_X86_64
14#include <asm/genapic.h>
15#define send_IPI_mask (genapic->send_IPI_mask)
16#define send_IPI_mask_allbutself (genapic->send_IPI_mask_allbutself)
17#else
18static inline void send_IPI_mask(const struct cpumask *mask, int vector)
19{
20 send_IPI_mask_bitmask(mask, vector);
21}
22void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
23#endif
24
25static inline void __local_send_IPI_allbutself(int vector)
26{
27 if (no_broadcast || vector == NMI_VECTOR)
28 send_IPI_mask_allbutself(cpu_online_mask, vector);
29 else
30 __send_IPI_shortcut(APIC_DEST_ALLBUT, vector);
31}
32
33static inline void __local_send_IPI_all(int vector)
34{
35 if (no_broadcast || vector == NMI_VECTOR)
36 send_IPI_mask(cpu_online_mask, vector);
37 else
38 __send_IPI_shortcut(APIC_DEST_ALLINC, vector);
39}
40
41#ifdef CONFIG_X86_64
42#define send_IPI_allbutself (genapic->send_IPI_allbutself)
43#define send_IPI_all (genapic->send_IPI_all)
44#else
45static inline void send_IPI_allbutself(int vector)
46{
47 /*
48 * if there are no other CPUs in the system then we get an APIC send
49 * error if we try to broadcast, thus avoid sending IPIs in this case.
50 */
51 if (!(num_online_cpus() > 1))
52 return;
53
54 __local_send_IPI_allbutself(vector);
55 return;
56}
57
58static inline void send_IPI_all(int vector)
59{
60 __local_send_IPI_all(vector);
61}
62#endif
63
64#endif /* _ASM_X86_MACH_DEFAULT_MACH_IPI_H */
diff --git a/arch/x86/include/asm/mach-default/mach_mpparse.h b/arch/x86/include/asm/mach-default/mach_mpparse.h
deleted file mode 100644
index 8c1ea21238a7..000000000000
--- a/arch/x86/include/asm/mach-default/mach_mpparse.h
+++ /dev/null
@@ -1,17 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_MPPARSE_H
2#define _ASM_X86_MACH_DEFAULT_MACH_MPPARSE_H
3
4static inline int mps_oem_check(struct mp_config_table *mpc, char *oem,
5 char *productid)
6{
7 return 0;
8}
9
10/* Hook from generic ACPI tables.c */
11static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
12{
13 return 0;
14}
15
16
17#endif /* _ASM_X86_MACH_DEFAULT_MACH_MPPARSE_H */
diff --git a/arch/x86/include/asm/mach-default/mach_mpspec.h b/arch/x86/include/asm/mach-default/mach_mpspec.h
deleted file mode 100644
index e85ede686be8..000000000000
--- a/arch/x86/include/asm/mach-default/mach_mpspec.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_MPSPEC_H
2#define _ASM_X86_MACH_DEFAULT_MACH_MPSPEC_H
3
4#define MAX_IRQ_SOURCES 256
5
6#if CONFIG_BASE_SMALL == 0
7#define MAX_MP_BUSSES 256
8#else
9#define MAX_MP_BUSSES 32
10#endif
11
12#endif /* _ASM_X86_MACH_DEFAULT_MACH_MPSPEC_H */
diff --git a/arch/x86/include/asm/mach-default/mach_wakecpu.h b/arch/x86/include/asm/mach-default/mach_wakecpu.h
deleted file mode 100644
index ceb013660146..000000000000
--- a/arch/x86/include/asm/mach-default/mach_wakecpu.h
+++ /dev/null
@@ -1,35 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
2#define _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
3
4#define TRAMPOLINE_PHYS_LOW (0x467)
5#define TRAMPOLINE_PHYS_HIGH (0x469)
6
7static inline void wait_for_init_deassert(atomic_t *deassert)
8{
9 while (!atomic_read(deassert))
10 cpu_relax();
11 return;
12}
13
14/* Nothing to do for most platforms, since cleared by the INIT cycle */
15static inline void smp_callin_clear_local_apic(void)
16{
17}
18
19static inline void store_NMI_vector(unsigned short *high, unsigned short *low)
20{
21}
22
23static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
24{
25}
26
27extern void __inquire_remote_apic(int apicid);
28
29static inline void inquire_remote_apic(int apicid)
30{
31 if (apic_verbosity >= APIC_DEBUG)
32 __inquire_remote_apic(apicid);
33}
34
35#endif /* _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H */
diff --git a/arch/x86/include/asm/mach-generic/gpio.h b/arch/x86/include/asm/mach-generic/gpio.h
deleted file mode 100644
index 995c45efdb33..000000000000
--- a/arch/x86/include/asm/mach-generic/gpio.h
+++ /dev/null
@@ -1,15 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_GPIO_H
2#define _ASM_X86_MACH_GENERIC_GPIO_H
3
4int gpio_request(unsigned gpio, const char *label);
5void gpio_free(unsigned gpio);
6int gpio_direction_input(unsigned gpio);
7int gpio_direction_output(unsigned gpio, int value);
8int gpio_get_value(unsigned gpio);
9void gpio_set_value(unsigned gpio, int value);
10int gpio_to_irq(unsigned gpio);
11int irq_to_gpio(unsigned irq);
12
13#include <asm-generic/gpio.h> /* cansleep wrappers */
14
15#endif /* _ASM_X86_MACH_GENERIC_GPIO_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_apic.h b/arch/x86/include/asm/mach-generic/mach_apic.h
deleted file mode 100644
index 48553e958ad5..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_apic.h
+++ /dev/null
@@ -1,35 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_APIC_H
2#define _ASM_X86_MACH_GENERIC_MACH_APIC_H
3
4#include <asm/genapic.h>
5
6#define esr_disable (genapic->ESR_DISABLE)
7#define NO_BALANCE_IRQ (genapic->no_balance_irq)
8#define INT_DELIVERY_MODE (genapic->int_delivery_mode)
9#define INT_DEST_MODE (genapic->int_dest_mode)
10#undef APIC_DEST_LOGICAL
11#define APIC_DEST_LOGICAL (genapic->apic_destination_logical)
12#define TARGET_CPUS (genapic->target_cpus())
13#define apic_id_registered (genapic->apic_id_registered)
14#define init_apic_ldr (genapic->init_apic_ldr)
15#define ioapic_phys_id_map (genapic->ioapic_phys_id_map)
16#define setup_apic_routing (genapic->setup_apic_routing)
17#define multi_timer_check (genapic->multi_timer_check)
18#define apicid_to_node (genapic->apicid_to_node)
19#define cpu_to_logical_apicid (genapic->cpu_to_logical_apicid)
20#define cpu_present_to_apicid (genapic->cpu_present_to_apicid)
21#define apicid_to_cpu_present (genapic->apicid_to_cpu_present)
22#define setup_portio_remap (genapic->setup_portio_remap)
23#define check_apicid_present (genapic->check_apicid_present)
24#define check_phys_apicid_present (genapic->check_phys_apicid_present)
25#define check_apicid_used (genapic->check_apicid_used)
26#define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid)
27#define cpu_mask_to_apicid_and (genapic->cpu_mask_to_apicid_and)
28#define vector_allocation_domain (genapic->vector_allocation_domain)
29#define enable_apic_mode (genapic->enable_apic_mode)
30#define phys_pkg_id (genapic->phys_pkg_id)
31#define wakeup_secondary_cpu (genapic->wakeup_cpu)
32
33extern void generic_bigsmp_probe(void);
34
35#endif /* _ASM_X86_MACH_GENERIC_MACH_APIC_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_apicdef.h b/arch/x86/include/asm/mach-generic/mach_apicdef.h
deleted file mode 100644
index 68041f3802f4..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_apicdef.h
+++ /dev/null
@@ -1,11 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_APICDEF_H
2#define _ASM_X86_MACH_GENERIC_MACH_APICDEF_H
3
4#ifndef APIC_DEFINITION
5#include <asm/genapic.h>
6
7#define GET_APIC_ID (genapic->get_apic_id)
8#define APIC_ID_MASK (genapic->apic_id_mask)
9#endif
10
11#endif /* _ASM_X86_MACH_GENERIC_MACH_APICDEF_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_ipi.h b/arch/x86/include/asm/mach-generic/mach_ipi.h
deleted file mode 100644
index ffd637e3c3d9..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_ipi.h
+++ /dev/null
@@ -1,10 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_IPI_H
2#define _ASM_X86_MACH_GENERIC_MACH_IPI_H
3
4#include <asm/genapic.h>
5
6#define send_IPI_mask (genapic->send_IPI_mask)
7#define send_IPI_allbutself (genapic->send_IPI_allbutself)
8#define send_IPI_all (genapic->send_IPI_all)
9
10#endif /* _ASM_X86_MACH_GENERIC_MACH_IPI_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_mpparse.h b/arch/x86/include/asm/mach-generic/mach_mpparse.h
deleted file mode 100644
index 048f1d468535..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_mpparse.h
+++ /dev/null
@@ -1,10 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H
2#define _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H
3
4
5extern int mps_oem_check(struct mp_config_table *mpc, char *oem,
6 char *productid);
7
8extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id);
9
10#endif /* _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_mpspec.h b/arch/x86/include/asm/mach-generic/mach_mpspec.h
deleted file mode 100644
index bbab5ccfd4fe..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_mpspec.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_MPSPEC_H
2#define _ASM_X86_MACH_GENERIC_MACH_MPSPEC_H
3
4#define MAX_IRQ_SOURCES 256
5
6/* Summit or generic (i.e. installer) kernels need lots of bus entries. */
7/* Maximum 256 PCI busses, plus 1 ISA bus in each of 4 cabinets. */
8#define MAX_MP_BUSSES 260
9
10extern void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem,
11 char *productid);
12#endif /* _ASM_X86_MACH_GENERIC_MACH_MPSPEC_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_wakecpu.h b/arch/x86/include/asm/mach-generic/mach_wakecpu.h
deleted file mode 100644
index 1ab16b168c8a..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_wakecpu.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_WAKECPU_H
2#define _ASM_X86_MACH_GENERIC_MACH_WAKECPU_H
3
4#define TRAMPOLINE_PHYS_LOW (genapic->trampoline_phys_low)
5#define TRAMPOLINE_PHYS_HIGH (genapic->trampoline_phys_high)
6#define wait_for_init_deassert (genapic->wait_for_init_deassert)
7#define smp_callin_clear_local_apic (genapic->smp_callin_clear_local_apic)
8#define store_NMI_vector (genapic->store_NMI_vector)
9#define restore_NMI_vector (genapic->restore_NMI_vector)
10#define inquire_remote_apic (genapic->inquire_remote_apic)
11
12#endif /* _ASM_X86_MACH_GENERIC_MACH_APIC_H */
diff --git a/arch/x86/include/asm/mach-rdc321x/gpio.h b/arch/x86/include/asm/mach-rdc321x/gpio.h
deleted file mode 100644
index c210ab5788b0..000000000000
--- a/arch/x86/include/asm/mach-rdc321x/gpio.h
+++ /dev/null
@@ -1,60 +0,0 @@
1#ifndef _ASM_X86_MACH_RDC321X_GPIO_H
2#define _ASM_X86_MACH_RDC321X_GPIO_H
3
4#include <linux/kernel.h>
5
6extern int rdc_gpio_get_value(unsigned gpio);
7extern void rdc_gpio_set_value(unsigned gpio, int value);
8extern int rdc_gpio_direction_input(unsigned gpio);
9extern int rdc_gpio_direction_output(unsigned gpio, int value);
10extern int rdc_gpio_request(unsigned gpio, const char *label);
11extern void rdc_gpio_free(unsigned gpio);
12extern void __init rdc321x_gpio_setup(void);
13
14/* Wrappers for the arch-neutral GPIO API */
15
16static inline int gpio_request(unsigned gpio, const char *label)
17{
18 return rdc_gpio_request(gpio, label);
19}
20
21static inline void gpio_free(unsigned gpio)
22{
23 might_sleep();
24 rdc_gpio_free(gpio);
25}
26
27static inline int gpio_direction_input(unsigned gpio)
28{
29 return rdc_gpio_direction_input(gpio);
30}
31
32static inline int gpio_direction_output(unsigned gpio, int value)
33{
34 return rdc_gpio_direction_output(gpio, value);
35}
36
37static inline int gpio_get_value(unsigned gpio)
38{
39 return rdc_gpio_get_value(gpio);
40}
41
42static inline void gpio_set_value(unsigned gpio, int value)
43{
44 rdc_gpio_set_value(gpio, value);
45}
46
47static inline int gpio_to_irq(unsigned gpio)
48{
49 return gpio;
50}
51
52static inline int irq_to_gpio(unsigned irq)
53{
54 return irq;
55}
56
57/* For cansleep */
58#include <asm-generic/gpio.h>
59
60#endif /* _ASM_X86_MACH_RDC321X_GPIO_H */
diff --git a/arch/x86/include/asm/mach-voyager/do_timer.h b/arch/x86/include/asm/mach-voyager/do_timer.h
deleted file mode 100644
index 9e5a459fd15b..000000000000
--- a/arch/x86/include/asm/mach-voyager/do_timer.h
+++ /dev/null
@@ -1,17 +0,0 @@
1/* defines for inline arch setup functions */
2#include <linux/clockchips.h>
3
4#include <asm/voyager.h>
5#include <asm/i8253.h>
6
7/**
8 * do_timer_interrupt_hook - hook into timer tick
9 *
10 * Call the pit clock event handler. see asm/i8253.h
11 **/
12static inline void do_timer_interrupt_hook(void)
13{
14 global_clock_event->event_handler(global_clock_event);
15 voyager_timer_interrupt();
16}
17
diff --git a/arch/x86/include/asm/mach-voyager/entry_arch.h b/arch/x86/include/asm/mach-voyager/entry_arch.h
deleted file mode 100644
index ae52624b5937..000000000000
--- a/arch/x86/include/asm/mach-voyager/entry_arch.h
+++ /dev/null
@@ -1,26 +0,0 @@
1/* -*- mode: c; c-basic-offset: 8 -*- */
2
3/* Copyright (C) 2002
4 *
5 * Author: James.Bottomley@HansenPartnership.com
6 *
7 * linux/arch/i386/voyager/entry_arch.h
8 *
9 * This file builds the VIC and QIC CPI gates
10 */
11
12/* initialise the voyager interrupt gates
13 *
14 * This uses the macros in irq.h to set up assembly jump gates. The
15 * calls are then redirected to the same routine with smp_ prefixed */
16BUILD_INTERRUPT(vic_sys_interrupt, VIC_SYS_INT)
17BUILD_INTERRUPT(vic_cmn_interrupt, VIC_CMN_INT)
18BUILD_INTERRUPT(vic_cpi_interrupt, VIC_CPI_LEVEL0);
19
20/* do all the QIC interrupts */
21BUILD_INTERRUPT(qic_timer_interrupt, QIC_TIMER_CPI);
22BUILD_INTERRUPT(qic_invalidate_interrupt, QIC_INVALIDATE_CPI);
23BUILD_INTERRUPT(qic_reschedule_interrupt, QIC_RESCHEDULE_CPI);
24BUILD_INTERRUPT(qic_enable_irq_interrupt, QIC_ENABLE_IRQ_CPI);
25BUILD_INTERRUPT(qic_call_function_interrupt, QIC_CALL_FUNCTION_CPI);
26BUILD_INTERRUPT(qic_call_function_single_interrupt, QIC_CALL_FUNCTION_SINGLE_CPI);
diff --git a/arch/x86/include/asm/mach-voyager/setup_arch.h b/arch/x86/include/asm/mach-voyager/setup_arch.h
deleted file mode 100644
index 71729ca05cd7..000000000000
--- a/arch/x86/include/asm/mach-voyager/setup_arch.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#include <asm/voyager.h>
2#include <asm/setup.h>
3#define VOYAGER_BIOS_INFO ((struct voyager_bios_info *) \
4 (&boot_params.apm_bios_info))
5
6/* Hook to call BIOS initialisation function */
7
8/* for voyager, pass the voyager BIOS/SUS info area to the detection
9 * routines */
10
11#define ARCH_SETUP voyager_detect(VOYAGER_BIOS_INFO);
12
diff --git a/arch/x86/include/asm/mach-default/mach_timer.h b/arch/x86/include/asm/mach_timer.h
index 853728519ae9..853728519ae9 100644
--- a/arch/x86/include/asm/mach-default/mach_timer.h
+++ b/arch/x86/include/asm/mach_timer.h
diff --git a/arch/x86/include/asm/mach-default/mach_traps.h b/arch/x86/include/asm/mach_traps.h
index f7920601e472..f7920601e472 100644
--- a/arch/x86/include/asm/mach-default/mach_traps.h
+++ b/arch/x86/include/asm/mach_traps.h
diff --git a/arch/x86/include/asm/math_emu.h b/arch/x86/include/asm/math_emu.h
index 5a65b107ad58..031f6266f425 100644
--- a/arch/x86/include/asm/math_emu.h
+++ b/arch/x86/include/asm/math_emu.h
@@ -1,31 +1,18 @@
1#ifndef _ASM_X86_MATH_EMU_H 1#ifndef _ASM_X86_MATH_EMU_H
2#define _ASM_X86_MATH_EMU_H 2#define _ASM_X86_MATH_EMU_H
3 3
4#include <asm/ptrace.h>
5#include <asm/vm86.h>
6
4/* This structure matches the layout of the data saved to the stack 7/* This structure matches the layout of the data saved to the stack
5 following a device-not-present interrupt, part of it saved 8 following a device-not-present interrupt, part of it saved
6 automatically by the 80386/80486. 9 automatically by the 80386/80486.
7 */ 10 */
8struct info { 11struct math_emu_info {
9 long ___orig_eip; 12 long ___orig_eip;
10 long ___ebx; 13 union {
11 long ___ecx; 14 struct pt_regs *regs;
12 long ___edx; 15 struct kernel_vm86_regs *vm86;
13 long ___esi; 16 };
14 long ___edi;
15 long ___ebp;
16 long ___eax;
17 long ___ds;
18 long ___es;
19 long ___fs;
20 long ___orig_eax;
21 long ___eip;
22 long ___cs;
23 long ___eflags;
24 long ___esp;
25 long ___ss;
26 long ___vm86_es; /* This and the following only in vm86 mode */
27 long ___vm86_ds;
28 long ___vm86_fs;
29 long ___vm86_gs;
30}; 17};
31#endif /* _ASM_X86_MATH_EMU_H */ 18#endif /* _ASM_X86_MATH_EMU_H */
diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h
index 1d6e17c2f23a..32c6e17b960b 100644
--- a/arch/x86/include/asm/mce.h
+++ b/arch/x86/include/asm/mce.h
@@ -3,8 +3,8 @@
3 3
4#ifdef __x86_64__ 4#ifdef __x86_64__
5 5
6#include <linux/types.h>
6#include <asm/ioctls.h> 7#include <asm/ioctls.h>
7#include <asm/types.h>
8 8
9/* 9/*
10 * Machine Check support for x86 10 * Machine Check support for x86
@@ -115,8 +115,6 @@ extern int mce_notify_user(void);
115 115
116#endif /* !CONFIG_X86_32 */ 116#endif /* !CONFIG_X86_32 */
117 117
118
119
120#ifdef CONFIG_X86_MCE 118#ifdef CONFIG_X86_MCE
121extern void mcheck_init(struct cpuinfo_x86 *c); 119extern void mcheck_init(struct cpuinfo_x86 *c);
122#else 120#else
@@ -126,5 +124,4 @@ extern void stop_mce(void);
126extern void restart_mce(void); 124extern void restart_mce(void);
127 125
128#endif /* __KERNEL__ */ 126#endif /* __KERNEL__ */
129
130#endif /* _ASM_X86_MCE_H */ 127#endif /* _ASM_X86_MCE_H */
diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h
index 8aeeb3fd73db..f923203dc39a 100644
--- a/arch/x86/include/asm/mmu_context.h
+++ b/arch/x86/include/asm/mmu_context.h
@@ -21,11 +21,54 @@ static inline void paravirt_activate_mm(struct mm_struct *prev,
21int init_new_context(struct task_struct *tsk, struct mm_struct *mm); 21int init_new_context(struct task_struct *tsk, struct mm_struct *mm);
22void destroy_context(struct mm_struct *mm); 22void destroy_context(struct mm_struct *mm);
23 23
24#ifdef CONFIG_X86_32 24
25# include "mmu_context_32.h" 25static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
26#else 26{
27# include "mmu_context_64.h" 27#ifdef CONFIG_SMP
28 if (percpu_read(cpu_tlbstate.state) == TLBSTATE_OK)
29 percpu_write(cpu_tlbstate.state, TLBSTATE_LAZY);
30#endif
31}
32
33static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
34 struct task_struct *tsk)
35{
36 unsigned cpu = smp_processor_id();
37
38 if (likely(prev != next)) {
39 /* stop flush ipis for the previous mm */
40 cpu_clear(cpu, prev->cpu_vm_mask);
41#ifdef CONFIG_SMP
42 percpu_write(cpu_tlbstate.state, TLBSTATE_OK);
43 percpu_write(cpu_tlbstate.active_mm, next);
28#endif 44#endif
45 cpu_set(cpu, next->cpu_vm_mask);
46
47 /* Re-load page tables */
48 load_cr3(next->pgd);
49
50 /*
51 * load the LDT, if the LDT is different:
52 */
53 if (unlikely(prev->context.ldt != next->context.ldt))
54 load_LDT_nolock(&next->context);
55 }
56#ifdef CONFIG_SMP
57 else {
58 percpu_write(cpu_tlbstate.state, TLBSTATE_OK);
59 BUG_ON(percpu_read(cpu_tlbstate.active_mm) != next);
60
61 if (!cpu_test_and_set(cpu, next->cpu_vm_mask)) {
62 /* We were in lazy tlb mode and leave_mm disabled
63 * tlb flush IPI delivery. We must reload CR3
64 * to make sure to use no freed page tables.
65 */
66 load_cr3(next->pgd);
67 load_LDT_nolock(&next->context);
68 }
69 }
70#endif
71}
29 72
30#define activate_mm(prev, next) \ 73#define activate_mm(prev, next) \
31do { \ 74do { \
@@ -33,5 +76,17 @@ do { \
33 switch_mm((prev), (next), NULL); \ 76 switch_mm((prev), (next), NULL); \
34} while (0); 77} while (0);
35 78
79#ifdef CONFIG_X86_32
80#define deactivate_mm(tsk, mm) \
81do { \
82 lazy_load_gs(0); \
83} while (0)
84#else
85#define deactivate_mm(tsk, mm) \
86do { \
87 load_gs_index(0); \
88 loadsegment(fs, 0); \
89} while (0)
90#endif
36 91
37#endif /* _ASM_X86_MMU_CONTEXT_H */ 92#endif /* _ASM_X86_MMU_CONTEXT_H */
diff --git a/arch/x86/include/asm/mmu_context_32.h b/arch/x86/include/asm/mmu_context_32.h
deleted file mode 100644
index 7e98ce1d2c0e..000000000000
--- a/arch/x86/include/asm/mmu_context_32.h
+++ /dev/null
@@ -1,55 +0,0 @@
1#ifndef _ASM_X86_MMU_CONTEXT_32_H
2#define _ASM_X86_MMU_CONTEXT_32_H
3
4static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
5{
6#ifdef CONFIG_SMP
7 if (x86_read_percpu(cpu_tlbstate.state) == TLBSTATE_OK)
8 x86_write_percpu(cpu_tlbstate.state, TLBSTATE_LAZY);
9#endif
10}
11
12static inline void switch_mm(struct mm_struct *prev,
13 struct mm_struct *next,
14 struct task_struct *tsk)
15{
16 int cpu = smp_processor_id();
17
18 if (likely(prev != next)) {
19 /* stop flush ipis for the previous mm */
20 cpu_clear(cpu, prev->cpu_vm_mask);
21#ifdef CONFIG_SMP
22 x86_write_percpu(cpu_tlbstate.state, TLBSTATE_OK);
23 x86_write_percpu(cpu_tlbstate.active_mm, next);
24#endif
25 cpu_set(cpu, next->cpu_vm_mask);
26
27 /* Re-load page tables */
28 load_cr3(next->pgd);
29
30 /*
31 * load the LDT, if the LDT is different:
32 */
33 if (unlikely(prev->context.ldt != next->context.ldt))
34 load_LDT_nolock(&next->context);
35 }
36#ifdef CONFIG_SMP
37 else {
38 x86_write_percpu(cpu_tlbstate.state, TLBSTATE_OK);
39 BUG_ON(x86_read_percpu(cpu_tlbstate.active_mm) != next);
40
41 if (!cpu_test_and_set(cpu, next->cpu_vm_mask)) {
42 /* We were in lazy tlb mode and leave_mm disabled
43 * tlb flush IPI delivery. We must reload %cr3.
44 */
45 load_cr3(next->pgd);
46 load_LDT_nolock(&next->context);
47 }
48 }
49#endif
50}
51
52#define deactivate_mm(tsk, mm) \
53 asm("movl %0,%%gs": :"r" (0));
54
55#endif /* _ASM_X86_MMU_CONTEXT_32_H */
diff --git a/arch/x86/include/asm/mmu_context_64.h b/arch/x86/include/asm/mmu_context_64.h
deleted file mode 100644
index 677d36e9540a..000000000000
--- a/arch/x86/include/asm/mmu_context_64.h
+++ /dev/null
@@ -1,54 +0,0 @@
1#ifndef _ASM_X86_MMU_CONTEXT_64_H
2#define _ASM_X86_MMU_CONTEXT_64_H
3
4#include <asm/pda.h>
5
6static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
7{
8#ifdef CONFIG_SMP
9 if (read_pda(mmu_state) == TLBSTATE_OK)
10 write_pda(mmu_state, TLBSTATE_LAZY);
11#endif
12}
13
14static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
15 struct task_struct *tsk)
16{
17 unsigned cpu = smp_processor_id();
18 if (likely(prev != next)) {
19 /* stop flush ipis for the previous mm */
20 cpu_clear(cpu, prev->cpu_vm_mask);
21#ifdef CONFIG_SMP
22 write_pda(mmu_state, TLBSTATE_OK);
23 write_pda(active_mm, next);
24#endif
25 cpu_set(cpu, next->cpu_vm_mask);
26 load_cr3(next->pgd);
27
28 if (unlikely(next->context.ldt != prev->context.ldt))
29 load_LDT_nolock(&next->context);
30 }
31#ifdef CONFIG_SMP
32 else {
33 write_pda(mmu_state, TLBSTATE_OK);
34 if (read_pda(active_mm) != next)
35 BUG();
36 if (!cpu_test_and_set(cpu, next->cpu_vm_mask)) {
37 /* We were in lazy tlb mode and leave_mm disabled
38 * tlb flush IPI delivery. We must reload CR3
39 * to make sure to use no freed page tables.
40 */
41 load_cr3(next->pgd);
42 load_LDT_nolock(&next->context);
43 }
44 }
45#endif
46}
47
48#define deactivate_mm(tsk, mm) \
49do { \
50 load_gs_index(0); \
51 asm volatile("movl %0,%%fs"::"r"(0)); \
52} while (0)
53
54#endif /* _ASM_X86_MMU_CONTEXT_64_H */
diff --git a/arch/x86/include/asm/mmzone_32.h b/arch/x86/include/asm/mmzone_32.h
index 07f1af494ca5..105fb90a0635 100644
--- a/arch/x86/include/asm/mmzone_32.h
+++ b/arch/x86/include/asm/mmzone_32.h
@@ -32,8 +32,6 @@ static inline void get_memcfg_numa(void)
32 get_memcfg_numa_flat(); 32 get_memcfg_numa_flat();
33} 33}
34 34
35extern int early_pfn_to_nid(unsigned long pfn);
36
37extern void resume_map_numa_kva(pgd_t *pgd); 35extern void resume_map_numa_kva(pgd_t *pgd);
38 36
39#else /* !CONFIG_NUMA */ 37#else /* !CONFIG_NUMA */
diff --git a/arch/x86/include/asm/mmzone_64.h b/arch/x86/include/asm/mmzone_64.h
index a5b3817d4b9e..a29f48c2a322 100644
--- a/arch/x86/include/asm/mmzone_64.h
+++ b/arch/x86/include/asm/mmzone_64.h
@@ -40,8 +40,6 @@ static inline __attribute__((pure)) int phys_to_nid(unsigned long addr)
40#define node_end_pfn(nid) (NODE_DATA(nid)->node_start_pfn + \ 40#define node_end_pfn(nid) (NODE_DATA(nid)->node_start_pfn + \
41 NODE_DATA(nid)->node_spanned_pages) 41 NODE_DATA(nid)->node_spanned_pages)
42 42
43extern int early_pfn_to_nid(unsigned long pfn);
44
45#ifdef CONFIG_NUMA_EMU 43#ifdef CONFIG_NUMA_EMU
46#define FAKE_NODE_MIN_SIZE (64 * 1024 * 1024) 44#define FAKE_NODE_MIN_SIZE (64 * 1024 * 1024)
47#define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL)) 45#define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL))
diff --git a/arch/x86/include/asm/mpspec.h b/arch/x86/include/asm/mpspec.h
index 62d14ce3cd00..642fc7fc8cdc 100644
--- a/arch/x86/include/asm/mpspec.h
+++ b/arch/x86/include/asm/mpspec.h
@@ -9,7 +9,18 @@ extern int apic_version[MAX_APICS];
9extern int pic_mode; 9extern int pic_mode;
10 10
11#ifdef CONFIG_X86_32 11#ifdef CONFIG_X86_32
12#include <mach_mpspec.h> 12
13/*
14 * Summit or generic (i.e. installer) kernels need lots of bus entries.
15 * Maximum 256 PCI busses, plus 1 ISA bus in each of 4 cabinets.
16 */
17#if CONFIG_BASE_SMALL == 0
18# define MAX_MP_BUSSES 260
19#else
20# define MAX_MP_BUSSES 32
21#endif
22
23#define MAX_IRQ_SOURCES 256
13 24
14extern unsigned int def_to_bigsmp; 25extern unsigned int def_to_bigsmp;
15extern u8 apicid_2_node[]; 26extern u8 apicid_2_node[];
@@ -20,15 +31,15 @@ extern int mp_bus_id_to_local[MAX_MP_BUSSES];
20extern int quad_local_to_mp_bus_id [NR_CPUS/4][4]; 31extern int quad_local_to_mp_bus_id [NR_CPUS/4][4];
21#endif 32#endif
22 33
23#define MAX_APICID 256 34#define MAX_APICID 256
24 35
25#else 36#else /* CONFIG_X86_64: */
26 37
27#define MAX_MP_BUSSES 256 38#define MAX_MP_BUSSES 256
28/* Each PCI slot may be a combo card with its own bus. 4 IRQ pins per slot. */ 39/* Each PCI slot may be a combo card with its own bus. 4 IRQ pins per slot. */
29#define MAX_IRQ_SOURCES (MAX_MP_BUSSES * 4) 40#define MAX_IRQ_SOURCES (MAX_MP_BUSSES * 4)
30 41
31#endif 42#endif /* CONFIG_X86_64 */
32 43
33extern void early_find_smp_config(void); 44extern void early_find_smp_config(void);
34extern void early_get_smp_config(void); 45extern void early_get_smp_config(void);
@@ -45,11 +56,13 @@ extern int smp_found_config;
45extern int mpc_default_type; 56extern int mpc_default_type;
46extern unsigned long mp_lapic_addr; 57extern unsigned long mp_lapic_addr;
47 58
48extern void find_smp_config(void);
49extern void get_smp_config(void); 59extern void get_smp_config(void);
60
50#ifdef CONFIG_X86_MPPARSE 61#ifdef CONFIG_X86_MPPARSE
62extern void find_smp_config(void);
51extern void early_reserve_e820_mpc_new(void); 63extern void early_reserve_e820_mpc_new(void);
52#else 64#else
65static inline void find_smp_config(void) { }
53static inline void early_reserve_e820_mpc_new(void) { } 66static inline void early_reserve_e820_mpc_new(void) { }
54#endif 67#endif
55 68
@@ -60,9 +73,12 @@ extern void mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger,
60 u32 gsi); 73 u32 gsi);
61extern void mp_config_acpi_legacy_irqs(void); 74extern void mp_config_acpi_legacy_irqs(void);
62extern int mp_register_gsi(u32 gsi, int edge_level, int active_high_low); 75extern int mp_register_gsi(u32 gsi, int edge_level, int active_high_low);
76extern int acpi_probe_gsi(void);
63#ifdef CONFIG_X86_IO_APIC 77#ifdef CONFIG_X86_IO_APIC
64extern int mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin, 78extern int mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin,
65 u32 gsi, int triggering, int polarity); 79 u32 gsi, int triggering, int polarity);
80extern int mp_find_ioapic(int gsi);
81extern int mp_find_ioapic_pin(int ioapic, int gsi);
66#else 82#else
67static inline int 83static inline int
68mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin, 84mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin,
@@ -71,6 +87,11 @@ mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin,
71 return 0; 87 return 0;
72} 88}
73#endif 89#endif
90#else /* !CONFIG_ACPI: */
91static inline int acpi_probe_gsi(void)
92{
93 return 0;
94}
74#endif /* CONFIG_ACPI */ 95#endif /* CONFIG_ACPI */
75 96
76#define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS) 97#define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS)
@@ -142,4 +163,8 @@ static inline void physid_set_mask_of_physid(int physid, physid_mask_t *map)
142 163
143extern physid_mask_t phys_cpu_present_map; 164extern physid_mask_t phys_cpu_present_map;
144 165
166extern int generic_mps_oem_check(struct mpc_table *, char *, char *);
167
168extern int default_acpi_madt_oem_check(char *, char *);
169
145#endif /* _ASM_X86_MPSPEC_H */ 170#endif /* _ASM_X86_MPSPEC_H */
diff --git a/arch/x86/include/asm/mpspec_def.h b/arch/x86/include/asm/mpspec_def.h
index e3ace7d1d35d..4a7f96d7c188 100644
--- a/arch/x86/include/asm/mpspec_def.h
+++ b/arch/x86/include/asm/mpspec_def.h
@@ -24,32 +24,33 @@
24# endif 24# endif
25#endif 25#endif
26 26
27struct intel_mp_floating { 27/* Intel MP Floating Pointer Structure */
28 char mpf_signature[4]; /* "_MP_" */ 28struct mpf_intel {
29 unsigned int mpf_physptr; /* Configuration table address */ 29 char signature[4]; /* "_MP_" */
30 unsigned char mpf_length; /* Our length (paragraphs) */ 30 unsigned int physptr; /* Configuration table address */
31 unsigned char mpf_specification;/* Specification version */ 31 unsigned char length; /* Our length (paragraphs) */
32 unsigned char mpf_checksum; /* Checksum (makes sum 0) */ 32 unsigned char specification; /* Specification version */
33 unsigned char mpf_feature1; /* Standard or configuration ? */ 33 unsigned char checksum; /* Checksum (makes sum 0) */
34 unsigned char mpf_feature2; /* Bit7 set for IMCR|PIC */ 34 unsigned char feature1; /* Standard or configuration ? */
35 unsigned char mpf_feature3; /* Unused (0) */ 35 unsigned char feature2; /* Bit7 set for IMCR|PIC */
36 unsigned char mpf_feature4; /* Unused (0) */ 36 unsigned char feature3; /* Unused (0) */
37 unsigned char mpf_feature5; /* Unused (0) */ 37 unsigned char feature4; /* Unused (0) */
38 unsigned char feature5; /* Unused (0) */
38}; 39};
39 40
40#define MPC_SIGNATURE "PCMP" 41#define MPC_SIGNATURE "PCMP"
41 42
42struct mp_config_table { 43struct mpc_table {
43 char mpc_signature[4]; 44 char signature[4];
44 unsigned short mpc_length; /* Size of table */ 45 unsigned short length; /* Size of table */
45 char mpc_spec; /* 0x01 */ 46 char spec; /* 0x01 */
46 char mpc_checksum; 47 char checksum;
47 char mpc_oem[8]; 48 char oem[8];
48 char mpc_productid[12]; 49 char productid[12];
49 unsigned int mpc_oemptr; /* 0 if not present */ 50 unsigned int oemptr; /* 0 if not present */
50 unsigned short mpc_oemsize; /* 0 if not present */ 51 unsigned short oemsize; /* 0 if not present */
51 unsigned short mpc_oemcount; 52 unsigned short oemcount;
52 unsigned int mpc_lapic; /* APIC address */ 53 unsigned int lapic; /* APIC address */
53 unsigned int reserved; 54 unsigned int reserved;
54}; 55};
55 56
@@ -70,20 +71,20 @@ struct mp_config_table {
70#define CPU_MODEL_MASK 0x00F0 71#define CPU_MODEL_MASK 0x00F0
71#define CPU_FAMILY_MASK 0x0F00 72#define CPU_FAMILY_MASK 0x0F00
72 73
73struct mpc_config_processor { 74struct mpc_cpu {
74 unsigned char mpc_type; 75 unsigned char type;
75 unsigned char mpc_apicid; /* Local APIC number */ 76 unsigned char apicid; /* Local APIC number */
76 unsigned char mpc_apicver; /* Its versions */ 77 unsigned char apicver; /* Its versions */
77 unsigned char mpc_cpuflag; 78 unsigned char cpuflag;
78 unsigned int mpc_cpufeature; 79 unsigned int cpufeature;
79 unsigned int mpc_featureflag; /* CPUID feature value */ 80 unsigned int featureflag; /* CPUID feature value */
80 unsigned int mpc_reserved[2]; 81 unsigned int reserved[2];
81}; 82};
82 83
83struct mpc_config_bus { 84struct mpc_bus {
84 unsigned char mpc_type; 85 unsigned char type;
85 unsigned char mpc_busid; 86 unsigned char busid;
86 unsigned char mpc_bustype[6]; 87 unsigned char bustype[6];
87}; 88};
88 89
89/* List of Bus Type string values, Intel MP Spec. */ 90/* List of Bus Type string values, Intel MP Spec. */
@@ -108,22 +109,22 @@ struct mpc_config_bus {
108 109
109#define MPC_APIC_USABLE 0x01 110#define MPC_APIC_USABLE 0x01
110 111
111struct mpc_config_ioapic { 112struct mpc_ioapic {
112 unsigned char mpc_type; 113 unsigned char type;
113 unsigned char mpc_apicid; 114 unsigned char apicid;
114 unsigned char mpc_apicver; 115 unsigned char apicver;
115 unsigned char mpc_flags; 116 unsigned char flags;
116 unsigned int mpc_apicaddr; 117 unsigned int apicaddr;
117}; 118};
118 119
119struct mpc_config_intsrc { 120struct mpc_intsrc {
120 unsigned char mpc_type; 121 unsigned char type;
121 unsigned char mpc_irqtype; 122 unsigned char irqtype;
122 unsigned short mpc_irqflag; 123 unsigned short irqflag;
123 unsigned char mpc_srcbus; 124 unsigned char srcbus;
124 unsigned char mpc_srcbusirq; 125 unsigned char srcbusirq;
125 unsigned char mpc_dstapic; 126 unsigned char dstapic;
126 unsigned char mpc_dstirq; 127 unsigned char dstirq;
127}; 128};
128 129
129enum mp_irq_source_types { 130enum mp_irq_source_types {
@@ -139,24 +140,24 @@ enum mp_irq_source_types {
139 140
140#define MP_APIC_ALL 0xFF 141#define MP_APIC_ALL 0xFF
141 142
142struct mpc_config_lintsrc { 143struct mpc_lintsrc {
143 unsigned char mpc_type; 144 unsigned char type;
144 unsigned char mpc_irqtype; 145 unsigned char irqtype;
145 unsigned short mpc_irqflag; 146 unsigned short irqflag;
146 unsigned char mpc_srcbusid; 147 unsigned char srcbusid;
147 unsigned char mpc_srcbusirq; 148 unsigned char srcbusirq;
148 unsigned char mpc_destapic; 149 unsigned char destapic;
149 unsigned char mpc_destapiclint; 150 unsigned char destapiclint;
150}; 151};
151 152
152#define MPC_OEM_SIGNATURE "_OEM" 153#define MPC_OEM_SIGNATURE "_OEM"
153 154
154struct mp_config_oemtable { 155struct mpc_oemtable {
155 char oem_signature[4]; 156 char signature[4];
156 unsigned short oem_length; /* Size of table */ 157 unsigned short length; /* Size of table */
157 char oem_rev; /* 0x01 */ 158 char rev; /* 0x01 */
158 char oem_checksum; 159 char checksum;
159 char mpc_oem[8]; 160 char mpc[8];
160}; 161};
161 162
162/* 163/*
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index cb58643947b9..358acc59ae04 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -202,6 +202,35 @@
202#define MSR_IA32_THERM_STATUS 0x0000019c 202#define MSR_IA32_THERM_STATUS 0x0000019c
203#define MSR_IA32_MISC_ENABLE 0x000001a0 203#define MSR_IA32_MISC_ENABLE 0x000001a0
204 204
205/* MISC_ENABLE bits: architectural */
206#define MSR_IA32_MISC_ENABLE_FAST_STRING (1ULL << 0)
207#define MSR_IA32_MISC_ENABLE_TCC (1ULL << 1)
208#define MSR_IA32_MISC_ENABLE_EMON (1ULL << 7)
209#define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL (1ULL << 11)
210#define MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL (1ULL << 12)
211#define MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP (1ULL << 16)
212#define MSR_IA32_MISC_ENABLE_MWAIT (1ULL << 18)
213#define MSR_IA32_MISC_ENABLE_LIMIT_CPUID (1ULL << 22)
214#define MSR_IA32_MISC_ENABLE_XTPR_DISABLE (1ULL << 23)
215#define MSR_IA32_MISC_ENABLE_XD_DISABLE (1ULL << 34)
216
217/* MISC_ENABLE bits: model-specific, meaning may vary from core to core */
218#define MSR_IA32_MISC_ENABLE_X87_COMPAT (1ULL << 2)
219#define MSR_IA32_MISC_ENABLE_TM1 (1ULL << 3)
220#define MSR_IA32_MISC_ENABLE_SPLIT_LOCK_DISABLE (1ULL << 4)
221#define MSR_IA32_MISC_ENABLE_L3CACHE_DISABLE (1ULL << 6)
222#define MSR_IA32_MISC_ENABLE_SUPPRESS_LOCK (1ULL << 8)
223#define MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE (1ULL << 9)
224#define MSR_IA32_MISC_ENABLE_FERR (1ULL << 10)
225#define MSR_IA32_MISC_ENABLE_FERR_MULTIPLEX (1ULL << 10)
226#define MSR_IA32_MISC_ENABLE_TM2 (1ULL << 13)
227#define MSR_IA32_MISC_ENABLE_ADJ_PREF_DISABLE (1ULL << 19)
228#define MSR_IA32_MISC_ENABLE_SPEEDSTEP_LOCK (1ULL << 20)
229#define MSR_IA32_MISC_ENABLE_L1D_CONTEXT (1ULL << 24)
230#define MSR_IA32_MISC_ENABLE_DCU_PREF_DISABLE (1ULL << 37)
231#define MSR_IA32_MISC_ENABLE_TURBO_DISABLE (1ULL << 38)
232#define MSR_IA32_MISC_ENABLE_IP_PREF_DISABLE (1ULL << 39)
233
205/* Intel Model 6 */ 234/* Intel Model 6 */
206#define MSR_P6_EVNTSEL0 0x00000186 235#define MSR_P6_EVNTSEL0 0x00000186
207#define MSR_P6_EVNTSEL1 0x00000187 236#define MSR_P6_EVNTSEL1 0x00000187
diff --git a/arch/x86/include/asm/mtrr.h b/arch/x86/include/asm/mtrr.h
index cb988aab716d..a51ada8467de 100644
--- a/arch/x86/include/asm/mtrr.h
+++ b/arch/x86/include/asm/mtrr.h
@@ -23,6 +23,7 @@
23#ifndef _ASM_X86_MTRR_H 23#ifndef _ASM_X86_MTRR_H
24#define _ASM_X86_MTRR_H 24#define _ASM_X86_MTRR_H
25 25
26#include <linux/types.h>
26#include <linux/ioctl.h> 27#include <linux/ioctl.h>
27#include <linux/errno.h> 28#include <linux/errno.h>
28 29
@@ -58,15 +59,15 @@ struct mtrr_gentry {
58#endif /* !__i386__ */ 59#endif /* !__i386__ */
59 60
60struct mtrr_var_range { 61struct mtrr_var_range {
61 u32 base_lo; 62 __u32 base_lo;
62 u32 base_hi; 63 __u32 base_hi;
63 u32 mask_lo; 64 __u32 mask_lo;
64 u32 mask_hi; 65 __u32 mask_hi;
65}; 66};
66 67
67/* In the Intel processor's MTRR interface, the MTRR type is always held in 68/* In the Intel processor's MTRR interface, the MTRR type is always held in
68 an 8 bit field: */ 69 an 8 bit field: */
69typedef u8 mtrr_type; 70typedef __u8 mtrr_type;
70 71
71#define MTRR_NUM_FIXED_RANGES 88 72#define MTRR_NUM_FIXED_RANGES 88
72#define MTRR_MAX_VAR_RANGES 256 73#define MTRR_MAX_VAR_RANGES 256
diff --git a/arch/x86/include/asm/numa_32.h b/arch/x86/include/asm/numa_32.h
index e9f5db796244..a37229011b56 100644
--- a/arch/x86/include/asm/numa_32.h
+++ b/arch/x86/include/asm/numa_32.h
@@ -4,8 +4,12 @@
4extern int pxm_to_nid(int pxm); 4extern int pxm_to_nid(int pxm);
5extern void numa_remove_cpu(int cpu); 5extern void numa_remove_cpu(int cpu);
6 6
7#ifdef CONFIG_NUMA 7#ifdef CONFIG_HIGHMEM
8extern void set_highmem_pages_init(void); 8extern void set_highmem_pages_init(void);
9#else
10static inline void set_highmem_pages_init(void)
11{
12}
9#endif 13#endif
10 14
11#endif /* _ASM_X86_NUMA_32_H */ 15#endif /* _ASM_X86_NUMA_32_H */
diff --git a/arch/x86/include/asm/numaq.h b/arch/x86/include/asm/numaq.h
index 1e8bd30b4c16..9f0a5f5d29ec 100644
--- a/arch/x86/include/asm/numaq.h
+++ b/arch/x86/include/asm/numaq.h
@@ -31,6 +31,8 @@
31extern int found_numaq; 31extern int found_numaq;
32extern int get_memcfg_numaq(void); 32extern int get_memcfg_numaq(void);
33 33
34extern void *xquad_portio;
35
34/* 36/*
35 * SYS_CFG_DATA_PRIV_ADDR, struct eachquadmem, and struct sys_cfg_data are the 37 * SYS_CFG_DATA_PRIV_ADDR, struct eachquadmem, and struct sys_cfg_data are the
36 */ 38 */
diff --git a/arch/x86/include/asm/numaq/apic.h b/arch/x86/include/asm/numaq/apic.h
deleted file mode 100644
index bf37bc49bd8e..000000000000
--- a/arch/x86/include/asm/numaq/apic.h
+++ /dev/null
@@ -1,142 +0,0 @@
1#ifndef __ASM_NUMAQ_APIC_H
2#define __ASM_NUMAQ_APIC_H
3
4#include <asm/io.h>
5#include <linux/mmzone.h>
6#include <linux/nodemask.h>
7
8#define APIC_DFR_VALUE (APIC_DFR_CLUSTER)
9
10static inline const cpumask_t *target_cpus(void)
11{
12 return &CPU_MASK_ALL;
13}
14
15#define NO_BALANCE_IRQ (1)
16#define esr_disable (1)
17
18#define INT_DELIVERY_MODE dest_LowestPrio
19#define INT_DEST_MODE 0 /* physical delivery on LOCAL quad */
20
21static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
22{
23 return physid_isset(apicid, bitmap);
24}
25static inline unsigned long check_apicid_present(int bit)
26{
27 return physid_isset(bit, phys_cpu_present_map);
28}
29#define apicid_cluster(apicid) (apicid & 0xF0)
30
31static inline int apic_id_registered(void)
32{
33 return 1;
34}
35
36static inline void init_apic_ldr(void)
37{
38 /* Already done in NUMA-Q firmware */
39}
40
41static inline void setup_apic_routing(void)
42{
43 printk("Enabling APIC mode: %s. Using %d I/O APICs\n",
44 "NUMA-Q", nr_ioapics);
45}
46
47/*
48 * Skip adding the timer int on secondary nodes, which causes
49 * a small but painful rift in the time-space continuum.
50 */
51static inline int multi_timer_check(int apic, int irq)
52{
53 return apic != 0 && irq == 0;
54}
55
56static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
57{
58 /* We don't have a good way to do this yet - hack */
59 return physids_promote(0xFUL);
60}
61
62/* Mapping from cpu number to logical apicid */
63extern u8 cpu_2_logical_apicid[];
64static inline int cpu_to_logical_apicid(int cpu)
65{
66 if (cpu >= nr_cpu_ids)
67 return BAD_APICID;
68 return (int)cpu_2_logical_apicid[cpu];
69}
70
71/*
72 * Supporting over 60 cpus on NUMA-Q requires a locality-dependent
73 * cpu to APIC ID relation to properly interact with the intelligent
74 * mode of the cluster controller.
75 */
76static inline int cpu_present_to_apicid(int mps_cpu)
77{
78 if (mps_cpu < 60)
79 return ((mps_cpu >> 2) << 4) | (1 << (mps_cpu & 0x3));
80 else
81 return BAD_APICID;
82}
83
84static inline int apicid_to_node(int logical_apicid)
85{
86 return logical_apicid >> 4;
87}
88
89static inline physid_mask_t apicid_to_cpu_present(int logical_apicid)
90{
91 int node = apicid_to_node(logical_apicid);
92 int cpu = __ffs(logical_apicid & 0xf);
93
94 return physid_mask_of_physid(cpu + 4*node);
95}
96
97extern void *xquad_portio;
98
99static inline void setup_portio_remap(void)
100{
101 int num_quads = num_online_nodes();
102
103 if (num_quads <= 1)
104 return;
105
106 printk("Remapping cross-quad port I/O for %d quads\n", num_quads);
107 xquad_portio = ioremap(XQUAD_PORTIO_BASE, num_quads*XQUAD_PORTIO_QUAD);
108 printk("xquad_portio vaddr 0x%08lx, len %08lx\n",
109 (u_long) xquad_portio, (u_long) num_quads*XQUAD_PORTIO_QUAD);
110}
111
112static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
113{
114 return (1);
115}
116
117static inline void enable_apic_mode(void)
118{
119}
120
121/*
122 * We use physical apicids here, not logical, so just return the default
123 * physical broadcast to stop people from breaking us
124 */
125static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
126{
127 return (int) 0xF;
128}
129
130static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *cpumask,
131 const struct cpumask *andmask)
132{
133 return (int) 0xF;
134}
135
136/* No NUMA-Q box has a HT CPU, but it can't hurt to use the default code. */
137static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
138{
139 return cpuid_apic >> index_msb;
140}
141
142#endif /* __ASM_NUMAQ_APIC_H */
diff --git a/arch/x86/include/asm/numaq/apicdef.h b/arch/x86/include/asm/numaq/apicdef.h
deleted file mode 100644
index e012a46cc22a..000000000000
--- a/arch/x86/include/asm/numaq/apicdef.h
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifndef __ASM_NUMAQ_APICDEF_H
2#define __ASM_NUMAQ_APICDEF_H
3
4
5#define APIC_ID_MASK (0xF<<24)
6
7static inline unsigned get_apic_id(unsigned long x)
8{
9 return (((x)>>24)&0x0F);
10}
11
12#define GET_APIC_ID(x) get_apic_id(x)
13
14#endif
diff --git a/arch/x86/include/asm/numaq/ipi.h b/arch/x86/include/asm/numaq/ipi.h
deleted file mode 100644
index a8374c652778..000000000000
--- a/arch/x86/include/asm/numaq/ipi.h
+++ /dev/null
@@ -1,22 +0,0 @@
1#ifndef __ASM_NUMAQ_IPI_H
2#define __ASM_NUMAQ_IPI_H
3
4void send_IPI_mask_sequence(const struct cpumask *mask, int vector);
5void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
6
7static inline void send_IPI_mask(const struct cpumask *mask, int vector)
8{
9 send_IPI_mask_sequence(mask, vector);
10}
11
12static inline void send_IPI_allbutself(int vector)
13{
14 send_IPI_mask_allbutself(cpu_online_mask, vector);
15}
16
17static inline void send_IPI_all(int vector)
18{
19 send_IPI_mask(cpu_online_mask, vector);
20}
21
22#endif /* __ASM_NUMAQ_IPI_H */
diff --git a/arch/x86/include/asm/numaq/mpparse.h b/arch/x86/include/asm/numaq/mpparse.h
deleted file mode 100644
index 252292e077b6..000000000000
--- a/arch/x86/include/asm/numaq/mpparse.h
+++ /dev/null
@@ -1,7 +0,0 @@
1#ifndef __ASM_NUMAQ_MPPARSE_H
2#define __ASM_NUMAQ_MPPARSE_H
3
4extern void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem,
5 char *productid);
6
7#endif /* __ASM_NUMAQ_MPPARSE_H */
diff --git a/arch/x86/include/asm/numaq/wakecpu.h b/arch/x86/include/asm/numaq/wakecpu.h
deleted file mode 100644
index 6f499df8eddb..000000000000
--- a/arch/x86/include/asm/numaq/wakecpu.h
+++ /dev/null
@@ -1,45 +0,0 @@
1#ifndef __ASM_NUMAQ_WAKECPU_H
2#define __ASM_NUMAQ_WAKECPU_H
3
4/* This file copes with machines that wakeup secondary CPUs by NMIs */
5
6#define TRAMPOLINE_PHYS_LOW (0x8)
7#define TRAMPOLINE_PHYS_HIGH (0xa)
8
9/* We don't do anything here because we use NMI's to boot instead */
10static inline void wait_for_init_deassert(atomic_t *deassert)
11{
12}
13
14/*
15 * Because we use NMIs rather than the INIT-STARTUP sequence to
16 * bootstrap the CPUs, the APIC may be in a weird state. Kick it.
17 */
18static inline void smp_callin_clear_local_apic(void)
19{
20 clear_local_APIC();
21}
22
23static inline void store_NMI_vector(unsigned short *high, unsigned short *low)
24{
25 printk("Storing NMI vector\n");
26 *high =
27 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH));
28 *low =
29 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW));
30}
31
32static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
33{
34 printk("Restoring NMI vector\n");
35 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH)) =
36 *high;
37 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) =
38 *low;
39}
40
41static inline void inquire_remote_apic(int apicid)
42{
43}
44
45#endif /* __ASM_NUMAQ_WAKECPU_H */
diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h
index e9873a2e8695..89ed9d70b0aa 100644
--- a/arch/x86/include/asm/page.h
+++ b/arch/x86/include/asm/page.h
@@ -1,42 +1,11 @@
1#ifndef _ASM_X86_PAGE_H 1#ifndef _ASM_X86_PAGE_H
2#define _ASM_X86_PAGE_H 2#define _ASM_X86_PAGE_H
3 3
4#include <linux/const.h> 4#include <linux/types.h>
5
6/* PAGE_SHIFT determines the page size */
7#define PAGE_SHIFT 12
8#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
9#define PAGE_MASK (~(PAGE_SIZE-1))
10 5
11#ifdef __KERNEL__ 6#ifdef __KERNEL__
12 7
13#define __PHYSICAL_MASK ((phys_addr_t)(1ULL << __PHYSICAL_MASK_SHIFT) - 1) 8#include <asm/page_types.h>
14#define __VIRTUAL_MASK ((1UL << __VIRTUAL_MASK_SHIFT) - 1)
15
16/* Cast PAGE_MASK to a signed type so that it is sign-extended if
17 virtual addresses are 32-bits but physical addresses are larger
18 (ie, 32-bit PAE). */
19#define PHYSICAL_PAGE_MASK (((signed long)PAGE_MASK) & __PHYSICAL_MASK)
20
21/* PTE_PFN_MASK extracts the PFN from a (pte|pmd|pud|pgd)val_t */
22#define PTE_PFN_MASK ((pteval_t)PHYSICAL_PAGE_MASK)
23
24/* PTE_FLAGS_MASK extracts the flags from a (pte|pmd|pud|pgd)val_t */
25#define PTE_FLAGS_MASK (~PTE_PFN_MASK)
26
27#define PMD_PAGE_SIZE (_AC(1, UL) << PMD_SHIFT)
28#define PMD_PAGE_MASK (~(PMD_PAGE_SIZE-1))
29
30#define HPAGE_SHIFT PMD_SHIFT
31#define HPAGE_SIZE (_AC(1,UL) << HPAGE_SHIFT)
32#define HPAGE_MASK (~(HPAGE_SIZE - 1))
33#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
34
35#define HUGE_MAX_HSTATE 2
36
37#ifndef __ASSEMBLY__
38#include <linux/types.h>
39#endif
40 9
41#ifdef CONFIG_X86_64 10#ifdef CONFIG_X86_64
42#include <asm/page_64.h> 11#include <asm/page_64.h>
@@ -44,39 +13,18 @@
44#include <asm/page_32.h> 13#include <asm/page_32.h>
45#endif /* CONFIG_X86_64 */ 14#endif /* CONFIG_X86_64 */
46 15
47#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
48
49#define VM_DATA_DEFAULT_FLAGS \
50 (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \
51 VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
52
53
54#ifndef __ASSEMBLY__ 16#ifndef __ASSEMBLY__
55 17
56typedef struct { pgdval_t pgd; } pgd_t;
57typedef struct { pgprotval_t pgprot; } pgprot_t;
58
59extern int page_is_ram(unsigned long pagenr);
60extern int pagerange_is_ram(unsigned long start, unsigned long end);
61extern int devmem_is_allowed(unsigned long pagenr);
62extern void map_devmem(unsigned long pfn, unsigned long size,
63 pgprot_t vma_prot);
64extern void unmap_devmem(unsigned long pfn, unsigned long size,
65 pgprot_t vma_prot);
66
67extern unsigned long max_low_pfn_mapped;
68extern unsigned long max_pfn_mapped;
69
70struct page; 18struct page;
71 19
72static inline void clear_user_page(void *page, unsigned long vaddr, 20static inline void clear_user_page(void *page, unsigned long vaddr,
73 struct page *pg) 21 struct page *pg)
74{ 22{
75 clear_page(page); 23 clear_page(page);
76} 24}
77 25
78static inline void copy_user_page(void *to, void *from, unsigned long vaddr, 26static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
79 struct page *topage) 27 struct page *topage)
80{ 28{
81 copy_page(to, from); 29 copy_page(to, from);
82} 30}
@@ -85,99 +33,6 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
85 alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr) 33 alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr)
86#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE 34#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE
87 35
88static inline pgd_t native_make_pgd(pgdval_t val)
89{
90 return (pgd_t) { val };
91}
92
93static inline pgdval_t native_pgd_val(pgd_t pgd)
94{
95 return pgd.pgd;
96}
97
98#if PAGETABLE_LEVELS >= 3
99#if PAGETABLE_LEVELS == 4
100typedef struct { pudval_t pud; } pud_t;
101
102static inline pud_t native_make_pud(pmdval_t val)
103{
104 return (pud_t) { val };
105}
106
107static inline pudval_t native_pud_val(pud_t pud)
108{
109 return pud.pud;
110}
111#else /* PAGETABLE_LEVELS == 3 */
112#include <asm-generic/pgtable-nopud.h>
113
114static inline pudval_t native_pud_val(pud_t pud)
115{
116 return native_pgd_val(pud.pgd);
117}
118#endif /* PAGETABLE_LEVELS == 4 */
119
120typedef struct { pmdval_t pmd; } pmd_t;
121
122static inline pmd_t native_make_pmd(pmdval_t val)
123{
124 return (pmd_t) { val };
125}
126
127static inline pmdval_t native_pmd_val(pmd_t pmd)
128{
129 return pmd.pmd;
130}
131#else /* PAGETABLE_LEVELS == 2 */
132#include <asm-generic/pgtable-nopmd.h>
133
134static inline pmdval_t native_pmd_val(pmd_t pmd)
135{
136 return native_pgd_val(pmd.pud.pgd);
137}
138#endif /* PAGETABLE_LEVELS >= 3 */
139
140static inline pte_t native_make_pte(pteval_t val)
141{
142 return (pte_t) { .pte = val };
143}
144
145static inline pteval_t native_pte_val(pte_t pte)
146{
147 return pte.pte;
148}
149
150static inline pteval_t native_pte_flags(pte_t pte)
151{
152 return native_pte_val(pte) & PTE_FLAGS_MASK;
153}
154
155#define pgprot_val(x) ((x).pgprot)
156#define __pgprot(x) ((pgprot_t) { (x) } )
157
158#ifdef CONFIG_PARAVIRT
159#include <asm/paravirt.h>
160#else /* !CONFIG_PARAVIRT */
161
162#define pgd_val(x) native_pgd_val(x)
163#define __pgd(x) native_make_pgd(x)
164
165#ifndef __PAGETABLE_PUD_FOLDED
166#define pud_val(x) native_pud_val(x)
167#define __pud(x) native_make_pud(x)
168#endif
169
170#ifndef __PAGETABLE_PMD_FOLDED
171#define pmd_val(x) native_pmd_val(x)
172#define __pmd(x) native_make_pmd(x)
173#endif
174
175#define pte_val(x) native_pte_val(x)
176#define pte_flags(x) native_pte_flags(x)
177#define __pte(x) native_make_pte(x)
178
179#endif /* CONFIG_PARAVIRT */
180
181#define __pa(x) __phys_addr((unsigned long)(x)) 36#define __pa(x) __phys_addr((unsigned long)(x))
182#define __pa_nodebug(x) __phys_addr_nodebug((unsigned long)(x)) 37#define __pa_nodebug(x) __phys_addr_nodebug((unsigned long)(x))
183/* __pa_symbol should be used for C visible symbols. 38/* __pa_symbol should be used for C visible symbols.
diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h
index bcde0d7b4325..da4e762406f7 100644
--- a/arch/x86/include/asm/page_32.h
+++ b/arch/x86/include/asm/page_32.h
@@ -1,82 +1,14 @@
1#ifndef _ASM_X86_PAGE_32_H 1#ifndef _ASM_X86_PAGE_32_H
2#define _ASM_X86_PAGE_32_H 2#define _ASM_X86_PAGE_32_H
3 3
4/* 4#include <asm/page_32_types.h>
5 * This handles the memory map.
6 *
7 * A __PAGE_OFFSET of 0xC0000000 means that the kernel has
8 * a virtual address space of one gigabyte, which limits the
9 * amount of physical memory you can use to about 950MB.
10 *
11 * If you want more physical memory than this then see the CONFIG_HIGHMEM4G
12 * and CONFIG_HIGHMEM64G options in the kernel configuration.
13 */
14#define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL)
15
16#ifdef CONFIG_4KSTACKS
17#define THREAD_ORDER 0
18#else
19#define THREAD_ORDER 1
20#endif
21#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
22
23#define STACKFAULT_STACK 0
24#define DOUBLEFAULT_STACK 1
25#define NMI_STACK 0
26#define DEBUG_STACK 0
27#define MCE_STACK 0
28#define N_EXCEPTION_STACKS 1
29
30#ifdef CONFIG_X86_PAE
31/* 44=32+12, the limit we can fit into an unsigned long pfn */
32#define __PHYSICAL_MASK_SHIFT 44
33#define __VIRTUAL_MASK_SHIFT 32
34#define PAGETABLE_LEVELS 3
35
36#ifndef __ASSEMBLY__
37typedef u64 pteval_t;
38typedef u64 pmdval_t;
39typedef u64 pudval_t;
40typedef u64 pgdval_t;
41typedef u64 pgprotval_t;
42
43typedef union {
44 struct {
45 unsigned long pte_low, pte_high;
46 };
47 pteval_t pte;
48} pte_t;
49#endif /* __ASSEMBLY__
50 */
51#else /* !CONFIG_X86_PAE */
52#define __PHYSICAL_MASK_SHIFT 32
53#define __VIRTUAL_MASK_SHIFT 32
54#define PAGETABLE_LEVELS 2
55
56#ifndef __ASSEMBLY__
57typedef unsigned long pteval_t;
58typedef unsigned long pmdval_t;
59typedef unsigned long pudval_t;
60typedef unsigned long pgdval_t;
61typedef unsigned long pgprotval_t;
62
63typedef union {
64 pteval_t pte;
65 pteval_t pte_low;
66} pte_t;
67
68#endif /* __ASSEMBLY__ */
69#endif /* CONFIG_X86_PAE */
70 5
71#ifndef __ASSEMBLY__ 6#ifndef __ASSEMBLY__
72typedef struct page *pgtable_t;
73#endif
74 7
75#ifdef CONFIG_HUGETLB_PAGE 8#ifdef CONFIG_HUGETLB_PAGE
76#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA 9#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
77#endif 10#endif
78 11
79#ifndef __ASSEMBLY__
80#define __phys_addr_nodebug(x) ((x) - PAGE_OFFSET) 12#define __phys_addr_nodebug(x) ((x) - PAGE_OFFSET)
81#ifdef CONFIG_DEBUG_VIRTUAL 13#ifdef CONFIG_DEBUG_VIRTUAL
82extern unsigned long __phys_addr(unsigned long); 14extern unsigned long __phys_addr(unsigned long);
@@ -89,23 +21,6 @@ extern unsigned long __phys_addr(unsigned long);
89#define pfn_valid(pfn) ((pfn) < max_mapnr) 21#define pfn_valid(pfn) ((pfn) < max_mapnr)
90#endif /* CONFIG_FLATMEM */ 22#endif /* CONFIG_FLATMEM */
91 23
92extern int nx_enabled;
93
94/*
95 * This much address space is reserved for vmalloc() and iomap()
96 * as well as fixmap mappings.
97 */
98extern unsigned int __VMALLOC_RESERVE;
99extern int sysctl_legacy_va_layout;
100
101extern void find_low_pfn_range(void);
102extern unsigned long init_memory_mapping(unsigned long start,
103 unsigned long end);
104extern void initmem_init(unsigned long, unsigned long);
105extern void free_initmem(void);
106extern void setup_bootmem_allocator(void);
107
108
109#ifdef CONFIG_X86_USE_3DNOW 24#ifdef CONFIG_X86_USE_3DNOW
110#include <asm/mmx.h> 25#include <asm/mmx.h>
111 26
diff --git a/arch/x86/include/asm/page_32_types.h b/arch/x86/include/asm/page_32_types.h
new file mode 100644
index 000000000000..f1e4a79a6e41
--- /dev/null
+++ b/arch/x86/include/asm/page_32_types.h
@@ -0,0 +1,60 @@
1#ifndef _ASM_X86_PAGE_32_DEFS_H
2#define _ASM_X86_PAGE_32_DEFS_H
3
4#include <linux/const.h>
5
6/*
7 * This handles the memory map.
8 *
9 * A __PAGE_OFFSET of 0xC0000000 means that the kernel has
10 * a virtual address space of one gigabyte, which limits the
11 * amount of physical memory you can use to about 950MB.
12 *
13 * If you want more physical memory than this then see the CONFIG_HIGHMEM4G
14 * and CONFIG_HIGHMEM64G options in the kernel configuration.
15 */
16#define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL)
17
18#ifdef CONFIG_4KSTACKS
19#define THREAD_ORDER 0
20#else
21#define THREAD_ORDER 1
22#endif
23#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
24
25#define STACKFAULT_STACK 0
26#define DOUBLEFAULT_STACK 1
27#define NMI_STACK 0
28#define DEBUG_STACK 0
29#define MCE_STACK 0
30#define N_EXCEPTION_STACKS 1
31
32#ifdef CONFIG_X86_PAE
33/* 44=32+12, the limit we can fit into an unsigned long pfn */
34#define __PHYSICAL_MASK_SHIFT 44
35#define __VIRTUAL_MASK_SHIFT 32
36
37#else /* !CONFIG_X86_PAE */
38#define __PHYSICAL_MASK_SHIFT 32
39#define __VIRTUAL_MASK_SHIFT 32
40#endif /* CONFIG_X86_PAE */
41
42#ifndef __ASSEMBLY__
43
44/*
45 * This much address space is reserved for vmalloc() and iomap()
46 * as well as fixmap mappings.
47 */
48extern unsigned int __VMALLOC_RESERVE;
49extern int sysctl_legacy_va_layout;
50
51extern void find_low_pfn_range(void);
52extern unsigned long init_memory_mapping(unsigned long start,
53 unsigned long end);
54extern void initmem_init(unsigned long, unsigned long);
55extern void free_initmem(void);
56extern void setup_bootmem_allocator(void);
57
58#endif /* !__ASSEMBLY__ */
59
60#endif /* _ASM_X86_PAGE_32_DEFS_H */
diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h
index 5ebca29f44f0..072694ed81a5 100644
--- a/arch/x86/include/asm/page_64.h
+++ b/arch/x86/include/asm/page_64.h
@@ -1,105 +1,6 @@
1#ifndef _ASM_X86_PAGE_64_H 1#ifndef _ASM_X86_PAGE_64_H
2#define _ASM_X86_PAGE_64_H 2#define _ASM_X86_PAGE_64_H
3 3
4#define PAGETABLE_LEVELS 4 4#include <asm/page_64_types.h>
5
6#define THREAD_ORDER 1
7#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
8#define CURRENT_MASK (~(THREAD_SIZE - 1))
9
10#define EXCEPTION_STACK_ORDER 0
11#define EXCEPTION_STKSZ (PAGE_SIZE << EXCEPTION_STACK_ORDER)
12
13#define DEBUG_STACK_ORDER (EXCEPTION_STACK_ORDER + 1)
14#define DEBUG_STKSZ (PAGE_SIZE << DEBUG_STACK_ORDER)
15
16#define IRQSTACK_ORDER 2
17#define IRQSTACKSIZE (PAGE_SIZE << IRQSTACK_ORDER)
18
19#define STACKFAULT_STACK 1
20#define DOUBLEFAULT_STACK 2
21#define NMI_STACK 3
22#define DEBUG_STACK 4
23#define MCE_STACK 5
24#define N_EXCEPTION_STACKS 5 /* hw limit: 7 */
25
26#define PUD_PAGE_SIZE (_AC(1, UL) << PUD_SHIFT)
27#define PUD_PAGE_MASK (~(PUD_PAGE_SIZE-1))
28
29/*
30 * Set __PAGE_OFFSET to the most negative possible address +
31 * PGDIR_SIZE*16 (pgd slot 272). The gap is to allow a space for a
32 * hypervisor to fit. Choosing 16 slots here is arbitrary, but it's
33 * what Xen requires.
34 */
35#define __PAGE_OFFSET _AC(0xffff880000000000, UL)
36
37#define __PHYSICAL_START CONFIG_PHYSICAL_START
38#define __KERNEL_ALIGN 0x200000
39
40/*
41 * Make sure kernel is aligned to 2MB address. Catching it at compile
42 * time is better. Change your config file and compile the kernel
43 * for a 2MB aligned address (CONFIG_PHYSICAL_START)
44 */
45#if (CONFIG_PHYSICAL_START % __KERNEL_ALIGN) != 0
46#error "CONFIG_PHYSICAL_START must be a multiple of 2MB"
47#endif
48
49#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
50#define __START_KERNEL_map _AC(0xffffffff80000000, UL)
51
52/* See Documentation/x86_64/mm.txt for a description of the memory map. */
53#define __PHYSICAL_MASK_SHIFT 46
54#define __VIRTUAL_MASK_SHIFT 48
55
56/*
57 * Kernel image size is limited to 512 MB (see level2_kernel_pgt in
58 * arch/x86/kernel/head_64.S), and it is mapped here:
59 */
60#define KERNEL_IMAGE_SIZE (512 * 1024 * 1024)
61#define KERNEL_IMAGE_START _AC(0xffffffff80000000, UL)
62
63#ifndef __ASSEMBLY__
64void clear_page(void *page);
65void copy_page(void *to, void *from);
66
67/* duplicated to the one in bootmem.h */
68extern unsigned long max_pfn;
69extern unsigned long phys_base;
70
71extern unsigned long __phys_addr(unsigned long);
72#define __phys_reloc_hide(x) (x)
73
74/*
75 * These are used to make use of C type-checking..
76 */
77typedef unsigned long pteval_t;
78typedef unsigned long pmdval_t;
79typedef unsigned long pudval_t;
80typedef unsigned long pgdval_t;
81typedef unsigned long pgprotval_t;
82
83typedef struct page *pgtable_t;
84
85typedef struct { pteval_t pte; } pte_t;
86
87#define vmemmap ((struct page *)VMEMMAP_START)
88
89extern unsigned long init_memory_mapping(unsigned long start,
90 unsigned long end);
91
92extern void initmem_init(unsigned long start_pfn, unsigned long end_pfn);
93extern void free_initmem(void);
94
95extern void init_extra_mapping_uc(unsigned long phys, unsigned long size);
96extern void init_extra_mapping_wb(unsigned long phys, unsigned long size);
97
98#endif /* !__ASSEMBLY__ */
99
100#ifdef CONFIG_FLATMEM
101#define pfn_valid(pfn) ((pfn) < max_pfn)
102#endif
103
104 5
105#endif /* _ASM_X86_PAGE_64_H */ 6#endif /* _ASM_X86_PAGE_64_H */
diff --git a/arch/x86/include/asm/page_64_types.h b/arch/x86/include/asm/page_64_types.h
new file mode 100644
index 000000000000..d38c91b70248
--- /dev/null
+++ b/arch/x86/include/asm/page_64_types.h
@@ -0,0 +1,89 @@
1#ifndef _ASM_X86_PAGE_64_DEFS_H
2#define _ASM_X86_PAGE_64_DEFS_H
3
4#define THREAD_ORDER 1
5#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
6#define CURRENT_MASK (~(THREAD_SIZE - 1))
7
8#define EXCEPTION_STACK_ORDER 0
9#define EXCEPTION_STKSZ (PAGE_SIZE << EXCEPTION_STACK_ORDER)
10
11#define DEBUG_STACK_ORDER (EXCEPTION_STACK_ORDER + 1)
12#define DEBUG_STKSZ (PAGE_SIZE << DEBUG_STACK_ORDER)
13
14#define IRQ_STACK_ORDER 2
15#define IRQ_STACK_SIZE (PAGE_SIZE << IRQ_STACK_ORDER)
16
17#define STACKFAULT_STACK 1
18#define DOUBLEFAULT_STACK 2
19#define NMI_STACK 3
20#define DEBUG_STACK 4
21#define MCE_STACK 5
22#define N_EXCEPTION_STACKS 5 /* hw limit: 7 */
23
24#define PUD_PAGE_SIZE (_AC(1, UL) << PUD_SHIFT)
25#define PUD_PAGE_MASK (~(PUD_PAGE_SIZE-1))
26
27/*
28 * Set __PAGE_OFFSET to the most negative possible address +
29 * PGDIR_SIZE*16 (pgd slot 272). The gap is to allow a space for a
30 * hypervisor to fit. Choosing 16 slots here is arbitrary, but it's
31 * what Xen requires.
32 */
33#define __PAGE_OFFSET _AC(0xffff880000000000, UL)
34
35#define __PHYSICAL_START CONFIG_PHYSICAL_START
36#define __KERNEL_ALIGN 0x200000
37
38/*
39 * Make sure kernel is aligned to 2MB address. Catching it at compile
40 * time is better. Change your config file and compile the kernel
41 * for a 2MB aligned address (CONFIG_PHYSICAL_START)
42 */
43#if (CONFIG_PHYSICAL_START % __KERNEL_ALIGN) != 0
44#error "CONFIG_PHYSICAL_START must be a multiple of 2MB"
45#endif
46
47#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
48#define __START_KERNEL_map _AC(0xffffffff80000000, UL)
49
50/* See Documentation/x86_64/mm.txt for a description of the memory map. */
51#define __PHYSICAL_MASK_SHIFT 46
52#define __VIRTUAL_MASK_SHIFT 48
53
54/*
55 * Kernel image size is limited to 512 MB (see level2_kernel_pgt in
56 * arch/x86/kernel/head_64.S), and it is mapped here:
57 */
58#define KERNEL_IMAGE_SIZE (512 * 1024 * 1024)
59#define KERNEL_IMAGE_START _AC(0xffffffff80000000, UL)
60
61#ifndef __ASSEMBLY__
62void clear_page(void *page);
63void copy_page(void *to, void *from);
64
65/* duplicated to the one in bootmem.h */
66extern unsigned long max_pfn;
67extern unsigned long phys_base;
68
69extern unsigned long __phys_addr(unsigned long);
70#define __phys_reloc_hide(x) (x)
71
72#define vmemmap ((struct page *)VMEMMAP_START)
73
74extern unsigned long init_memory_mapping(unsigned long start,
75 unsigned long end);
76
77extern void initmem_init(unsigned long start_pfn, unsigned long end_pfn);
78extern void free_initmem(void);
79
80extern void init_extra_mapping_uc(unsigned long phys, unsigned long size);
81extern void init_extra_mapping_wb(unsigned long phys, unsigned long size);
82
83#endif /* !__ASSEMBLY__ */
84
85#ifdef CONFIG_FLATMEM
86#define pfn_valid(pfn) ((pfn) < max_pfn)
87#endif
88
89#endif /* _ASM_X86_PAGE_64_DEFS_H */
diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
new file mode 100644
index 000000000000..2d625da6603c
--- /dev/null
+++ b/arch/x86/include/asm/page_types.h
@@ -0,0 +1,57 @@
1#ifndef _ASM_X86_PAGE_DEFS_H
2#define _ASM_X86_PAGE_DEFS_H
3
4#include <linux/const.h>
5
6/* PAGE_SHIFT determines the page size */
7#define PAGE_SHIFT 12
8#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
9#define PAGE_MASK (~(PAGE_SIZE-1))
10
11#define __PHYSICAL_MASK ((phys_addr_t)(1ULL << __PHYSICAL_MASK_SHIFT) - 1)
12#define __VIRTUAL_MASK ((1UL << __VIRTUAL_MASK_SHIFT) - 1)
13
14/* Cast PAGE_MASK to a signed type so that it is sign-extended if
15 virtual addresses are 32-bits but physical addresses are larger
16 (ie, 32-bit PAE). */
17#define PHYSICAL_PAGE_MASK (((signed long)PAGE_MASK) & __PHYSICAL_MASK)
18
19#define PMD_PAGE_SIZE (_AC(1, UL) << PMD_SHIFT)
20#define PMD_PAGE_MASK (~(PMD_PAGE_SIZE-1))
21
22#define HPAGE_SHIFT PMD_SHIFT
23#define HPAGE_SIZE (_AC(1,UL) << HPAGE_SHIFT)
24#define HPAGE_MASK (~(HPAGE_SIZE - 1))
25#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
26
27#define HUGE_MAX_HSTATE 2
28
29#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
30
31#define VM_DATA_DEFAULT_FLAGS \
32 (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \
33 VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
34
35#ifdef CONFIG_X86_64
36#include <asm/page_64_types.h>
37#else
38#include <asm/page_32_types.h>
39#endif /* CONFIG_X86_64 */
40
41#ifndef __ASSEMBLY__
42
43struct pgprot;
44
45extern int page_is_ram(unsigned long pagenr);
46extern int devmem_is_allowed(unsigned long pagenr);
47extern void map_devmem(unsigned long pfn, unsigned long size,
48 struct pgprot vma_prot);
49extern void unmap_devmem(unsigned long pfn, unsigned long size,
50 struct pgprot vma_prot);
51
52extern unsigned long max_low_pfn_mapped;
53extern unsigned long max_pfn_mapped;
54
55#endif /* !__ASSEMBLY__ */
56
57#endif /* _ASM_X86_PAGE_DEFS_H */
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index ba3e2ff6aedc..0617d5cc9712 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -4,7 +4,7 @@
4 * para-virtualization: those hooks are defined here. */ 4 * para-virtualization: those hooks are defined here. */
5 5
6#ifdef CONFIG_PARAVIRT 6#ifdef CONFIG_PARAVIRT
7#include <asm/page.h> 7#include <asm/pgtable_types.h>
8#include <asm/asm.h> 8#include <asm/asm.h>
9 9
10/* Bitmask of what can be clobbered: usually at least eax. */ 10/* Bitmask of what can be clobbered: usually at least eax. */
@@ -12,21 +12,38 @@
12#define CLBR_EAX (1 << 0) 12#define CLBR_EAX (1 << 0)
13#define CLBR_ECX (1 << 1) 13#define CLBR_ECX (1 << 1)
14#define CLBR_EDX (1 << 2) 14#define CLBR_EDX (1 << 2)
15#define CLBR_EDI (1 << 3)
15 16
16#ifdef CONFIG_X86_64 17#ifdef CONFIG_X86_32
17#define CLBR_RSI (1 << 3) 18/* CLBR_ANY should match all regs platform has. For i386, that's just it */
18#define CLBR_RDI (1 << 4) 19#define CLBR_ANY ((1 << 4) - 1)
20
21#define CLBR_ARG_REGS (CLBR_EAX | CLBR_EDX | CLBR_ECX)
22#define CLBR_RET_REG (CLBR_EAX | CLBR_EDX)
23#define CLBR_SCRATCH (0)
24#else
25#define CLBR_RAX CLBR_EAX
26#define CLBR_RCX CLBR_ECX
27#define CLBR_RDX CLBR_EDX
28#define CLBR_RDI CLBR_EDI
29#define CLBR_RSI (1 << 4)
19#define CLBR_R8 (1 << 5) 30#define CLBR_R8 (1 << 5)
20#define CLBR_R9 (1 << 6) 31#define CLBR_R9 (1 << 6)
21#define CLBR_R10 (1 << 7) 32#define CLBR_R10 (1 << 7)
22#define CLBR_R11 (1 << 8) 33#define CLBR_R11 (1 << 8)
34
23#define CLBR_ANY ((1 << 9) - 1) 35#define CLBR_ANY ((1 << 9) - 1)
36
37#define CLBR_ARG_REGS (CLBR_RDI | CLBR_RSI | CLBR_RDX | \
38 CLBR_RCX | CLBR_R8 | CLBR_R9)
39#define CLBR_RET_REG (CLBR_RAX)
40#define CLBR_SCRATCH (CLBR_R10 | CLBR_R11)
41
24#include <asm/desc_defs.h> 42#include <asm/desc_defs.h>
25#else
26/* CLBR_ANY should match all regs platform has. For i386, that's just it */
27#define CLBR_ANY ((1 << 3) - 1)
28#endif /* X86_64 */ 43#endif /* X86_64 */
29 44
45#define CLBR_CALLEE_SAVE ((CLBR_ARG_REGS | CLBR_SCRATCH) & ~CLBR_RET_REG)
46
30#ifndef __ASSEMBLY__ 47#ifndef __ASSEMBLY__
31#include <linux/types.h> 48#include <linux/types.h>
32#include <linux/cpumask.h> 49#include <linux/cpumask.h>
@@ -40,6 +57,14 @@ struct tss_struct;
40struct mm_struct; 57struct mm_struct;
41struct desc_struct; 58struct desc_struct;
42 59
60/*
61 * Wrapper type for pointers to code which uses the non-standard
62 * calling convention. See PV_CALL_SAVE_REGS_THUNK below.
63 */
64struct paravirt_callee_save {
65 void *func;
66};
67
43/* general info */ 68/* general info */
44struct pv_info { 69struct pv_info {
45 unsigned int kernel_rpl; 70 unsigned int kernel_rpl;
@@ -189,11 +214,15 @@ struct pv_irq_ops {
189 * expected to use X86_EFLAGS_IF; all other bits 214 * expected to use X86_EFLAGS_IF; all other bits
190 * returned from save_fl are undefined, and may be ignored by 215 * returned from save_fl are undefined, and may be ignored by
191 * restore_fl. 216 * restore_fl.
217 *
218 * NOTE: These functions callers expect the callee to preserve
219 * more registers than the standard C calling convention.
192 */ 220 */
193 unsigned long (*save_fl)(void); 221 struct paravirt_callee_save save_fl;
194 void (*restore_fl)(unsigned long); 222 struct paravirt_callee_save restore_fl;
195 void (*irq_disable)(void); 223 struct paravirt_callee_save irq_disable;
196 void (*irq_enable)(void); 224 struct paravirt_callee_save irq_enable;
225
197 void (*safe_halt)(void); 226 void (*safe_halt)(void);
198 void (*halt)(void); 227 void (*halt)(void);
199 228
@@ -244,7 +273,8 @@ struct pv_mmu_ops {
244 void (*flush_tlb_user)(void); 273 void (*flush_tlb_user)(void);
245 void (*flush_tlb_kernel)(void); 274 void (*flush_tlb_kernel)(void);
246 void (*flush_tlb_single)(unsigned long addr); 275 void (*flush_tlb_single)(unsigned long addr);
247 void (*flush_tlb_others)(const cpumask_t *cpus, struct mm_struct *mm, 276 void (*flush_tlb_others)(const struct cpumask *cpus,
277 struct mm_struct *mm,
248 unsigned long va); 278 unsigned long va);
249 279
250 /* Hooks for allocating and freeing a pagetable top-level */ 280 /* Hooks for allocating and freeing a pagetable top-level */
@@ -278,12 +308,11 @@ struct pv_mmu_ops {
278 void (*ptep_modify_prot_commit)(struct mm_struct *mm, unsigned long addr, 308 void (*ptep_modify_prot_commit)(struct mm_struct *mm, unsigned long addr,
279 pte_t *ptep, pte_t pte); 309 pte_t *ptep, pte_t pte);
280 310
281 pteval_t (*pte_val)(pte_t); 311 struct paravirt_callee_save pte_val;
282 pteval_t (*pte_flags)(pte_t); 312 struct paravirt_callee_save make_pte;
283 pte_t (*make_pte)(pteval_t pte);
284 313
285 pgdval_t (*pgd_val)(pgd_t); 314 struct paravirt_callee_save pgd_val;
286 pgd_t (*make_pgd)(pgdval_t pgd); 315 struct paravirt_callee_save make_pgd;
287 316
288#if PAGETABLE_LEVELS >= 3 317#if PAGETABLE_LEVELS >= 3
289#ifdef CONFIG_X86_PAE 318#ifdef CONFIG_X86_PAE
@@ -298,12 +327,12 @@ struct pv_mmu_ops {
298 327
299 void (*set_pud)(pud_t *pudp, pud_t pudval); 328 void (*set_pud)(pud_t *pudp, pud_t pudval);
300 329
301 pmdval_t (*pmd_val)(pmd_t); 330 struct paravirt_callee_save pmd_val;
302 pmd_t (*make_pmd)(pmdval_t pmd); 331 struct paravirt_callee_save make_pmd;
303 332
304#if PAGETABLE_LEVELS == 4 333#if PAGETABLE_LEVELS == 4
305 pudval_t (*pud_val)(pud_t); 334 struct paravirt_callee_save pud_val;
306 pud_t (*make_pud)(pudval_t pud); 335 struct paravirt_callee_save make_pud;
307 336
308 void (*set_pgd)(pgd_t *pudp, pgd_t pgdval); 337 void (*set_pgd)(pgd_t *pudp, pgd_t pgdval);
309#endif /* PAGETABLE_LEVELS == 4 */ 338#endif /* PAGETABLE_LEVELS == 4 */
@@ -388,6 +417,8 @@ extern struct pv_lock_ops pv_lock_ops;
388 asm("start_" #ops "_" #name ": " code "; end_" #ops "_" #name ":") 417 asm("start_" #ops "_" #name ": " code "; end_" #ops "_" #name ":")
389 418
390unsigned paravirt_patch_nop(void); 419unsigned paravirt_patch_nop(void);
420unsigned paravirt_patch_ident_32(void *insnbuf, unsigned len);
421unsigned paravirt_patch_ident_64(void *insnbuf, unsigned len);
391unsigned paravirt_patch_ignore(unsigned len); 422unsigned paravirt_patch_ignore(unsigned len);
392unsigned paravirt_patch_call(void *insnbuf, 423unsigned paravirt_patch_call(void *insnbuf,
393 const void *target, u16 tgt_clobbers, 424 const void *target, u16 tgt_clobbers,
@@ -479,25 +510,45 @@ int paravirt_disable_iospace(void);
479 * makes sure the incoming and outgoing types are always correct. 510 * makes sure the incoming and outgoing types are always correct.
480 */ 511 */
481#ifdef CONFIG_X86_32 512#ifdef CONFIG_X86_32
482#define PVOP_VCALL_ARGS unsigned long __eax, __edx, __ecx 513#define PVOP_VCALL_ARGS \
514 unsigned long __eax = __eax, __edx = __edx, __ecx = __ecx
483#define PVOP_CALL_ARGS PVOP_VCALL_ARGS 515#define PVOP_CALL_ARGS PVOP_VCALL_ARGS
516
517#define PVOP_CALL_ARG1(x) "a" ((unsigned long)(x))
518#define PVOP_CALL_ARG2(x) "d" ((unsigned long)(x))
519#define PVOP_CALL_ARG3(x) "c" ((unsigned long)(x))
520
484#define PVOP_VCALL_CLOBBERS "=a" (__eax), "=d" (__edx), \ 521#define PVOP_VCALL_CLOBBERS "=a" (__eax), "=d" (__edx), \
485 "=c" (__ecx) 522 "=c" (__ecx)
486#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS 523#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS
524
525#define PVOP_VCALLEE_CLOBBERS "=a" (__eax), "=d" (__edx)
526#define PVOP_CALLEE_CLOBBERS PVOP_VCALLEE_CLOBBERS
527
487#define EXTRA_CLOBBERS 528#define EXTRA_CLOBBERS
488#define VEXTRA_CLOBBERS 529#define VEXTRA_CLOBBERS
489#else 530#else /* CONFIG_X86_64 */
490#define PVOP_VCALL_ARGS unsigned long __edi, __esi, __edx, __ecx 531#define PVOP_VCALL_ARGS \
532 unsigned long __edi = __edi, __esi = __esi, \
533 __edx = __edx, __ecx = __ecx
491#define PVOP_CALL_ARGS PVOP_VCALL_ARGS, __eax 534#define PVOP_CALL_ARGS PVOP_VCALL_ARGS, __eax
535
536#define PVOP_CALL_ARG1(x) "D" ((unsigned long)(x))
537#define PVOP_CALL_ARG2(x) "S" ((unsigned long)(x))
538#define PVOP_CALL_ARG3(x) "d" ((unsigned long)(x))
539#define PVOP_CALL_ARG4(x) "c" ((unsigned long)(x))
540
492#define PVOP_VCALL_CLOBBERS "=D" (__edi), \ 541#define PVOP_VCALL_CLOBBERS "=D" (__edi), \
493 "=S" (__esi), "=d" (__edx), \ 542 "=S" (__esi), "=d" (__edx), \
494 "=c" (__ecx) 543 "=c" (__ecx)
495
496#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS, "=a" (__eax) 544#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS, "=a" (__eax)
497 545
546#define PVOP_VCALLEE_CLOBBERS "=a" (__eax)
547#define PVOP_CALLEE_CLOBBERS PVOP_VCALLEE_CLOBBERS
548
498#define EXTRA_CLOBBERS , "r8", "r9", "r10", "r11" 549#define EXTRA_CLOBBERS , "r8", "r9", "r10", "r11"
499#define VEXTRA_CLOBBERS , "rax", "r8", "r9", "r10", "r11" 550#define VEXTRA_CLOBBERS , "rax", "r8", "r9", "r10", "r11"
500#endif 551#endif /* CONFIG_X86_32 */
501 552
502#ifdef CONFIG_PARAVIRT_DEBUG 553#ifdef CONFIG_PARAVIRT_DEBUG
503#define PVOP_TEST_NULL(op) BUG_ON(op == NULL) 554#define PVOP_TEST_NULL(op) BUG_ON(op == NULL)
@@ -505,10 +556,11 @@ int paravirt_disable_iospace(void);
505#define PVOP_TEST_NULL(op) ((void)op) 556#define PVOP_TEST_NULL(op) ((void)op)
506#endif 557#endif
507 558
508#define __PVOP_CALL(rettype, op, pre, post, ...) \ 559#define ____PVOP_CALL(rettype, op, clbr, call_clbr, extra_clbr, \
560 pre, post, ...) \
509 ({ \ 561 ({ \
510 rettype __ret; \ 562 rettype __ret; \
511 PVOP_CALL_ARGS; \ 563 PVOP_CALL_ARGS; \
512 PVOP_TEST_NULL(op); \ 564 PVOP_TEST_NULL(op); \
513 /* This is 32-bit specific, but is okay in 64-bit */ \ 565 /* This is 32-bit specific, but is okay in 64-bit */ \
514 /* since this condition will never hold */ \ 566 /* since this condition will never hold */ \
@@ -516,70 +568,113 @@ int paravirt_disable_iospace(void);
516 asm volatile(pre \ 568 asm volatile(pre \
517 paravirt_alt(PARAVIRT_CALL) \ 569 paravirt_alt(PARAVIRT_CALL) \
518 post \ 570 post \
519 : PVOP_CALL_CLOBBERS \ 571 : call_clbr \
520 : paravirt_type(op), \ 572 : paravirt_type(op), \
521 paravirt_clobber(CLBR_ANY), \ 573 paravirt_clobber(clbr), \
522 ##__VA_ARGS__ \ 574 ##__VA_ARGS__ \
523 : "memory", "cc" EXTRA_CLOBBERS); \ 575 : "memory", "cc" extra_clbr); \
524 __ret = (rettype)((((u64)__edx) << 32) | __eax); \ 576 __ret = (rettype)((((u64)__edx) << 32) | __eax); \
525 } else { \ 577 } else { \
526 asm volatile(pre \ 578 asm volatile(pre \
527 paravirt_alt(PARAVIRT_CALL) \ 579 paravirt_alt(PARAVIRT_CALL) \
528 post \ 580 post \
529 : PVOP_CALL_CLOBBERS \ 581 : call_clbr \
530 : paravirt_type(op), \ 582 : paravirt_type(op), \
531 paravirt_clobber(CLBR_ANY), \ 583 paravirt_clobber(clbr), \
532 ##__VA_ARGS__ \ 584 ##__VA_ARGS__ \
533 : "memory", "cc" EXTRA_CLOBBERS); \ 585 : "memory", "cc" extra_clbr); \
534 __ret = (rettype)__eax; \ 586 __ret = (rettype)__eax; \
535 } \ 587 } \
536 __ret; \ 588 __ret; \
537 }) 589 })
538#define __PVOP_VCALL(op, pre, post, ...) \ 590
591#define __PVOP_CALL(rettype, op, pre, post, ...) \
592 ____PVOP_CALL(rettype, op, CLBR_ANY, PVOP_CALL_CLOBBERS, \
593 EXTRA_CLOBBERS, pre, post, ##__VA_ARGS__)
594
595#define __PVOP_CALLEESAVE(rettype, op, pre, post, ...) \
596 ____PVOP_CALL(rettype, op.func, CLBR_RET_REG, \
597 PVOP_CALLEE_CLOBBERS, , \
598 pre, post, ##__VA_ARGS__)
599
600
601#define ____PVOP_VCALL(op, clbr, call_clbr, extra_clbr, pre, post, ...) \
539 ({ \ 602 ({ \
540 PVOP_VCALL_ARGS; \ 603 PVOP_VCALL_ARGS; \
541 PVOP_TEST_NULL(op); \ 604 PVOP_TEST_NULL(op); \
542 asm volatile(pre \ 605 asm volatile(pre \
543 paravirt_alt(PARAVIRT_CALL) \ 606 paravirt_alt(PARAVIRT_CALL) \
544 post \ 607 post \
545 : PVOP_VCALL_CLOBBERS \ 608 : call_clbr \
546 : paravirt_type(op), \ 609 : paravirt_type(op), \
547 paravirt_clobber(CLBR_ANY), \ 610 paravirt_clobber(clbr), \
548 ##__VA_ARGS__ \ 611 ##__VA_ARGS__ \
549 : "memory", "cc" VEXTRA_CLOBBERS); \ 612 : "memory", "cc" extra_clbr); \
550 }) 613 })
551 614
615#define __PVOP_VCALL(op, pre, post, ...) \
616 ____PVOP_VCALL(op, CLBR_ANY, PVOP_VCALL_CLOBBERS, \
617 VEXTRA_CLOBBERS, \
618 pre, post, ##__VA_ARGS__)
619
620#define __PVOP_VCALLEESAVE(rettype, op, pre, post, ...) \
621 ____PVOP_CALL(rettype, op.func, CLBR_RET_REG, \
622 PVOP_VCALLEE_CLOBBERS, , \
623 pre, post, ##__VA_ARGS__)
624
625
626
552#define PVOP_CALL0(rettype, op) \ 627#define PVOP_CALL0(rettype, op) \
553 __PVOP_CALL(rettype, op, "", "") 628 __PVOP_CALL(rettype, op, "", "")
554#define PVOP_VCALL0(op) \ 629#define PVOP_VCALL0(op) \
555 __PVOP_VCALL(op, "", "") 630 __PVOP_VCALL(op, "", "")
556 631
632#define PVOP_CALLEE0(rettype, op) \
633 __PVOP_CALLEESAVE(rettype, op, "", "")
634#define PVOP_VCALLEE0(op) \
635 __PVOP_VCALLEESAVE(op, "", "")
636
637
557#define PVOP_CALL1(rettype, op, arg1) \ 638#define PVOP_CALL1(rettype, op, arg1) \
558 __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1))) 639 __PVOP_CALL(rettype, op, "", "", PVOP_CALL_ARG1(arg1))
559#define PVOP_VCALL1(op, arg1) \ 640#define PVOP_VCALL1(op, arg1) \
560 __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1))) 641 __PVOP_VCALL(op, "", "", PVOP_CALL_ARG1(arg1))
642
643#define PVOP_CALLEE1(rettype, op, arg1) \
644 __PVOP_CALLEESAVE(rettype, op, "", "", PVOP_CALL_ARG1(arg1))
645#define PVOP_VCALLEE1(op, arg1) \
646 __PVOP_VCALLEESAVE(op, "", "", PVOP_CALL_ARG1(arg1))
647
561 648
562#define PVOP_CALL2(rettype, op, arg1, arg2) \ 649#define PVOP_CALL2(rettype, op, arg1, arg2) \
563 __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1)), \ 650 __PVOP_CALL(rettype, op, "", "", PVOP_CALL_ARG1(arg1), \
564 "1" ((unsigned long)(arg2))) 651 PVOP_CALL_ARG2(arg2))
565#define PVOP_VCALL2(op, arg1, arg2) \ 652#define PVOP_VCALL2(op, arg1, arg2) \
566 __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1)), \ 653 __PVOP_VCALL(op, "", "", PVOP_CALL_ARG1(arg1), \
567 "1" ((unsigned long)(arg2))) 654 PVOP_CALL_ARG2(arg2))
655
656#define PVOP_CALLEE2(rettype, op, arg1, arg2) \
657 __PVOP_CALLEESAVE(rettype, op, "", "", PVOP_CALL_ARG1(arg1), \
658 PVOP_CALL_ARG2(arg2))
659#define PVOP_VCALLEE2(op, arg1, arg2) \
660 __PVOP_VCALLEESAVE(op, "", "", PVOP_CALL_ARG1(arg1), \
661 PVOP_CALL_ARG2(arg2))
662
568 663
569#define PVOP_CALL3(rettype, op, arg1, arg2, arg3) \ 664#define PVOP_CALL3(rettype, op, arg1, arg2, arg3) \
570 __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1)), \ 665 __PVOP_CALL(rettype, op, "", "", PVOP_CALL_ARG1(arg1), \
571 "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3))) 666 PVOP_CALL_ARG2(arg2), PVOP_CALL_ARG3(arg3))
572#define PVOP_VCALL3(op, arg1, arg2, arg3) \ 667#define PVOP_VCALL3(op, arg1, arg2, arg3) \
573 __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1)), \ 668 __PVOP_VCALL(op, "", "", PVOP_CALL_ARG1(arg1), \
574 "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3))) 669 PVOP_CALL_ARG2(arg2), PVOP_CALL_ARG3(arg3))
575 670
576/* This is the only difference in x86_64. We can make it much simpler */ 671/* This is the only difference in x86_64. We can make it much simpler */
577#ifdef CONFIG_X86_32 672#ifdef CONFIG_X86_32
578#define PVOP_CALL4(rettype, op, arg1, arg2, arg3, arg4) \ 673#define PVOP_CALL4(rettype, op, arg1, arg2, arg3, arg4) \
579 __PVOP_CALL(rettype, op, \ 674 __PVOP_CALL(rettype, op, \
580 "push %[_arg4];", "lea 4(%%esp),%%esp;", \ 675 "push %[_arg4];", "lea 4(%%esp),%%esp;", \
581 "0" ((u32)(arg1)), "1" ((u32)(arg2)), \ 676 PVOP_CALL_ARG1(arg1), PVOP_CALL_ARG2(arg2), \
582 "2" ((u32)(arg3)), [_arg4] "mr" ((u32)(arg4))) 677 PVOP_CALL_ARG3(arg3), [_arg4] "mr" ((u32)(arg4)))
583#define PVOP_VCALL4(op, arg1, arg2, arg3, arg4) \ 678#define PVOP_VCALL4(op, arg1, arg2, arg3, arg4) \
584 __PVOP_VCALL(op, \ 679 __PVOP_VCALL(op, \
585 "push %[_arg4];", "lea 4(%%esp),%%esp;", \ 680 "push %[_arg4];", "lea 4(%%esp),%%esp;", \
@@ -587,13 +682,13 @@ int paravirt_disable_iospace(void);
587 "2" ((u32)(arg3)), [_arg4] "mr" ((u32)(arg4))) 682 "2" ((u32)(arg3)), [_arg4] "mr" ((u32)(arg4)))
588#else 683#else
589#define PVOP_CALL4(rettype, op, arg1, arg2, arg3, arg4) \ 684#define PVOP_CALL4(rettype, op, arg1, arg2, arg3, arg4) \
590 __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1)), \ 685 __PVOP_CALL(rettype, op, "", "", \
591 "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3)), \ 686 PVOP_CALL_ARG1(arg1), PVOP_CALL_ARG2(arg2), \
592 "3"((unsigned long)(arg4))) 687 PVOP_CALL_ARG3(arg3), PVOP_CALL_ARG4(arg4))
593#define PVOP_VCALL4(op, arg1, arg2, arg3, arg4) \ 688#define PVOP_VCALL4(op, arg1, arg2, arg3, arg4) \
594 __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1)), \ 689 __PVOP_VCALL(op, "", "", \
595 "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3)), \ 690 PVOP_CALL_ARG1(arg1), PVOP_CALL_ARG2(arg2), \
596 "3"((unsigned long)(arg4))) 691 PVOP_CALL_ARG3(arg3), PVOP_CALL_ARG4(arg4))
597#endif 692#endif
598 693
599static inline int paravirt_enabled(void) 694static inline int paravirt_enabled(void)
@@ -984,10 +1079,11 @@ static inline void __flush_tlb_single(unsigned long addr)
984 PVOP_VCALL1(pv_mmu_ops.flush_tlb_single, addr); 1079 PVOP_VCALL1(pv_mmu_ops.flush_tlb_single, addr);
985} 1080}
986 1081
987static inline void flush_tlb_others(cpumask_t cpumask, struct mm_struct *mm, 1082static inline void flush_tlb_others(const struct cpumask *cpumask,
1083 struct mm_struct *mm,
988 unsigned long va) 1084 unsigned long va)
989{ 1085{
990 PVOP_VCALL3(pv_mmu_ops.flush_tlb_others, &cpumask, mm, va); 1086 PVOP_VCALL3(pv_mmu_ops.flush_tlb_others, cpumask, mm, va);
991} 1087}
992 1088
993static inline int paravirt_pgd_alloc(struct mm_struct *mm) 1089static inline int paravirt_pgd_alloc(struct mm_struct *mm)
@@ -1059,13 +1155,13 @@ static inline pte_t __pte(pteval_t val)
1059 pteval_t ret; 1155 pteval_t ret;
1060 1156
1061 if (sizeof(pteval_t) > sizeof(long)) 1157 if (sizeof(pteval_t) > sizeof(long))
1062 ret = PVOP_CALL2(pteval_t, 1158 ret = PVOP_CALLEE2(pteval_t,
1063 pv_mmu_ops.make_pte, 1159 pv_mmu_ops.make_pte,
1064 val, (u64)val >> 32); 1160 val, (u64)val >> 32);
1065 else 1161 else
1066 ret = PVOP_CALL1(pteval_t, 1162 ret = PVOP_CALLEE1(pteval_t,
1067 pv_mmu_ops.make_pte, 1163 pv_mmu_ops.make_pte,
1068 val); 1164 val);
1069 1165
1070 return (pte_t) { .pte = ret }; 1166 return (pte_t) { .pte = ret };
1071} 1167}
@@ -1075,29 +1171,12 @@ static inline pteval_t pte_val(pte_t pte)
1075 pteval_t ret; 1171 pteval_t ret;
1076 1172
1077 if (sizeof(pteval_t) > sizeof(long)) 1173 if (sizeof(pteval_t) > sizeof(long))
1078 ret = PVOP_CALL2(pteval_t, pv_mmu_ops.pte_val, 1174 ret = PVOP_CALLEE2(pteval_t, pv_mmu_ops.pte_val,
1079 pte.pte, (u64)pte.pte >> 32); 1175 pte.pte, (u64)pte.pte >> 32);
1080 else
1081 ret = PVOP_CALL1(pteval_t, pv_mmu_ops.pte_val,
1082 pte.pte);
1083
1084 return ret;
1085}
1086
1087static inline pteval_t pte_flags(pte_t pte)
1088{
1089 pteval_t ret;
1090
1091 if (sizeof(pteval_t) > sizeof(long))
1092 ret = PVOP_CALL2(pteval_t, pv_mmu_ops.pte_flags,
1093 pte.pte, (u64)pte.pte >> 32);
1094 else 1176 else
1095 ret = PVOP_CALL1(pteval_t, pv_mmu_ops.pte_flags, 1177 ret = PVOP_CALLEE1(pteval_t, pv_mmu_ops.pte_val,
1096 pte.pte); 1178 pte.pte);
1097 1179
1098#ifdef CONFIG_PARAVIRT_DEBUG
1099 BUG_ON(ret & PTE_PFN_MASK);
1100#endif
1101 return ret; 1180 return ret;
1102} 1181}
1103 1182
@@ -1106,11 +1185,11 @@ static inline pgd_t __pgd(pgdval_t val)
1106 pgdval_t ret; 1185 pgdval_t ret;
1107 1186
1108 if (sizeof(pgdval_t) > sizeof(long)) 1187 if (sizeof(pgdval_t) > sizeof(long))
1109 ret = PVOP_CALL2(pgdval_t, pv_mmu_ops.make_pgd, 1188 ret = PVOP_CALLEE2(pgdval_t, pv_mmu_ops.make_pgd,
1110 val, (u64)val >> 32); 1189 val, (u64)val >> 32);
1111 else 1190 else
1112 ret = PVOP_CALL1(pgdval_t, pv_mmu_ops.make_pgd, 1191 ret = PVOP_CALLEE1(pgdval_t, pv_mmu_ops.make_pgd,
1113 val); 1192 val);
1114 1193
1115 return (pgd_t) { ret }; 1194 return (pgd_t) { ret };
1116} 1195}
@@ -1120,11 +1199,11 @@ static inline pgdval_t pgd_val(pgd_t pgd)
1120 pgdval_t ret; 1199 pgdval_t ret;
1121 1200
1122 if (sizeof(pgdval_t) > sizeof(long)) 1201 if (sizeof(pgdval_t) > sizeof(long))
1123 ret = PVOP_CALL2(pgdval_t, pv_mmu_ops.pgd_val, 1202 ret = PVOP_CALLEE2(pgdval_t, pv_mmu_ops.pgd_val,
1124 pgd.pgd, (u64)pgd.pgd >> 32); 1203 pgd.pgd, (u64)pgd.pgd >> 32);
1125 else 1204 else
1126 ret = PVOP_CALL1(pgdval_t, pv_mmu_ops.pgd_val, 1205 ret = PVOP_CALLEE1(pgdval_t, pv_mmu_ops.pgd_val,
1127 pgd.pgd); 1206 pgd.pgd);
1128 1207
1129 return ret; 1208 return ret;
1130} 1209}
@@ -1188,11 +1267,11 @@ static inline pmd_t __pmd(pmdval_t val)
1188 pmdval_t ret; 1267 pmdval_t ret;
1189 1268
1190 if (sizeof(pmdval_t) > sizeof(long)) 1269 if (sizeof(pmdval_t) > sizeof(long))
1191 ret = PVOP_CALL2(pmdval_t, pv_mmu_ops.make_pmd, 1270 ret = PVOP_CALLEE2(pmdval_t, pv_mmu_ops.make_pmd,
1192 val, (u64)val >> 32); 1271 val, (u64)val >> 32);
1193 else 1272 else
1194 ret = PVOP_CALL1(pmdval_t, pv_mmu_ops.make_pmd, 1273 ret = PVOP_CALLEE1(pmdval_t, pv_mmu_ops.make_pmd,
1195 val); 1274 val);
1196 1275
1197 return (pmd_t) { ret }; 1276 return (pmd_t) { ret };
1198} 1277}
@@ -1202,11 +1281,11 @@ static inline pmdval_t pmd_val(pmd_t pmd)
1202 pmdval_t ret; 1281 pmdval_t ret;
1203 1282
1204 if (sizeof(pmdval_t) > sizeof(long)) 1283 if (sizeof(pmdval_t) > sizeof(long))
1205 ret = PVOP_CALL2(pmdval_t, pv_mmu_ops.pmd_val, 1284 ret = PVOP_CALLEE2(pmdval_t, pv_mmu_ops.pmd_val,
1206 pmd.pmd, (u64)pmd.pmd >> 32); 1285 pmd.pmd, (u64)pmd.pmd >> 32);
1207 else 1286 else
1208 ret = PVOP_CALL1(pmdval_t, pv_mmu_ops.pmd_val, 1287 ret = PVOP_CALLEE1(pmdval_t, pv_mmu_ops.pmd_val,
1209 pmd.pmd); 1288 pmd.pmd);
1210 1289
1211 return ret; 1290 return ret;
1212} 1291}
@@ -1228,11 +1307,11 @@ static inline pud_t __pud(pudval_t val)
1228 pudval_t ret; 1307 pudval_t ret;
1229 1308
1230 if (sizeof(pudval_t) > sizeof(long)) 1309 if (sizeof(pudval_t) > sizeof(long))
1231 ret = PVOP_CALL2(pudval_t, pv_mmu_ops.make_pud, 1310 ret = PVOP_CALLEE2(pudval_t, pv_mmu_ops.make_pud,
1232 val, (u64)val >> 32); 1311 val, (u64)val >> 32);
1233 else 1312 else
1234 ret = PVOP_CALL1(pudval_t, pv_mmu_ops.make_pud, 1313 ret = PVOP_CALLEE1(pudval_t, pv_mmu_ops.make_pud,
1235 val); 1314 val);
1236 1315
1237 return (pud_t) { ret }; 1316 return (pud_t) { ret };
1238} 1317}
@@ -1242,11 +1321,11 @@ static inline pudval_t pud_val(pud_t pud)
1242 pudval_t ret; 1321 pudval_t ret;
1243 1322
1244 if (sizeof(pudval_t) > sizeof(long)) 1323 if (sizeof(pudval_t) > sizeof(long))
1245 ret = PVOP_CALL2(pudval_t, pv_mmu_ops.pud_val, 1324 ret = PVOP_CALLEE2(pudval_t, pv_mmu_ops.pud_val,
1246 pud.pud, (u64)pud.pud >> 32); 1325 pud.pud, (u64)pud.pud >> 32);
1247 else 1326 else
1248 ret = PVOP_CALL1(pudval_t, pv_mmu_ops.pud_val, 1327 ret = PVOP_CALLEE1(pudval_t, pv_mmu_ops.pud_val,
1249 pud.pud); 1328 pud.pud);
1250 1329
1251 return ret; 1330 return ret;
1252} 1331}
@@ -1352,14 +1431,7 @@ static inline void arch_leave_lazy_cpu_mode(void)
1352 PVOP_VCALL0(pv_cpu_ops.lazy_mode.leave); 1431 PVOP_VCALL0(pv_cpu_ops.lazy_mode.leave);
1353} 1432}
1354 1433
1355static inline void arch_flush_lazy_cpu_mode(void) 1434void arch_flush_lazy_cpu_mode(void);
1356{
1357 if (unlikely(paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU)) {
1358 arch_leave_lazy_cpu_mode();
1359 arch_enter_lazy_cpu_mode();
1360 }
1361}
1362
1363 1435
1364#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE 1436#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
1365static inline void arch_enter_lazy_mmu_mode(void) 1437static inline void arch_enter_lazy_mmu_mode(void)
@@ -1372,13 +1444,7 @@ static inline void arch_leave_lazy_mmu_mode(void)
1372 PVOP_VCALL0(pv_mmu_ops.lazy_mode.leave); 1444 PVOP_VCALL0(pv_mmu_ops.lazy_mode.leave);
1373} 1445}
1374 1446
1375static inline void arch_flush_lazy_mmu_mode(void) 1447void arch_flush_lazy_mmu_mode(void);
1376{
1377 if (unlikely(paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU)) {
1378 arch_leave_lazy_mmu_mode();
1379 arch_enter_lazy_mmu_mode();
1380 }
1381}
1382 1448
1383static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx, 1449static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
1384 unsigned long phys, pgprot_t flags) 1450 unsigned long phys, pgprot_t flags)
@@ -1387,9 +1453,10 @@ static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
1387} 1453}
1388 1454
1389void _paravirt_nop(void); 1455void _paravirt_nop(void);
1390#define paravirt_nop ((void *)_paravirt_nop) 1456u32 _paravirt_ident_32(u32);
1457u64 _paravirt_ident_64(u64);
1391 1458
1392void paravirt_use_bytelocks(void); 1459#define paravirt_nop ((void *)_paravirt_nop)
1393 1460
1394#ifdef CONFIG_SMP 1461#ifdef CONFIG_SMP
1395 1462
@@ -1402,6 +1469,7 @@ static inline int __raw_spin_is_contended(struct raw_spinlock *lock)
1402{ 1469{
1403 return PVOP_CALL1(int, pv_lock_ops.spin_is_contended, lock); 1470 return PVOP_CALL1(int, pv_lock_ops.spin_is_contended, lock);
1404} 1471}
1472#define __raw_spin_is_contended __raw_spin_is_contended
1405 1473
1406static __always_inline void __raw_spin_lock(struct raw_spinlock *lock) 1474static __always_inline void __raw_spin_lock(struct raw_spinlock *lock)
1407{ 1475{
@@ -1438,12 +1506,37 @@ extern struct paravirt_patch_site __parainstructions[],
1438 __parainstructions_end[]; 1506 __parainstructions_end[];
1439 1507
1440#ifdef CONFIG_X86_32 1508#ifdef CONFIG_X86_32
1441#define PV_SAVE_REGS "pushl %%ecx; pushl %%edx;" 1509#define PV_SAVE_REGS "pushl %ecx; pushl %edx;"
1442#define PV_RESTORE_REGS "popl %%edx; popl %%ecx" 1510#define PV_RESTORE_REGS "popl %edx; popl %ecx;"
1511
1512/* save and restore all caller-save registers, except return value */
1513#define PV_SAVE_ALL_CALLER_REGS "pushl %ecx;"
1514#define PV_RESTORE_ALL_CALLER_REGS "popl %ecx;"
1515
1443#define PV_FLAGS_ARG "0" 1516#define PV_FLAGS_ARG "0"
1444#define PV_EXTRA_CLOBBERS 1517#define PV_EXTRA_CLOBBERS
1445#define PV_VEXTRA_CLOBBERS 1518#define PV_VEXTRA_CLOBBERS
1446#else 1519#else
1520/* save and restore all caller-save registers, except return value */
1521#define PV_SAVE_ALL_CALLER_REGS \
1522 "push %rcx;" \
1523 "push %rdx;" \
1524 "push %rsi;" \
1525 "push %rdi;" \
1526 "push %r8;" \
1527 "push %r9;" \
1528 "push %r10;" \
1529 "push %r11;"
1530#define PV_RESTORE_ALL_CALLER_REGS \
1531 "pop %r11;" \
1532 "pop %r10;" \
1533 "pop %r9;" \
1534 "pop %r8;" \
1535 "pop %rdi;" \
1536 "pop %rsi;" \
1537 "pop %rdx;" \
1538 "pop %rcx;"
1539
1447/* We save some registers, but all of them, that's too much. We clobber all 1540/* We save some registers, but all of them, that's too much. We clobber all
1448 * caller saved registers but the argument parameter */ 1541 * caller saved registers but the argument parameter */
1449#define PV_SAVE_REGS "pushq %%rdi;" 1542#define PV_SAVE_REGS "pushq %%rdi;"
@@ -1453,52 +1546,76 @@ extern struct paravirt_patch_site __parainstructions[],
1453#define PV_FLAGS_ARG "D" 1546#define PV_FLAGS_ARG "D"
1454#endif 1547#endif
1455 1548
1549/*
1550 * Generate a thunk around a function which saves all caller-save
1551 * registers except for the return value. This allows C functions to
1552 * be called from assembler code where fewer than normal registers are
1553 * available. It may also help code generation around calls from C
1554 * code if the common case doesn't use many registers.
1555 *
1556 * When a callee is wrapped in a thunk, the caller can assume that all
1557 * arg regs and all scratch registers are preserved across the
1558 * call. The return value in rax/eax will not be saved, even for void
1559 * functions.
1560 */
1561#define PV_CALLEE_SAVE_REGS_THUNK(func) \
1562 extern typeof(func) __raw_callee_save_##func; \
1563 static void *__##func##__ __used = func; \
1564 \
1565 asm(".pushsection .text;" \
1566 "__raw_callee_save_" #func ": " \
1567 PV_SAVE_ALL_CALLER_REGS \
1568 "call " #func ";" \
1569 PV_RESTORE_ALL_CALLER_REGS \
1570 "ret;" \
1571 ".popsection")
1572
1573/* Get a reference to a callee-save function */
1574#define PV_CALLEE_SAVE(func) \
1575 ((struct paravirt_callee_save) { __raw_callee_save_##func })
1576
1577/* Promise that "func" already uses the right calling convention */
1578#define __PV_IS_CALLEE_SAVE(func) \
1579 ((struct paravirt_callee_save) { func })
1580
1456static inline unsigned long __raw_local_save_flags(void) 1581static inline unsigned long __raw_local_save_flags(void)
1457{ 1582{
1458 unsigned long f; 1583 unsigned long f;
1459 1584
1460 asm volatile(paravirt_alt(PV_SAVE_REGS 1585 asm volatile(paravirt_alt(PARAVIRT_CALL)
1461 PARAVIRT_CALL
1462 PV_RESTORE_REGS)
1463 : "=a"(f) 1586 : "=a"(f)
1464 : paravirt_type(pv_irq_ops.save_fl), 1587 : paravirt_type(pv_irq_ops.save_fl),
1465 paravirt_clobber(CLBR_EAX) 1588 paravirt_clobber(CLBR_EAX)
1466 : "memory", "cc" PV_VEXTRA_CLOBBERS); 1589 : "memory", "cc");
1467 return f; 1590 return f;
1468} 1591}
1469 1592
1470static inline void raw_local_irq_restore(unsigned long f) 1593static inline void raw_local_irq_restore(unsigned long f)
1471{ 1594{
1472 asm volatile(paravirt_alt(PV_SAVE_REGS 1595 asm volatile(paravirt_alt(PARAVIRT_CALL)
1473 PARAVIRT_CALL
1474 PV_RESTORE_REGS)
1475 : "=a"(f) 1596 : "=a"(f)
1476 : PV_FLAGS_ARG(f), 1597 : PV_FLAGS_ARG(f),
1477 paravirt_type(pv_irq_ops.restore_fl), 1598 paravirt_type(pv_irq_ops.restore_fl),
1478 paravirt_clobber(CLBR_EAX) 1599 paravirt_clobber(CLBR_EAX)
1479 : "memory", "cc" PV_EXTRA_CLOBBERS); 1600 : "memory", "cc");
1480} 1601}
1481 1602
1482static inline void raw_local_irq_disable(void) 1603static inline void raw_local_irq_disable(void)
1483{ 1604{
1484 asm volatile(paravirt_alt(PV_SAVE_REGS 1605 asm volatile(paravirt_alt(PARAVIRT_CALL)
1485 PARAVIRT_CALL
1486 PV_RESTORE_REGS)
1487 : 1606 :
1488 : paravirt_type(pv_irq_ops.irq_disable), 1607 : paravirt_type(pv_irq_ops.irq_disable),
1489 paravirt_clobber(CLBR_EAX) 1608 paravirt_clobber(CLBR_EAX)
1490 : "memory", "eax", "cc" PV_EXTRA_CLOBBERS); 1609 : "memory", "eax", "cc");
1491} 1610}
1492 1611
1493static inline void raw_local_irq_enable(void) 1612static inline void raw_local_irq_enable(void)
1494{ 1613{
1495 asm volatile(paravirt_alt(PV_SAVE_REGS 1614 asm volatile(paravirt_alt(PARAVIRT_CALL)
1496 PARAVIRT_CALL
1497 PV_RESTORE_REGS)
1498 : 1615 :
1499 : paravirt_type(pv_irq_ops.irq_enable), 1616 : paravirt_type(pv_irq_ops.irq_enable),
1500 paravirt_clobber(CLBR_EAX) 1617 paravirt_clobber(CLBR_EAX)
1501 : "memory", "eax", "cc" PV_EXTRA_CLOBBERS); 1618 : "memory", "eax", "cc");
1502} 1619}
1503 1620
1504static inline unsigned long __raw_local_irq_save(void) 1621static inline unsigned long __raw_local_irq_save(void)
@@ -1541,33 +1658,49 @@ static inline unsigned long __raw_local_irq_save(void)
1541 .popsection 1658 .popsection
1542 1659
1543 1660
1661#define COND_PUSH(set, mask, reg) \
1662 .if ((~(set)) & mask); push %reg; .endif
1663#define COND_POP(set, mask, reg) \
1664 .if ((~(set)) & mask); pop %reg; .endif
1665
1544#ifdef CONFIG_X86_64 1666#ifdef CONFIG_X86_64
1545#define PV_SAVE_REGS \ 1667
1546 push %rax; \ 1668#define PV_SAVE_REGS(set) \
1547 push %rcx; \ 1669 COND_PUSH(set, CLBR_RAX, rax); \
1548 push %rdx; \ 1670 COND_PUSH(set, CLBR_RCX, rcx); \
1549 push %rsi; \ 1671 COND_PUSH(set, CLBR_RDX, rdx); \
1550 push %rdi; \ 1672 COND_PUSH(set, CLBR_RSI, rsi); \
1551 push %r8; \ 1673 COND_PUSH(set, CLBR_RDI, rdi); \
1552 push %r9; \ 1674 COND_PUSH(set, CLBR_R8, r8); \
1553 push %r10; \ 1675 COND_PUSH(set, CLBR_R9, r9); \
1554 push %r11 1676 COND_PUSH(set, CLBR_R10, r10); \
1555#define PV_RESTORE_REGS \ 1677 COND_PUSH(set, CLBR_R11, r11)
1556 pop %r11; \ 1678#define PV_RESTORE_REGS(set) \
1557 pop %r10; \ 1679 COND_POP(set, CLBR_R11, r11); \
1558 pop %r9; \ 1680 COND_POP(set, CLBR_R10, r10); \
1559 pop %r8; \ 1681 COND_POP(set, CLBR_R9, r9); \
1560 pop %rdi; \ 1682 COND_POP(set, CLBR_R8, r8); \
1561 pop %rsi; \ 1683 COND_POP(set, CLBR_RDI, rdi); \
1562 pop %rdx; \ 1684 COND_POP(set, CLBR_RSI, rsi); \
1563 pop %rcx; \ 1685 COND_POP(set, CLBR_RDX, rdx); \
1564 pop %rax 1686 COND_POP(set, CLBR_RCX, rcx); \
1687 COND_POP(set, CLBR_RAX, rax)
1688
1565#define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 8) 1689#define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 8)
1566#define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .quad, 8) 1690#define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .quad, 8)
1567#define PARA_INDIRECT(addr) *addr(%rip) 1691#define PARA_INDIRECT(addr) *addr(%rip)
1568#else 1692#else
1569#define PV_SAVE_REGS pushl %eax; pushl %edi; pushl %ecx; pushl %edx 1693#define PV_SAVE_REGS(set) \
1570#define PV_RESTORE_REGS popl %edx; popl %ecx; popl %edi; popl %eax 1694 COND_PUSH(set, CLBR_EAX, eax); \
1695 COND_PUSH(set, CLBR_EDI, edi); \
1696 COND_PUSH(set, CLBR_ECX, ecx); \
1697 COND_PUSH(set, CLBR_EDX, edx)
1698#define PV_RESTORE_REGS(set) \
1699 COND_POP(set, CLBR_EDX, edx); \
1700 COND_POP(set, CLBR_ECX, ecx); \
1701 COND_POP(set, CLBR_EDI, edi); \
1702 COND_POP(set, CLBR_EAX, eax)
1703
1571#define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4) 1704#define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4)
1572#define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4) 1705#define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4)
1573#define PARA_INDIRECT(addr) *%cs:addr 1706#define PARA_INDIRECT(addr) *%cs:addr
@@ -1579,15 +1712,15 @@ static inline unsigned long __raw_local_irq_save(void)
1579 1712
1580#define DISABLE_INTERRUPTS(clobbers) \ 1713#define DISABLE_INTERRUPTS(clobbers) \
1581 PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_disable), clobbers, \ 1714 PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_disable), clobbers, \
1582 PV_SAVE_REGS; \ 1715 PV_SAVE_REGS(clobbers | CLBR_CALLEE_SAVE); \
1583 call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_disable); \ 1716 call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_disable); \
1584 PV_RESTORE_REGS;) \ 1717 PV_RESTORE_REGS(clobbers | CLBR_CALLEE_SAVE);)
1585 1718
1586#define ENABLE_INTERRUPTS(clobbers) \ 1719#define ENABLE_INTERRUPTS(clobbers) \
1587 PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_enable), clobbers, \ 1720 PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_enable), clobbers, \
1588 PV_SAVE_REGS; \ 1721 PV_SAVE_REGS(clobbers | CLBR_CALLEE_SAVE); \
1589 call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_enable); \ 1722 call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_enable); \
1590 PV_RESTORE_REGS;) 1723 PV_RESTORE_REGS(clobbers | CLBR_CALLEE_SAVE);)
1591 1724
1592#define USERGS_SYSRET32 \ 1725#define USERGS_SYSRET32 \
1593 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret32), \ 1726 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret32), \
@@ -1617,11 +1750,15 @@ static inline unsigned long __raw_local_irq_save(void)
1617 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_swapgs), CLBR_NONE, \ 1750 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_swapgs), CLBR_NONE, \
1618 swapgs) 1751 swapgs)
1619 1752
1753/*
1754 * Note: swapgs is very special, and in practise is either going to be
1755 * implemented with a single "swapgs" instruction or something very
1756 * special. Either way, we don't need to save any registers for
1757 * it.
1758 */
1620#define SWAPGS \ 1759#define SWAPGS \
1621 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_swapgs), CLBR_NONE, \ 1760 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_swapgs), CLBR_NONE, \
1622 PV_SAVE_REGS; \ 1761 call PARA_INDIRECT(pv_cpu_ops+PV_CPU_swapgs) \
1623 call PARA_INDIRECT(pv_cpu_ops+PV_CPU_swapgs); \
1624 PV_RESTORE_REGS \
1625 ) 1762 )
1626 1763
1627#define GET_CR2_INTO_RCX \ 1764#define GET_CR2_INTO_RCX \
diff --git a/arch/x86/include/asm/pat.h b/arch/x86/include/asm/pat.h
index b8493b3b9890..b0e70056838e 100644
--- a/arch/x86/include/asm/pat.h
+++ b/arch/x86/include/asm/pat.h
@@ -5,10 +5,8 @@
5 5
6#ifdef CONFIG_X86_PAT 6#ifdef CONFIG_X86_PAT
7extern int pat_enabled; 7extern int pat_enabled;
8extern void validate_pat_support(struct cpuinfo_x86 *c);
9#else 8#else
10static const int pat_enabled; 9static const int pat_enabled;
11static inline void validate_pat_support(struct cpuinfo_x86 *c) { }
12#endif 10#endif
13 11
14extern void pat_init(void); 12extern void pat_init(void);
@@ -17,6 +15,7 @@ extern int reserve_memtype(u64 start, u64 end,
17 unsigned long req_type, unsigned long *ret_type); 15 unsigned long req_type, unsigned long *ret_type);
18extern int free_memtype(u64 start, u64 end); 16extern int free_memtype(u64 start, u64 end);
19 17
20extern void pat_disable(char *reason); 18extern int kernel_map_sync_memtype(u64 base, unsigned long size,
19 unsigned long flag);
21 20
22#endif /* _ASM_X86_PAT_H */ 21#endif /* _ASM_X86_PAT_H */
diff --git a/arch/x86/include/asm/mach-default/pci-functions.h b/arch/x86/include/asm/pci-functions.h
index ed0bab427354..ed0bab427354 100644
--- a/arch/x86/include/asm/mach-default/pci-functions.h
+++ b/arch/x86/include/asm/pci-functions.h
diff --git a/arch/x86/include/asm/pda.h b/arch/x86/include/asm/pda.h
deleted file mode 100644
index 2fbfff88df37..000000000000
--- a/arch/x86/include/asm/pda.h
+++ /dev/null
@@ -1,137 +0,0 @@
1#ifndef _ASM_X86_PDA_H
2#define _ASM_X86_PDA_H
3
4#ifndef __ASSEMBLY__
5#include <linux/stddef.h>
6#include <linux/types.h>
7#include <linux/cache.h>
8#include <asm/page.h>
9
10/* Per processor datastructure. %gs points to it while the kernel runs */
11struct x8664_pda {
12 struct task_struct *pcurrent; /* 0 Current process */
13 unsigned long data_offset; /* 8 Per cpu data offset from linker
14 address */
15 unsigned long kernelstack; /* 16 top of kernel stack for current */
16 unsigned long oldrsp; /* 24 user rsp for system call */
17 int irqcount; /* 32 Irq nesting counter. Starts -1 */
18 unsigned int cpunumber; /* 36 Logical CPU number */
19#ifdef CONFIG_CC_STACKPROTECTOR
20 unsigned long stack_canary; /* 40 stack canary value */
21 /* gcc-ABI: this canary MUST be at
22 offset 40!!! */
23#endif
24 char *irqstackptr;
25 short nodenumber; /* number of current node (32k max) */
26 short in_bootmem; /* pda lives in bootmem */
27 unsigned int __softirq_pending;
28 unsigned int __nmi_count; /* number of NMI on this CPUs */
29 short mmu_state;
30 short isidle;
31 struct mm_struct *active_mm;
32 unsigned apic_timer_irqs;
33 unsigned irq0_irqs;
34 unsigned irq_resched_count;
35 unsigned irq_call_count;
36 unsigned irq_tlb_count;
37 unsigned irq_thermal_count;
38 unsigned irq_threshold_count;
39 unsigned irq_spurious_count;
40} ____cacheline_aligned_in_smp;
41
42extern struct x8664_pda **_cpu_pda;
43extern void pda_init(int);
44
45#define cpu_pda(i) (_cpu_pda[i])
46
47/*
48 * There is no fast way to get the base address of the PDA, all the accesses
49 * have to mention %fs/%gs. So it needs to be done this Torvaldian way.
50 */
51extern void __bad_pda_field(void) __attribute__((noreturn));
52
53/*
54 * proxy_pda doesn't actually exist, but tell gcc it is accessed for
55 * all PDA accesses so it gets read/write dependencies right.
56 */
57extern struct x8664_pda _proxy_pda;
58
59#define pda_offset(field) offsetof(struct x8664_pda, field)
60
61#define pda_to_op(op, field, val) \
62do { \
63 typedef typeof(_proxy_pda.field) T__; \
64 if (0) { T__ tmp__; tmp__ = (val); } /* type checking */ \
65 switch (sizeof(_proxy_pda.field)) { \
66 case 2: \
67 asm(op "w %1,%%gs:%c2" : \
68 "+m" (_proxy_pda.field) : \
69 "ri" ((T__)val), \
70 "i"(pda_offset(field))); \
71 break; \
72 case 4: \
73 asm(op "l %1,%%gs:%c2" : \
74 "+m" (_proxy_pda.field) : \
75 "ri" ((T__)val), \
76 "i" (pda_offset(field))); \
77 break; \
78 case 8: \
79 asm(op "q %1,%%gs:%c2": \
80 "+m" (_proxy_pda.field) : \
81 "ri" ((T__)val), \
82 "i"(pda_offset(field))); \
83 break; \
84 default: \
85 __bad_pda_field(); \
86 } \
87} while (0)
88
89#define pda_from_op(op, field) \
90({ \
91 typeof(_proxy_pda.field) ret__; \
92 switch (sizeof(_proxy_pda.field)) { \
93 case 2: \
94 asm(op "w %%gs:%c1,%0" : \
95 "=r" (ret__) : \
96 "i" (pda_offset(field)), \
97 "m" (_proxy_pda.field)); \
98 break; \
99 case 4: \
100 asm(op "l %%gs:%c1,%0": \
101 "=r" (ret__): \
102 "i" (pda_offset(field)), \
103 "m" (_proxy_pda.field)); \
104 break; \
105 case 8: \
106 asm(op "q %%gs:%c1,%0": \
107 "=r" (ret__) : \
108 "i" (pda_offset(field)), \
109 "m" (_proxy_pda.field)); \
110 break; \
111 default: \
112 __bad_pda_field(); \
113 } \
114 ret__; \
115})
116
117#define read_pda(field) pda_from_op("mov", field)
118#define write_pda(field, val) pda_to_op("mov", field, val)
119#define add_pda(field, val) pda_to_op("add", field, val)
120#define sub_pda(field, val) pda_to_op("sub", field, val)
121#define or_pda(field, val) pda_to_op("or", field, val)
122
123/* This is not atomic against other CPUs -- CPU preemption needs to be off */
124#define test_and_clear_bit_pda(bit, field) \
125({ \
126 int old__; \
127 asm volatile("btr %2,%%gs:%c3\n\tsbbl %0,%0" \
128 : "=r" (old__), "+m" (_proxy_pda.field) \
129 : "dIr" (bit), "i" (pda_offset(field)) : "memory");\
130 old__; \
131})
132
133#endif
134
135#define PDA_STACKOFFSET (5*8)
136
137#endif /* _ASM_X86_PDA_H */
diff --git a/arch/x86/include/asm/percpu.h b/arch/x86/include/asm/percpu.h
index ece72053ba63..aee103b26d01 100644
--- a/arch/x86/include/asm/percpu.h
+++ b/arch/x86/include/asm/percpu.h
@@ -2,53 +2,12 @@
2#define _ASM_X86_PERCPU_H 2#define _ASM_X86_PERCPU_H
3 3
4#ifdef CONFIG_X86_64 4#ifdef CONFIG_X86_64
5#include <linux/compiler.h> 5#define __percpu_seg gs
6 6#define __percpu_mov_op movq
7/* Same as asm-generic/percpu.h, except that we store the per cpu offset 7#else
8 in the PDA. Longer term the PDA and every per cpu variable 8#define __percpu_seg fs
9 should be just put into a single section and referenced directly 9#define __percpu_mov_op movl
10 from %gs */
11
12#ifdef CONFIG_SMP
13#include <asm/pda.h>
14
15#define __per_cpu_offset(cpu) (cpu_pda(cpu)->data_offset)
16#define __my_cpu_offset read_pda(data_offset)
17
18#define per_cpu_offset(x) (__per_cpu_offset(x))
19
20#endif 10#endif
21#include <asm-generic/percpu.h>
22
23DECLARE_PER_CPU(struct x8664_pda, pda);
24
25/*
26 * These are supposed to be implemented as a single instruction which
27 * operates on the per-cpu data base segment. x86-64 doesn't have
28 * that yet, so this is a fairly inefficient workaround for the
29 * meantime. The single instruction is atomic with respect to
30 * preemption and interrupts, so we need to explicitly disable
31 * interrupts here to achieve the same effect. However, because it
32 * can be used from within interrupt-disable/enable, we can't actually
33 * disable interrupts; disabling preemption is enough.
34 */
35#define x86_read_percpu(var) \
36 ({ \
37 typeof(per_cpu_var(var)) __tmp; \
38 preempt_disable(); \
39 __tmp = __get_cpu_var(var); \
40 preempt_enable(); \
41 __tmp; \
42 })
43
44#define x86_write_percpu(var, val) \
45 do { \
46 preempt_disable(); \
47 __get_cpu_var(var) = (val); \
48 preempt_enable(); \
49 } while(0)
50
51#else /* CONFIG_X86_64 */
52 11
53#ifdef __ASSEMBLY__ 12#ifdef __ASSEMBLY__
54 13
@@ -65,47 +24,48 @@ DECLARE_PER_CPU(struct x8664_pda, pda);
65 * PER_CPU(cpu_gdt_descr, %ebx) 24 * PER_CPU(cpu_gdt_descr, %ebx)
66 */ 25 */
67#ifdef CONFIG_SMP 26#ifdef CONFIG_SMP
68#define PER_CPU(var, reg) \ 27#define PER_CPU(var, reg) \
69 movl %fs:per_cpu__##this_cpu_off, reg; \ 28 __percpu_mov_op %__percpu_seg:per_cpu__this_cpu_off, reg; \
70 lea per_cpu__##var(reg), reg 29 lea per_cpu__##var(reg), reg
71#define PER_CPU_VAR(var) %fs:per_cpu__##var 30#define PER_CPU_VAR(var) %__percpu_seg:per_cpu__##var
72#else /* ! SMP */ 31#else /* ! SMP */
73#define PER_CPU(var, reg) \ 32#define PER_CPU(var, reg) \
74 movl $per_cpu__##var, reg 33 __percpu_mov_op $per_cpu__##var, reg
75#define PER_CPU_VAR(var) per_cpu__##var 34#define PER_CPU_VAR(var) per_cpu__##var
76#endif /* SMP */ 35#endif /* SMP */
77 36
37#ifdef CONFIG_X86_64_SMP
38#define INIT_PER_CPU_VAR(var) init_per_cpu__##var
39#else
40#define INIT_PER_CPU_VAR(var) per_cpu__##var
41#endif
42
78#else /* ...!ASSEMBLY */ 43#else /* ...!ASSEMBLY */
79 44
45#include <linux/stringify.h>
46
47#ifdef CONFIG_SMP
48#define __percpu_arg(x) "%%"__stringify(__percpu_seg)":%P" #x
49#define __my_cpu_offset percpu_read(this_cpu_off)
50#else
51#define __percpu_arg(x) "%" #x
52#endif
53
80/* 54/*
81 * PER_CPU finds an address of a per-cpu variable. 55 * Initialized pointers to per-cpu variables needed for the boot
56 * processor need to use these macros to get the proper address
57 * offset from __per_cpu_load on SMP.
82 * 58 *
83 * Args: 59 * There also must be an entry in vmlinux_64.lds.S
84 * var - variable name
85 * cpu - 32bit register containing the current CPU number
86 *
87 * The resulting address is stored in the "cpu" argument.
88 *
89 * Example:
90 * PER_CPU(cpu_gdt_descr, %ebx)
91 */ 60 */
92#ifdef CONFIG_SMP 61#define DECLARE_INIT_PER_CPU(var) \
93 62 extern typeof(per_cpu_var(var)) init_per_cpu_var(var)
94#define __my_cpu_offset x86_read_percpu(this_cpu_off)
95
96/* fs segment starts at (positive) offset == __per_cpu_offset[cpu] */
97#define __percpu_seg "%%fs:"
98
99#else /* !SMP */
100
101#define __percpu_seg ""
102
103#endif /* SMP */
104
105#include <asm-generic/percpu.h>
106 63
107/* We can use this directly for local CPU (faster). */ 64#ifdef CONFIG_X86_64_SMP
108DECLARE_PER_CPU(unsigned long, this_cpu_off); 65#define init_per_cpu_var(var) init_per_cpu__##var
66#else
67#define init_per_cpu_var(var) per_cpu_var(var)
68#endif
109 69
110/* For arch-specific code, we can use direct single-insn ops (they 70/* For arch-specific code, we can use direct single-insn ops (they
111 * don't give an lvalue though). */ 71 * don't give an lvalue though). */
@@ -120,20 +80,25 @@ do { \
120 } \ 80 } \
121 switch (sizeof(var)) { \ 81 switch (sizeof(var)) { \
122 case 1: \ 82 case 1: \
123 asm(op "b %1,"__percpu_seg"%0" \ 83 asm(op "b %1,"__percpu_arg(0) \
124 : "+m" (var) \ 84 : "+m" (var) \
125 : "ri" ((T__)val)); \ 85 : "ri" ((T__)val)); \
126 break; \ 86 break; \
127 case 2: \ 87 case 2: \
128 asm(op "w %1,"__percpu_seg"%0" \ 88 asm(op "w %1,"__percpu_arg(0) \
129 : "+m" (var) \ 89 : "+m" (var) \
130 : "ri" ((T__)val)); \ 90 : "ri" ((T__)val)); \
131 break; \ 91 break; \
132 case 4: \ 92 case 4: \
133 asm(op "l %1,"__percpu_seg"%0" \ 93 asm(op "l %1,"__percpu_arg(0) \
134 : "+m" (var) \ 94 : "+m" (var) \
135 : "ri" ((T__)val)); \ 95 : "ri" ((T__)val)); \
136 break; \ 96 break; \
97 case 8: \
98 asm(op "q %1,"__percpu_arg(0) \
99 : "+m" (var) \
100 : "re" ((T__)val)); \
101 break; \
137 default: __bad_percpu_size(); \ 102 default: __bad_percpu_size(); \
138 } \ 103 } \
139} while (0) 104} while (0)
@@ -143,17 +108,22 @@ do { \
143 typeof(var) ret__; \ 108 typeof(var) ret__; \
144 switch (sizeof(var)) { \ 109 switch (sizeof(var)) { \
145 case 1: \ 110 case 1: \
146 asm(op "b "__percpu_seg"%1,%0" \ 111 asm(op "b "__percpu_arg(1)",%0" \
147 : "=r" (ret__) \ 112 : "=r" (ret__) \
148 : "m" (var)); \ 113 : "m" (var)); \
149 break; \ 114 break; \
150 case 2: \ 115 case 2: \
151 asm(op "w "__percpu_seg"%1,%0" \ 116 asm(op "w "__percpu_arg(1)",%0" \
152 : "=r" (ret__) \ 117 : "=r" (ret__) \
153 : "m" (var)); \ 118 : "m" (var)); \
154 break; \ 119 break; \
155 case 4: \ 120 case 4: \
156 asm(op "l "__percpu_seg"%1,%0" \ 121 asm(op "l "__percpu_arg(1)",%0" \
122 : "=r" (ret__) \
123 : "m" (var)); \
124 break; \
125 case 8: \
126 asm(op "q "__percpu_arg(1)",%0" \
157 : "=r" (ret__) \ 127 : "=r" (ret__) \
158 : "m" (var)); \ 128 : "m" (var)); \
159 break; \ 129 break; \
@@ -162,13 +132,30 @@ do { \
162 ret__; \ 132 ret__; \
163}) 133})
164 134
165#define x86_read_percpu(var) percpu_from_op("mov", per_cpu__##var) 135#define percpu_read(var) percpu_from_op("mov", per_cpu__##var)
166#define x86_write_percpu(var, val) percpu_to_op("mov", per_cpu__##var, val) 136#define percpu_write(var, val) percpu_to_op("mov", per_cpu__##var, val)
167#define x86_add_percpu(var, val) percpu_to_op("add", per_cpu__##var, val) 137#define percpu_add(var, val) percpu_to_op("add", per_cpu__##var, val)
168#define x86_sub_percpu(var, val) percpu_to_op("sub", per_cpu__##var, val) 138#define percpu_sub(var, val) percpu_to_op("sub", per_cpu__##var, val)
169#define x86_or_percpu(var, val) percpu_to_op("or", per_cpu__##var, val) 139#define percpu_and(var, val) percpu_to_op("and", per_cpu__##var, val)
140#define percpu_or(var, val) percpu_to_op("or", per_cpu__##var, val)
141#define percpu_xor(var, val) percpu_to_op("xor", per_cpu__##var, val)
142
143/* This is not atomic against other CPUs -- CPU preemption needs to be off */
144#define x86_test_and_clear_bit_percpu(bit, var) \
145({ \
146 int old__; \
147 asm volatile("btr %2,"__percpu_arg(1)"\n\tsbbl %0,%0" \
148 : "=r" (old__), "+m" (per_cpu__##var) \
149 : "dIr" (bit)); \
150 old__; \
151})
152
153#include <asm-generic/percpu.h>
154
155/* We can use this directly for local CPU (faster). */
156DECLARE_PER_CPU(unsigned long, this_cpu_off);
157
170#endif /* !__ASSEMBLY__ */ 158#endif /* !__ASSEMBLY__ */
171#endif /* !CONFIG_X86_64 */
172 159
173#ifdef CONFIG_SMP 160#ifdef CONFIG_SMP
174 161
@@ -195,9 +182,9 @@ do { \
195#define early_per_cpu_ptr(_name) (_name##_early_ptr) 182#define early_per_cpu_ptr(_name) (_name##_early_ptr)
196#define early_per_cpu_map(_name, _idx) (_name##_early_map[_idx]) 183#define early_per_cpu_map(_name, _idx) (_name##_early_map[_idx])
197#define early_per_cpu(_name, _cpu) \ 184#define early_per_cpu(_name, _cpu) \
198 (early_per_cpu_ptr(_name) ? \ 185 *(early_per_cpu_ptr(_name) ? \
199 early_per_cpu_ptr(_name)[_cpu] : \ 186 &early_per_cpu_ptr(_name)[_cpu] : \
200 per_cpu(_name, _cpu)) 187 &per_cpu(_name, _cpu))
201 188
202#else /* !CONFIG_SMP */ 189#else /* !CONFIG_SMP */
203#define DEFINE_EARLY_PER_CPU(_type, _name, _initvalue) \ 190#define DEFINE_EARLY_PER_CPU(_type, _name, _initvalue) \
diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
index cb7c151a8bff..dd14c54ac718 100644
--- a/arch/x86/include/asm/pgalloc.h
+++ b/arch/x86/include/asm/pgalloc.h
@@ -42,6 +42,7 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
42 42
43static inline void pte_free(struct mm_struct *mm, struct page *pte) 43static inline void pte_free(struct mm_struct *mm, struct page *pte)
44{ 44{
45 pgtable_page_dtor(pte);
45 __free_page(pte); 46 __free_page(pte);
46} 47}
47 48
diff --git a/arch/x86/include/asm/pgtable-2level.h b/arch/x86/include/asm/pgtable-2level.h
index e0d199fe1d83..c1774ac9da7a 100644
--- a/arch/x86/include/asm/pgtable-2level.h
+++ b/arch/x86/include/asm/pgtable-2level.h
@@ -53,8 +53,6 @@ static inline pte_t native_ptep_get_and_clear(pte_t *xp)
53#define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp) 53#define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp)
54#endif 54#endif
55 55
56#define pte_none(x) (!(x).pte_low)
57
58/* 56/*
59 * Bits _PAGE_BIT_PRESENT, _PAGE_BIT_FILE and _PAGE_BIT_PROTNONE are taken, 57 * Bits _PAGE_BIT_PRESENT, _PAGE_BIT_FILE and _PAGE_BIT_PROTNONE are taken,
60 * split up the 29 bits of offset into this range: 58 * split up the 29 bits of offset into this range:
diff --git a/arch/x86/include/asm/pgtable-2level-defs.h b/arch/x86/include/asm/pgtable-2level_types.h
index d77db8990eaa..daacc23e3fb9 100644
--- a/arch/x86/include/asm/pgtable-2level-defs.h
+++ b/arch/x86/include/asm/pgtable-2level_types.h
@@ -1,7 +1,23 @@
1#ifndef _ASM_X86_PGTABLE_2LEVEL_DEFS_H 1#ifndef _ASM_X86_PGTABLE_2LEVEL_DEFS_H
2#define _ASM_X86_PGTABLE_2LEVEL_DEFS_H 2#define _ASM_X86_PGTABLE_2LEVEL_DEFS_H
3 3
4#ifndef __ASSEMBLY__
5#include <linux/types.h>
6
7typedef unsigned long pteval_t;
8typedef unsigned long pmdval_t;
9typedef unsigned long pudval_t;
10typedef unsigned long pgdval_t;
11typedef unsigned long pgprotval_t;
12
13typedef union {
14 pteval_t pte;
15 pteval_t pte_low;
16} pte_t;
17#endif /* !__ASSEMBLY__ */
18
4#define SHARED_KERNEL_PMD 0 19#define SHARED_KERNEL_PMD 0
20#define PAGETABLE_LEVELS 2
5 21
6/* 22/*
7 * traditional i386 two-level paging structure: 23 * traditional i386 two-level paging structure:
@@ -10,6 +26,7 @@
10#define PGDIR_SHIFT 22 26#define PGDIR_SHIFT 22
11#define PTRS_PER_PGD 1024 27#define PTRS_PER_PGD 1024
12 28
29
13/* 30/*
14 * the i386 is two-level, so we don't really have any 31 * the i386 is two-level, so we don't really have any
15 * PMD directory physically. 32 * PMD directory physically.
diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
index 447da43cddb3..3f13cdf61156 100644
--- a/arch/x86/include/asm/pgtable-3level.h
+++ b/arch/x86/include/asm/pgtable-3level.h
@@ -18,21 +18,6 @@
18 printk("%s:%d: bad pgd %p(%016Lx).\n", \ 18 printk("%s:%d: bad pgd %p(%016Lx).\n", \
19 __FILE__, __LINE__, &(e), pgd_val(e)) 19 __FILE__, __LINE__, &(e), pgd_val(e))
20 20
21static inline int pud_none(pud_t pud)
22{
23 return pud_val(pud) == 0;
24}
25
26static inline int pud_bad(pud_t pud)
27{
28 return (pud_val(pud) & ~(PTE_PFN_MASK | _KERNPG_TABLE | _PAGE_USER)) != 0;
29}
30
31static inline int pud_present(pud_t pud)
32{
33 return pud_val(pud) & _PAGE_PRESENT;
34}
35
36/* Rules for using set_pte: the pte being assigned *must* be 21/* Rules for using set_pte: the pte being assigned *must* be
37 * either not present or in a state where the hardware will 22 * either not present or in a state where the hardware will
38 * not attempt to update the pte. In places where this is 23 * not attempt to update the pte. In places where this is
@@ -120,15 +105,6 @@ static inline void pud_clear(pud_t *pudp)
120 write_cr3(pgd); 105 write_cr3(pgd);
121} 106}
122 107
123#define pud_page(pud) pfn_to_page(pud_val(pud) >> PAGE_SHIFT)
124
125#define pud_page_vaddr(pud) ((unsigned long) __va(pud_val(pud) & PTE_PFN_MASK))
126
127
128/* Find an entry in the second-level page table.. */
129#define pmd_offset(pud, address) ((pmd_t *)pud_page_vaddr(*(pud)) + \
130 pmd_index(address))
131
132#ifdef CONFIG_SMP 108#ifdef CONFIG_SMP
133static inline pte_t native_ptep_get_and_clear(pte_t *ptep) 109static inline pte_t native_ptep_get_and_clear(pte_t *ptep)
134{ 110{
@@ -145,17 +121,6 @@ static inline pte_t native_ptep_get_and_clear(pte_t *ptep)
145#define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp) 121#define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp)
146#endif 122#endif
147 123
148#define __HAVE_ARCH_PTE_SAME
149static inline int pte_same(pte_t a, pte_t b)
150{
151 return a.pte_low == b.pte_low && a.pte_high == b.pte_high;
152}
153
154static inline int pte_none(pte_t pte)
155{
156 return !pte.pte_low && !pte.pte_high;
157}
158
159/* 124/*
160 * Bits 0, 6 and 7 are taken in the low part of the pte, 125 * Bits 0, 6 and 7 are taken in the low part of the pte,
161 * put the 32 bits of offset into the high part. 126 * put the 32 bits of offset into the high part.
diff --git a/arch/x86/include/asm/pgtable-3level-defs.h b/arch/x86/include/asm/pgtable-3level_types.h
index 62561367653c..1bd5876c8649 100644
--- a/arch/x86/include/asm/pgtable-3level-defs.h
+++ b/arch/x86/include/asm/pgtable-3level_types.h
@@ -1,12 +1,31 @@
1#ifndef _ASM_X86_PGTABLE_3LEVEL_DEFS_H 1#ifndef _ASM_X86_PGTABLE_3LEVEL_DEFS_H
2#define _ASM_X86_PGTABLE_3LEVEL_DEFS_H 2#define _ASM_X86_PGTABLE_3LEVEL_DEFS_H
3 3
4#ifndef __ASSEMBLY__
5#include <linux/types.h>
6
7typedef u64 pteval_t;
8typedef u64 pmdval_t;
9typedef u64 pudval_t;
10typedef u64 pgdval_t;
11typedef u64 pgprotval_t;
12
13typedef union {
14 struct {
15 unsigned long pte_low, pte_high;
16 };
17 pteval_t pte;
18} pte_t;
19#endif /* !__ASSEMBLY__ */
20
4#ifdef CONFIG_PARAVIRT 21#ifdef CONFIG_PARAVIRT
5#define SHARED_KERNEL_PMD (pv_info.shared_kernel_pmd) 22#define SHARED_KERNEL_PMD (pv_info.shared_kernel_pmd)
6#else 23#else
7#define SHARED_KERNEL_PMD 1 24#define SHARED_KERNEL_PMD 1
8#endif 25#endif
9 26
27#define PAGETABLE_LEVELS 3
28
10/* 29/*
11 * PGDIR_SHIFT determines what a top-level page table entry can map 30 * PGDIR_SHIFT determines what a top-level page table entry can map
12 */ 31 */
@@ -25,4 +44,5 @@
25 */ 44 */
26#define PTRS_PER_PTE 512 45#define PTRS_PER_PTE 512
27 46
47
28#endif /* _ASM_X86_PGTABLE_3LEVEL_DEFS_H */ 48#endif /* _ASM_X86_PGTABLE_3LEVEL_DEFS_H */
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index 83e69f4a37f0..1c097a3a6669 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -1,164 +1,9 @@
1#ifndef _ASM_X86_PGTABLE_H 1#ifndef _ASM_X86_PGTABLE_H
2#define _ASM_X86_PGTABLE_H 2#define _ASM_X86_PGTABLE_H
3 3
4#define FIRST_USER_ADDRESS 0 4#include <asm/page.h>
5
6#define _PAGE_BIT_PRESENT 0 /* is present */
7#define _PAGE_BIT_RW 1 /* writeable */
8#define _PAGE_BIT_USER 2 /* userspace addressable */
9#define _PAGE_BIT_PWT 3 /* page write through */
10#define _PAGE_BIT_PCD 4 /* page cache disabled */
11#define _PAGE_BIT_ACCESSED 5 /* was accessed (raised by CPU) */
12#define _PAGE_BIT_DIRTY 6 /* was written to (raised by CPU) */
13#define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */
14#define _PAGE_BIT_PAT 7 /* on 4KB pages */
15#define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */
16#define _PAGE_BIT_UNUSED1 9 /* available for programmer */
17#define _PAGE_BIT_IOMAP 10 /* flag used to indicate IO mapping */
18#define _PAGE_BIT_UNUSED3 11
19#define _PAGE_BIT_PAT_LARGE 12 /* On 2MB or 1GB pages */
20#define _PAGE_BIT_SPECIAL _PAGE_BIT_UNUSED1
21#define _PAGE_BIT_CPA_TEST _PAGE_BIT_UNUSED1
22#define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */
23
24/* If _PAGE_BIT_PRESENT is clear, we use these: */
25/* - if the user mapped it with PROT_NONE; pte_present gives true */
26#define _PAGE_BIT_PROTNONE _PAGE_BIT_GLOBAL
27/* - set: nonlinear file mapping, saved PTE; unset:swap */
28#define _PAGE_BIT_FILE _PAGE_BIT_DIRTY
29
30#define _PAGE_PRESENT (_AT(pteval_t, 1) << _PAGE_BIT_PRESENT)
31#define _PAGE_RW (_AT(pteval_t, 1) << _PAGE_BIT_RW)
32#define _PAGE_USER (_AT(pteval_t, 1) << _PAGE_BIT_USER)
33#define _PAGE_PWT (_AT(pteval_t, 1) << _PAGE_BIT_PWT)
34#define _PAGE_PCD (_AT(pteval_t, 1) << _PAGE_BIT_PCD)
35#define _PAGE_ACCESSED (_AT(pteval_t, 1) << _PAGE_BIT_ACCESSED)
36#define _PAGE_DIRTY (_AT(pteval_t, 1) << _PAGE_BIT_DIRTY)
37#define _PAGE_PSE (_AT(pteval_t, 1) << _PAGE_BIT_PSE)
38#define _PAGE_GLOBAL (_AT(pteval_t, 1) << _PAGE_BIT_GLOBAL)
39#define _PAGE_UNUSED1 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED1)
40#define _PAGE_IOMAP (_AT(pteval_t, 1) << _PAGE_BIT_IOMAP)
41#define _PAGE_UNUSED3 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED3)
42#define _PAGE_PAT (_AT(pteval_t, 1) << _PAGE_BIT_PAT)
43#define _PAGE_PAT_LARGE (_AT(pteval_t, 1) << _PAGE_BIT_PAT_LARGE)
44#define _PAGE_SPECIAL (_AT(pteval_t, 1) << _PAGE_BIT_SPECIAL)
45#define _PAGE_CPA_TEST (_AT(pteval_t, 1) << _PAGE_BIT_CPA_TEST)
46#define __HAVE_ARCH_PTE_SPECIAL
47
48#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
49#define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX)
50#else
51#define _PAGE_NX (_AT(pteval_t, 0))
52#endif
53 5
54#define _PAGE_FILE (_AT(pteval_t, 1) << _PAGE_BIT_FILE) 6#include <asm/pgtable_types.h>
55#define _PAGE_PROTNONE (_AT(pteval_t, 1) << _PAGE_BIT_PROTNONE)
56
57#define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | \
58 _PAGE_ACCESSED | _PAGE_DIRTY)
59#define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | \
60 _PAGE_DIRTY)
61
62/* Set of bits not changed in pte_modify */
63#define _PAGE_CHG_MASK (PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT | \
64 _PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY)
65
66#define _PAGE_CACHE_MASK (_PAGE_PCD | _PAGE_PWT)
67#define _PAGE_CACHE_WB (0)
68#define _PAGE_CACHE_WC (_PAGE_PWT)
69#define _PAGE_CACHE_UC_MINUS (_PAGE_PCD)
70#define _PAGE_CACHE_UC (_PAGE_PCD | _PAGE_PWT)
71
72#define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED)
73#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | \
74 _PAGE_ACCESSED | _PAGE_NX)
75
76#define PAGE_SHARED_EXEC __pgprot(_PAGE_PRESENT | _PAGE_RW | \
77 _PAGE_USER | _PAGE_ACCESSED)
78#define PAGE_COPY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
79 _PAGE_ACCESSED | _PAGE_NX)
80#define PAGE_COPY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
81 _PAGE_ACCESSED)
82#define PAGE_COPY PAGE_COPY_NOEXEC
83#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | \
84 _PAGE_ACCESSED | _PAGE_NX)
85#define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
86 _PAGE_ACCESSED)
87
88#define __PAGE_KERNEL_EXEC \
89 (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)
90#define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX)
91
92#define __PAGE_KERNEL_RO (__PAGE_KERNEL & ~_PAGE_RW)
93#define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
94#define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT)
95#define __PAGE_KERNEL_WC (__PAGE_KERNEL | _PAGE_CACHE_WC)
96#define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT)
97#define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD)
98#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
99#define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT)
100#define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
101#define __PAGE_KERNEL_LARGE_NOCACHE (__PAGE_KERNEL | _PAGE_CACHE_UC | _PAGE_PSE)
102#define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE)
103
104#define __PAGE_KERNEL_IO (__PAGE_KERNEL | _PAGE_IOMAP)
105#define __PAGE_KERNEL_IO_NOCACHE (__PAGE_KERNEL_NOCACHE | _PAGE_IOMAP)
106#define __PAGE_KERNEL_IO_UC_MINUS (__PAGE_KERNEL_UC_MINUS | _PAGE_IOMAP)
107#define __PAGE_KERNEL_IO_WC (__PAGE_KERNEL_WC | _PAGE_IOMAP)
108
109#define PAGE_KERNEL __pgprot(__PAGE_KERNEL)
110#define PAGE_KERNEL_RO __pgprot(__PAGE_KERNEL_RO)
111#define PAGE_KERNEL_EXEC __pgprot(__PAGE_KERNEL_EXEC)
112#define PAGE_KERNEL_RX __pgprot(__PAGE_KERNEL_RX)
113#define PAGE_KERNEL_WC __pgprot(__PAGE_KERNEL_WC)
114#define PAGE_KERNEL_NOCACHE __pgprot(__PAGE_KERNEL_NOCACHE)
115#define PAGE_KERNEL_UC_MINUS __pgprot(__PAGE_KERNEL_UC_MINUS)
116#define PAGE_KERNEL_EXEC_NOCACHE __pgprot(__PAGE_KERNEL_EXEC_NOCACHE)
117#define PAGE_KERNEL_LARGE __pgprot(__PAGE_KERNEL_LARGE)
118#define PAGE_KERNEL_LARGE_NOCACHE __pgprot(__PAGE_KERNEL_LARGE_NOCACHE)
119#define PAGE_KERNEL_LARGE_EXEC __pgprot(__PAGE_KERNEL_LARGE_EXEC)
120#define PAGE_KERNEL_VSYSCALL __pgprot(__PAGE_KERNEL_VSYSCALL)
121#define PAGE_KERNEL_VSYSCALL_NOCACHE __pgprot(__PAGE_KERNEL_VSYSCALL_NOCACHE)
122
123#define PAGE_KERNEL_IO __pgprot(__PAGE_KERNEL_IO)
124#define PAGE_KERNEL_IO_NOCACHE __pgprot(__PAGE_KERNEL_IO_NOCACHE)
125#define PAGE_KERNEL_IO_UC_MINUS __pgprot(__PAGE_KERNEL_IO_UC_MINUS)
126#define PAGE_KERNEL_IO_WC __pgprot(__PAGE_KERNEL_IO_WC)
127
128/* xwr */
129#define __P000 PAGE_NONE
130#define __P001 PAGE_READONLY
131#define __P010 PAGE_COPY
132#define __P011 PAGE_COPY
133#define __P100 PAGE_READONLY_EXEC
134#define __P101 PAGE_READONLY_EXEC
135#define __P110 PAGE_COPY_EXEC
136#define __P111 PAGE_COPY_EXEC
137
138#define __S000 PAGE_NONE
139#define __S001 PAGE_READONLY
140#define __S010 PAGE_SHARED
141#define __S011 PAGE_SHARED
142#define __S100 PAGE_READONLY_EXEC
143#define __S101 PAGE_READONLY_EXEC
144#define __S110 PAGE_SHARED_EXEC
145#define __S111 PAGE_SHARED_EXEC
146
147/*
148 * early identity mapping pte attrib macros.
149 */
150#ifdef CONFIG_X86_64
151#define __PAGE_KERNEL_IDENT_LARGE_EXEC __PAGE_KERNEL_LARGE_EXEC
152#else
153/*
154 * For PDE_IDENT_ATTR include USER bit. As the PDE and PTE protection
155 * bits are combined, this will alow user to access the high address mapped
156 * VDSO in the presence of CONFIG_COMPAT_VDSO
157 */
158#define PTE_IDENT_ATTR 0x003 /* PRESENT+RW */
159#define PDE_IDENT_ATTR 0x067 /* PRESENT+RW+USER+DIRTY+ACCESSED */
160#define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
161#endif
162 7
163/* 8/*
164 * Macro to mark a page protection value as UC- 9 * Macro to mark a page protection value as UC-
@@ -170,9 +15,6 @@
170 15
171#ifndef __ASSEMBLY__ 16#ifndef __ASSEMBLY__
172 17
173#define pgprot_writecombine pgprot_writecombine
174extern pgprot_t pgprot_writecombine(pgprot_t prot);
175
176/* 18/*
177 * ZERO_PAGE is a global shared page that is always zero: used 19 * ZERO_PAGE is a global shared page that is always zero: used
178 * for zero-mapped memory areas etc.. 20 * for zero-mapped memory areas etc..
@@ -183,6 +25,66 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
183extern spinlock_t pgd_lock; 25extern spinlock_t pgd_lock;
184extern struct list_head pgd_list; 26extern struct list_head pgd_list;
185 27
28#ifdef CONFIG_PARAVIRT
29#include <asm/paravirt.h>
30#else /* !CONFIG_PARAVIRT */
31#define set_pte(ptep, pte) native_set_pte(ptep, pte)
32#define set_pte_at(mm, addr, ptep, pte) native_set_pte_at(mm, addr, ptep, pte)
33
34#define set_pte_present(mm, addr, ptep, pte) \
35 native_set_pte_present(mm, addr, ptep, pte)
36#define set_pte_atomic(ptep, pte) \
37 native_set_pte_atomic(ptep, pte)
38
39#define set_pmd(pmdp, pmd) native_set_pmd(pmdp, pmd)
40
41#ifndef __PAGETABLE_PUD_FOLDED
42#define set_pgd(pgdp, pgd) native_set_pgd(pgdp, pgd)
43#define pgd_clear(pgd) native_pgd_clear(pgd)
44#endif
45
46#ifndef set_pud
47# define set_pud(pudp, pud) native_set_pud(pudp, pud)
48#endif
49
50#ifndef __PAGETABLE_PMD_FOLDED
51#define pud_clear(pud) native_pud_clear(pud)
52#endif
53
54#define pte_clear(mm, addr, ptep) native_pte_clear(mm, addr, ptep)
55#define pmd_clear(pmd) native_pmd_clear(pmd)
56
57#define pte_update(mm, addr, ptep) do { } while (0)
58#define pte_update_defer(mm, addr, ptep) do { } while (0)
59
60static inline void __init paravirt_pagetable_setup_start(pgd_t *base)
61{
62 native_pagetable_setup_start(base);
63}
64
65static inline void __init paravirt_pagetable_setup_done(pgd_t *base)
66{
67 native_pagetable_setup_done(base);
68}
69
70#define pgd_val(x) native_pgd_val(x)
71#define __pgd(x) native_make_pgd(x)
72
73#ifndef __PAGETABLE_PUD_FOLDED
74#define pud_val(x) native_pud_val(x)
75#define __pud(x) native_make_pud(x)
76#endif
77
78#ifndef __PAGETABLE_PMD_FOLDED
79#define pmd_val(x) native_pmd_val(x)
80#define __pmd(x) native_make_pmd(x)
81#endif
82
83#define pte_val(x) native_pte_val(x)
84#define __pte(x) native_make_pte(x)
85
86#endif /* CONFIG_PARAVIRT */
87
186/* 88/*
187 * The following only work if pte_present() is true. 89 * The following only work if pte_present() is true.
188 * Undefined behaviour if not.. 90 * Undefined behaviour if not..
@@ -236,82 +138,108 @@ static inline unsigned long pte_pfn(pte_t pte)
236 138
237static inline int pmd_large(pmd_t pte) 139static inline int pmd_large(pmd_t pte)
238{ 140{
239 return (pmd_val(pte) & (_PAGE_PSE | _PAGE_PRESENT)) == 141 return (pmd_flags(pte) & (_PAGE_PSE | _PAGE_PRESENT)) ==
240 (_PAGE_PSE | _PAGE_PRESENT); 142 (_PAGE_PSE | _PAGE_PRESENT);
241} 143}
242 144
145static inline pte_t pte_set_flags(pte_t pte, pteval_t set)
146{
147 pteval_t v = native_pte_val(pte);
148
149 return native_make_pte(v | set);
150}
151
152static inline pte_t pte_clear_flags(pte_t pte, pteval_t clear)
153{
154 pteval_t v = native_pte_val(pte);
155
156 return native_make_pte(v & ~clear);
157}
158
243static inline pte_t pte_mkclean(pte_t pte) 159static inline pte_t pte_mkclean(pte_t pte)
244{ 160{
245 return __pte(pte_val(pte) & ~_PAGE_DIRTY); 161 return pte_clear_flags(pte, _PAGE_DIRTY);
246} 162}
247 163
248static inline pte_t pte_mkold(pte_t pte) 164static inline pte_t pte_mkold(pte_t pte)
249{ 165{
250 return __pte(pte_val(pte) & ~_PAGE_ACCESSED); 166 return pte_clear_flags(pte, _PAGE_ACCESSED);
251} 167}
252 168
253static inline pte_t pte_wrprotect(pte_t pte) 169static inline pte_t pte_wrprotect(pte_t pte)
254{ 170{
255 return __pte(pte_val(pte) & ~_PAGE_RW); 171 return pte_clear_flags(pte, _PAGE_RW);
256} 172}
257 173
258static inline pte_t pte_mkexec(pte_t pte) 174static inline pte_t pte_mkexec(pte_t pte)
259{ 175{
260 return __pte(pte_val(pte) & ~_PAGE_NX); 176 return pte_clear_flags(pte, _PAGE_NX);
261} 177}
262 178
263static inline pte_t pte_mkdirty(pte_t pte) 179static inline pte_t pte_mkdirty(pte_t pte)
264{ 180{
265 return __pte(pte_val(pte) | _PAGE_DIRTY); 181 return pte_set_flags(pte, _PAGE_DIRTY);
266} 182}
267 183
268static inline pte_t pte_mkyoung(pte_t pte) 184static inline pte_t pte_mkyoung(pte_t pte)
269{ 185{
270 return __pte(pte_val(pte) | _PAGE_ACCESSED); 186 return pte_set_flags(pte, _PAGE_ACCESSED);
271} 187}
272 188
273static inline pte_t pte_mkwrite(pte_t pte) 189static inline pte_t pte_mkwrite(pte_t pte)
274{ 190{
275 return __pte(pte_val(pte) | _PAGE_RW); 191 return pte_set_flags(pte, _PAGE_RW);
276} 192}
277 193
278static inline pte_t pte_mkhuge(pte_t pte) 194static inline pte_t pte_mkhuge(pte_t pte)
279{ 195{
280 return __pte(pte_val(pte) | _PAGE_PSE); 196 return pte_set_flags(pte, _PAGE_PSE);
281} 197}
282 198
283static inline pte_t pte_clrhuge(pte_t pte) 199static inline pte_t pte_clrhuge(pte_t pte)
284{ 200{
285 return __pte(pte_val(pte) & ~_PAGE_PSE); 201 return pte_clear_flags(pte, _PAGE_PSE);
286} 202}
287 203
288static inline pte_t pte_mkglobal(pte_t pte) 204static inline pte_t pte_mkglobal(pte_t pte)
289{ 205{
290 return __pte(pte_val(pte) | _PAGE_GLOBAL); 206 return pte_set_flags(pte, _PAGE_GLOBAL);
291} 207}
292 208
293static inline pte_t pte_clrglobal(pte_t pte) 209static inline pte_t pte_clrglobal(pte_t pte)
294{ 210{
295 return __pte(pte_val(pte) & ~_PAGE_GLOBAL); 211 return pte_clear_flags(pte, _PAGE_GLOBAL);
296} 212}
297 213
298static inline pte_t pte_mkspecial(pte_t pte) 214static inline pte_t pte_mkspecial(pte_t pte)
299{ 215{
300 return __pte(pte_val(pte) | _PAGE_SPECIAL); 216 return pte_set_flags(pte, _PAGE_SPECIAL);
301} 217}
302 218
303extern pteval_t __supported_pte_mask; 219/*
220 * Mask out unsupported bits in a present pgprot. Non-present pgprots
221 * can use those bits for other purposes, so leave them be.
222 */
223static inline pgprotval_t massage_pgprot(pgprot_t pgprot)
224{
225 pgprotval_t protval = pgprot_val(pgprot);
226
227 if (protval & _PAGE_PRESENT)
228 protval &= __supported_pte_mask;
229
230 return protval;
231}
304 232
305static inline pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot) 233static inline pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot)
306{ 234{
307 return __pte((((phys_addr_t)page_nr << PAGE_SHIFT) | 235 return __pte(((phys_addr_t)page_nr << PAGE_SHIFT) |
308 pgprot_val(pgprot)) & __supported_pte_mask); 236 massage_pgprot(pgprot));
309} 237}
310 238
311static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot) 239static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot)
312{ 240{
313 return __pmd((((phys_addr_t)page_nr << PAGE_SHIFT) | 241 return __pmd(((phys_addr_t)page_nr << PAGE_SHIFT) |
314 pgprot_val(pgprot)) & __supported_pte_mask); 242 massage_pgprot(pgprot));
315} 243}
316 244
317static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) 245static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
@@ -323,7 +251,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
323 * the newprot (if present): 251 * the newprot (if present):
324 */ 252 */
325 val &= _PAGE_CHG_MASK; 253 val &= _PAGE_CHG_MASK;
326 val |= pgprot_val(newprot) & (~_PAGE_CHG_MASK) & __supported_pte_mask; 254 val |= massage_pgprot(newprot) & ~_PAGE_CHG_MASK;
327 255
328 return __pte(val); 256 return __pte(val);
329} 257}
@@ -339,84 +267,216 @@ static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
339 267
340#define pte_pgprot(x) __pgprot(pte_flags(x) & PTE_FLAGS_MASK) 268#define pte_pgprot(x) __pgprot(pte_flags(x) & PTE_FLAGS_MASK)
341 269
342#define canon_pgprot(p) __pgprot(pgprot_val(p) & __supported_pte_mask) 270#define canon_pgprot(p) __pgprot(massage_pgprot(p))
343 271
344#ifndef __ASSEMBLY__ 272static inline int is_new_memtype_allowed(unsigned long flags,
345/* Indicate that x86 has its own track and untrack pfn vma functions */ 273 unsigned long new_flags)
346#define __HAVE_PFNMAP_TRACKING 274{
347 275 /*
348#define __HAVE_PHYS_MEM_ACCESS_PROT 276 * Certain new memtypes are not allowed with certain
349struct file; 277 * requested memtype:
350pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, 278 * - request is uncached, return cannot be write-back
351 unsigned long size, pgprot_t vma_prot); 279 * - request is write-combine, return cannot be write-back
352int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn, 280 */
353 unsigned long size, pgprot_t *vma_prot); 281 if ((flags == _PAGE_CACHE_UC_MINUS &&
354#endif 282 new_flags == _PAGE_CACHE_WB) ||
283 (flags == _PAGE_CACHE_WC &&
284 new_flags == _PAGE_CACHE_WB)) {
285 return 0;
286 }
355 287
356/* Install a pte for a particular vaddr in kernel space. */ 288 return 1;
357void set_pte_vaddr(unsigned long vaddr, pte_t pte); 289}
290
291#endif /* __ASSEMBLY__ */
358 292
359#ifdef CONFIG_X86_32 293#ifdef CONFIG_X86_32
360extern void native_pagetable_setup_start(pgd_t *base); 294# include "pgtable_32.h"
361extern void native_pagetable_setup_done(pgd_t *base);
362#else 295#else
363static inline void native_pagetable_setup_start(pgd_t *base) {} 296# include "pgtable_64.h"
364static inline void native_pagetable_setup_done(pgd_t *base) {}
365#endif 297#endif
366 298
367struct seq_file; 299#ifndef __ASSEMBLY__
368extern void arch_report_meminfo(struct seq_file *m); 300#include <linux/mm_types.h>
369 301
370#ifdef CONFIG_PARAVIRT 302static inline int pte_none(pte_t pte)
371#include <asm/paravirt.h> 303{
372#else /* !CONFIG_PARAVIRT */ 304 return !pte.pte;
373#define set_pte(ptep, pte) native_set_pte(ptep, pte) 305}
374#define set_pte_at(mm, addr, ptep, pte) native_set_pte_at(mm, addr, ptep, pte)
375 306
376#define set_pte_present(mm, addr, ptep, pte) \ 307#define __HAVE_ARCH_PTE_SAME
377 native_set_pte_present(mm, addr, ptep, pte) 308static inline int pte_same(pte_t a, pte_t b)
378#define set_pte_atomic(ptep, pte) \ 309{
379 native_set_pte_atomic(ptep, pte) 310 return a.pte == b.pte;
311}
380 312
381#define set_pmd(pmdp, pmd) native_set_pmd(pmdp, pmd) 313static inline int pte_present(pte_t a)
314{
315 return pte_flags(a) & (_PAGE_PRESENT | _PAGE_PROTNONE);
316}
382 317
383#ifndef __PAGETABLE_PUD_FOLDED 318static inline int pmd_present(pmd_t pmd)
384#define set_pgd(pgdp, pgd) native_set_pgd(pgdp, pgd) 319{
385#define pgd_clear(pgd) native_pgd_clear(pgd) 320 return pmd_flags(pmd) & _PAGE_PRESENT;
386#endif 321}
387 322
388#ifndef set_pud 323static inline int pmd_none(pmd_t pmd)
389# define set_pud(pudp, pud) native_set_pud(pudp, pud) 324{
390#endif 325 /* Only check low word on 32-bit platforms, since it might be
326 out of sync with upper half. */
327 return (unsigned long)native_pmd_val(pmd) == 0;
328}
391 329
392#ifndef __PAGETABLE_PMD_FOLDED 330static inline unsigned long pmd_page_vaddr(pmd_t pmd)
393#define pud_clear(pud) native_pud_clear(pud) 331{
394#endif 332 return (unsigned long)__va(pmd_val(pmd) & PTE_PFN_MASK);
333}
395 334
396#define pte_clear(mm, addr, ptep) native_pte_clear(mm, addr, ptep) 335/*
397#define pmd_clear(pmd) native_pmd_clear(pmd) 336 * Currently stuck as a macro due to indirect forward reference to
337 * linux/mmzone.h's __section_mem_map_addr() definition:
338 */
339#define pmd_page(pmd) pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)
398 340
399#define pte_update(mm, addr, ptep) do { } while (0) 341/*
400#define pte_update_defer(mm, addr, ptep) do { } while (0) 342 * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD]
343 *
344 * this macro returns the index of the entry in the pmd page which would
345 * control the given virtual address
346 */
347static inline unsigned pmd_index(unsigned long address)
348{
349 return (address >> PMD_SHIFT) & (PTRS_PER_PMD - 1);
350}
401 351
402static inline void __init paravirt_pagetable_setup_start(pgd_t *base) 352/*
353 * Conversion functions: convert a page and protection to a page entry,
354 * and a page entry and page directory to the page they refer to.
355 *
356 * (Currently stuck as a macro because of indirect forward reference
357 * to linux/mm.h:page_to_nid())
358 */
359#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
360
361/*
362 * the pte page can be thought of an array like this: pte_t[PTRS_PER_PTE]
363 *
364 * this function returns the index of the entry in the pte page which would
365 * control the given virtual address
366 */
367static inline unsigned pte_index(unsigned long address)
403{ 368{
404 native_pagetable_setup_start(base); 369 return (address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1);
405} 370}
406 371
407static inline void __init paravirt_pagetable_setup_done(pgd_t *base) 372static inline pte_t *pte_offset_kernel(pmd_t *pmd, unsigned long address)
408{ 373{
409 native_pagetable_setup_done(base); 374 return (pte_t *)pmd_page_vaddr(*pmd) + pte_index(address);
410} 375}
411#endif /* CONFIG_PARAVIRT */
412 376
413#endif /* __ASSEMBLY__ */ 377static inline int pmd_bad(pmd_t pmd)
378{
379 return (pmd_flags(pmd) & ~_PAGE_USER) != _KERNPG_TABLE;
380}
414 381
415#ifdef CONFIG_X86_32 382static inline unsigned long pages_to_mb(unsigned long npg)
416# include "pgtable_32.h" 383{
384 return npg >> (20 - PAGE_SHIFT);
385}
386
387#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
388 remap_pfn_range(vma, vaddr, pfn, size, prot)
389
390#if PAGETABLE_LEVELS > 2
391static inline int pud_none(pud_t pud)
392{
393 return native_pud_val(pud) == 0;
394}
395
396static inline int pud_present(pud_t pud)
397{
398 return pud_flags(pud) & _PAGE_PRESENT;
399}
400
401static inline unsigned long pud_page_vaddr(pud_t pud)
402{
403 return (unsigned long)__va((unsigned long)pud_val(pud) & PTE_PFN_MASK);
404}
405
406/*
407 * Currently stuck as a macro due to indirect forward reference to
408 * linux/mmzone.h's __section_mem_map_addr() definition:
409 */
410#define pud_page(pud) pfn_to_page(pud_val(pud) >> PAGE_SHIFT)
411
412/* Find an entry in the second-level page table.. */
413static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
414{
415 return (pmd_t *)pud_page_vaddr(*pud) + pmd_index(address);
416}
417
418static inline unsigned long pmd_pfn(pmd_t pmd)
419{
420 return (pmd_val(pmd) & PTE_PFN_MASK) >> PAGE_SHIFT;
421}
422
423static inline int pud_large(pud_t pud)
424{
425 return (pud_val(pud) & (_PAGE_PSE | _PAGE_PRESENT)) ==
426 (_PAGE_PSE | _PAGE_PRESENT);
427}
428
429static inline int pud_bad(pud_t pud)
430{
431 return (pud_flags(pud) & ~(_KERNPG_TABLE | _PAGE_USER)) != 0;
432}
417#else 433#else
418# include "pgtable_64.h" 434static inline int pud_large(pud_t pud)
419#endif 435{
436 return 0;
437}
438#endif /* PAGETABLE_LEVELS > 2 */
439
440#if PAGETABLE_LEVELS > 3
441static inline int pgd_present(pgd_t pgd)
442{
443 return pgd_flags(pgd) & _PAGE_PRESENT;
444}
445
446static inline unsigned long pgd_page_vaddr(pgd_t pgd)
447{
448 return (unsigned long)__va((unsigned long)pgd_val(pgd) & PTE_PFN_MASK);
449}
450
451/*
452 * Currently stuck as a macro due to indirect forward reference to
453 * linux/mmzone.h's __section_mem_map_addr() definition:
454 */
455#define pgd_page(pgd) pfn_to_page(pgd_val(pgd) >> PAGE_SHIFT)
456
457/* to find an entry in a page-table-directory. */
458static inline unsigned pud_index(unsigned long address)
459{
460 return (address >> PUD_SHIFT) & (PTRS_PER_PUD - 1);
461}
462
463static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
464{
465 return (pud_t *)pgd_page_vaddr(*pgd) + pud_index(address);
466}
467
468static inline int pgd_bad(pgd_t pgd)
469{
470 return (pgd_flags(pgd) & ~_PAGE_USER) != _KERNPG_TABLE;
471}
472
473static inline int pgd_none(pgd_t pgd)
474{
475 return !native_pgd_val(pgd);
476}
477#endif /* PAGETABLE_LEVELS > 3 */
478
479#endif /* __ASSEMBLY__ */
420 480
421/* 481/*
422 * the pgd page can be thought of an array like this: pgd_t[PTRS_PER_PGD] 482 * the pgd page can be thought of an array like this: pgd_t[PTRS_PER_PGD]
@@ -443,28 +503,6 @@ static inline void __init paravirt_pagetable_setup_done(pgd_t *base)
443 503
444#ifndef __ASSEMBLY__ 504#ifndef __ASSEMBLY__
445 505
446enum {
447 PG_LEVEL_NONE,
448 PG_LEVEL_4K,
449 PG_LEVEL_2M,
450 PG_LEVEL_1G,
451 PG_LEVEL_NUM
452};
453
454#ifdef CONFIG_PROC_FS
455extern void update_page_count(int level, unsigned long pages);
456#else
457static inline void update_page_count(int level, unsigned long pages) { }
458#endif
459
460/*
461 * Helper function that returns the kernel pagetable entry controlling
462 * the virtual address 'address'. NULL means no pagetable entry present.
463 * NOTE: the return type is pte_t but if the pmd is PSE then we return it
464 * as a pte too.
465 */
466extern pte_t *lookup_address(unsigned long address, unsigned int *level);
467
468/* local pte updates need not use xchg for locking */ 506/* local pte updates need not use xchg for locking */
469static inline pte_t native_local_ptep_get_and_clear(pte_t *ptep) 507static inline pte_t native_local_ptep_get_and_clear(pte_t *ptep)
470{ 508{
diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h
index 72b020deb46b..97612fc7632f 100644
--- a/arch/x86/include/asm/pgtable_32.h
+++ b/arch/x86/include/asm/pgtable_32.h
@@ -1,6 +1,7 @@
1#ifndef _ASM_X86_PGTABLE_32_H 1#ifndef _ASM_X86_PGTABLE_32_H
2#define _ASM_X86_PGTABLE_32_H 2#define _ASM_X86_PGTABLE_32_H
3 3
4#include <asm/pgtable_32_types.h>
4 5
5/* 6/*
6 * The Linux memory management assumes a three-level page table setup. On 7 * The Linux memory management assumes a three-level page table setup. On
@@ -33,47 +34,6 @@ void paging_init(void);
33 34
34extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t); 35extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t);
35 36
36/*
37 * The Linux x86 paging architecture is 'compile-time dual-mode', it
38 * implements both the traditional 2-level x86 page tables and the
39 * newer 3-level PAE-mode page tables.
40 */
41#ifdef CONFIG_X86_PAE
42# include <asm/pgtable-3level-defs.h>
43# define PMD_SIZE (1UL << PMD_SHIFT)
44# define PMD_MASK (~(PMD_SIZE - 1))
45#else
46# include <asm/pgtable-2level-defs.h>
47#endif
48
49#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
50#define PGDIR_MASK (~(PGDIR_SIZE - 1))
51
52/* Just any arbitrary offset to the start of the vmalloc VM area: the
53 * current 8MB value just means that there will be a 8MB "hole" after the
54 * physical memory until the kernel virtual memory starts. That means that
55 * any out-of-bounds memory accesses will hopefully be caught.
56 * The vmalloc() routines leaves a hole of 4kB between each vmalloced
57 * area for the same reason. ;)
58 */
59#define VMALLOC_OFFSET (8 * 1024 * 1024)
60#define VMALLOC_START ((unsigned long)high_memory + VMALLOC_OFFSET)
61#ifdef CONFIG_X86_PAE
62#define LAST_PKMAP 512
63#else
64#define LAST_PKMAP 1024
65#endif
66
67#define PKMAP_BASE ((FIXADDR_BOOT_START - PAGE_SIZE * (LAST_PKMAP + 1)) \
68 & PMD_MASK)
69
70#ifdef CONFIG_HIGHMEM
71# define VMALLOC_END (PKMAP_BASE - 2 * PAGE_SIZE)
72#else
73# define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE)
74#endif
75
76#define MAXMEM (VMALLOC_END - PAGE_OFFSET - __VMALLOC_RESERVE)
77 37
78/* 38/*
79 * Define this if things work differently on an i386 and an i486: 39 * Define this if things work differently on an i386 and an i486:
@@ -85,55 +45,12 @@ extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t);
85/* The boot page tables (all created as a single array) */ 45/* The boot page tables (all created as a single array) */
86extern unsigned long pg0[]; 46extern unsigned long pg0[];
87 47
88#define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE))
89
90/* To avoid harmful races, pmd_none(x) should check only the lower when PAE */
91#define pmd_none(x) (!(unsigned long)pmd_val((x)))
92#define pmd_present(x) (pmd_val((x)) & _PAGE_PRESENT)
93#define pmd_bad(x) ((pmd_val(x) & (PTE_FLAGS_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
94
95#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
96
97#ifdef CONFIG_X86_PAE 48#ifdef CONFIG_X86_PAE
98# include <asm/pgtable-3level.h> 49# include <asm/pgtable-3level.h>
99#else 50#else
100# include <asm/pgtable-2level.h> 51# include <asm/pgtable-2level.h>
101#endif 52#endif
102 53
103/*
104 * Conversion functions: convert a page and protection to a page entry,
105 * and a page entry and page directory to the page they refer to.
106 */
107#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
108
109
110static inline int pud_large(pud_t pud) { return 0; }
111
112/*
113 * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD]
114 *
115 * this macro returns the index of the entry in the pmd page which would
116 * control the given virtual address
117 */
118#define pmd_index(address) \
119 (((address) >> PMD_SHIFT) & (PTRS_PER_PMD - 1))
120
121/*
122 * the pte page can be thought of an array like this: pte_t[PTRS_PER_PTE]
123 *
124 * this macro returns the index of the entry in the pte page which would
125 * control the given virtual address
126 */
127#define pte_index(address) \
128 (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
129#define pte_offset_kernel(dir, address) \
130 ((pte_t *)pmd_page_vaddr(*(dir)) + pte_index((address)))
131
132#define pmd_page(pmd) (pfn_to_page(pmd_val((pmd)) >> PAGE_SHIFT))
133
134#define pmd_page_vaddr(pmd) \
135 ((unsigned long)__va(pmd_val((pmd)) & PTE_PFN_MASK))
136
137#if defined(CONFIG_HIGHPTE) 54#if defined(CONFIG_HIGHPTE)
138#define pte_offset_map(dir, address) \ 55#define pte_offset_map(dir, address) \
139 ((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE0) + \ 56 ((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE0) + \
@@ -176,7 +93,4 @@ do { \
176#define kern_addr_valid(kaddr) (0) 93#define kern_addr_valid(kaddr) (0)
177#endif 94#endif
178 95
179#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
180 remap_pfn_range(vma, vaddr, pfn, size, prot)
181
182#endif /* _ASM_X86_PGTABLE_32_H */ 96#endif /* _ASM_X86_PGTABLE_32_H */
diff --git a/arch/x86/include/asm/pgtable_32_types.h b/arch/x86/include/asm/pgtable_32_types.h
new file mode 100644
index 000000000000..bd8df3b2fe04
--- /dev/null
+++ b/arch/x86/include/asm/pgtable_32_types.h
@@ -0,0 +1,46 @@
1#ifndef _ASM_X86_PGTABLE_32_DEFS_H
2#define _ASM_X86_PGTABLE_32_DEFS_H
3
4/*
5 * The Linux x86 paging architecture is 'compile-time dual-mode', it
6 * implements both the traditional 2-level x86 page tables and the
7 * newer 3-level PAE-mode page tables.
8 */
9#ifdef CONFIG_X86_PAE
10# include <asm/pgtable-3level_types.h>
11# define PMD_SIZE (1UL << PMD_SHIFT)
12# define PMD_MASK (~(PMD_SIZE - 1))
13#else
14# include <asm/pgtable-2level_types.h>
15#endif
16
17#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
18#define PGDIR_MASK (~(PGDIR_SIZE - 1))
19
20/* Just any arbitrary offset to the start of the vmalloc VM area: the
21 * current 8MB value just means that there will be a 8MB "hole" after the
22 * physical memory until the kernel virtual memory starts. That means that
23 * any out-of-bounds memory accesses will hopefully be caught.
24 * The vmalloc() routines leaves a hole of 4kB between each vmalloced
25 * area for the same reason. ;)
26 */
27#define VMALLOC_OFFSET (8 * 1024 * 1024)
28#define VMALLOC_START ((unsigned long)high_memory + VMALLOC_OFFSET)
29#ifdef CONFIG_X86_PAE
30#define LAST_PKMAP 512
31#else
32#define LAST_PKMAP 1024
33#endif
34
35#define PKMAP_BASE ((FIXADDR_BOOT_START - PAGE_SIZE * (LAST_PKMAP + 1)) \
36 & PMD_MASK)
37
38#ifdef CONFIG_HIGHMEM
39# define VMALLOC_END (PKMAP_BASE - 2 * PAGE_SIZE)
40#else
41# define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE)
42#endif
43
44#define MAXMEM (VMALLOC_END - PAGE_OFFSET - __VMALLOC_RESERVE)
45
46#endif /* _ASM_X86_PGTABLE_32_DEFS_H */
diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h
index ba09289accaa..6b87bc6d5018 100644
--- a/arch/x86/include/asm/pgtable_64.h
+++ b/arch/x86/include/asm/pgtable_64.h
@@ -2,6 +2,8 @@
2#define _ASM_X86_PGTABLE_64_H 2#define _ASM_X86_PGTABLE_64_H
3 3
4#include <linux/const.h> 4#include <linux/const.h>
5#include <asm/pgtable_64_types.h>
6
5#ifndef __ASSEMBLY__ 7#ifndef __ASSEMBLY__
6 8
7/* 9/*
@@ -11,7 +13,6 @@
11#include <asm/processor.h> 13#include <asm/processor.h>
12#include <linux/bitops.h> 14#include <linux/bitops.h>
13#include <linux/threads.h> 15#include <linux/threads.h>
14#include <asm/pda.h>
15 16
16extern pud_t level3_kernel_pgt[512]; 17extern pud_t level3_kernel_pgt[512];
17extern pud_t level3_ident_pgt[512]; 18extern pud_t level3_ident_pgt[512];
@@ -26,32 +27,6 @@ extern void paging_init(void);
26 27
27#endif /* !__ASSEMBLY__ */ 28#endif /* !__ASSEMBLY__ */
28 29
29#define SHARED_KERNEL_PMD 0
30
31/*
32 * PGDIR_SHIFT determines what a top-level page table entry can map
33 */
34#define PGDIR_SHIFT 39
35#define PTRS_PER_PGD 512
36
37/*
38 * 3rd level page
39 */
40#define PUD_SHIFT 30
41#define PTRS_PER_PUD 512
42
43/*
44 * PMD_SHIFT determines the size of the area a middle-level
45 * page table can map
46 */
47#define PMD_SHIFT 21
48#define PTRS_PER_PMD 512
49
50/*
51 * entries per page directory level
52 */
53#define PTRS_PER_PTE 512
54
55#ifndef __ASSEMBLY__ 30#ifndef __ASSEMBLY__
56 31
57#define pte_ERROR(e) \ 32#define pte_ERROR(e) \
@@ -67,9 +42,6 @@ extern void paging_init(void);
67 printk("%s:%d: bad pgd %p(%016lx).\n", \ 42 printk("%s:%d: bad pgd %p(%016lx).\n", \
68 __FILE__, __LINE__, &(e), pgd_val(e)) 43 __FILE__, __LINE__, &(e), pgd_val(e))
69 44
70#define pgd_none(x) (!pgd_val(x))
71#define pud_none(x) (!pud_val(x))
72
73struct mm_struct; 45struct mm_struct;
74 46
75void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte); 47void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte);
@@ -134,48 +106,6 @@ static inline void native_pgd_clear(pgd_t *pgd)
134 native_set_pgd(pgd, native_make_pgd(0)); 106 native_set_pgd(pgd, native_make_pgd(0));
135} 107}
136 108
137#define pte_same(a, b) ((a).pte == (b).pte)
138
139#endif /* !__ASSEMBLY__ */
140
141#define PMD_SIZE (_AC(1, UL) << PMD_SHIFT)
142#define PMD_MASK (~(PMD_SIZE - 1))
143#define PUD_SIZE (_AC(1, UL) << PUD_SHIFT)
144#define PUD_MASK (~(PUD_SIZE - 1))
145#define PGDIR_SIZE (_AC(1, UL) << PGDIR_SHIFT)
146#define PGDIR_MASK (~(PGDIR_SIZE - 1))
147
148
149#define MAXMEM _AC(__AC(1, UL) << MAX_PHYSMEM_BITS, UL)
150#define VMALLOC_START _AC(0xffffc20000000000, UL)
151#define VMALLOC_END _AC(0xffffe1ffffffffff, UL)
152#define VMEMMAP_START _AC(0xffffe20000000000, UL)
153#define MODULES_VADDR _AC(0xffffffffa0000000, UL)
154#define MODULES_END _AC(0xffffffffff000000, UL)
155#define MODULES_LEN (MODULES_END - MODULES_VADDR)
156
157#ifndef __ASSEMBLY__
158
159static inline int pgd_bad(pgd_t pgd)
160{
161 return (pgd_val(pgd) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE;
162}
163
164static inline int pud_bad(pud_t pud)
165{
166 return (pud_val(pud) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE;
167}
168
169static inline int pmd_bad(pmd_t pmd)
170{
171 return (pmd_val(pmd) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE;
172}
173
174#define pte_none(x) (!pte_val((x)))
175#define pte_present(x) (pte_val((x)) & (_PAGE_PRESENT | _PAGE_PROTNONE))
176
177#define pages_to_mb(x) ((x) >> (20 - PAGE_SHIFT)) /* FIXME: is this right? */
178
179/* 109/*
180 * Conversion functions: convert a page and protection to a page entry, 110 * Conversion functions: convert a page and protection to a page entry,
181 * and a page entry and page directory to the page they refer to. 111 * and a page entry and page directory to the page they refer to.
@@ -184,41 +114,12 @@ static inline int pmd_bad(pmd_t pmd)
184/* 114/*
185 * Level 4 access. 115 * Level 4 access.
186 */ 116 */
187#define pgd_page_vaddr(pgd) \
188 ((unsigned long)__va((unsigned long)pgd_val((pgd)) & PTE_PFN_MASK))
189#define pgd_page(pgd) (pfn_to_page(pgd_val((pgd)) >> PAGE_SHIFT))
190#define pgd_present(pgd) (pgd_val(pgd) & _PAGE_PRESENT)
191static inline int pgd_large(pgd_t pgd) { return 0; } 117static inline int pgd_large(pgd_t pgd) { return 0; }
192#define mk_kernel_pgd(address) __pgd((address) | _KERNPG_TABLE) 118#define mk_kernel_pgd(address) __pgd((address) | _KERNPG_TABLE)
193 119
194/* PUD - Level3 access */ 120/* PUD - Level3 access */
195/* to find an entry in a page-table-directory. */
196#define pud_page_vaddr(pud) \
197 ((unsigned long)__va(pud_val((pud)) & PHYSICAL_PAGE_MASK))
198#define pud_page(pud) (pfn_to_page(pud_val((pud)) >> PAGE_SHIFT))
199#define pud_index(address) (((address) >> PUD_SHIFT) & (PTRS_PER_PUD - 1))
200#define pud_offset(pgd, address) \
201 ((pud_t *)pgd_page_vaddr(*(pgd)) + pud_index((address)))
202#define pud_present(pud) (pud_val((pud)) & _PAGE_PRESENT)
203
204static inline int pud_large(pud_t pte)
205{
206 return (pud_val(pte) & (_PAGE_PSE | _PAGE_PRESENT)) ==
207 (_PAGE_PSE | _PAGE_PRESENT);
208}
209 121
210/* PMD - Level 2 access */ 122/* PMD - Level 2 access */
211#define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val((pmd)) & PTE_PFN_MASK))
212#define pmd_page(pmd) (pfn_to_page(pmd_val((pmd)) >> PAGE_SHIFT))
213
214#define pmd_index(address) (((address) >> PMD_SHIFT) & (PTRS_PER_PMD - 1))
215#define pmd_offset(dir, address) ((pmd_t *)pud_page_vaddr(*(dir)) + \
216 pmd_index(address))
217#define pmd_none(x) (!pmd_val((x)))
218#define pmd_present(x) (pmd_val((x)) & _PAGE_PRESENT)
219#define pfn_pmd(nr, prot) (__pmd(((nr) << PAGE_SHIFT) | pgprot_val((prot))))
220#define pmd_pfn(x) ((pmd_val((x)) & __PHYSICAL_MASK) >> PAGE_SHIFT)
221
222#define pte_to_pgoff(pte) ((pte_val((pte)) & PHYSICAL_PAGE_MASK) >> PAGE_SHIFT) 123#define pte_to_pgoff(pte) ((pte_val((pte)) & PHYSICAL_PAGE_MASK) >> PAGE_SHIFT)
223#define pgoff_to_pte(off) ((pte_t) { .pte = ((off) << PAGE_SHIFT) | \ 124#define pgoff_to_pte(off) ((pte_t) { .pte = ((off) << PAGE_SHIFT) | \
224 _PAGE_FILE }) 125 _PAGE_FILE })
@@ -226,13 +127,6 @@ static inline int pud_large(pud_t pte)
226 127
227/* PTE - Level 1 access. */ 128/* PTE - Level 1 access. */
228 129
229/* page, protection -> pte */
230#define mk_pte(page, pgprot) pfn_pte(page_to_pfn((page)), (pgprot))
231
232#define pte_index(address) (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
233#define pte_offset_kernel(dir, address) ((pte_t *) pmd_page_vaddr(*(dir)) + \
234 pte_index((address)))
235
236/* x86-64 always has all page tables mapped. */ 130/* x86-64 always has all page tables mapped. */
237#define pte_offset_map(dir, address) pte_offset_kernel((dir), (address)) 131#define pte_offset_map(dir, address) pte_offset_kernel((dir), (address))
238#define pte_offset_map_nested(dir, address) pte_offset_kernel((dir), (address)) 132#define pte_offset_map_nested(dir, address) pte_offset_kernel((dir), (address))
@@ -266,9 +160,6 @@ extern int direct_gbpages;
266extern int kern_addr_valid(unsigned long addr); 160extern int kern_addr_valid(unsigned long addr);
267extern void cleanup_highmap(void); 161extern void cleanup_highmap(void);
268 162
269#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
270 remap_pfn_range(vma, vaddr, pfn, size, prot)
271
272#define HAVE_ARCH_UNMAPPED_AREA 163#define HAVE_ARCH_UNMAPPED_AREA
273#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN 164#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
274 165
diff --git a/arch/x86/include/asm/pgtable_64_types.h b/arch/x86/include/asm/pgtable_64_types.h
new file mode 100644
index 000000000000..fbf42b8e0383
--- /dev/null
+++ b/arch/x86/include/asm/pgtable_64_types.h
@@ -0,0 +1,63 @@
1#ifndef _ASM_X86_PGTABLE_64_DEFS_H
2#define _ASM_X86_PGTABLE_64_DEFS_H
3
4#ifndef __ASSEMBLY__
5#include <linux/types.h>
6
7/*
8 * These are used to make use of C type-checking..
9 */
10typedef unsigned long pteval_t;
11typedef unsigned long pmdval_t;
12typedef unsigned long pudval_t;
13typedef unsigned long pgdval_t;
14typedef unsigned long pgprotval_t;
15
16typedef struct { pteval_t pte; } pte_t;
17
18#endif /* !__ASSEMBLY__ */
19
20#define SHARED_KERNEL_PMD 0
21#define PAGETABLE_LEVELS 4
22
23/*
24 * PGDIR_SHIFT determines what a top-level page table entry can map
25 */
26#define PGDIR_SHIFT 39
27#define PTRS_PER_PGD 512
28
29/*
30 * 3rd level page
31 */
32#define PUD_SHIFT 30
33#define PTRS_PER_PUD 512
34
35/*
36 * PMD_SHIFT determines the size of the area a middle-level
37 * page table can map
38 */
39#define PMD_SHIFT 21
40#define PTRS_PER_PMD 512
41
42/*
43 * entries per page directory level
44 */
45#define PTRS_PER_PTE 512
46
47#define PMD_SIZE (_AC(1, UL) << PMD_SHIFT)
48#define PMD_MASK (~(PMD_SIZE - 1))
49#define PUD_SIZE (_AC(1, UL) << PUD_SHIFT)
50#define PUD_MASK (~(PUD_SIZE - 1))
51#define PGDIR_SIZE (_AC(1, UL) << PGDIR_SHIFT)
52#define PGDIR_MASK (~(PGDIR_SIZE - 1))
53
54
55#define MAXMEM _AC(__AC(1, UL) << MAX_PHYSMEM_BITS, UL)
56#define VMALLOC_START _AC(0xffffc20000000000, UL)
57#define VMALLOC_END _AC(0xffffe1ffffffffff, UL)
58#define VMEMMAP_START _AC(0xffffe20000000000, UL)
59#define MODULES_VADDR _AC(0xffffffffa0000000, UL)
60#define MODULES_END _AC(0xffffffffff000000, UL)
61#define MODULES_LEN (MODULES_END - MODULES_VADDR)
62
63#endif /* _ASM_X86_PGTABLE_64_DEFS_H */
diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
new file mode 100644
index 000000000000..4d258ad76a0f
--- /dev/null
+++ b/arch/x86/include/asm/pgtable_types.h
@@ -0,0 +1,328 @@
1#ifndef _ASM_X86_PGTABLE_DEFS_H
2#define _ASM_X86_PGTABLE_DEFS_H
3
4#include <linux/const.h>
5#include <asm/page_types.h>
6
7#define FIRST_USER_ADDRESS 0
8
9#define _PAGE_BIT_PRESENT 0 /* is present */
10#define _PAGE_BIT_RW 1 /* writeable */
11#define _PAGE_BIT_USER 2 /* userspace addressable */
12#define _PAGE_BIT_PWT 3 /* page write through */
13#define _PAGE_BIT_PCD 4 /* page cache disabled */
14#define _PAGE_BIT_ACCESSED 5 /* was accessed (raised by CPU) */
15#define _PAGE_BIT_DIRTY 6 /* was written to (raised by CPU) */
16#define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */
17#define _PAGE_BIT_PAT 7 /* on 4KB pages */
18#define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */
19#define _PAGE_BIT_UNUSED1 9 /* available for programmer */
20#define _PAGE_BIT_IOMAP 10 /* flag used to indicate IO mapping */
21#define _PAGE_BIT_UNUSED3 11
22#define _PAGE_BIT_PAT_LARGE 12 /* On 2MB or 1GB pages */
23#define _PAGE_BIT_SPECIAL _PAGE_BIT_UNUSED1
24#define _PAGE_BIT_CPA_TEST _PAGE_BIT_UNUSED1
25#define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */
26
27/* If _PAGE_BIT_PRESENT is clear, we use these: */
28/* - if the user mapped it with PROT_NONE; pte_present gives true */
29#define _PAGE_BIT_PROTNONE _PAGE_BIT_GLOBAL
30/* - set: nonlinear file mapping, saved PTE; unset:swap */
31#define _PAGE_BIT_FILE _PAGE_BIT_DIRTY
32
33#define _PAGE_PRESENT (_AT(pteval_t, 1) << _PAGE_BIT_PRESENT)
34#define _PAGE_RW (_AT(pteval_t, 1) << _PAGE_BIT_RW)
35#define _PAGE_USER (_AT(pteval_t, 1) << _PAGE_BIT_USER)
36#define _PAGE_PWT (_AT(pteval_t, 1) << _PAGE_BIT_PWT)
37#define _PAGE_PCD (_AT(pteval_t, 1) << _PAGE_BIT_PCD)
38#define _PAGE_ACCESSED (_AT(pteval_t, 1) << _PAGE_BIT_ACCESSED)
39#define _PAGE_DIRTY (_AT(pteval_t, 1) << _PAGE_BIT_DIRTY)
40#define _PAGE_PSE (_AT(pteval_t, 1) << _PAGE_BIT_PSE)
41#define _PAGE_GLOBAL (_AT(pteval_t, 1) << _PAGE_BIT_GLOBAL)
42#define _PAGE_UNUSED1 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED1)
43#define _PAGE_IOMAP (_AT(pteval_t, 1) << _PAGE_BIT_IOMAP)
44#define _PAGE_UNUSED3 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED3)
45#define _PAGE_PAT (_AT(pteval_t, 1) << _PAGE_BIT_PAT)
46#define _PAGE_PAT_LARGE (_AT(pteval_t, 1) << _PAGE_BIT_PAT_LARGE)
47#define _PAGE_SPECIAL (_AT(pteval_t, 1) << _PAGE_BIT_SPECIAL)
48#define _PAGE_CPA_TEST (_AT(pteval_t, 1) << _PAGE_BIT_CPA_TEST)
49#define __HAVE_ARCH_PTE_SPECIAL
50
51#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
52#define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX)
53#else
54#define _PAGE_NX (_AT(pteval_t, 0))
55#endif
56
57#define _PAGE_FILE (_AT(pteval_t, 1) << _PAGE_BIT_FILE)
58#define _PAGE_PROTNONE (_AT(pteval_t, 1) << _PAGE_BIT_PROTNONE)
59
60#define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | \
61 _PAGE_ACCESSED | _PAGE_DIRTY)
62#define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | \
63 _PAGE_DIRTY)
64
65/* Set of bits not changed in pte_modify */
66#define _PAGE_CHG_MASK (PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT | \
67 _PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY)
68
69#define _PAGE_CACHE_MASK (_PAGE_PCD | _PAGE_PWT)
70#define _PAGE_CACHE_WB (0)
71#define _PAGE_CACHE_WC (_PAGE_PWT)
72#define _PAGE_CACHE_UC_MINUS (_PAGE_PCD)
73#define _PAGE_CACHE_UC (_PAGE_PCD | _PAGE_PWT)
74
75#define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED)
76#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | \
77 _PAGE_ACCESSED | _PAGE_NX)
78
79#define PAGE_SHARED_EXEC __pgprot(_PAGE_PRESENT | _PAGE_RW | \
80 _PAGE_USER | _PAGE_ACCESSED)
81#define PAGE_COPY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
82 _PAGE_ACCESSED | _PAGE_NX)
83#define PAGE_COPY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
84 _PAGE_ACCESSED)
85#define PAGE_COPY PAGE_COPY_NOEXEC
86#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | \
87 _PAGE_ACCESSED | _PAGE_NX)
88#define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
89 _PAGE_ACCESSED)
90
91#define __PAGE_KERNEL_EXEC \
92 (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)
93#define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX)
94
95#define __PAGE_KERNEL_RO (__PAGE_KERNEL & ~_PAGE_RW)
96#define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
97#define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT)
98#define __PAGE_KERNEL_WC (__PAGE_KERNEL | _PAGE_CACHE_WC)
99#define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT)
100#define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD)
101#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
102#define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT)
103#define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
104#define __PAGE_KERNEL_LARGE_NOCACHE (__PAGE_KERNEL | _PAGE_CACHE_UC | _PAGE_PSE)
105#define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE)
106
107#define __PAGE_KERNEL_IO (__PAGE_KERNEL | _PAGE_IOMAP)
108#define __PAGE_KERNEL_IO_NOCACHE (__PAGE_KERNEL_NOCACHE | _PAGE_IOMAP)
109#define __PAGE_KERNEL_IO_UC_MINUS (__PAGE_KERNEL_UC_MINUS | _PAGE_IOMAP)
110#define __PAGE_KERNEL_IO_WC (__PAGE_KERNEL_WC | _PAGE_IOMAP)
111
112#define PAGE_KERNEL __pgprot(__PAGE_KERNEL)
113#define PAGE_KERNEL_RO __pgprot(__PAGE_KERNEL_RO)
114#define PAGE_KERNEL_EXEC __pgprot(__PAGE_KERNEL_EXEC)
115#define PAGE_KERNEL_RX __pgprot(__PAGE_KERNEL_RX)
116#define PAGE_KERNEL_WC __pgprot(__PAGE_KERNEL_WC)
117#define PAGE_KERNEL_NOCACHE __pgprot(__PAGE_KERNEL_NOCACHE)
118#define PAGE_KERNEL_UC_MINUS __pgprot(__PAGE_KERNEL_UC_MINUS)
119#define PAGE_KERNEL_EXEC_NOCACHE __pgprot(__PAGE_KERNEL_EXEC_NOCACHE)
120#define PAGE_KERNEL_LARGE __pgprot(__PAGE_KERNEL_LARGE)
121#define PAGE_KERNEL_LARGE_NOCACHE __pgprot(__PAGE_KERNEL_LARGE_NOCACHE)
122#define PAGE_KERNEL_LARGE_EXEC __pgprot(__PAGE_KERNEL_LARGE_EXEC)
123#define PAGE_KERNEL_VSYSCALL __pgprot(__PAGE_KERNEL_VSYSCALL)
124#define PAGE_KERNEL_VSYSCALL_NOCACHE __pgprot(__PAGE_KERNEL_VSYSCALL_NOCACHE)
125
126#define PAGE_KERNEL_IO __pgprot(__PAGE_KERNEL_IO)
127#define PAGE_KERNEL_IO_NOCACHE __pgprot(__PAGE_KERNEL_IO_NOCACHE)
128#define PAGE_KERNEL_IO_UC_MINUS __pgprot(__PAGE_KERNEL_IO_UC_MINUS)
129#define PAGE_KERNEL_IO_WC __pgprot(__PAGE_KERNEL_IO_WC)
130
131/* xwr */
132#define __P000 PAGE_NONE
133#define __P001 PAGE_READONLY
134#define __P010 PAGE_COPY
135#define __P011 PAGE_COPY
136#define __P100 PAGE_READONLY_EXEC
137#define __P101 PAGE_READONLY_EXEC
138#define __P110 PAGE_COPY_EXEC
139#define __P111 PAGE_COPY_EXEC
140
141#define __S000 PAGE_NONE
142#define __S001 PAGE_READONLY
143#define __S010 PAGE_SHARED
144#define __S011 PAGE_SHARED
145#define __S100 PAGE_READONLY_EXEC
146#define __S101 PAGE_READONLY_EXEC
147#define __S110 PAGE_SHARED_EXEC
148#define __S111 PAGE_SHARED_EXEC
149
150/*
151 * early identity mapping pte attrib macros.
152 */
153#ifdef CONFIG_X86_64
154#define __PAGE_KERNEL_IDENT_LARGE_EXEC __PAGE_KERNEL_LARGE_EXEC
155#else
156/*
157 * For PDE_IDENT_ATTR include USER bit. As the PDE and PTE protection
158 * bits are combined, this will alow user to access the high address mapped
159 * VDSO in the presence of CONFIG_COMPAT_VDSO
160 */
161#define PTE_IDENT_ATTR 0x003 /* PRESENT+RW */
162#define PDE_IDENT_ATTR 0x067 /* PRESENT+RW+USER+DIRTY+ACCESSED */
163#define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
164#endif
165
166#ifdef CONFIG_X86_32
167# include "pgtable_32_types.h"
168#else
169# include "pgtable_64_types.h"
170#endif
171
172#ifndef __ASSEMBLY__
173
174#include <linux/types.h>
175
176/* PTE_PFN_MASK extracts the PFN from a (pte|pmd|pud|pgd)val_t */
177#define PTE_PFN_MASK ((pteval_t)PHYSICAL_PAGE_MASK)
178
179/* PTE_FLAGS_MASK extracts the flags from a (pte|pmd|pud|pgd)val_t */
180#define PTE_FLAGS_MASK (~PTE_PFN_MASK)
181
182typedef struct pgprot { pgprotval_t pgprot; } pgprot_t;
183
184typedef struct { pgdval_t pgd; } pgd_t;
185
186static inline pgd_t native_make_pgd(pgdval_t val)
187{
188 return (pgd_t) { val };
189}
190
191static inline pgdval_t native_pgd_val(pgd_t pgd)
192{
193 return pgd.pgd;
194}
195
196static inline pgdval_t pgd_flags(pgd_t pgd)
197{
198 return native_pgd_val(pgd) & PTE_FLAGS_MASK;
199}
200
201#if PAGETABLE_LEVELS > 3
202typedef struct { pudval_t pud; } pud_t;
203
204static inline pud_t native_make_pud(pmdval_t val)
205{
206 return (pud_t) { val };
207}
208
209static inline pudval_t native_pud_val(pud_t pud)
210{
211 return pud.pud;
212}
213#else
214#include <asm-generic/pgtable-nopud.h>
215
216static inline pudval_t native_pud_val(pud_t pud)
217{
218 return native_pgd_val(pud.pgd);
219}
220#endif
221
222#if PAGETABLE_LEVELS > 2
223typedef struct { pmdval_t pmd; } pmd_t;
224
225static inline pmd_t native_make_pmd(pmdval_t val)
226{
227 return (pmd_t) { val };
228}
229
230static inline pmdval_t native_pmd_val(pmd_t pmd)
231{
232 return pmd.pmd;
233}
234#else
235#include <asm-generic/pgtable-nopmd.h>
236
237static inline pmdval_t native_pmd_val(pmd_t pmd)
238{
239 return native_pgd_val(pmd.pud.pgd);
240}
241#endif
242
243static inline pudval_t pud_flags(pud_t pud)
244{
245 return native_pud_val(pud) & PTE_FLAGS_MASK;
246}
247
248static inline pmdval_t pmd_flags(pmd_t pmd)
249{
250 return native_pmd_val(pmd) & PTE_FLAGS_MASK;
251}
252
253static inline pte_t native_make_pte(pteval_t val)
254{
255 return (pte_t) { .pte = val };
256}
257
258static inline pteval_t native_pte_val(pte_t pte)
259{
260 return pte.pte;
261}
262
263static inline pteval_t pte_flags(pte_t pte)
264{
265 return native_pte_val(pte) & PTE_FLAGS_MASK;
266}
267
268#define pgprot_val(x) ((x).pgprot)
269#define __pgprot(x) ((pgprot_t) { (x) } )
270
271
272typedef struct page *pgtable_t;
273
274extern pteval_t __supported_pte_mask;
275extern int nx_enabled;
276
277#define pgprot_writecombine pgprot_writecombine
278extern pgprot_t pgprot_writecombine(pgprot_t prot);
279
280/* Indicate that x86 has its own track and untrack pfn vma functions */
281#define __HAVE_PFNMAP_TRACKING
282
283#define __HAVE_PHYS_MEM_ACCESS_PROT
284struct file;
285pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
286 unsigned long size, pgprot_t vma_prot);
287int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
288 unsigned long size, pgprot_t *vma_prot);
289
290/* Install a pte for a particular vaddr in kernel space. */
291void set_pte_vaddr(unsigned long vaddr, pte_t pte);
292
293#ifdef CONFIG_X86_32
294extern void native_pagetable_setup_start(pgd_t *base);
295extern void native_pagetable_setup_done(pgd_t *base);
296#else
297static inline void native_pagetable_setup_start(pgd_t *base) {}
298static inline void native_pagetable_setup_done(pgd_t *base) {}
299#endif
300
301struct seq_file;
302extern void arch_report_meminfo(struct seq_file *m);
303
304enum {
305 PG_LEVEL_NONE,
306 PG_LEVEL_4K,
307 PG_LEVEL_2M,
308 PG_LEVEL_1G,
309 PG_LEVEL_NUM
310};
311
312#ifdef CONFIG_PROC_FS
313extern void update_page_count(int level, unsigned long pages);
314#else
315static inline void update_page_count(int level, unsigned long pages) { }
316#endif
317
318/*
319 * Helper function that returns the kernel pagetable entry controlling
320 * the virtual address 'address'. NULL means no pagetable entry present.
321 * NOTE: the return type is pte_t but if the pmd is PSE then we return it
322 * as a pte too.
323 */
324extern pte_t *lookup_address(unsigned long address, unsigned int *level);
325
326#endif /* !__ASSEMBLY__ */
327
328#endif /* _ASM_X86_PGTABLE_DEFS_H */
diff --git a/arch/x86/include/asm/prctl.h b/arch/x86/include/asm/prctl.h
index a8894647dd9a..3ac5032fae09 100644
--- a/arch/x86/include/asm/prctl.h
+++ b/arch/x86/include/asm/prctl.h
@@ -6,8 +6,4 @@
6#define ARCH_GET_FS 0x1003 6#define ARCH_GET_FS 0x1003
7#define ARCH_GET_GS 0x1004 7#define ARCH_GET_GS 0x1004
8 8
9#ifdef CONFIG_X86_64
10extern long sys_arch_prctl(int, unsigned long);
11#endif /* CONFIG_X86_64 */
12
13#endif /* _ASM_X86_PRCTL_H */ 9#endif /* _ASM_X86_PRCTL_H */
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
index 091cd8855f2e..76139506c3e4 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -16,6 +16,7 @@ struct mm_struct;
16#include <asm/cpufeature.h> 16#include <asm/cpufeature.h>
17#include <asm/system.h> 17#include <asm/system.h>
18#include <asm/page.h> 18#include <asm/page.h>
19#include <asm/pgtable_types.h>
19#include <asm/percpu.h> 20#include <asm/percpu.h>
20#include <asm/msr.h> 21#include <asm/msr.h>
21#include <asm/desc_defs.h> 22#include <asm/desc_defs.h>
@@ -73,7 +74,7 @@ struct cpuinfo_x86 {
73 char pad0; 74 char pad0;
74#else 75#else
75 /* Number of 4K pages in DTLB/ITLB combined(in pages): */ 76 /* Number of 4K pages in DTLB/ITLB combined(in pages): */
76 int x86_tlbsize; 77 int x86_tlbsize;
77 __u8 x86_virt_bits; 78 __u8 x86_virt_bits;
78 __u8 x86_phys_bits; 79 __u8 x86_phys_bits;
79#endif 80#endif
@@ -247,7 +248,6 @@ struct x86_hw_tss {
247#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long)) 248#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
248#define IO_BITMAP_OFFSET offsetof(struct tss_struct, io_bitmap) 249#define IO_BITMAP_OFFSET offsetof(struct tss_struct, io_bitmap)
249#define INVALID_IO_BITMAP_OFFSET 0x8000 250#define INVALID_IO_BITMAP_OFFSET 0x8000
250#define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
251 251
252struct tss_struct { 252struct tss_struct {
253 /* 253 /*
@@ -262,11 +262,6 @@ struct tss_struct {
262 * be within the limit. 262 * be within the limit.
263 */ 263 */
264 unsigned long io_bitmap[IO_BITMAP_LONGS + 1]; 264 unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
265 /*
266 * Cache the current maximum and the last task that used the bitmap:
267 */
268 unsigned long io_bitmap_max;
269 struct thread_struct *io_bitmap_owner;
270 265
271 /* 266 /*
272 * .. and then another 0x100 bytes for the emergency kernel stack: 267 * .. and then another 0x100 bytes for the emergency kernel stack:
@@ -353,7 +348,7 @@ struct i387_soft_struct {
353 u8 no_update; 348 u8 no_update;
354 u8 rm; 349 u8 rm;
355 u8 alimit; 350 u8 alimit;
356 struct info *info; 351 struct math_emu_info *info;
357 u32 entry_eip; 352 u32 entry_eip;
358}; 353};
359 354
@@ -378,9 +373,30 @@ union thread_xstate {
378 373
379#ifdef CONFIG_X86_64 374#ifdef CONFIG_X86_64
380DECLARE_PER_CPU(struct orig_ist, orig_ist); 375DECLARE_PER_CPU(struct orig_ist, orig_ist);
376
377union irq_stack_union {
378 char irq_stack[IRQ_STACK_SIZE];
379 /*
380 * GCC hardcodes the stack canary as %gs:40. Since the
381 * irq_stack is the object at %gs:0, we reserve the bottom
382 * 48 bytes of the irq stack for the canary.
383 */
384 struct {
385 char gs_base[40];
386 unsigned long stack_canary;
387 };
388};
389
390DECLARE_PER_CPU(union irq_stack_union, irq_stack_union);
391DECLARE_INIT_PER_CPU(irq_stack_union);
392
393DECLARE_PER_CPU(char *, irq_stack_ptr);
394#else /* X86_64 */
395#ifdef CONFIG_CC_STACKPROTECTOR
396DECLARE_PER_CPU(unsigned long, stack_canary);
381#endif 397#endif
398#endif /* X86_64 */
382 399
383extern void print_cpu_info(struct cpuinfo_x86 *);
384extern unsigned int xstate_size; 400extern unsigned int xstate_size;
385extern void free_thread_xstate(struct task_struct *); 401extern void free_thread_xstate(struct task_struct *);
386extern struct kmem_cache *task_xstate_cachep; 402extern struct kmem_cache *task_xstate_cachep;
@@ -752,9 +768,9 @@ extern int sysenter_setup(void);
752extern struct desc_ptr early_gdt_descr; 768extern struct desc_ptr early_gdt_descr;
753 769
754extern void cpu_set_gdt(int); 770extern void cpu_set_gdt(int);
755extern void switch_to_new_gdt(void); 771extern void switch_to_new_gdt(int);
772extern void load_percpu_segment(int);
756extern void cpu_init(void); 773extern void cpu_init(void);
757extern void init_gdt(int cpu);
758 774
759static inline unsigned long get_debugctlmsr(void) 775static inline unsigned long get_debugctlmsr(void)
760{ 776{
@@ -839,6 +855,7 @@ static inline void spin_lock_prefetch(const void *x)
839 * User space process size: 3GB (default). 855 * User space process size: 3GB (default).
840 */ 856 */
841#define TASK_SIZE PAGE_OFFSET 857#define TASK_SIZE PAGE_OFFSET
858#define TASK_SIZE_MAX TASK_SIZE
842#define STACK_TOP TASK_SIZE 859#define STACK_TOP TASK_SIZE
843#define STACK_TOP_MAX STACK_TOP 860#define STACK_TOP_MAX STACK_TOP
844 861
@@ -898,7 +915,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
898/* 915/*
899 * User space process size. 47bits minus one guard page. 916 * User space process size. 47bits minus one guard page.
900 */ 917 */
901#define TASK_SIZE64 ((1UL << 47) - PAGE_SIZE) 918#define TASK_SIZE_MAX ((1UL << 47) - PAGE_SIZE)
902 919
903/* This decides where the kernel will search for a free chunk of vm 920/* This decides where the kernel will search for a free chunk of vm
904 * space during mmap's. 921 * space during mmap's.
@@ -907,12 +924,12 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
907 0xc0000000 : 0xFFFFe000) 924 0xc0000000 : 0xFFFFe000)
908 925
909#define TASK_SIZE (test_thread_flag(TIF_IA32) ? \ 926#define TASK_SIZE (test_thread_flag(TIF_IA32) ? \
910 IA32_PAGE_OFFSET : TASK_SIZE64) 927 IA32_PAGE_OFFSET : TASK_SIZE_MAX)
911#define TASK_SIZE_OF(child) ((test_tsk_thread_flag(child, TIF_IA32)) ? \ 928#define TASK_SIZE_OF(child) ((test_tsk_thread_flag(child, TIF_IA32)) ? \
912 IA32_PAGE_OFFSET : TASK_SIZE64) 929 IA32_PAGE_OFFSET : TASK_SIZE_MAX)
913 930
914#define STACK_TOP TASK_SIZE 931#define STACK_TOP TASK_SIZE
915#define STACK_TOP_MAX TASK_SIZE64 932#define STACK_TOP_MAX TASK_SIZE_MAX
916 933
917#define INIT_THREAD { \ 934#define INIT_THREAD { \
918 .sp0 = (unsigned long)&init_stack + sizeof(init_stack) \ 935 .sp0 = (unsigned long)&init_stack + sizeof(init_stack) \
diff --git a/arch/x86/include/asm/proto.h b/arch/x86/include/asm/proto.h
index d6a22f92ba77..49fb3ecf3bb3 100644
--- a/arch/x86/include/asm/proto.h
+++ b/arch/x86/include/asm/proto.h
@@ -18,11 +18,7 @@ extern void syscall32_cpu_init(void);
18 18
19extern void check_efer(void); 19extern void check_efer(void);
20 20
21#ifdef CONFIG_X86_BIOS_REBOOT
22extern int reboot_force; 21extern int reboot_force;
23#else
24static const int reboot_force = 0;
25#endif
26 22
27long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); 23long do_arch_prctl(struct task_struct *task, int code, unsigned long addr);
28 24
diff --git a/arch/x86/include/asm/ptrace-abi.h b/arch/x86/include/asm/ptrace-abi.h
index 25f1bb8fc626..8e0f8d199e05 100644
--- a/arch/x86/include/asm/ptrace-abi.h
+++ b/arch/x86/include/asm/ptrace-abi.h
@@ -83,7 +83,7 @@
83#ifdef CONFIG_X86_PTRACE_BTS 83#ifdef CONFIG_X86_PTRACE_BTS
84 84
85#ifndef __ASSEMBLY__ 85#ifndef __ASSEMBLY__
86#include <asm/types.h> 86#include <linux/types.h>
87 87
88/* configuration/status structure used in PTRACE_BTS_CONFIG and 88/* configuration/status structure used in PTRACE_BTS_CONFIG and
89 PTRACE_BTS_STATUS commands. 89 PTRACE_BTS_STATUS commands.
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
index 6d34d954c228..e304b66abeea 100644
--- a/arch/x86/include/asm/ptrace.h
+++ b/arch/x86/include/asm/ptrace.h
@@ -28,7 +28,7 @@ struct pt_regs {
28 int xds; 28 int xds;
29 int xes; 29 int xes;
30 int xfs; 30 int xfs;
31 /* int gs; */ 31 int xgs;
32 long orig_eax; 32 long orig_eax;
33 long eip; 33 long eip;
34 int xcs; 34 int xcs;
@@ -50,7 +50,7 @@ struct pt_regs {
50 unsigned long ds; 50 unsigned long ds;
51 unsigned long es; 51 unsigned long es;
52 unsigned long fs; 52 unsigned long fs;
53 /* int gs; */ 53 unsigned long gs;
54 unsigned long orig_ax; 54 unsigned long orig_ax;
55 unsigned long ip; 55 unsigned long ip;
56 unsigned long cs; 56 unsigned long cs;
diff --git a/arch/x86/include/asm/mach-rdc321x/rdc321x_defs.h b/arch/x86/include/asm/rdc321x_defs.h
index c8e9c8bed3d0..c8e9c8bed3d0 100644
--- a/arch/x86/include/asm/mach-rdc321x/rdc321x_defs.h
+++ b/arch/x86/include/asm/rdc321x_defs.h
diff --git a/arch/x86/include/asm/seccomp_32.h b/arch/x86/include/asm/seccomp_32.h
index a6ad87b352c4..b811d6f5780c 100644
--- a/arch/x86/include/asm/seccomp_32.h
+++ b/arch/x86/include/asm/seccomp_32.h
@@ -1,12 +1,6 @@
1#ifndef _ASM_X86_SECCOMP_32_H 1#ifndef _ASM_X86_SECCOMP_32_H
2#define _ASM_X86_SECCOMP_32_H 2#define _ASM_X86_SECCOMP_32_H
3 3
4#include <linux/thread_info.h>
5
6#ifdef TIF_32BIT
7#error "unexpected TIF_32BIT on i386"
8#endif
9
10#include <linux/unistd.h> 4#include <linux/unistd.h>
11 5
12#define __NR_seccomp_read __NR_read 6#define __NR_seccomp_read __NR_read
diff --git a/arch/x86/include/asm/seccomp_64.h b/arch/x86/include/asm/seccomp_64.h
index 4171bb794e9e..84ec1bd161a5 100644
--- a/arch/x86/include/asm/seccomp_64.h
+++ b/arch/x86/include/asm/seccomp_64.h
@@ -1,14 +1,6 @@
1#ifndef _ASM_X86_SECCOMP_64_H 1#ifndef _ASM_X86_SECCOMP_64_H
2#define _ASM_X86_SECCOMP_64_H 2#define _ASM_X86_SECCOMP_64_H
3 3
4#include <linux/thread_info.h>
5
6#ifdef TIF_32BIT
7#error "unexpected TIF_32BIT on x86_64"
8#else
9#define TIF_32BIT TIF_IA32
10#endif
11
12#include <linux/unistd.h> 4#include <linux/unistd.h>
13#include <asm/ia32_unistd.h> 5#include <asm/ia32_unistd.h>
14 6
diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
index 1dc1b51ac623..14e0ed86a6f9 100644
--- a/arch/x86/include/asm/segment.h
+++ b/arch/x86/include/asm/segment.h
@@ -61,7 +61,7 @@
61 * 61 *
62 * 26 - ESPFIX small SS 62 * 26 - ESPFIX small SS
63 * 27 - per-cpu [ offset to per-cpu data area ] 63 * 27 - per-cpu [ offset to per-cpu data area ]
64 * 28 - unused 64 * 28 - stack_canary-20 [ for stack protector ]
65 * 29 - unused 65 * 29 - unused
66 * 30 - unused 66 * 30 - unused
67 * 31 - TSS for double fault handler 67 * 31 - TSS for double fault handler
@@ -95,6 +95,13 @@
95#define __KERNEL_PERCPU 0 95#define __KERNEL_PERCPU 0
96#endif 96#endif
97 97
98#define GDT_ENTRY_STACK_CANARY (GDT_ENTRY_KERNEL_BASE + 16)
99#ifdef CONFIG_CC_STACKPROTECTOR
100#define __KERNEL_STACK_CANARY (GDT_ENTRY_STACK_CANARY * 8)
101#else
102#define __KERNEL_STACK_CANARY 0
103#endif
104
98#define GDT_ENTRY_DOUBLEFAULT_TSS 31 105#define GDT_ENTRY_DOUBLEFAULT_TSS 31
99 106
100/* 107/*
diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
index 4fcd53fd5f43..05c6f6b11fd5 100644
--- a/arch/x86/include/asm/setup.h
+++ b/arch/x86/include/asm/setup.h
@@ -1,33 +1,19 @@
1#ifndef _ASM_X86_SETUP_H 1#ifndef _ASM_X86_SETUP_H
2#define _ASM_X86_SETUP_H 2#define _ASM_X86_SETUP_H
3 3
4#ifdef __KERNEL__
5
4#define COMMAND_LINE_SIZE 2048 6#define COMMAND_LINE_SIZE 2048
5 7
6#ifndef __ASSEMBLY__ 8#ifndef __ASSEMBLY__
7 9
8/* Interrupt control for vSMPowered x86_64 systems */
9void vsmp_init(void);
10
11
12void setup_bios_corruption_check(void);
13
14
15#ifdef CONFIG_X86_VISWS
16extern void visws_early_detect(void);
17extern int is_visws_box(void);
18#else
19static inline void visws_early_detect(void) { }
20static inline int is_visws_box(void) { return 0; }
21#endif
22
23extern int wakeup_secondary_cpu_via_nmi(int apicid, unsigned long start_eip);
24extern int wakeup_secondary_cpu_via_init(int apicid, unsigned long start_eip);
25/* 10/*
26 * Any setup quirks to be performed? 11 * Any setup quirks to be performed?
27 */ 12 */
28struct mpc_config_processor; 13struct mpc_cpu;
29struct mpc_config_bus; 14struct mpc_bus;
30struct mp_config_oemtable; 15struct mpc_oemtable;
16
31struct x86_quirks { 17struct x86_quirks {
32 int (*arch_pre_time_init)(void); 18 int (*arch_pre_time_init)(void);
33 int (*arch_time_init)(void); 19 int (*arch_time_init)(void);
@@ -39,24 +25,23 @@ struct x86_quirks {
39 int (*mach_find_smp_config)(unsigned int reserve); 25 int (*mach_find_smp_config)(unsigned int reserve);
40 26
41 int *mpc_record; 27 int *mpc_record;
42 int (*mpc_apic_id)(struct mpc_config_processor *m); 28 int (*mpc_apic_id)(struct mpc_cpu *m);
43 void (*mpc_oem_bus_info)(struct mpc_config_bus *m, char *name); 29 void (*mpc_oem_bus_info)(struct mpc_bus *m, char *name);
44 void (*mpc_oem_pci_bus)(struct mpc_config_bus *m); 30 void (*mpc_oem_pci_bus)(struct mpc_bus *m);
45 void (*smp_read_mpc_oem)(struct mp_config_oemtable *oemtable, 31 void (*smp_read_mpc_oem)(struct mpc_oemtable *oemtable,
46 unsigned short oemsize); 32 unsigned short oemsize);
47 int (*setup_ioapic_ids)(void); 33 int (*setup_ioapic_ids)(void);
48 int (*update_genapic)(void);
49}; 34};
50 35
51extern struct x86_quirks *x86_quirks; 36extern void x86_quirk_pre_intr_init(void);
52extern unsigned long saved_video_mode; 37extern void x86_quirk_intr_init(void);
53 38
54#ifndef CONFIG_PARAVIRT 39extern void x86_quirk_trap_init(void);
55#define paravirt_post_allocator_init() do {} while (0)
56#endif
57#endif /* __ASSEMBLY__ */
58 40
59#ifdef __KERNEL__ 41extern void x86_quirk_pre_time_init(void);
42extern void x86_quirk_time_init(void);
43
44#endif /* __ASSEMBLY__ */
60 45
61#ifdef __i386__ 46#ifdef __i386__
62 47
@@ -78,6 +63,30 @@ extern unsigned long saved_video_mode;
78#ifndef __ASSEMBLY__ 63#ifndef __ASSEMBLY__
79#include <asm/bootparam.h> 64#include <asm/bootparam.h>
80 65
66/* Interrupt control for vSMPowered x86_64 systems */
67#ifdef CONFIG_X86_VSMP
68void vsmp_init(void);
69#else
70static inline void vsmp_init(void) { }
71#endif
72
73void setup_bios_corruption_check(void);
74
75#ifdef CONFIG_X86_VISWS
76extern void visws_early_detect(void);
77extern int is_visws_box(void);
78#else
79static inline void visws_early_detect(void) { }
80static inline int is_visws_box(void) { return 0; }
81#endif
82
83extern struct x86_quirks *x86_quirks;
84extern unsigned long saved_video_mode;
85
86#ifndef CONFIG_PARAVIRT
87#define paravirt_post_allocator_init() do {} while (0)
88#endif
89
81#ifndef _SETUP 90#ifndef _SETUP
82 91
83/* 92/*
@@ -100,7 +109,6 @@ extern unsigned long init_pg_tables_start;
100extern unsigned long init_pg_tables_end; 109extern unsigned long init_pg_tables_end;
101 110
102#else 111#else
103void __init x86_64_init_pda(void);
104void __init x86_64_start_kernel(char *real_mode); 112void __init x86_64_start_kernel(char *real_mode);
105void __init x86_64_start_reservations(char *real_mode_data); 113void __init x86_64_start_reservations(char *real_mode_data);
106 114
diff --git a/arch/x86/include/asm/mach-default/setup_arch.h b/arch/x86/include/asm/setup_arch.h
index 38846208b548..38846208b548 100644
--- a/arch/x86/include/asm/mach-default/setup_arch.h
+++ b/arch/x86/include/asm/setup_arch.h
diff --git a/arch/x86/include/asm/sigcontext.h b/arch/x86/include/asm/sigcontext.h
index 0afcb5e58acc..ec666491aaa4 100644
--- a/arch/x86/include/asm/sigcontext.h
+++ b/arch/x86/include/asm/sigcontext.h
@@ -2,7 +2,7 @@
2#define _ASM_X86_SIGCONTEXT_H 2#define _ASM_X86_SIGCONTEXT_H
3 3
4#include <linux/compiler.h> 4#include <linux/compiler.h>
5#include <asm/types.h> 5#include <linux/types.h>
6 6
7#define FP_XSTATE_MAGIC1 0x46505853U 7#define FP_XSTATE_MAGIC1 0x46505853U
8#define FP_XSTATE_MAGIC2 0x46505845U 8#define FP_XSTATE_MAGIC2 0x46505845U
diff --git a/arch/x86/include/asm/sigcontext32.h b/arch/x86/include/asm/sigcontext32.h
index 6126188cf3a9..ad1478c4ae12 100644
--- a/arch/x86/include/asm/sigcontext32.h
+++ b/arch/x86/include/asm/sigcontext32.h
@@ -1,6 +1,8 @@
1#ifndef _ASM_X86_SIGCONTEXT32_H 1#ifndef _ASM_X86_SIGCONTEXT32_H
2#define _ASM_X86_SIGCONTEXT32_H 2#define _ASM_X86_SIGCONTEXT32_H
3 3
4#include <linux/types.h>
5
4/* signal context for 32bit programs. */ 6/* signal context for 32bit programs. */
5 7
6#define X86_FXSR_MAGIC 0x0000 8#define X86_FXSR_MAGIC 0x0000
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 830b9fcb6427..47d0e21f2b9e 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -15,28 +15,26 @@
15# include <asm/io_apic.h> 15# include <asm/io_apic.h>
16# endif 16# endif
17#endif 17#endif
18#include <asm/pda.h>
19#include <asm/thread_info.h> 18#include <asm/thread_info.h>
20 19#include <asm/cpumask.h>
21extern cpumask_t cpu_callout_map;
22extern cpumask_t cpu_initialized;
23extern cpumask_t cpu_callin_map;
24
25extern void (*mtrr_hook)(void);
26extern void zap_low_mappings(void);
27
28extern int __cpuinit get_local_pda(int cpu);
29 20
30extern int smp_num_siblings; 21extern int smp_num_siblings;
31extern unsigned int num_processors; 22extern unsigned int num_processors;
32extern cpumask_t cpu_initialized;
33 23
34DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); 24DECLARE_PER_CPU(cpumask_t, cpu_sibling_map);
35DECLARE_PER_CPU(cpumask_t, cpu_core_map); 25DECLARE_PER_CPU(cpumask_t, cpu_core_map);
36DECLARE_PER_CPU(u16, cpu_llc_id); 26DECLARE_PER_CPU(u16, cpu_llc_id);
37#ifdef CONFIG_X86_32
38DECLARE_PER_CPU(int, cpu_number); 27DECLARE_PER_CPU(int, cpu_number);
39#endif 28
29static inline struct cpumask *cpu_sibling_mask(int cpu)
30{
31 return &per_cpu(cpu_sibling_map, cpu);
32}
33
34static inline struct cpumask *cpu_core_mask(int cpu)
35{
36 return &per_cpu(cpu_core_map, cpu);
37}
40 38
41DECLARE_EARLY_PER_CPU(u16, x86_cpu_to_apicid); 39DECLARE_EARLY_PER_CPU(u16, x86_cpu_to_apicid);
42DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid); 40DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid);
@@ -141,19 +139,13 @@ void play_dead_common(void);
141void native_send_call_func_ipi(const struct cpumask *mask); 139void native_send_call_func_ipi(const struct cpumask *mask);
142void native_send_call_func_single_ipi(int cpu); 140void native_send_call_func_single_ipi(int cpu);
143 141
144extern void prefill_possible_map(void);
145
146void smp_store_cpu_info(int id); 142void smp_store_cpu_info(int id);
147#define cpu_physical_id(cpu) per_cpu(x86_cpu_to_apicid, cpu) 143#define cpu_physical_id(cpu) per_cpu(x86_cpu_to_apicid, cpu)
148 144
149/* We don't mark CPUs online until __cpu_up(), so we need another measure */ 145/* We don't mark CPUs online until __cpu_up(), so we need another measure */
150static inline int num_booting_cpus(void) 146static inline int num_booting_cpus(void)
151{ 147{
152 return cpus_weight(cpu_callout_map); 148 return cpumask_weight(cpu_callout_mask);
153}
154#else
155static inline void prefill_possible_map(void)
156{
157} 149}
158#endif /* CONFIG_SMP */ 150#endif /* CONFIG_SMP */
159 151
@@ -165,11 +157,11 @@ extern unsigned disabled_cpus __cpuinitdata;
165 * from the initial startup. We map APIC_BASE very early in page_setup(), 157 * from the initial startup. We map APIC_BASE very early in page_setup(),
166 * so this is correct in the x86 case. 158 * so this is correct in the x86 case.
167 */ 159 */
168#define raw_smp_processor_id() (x86_read_percpu(cpu_number)) 160#define raw_smp_processor_id() (percpu_read(cpu_number))
169extern int safe_smp_processor_id(void); 161extern int safe_smp_processor_id(void);
170 162
171#elif defined(CONFIG_X86_64_SMP) 163#elif defined(CONFIG_X86_64_SMP)
172#define raw_smp_processor_id() read_pda(cpunumber) 164#define raw_smp_processor_id() (percpu_read(cpu_number))
173 165
174#define stack_smp_processor_id() \ 166#define stack_smp_processor_id() \
175({ \ 167({ \
@@ -179,10 +171,6 @@ extern int safe_smp_processor_id(void);
179}) 171})
180#define safe_smp_processor_id() smp_processor_id() 172#define safe_smp_processor_id() smp_processor_id()
181 173
182#else /* !CONFIG_X86_32_SMP && !CONFIG_X86_64_SMP */
183#define cpu_physical_id(cpu) boot_cpu_physical_apicid
184#define safe_smp_processor_id() 0
185#define stack_smp_processor_id() 0
186#endif 174#endif
187 175
188#ifdef CONFIG_X86_LOCAL_APIC 176#ifdef CONFIG_X86_LOCAL_APIC
@@ -194,28 +182,9 @@ static inline int logical_smp_processor_id(void)
194 return GET_APIC_LOGICAL_ID(*(u32 *)(APIC_BASE + APIC_LDR)); 182 return GET_APIC_LOGICAL_ID(*(u32 *)(APIC_BASE + APIC_LDR));
195} 183}
196 184
197#include <mach_apicdef.h>
198static inline unsigned int read_apic_id(void)
199{
200 unsigned int reg;
201
202 reg = *(u32 *)(APIC_BASE + APIC_ID);
203
204 return GET_APIC_ID(reg);
205}
206#endif 185#endif
207 186
208
209# if defined(APIC_DEFINITION) || defined(CONFIG_X86_64)
210extern int hard_smp_processor_id(void); 187extern int hard_smp_processor_id(void);
211# else
212#include <mach_apicdef.h>
213static inline int hard_smp_processor_id(void)
214{
215 /* we don't want to mark this access volatile - bad code generation */
216 return read_apic_id();
217}
218# endif /* APIC_DEFINITION */
219 188
220#else /* CONFIG_X86_LOCAL_APIC */ 189#else /* CONFIG_X86_LOCAL_APIC */
221 190
@@ -225,11 +194,5 @@ static inline int hard_smp_processor_id(void)
225 194
226#endif /* CONFIG_X86_LOCAL_APIC */ 195#endif /* CONFIG_X86_LOCAL_APIC */
227 196
228#ifdef CONFIG_X86_HAS_BOOT_CPU_ID
229extern unsigned char boot_cpu_id;
230#else
231#define boot_cpu_id 0
232#endif
233
234#endif /* __ASSEMBLY__ */ 197#endif /* __ASSEMBLY__ */
235#endif /* _ASM_X86_SMP_H */ 198#endif /* _ASM_X86_SMP_H */
diff --git a/arch/x86/include/asm/mach-default/smpboot_hooks.h b/arch/x86/include/asm/smpboot_hooks.h
index 23bf52103b89..1def60114906 100644
--- a/arch/x86/include/asm/mach-default/smpboot_hooks.h
+++ b/arch/x86/include/asm/smpboot_hooks.h
@@ -13,10 +13,10 @@ static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip)
13 CMOS_WRITE(0xa, 0xf); 13 CMOS_WRITE(0xa, 0xf);
14 local_flush_tlb(); 14 local_flush_tlb();
15 pr_debug("1.\n"); 15 pr_debug("1.\n");
16 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH)) = 16 *((volatile unsigned short *)phys_to_virt(apic->trampoline_phys_high)) =
17 start_eip >> 4; 17 start_eip >> 4;
18 pr_debug("2.\n"); 18 pr_debug("2.\n");
19 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) = 19 *((volatile unsigned short *)phys_to_virt(apic->trampoline_phys_low)) =
20 start_eip & 0xf; 20 start_eip & 0xf;
21 pr_debug("3.\n"); 21 pr_debug("3.\n");
22} 22}
@@ -34,7 +34,7 @@ static inline void smpboot_restore_warm_reset_vector(void)
34 */ 34 */
35 CMOS_WRITE(0, 0xf); 35 CMOS_WRITE(0, 0xf);
36 36
37 *((volatile long *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) = 0; 37 *((volatile long *)phys_to_virt(apic->trampoline_phys_low)) = 0;
38} 38}
39 39
40static inline void __init smpboot_setup_io_apic(void) 40static inline void __init smpboot_setup_io_apic(void)
diff --git a/arch/x86/include/asm/spinlock.h b/arch/x86/include/asm/spinlock.h
index d17c91981da2..3a5696656680 100644
--- a/arch/x86/include/asm/spinlock.h
+++ b/arch/x86/include/asm/spinlock.h
@@ -172,70 +172,8 @@ static inline int __ticket_spin_is_contended(raw_spinlock_t *lock)
172 return (((tmp >> TICKET_SHIFT) - tmp) & ((1 << TICKET_SHIFT) - 1)) > 1; 172 return (((tmp >> TICKET_SHIFT) - tmp) & ((1 << TICKET_SHIFT) - 1)) > 1;
173} 173}
174 174
175#ifdef CONFIG_PARAVIRT 175#ifndef CONFIG_PARAVIRT
176/*
177 * Define virtualization-friendly old-style lock byte lock, for use in
178 * pv_lock_ops if desired.
179 *
180 * This differs from the pre-2.6.24 spinlock by always using xchgb
181 * rather than decb to take the lock; this allows it to use a
182 * zero-initialized lock structure. It also maintains a 1-byte
183 * contention counter, so that we can implement
184 * __byte_spin_is_contended.
185 */
186struct __byte_spinlock {
187 s8 lock;
188 s8 spinners;
189};
190
191static inline int __byte_spin_is_locked(raw_spinlock_t *lock)
192{
193 struct __byte_spinlock *bl = (struct __byte_spinlock *)lock;
194 return bl->lock != 0;
195}
196
197static inline int __byte_spin_is_contended(raw_spinlock_t *lock)
198{
199 struct __byte_spinlock *bl = (struct __byte_spinlock *)lock;
200 return bl->spinners != 0;
201}
202
203static inline void __byte_spin_lock(raw_spinlock_t *lock)
204{
205 struct __byte_spinlock *bl = (struct __byte_spinlock *)lock;
206 s8 val = 1;
207
208 asm("1: xchgb %1, %0\n"
209 " test %1,%1\n"
210 " jz 3f\n"
211 " " LOCK_PREFIX "incb %2\n"
212 "2: rep;nop\n"
213 " cmpb $1, %0\n"
214 " je 2b\n"
215 " " LOCK_PREFIX "decb %2\n"
216 " jmp 1b\n"
217 "3:"
218 : "+m" (bl->lock), "+q" (val), "+m" (bl->spinners): : "memory");
219}
220
221static inline int __byte_spin_trylock(raw_spinlock_t *lock)
222{
223 struct __byte_spinlock *bl = (struct __byte_spinlock *)lock;
224 u8 old = 1;
225
226 asm("xchgb %1,%0"
227 : "+m" (bl->lock), "+q" (old) : : "memory");
228 176
229 return old == 0;
230}
231
232static inline void __byte_spin_unlock(raw_spinlock_t *lock)
233{
234 struct __byte_spinlock *bl = (struct __byte_spinlock *)lock;
235 smp_wmb();
236 bl->lock = 0;
237}
238#else /* !CONFIG_PARAVIRT */
239static inline int __raw_spin_is_locked(raw_spinlock_t *lock) 177static inline int __raw_spin_is_locked(raw_spinlock_t *lock)
240{ 178{
241 return __ticket_spin_is_locked(lock); 179 return __ticket_spin_is_locked(lock);
@@ -245,6 +183,7 @@ static inline int __raw_spin_is_contended(raw_spinlock_t *lock)
245{ 183{
246 return __ticket_spin_is_contended(lock); 184 return __ticket_spin_is_contended(lock);
247} 185}
186#define __raw_spin_is_contended __raw_spin_is_contended
248 187
249static __always_inline void __raw_spin_lock(raw_spinlock_t *lock) 188static __always_inline void __raw_spin_lock(raw_spinlock_t *lock)
250{ 189{
@@ -267,7 +206,7 @@ static __always_inline void __raw_spin_lock_flags(raw_spinlock_t *lock,
267 __raw_spin_lock(lock); 206 __raw_spin_lock(lock);
268} 207}
269 208
270#endif /* CONFIG_PARAVIRT */ 209#endif
271 210
272static inline void __raw_spin_unlock_wait(raw_spinlock_t *lock) 211static inline void __raw_spin_unlock_wait(raw_spinlock_t *lock)
273{ 212{
@@ -329,8 +268,7 @@ static inline int __raw_read_trylock(raw_rwlock_t *lock)
329{ 268{
330 atomic_t *count = (atomic_t *)lock; 269 atomic_t *count = (atomic_t *)lock;
331 270
332 atomic_dec(count); 271 if (atomic_dec_return(count) >= 0)
333 if (atomic_read(count) >= 0)
334 return 1; 272 return 1;
335 atomic_inc(count); 273 atomic_inc(count);
336 return 0; 274 return 0;
diff --git a/arch/x86/include/asm/stackprotector.h b/arch/x86/include/asm/stackprotector.h
new file mode 100644
index 000000000000..c2d742c6e15f
--- /dev/null
+++ b/arch/x86/include/asm/stackprotector.h
@@ -0,0 +1,124 @@
1/*
2 * GCC stack protector support.
3 *
4 * Stack protector works by putting predefined pattern at the start of
5 * the stack frame and verifying that it hasn't been overwritten when
6 * returning from the function. The pattern is called stack canary
7 * and unfortunately gcc requires it to be at a fixed offset from %gs.
8 * On x86_64, the offset is 40 bytes and on x86_32 20 bytes. x86_64
9 * and x86_32 use segment registers differently and thus handles this
10 * requirement differently.
11 *
12 * On x86_64, %gs is shared by percpu area and stack canary. All
13 * percpu symbols are zero based and %gs points to the base of percpu
14 * area. The first occupant of the percpu area is always
15 * irq_stack_union which contains stack_canary at offset 40. Userland
16 * %gs is always saved and restored on kernel entry and exit using
17 * swapgs, so stack protector doesn't add any complexity there.
18 *
19 * On x86_32, it's slightly more complicated. As in x86_64, %gs is
20 * used for userland TLS. Unfortunately, some processors are much
21 * slower at loading segment registers with different value when
22 * entering and leaving the kernel, so the kernel uses %fs for percpu
23 * area and manages %gs lazily so that %gs is switched only when
24 * necessary, usually during task switch.
25 *
26 * As gcc requires the stack canary at %gs:20, %gs can't be managed
27 * lazily if stack protector is enabled, so the kernel saves and
28 * restores userland %gs on kernel entry and exit. This behavior is
29 * controlled by CONFIG_X86_32_LAZY_GS and accessors are defined in
30 * system.h to hide the details.
31 */
32
33#ifndef _ASM_STACKPROTECTOR_H
34#define _ASM_STACKPROTECTOR_H 1
35
36#ifdef CONFIG_CC_STACKPROTECTOR
37
38#include <asm/tsc.h>
39#include <asm/processor.h>
40#include <asm/percpu.h>
41#include <asm/system.h>
42#include <asm/desc.h>
43#include <linux/random.h>
44
45/*
46 * 24 byte read-only segment initializer for stack canary. Linker
47 * can't handle the address bit shifting. Address will be set in
48 * head_32 for boot CPU and setup_per_cpu_areas() for others.
49 */
50#define GDT_STACK_CANARY_INIT \
51 [GDT_ENTRY_STACK_CANARY] = { { { 0x00000018, 0x00409000 } } },
52
53/*
54 * Initialize the stackprotector canary value.
55 *
56 * NOTE: this must only be called from functions that never return,
57 * and it must always be inlined.
58 */
59static __always_inline void boot_init_stack_canary(void)
60{
61 u64 canary;
62 u64 tsc;
63
64#ifdef CONFIG_X86_64
65 BUILD_BUG_ON(offsetof(union irq_stack_union, stack_canary) != 40);
66#endif
67 /*
68 * We both use the random pool and the current TSC as a source
69 * of randomness. The TSC only matters for very early init,
70 * there it already has some randomness on most systems. Later
71 * on during the bootup the random pool has true entropy too.
72 */
73 get_random_bytes(&canary, sizeof(canary));
74 tsc = __native_read_tsc();
75 canary += tsc + (tsc << 32UL);
76
77 current->stack_canary = canary;
78#ifdef CONFIG_X86_64
79 percpu_write(irq_stack_union.stack_canary, canary);
80#else
81 percpu_write(stack_canary, canary);
82#endif
83}
84
85static inline void setup_stack_canary_segment(int cpu)
86{
87#ifdef CONFIG_X86_32
88 unsigned long canary = (unsigned long)&per_cpu(stack_canary, cpu) - 20;
89 struct desc_struct *gdt_table = get_cpu_gdt_table(cpu);
90 struct desc_struct desc;
91
92 desc = gdt_table[GDT_ENTRY_STACK_CANARY];
93 desc.base0 = canary & 0xffff;
94 desc.base1 = (canary >> 16) & 0xff;
95 desc.base2 = (canary >> 24) & 0xff;
96 write_gdt_entry(gdt_table, GDT_ENTRY_STACK_CANARY, &desc, DESCTYPE_S);
97#endif
98}
99
100static inline void load_stack_canary_segment(void)
101{
102#ifdef CONFIG_X86_32
103 asm("mov %0, %%gs" : : "r" (__KERNEL_STACK_CANARY) : "memory");
104#endif
105}
106
107#else /* CC_STACKPROTECTOR */
108
109#define GDT_STACK_CANARY_INIT
110
111/* dummy boot_init_stack_canary() is defined in linux/stackprotector.h */
112
113static inline void setup_stack_canary_segment(int cpu)
114{ }
115
116static inline void load_stack_canary_segment(void)
117{
118#ifdef CONFIG_X86_32
119 asm volatile ("mov %0, %%gs" : : "r" (0));
120#endif
121}
122
123#endif /* CC_STACKPROTECTOR */
124#endif /* _ASM_STACKPROTECTOR_H */
diff --git a/arch/x86/include/asm/summit/apic.h b/arch/x86/include/asm/summit/apic.h
deleted file mode 100644
index 4bb5fb34f030..000000000000
--- a/arch/x86/include/asm/summit/apic.h
+++ /dev/null
@@ -1,201 +0,0 @@
1#ifndef __ASM_SUMMIT_APIC_H
2#define __ASM_SUMMIT_APIC_H
3
4#include <asm/smp.h>
5
6#define esr_disable (1)
7#define NO_BALANCE_IRQ (0)
8
9/* In clustered mode, the high nibble of APIC ID is a cluster number.
10 * The low nibble is a 4-bit bitmap. */
11#define XAPIC_DEST_CPUS_SHIFT 4
12#define XAPIC_DEST_CPUS_MASK ((1u << XAPIC_DEST_CPUS_SHIFT) - 1)
13#define XAPIC_DEST_CLUSTER_MASK (XAPIC_DEST_CPUS_MASK << XAPIC_DEST_CPUS_SHIFT)
14
15#define APIC_DFR_VALUE (APIC_DFR_CLUSTER)
16
17static inline const cpumask_t *target_cpus(void)
18{
19 /* CPU_MASK_ALL (0xff) has undefined behaviour with
20 * dest_LowestPrio mode logical clustered apic interrupt routing
21 * Just start on cpu 0. IRQ balancing will spread load
22 */
23 return &cpumask_of_cpu(0);
24}
25
26#define INT_DELIVERY_MODE (dest_LowestPrio)
27#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */
28
29static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
30{
31 return 0;
32}
33
34/* we don't use the phys_cpu_present_map to indicate apicid presence */
35static inline unsigned long check_apicid_present(int bit)
36{
37 return 1;
38}
39
40#define apicid_cluster(apicid) ((apicid) & XAPIC_DEST_CLUSTER_MASK)
41
42extern u8 cpu_2_logical_apicid[];
43
44static inline void init_apic_ldr(void)
45{
46 unsigned long val, id;
47 int count = 0;
48 u8 my_id = (u8)hard_smp_processor_id();
49 u8 my_cluster = (u8)apicid_cluster(my_id);
50#ifdef CONFIG_SMP
51 u8 lid;
52 int i;
53
54 /* Create logical APIC IDs by counting CPUs already in cluster. */
55 for (count = 0, i = nr_cpu_ids; --i >= 0; ) {
56 lid = cpu_2_logical_apicid[i];
57 if (lid != BAD_APICID && apicid_cluster(lid) == my_cluster)
58 ++count;
59 }
60#endif
61 /* We only have a 4 wide bitmap in cluster mode. If a deranged
62 * BIOS puts 5 CPUs in one APIC cluster, we're hosed. */
63 BUG_ON(count >= XAPIC_DEST_CPUS_SHIFT);
64 id = my_cluster | (1UL << count);
65 apic_write(APIC_DFR, APIC_DFR_VALUE);
66 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
67 val |= SET_APIC_LOGICAL_ID(id);
68 apic_write(APIC_LDR, val);
69}
70
71static inline int multi_timer_check(int apic, int irq)
72{
73 return 0;
74}
75
76static inline int apic_id_registered(void)
77{
78 return 1;
79}
80
81static inline void setup_apic_routing(void)
82{
83 printk("Enabling APIC mode: Summit. Using %d I/O APICs\n",
84 nr_ioapics);
85}
86
87static inline int apicid_to_node(int logical_apicid)
88{
89#ifdef CONFIG_SMP
90 return apicid_2_node[hard_smp_processor_id()];
91#else
92 return 0;
93#endif
94}
95
96/* Mapping from cpu number to logical apicid */
97static inline int cpu_to_logical_apicid(int cpu)
98{
99#ifdef CONFIG_SMP
100 if (cpu >= nr_cpu_ids)
101 return BAD_APICID;
102 return (int)cpu_2_logical_apicid[cpu];
103#else
104 return logical_smp_processor_id();
105#endif
106}
107
108static inline int cpu_present_to_apicid(int mps_cpu)
109{
110 if (mps_cpu < nr_cpu_ids)
111 return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu);
112 else
113 return BAD_APICID;
114}
115
116static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_id_map)
117{
118 /* For clustered we don't have a good way to do this yet - hack */
119 return physids_promote(0x0F);
120}
121
122static inline physid_mask_t apicid_to_cpu_present(int apicid)
123{
124 return physid_mask_of_physid(0);
125}
126
127static inline void setup_portio_remap(void)
128{
129}
130
131static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
132{
133 return 1;
134}
135
136static inline void enable_apic_mode(void)
137{
138}
139
140static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
141{
142 int num_bits_set;
143 int cpus_found = 0;
144 int cpu;
145 int apicid;
146
147 num_bits_set = cpus_weight(*cpumask);
148 /* Return id to all */
149 if (num_bits_set >= nr_cpu_ids)
150 return (int) 0xFF;
151 /*
152 * The cpus in the mask must all be on the apic cluster. If are not
153 * on the same apicid cluster return default value of TARGET_CPUS.
154 */
155 cpu = first_cpu(*cpumask);
156 apicid = cpu_to_logical_apicid(cpu);
157 while (cpus_found < num_bits_set) {
158 if (cpu_isset(cpu, *cpumask)) {
159 int new_apicid = cpu_to_logical_apicid(cpu);
160 if (apicid_cluster(apicid) !=
161 apicid_cluster(new_apicid)){
162 printk ("%s: Not a valid mask!\n", __func__);
163 return 0xFF;
164 }
165 apicid = apicid | new_apicid;
166 cpus_found++;
167 }
168 cpu++;
169 }
170 return apicid;
171}
172
173static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *inmask,
174 const struct cpumask *andmask)
175{
176 int apicid = cpu_to_logical_apicid(0);
177 cpumask_var_t cpumask;
178
179 if (!alloc_cpumask_var(&cpumask, GFP_ATOMIC))
180 return apicid;
181
182 cpumask_and(cpumask, inmask, andmask);
183 cpumask_and(cpumask, cpumask, cpu_online_mask);
184 apicid = cpu_mask_to_apicid(cpumask);
185
186 free_cpumask_var(cpumask);
187 return apicid;
188}
189
190/* cpuid returns the value latched in the HW at reset, not the APIC ID
191 * register's value. For any box whose BIOS changes APIC IDs, like
192 * clustered APIC systems, we must use hard_smp_processor_id.
193 *
194 * See Intel's IA-32 SW Dev's Manual Vol2 under CPUID.
195 */
196static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
197{
198 return hard_smp_processor_id() >> index_msb;
199}
200
201#endif /* __ASM_SUMMIT_APIC_H */
diff --git a/arch/x86/include/asm/summit/apicdef.h b/arch/x86/include/asm/summit/apicdef.h
deleted file mode 100644
index f3fbca1f61c1..000000000000
--- a/arch/x86/include/asm/summit/apicdef.h
+++ /dev/null
@@ -1,13 +0,0 @@
1#ifndef __ASM_SUMMIT_APICDEF_H
2#define __ASM_SUMMIT_APICDEF_H
3
4#define APIC_ID_MASK (0xFF<<24)
5
6static inline unsigned get_apic_id(unsigned long x)
7{
8 return (x>>24)&0xFF;
9}
10
11#define GET_APIC_ID(x) get_apic_id(x)
12
13#endif
diff --git a/arch/x86/include/asm/summit/ipi.h b/arch/x86/include/asm/summit/ipi.h
deleted file mode 100644
index a8a2c24f50cc..000000000000
--- a/arch/x86/include/asm/summit/ipi.h
+++ /dev/null
@@ -1,26 +0,0 @@
1#ifndef __ASM_SUMMIT_IPI_H
2#define __ASM_SUMMIT_IPI_H
3
4void send_IPI_mask_sequence(const cpumask_t *mask, int vector);
5void send_IPI_mask_allbutself(const cpumask_t *mask, int vector);
6
7static inline void send_IPI_mask(const cpumask_t *mask, int vector)
8{
9 send_IPI_mask_sequence(mask, vector);
10}
11
12static inline void send_IPI_allbutself(int vector)
13{
14 cpumask_t mask = cpu_online_map;
15 cpu_clear(smp_processor_id(), mask);
16
17 if (!cpus_empty(mask))
18 send_IPI_mask(&mask, vector);
19}
20
21static inline void send_IPI_all(int vector)
22{
23 send_IPI_mask(&cpu_online_map, vector);
24}
25
26#endif /* __ASM_SUMMIT_IPI_H */
diff --git a/arch/x86/include/asm/summit/mpparse.h b/arch/x86/include/asm/summit/mpparse.h
deleted file mode 100644
index 013ce6fab2d5..000000000000
--- a/arch/x86/include/asm/summit/mpparse.h
+++ /dev/null
@@ -1,109 +0,0 @@
1#ifndef __ASM_SUMMIT_MPPARSE_H
2#define __ASM_SUMMIT_MPPARSE_H
3
4#include <asm/tsc.h>
5
6extern int use_cyclone;
7
8#ifdef CONFIG_X86_SUMMIT_NUMA
9extern void setup_summit(void);
10#else
11#define setup_summit() {}
12#endif
13
14static inline int mps_oem_check(struct mp_config_table *mpc, char *oem,
15 char *productid)
16{
17 if (!strncmp(oem, "IBM ENSW", 8) &&
18 (!strncmp(productid, "VIGIL SMP", 9)
19 || !strncmp(productid, "EXA", 3)
20 || !strncmp(productid, "RUTHLESS SMP", 12))){
21 mark_tsc_unstable("Summit based system");
22 use_cyclone = 1; /*enable cyclone-timer*/
23 setup_summit();
24 return 1;
25 }
26 return 0;
27}
28
29/* Hook from generic ACPI tables.c */
30static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
31{
32 if (!strncmp(oem_id, "IBM", 3) &&
33 (!strncmp(oem_table_id, "SERVIGIL", 8)
34 || !strncmp(oem_table_id, "EXA", 3))){
35 mark_tsc_unstable("Summit based system");
36 use_cyclone = 1; /*enable cyclone-timer*/
37 setup_summit();
38 return 1;
39 }
40 return 0;
41}
42
43struct rio_table_hdr {
44 unsigned char version; /* Version number of this data structure */
45 /* Version 3 adds chassis_num & WP_index */
46 unsigned char num_scal_dev; /* # of Scalability devices (Twisters for Vigil) */
47 unsigned char num_rio_dev; /* # of RIO I/O devices (Cyclones and Winnipegs) */
48} __attribute__((packed));
49
50struct scal_detail {
51 unsigned char node_id; /* Scalability Node ID */
52 unsigned long CBAR; /* Address of 1MB register space */
53 unsigned char port0node; /* Node ID port connected to: 0xFF=None */
54 unsigned char port0port; /* Port num port connected to: 0,1,2, or 0xFF=None */
55 unsigned char port1node; /* Node ID port connected to: 0xFF = None */
56 unsigned char port1port; /* Port num port connected to: 0,1,2, or 0xFF=None */
57 unsigned char port2node; /* Node ID port connected to: 0xFF = None */
58 unsigned char port2port; /* Port num port connected to: 0,1,2, or 0xFF=None */
59 unsigned char chassis_num; /* 1 based Chassis number (1 = boot node) */
60} __attribute__((packed));
61
62struct rio_detail {
63 unsigned char node_id; /* RIO Node ID */
64 unsigned long BBAR; /* Address of 1MB register space */
65 unsigned char type; /* Type of device */
66 unsigned char owner_id; /* For WPEG: Node ID of Cyclone that owns this WPEG*/
67 /* For CYC: Node ID of Twister that owns this CYC */
68 unsigned char port0node; /* Node ID port connected to: 0xFF=None */
69 unsigned char port0port; /* Port num port connected to: 0,1,2, or 0xFF=None */
70 unsigned char port1node; /* Node ID port connected to: 0xFF=None */
71 unsigned char port1port; /* Port num port connected to: 0,1,2, or 0xFF=None */
72 unsigned char first_slot; /* For WPEG: Lowest slot number below this WPEG */
73 /* For CYC: 0 */
74 unsigned char status; /* For WPEG: Bit 0 = 1 : the XAPIC is used */
75 /* = 0 : the XAPIC is not used, ie:*/
76 /* ints fwded to another XAPIC */
77 /* Bits1:7 Reserved */
78 /* For CYC: Bits0:7 Reserved */
79 unsigned char WP_index; /* For WPEG: WPEG instance index - lower ones have */
80 /* lower slot numbers/PCI bus numbers */
81 /* For CYC: No meaning */
82 unsigned char chassis_num; /* 1 based Chassis number */
83 /* For LookOut WPEGs this field indicates the */
84 /* Expansion Chassis #, enumerated from Boot */
85 /* Node WPEG external port, then Boot Node CYC */
86 /* external port, then Next Vigil chassis WPEG */
87 /* external port, etc. */
88 /* Shared Lookouts have only 1 chassis number (the */
89 /* first one assigned) */
90} __attribute__((packed));
91
92
93typedef enum {
94 CompatTwister = 0, /* Compatibility Twister */
95 AltTwister = 1, /* Alternate Twister of internal 8-way */
96 CompatCyclone = 2, /* Compatibility Cyclone */
97 AltCyclone = 3, /* Alternate Cyclone of internal 8-way */
98 CompatWPEG = 4, /* Compatibility WPEG */
99 AltWPEG = 5, /* Second Planar WPEG */
100 LookOutAWPEG = 6, /* LookOut WPEG */
101 LookOutBWPEG = 7, /* LookOut WPEG */
102} node_type;
103
104static inline int is_WPEG(struct rio_detail *rio){
105 return (rio->type == CompatWPEG || rio->type == AltWPEG ||
106 rio->type == LookOutAWPEG || rio->type == LookOutBWPEG);
107}
108
109#endif /* __ASM_SUMMIT_MPPARSE_H */
diff --git a/arch/x86/include/asm/swab.h b/arch/x86/include/asm/swab.h
index 306d4178ffc9..557cd9f00661 100644
--- a/arch/x86/include/asm/swab.h
+++ b/arch/x86/include/asm/swab.h
@@ -1,7 +1,7 @@
1#ifndef _ASM_X86_SWAB_H 1#ifndef _ASM_X86_SWAB_H
2#define _ASM_X86_SWAB_H 2#define _ASM_X86_SWAB_H
3 3
4#include <asm/types.h> 4#include <linux/types.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
6 6
7static inline __attribute_const__ __u32 __arch_swab32(__u32 val) 7static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
diff --git a/arch/x86/include/asm/syscalls.h b/arch/x86/include/asm/syscalls.h
index 9c6797c3e56c..7043408f6904 100644
--- a/arch/x86/include/asm/syscalls.h
+++ b/arch/x86/include/asm/syscalls.h
@@ -29,21 +29,21 @@ asmlinkage int sys_get_thread_area(struct user_desc __user *);
29/* X86_32 only */ 29/* X86_32 only */
30#ifdef CONFIG_X86_32 30#ifdef CONFIG_X86_32
31/* kernel/process_32.c */ 31/* kernel/process_32.c */
32asmlinkage int sys_fork(struct pt_regs); 32int sys_fork(struct pt_regs *);
33asmlinkage int sys_clone(struct pt_regs); 33int sys_clone(struct pt_regs *);
34asmlinkage int sys_vfork(struct pt_regs); 34int sys_vfork(struct pt_regs *);
35asmlinkage int sys_execve(struct pt_regs); 35int sys_execve(struct pt_regs *);
36 36
37/* kernel/signal_32.c */ 37/* kernel/signal_32.c */
38asmlinkage int sys_sigsuspend(int, int, old_sigset_t); 38asmlinkage int sys_sigsuspend(int, int, old_sigset_t);
39asmlinkage int sys_sigaction(int, const struct old_sigaction __user *, 39asmlinkage int sys_sigaction(int, const struct old_sigaction __user *,
40 struct old_sigaction __user *); 40 struct old_sigaction __user *);
41asmlinkage int sys_sigaltstack(unsigned long); 41int sys_sigaltstack(struct pt_regs *);
42asmlinkage unsigned long sys_sigreturn(unsigned long); 42unsigned long sys_sigreturn(struct pt_regs *);
43asmlinkage int sys_rt_sigreturn(struct pt_regs); 43long sys_rt_sigreturn(struct pt_regs *);
44 44
45/* kernel/ioport.c */ 45/* kernel/ioport.c */
46asmlinkage long sys_iopl(unsigned long); 46long sys_iopl(struct pt_regs *);
47 47
48/* kernel/sys_i386_32.c */ 48/* kernel/sys_i386_32.c */
49asmlinkage long sys_mmap2(unsigned long, unsigned long, unsigned long, 49asmlinkage long sys_mmap2(unsigned long, unsigned long, unsigned long,
@@ -59,8 +59,8 @@ struct oldold_utsname;
59asmlinkage int sys_olduname(struct oldold_utsname __user *); 59asmlinkage int sys_olduname(struct oldold_utsname __user *);
60 60
61/* kernel/vm86_32.c */ 61/* kernel/vm86_32.c */
62asmlinkage int sys_vm86old(struct pt_regs); 62int sys_vm86old(struct pt_regs *);
63asmlinkage int sys_vm86(struct pt_regs); 63int sys_vm86(struct pt_regs *);
64 64
65#else /* CONFIG_X86_32 */ 65#else /* CONFIG_X86_32 */
66 66
@@ -74,6 +74,7 @@ asmlinkage long sys_vfork(struct pt_regs *);
74asmlinkage long sys_execve(char __user *, char __user * __user *, 74asmlinkage long sys_execve(char __user *, char __user * __user *,
75 char __user * __user *, 75 char __user * __user *,
76 struct pt_regs *); 76 struct pt_regs *);
77long sys_arch_prctl(int, unsigned long);
77 78
78/* kernel/ioport.c */ 79/* kernel/ioport.c */
79asmlinkage long sys_iopl(unsigned int, struct pt_regs *); 80asmlinkage long sys_iopl(unsigned int, struct pt_regs *);
@@ -81,7 +82,7 @@ asmlinkage long sys_iopl(unsigned int, struct pt_regs *);
81/* kernel/signal_64.c */ 82/* kernel/signal_64.c */
82asmlinkage long sys_sigaltstack(const stack_t __user *, stack_t __user *, 83asmlinkage long sys_sigaltstack(const stack_t __user *, stack_t __user *,
83 struct pt_regs *); 84 struct pt_regs *);
84asmlinkage long sys_rt_sigreturn(struct pt_regs *); 85long sys_rt_sigreturn(struct pt_regs *);
85 86
86/* kernel/sys_x86_64.c */ 87/* kernel/sys_x86_64.c */
87asmlinkage long sys_mmap(unsigned long, unsigned long, unsigned long, 88asmlinkage long sys_mmap(unsigned long, unsigned long, unsigned long,
diff --git a/arch/x86/include/asm/system.h b/arch/x86/include/asm/system.h
index 8e626ea33a1a..643c59b4bc6e 100644
--- a/arch/x86/include/asm/system.h
+++ b/arch/x86/include/asm/system.h
@@ -20,9 +20,26 @@
20struct task_struct; /* one of the stranger aspects of C forward declarations */ 20struct task_struct; /* one of the stranger aspects of C forward declarations */
21struct task_struct *__switch_to(struct task_struct *prev, 21struct task_struct *__switch_to(struct task_struct *prev,
22 struct task_struct *next); 22 struct task_struct *next);
23struct tss_struct;
24void __switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p,
25 struct tss_struct *tss);
23 26
24#ifdef CONFIG_X86_32 27#ifdef CONFIG_X86_32
25 28
29#ifdef CONFIG_CC_STACKPROTECTOR
30#define __switch_canary \
31 "movl %P[task_canary](%[next]), %%ebx\n\t" \
32 "movl %%ebx, "__percpu_arg([stack_canary])"\n\t"
33#define __switch_canary_oparam \
34 , [stack_canary] "=m" (per_cpu_var(stack_canary))
35#define __switch_canary_iparam \
36 , [task_canary] "i" (offsetof(struct task_struct, stack_canary))
37#else /* CC_STACKPROTECTOR */
38#define __switch_canary
39#define __switch_canary_oparam
40#define __switch_canary_iparam
41#endif /* CC_STACKPROTECTOR */
42
26/* 43/*
27 * Saving eflags is important. It switches not only IOPL between tasks, 44 * Saving eflags is important. It switches not only IOPL between tasks,
28 * it also protects other tasks from NT leaking through sysenter etc. 45 * it also protects other tasks from NT leaking through sysenter etc.
@@ -44,6 +61,7 @@ do { \
44 "movl %[next_sp],%%esp\n\t" /* restore ESP */ \ 61 "movl %[next_sp],%%esp\n\t" /* restore ESP */ \
45 "movl $1f,%[prev_ip]\n\t" /* save EIP */ \ 62 "movl $1f,%[prev_ip]\n\t" /* save EIP */ \
46 "pushl %[next_ip]\n\t" /* restore EIP */ \ 63 "pushl %[next_ip]\n\t" /* restore EIP */ \
64 __switch_canary \
47 "jmp __switch_to\n" /* regparm call */ \ 65 "jmp __switch_to\n" /* regparm call */ \
48 "1:\t" \ 66 "1:\t" \
49 "popl %%ebp\n\t" /* restore EBP */ \ 67 "popl %%ebp\n\t" /* restore EBP */ \
@@ -58,6 +76,8 @@ do { \
58 "=b" (ebx), "=c" (ecx), "=d" (edx), \ 76 "=b" (ebx), "=c" (ecx), "=d" (edx), \
59 "=S" (esi), "=D" (edi) \ 77 "=S" (esi), "=D" (edi) \
60 \ 78 \
79 __switch_canary_oparam \
80 \
61 /* input parameters: */ \ 81 /* input parameters: */ \
62 : [next_sp] "m" (next->thread.sp), \ 82 : [next_sp] "m" (next->thread.sp), \
63 [next_ip] "m" (next->thread.ip), \ 83 [next_ip] "m" (next->thread.ip), \
@@ -66,6 +86,8 @@ do { \
66 [prev] "a" (prev), \ 86 [prev] "a" (prev), \
67 [next] "d" (next) \ 87 [next] "d" (next) \
68 \ 88 \
89 __switch_canary_iparam \
90 \
69 : /* reloaded segment registers */ \ 91 : /* reloaded segment registers */ \
70 "memory"); \ 92 "memory"); \
71} while (0) 93} while (0)
@@ -86,27 +108,44 @@ do { \
86 , "rcx", "rbx", "rdx", "r8", "r9", "r10", "r11", \ 108 , "rcx", "rbx", "rdx", "r8", "r9", "r10", "r11", \
87 "r12", "r13", "r14", "r15" 109 "r12", "r13", "r14", "r15"
88 110
111#ifdef CONFIG_CC_STACKPROTECTOR
112#define __switch_canary \
113 "movq %P[task_canary](%%rsi),%%r8\n\t" \
114 "movq %%r8,"__percpu_arg([gs_canary])"\n\t"
115#define __switch_canary_oparam \
116 , [gs_canary] "=m" (per_cpu_var(irq_stack_union.stack_canary))
117#define __switch_canary_iparam \
118 , [task_canary] "i" (offsetof(struct task_struct, stack_canary))
119#else /* CC_STACKPROTECTOR */
120#define __switch_canary
121#define __switch_canary_oparam
122#define __switch_canary_iparam
123#endif /* CC_STACKPROTECTOR */
124
89/* Save restore flags to clear handle leaking NT */ 125/* Save restore flags to clear handle leaking NT */
90#define switch_to(prev, next, last) \ 126#define switch_to(prev, next, last) \
91 asm volatile(SAVE_CONTEXT \ 127 asm volatile(SAVE_CONTEXT \
92 "movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \ 128 "movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \
93 "movq %P[threadrsp](%[next]),%%rsp\n\t" /* restore RSP */ \ 129 "movq %P[threadrsp](%[next]),%%rsp\n\t" /* restore RSP */ \
94 "call __switch_to\n\t" \ 130 "call __switch_to\n\t" \
95 ".globl thread_return\n" \ 131 ".globl thread_return\n" \
96 "thread_return:\n\t" \ 132 "thread_return:\n\t" \
97 "movq %%gs:%P[pda_pcurrent],%%rsi\n\t" \ 133 "movq "__percpu_arg([current_task])",%%rsi\n\t" \
134 __switch_canary \
98 "movq %P[thread_info](%%rsi),%%r8\n\t" \ 135 "movq %P[thread_info](%%rsi),%%r8\n\t" \
99 LOCK_PREFIX "btr %[tif_fork],%P[ti_flags](%%r8)\n\t" \
100 "movq %%rax,%%rdi\n\t" \ 136 "movq %%rax,%%rdi\n\t" \
101 "jc ret_from_fork\n\t" \ 137 "testl %[_tif_fork],%P[ti_flags](%%r8)\n\t" \
138 "jnz ret_from_fork\n\t" \
102 RESTORE_CONTEXT \ 139 RESTORE_CONTEXT \
103 : "=a" (last) \ 140 : "=a" (last) \
141 __switch_canary_oparam \
104 : [next] "S" (next), [prev] "D" (prev), \ 142 : [next] "S" (next), [prev] "D" (prev), \
105 [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \ 143 [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \
106 [ti_flags] "i" (offsetof(struct thread_info, flags)), \ 144 [ti_flags] "i" (offsetof(struct thread_info, flags)), \
107 [tif_fork] "i" (TIF_FORK), \ 145 [_tif_fork] "i" (_TIF_FORK), \
108 [thread_info] "i" (offsetof(struct task_struct, stack)), \ 146 [thread_info] "i" (offsetof(struct task_struct, stack)), \
109 [pda_pcurrent] "i" (offsetof(struct x8664_pda, pcurrent)) \ 147 [current_task] "m" (per_cpu_var(current_task)) \
148 __switch_canary_iparam \
110 : "memory", "cc" __EXTRA_CLOBBER) 149 : "memory", "cc" __EXTRA_CLOBBER)
111#endif 150#endif
112 151
@@ -165,6 +204,25 @@ extern void native_load_gs_index(unsigned);
165#define savesegment(seg, value) \ 204#define savesegment(seg, value) \
166 asm("mov %%" #seg ",%0":"=r" (value) : : "memory") 205 asm("mov %%" #seg ",%0":"=r" (value) : : "memory")
167 206
207/*
208 * x86_32 user gs accessors.
209 */
210#ifdef CONFIG_X86_32
211#ifdef CONFIG_X86_32_LAZY_GS
212#define get_user_gs(regs) (u16)({unsigned long v; savesegment(gs, v); v;})
213#define set_user_gs(regs, v) loadsegment(gs, (unsigned long)(v))
214#define task_user_gs(tsk) ((tsk)->thread.gs)
215#define lazy_save_gs(v) savesegment(gs, (v))
216#define lazy_load_gs(v) loadsegment(gs, (v))
217#else /* X86_32_LAZY_GS */
218#define get_user_gs(regs) (u16)((regs)->gs)
219#define set_user_gs(regs, v) do { (regs)->gs = (v); } while (0)
220#define task_user_gs(tsk) (task_pt_regs(tsk)->gs)
221#define lazy_save_gs(v) do { } while (0)
222#define lazy_load_gs(v) do { } while (0)
223#endif /* X86_32_LAZY_GS */
224#endif /* X86_32 */
225
168static inline unsigned long get_limit(unsigned long segment) 226static inline unsigned long get_limit(unsigned long segment)
169{ 227{
170 unsigned long __limit; 228 unsigned long __limit;
diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
index 98789647baa9..df9d5f78385e 100644
--- a/arch/x86/include/asm/thread_info.h
+++ b/arch/x86/include/asm/thread_info.h
@@ -40,6 +40,7 @@ struct thread_info {
40 */ 40 */
41 __u8 supervisor_stack[0]; 41 __u8 supervisor_stack[0];
42#endif 42#endif
43 int uaccess_err;
43}; 44};
44 45
45#define INIT_THREAD_INFO(tsk) \ 46#define INIT_THREAD_INFO(tsk) \
@@ -194,25 +195,21 @@ static inline struct thread_info *current_thread_info(void)
194 195
195#else /* X86_32 */ 196#else /* X86_32 */
196 197
197#include <asm/pda.h> 198#include <asm/percpu.h>
199#define KERNEL_STACK_OFFSET (5*8)
198 200
199/* 201/*
200 * macros/functions for gaining access to the thread information structure 202 * macros/functions for gaining access to the thread information structure
201 * preempt_count needs to be 1 initially, until the scheduler is functional. 203 * preempt_count needs to be 1 initially, until the scheduler is functional.
202 */ 204 */
203#ifndef __ASSEMBLY__ 205#ifndef __ASSEMBLY__
204static inline struct thread_info *current_thread_info(void) 206DECLARE_PER_CPU(unsigned long, kernel_stack);
205{
206 struct thread_info *ti;
207 ti = (void *)(read_pda(kernelstack) + PDA_STACKOFFSET - THREAD_SIZE);
208 return ti;
209}
210 207
211/* do not use in interrupt context */ 208static inline struct thread_info *current_thread_info(void)
212static inline struct thread_info *stack_thread_info(void)
213{ 209{
214 struct thread_info *ti; 210 struct thread_info *ti;
215 asm("andq %%rsp,%0; " : "=r" (ti) : "0" (~(THREAD_SIZE - 1))); 211 ti = (void *)(percpu_read(kernel_stack) +
212 KERNEL_STACK_OFFSET - THREAD_SIZE);
216 return ti; 213 return ti;
217} 214}
218 215
@@ -220,8 +217,8 @@ static inline struct thread_info *stack_thread_info(void)
220 217
221/* how to get the thread information struct from ASM */ 218/* how to get the thread information struct from ASM */
222#define GET_THREAD_INFO(reg) \ 219#define GET_THREAD_INFO(reg) \
223 movq %gs:pda_kernelstack,reg ; \ 220 movq PER_CPU_VAR(kernel_stack),reg ; \
224 subq $(THREAD_SIZE-PDA_STACKOFFSET),reg 221 subq $(THREAD_SIZE-KERNEL_STACK_OFFSET),reg
225 222
226#endif 223#endif
227 224
diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index 2bb6a835c453..a81195eaa2b3 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -3,6 +3,7 @@
3#include <linux/init.h> 3#include <linux/init.h>
4#include <linux/pm.h> 4#include <linux/pm.h>
5#include <linux/percpu.h> 5#include <linux/percpu.h>
6#include <linux/interrupt.h>
6 7
7#define TICK_SIZE (tick_nsec / 1000) 8#define TICK_SIZE (tick_nsec / 1000)
8 9
@@ -12,6 +13,7 @@ unsigned long native_calibrate_tsc(void);
12#ifdef CONFIG_X86_32 13#ifdef CONFIG_X86_32
13extern int timer_ack; 14extern int timer_ack;
14extern int recalibrate_cpu_khz(void); 15extern int recalibrate_cpu_khz(void);
16extern irqreturn_t timer_interrupt(int irq, void *dev_id);
15#endif /* CONFIG_X86_32 */ 17#endif /* CONFIG_X86_32 */
16 18
17extern int no_timer_check; 19extern int no_timer_check;
diff --git a/arch/x86/include/asm/timex.h b/arch/x86/include/asm/timex.h
index 1287dc1347d6..b5c9d45c981f 100644
--- a/arch/x86/include/asm/timex.h
+++ b/arch/x86/include/asm/timex.h
@@ -1,18 +1,13 @@
1/* x86 architecture timex specifications */
2#ifndef _ASM_X86_TIMEX_H 1#ifndef _ASM_X86_TIMEX_H
3#define _ASM_X86_TIMEX_H 2#define _ASM_X86_TIMEX_H
4 3
5#include <asm/processor.h> 4#include <asm/processor.h>
6#include <asm/tsc.h> 5#include <asm/tsc.h>
7 6
8#ifdef CONFIG_X86_ELAN 7/* The PIT ticks at this frequency (in HZ): */
9# define PIT_TICK_RATE 1189200 /* AMD Elan has different frequency! */ 8#define PIT_TICK_RATE 1193182
10#elif defined(CONFIG_X86_RDC321X) 9
11# define PIT_TICK_RATE 1041667 /* Underlying HZ for R8610 */ 10#define CLOCK_TICK_RATE PIT_TICK_RATE
12#else
13# define PIT_TICK_RATE 1193182 /* Underlying HZ */
14#endif
15#define CLOCK_TICK_RATE PIT_TICK_RATE
16 11
17#define ARCH_HAS_READ_CURRENT_TIMER 12#define ARCH_HAS_READ_CURRENT_TIMER
18 13
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
index 0e7bbb549116..d3539f998f88 100644
--- a/arch/x86/include/asm/tlbflush.h
+++ b/arch/x86/include/asm/tlbflush.h
@@ -113,7 +113,7 @@ static inline void flush_tlb_range(struct vm_area_struct *vma,
113 __flush_tlb(); 113 __flush_tlb();
114} 114}
115 115
116static inline void native_flush_tlb_others(const cpumask_t *cpumask, 116static inline void native_flush_tlb_others(const struct cpumask *cpumask,
117 struct mm_struct *mm, 117 struct mm_struct *mm,
118 unsigned long va) 118 unsigned long va)
119{ 119{
@@ -142,31 +142,28 @@ static inline void flush_tlb_range(struct vm_area_struct *vma,
142 flush_tlb_mm(vma->vm_mm); 142 flush_tlb_mm(vma->vm_mm);
143} 143}
144 144
145void native_flush_tlb_others(const cpumask_t *cpumask, struct mm_struct *mm, 145void native_flush_tlb_others(const struct cpumask *cpumask,
146 unsigned long va); 146 struct mm_struct *mm, unsigned long va);
147 147
148#define TLBSTATE_OK 1 148#define TLBSTATE_OK 1
149#define TLBSTATE_LAZY 2 149#define TLBSTATE_LAZY 2
150 150
151#ifdef CONFIG_X86_32
152struct tlb_state { 151struct tlb_state {
153 struct mm_struct *active_mm; 152 struct mm_struct *active_mm;
154 int state; 153 int state;
155 char __cacheline_padding[L1_CACHE_BYTES-8];
156}; 154};
157DECLARE_PER_CPU(struct tlb_state, cpu_tlbstate); 155DECLARE_PER_CPU(struct tlb_state, cpu_tlbstate);
158 156
159void reset_lazy_tlbstate(void);
160#else
161static inline void reset_lazy_tlbstate(void) 157static inline void reset_lazy_tlbstate(void)
162{ 158{
159 percpu_write(cpu_tlbstate.state, 0);
160 percpu_write(cpu_tlbstate.active_mm, &init_mm);
163} 161}
164#endif
165 162
166#endif /* SMP */ 163#endif /* SMP */
167 164
168#ifndef CONFIG_PARAVIRT 165#ifndef CONFIG_PARAVIRT
169#define flush_tlb_others(mask, mm, va) native_flush_tlb_others(&mask, mm, va) 166#define flush_tlb_others(mask, mm, va) native_flush_tlb_others(mask, mm, va)
170#endif 167#endif
171 168
172static inline void flush_tlb_kernel_range(unsigned long start, 169static inline void flush_tlb_kernel_range(unsigned long start,
@@ -175,4 +172,6 @@ static inline void flush_tlb_kernel_range(unsigned long start,
175 flush_tlb_all(); 172 flush_tlb_all();
176} 173}
177 174
175extern void zap_low_mappings(void);
176
178#endif /* _ASM_X86_TLBFLUSH_H */ 177#endif /* _ASM_X86_TLBFLUSH_H */
diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h
index 4e2f2e0aab27..77cfb2cfb386 100644
--- a/arch/x86/include/asm/topology.h
+++ b/arch/x86/include/asm/topology.h
@@ -74,6 +74,8 @@ static inline const struct cpumask *cpumask_of_node(int node)
74 return &node_to_cpumask_map[node]; 74 return &node_to_cpumask_map[node];
75} 75}
76 76
77static inline void setup_node_to_cpumask_map(void) { }
78
77#else /* CONFIG_X86_64 */ 79#else /* CONFIG_X86_64 */
78 80
79/* Mappings between node number and cpus on that node. */ 81/* Mappings between node number and cpus on that node. */
@@ -83,7 +85,8 @@ extern cpumask_t *node_to_cpumask_map;
83DECLARE_EARLY_PER_CPU(int, x86_cpu_to_node_map); 85DECLARE_EARLY_PER_CPU(int, x86_cpu_to_node_map);
84 86
85/* Returns the number of the current Node. */ 87/* Returns the number of the current Node. */
86#define numa_node_id() read_pda(nodenumber) 88DECLARE_PER_CPU(int, node_number);
89#define numa_node_id() percpu_read(node_number)
87 90
88#ifdef CONFIG_DEBUG_PER_CPU_MAPS 91#ifdef CONFIG_DEBUG_PER_CPU_MAPS
89extern int cpu_to_node(int cpu); 92extern int cpu_to_node(int cpu);
@@ -102,10 +105,7 @@ static inline int cpu_to_node(int cpu)
102/* Same function but used if called before per_cpu areas are setup */ 105/* Same function but used if called before per_cpu areas are setup */
103static inline int early_cpu_to_node(int cpu) 106static inline int early_cpu_to_node(int cpu)
104{ 107{
105 if (early_per_cpu_ptr(x86_cpu_to_node_map)) 108 return early_per_cpu(x86_cpu_to_node_map, cpu);
106 return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu];
107
108 return per_cpu(x86_cpu_to_node_map, cpu);
109} 109}
110 110
111/* Returns a pointer to the cpumask of CPUs on Node 'node'. */ 111/* Returns a pointer to the cpumask of CPUs on Node 'node'. */
@@ -122,6 +122,8 @@ static inline cpumask_t node_to_cpumask(int node)
122 122
123#endif /* !CONFIG_DEBUG_PER_CPU_MAPS */ 123#endif /* !CONFIG_DEBUG_PER_CPU_MAPS */
124 124
125extern void setup_node_to_cpumask_map(void);
126
125/* 127/*
126 * Replace default node_to_cpumask_ptr with optimized version 128 * Replace default node_to_cpumask_ptr with optimized version
127 * Deprecated: use "const struct cpumask *mask = cpumask_of_node(node)" 129 * Deprecated: use "const struct cpumask *mask = cpumask_of_node(node)"
@@ -192,9 +194,20 @@ extern int __node_distance(int, int);
192 194
193#else /* !CONFIG_NUMA */ 195#else /* !CONFIG_NUMA */
194 196
195#define numa_node_id() 0 197static inline int numa_node_id(void)
196#define cpu_to_node(cpu) 0 198{
197#define early_cpu_to_node(cpu) 0 199 return 0;
200}
201
202static inline int cpu_to_node(int cpu)
203{
204 return 0;
205}
206
207static inline int early_cpu_to_node(int cpu)
208{
209 return 0;
210}
198 211
199static inline const cpumask_t *cpumask_of_node(int node) 212static inline const cpumask_t *cpumask_of_node(int node)
200{ 213{
@@ -209,6 +222,8 @@ static inline int node_to_first_cpu(int node)
209 return first_cpu(cpu_online_map); 222 return first_cpu(cpu_online_map);
210} 223}
211 224
225static inline void setup_node_to_cpumask_map(void) { }
226
212/* 227/*
213 * Replace default node_to_cpumask_ptr with optimized version 228 * Replace default node_to_cpumask_ptr with optimized version
214 * Deprecated: use "const struct cpumask *mask = cpumask_of_node(node)" 229 * Deprecated: use "const struct cpumask *mask = cpumask_of_node(node)"
diff --git a/arch/x86/include/asm/trampoline.h b/arch/x86/include/asm/trampoline.h
index 780ba0ab94f9..90f06c25221d 100644
--- a/arch/x86/include/asm/trampoline.h
+++ b/arch/x86/include/asm/trampoline.h
@@ -13,6 +13,7 @@ extern unsigned char *trampoline_base;
13 13
14extern unsigned long init_rsp; 14extern unsigned long init_rsp;
15extern unsigned long initial_code; 15extern unsigned long initial_code;
16extern unsigned long initial_gs;
16 17
17#define TRAMPOLINE_SIZE roundup(trampoline_end - trampoline_data, PAGE_SIZE) 18#define TRAMPOLINE_SIZE roundup(trampoline_end - trampoline_data, PAGE_SIZE)
18#define TRAMPOLINE_BASE 0x6000 19#define TRAMPOLINE_BASE 0x6000
diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h
index 2ee0a3bceedf..0d5342515b86 100644
--- a/arch/x86/include/asm/traps.h
+++ b/arch/x86/include/asm/traps.h
@@ -77,7 +77,7 @@ extern int panic_on_unrecovered_nmi;
77extern int kstack_depth_to_print; 77extern int kstack_depth_to_print;
78 78
79void math_error(void __user *); 79void math_error(void __user *);
80asmlinkage void math_emulate(long); 80void math_emulate(struct math_emu_info *);
81#ifdef CONFIG_X86_32 81#ifdef CONFIG_X86_32
82unsigned long patch_espfix_desc(unsigned long, unsigned long); 82unsigned long patch_espfix_desc(unsigned long, unsigned long);
83#else 83#else
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index 4340055b7559..b685ece89d5c 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -121,7 +121,7 @@ extern int __get_user_bad(void);
121 121
122#define __get_user_x(size, ret, x, ptr) \ 122#define __get_user_x(size, ret, x, ptr) \
123 asm volatile("call __get_user_" #size \ 123 asm volatile("call __get_user_" #size \
124 : "=a" (ret),"=d" (x) \ 124 : "=a" (ret), "=d" (x) \
125 : "0" (ptr)) \ 125 : "0" (ptr)) \
126 126
127/* Careful: we have to cast the result to the type of the pointer 127/* Careful: we have to cast the result to the type of the pointer
@@ -181,12 +181,12 @@ extern int __get_user_bad(void);
181 181
182#define __put_user_x(size, x, ptr, __ret_pu) \ 182#define __put_user_x(size, x, ptr, __ret_pu) \
183 asm volatile("call __put_user_" #size : "=a" (__ret_pu) \ 183 asm volatile("call __put_user_" #size : "=a" (__ret_pu) \
184 :"0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx") 184 : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
185 185
186 186
187 187
188#ifdef CONFIG_X86_32 188#ifdef CONFIG_X86_32
189#define __put_user_u64(x, addr, err) \ 189#define __put_user_asm_u64(x, addr, err, errret) \
190 asm volatile("1: movl %%eax,0(%2)\n" \ 190 asm volatile("1: movl %%eax,0(%2)\n" \
191 "2: movl %%edx,4(%2)\n" \ 191 "2: movl %%edx,4(%2)\n" \
192 "3:\n" \ 192 "3:\n" \
@@ -197,14 +197,24 @@ extern int __get_user_bad(void);
197 _ASM_EXTABLE(1b, 4b) \ 197 _ASM_EXTABLE(1b, 4b) \
198 _ASM_EXTABLE(2b, 4b) \ 198 _ASM_EXTABLE(2b, 4b) \
199 : "=r" (err) \ 199 : "=r" (err) \
200 : "A" (x), "r" (addr), "i" (-EFAULT), "0" (err)) 200 : "A" (x), "r" (addr), "i" (errret), "0" (err))
201
202#define __put_user_asm_ex_u64(x, addr) \
203 asm volatile("1: movl %%eax,0(%1)\n" \
204 "2: movl %%edx,4(%1)\n" \
205 "3:\n" \
206 _ASM_EXTABLE(1b, 2b - 1b) \
207 _ASM_EXTABLE(2b, 3b - 2b) \
208 : : "A" (x), "r" (addr))
201 209
202#define __put_user_x8(x, ptr, __ret_pu) \ 210#define __put_user_x8(x, ptr, __ret_pu) \
203 asm volatile("call __put_user_8" : "=a" (__ret_pu) \ 211 asm volatile("call __put_user_8" : "=a" (__ret_pu) \
204 : "A" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx") 212 : "A" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
205#else 213#else
206#define __put_user_u64(x, ptr, retval) \ 214#define __put_user_asm_u64(x, ptr, retval, errret) \
207 __put_user_asm(x, ptr, retval, "q", "", "Zr", -EFAULT) 215 __put_user_asm(x, ptr, retval, "q", "", "Zr", errret)
216#define __put_user_asm_ex_u64(x, addr) \
217 __put_user_asm_ex(x, addr, "q", "", "Zr")
208#define __put_user_x8(x, ptr, __ret_pu) __put_user_x(8, x, ptr, __ret_pu) 218#define __put_user_x8(x, ptr, __ret_pu) __put_user_x(8, x, ptr, __ret_pu)
209#endif 219#endif
210 220
@@ -276,10 +286,32 @@ do { \
276 __put_user_asm(x, ptr, retval, "w", "w", "ir", errret); \ 286 __put_user_asm(x, ptr, retval, "w", "w", "ir", errret); \
277 break; \ 287 break; \
278 case 4: \ 288 case 4: \
279 __put_user_asm(x, ptr, retval, "l", "k", "ir", errret);\ 289 __put_user_asm(x, ptr, retval, "l", "k", "ir", errret); \
280 break; \ 290 break; \
281 case 8: \ 291 case 8: \
282 __put_user_u64((__typeof__(*ptr))(x), ptr, retval); \ 292 __put_user_asm_u64((__typeof__(*ptr))(x), ptr, retval, \
293 errret); \
294 break; \
295 default: \
296 __put_user_bad(); \
297 } \
298} while (0)
299
300#define __put_user_size_ex(x, ptr, size) \
301do { \
302 __chk_user_ptr(ptr); \
303 switch (size) { \
304 case 1: \
305 __put_user_asm_ex(x, ptr, "b", "b", "iq"); \
306 break; \
307 case 2: \
308 __put_user_asm_ex(x, ptr, "w", "w", "ir"); \
309 break; \
310 case 4: \
311 __put_user_asm_ex(x, ptr, "l", "k", "ir"); \
312 break; \
313 case 8: \
314 __put_user_asm_ex_u64((__typeof__(*ptr))(x), ptr); \
283 break; \ 315 break; \
284 default: \ 316 default: \
285 __put_user_bad(); \ 317 __put_user_bad(); \
@@ -311,9 +343,12 @@ do { \
311 343
312#ifdef CONFIG_X86_32 344#ifdef CONFIG_X86_32
313#define __get_user_asm_u64(x, ptr, retval, errret) (x) = __get_user_bad() 345#define __get_user_asm_u64(x, ptr, retval, errret) (x) = __get_user_bad()
346#define __get_user_asm_ex_u64(x, ptr) (x) = __get_user_bad()
314#else 347#else
315#define __get_user_asm_u64(x, ptr, retval, errret) \ 348#define __get_user_asm_u64(x, ptr, retval, errret) \
316 __get_user_asm(x, ptr, retval, "q", "", "=r", errret) 349 __get_user_asm(x, ptr, retval, "q", "", "=r", errret)
350#define __get_user_asm_ex_u64(x, ptr) \
351 __get_user_asm_ex(x, ptr, "q", "", "=r")
317#endif 352#endif
318 353
319#define __get_user_size(x, ptr, size, retval, errret) \ 354#define __get_user_size(x, ptr, size, retval, errret) \
@@ -350,6 +385,33 @@ do { \
350 : "=r" (err), ltype(x) \ 385 : "=r" (err), ltype(x) \
351 : "m" (__m(addr)), "i" (errret), "0" (err)) 386 : "m" (__m(addr)), "i" (errret), "0" (err))
352 387
388#define __get_user_size_ex(x, ptr, size) \
389do { \
390 __chk_user_ptr(ptr); \
391 switch (size) { \
392 case 1: \
393 __get_user_asm_ex(x, ptr, "b", "b", "=q"); \
394 break; \
395 case 2: \
396 __get_user_asm_ex(x, ptr, "w", "w", "=r"); \
397 break; \
398 case 4: \
399 __get_user_asm_ex(x, ptr, "l", "k", "=r"); \
400 break; \
401 case 8: \
402 __get_user_asm_ex_u64(x, ptr); \
403 break; \
404 default: \
405 (x) = __get_user_bad(); \
406 } \
407} while (0)
408
409#define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
410 asm volatile("1: mov"itype" %1,%"rtype"0\n" \
411 "2:\n" \
412 _ASM_EXTABLE(1b, 2b - 1b) \
413 : ltype(x) : "m" (__m(addr)))
414
353#define __put_user_nocheck(x, ptr, size) \ 415#define __put_user_nocheck(x, ptr, size) \
354({ \ 416({ \
355 int __pu_err; \ 417 int __pu_err; \
@@ -385,6 +447,26 @@ struct __large_struct { unsigned long buf[100]; };
385 _ASM_EXTABLE(1b, 3b) \ 447 _ASM_EXTABLE(1b, 3b) \
386 : "=r"(err) \ 448 : "=r"(err) \
387 : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err)) 449 : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err))
450
451#define __put_user_asm_ex(x, addr, itype, rtype, ltype) \
452 asm volatile("1: mov"itype" %"rtype"0,%1\n" \
453 "2:\n" \
454 _ASM_EXTABLE(1b, 2b - 1b) \
455 : : ltype(x), "m" (__m(addr)))
456
457/*
458 * uaccess_try and catch
459 */
460#define uaccess_try do { \
461 int prev_err = current_thread_info()->uaccess_err; \
462 current_thread_info()->uaccess_err = 0; \
463 barrier();
464
465#define uaccess_catch(err) \
466 (err) |= current_thread_info()->uaccess_err; \
467 current_thread_info()->uaccess_err = prev_err; \
468} while (0)
469
388/** 470/**
389 * __get_user: - Get a simple variable from user space, with less checking. 471 * __get_user: - Get a simple variable from user space, with less checking.
390 * @x: Variable to store result. 472 * @x: Variable to store result.
@@ -408,6 +490,7 @@ struct __large_struct { unsigned long buf[100]; };
408 490
409#define __get_user(x, ptr) \ 491#define __get_user(x, ptr) \
410 __get_user_nocheck((x), (ptr), sizeof(*(ptr))) 492 __get_user_nocheck((x), (ptr), sizeof(*(ptr)))
493
411/** 494/**
412 * __put_user: - Write a simple value into user space, with less checking. 495 * __put_user: - Write a simple value into user space, with less checking.
413 * @x: Value to copy to user space. 496 * @x: Value to copy to user space.
@@ -435,6 +518,45 @@ struct __large_struct { unsigned long buf[100]; };
435#define __put_user_unaligned __put_user 518#define __put_user_unaligned __put_user
436 519
437/* 520/*
521 * {get|put}_user_try and catch
522 *
523 * get_user_try {
524 * get_user_ex(...);
525 * } get_user_catch(err)
526 */
527#define get_user_try uaccess_try
528#define get_user_catch(err) uaccess_catch(err)
529
530#define get_user_ex(x, ptr) do { \
531 unsigned long __gue_val; \
532 __get_user_size_ex((__gue_val), (ptr), (sizeof(*(ptr)))); \
533 (x) = (__force __typeof__(*(ptr)))__gue_val; \
534} while (0)
535
536#ifdef CONFIG_X86_WP_WORKS_OK
537
538#define put_user_try uaccess_try
539#define put_user_catch(err) uaccess_catch(err)
540
541#define put_user_ex(x, ptr) \
542 __put_user_size_ex((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
543
544#else /* !CONFIG_X86_WP_WORKS_OK */
545
546#define put_user_try do { \
547 int __uaccess_err = 0;
548
549#define put_user_catch(err) \
550 (err) |= __uaccess_err; \
551} while (0)
552
553#define put_user_ex(x, ptr) do { \
554 __uaccess_err |= __put_user(x, ptr); \
555} while (0)
556
557#endif /* CONFIG_X86_WP_WORKS_OK */
558
559/*
438 * movsl can be slow when source and dest are not both 8-byte aligned 560 * movsl can be slow when source and dest are not both 8-byte aligned
439 */ 561 */
440#ifdef CONFIG_X86_INTEL_USERCOPY 562#ifdef CONFIG_X86_INTEL_USERCOPY
diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h
index 84210c479fca..8cc687326eb8 100644
--- a/arch/x86/include/asm/uaccess_64.h
+++ b/arch/x86/include/asm/uaccess_64.h
@@ -188,16 +188,16 @@ __copy_to_user_inatomic(void __user *dst, const void *src, unsigned size)
188extern long __copy_user_nocache(void *dst, const void __user *src, 188extern long __copy_user_nocache(void *dst, const void __user *src,
189 unsigned size, int zerorest); 189 unsigned size, int zerorest);
190 190
191static inline int __copy_from_user_nocache(void *dst, const void __user *src, 191static inline int
192 unsigned size) 192__copy_from_user_nocache(void *dst, const void __user *src, unsigned size)
193{ 193{
194 might_sleep(); 194 might_sleep();
195 return __copy_user_nocache(dst, src, size, 1); 195 return __copy_user_nocache(dst, src, size, 1);
196} 196}
197 197
198static inline int __copy_from_user_inatomic_nocache(void *dst, 198static inline int
199 const void __user *src, 199__copy_from_user_inatomic_nocache(void *dst, const void __user *src,
200 unsigned size) 200 unsigned size)
201{ 201{
202 return __copy_user_nocache(dst, src, size, 0); 202 return __copy_user_nocache(dst, src, size, 0);
203} 203}
diff --git a/arch/x86/include/asm/uv/uv.h b/arch/x86/include/asm/uv/uv.h
new file mode 100644
index 000000000000..c0a01b5d985b
--- /dev/null
+++ b/arch/x86/include/asm/uv/uv.h
@@ -0,0 +1,33 @@
1#ifndef _ASM_X86_UV_UV_H
2#define _ASM_X86_UV_UV_H
3
4enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC};
5
6struct cpumask;
7struct mm_struct;
8
9#ifdef CONFIG_X86_UV
10
11extern enum uv_system_type get_uv_system_type(void);
12extern int is_uv_system(void);
13extern void uv_cpu_init(void);
14extern void uv_system_init(void);
15extern const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
16 struct mm_struct *mm,
17 unsigned long va,
18 unsigned int cpu);
19
20#else /* X86_UV */
21
22static inline enum uv_system_type get_uv_system_type(void) { return UV_NONE; }
23static inline int is_uv_system(void) { return 0; }
24static inline void uv_cpu_init(void) { }
25static inline void uv_system_init(void) { }
26static inline const struct cpumask *
27uv_flush_tlb_others(const struct cpumask *cpumask, struct mm_struct *mm,
28 unsigned long va, unsigned int cpu)
29{ return cpumask; }
30
31#endif /* X86_UV */
32
33#endif /* _ASM_X86_UV_UV_H */
diff --git a/arch/x86/include/asm/uv/uv_bau.h b/arch/x86/include/asm/uv/uv_bau.h
index 50423c7b56b2..9b0e61bf7a88 100644
--- a/arch/x86/include/asm/uv/uv_bau.h
+++ b/arch/x86/include/asm/uv/uv_bau.h
@@ -325,7 +325,6 @@ static inline void bau_cpubits_clear(struct bau_local_cpumask *dstp, int nbits)
325#define cpubit_isset(cpu, bau_local_cpumask) \ 325#define cpubit_isset(cpu, bau_local_cpumask) \
326 test_bit((cpu), (bau_local_cpumask).bits) 326 test_bit((cpu), (bau_local_cpumask).bits)
327 327
328extern int uv_flush_tlb_others(cpumask_t *, struct mm_struct *, unsigned long);
329extern void uv_bau_message_intr1(void); 328extern void uv_bau_message_intr1(void);
330extern void uv_bau_timeout_intr1(void); 329extern void uv_bau_timeout_intr1(void);
331 330
diff --git a/arch/x86/include/asm/vic.h b/arch/x86/include/asm/vic.h
deleted file mode 100644
index 53100f353612..000000000000
--- a/arch/x86/include/asm/vic.h
+++ /dev/null
@@ -1,61 +0,0 @@
1/* Copyright (C) 1999,2001
2 *
3 * Author: J.E.J.Bottomley@HansenPartnership.com
4 *
5 * Standard include definitions for the NCR Voyager Interrupt Controller */
6
7/* The eight CPI vectors. To activate a CPI, you write a bit mask
8 * corresponding to the processor set to be interrupted into the
9 * relevant register. That set of CPUs will then be interrupted with
10 * the CPI */
11static const int VIC_CPI_Registers[] =
12 {0xFC00, 0xFC01, 0xFC08, 0xFC09,
13 0xFC10, 0xFC11, 0xFC18, 0xFC19 };
14
15#define VIC_PROC_WHO_AM_I 0xfc29
16# define QUAD_IDENTIFIER 0xC0
17# define EIGHT_SLOT_IDENTIFIER 0xE0
18#define QIC_EXTENDED_PROCESSOR_SELECT 0xFC72
19#define VIC_CPI_BASE_REGISTER 0xFC41
20#define VIC_PROCESSOR_ID 0xFC21
21# define VIC_CPU_MASQUERADE_ENABLE 0x8
22
23#define VIC_CLAIM_REGISTER_0 0xFC38
24#define VIC_CLAIM_REGISTER_1 0xFC39
25#define VIC_REDIRECT_REGISTER_0 0xFC60
26#define VIC_REDIRECT_REGISTER_1 0xFC61
27#define VIC_PRIORITY_REGISTER 0xFC20
28
29#define VIC_PRIMARY_MC_BASE 0xFC48
30#define VIC_SECONDARY_MC_BASE 0xFC49
31
32#define QIC_PROCESSOR_ID 0xFC71
33# define QIC_CPUID_ENABLE 0x08
34
35#define QIC_VIC_CPI_BASE_REGISTER 0xFC79
36#define QIC_CPI_BASE_REGISTER 0xFC7A
37
38#define QIC_MASK_REGISTER0 0xFC80
39/* NOTE: these are masked high, enabled low */
40# define QIC_PERF_TIMER 0x01
41# define QIC_LPE 0x02
42# define QIC_SYS_INT 0x04
43# define QIC_CMN_INT 0x08
44/* at the moment, just enable CMN_INT, disable SYS_INT */
45# define QIC_DEFAULT_MASK0 (~(QIC_CMN_INT /* | VIC_SYS_INT */))
46#define QIC_MASK_REGISTER1 0xFC81
47# define QIC_BOOT_CPI_MASK 0xFE
48/* Enable CPI's 1-6 inclusive */
49# define QIC_CPI_ENABLE 0x81
50
51#define QIC_INTERRUPT_CLEAR0 0xFC8A
52#define QIC_INTERRUPT_CLEAR1 0xFC8B
53
54/* this is where we place the CPI vectors */
55#define VIC_DEFAULT_CPI_BASE 0xC0
56/* this is where we place the QIC CPI vectors */
57#define QIC_DEFAULT_CPI_BASE 0xD0
58
59#define VIC_BOOT_INTERRUPT_MASK 0xfe
60
61extern void smp_vic_timer_interrupt(void);
diff --git a/arch/x86/include/asm/voyager.h b/arch/x86/include/asm/voyager.h
deleted file mode 100644
index b3e647307625..000000000000
--- a/arch/x86/include/asm/voyager.h
+++ /dev/null
@@ -1,529 +0,0 @@
1/* Copyright (C) 1999,2001
2 *
3 * Author: J.E.J.Bottomley@HansenPartnership.com
4 *
5 * Standard include definitions for the NCR Voyager system */
6
7#undef VOYAGER_DEBUG
8#undef VOYAGER_CAT_DEBUG
9
10#ifdef VOYAGER_DEBUG
11#define VDEBUG(x) printk x
12#else
13#define VDEBUG(x)
14#endif
15
16/* There are three levels of voyager machine: 3,4 and 5. The rule is
17 * if it's less than 3435 it's a Level 3 except for a 3360 which is
18 * a level 4. A 3435 or above is a Level 5 */
19#define VOYAGER_LEVEL5_AND_ABOVE 0x3435
20#define VOYAGER_LEVEL4 0x3360
21
22/* The L4 DINO ASIC */
23#define VOYAGER_DINO 0x43
24
25/* voyager ports in standard I/O space */
26#define VOYAGER_MC_SETUP 0x96
27
28
29#define VOYAGER_CAT_CONFIG_PORT 0x97
30# define VOYAGER_CAT_DESELECT 0xff
31#define VOYAGER_SSPB_RELOCATION_PORT 0x98
32
33/* Valid CAT controller commands */
34/* start instruction register cycle */
35#define VOYAGER_CAT_IRCYC 0x01
36/* start data register cycle */
37#define VOYAGER_CAT_DRCYC 0x02
38/* move to execute state */
39#define VOYAGER_CAT_RUN 0x0F
40/* end operation */
41#define VOYAGER_CAT_END 0x80
42/* hold in idle state */
43#define VOYAGER_CAT_HOLD 0x90
44/* single step an "intest" vector */
45#define VOYAGER_CAT_STEP 0xE0
46/* return cat controller to CLEMSON mode */
47#define VOYAGER_CAT_CLEMSON 0xFF
48
49/* the default cat command header */
50#define VOYAGER_CAT_HEADER 0x7F
51
52/* the range of possible CAT module ids in the system */
53#define VOYAGER_MIN_MODULE 0x10
54#define VOYAGER_MAX_MODULE 0x1f
55
56/* The voyager registers per asic */
57#define VOYAGER_ASIC_ID_REG 0x00
58#define VOYAGER_ASIC_TYPE_REG 0x01
59/* the sub address registers can be made auto incrementing on reads */
60#define VOYAGER_AUTO_INC_REG 0x02
61# define VOYAGER_AUTO_INC 0x04
62# define VOYAGER_NO_AUTO_INC 0xfb
63#define VOYAGER_SUBADDRDATA 0x03
64#define VOYAGER_SCANPATH 0x05
65# define VOYAGER_CONNECT_ASIC 0x01
66# define VOYAGER_DISCONNECT_ASIC 0xfe
67#define VOYAGER_SUBADDRLO 0x06
68#define VOYAGER_SUBADDRHI 0x07
69#define VOYAGER_SUBMODSELECT 0x08
70#define VOYAGER_SUBMODPRESENT 0x09
71
72#define VOYAGER_SUBADDR_LO 0xff
73#define VOYAGER_SUBADDR_HI 0xffff
74
75/* the maximum size of a scan path -- used to form instructions */
76#define VOYAGER_MAX_SCAN_PATH 0x100
77/* the biggest possible register size (in bytes) */
78#define VOYAGER_MAX_REG_SIZE 4
79
80/* Total number of possible modules (including submodules) */
81#define VOYAGER_MAX_MODULES 16
82/* Largest number of asics per module */
83#define VOYAGER_MAX_ASICS_PER_MODULE 7
84
85/* the CAT asic of each module is always the first one */
86#define VOYAGER_CAT_ID 0
87#define VOYAGER_PSI 0x1a
88
89/* voyager instruction operations and registers */
90#define VOYAGER_READ_CONFIG 0x1
91#define VOYAGER_WRITE_CONFIG 0x2
92#define VOYAGER_BYPASS 0xff
93
94typedef struct voyager_asic {
95 __u8 asic_addr; /* ASIC address; Level 4 */
96 __u8 asic_type; /* ASIC type */
97 __u8 asic_id; /* ASIC id */
98 __u8 jtag_id[4]; /* JTAG id */
99 __u8 asic_location; /* Location within scan path; start w/ 0 */
100 __u8 bit_location; /* Location within bit stream; start w/ 0 */
101 __u8 ireg_length; /* Instruction register length */
102 __u16 subaddr; /* Amount of sub address space */
103 struct voyager_asic *next; /* Next asic in linked list */
104} voyager_asic_t;
105
106typedef struct voyager_module {
107 __u8 module_addr; /* Module address */
108 __u8 scan_path_connected; /* Scan path connected */
109 __u16 ee_size; /* Size of the EEPROM */
110 __u16 num_asics; /* Number of Asics */
111 __u16 inst_bits; /* Instruction bits in the scan path */
112 __u16 largest_reg; /* Largest register in the scan path */
113 __u16 smallest_reg; /* Smallest register in the scan path */
114 voyager_asic_t *asic; /* First ASIC in scan path (CAT_I) */
115 struct voyager_module *submodule; /* Submodule pointer */
116 struct voyager_module *next; /* Next module in linked list */
117} voyager_module_t;
118
119typedef struct voyager_eeprom_hdr {
120 __u8 module_id[4];
121 __u8 version_id;
122 __u8 config_id;
123 __u16 boundry_id; /* boundary scan id */
124 __u16 ee_size; /* size of EEPROM */
125 __u8 assembly[11]; /* assembly # */
126 __u8 assembly_rev; /* assembly rev */
127 __u8 tracer[4]; /* tracer number */
128 __u16 assembly_cksum; /* asm checksum */
129 __u16 power_consump; /* pwr requirements */
130 __u16 num_asics; /* number of asics */
131 __u16 bist_time; /* min. bist time */
132 __u16 err_log_offset; /* error log offset */
133 __u16 scan_path_offset;/* scan path offset */
134 __u16 cct_offset;
135 __u16 log_length; /* length of err log */
136 __u16 xsum_end; /* offset to end of
137 checksum */
138 __u8 reserved[4];
139 __u8 sflag; /* starting sentinal */
140 __u8 part_number[13]; /* prom part number */
141 __u8 version[10]; /* version number */
142 __u8 signature[8];
143 __u16 eeprom_chksum;
144 __u32 data_stamp_offset;
145 __u8 eflag ; /* ending sentinal */
146} __attribute__((packed)) voyager_eprom_hdr_t;
147
148
149
150#define VOYAGER_EPROM_SIZE_OFFSET \
151 ((__u16)(&(((voyager_eprom_hdr_t *)0)->ee_size)))
152#define VOYAGER_XSUM_END_OFFSET 0x2a
153
154/* the following three definitions are for internal table layouts
155 * in the module EPROMs. We really only care about the IDs and
156 * offsets */
157typedef struct voyager_sp_table {
158 __u8 asic_id;
159 __u8 bypass_flag;
160 __u16 asic_data_offset;
161 __u16 config_data_offset;
162} __attribute__((packed)) voyager_sp_table_t;
163
164typedef struct voyager_jtag_table {
165 __u8 icode[4];
166 __u8 runbist[4];
167 __u8 intest[4];
168 __u8 samp_preld[4];
169 __u8 ireg_len;
170} __attribute__((packed)) voyager_jtt_t;
171
172typedef struct voyager_asic_data_table {
173 __u8 jtag_id[4];
174 __u16 length_bsr;
175 __u16 length_bist_reg;
176 __u32 bist_clk;
177 __u16 subaddr_bits;
178 __u16 seed_bits;
179 __u16 sig_bits;
180 __u16 jtag_offset;
181} __attribute__((packed)) voyager_at_t;
182
183/* Voyager Interrupt Controller (VIC) registers */
184
185/* Base to add to Cross Processor Interrupts (CPIs) when triggering
186 * the CPU IRQ line */
187/* register defines for the WCBICs (one per processor) */
188#define VOYAGER_WCBIC0 0x41 /* bus A node P1 processor 0 */
189#define VOYAGER_WCBIC1 0x49 /* bus A node P1 processor 1 */
190#define VOYAGER_WCBIC2 0x51 /* bus A node P2 processor 0 */
191#define VOYAGER_WCBIC3 0x59 /* bus A node P2 processor 1 */
192#define VOYAGER_WCBIC4 0x61 /* bus B node P1 processor 0 */
193#define VOYAGER_WCBIC5 0x69 /* bus B node P1 processor 1 */
194#define VOYAGER_WCBIC6 0x71 /* bus B node P2 processor 0 */
195#define VOYAGER_WCBIC7 0x79 /* bus B node P2 processor 1 */
196
197
198/* top of memory registers */
199#define VOYAGER_WCBIC_TOM_L 0x4
200#define VOYAGER_WCBIC_TOM_H 0x5
201
202/* register defines for Voyager Memory Contol (VMC)
203 * these are present on L4 machines only */
204#define VOYAGER_VMC1 0x81
205#define VOYAGER_VMC2 0x91
206#define VOYAGER_VMC3 0xa1
207#define VOYAGER_VMC4 0xb1
208
209/* VMC Ports */
210#define VOYAGER_VMC_MEMORY_SETUP 0x9
211# define VMC_Interleaving 0x01
212# define VMC_4Way 0x02
213# define VMC_EvenCacheLines 0x04
214# define VMC_HighLine 0x08
215# define VMC_Start0_Enable 0x20
216# define VMC_Start1_Enable 0x40
217# define VMC_Vremap 0x80
218#define VOYAGER_VMC_BANK_DENSITY 0xa
219# define VMC_BANK_EMPTY 0
220# define VMC_BANK_4MB 1
221# define VMC_BANK_16MB 2
222# define VMC_BANK_64MB 3
223# define VMC_BANK0_MASK 0x03
224# define VMC_BANK1_MASK 0x0C
225# define VMC_BANK2_MASK 0x30
226# define VMC_BANK3_MASK 0xC0
227
228/* Magellan Memory Controller (MMC) defines - present on L5 */
229#define VOYAGER_MMC_ASIC_ID 1
230/* the two memory modules corresponding to memory cards in the system */
231#define VOYAGER_MMC_MEMORY0_MODULE 0x14
232#define VOYAGER_MMC_MEMORY1_MODULE 0x15
233/* the Magellan Memory Address (MMA) defines */
234#define VOYAGER_MMA_ASIC_ID 2
235
236/* Submodule number for the Quad Baseboard */
237#define VOYAGER_QUAD_BASEBOARD 1
238
239/* ASIC defines for the Quad Baseboard */
240#define VOYAGER_QUAD_QDATA0 1
241#define VOYAGER_QUAD_QDATA1 2
242#define VOYAGER_QUAD_QABC 3
243
244/* Useful areas in extended CMOS */
245#define VOYAGER_PROCESSOR_PRESENT_MASK 0x88a
246#define VOYAGER_MEMORY_CLICKMAP 0xa23
247#define VOYAGER_DUMP_LOCATION 0xb1a
248
249/* SUS In Control bit - used to tell SUS that we don't need to be
250 * babysat anymore */
251#define VOYAGER_SUS_IN_CONTROL_PORT 0x3ff
252# define VOYAGER_IN_CONTROL_FLAG 0x80
253
254/* Voyager PSI defines */
255#define VOYAGER_PSI_STATUS_REG 0x08
256# define PSI_DC_FAIL 0x01
257# define PSI_MON 0x02
258# define PSI_FAULT 0x04
259# define PSI_ALARM 0x08
260# define PSI_CURRENT 0x10
261# define PSI_DVM 0x20
262# define PSI_PSCFAULT 0x40
263# define PSI_STAT_CHG 0x80
264
265#define VOYAGER_PSI_SUPPLY_REG 0x8000
266 /* read */
267# define PSI_FAIL_DC 0x01
268# define PSI_FAIL_AC 0x02
269# define PSI_MON_INT 0x04
270# define PSI_SWITCH_OFF 0x08
271# define PSI_HX_OFF 0x10
272# define PSI_SECURITY 0x20
273# define PSI_CMOS_BATT_LOW 0x40
274# define PSI_CMOS_BATT_FAIL 0x80
275 /* write */
276# define PSI_CLR_SWITCH_OFF 0x13
277# define PSI_CLR_HX_OFF 0x14
278# define PSI_CLR_CMOS_BATT_FAIL 0x17
279
280#define VOYAGER_PSI_MASK 0x8001
281# define PSI_MASK_MASK 0x10
282
283#define VOYAGER_PSI_AC_FAIL_REG 0x8004
284#define AC_FAIL_STAT_CHANGE 0x80
285
286#define VOYAGER_PSI_GENERAL_REG 0x8007
287 /* read */
288# define PSI_SWITCH_ON 0x01
289# define PSI_SWITCH_ENABLED 0x02
290# define PSI_ALARM_ENABLED 0x08
291# define PSI_SECURE_ENABLED 0x10
292# define PSI_COLD_RESET 0x20
293# define PSI_COLD_START 0x80
294 /* write */
295# define PSI_POWER_DOWN 0x10
296# define PSI_SWITCH_DISABLE 0x01
297# define PSI_SWITCH_ENABLE 0x11
298# define PSI_CLEAR 0x12
299# define PSI_ALARM_DISABLE 0x03
300# define PSI_ALARM_ENABLE 0x13
301# define PSI_CLEAR_COLD_RESET 0x05
302# define PSI_SET_COLD_RESET 0x15
303# define PSI_CLEAR_COLD_START 0x07
304# define PSI_SET_COLD_START 0x17
305
306
307
308struct voyager_bios_info {
309 __u8 len;
310 __u8 major;
311 __u8 minor;
312 __u8 debug;
313 __u8 num_classes;
314 __u8 class_1;
315 __u8 class_2;
316};
317
318/* The following structures and definitions are for the Kernel/SUS
319 * interface these are needed to find out how SUS initialised any Quad
320 * boards in the system */
321
322#define NUMBER_OF_MC_BUSSES 2
323#define SLOTS_PER_MC_BUS 8
324#define MAX_CPUS 16 /* 16 way CPU system */
325#define MAX_PROCESSOR_BOARDS 4 /* 4 processor slot system */
326#define MAX_CACHE_LEVELS 4 /* # of cache levels supported */
327#define MAX_SHARED_CPUS 4 /* # of CPUs that can share a LARC */
328#define NUMBER_OF_POS_REGS 8
329
330typedef struct {
331 __u8 MC_Slot;
332 __u8 POS_Values[NUMBER_OF_POS_REGS];
333} __attribute__((packed)) MC_SlotInformation_t;
334
335struct QuadDescription {
336 __u8 Type; /* for type 0 (DYADIC or MONADIC) all fields
337 * will be zero except for slot */
338 __u8 StructureVersion;
339 __u32 CPI_BaseAddress;
340 __u32 LARC_BankSize;
341 __u32 LocalMemoryStateBits;
342 __u8 Slot; /* Processor slots 1 - 4 */
343} __attribute__((packed));
344
345struct ProcBoardInfo {
346 __u8 Type;
347 __u8 StructureVersion;
348 __u8 NumberOfBoards;
349 struct QuadDescription QuadData[MAX_PROCESSOR_BOARDS];
350} __attribute__((packed));
351
352struct CacheDescription {
353 __u8 Level;
354 __u32 TotalSize;
355 __u16 LineSize;
356 __u8 Associativity;
357 __u8 CacheType;
358 __u8 WriteType;
359 __u8 Number_CPUs_SharedBy;
360 __u8 Shared_CPUs_Hardware_IDs[MAX_SHARED_CPUS];
361
362} __attribute__((packed));
363
364struct CPU_Description {
365 __u8 CPU_HardwareId;
366 char *FRU_String;
367 __u8 NumberOfCacheLevels;
368 struct CacheDescription CacheLevelData[MAX_CACHE_LEVELS];
369} __attribute__((packed));
370
371struct CPU_Info {
372 __u8 Type;
373 __u8 StructureVersion;
374 __u8 NumberOf_CPUs;
375 struct CPU_Description CPU_Data[MAX_CPUS];
376} __attribute__((packed));
377
378
379/*
380 * This structure will be used by SUS and the OS.
381 * The assumption about this structure is that no blank space is
382 * packed in it by our friend the compiler.
383 */
384typedef struct {
385 __u8 Mailbox_SUS; /* Written to by SUS to give
386 commands/response to the OS */
387 __u8 Mailbox_OS; /* Written to by the OS to give
388 commands/response to SUS */
389 __u8 SUS_MailboxVersion; /* Tells the OS which iteration of the
390 interface SUS supports */
391 __u8 OS_MailboxVersion; /* Tells SUS which iteration of the
392 interface the OS supports */
393 __u32 OS_Flags; /* Flags set by the OS as info for
394 SUS */
395 __u32 SUS_Flags; /* Flags set by SUS as info
396 for the OS */
397 __u32 WatchDogPeriod; /* Watchdog period (in seconds) which
398 the DP uses to see if the OS
399 is dead */
400 __u32 WatchDogCount; /* Updated by the OS on every tic. */
401 __u32 MemoryFor_SUS_ErrorLog; /* Flat 32 bit address which tells SUS
402 where to stuff the SUS error log
403 on a dump */
404 MC_SlotInformation_t MC_SlotInfo[NUMBER_OF_MC_BUSSES*SLOTS_PER_MC_BUS];
405 /* Storage for MCA POS data */
406 /* All new SECOND_PASS_INTERFACE fields added from this point */
407 struct ProcBoardInfo *BoardData;
408 struct CPU_Info *CPU_Data;
409 /* All new fields must be added from this point */
410} Voyager_KernelSUS_Mbox_t;
411
412/* structure for finding the right memory address to send a QIC CPI to */
413struct voyager_qic_cpi {
414 /* Each cache line (32 bytes) can trigger a cpi. The cpi
415 * read/write may occur anywhere in the cache line---pick the
416 * middle to be safe */
417 struct {
418 __u32 pad1[3];
419 __u32 cpi;
420 __u32 pad2[4];
421 } qic_cpi[8];
422};
423
424struct voyager_status {
425 __u32 power_fail:1;
426 __u32 switch_off:1;
427 __u32 request_from_kernel:1;
428};
429
430struct voyager_psi_regs {
431 __u8 cat_id;
432 __u8 cat_dev;
433 __u8 cat_control;
434 __u8 subaddr;
435 __u8 dummy4;
436 __u8 checkbit;
437 __u8 subaddr_low;
438 __u8 subaddr_high;
439 __u8 intstatus;
440 __u8 stat1;
441 __u8 stat3;
442 __u8 fault;
443 __u8 tms;
444 __u8 gen;
445 __u8 sysconf;
446 __u8 dummy15;
447};
448
449struct voyager_psi_subregs {
450 __u8 supply;
451 __u8 mask;
452 __u8 present;
453 __u8 DCfail;
454 __u8 ACfail;
455 __u8 fail;
456 __u8 UPSfail;
457 __u8 genstatus;
458};
459
460struct voyager_psi {
461 struct voyager_psi_regs regs;
462 struct voyager_psi_subregs subregs;
463};
464
465struct voyager_SUS {
466#define VOYAGER_DUMP_BUTTON_NMI 0x1
467#define VOYAGER_SUS_VALID 0x2
468#define VOYAGER_SYSINT_COMPLETE 0x3
469 __u8 SUS_mbox;
470#define VOYAGER_NO_COMMAND 0x0
471#define VOYAGER_IGNORE_DUMP 0x1
472#define VOYAGER_DO_DUMP 0x2
473#define VOYAGER_SYSINT_HANDSHAKE 0x3
474#define VOYAGER_DO_MEM_DUMP 0x4
475#define VOYAGER_SYSINT_WAS_RECOVERED 0x5
476 __u8 kernel_mbox;
477#define VOYAGER_MAILBOX_VERSION 0x10
478 __u8 SUS_version;
479 __u8 kernel_version;
480#define VOYAGER_OS_HAS_SYSINT 0x1
481#define VOYAGER_OS_IN_PROGRESS 0x2
482#define VOYAGER_UPDATING_WDPERIOD 0x4
483 __u32 kernel_flags;
484#define VOYAGER_SUS_BOOTING 0x1
485#define VOYAGER_SUS_IN_PROGRESS 0x2
486 __u32 SUS_flags;
487 __u32 watchdog_period;
488 __u32 watchdog_count;
489 __u32 SUS_errorlog;
490 /* lots of system configuration stuff under here */
491};
492
493/* Variables exported by voyager_smp */
494extern __u32 voyager_extended_vic_processors;
495extern __u32 voyager_allowed_boot_processors;
496extern __u32 voyager_quad_processors;
497extern struct voyager_qic_cpi *voyager_quad_cpi_addr[NR_CPUS];
498extern struct voyager_SUS *voyager_SUS;
499
500/* variables exported always */
501extern struct task_struct *voyager_thread;
502extern int voyager_level;
503extern struct voyager_status voyager_status;
504
505/* functions exported by the voyager and voyager_smp modules */
506extern int voyager_cat_readb(__u8 module, __u8 asic, int reg);
507extern void voyager_cat_init(void);
508extern void voyager_detect(struct voyager_bios_info *);
509extern void voyager_trap_init(void);
510extern void voyager_setup_irqs(void);
511extern int voyager_memory_detect(int region, __u32 *addr, __u32 *length);
512extern void voyager_smp_intr_init(void);
513extern __u8 voyager_extended_cmos_read(__u16 cmos_address);
514extern void voyager_smp_dump(void);
515extern void voyager_timer_interrupt(void);
516extern void smp_local_timer_interrupt(void);
517extern void voyager_power_off(void);
518extern void smp_voyager_power_off(void *dummy);
519extern void voyager_restart(void);
520extern void voyager_cat_power_off(void);
521extern void voyager_cat_do_common_interrupt(void);
522extern void voyager_handle_nmi(void);
523extern void voyager_smp_intr_init(void);
524/* Commands for the following are */
525#define VOYAGER_PSI_READ 0
526#define VOYAGER_PSI_WRITE 1
527#define VOYAGER_PSI_SUBREAD 2
528#define VOYAGER_PSI_SUBWRITE 3
529extern void voyager_cat_psi(__u8, __u16, __u8 *);
diff --git a/arch/x86/include/asm/xen/events.h b/arch/x86/include/asm/xen/events.h
index 19144184983a..1df35417c412 100644
--- a/arch/x86/include/asm/xen/events.h
+++ b/arch/x86/include/asm/xen/events.h
@@ -15,10 +15,4 @@ static inline int xen_irqs_disabled(struct pt_regs *regs)
15 return raw_irqs_disabled_flags(regs->flags); 15 return raw_irqs_disabled_flags(regs->flags);
16} 16}
17 17
18static inline void xen_do_IRQ(int irq, struct pt_regs *regs)
19{
20 regs->orig_ax = ~irq;
21 do_IRQ(regs);
22}
23
24#endif /* _ASM_X86_XEN_EVENTS_H */ 18#endif /* _ASM_X86_XEN_EVENTS_H */
diff --git a/arch/x86/include/asm/xen/hypervisor.h b/arch/x86/include/asm/xen/hypervisor.h
index 81fbd735aec4..d5b7e90c0edf 100644
--- a/arch/x86/include/asm/xen/hypervisor.h
+++ b/arch/x86/include/asm/xen/hypervisor.h
@@ -38,22 +38,30 @@ extern struct shared_info *HYPERVISOR_shared_info;
38extern struct start_info *xen_start_info; 38extern struct start_info *xen_start_info;
39 39
40enum xen_domain_type { 40enum xen_domain_type {
41 XEN_NATIVE, 41 XEN_NATIVE, /* running on bare hardware */
42 XEN_PV_DOMAIN, 42 XEN_PV_DOMAIN, /* running in a PV domain */
43 XEN_HVM_DOMAIN, 43 XEN_HVM_DOMAIN, /* running in a Xen hvm domain */
44}; 44};
45 45
46extern enum xen_domain_type xen_domain_type;
47
48#ifdef CONFIG_XEN 46#ifdef CONFIG_XEN
49#define xen_domain() (xen_domain_type != XEN_NATIVE) 47extern enum xen_domain_type xen_domain_type;
50#else 48#else
51#define xen_domain() (0) 49#define xen_domain_type XEN_NATIVE
52#endif 50#endif
53 51
54#define xen_pv_domain() (xen_domain() && xen_domain_type == XEN_PV_DOMAIN) 52#define xen_domain() (xen_domain_type != XEN_NATIVE)
55#define xen_hvm_domain() (xen_domain() && xen_domain_type == XEN_HVM_DOMAIN) 53#define xen_pv_domain() (xen_domain() && \
54 xen_domain_type == XEN_PV_DOMAIN)
55#define xen_hvm_domain() (xen_domain() && \
56 xen_domain_type == XEN_HVM_DOMAIN)
57
58#ifdef CONFIG_XEN_DOM0
59#include <xen/interface/xen.h>
56 60
57#define xen_initial_domain() (xen_pv_domain() && xen_start_info->flags & SIF_INITDOMAIN) 61#define xen_initial_domain() (xen_pv_domain() && \
62 xen_start_info->flags & SIF_INITDOMAIN)
63#else /* !CONFIG_XEN_DOM0 */
64#define xen_initial_domain() (0)
65#endif /* CONFIG_XEN_DOM0 */
58 66
59#endif /* _ASM_X86_XEN_HYPERVISOR_H */ 67#endif /* _ASM_X86_XEN_HYPERVISOR_H */
diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
index 7ef617ef1df3..4bd990ee43df 100644
--- a/arch/x86/include/asm/xen/page.h
+++ b/arch/x86/include/asm/xen/page.h
@@ -137,7 +137,7 @@ static inline pte_t mfn_pte(unsigned long page_nr, pgprot_t pgprot)
137 pte_t pte; 137 pte_t pte;
138 138
139 pte.pte = ((phys_addr_t)page_nr << PAGE_SHIFT) | 139 pte.pte = ((phys_addr_t)page_nr << PAGE_SHIFT) |
140 (pgprot_val(pgprot) & __supported_pte_mask); 140 massage_pgprot(pgprot);
141 141
142 return pte; 142 return pte;
143} 143}
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index d364df03c1d6..95f216bbfaf1 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -23,11 +23,12 @@ nostackp := $(call cc-option, -fno-stack-protector)
23CFLAGS_vsyscall_64.o := $(PROFILING) -g0 $(nostackp) 23CFLAGS_vsyscall_64.o := $(PROFILING) -g0 $(nostackp)
24CFLAGS_hpet.o := $(nostackp) 24CFLAGS_hpet.o := $(nostackp)
25CFLAGS_tsc.o := $(nostackp) 25CFLAGS_tsc.o := $(nostackp)
26CFLAGS_paravirt.o := $(nostackp)
26 27
27obj-y := process_$(BITS).o signal.o entry_$(BITS).o 28obj-y := process_$(BITS).o signal.o entry_$(BITS).o
28obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o 29obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
29obj-y += time_$(BITS).o ioport.o ldt.o dumpstack.o 30obj-y += time_$(BITS).o ioport.o ldt.o dumpstack.o
30obj-y += setup.o i8259.o irqinit_$(BITS).o setup_percpu.o 31obj-y += setup.o i8259.o irqinit_$(BITS).o
31obj-$(CONFIG_X86_VISWS) += visws_quirks.o 32obj-$(CONFIG_X86_VISWS) += visws_quirks.o
32obj-$(CONFIG_X86_32) += probe_roms_32.o 33obj-$(CONFIG_X86_32) += probe_roms_32.o
33obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o 34obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o
@@ -49,31 +50,27 @@ obj-y += step.o
49obj-$(CONFIG_STACKTRACE) += stacktrace.o 50obj-$(CONFIG_STACKTRACE) += stacktrace.o
50obj-y += cpu/ 51obj-y += cpu/
51obj-y += acpi/ 52obj-y += acpi/
52obj-$(CONFIG_X86_BIOS_REBOOT) += reboot.o 53obj-y += reboot.o
53obj-$(CONFIG_MCA) += mca_32.o 54obj-$(CONFIG_MCA) += mca_32.o
54obj-$(CONFIG_X86_MSR) += msr.o 55obj-$(CONFIG_X86_MSR) += msr.o
55obj-$(CONFIG_X86_CPUID) += cpuid.o 56obj-$(CONFIG_X86_CPUID) += cpuid.o
56obj-$(CONFIG_PCI) += early-quirks.o 57obj-$(CONFIG_PCI) += early-quirks.o
57apm-y := apm_32.o 58apm-y := apm_32.o
58obj-$(CONFIG_APM) += apm.o 59obj-$(CONFIG_APM) += apm.o
59obj-$(CONFIG_X86_SMP) += smp.o 60obj-$(CONFIG_SMP) += smp.o
60obj-$(CONFIG_X86_SMP) += smpboot.o tsc_sync.o ipi.o tlb_$(BITS).o 61obj-$(CONFIG_SMP) += smpboot.o tsc_sync.o
61obj-$(CONFIG_X86_32_SMP) += smpcommon.o 62obj-$(CONFIG_SMP) += setup_percpu.o
62obj-$(CONFIG_X86_64_SMP) += tsc_sync.o smpcommon.o 63obj-$(CONFIG_X86_64_SMP) += tsc_sync.o
63obj-$(CONFIG_X86_TRAMPOLINE) += trampoline_$(BITS).o 64obj-$(CONFIG_X86_TRAMPOLINE) += trampoline_$(BITS).o
64obj-$(CONFIG_X86_MPPARSE) += mpparse.o 65obj-$(CONFIG_X86_MPPARSE) += mpparse.o
65obj-$(CONFIG_X86_LOCAL_APIC) += apic.o nmi.o 66obj-y += apic/
66obj-$(CONFIG_X86_IO_APIC) += io_apic.o
67obj-$(CONFIG_X86_REBOOTFIXUPS) += reboot_fixups_32.o 67obj-$(CONFIG_X86_REBOOTFIXUPS) += reboot_fixups_32.o
68obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o 68obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o
69obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o 69obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
70obj-$(CONFIG_KEXEC) += machine_kexec_$(BITS).o 70obj-$(CONFIG_KEXEC) += machine_kexec_$(BITS).o
71obj-$(CONFIG_KEXEC) += relocate_kernel_$(BITS).o crash.o 71obj-$(CONFIG_KEXEC) += relocate_kernel_$(BITS).o crash.o
72obj-$(CONFIG_CRASH_DUMP) += crash_dump_$(BITS).o 72obj-$(CONFIG_CRASH_DUMP) += crash_dump_$(BITS).o
73obj-$(CONFIG_X86_NUMAQ) += numaq_32.o 73obj-$(CONFIG_X86_VSMP) += vsmp_64.o
74obj-$(CONFIG_X86_ES7000) += es7000_32.o
75obj-$(CONFIG_X86_SUMMIT_NUMA) += summit_32.o
76obj-y += vsmp_64.o
77obj-$(CONFIG_KPROBES) += kprobes.o 74obj-$(CONFIG_KPROBES) += kprobes.o
78obj-$(CONFIG_MODULES) += module_$(BITS).o 75obj-$(CONFIG_MODULES) += module_$(BITS).o
79obj-$(CONFIG_EFI) += efi.o efi_$(BITS).o efi_stub_$(BITS).o 76obj-$(CONFIG_EFI) += efi.o efi_$(BITS).o efi_stub_$(BITS).o
@@ -114,16 +111,13 @@ obj-$(CONFIG_SWIOTLB) += pci-swiotlb_64.o # NB rename without _64
114### 111###
115# 64 bit specific files 112# 64 bit specific files
116ifeq ($(CONFIG_X86_64),y) 113ifeq ($(CONFIG_X86_64),y)
117 obj-y += genapic_64.o genapic_flat_64.o genx2apic_uv_x.o tlb_uv.o 114 obj-$(CONFIG_X86_UV) += tlb_uv.o bios_uv.o uv_irq.o uv_sysfs.o
118 obj-y += bios_uv.o uv_irq.o uv_sysfs.o 115 obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o
119 obj-y += genx2apic_cluster.o 116 obj-$(CONFIG_AUDIT) += audit_64.o
120 obj-y += genx2apic_phys.o 117
121 obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o 118 obj-$(CONFIG_GART_IOMMU) += pci-gart_64.o aperture_64.o
122 obj-$(CONFIG_AUDIT) += audit_64.o 119 obj-$(CONFIG_CALGARY_IOMMU) += pci-calgary_64.o tce_64.o
123 120 obj-$(CONFIG_AMD_IOMMU) += amd_iommu_init.o amd_iommu.o
124 obj-$(CONFIG_GART_IOMMU) += pci-gart_64.o aperture_64.o 121
125 obj-$(CONFIG_CALGARY_IOMMU) += pci-calgary_64.o tce_64.o 122 obj-$(CONFIG_PCI_MMCONFIG) += mmconf-fam10h_64.o
126 obj-$(CONFIG_AMD_IOMMU) += amd_iommu_init.o amd_iommu.o
127
128 obj-$(CONFIG_PCI_MMCONFIG) += mmconf-fam10h_64.o
129endif 123endif
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index d37593c2f438..a18eb7ce2236 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -37,15 +37,10 @@
37#include <asm/pgtable.h> 37#include <asm/pgtable.h>
38#include <asm/io_apic.h> 38#include <asm/io_apic.h>
39#include <asm/apic.h> 39#include <asm/apic.h>
40#include <asm/genapic.h>
41#include <asm/io.h> 40#include <asm/io.h>
42#include <asm/mpspec.h> 41#include <asm/mpspec.h>
43#include <asm/smp.h> 42#include <asm/smp.h>
44 43
45#ifdef CONFIG_X86_LOCAL_APIC
46# include <mach_apic.h>
47#endif
48
49static int __initdata acpi_force = 0; 44static int __initdata acpi_force = 0;
50u32 acpi_rsdt_forced; 45u32 acpi_rsdt_forced;
51#ifdef CONFIG_ACPI 46#ifdef CONFIG_ACPI
@@ -56,16 +51,7 @@ int acpi_disabled = 1;
56EXPORT_SYMBOL(acpi_disabled); 51EXPORT_SYMBOL(acpi_disabled);
57 52
58#ifdef CONFIG_X86_64 53#ifdef CONFIG_X86_64
59 54# include <asm/proto.h>
60#include <asm/proto.h>
61
62#else /* X86 */
63
64#ifdef CONFIG_X86_LOCAL_APIC
65#include <mach_apic.h>
66#include <mach_mpparse.h>
67#endif /* CONFIG_X86_LOCAL_APIC */
68
69#endif /* X86 */ 55#endif /* X86 */
70 56
71#define BAD_MADT_ENTRY(entry, end) ( \ 57#define BAD_MADT_ENTRY(entry, end) ( \
@@ -121,35 +107,18 @@ enum acpi_irq_model_id acpi_irq_model = ACPI_IRQ_MODEL_PIC;
121 */ 107 */
122char *__init __acpi_map_table(unsigned long phys, unsigned long size) 108char *__init __acpi_map_table(unsigned long phys, unsigned long size)
123{ 109{
124 unsigned long base, offset, mapped_size;
125 int idx;
126 110
127 if (!phys || !size) 111 if (!phys || !size)
128 return NULL; 112 return NULL;
129 113
130 if (phys+size <= (max_low_pfn_mapped << PAGE_SHIFT)) 114 return early_ioremap(phys, size);
131 return __va(phys); 115}
132 116void __init __acpi_unmap_table(char *map, unsigned long size)
133 offset = phys & (PAGE_SIZE - 1); 117{
134 mapped_size = PAGE_SIZE - offset; 118 if (!map || !size)
135 clear_fixmap(FIX_ACPI_END); 119 return;
136 set_fixmap(FIX_ACPI_END, phys);
137 base = fix_to_virt(FIX_ACPI_END);
138
139 /*
140 * Most cases can be covered by the below.
141 */
142 idx = FIX_ACPI_END;
143 while (mapped_size < size) {
144 if (--idx < FIX_ACPI_BEGIN)
145 return NULL; /* cannot handle this */
146 phys += PAGE_SIZE;
147 clear_fixmap(idx);
148 set_fixmap(idx, phys);
149 mapped_size += PAGE_SIZE;
150 }
151 120
152 return ((unsigned char *)base + offset); 121 early_iounmap(map, size);
153} 122}
154 123
155#ifdef CONFIG_PCI_MMCONFIG 124#ifdef CONFIG_PCI_MMCONFIG
@@ -239,7 +208,8 @@ static int __init acpi_parse_madt(struct acpi_table_header *table)
239 madt->address); 208 madt->address);
240 } 209 }
241 210
242 acpi_madt_oem_check(madt->header.oem_id, madt->header.oem_table_id); 211 default_acpi_madt_oem_check(madt->header.oem_id,
212 madt->header.oem_table_id);
243 213
244 return 0; 214 return 0;
245} 215}
@@ -884,7 +854,7 @@ static struct {
884 DECLARE_BITMAP(pin_programmed, MP_MAX_IOAPIC_PIN + 1); 854 DECLARE_BITMAP(pin_programmed, MP_MAX_IOAPIC_PIN + 1);
885} mp_ioapic_routing[MAX_IO_APICS]; 855} mp_ioapic_routing[MAX_IO_APICS];
886 856
887static int mp_find_ioapic(int gsi) 857int mp_find_ioapic(int gsi)
888{ 858{
889 int i = 0; 859 int i = 0;
890 860
@@ -899,6 +869,16 @@ static int mp_find_ioapic(int gsi)
899 return -1; 869 return -1;
900} 870}
901 871
872int mp_find_ioapic_pin(int ioapic, int gsi)
873{
874 if (WARN_ON(ioapic == -1))
875 return -1;
876 if (WARN_ON(gsi > mp_ioapic_routing[ioapic].gsi_end))
877 return -1;
878
879 return gsi - mp_ioapic_routing[ioapic].gsi_base;
880}
881
902static u8 __init uniq_ioapic_id(u8 id) 882static u8 __init uniq_ioapic_id(u8 id)
903{ 883{
904#ifdef CONFIG_X86_32 884#ifdef CONFIG_X86_32
@@ -912,8 +892,8 @@ static u8 __init uniq_ioapic_id(u8 id)
912 DECLARE_BITMAP(used, 256); 892 DECLARE_BITMAP(used, 256);
913 bitmap_zero(used, 256); 893 bitmap_zero(used, 256);
914 for (i = 0; i < nr_ioapics; i++) { 894 for (i = 0; i < nr_ioapics; i++) {
915 struct mp_config_ioapic *ia = &mp_ioapics[i]; 895 struct mpc_ioapic *ia = &mp_ioapics[i];
916 __set_bit(ia->mp_apicid, used); 896 __set_bit(ia->apicid, used);
917 } 897 }
918 if (!test_bit(id, used)) 898 if (!test_bit(id, used))
919 return id; 899 return id;
@@ -945,47 +925,70 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
945 925
946 idx = nr_ioapics; 926 idx = nr_ioapics;
947 927
948 mp_ioapics[idx].mp_type = MP_IOAPIC; 928 mp_ioapics[idx].type = MP_IOAPIC;
949 mp_ioapics[idx].mp_flags = MPC_APIC_USABLE; 929 mp_ioapics[idx].flags = MPC_APIC_USABLE;
950 mp_ioapics[idx].mp_apicaddr = address; 930 mp_ioapics[idx].apicaddr = address;
951 931
952 set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address); 932 set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address);
953 mp_ioapics[idx].mp_apicid = uniq_ioapic_id(id); 933 mp_ioapics[idx].apicid = uniq_ioapic_id(id);
954#ifdef CONFIG_X86_32 934#ifdef CONFIG_X86_32
955 mp_ioapics[idx].mp_apicver = io_apic_get_version(idx); 935 mp_ioapics[idx].apicver = io_apic_get_version(idx);
956#else 936#else
957 mp_ioapics[idx].mp_apicver = 0; 937 mp_ioapics[idx].apicver = 0;
958#endif 938#endif
959 /* 939 /*
960 * Build basic GSI lookup table to facilitate gsi->io_apic lookups 940 * Build basic GSI lookup table to facilitate gsi->io_apic lookups
961 * and to prevent reprogramming of IOAPIC pins (PCI GSIs). 941 * and to prevent reprogramming of IOAPIC pins (PCI GSIs).
962 */ 942 */
963 mp_ioapic_routing[idx].apic_id = mp_ioapics[idx].mp_apicid; 943 mp_ioapic_routing[idx].apic_id = mp_ioapics[idx].apicid;
964 mp_ioapic_routing[idx].gsi_base = gsi_base; 944 mp_ioapic_routing[idx].gsi_base = gsi_base;
965 mp_ioapic_routing[idx].gsi_end = gsi_base + 945 mp_ioapic_routing[idx].gsi_end = gsi_base +
966 io_apic_get_redir_entries(idx); 946 io_apic_get_redir_entries(idx);
967 947
968 printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%lx, " 948 printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
969 "GSI %d-%d\n", idx, mp_ioapics[idx].mp_apicid, 949 "GSI %d-%d\n", idx, mp_ioapics[idx].apicid,
970 mp_ioapics[idx].mp_apicver, mp_ioapics[idx].mp_apicaddr, 950 mp_ioapics[idx].apicver, mp_ioapics[idx].apicaddr,
971 mp_ioapic_routing[idx].gsi_base, mp_ioapic_routing[idx].gsi_end); 951 mp_ioapic_routing[idx].gsi_base, mp_ioapic_routing[idx].gsi_end);
972 952
973 nr_ioapics++; 953 nr_ioapics++;
974} 954}
975 955
976static void assign_to_mp_irq(struct mp_config_intsrc *m, 956int __init acpi_probe_gsi(void)
977 struct mp_config_intsrc *mp_irq)
978{ 957{
979 memcpy(mp_irq, m, sizeof(struct mp_config_intsrc)); 958 int idx;
959 int gsi;
960 int max_gsi = 0;
961
962 if (acpi_disabled)
963 return 0;
964
965 if (!acpi_ioapic)
966 return 0;
967
968 max_gsi = 0;
969 for (idx = 0; idx < nr_ioapics; idx++) {
970 gsi = mp_ioapic_routing[idx].gsi_end;
971
972 if (gsi > max_gsi)
973 max_gsi = gsi;
974 }
975
976 return max_gsi + 1;
980} 977}
981 978
982static int mp_irq_cmp(struct mp_config_intsrc *mp_irq, 979static void assign_to_mp_irq(struct mpc_intsrc *m,
983 struct mp_config_intsrc *m) 980 struct mpc_intsrc *mp_irq)
984{ 981{
985 return memcmp(mp_irq, m, sizeof(struct mp_config_intsrc)); 982 memcpy(mp_irq, m, sizeof(struct mpc_intsrc));
986} 983}
987 984
988static void save_mp_irq(struct mp_config_intsrc *m) 985static int mp_irq_cmp(struct mpc_intsrc *mp_irq,
986 struct mpc_intsrc *m)
987{
988 return memcmp(mp_irq, m, sizeof(struct mpc_intsrc));
989}
990
991static void save_mp_irq(struct mpc_intsrc *m)
989{ 992{
990 int i; 993 int i;
991 994
@@ -1003,7 +1006,7 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
1003{ 1006{
1004 int ioapic; 1007 int ioapic;
1005 int pin; 1008 int pin;
1006 struct mp_config_intsrc mp_irq; 1009 struct mpc_intsrc mp_irq;
1007 1010
1008 /* 1011 /*
1009 * Convert 'gsi' to 'ioapic.pin'. 1012 * Convert 'gsi' to 'ioapic.pin'.
@@ -1011,7 +1014,7 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
1011 ioapic = mp_find_ioapic(gsi); 1014 ioapic = mp_find_ioapic(gsi);
1012 if (ioapic < 0) 1015 if (ioapic < 0)
1013 return; 1016 return;
1014 pin = gsi - mp_ioapic_routing[ioapic].gsi_base; 1017 pin = mp_find_ioapic_pin(ioapic, gsi);
1015 1018
1016 /* 1019 /*
1017 * TBD: This check is for faulty timer entries, where the override 1020 * TBD: This check is for faulty timer entries, where the override
@@ -1021,13 +1024,13 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
1021 if ((bus_irq == 0) && (trigger == 3)) 1024 if ((bus_irq == 0) && (trigger == 3))
1022 trigger = 1; 1025 trigger = 1;
1023 1026
1024 mp_irq.mp_type = MP_INTSRC; 1027 mp_irq.type = MP_INTSRC;
1025 mp_irq.mp_irqtype = mp_INT; 1028 mp_irq.irqtype = mp_INT;
1026 mp_irq.mp_irqflag = (trigger << 2) | polarity; 1029 mp_irq.irqflag = (trigger << 2) | polarity;
1027 mp_irq.mp_srcbus = MP_ISA_BUS; 1030 mp_irq.srcbus = MP_ISA_BUS;
1028 mp_irq.mp_srcbusirq = bus_irq; /* IRQ */ 1031 mp_irq.srcbusirq = bus_irq; /* IRQ */
1029 mp_irq.mp_dstapic = mp_ioapics[ioapic].mp_apicid; /* APIC ID */ 1032 mp_irq.dstapic = mp_ioapics[ioapic].apicid; /* APIC ID */
1030 mp_irq.mp_dstirq = pin; /* INTIN# */ 1033 mp_irq.dstirq = pin; /* INTIN# */
1031 1034
1032 save_mp_irq(&mp_irq); 1035 save_mp_irq(&mp_irq);
1033} 1036}
@@ -1037,7 +1040,7 @@ void __init mp_config_acpi_legacy_irqs(void)
1037 int i; 1040 int i;
1038 int ioapic; 1041 int ioapic;
1039 unsigned int dstapic; 1042 unsigned int dstapic;
1040 struct mp_config_intsrc mp_irq; 1043 struct mpc_intsrc mp_irq;
1041 1044
1042#if defined (CONFIG_MCA) || defined (CONFIG_EISA) 1045#if defined (CONFIG_MCA) || defined (CONFIG_EISA)
1043 /* 1046 /*
@@ -1062,7 +1065,7 @@ void __init mp_config_acpi_legacy_irqs(void)
1062 ioapic = mp_find_ioapic(0); 1065 ioapic = mp_find_ioapic(0);
1063 if (ioapic < 0) 1066 if (ioapic < 0)
1064 return; 1067 return;
1065 dstapic = mp_ioapics[ioapic].mp_apicid; 1068 dstapic = mp_ioapics[ioapic].apicid;
1066 1069
1067 /* 1070 /*
1068 * Use the default configuration for the IRQs 0-15. Unless 1071 * Use the default configuration for the IRQs 0-15. Unless
@@ -1072,16 +1075,14 @@ void __init mp_config_acpi_legacy_irqs(void)
1072 int idx; 1075 int idx;
1073 1076
1074 for (idx = 0; idx < mp_irq_entries; idx++) { 1077 for (idx = 0; idx < mp_irq_entries; idx++) {
1075 struct mp_config_intsrc *irq = mp_irqs + idx; 1078 struct mpc_intsrc *irq = mp_irqs + idx;
1076 1079
1077 /* Do we already have a mapping for this ISA IRQ? */ 1080 /* Do we already have a mapping for this ISA IRQ? */
1078 if (irq->mp_srcbus == MP_ISA_BUS 1081 if (irq->srcbus == MP_ISA_BUS && irq->srcbusirq == i)
1079 && irq->mp_srcbusirq == i)
1080 break; 1082 break;
1081 1083
1082 /* Do we already have a mapping for this IOAPIC pin */ 1084 /* Do we already have a mapping for this IOAPIC pin */
1083 if (irq->mp_dstapic == dstapic && 1085 if (irq->dstapic == dstapic && irq->dstirq == i)
1084 irq->mp_dstirq == i)
1085 break; 1086 break;
1086 } 1087 }
1087 1088
@@ -1090,13 +1091,13 @@ void __init mp_config_acpi_legacy_irqs(void)
1090 continue; /* IRQ already used */ 1091 continue; /* IRQ already used */
1091 } 1092 }
1092 1093
1093 mp_irq.mp_type = MP_INTSRC; 1094 mp_irq.type = MP_INTSRC;
1094 mp_irq.mp_irqflag = 0; /* Conforming */ 1095 mp_irq.irqflag = 0; /* Conforming */
1095 mp_irq.mp_srcbus = MP_ISA_BUS; 1096 mp_irq.srcbus = MP_ISA_BUS;
1096 mp_irq.mp_dstapic = dstapic; 1097 mp_irq.dstapic = dstapic;
1097 mp_irq.mp_irqtype = mp_INT; 1098 mp_irq.irqtype = mp_INT;
1098 mp_irq.mp_srcbusirq = i; /* Identity mapped */ 1099 mp_irq.srcbusirq = i; /* Identity mapped */
1099 mp_irq.mp_dstirq = i; 1100 mp_irq.dstirq = i;
1100 1101
1101 save_mp_irq(&mp_irq); 1102 save_mp_irq(&mp_irq);
1102 } 1103 }
@@ -1133,7 +1134,7 @@ int mp_register_gsi(u32 gsi, int triggering, int polarity)
1133 return gsi; 1134 return gsi;
1134 } 1135 }
1135 1136
1136 ioapic_pin = gsi - mp_ioapic_routing[ioapic].gsi_base; 1137 ioapic_pin = mp_find_ioapic_pin(ioapic, gsi);
1137 1138
1138#ifdef CONFIG_X86_32 1139#ifdef CONFIG_X86_32
1139 if (ioapic_renumber_irq) 1140 if (ioapic_renumber_irq)
@@ -1207,22 +1208,22 @@ int mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin,
1207 u32 gsi, int triggering, int polarity) 1208 u32 gsi, int triggering, int polarity)
1208{ 1209{
1209#ifdef CONFIG_X86_MPPARSE 1210#ifdef CONFIG_X86_MPPARSE
1210 struct mp_config_intsrc mp_irq; 1211 struct mpc_intsrc mp_irq;
1211 int ioapic; 1212 int ioapic;
1212 1213
1213 if (!acpi_ioapic) 1214 if (!acpi_ioapic)
1214 return 0; 1215 return 0;
1215 1216
1216 /* print the entry should happen on mptable identically */ 1217 /* print the entry should happen on mptable identically */
1217 mp_irq.mp_type = MP_INTSRC; 1218 mp_irq.type = MP_INTSRC;
1218 mp_irq.mp_irqtype = mp_INT; 1219 mp_irq.irqtype = mp_INT;
1219 mp_irq.mp_irqflag = (triggering == ACPI_EDGE_SENSITIVE ? 4 : 0x0c) | 1220 mp_irq.irqflag = (triggering == ACPI_EDGE_SENSITIVE ? 4 : 0x0c) |
1220 (polarity == ACPI_ACTIVE_HIGH ? 1 : 3); 1221 (polarity == ACPI_ACTIVE_HIGH ? 1 : 3);
1221 mp_irq.mp_srcbus = number; 1222 mp_irq.srcbus = number;
1222 mp_irq.mp_srcbusirq = (((devfn >> 3) & 0x1f) << 2) | ((pin - 1) & 3); 1223 mp_irq.srcbusirq = (((devfn >> 3) & 0x1f) << 2) | ((pin - 1) & 3);
1223 ioapic = mp_find_ioapic(gsi); 1224 ioapic = mp_find_ioapic(gsi);
1224 mp_irq.mp_dstapic = mp_ioapic_routing[ioapic].apic_id; 1225 mp_irq.dstapic = mp_ioapic_routing[ioapic].apic_id;
1225 mp_irq.mp_dstirq = gsi - mp_ioapic_routing[ioapic].gsi_base; 1226 mp_irq.dstirq = mp_find_ioapic_pin(ioapic, gsi);
1226 1227
1227 save_mp_irq(&mp_irq); 1228 save_mp_irq(&mp_irq);
1228#endif 1229#endif
@@ -1349,7 +1350,7 @@ static void __init acpi_process_madt(void)
1349 if (!error) { 1350 if (!error) {
1350 acpi_lapic = 1; 1351 acpi_lapic = 1;
1351 1352
1352#ifdef CONFIG_X86_GENERICARCH 1353#ifdef CONFIG_X86_BIGSMP
1353 generic_bigsmp_probe(); 1354 generic_bigsmp_probe();
1354#endif 1355#endif
1355 /* 1356 /*
@@ -1361,9 +1362,8 @@ static void __init acpi_process_madt(void)
1361 acpi_ioapic = 1; 1362 acpi_ioapic = 1;
1362 1363
1363 smp_found_config = 1; 1364 smp_found_config = 1;
1364#ifdef CONFIG_X86_32 1365 if (apic->setup_apic_routing)
1365 setup_apic_routing(); 1366 apic->setup_apic_routing();
1366#endif
1367 } 1367 }
1368 } 1368 }
1369 if (error == -EINVAL) { 1369 if (error == -EINVAL) {
diff --git a/arch/x86/kernel/acpi/cstate.c b/arch/x86/kernel/acpi/cstate.c
index a4805b3b4095..bbbe4bbb6f34 100644
--- a/arch/x86/kernel/acpi/cstate.c
+++ b/arch/x86/kernel/acpi/cstate.c
@@ -67,35 +67,15 @@ static short mwait_supported[ACPI_PROCESSOR_MAX_POWER];
67 67
68#define NATIVE_CSTATE_BEYOND_HALT (2) 68#define NATIVE_CSTATE_BEYOND_HALT (2)
69 69
70int acpi_processor_ffh_cstate_probe(unsigned int cpu, 70static long acpi_processor_ffh_cstate_probe_cpu(void *_cx)
71 struct acpi_processor_cx *cx, struct acpi_power_register *reg)
72{ 71{
73 struct cstate_entry *percpu_entry; 72 struct acpi_processor_cx *cx = _cx;
74 struct cpuinfo_x86 *c = &cpu_data(cpu); 73 long retval;
75
76 cpumask_t saved_mask;
77 int retval;
78 unsigned int eax, ebx, ecx, edx; 74 unsigned int eax, ebx, ecx, edx;
79 unsigned int edx_part; 75 unsigned int edx_part;
80 unsigned int cstate_type; /* C-state type and not ACPI C-state type */ 76 unsigned int cstate_type; /* C-state type and not ACPI C-state type */
81 unsigned int num_cstate_subtype; 77 unsigned int num_cstate_subtype;
82 78
83 if (!cpu_cstate_entry || c->cpuid_level < CPUID_MWAIT_LEAF )
84 return -1;
85
86 if (reg->bit_offset != NATIVE_CSTATE_BEYOND_HALT)
87 return -1;
88
89 percpu_entry = per_cpu_ptr(cpu_cstate_entry, cpu);
90 percpu_entry->states[cx->index].eax = 0;
91 percpu_entry->states[cx->index].ecx = 0;
92
93 /* Make sure we are running on right CPU */
94 saved_mask = current->cpus_allowed;
95 retval = set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu));
96 if (retval)
97 return -1;
98
99 cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &edx); 79 cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &edx);
100 80
101 /* Check whether this particular cx_type (in CST) is supported or not */ 81 /* Check whether this particular cx_type (in CST) is supported or not */
@@ -116,21 +96,45 @@ int acpi_processor_ffh_cstate_probe(unsigned int cpu,
116 retval = -1; 96 retval = -1;
117 goto out; 97 goto out;
118 } 98 }
119 percpu_entry->states[cx->index].ecx = MWAIT_ECX_INTERRUPT_BREAK;
120
121 /* Use the hint in CST */
122 percpu_entry->states[cx->index].eax = cx->address;
123 99
124 if (!mwait_supported[cstate_type]) { 100 if (!mwait_supported[cstate_type]) {
125 mwait_supported[cstate_type] = 1; 101 mwait_supported[cstate_type] = 1;
126 printk(KERN_DEBUG "Monitor-Mwait will be used to enter C-%d " 102 printk(KERN_DEBUG
127 "state\n", cx->type); 103 "Monitor-Mwait will be used to enter C-%d "
104 "state\n", cx->type);
128 } 105 }
129 snprintf(cx->desc, ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x", 106 snprintf(cx->desc,
130 cx->address); 107 ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x",
131 108 cx->address);
132out: 109out:
133 set_cpus_allowed_ptr(current, &saved_mask); 110 return retval;
111}
112
113int acpi_processor_ffh_cstate_probe(unsigned int cpu,
114 struct acpi_processor_cx *cx, struct acpi_power_register *reg)
115{
116 struct cstate_entry *percpu_entry;
117 struct cpuinfo_x86 *c = &cpu_data(cpu);
118 long retval;
119
120 if (!cpu_cstate_entry || c->cpuid_level < CPUID_MWAIT_LEAF)
121 return -1;
122
123 if (reg->bit_offset != NATIVE_CSTATE_BEYOND_HALT)
124 return -1;
125
126 percpu_entry = per_cpu_ptr(cpu_cstate_entry, cpu);
127 percpu_entry->states[cx->index].eax = 0;
128 percpu_entry->states[cx->index].ecx = 0;
129
130 /* Make sure we are running on right CPU */
131
132 retval = work_on_cpu(cpu, acpi_processor_ffh_cstate_probe_cpu, cx);
133 if (retval == 0) {
134 /* Use the hint in CST */
135 percpu_entry->states[cx->index].eax = cx->address;
136 percpu_entry->states[cx->index].ecx = MWAIT_ECX_INTERRUPT_BREAK;
137 }
134 return retval; 138 return retval;
135} 139}
136EXPORT_SYMBOL_GPL(acpi_processor_ffh_cstate_probe); 140EXPORT_SYMBOL_GPL(acpi_processor_ffh_cstate_probe);
diff --git a/arch/x86/kernel/acpi/realmode/wakeup.S b/arch/x86/kernel/acpi/realmode/wakeup.S
index 3355973b12ac..580b4e296010 100644
--- a/arch/x86/kernel/acpi/realmode/wakeup.S
+++ b/arch/x86/kernel/acpi/realmode/wakeup.S
@@ -3,8 +3,8 @@
3 */ 3 */
4#include <asm/segment.h> 4#include <asm/segment.h>
5#include <asm/msr-index.h> 5#include <asm/msr-index.h>
6#include <asm/page.h> 6#include <asm/page_types.h>
7#include <asm/pgtable.h> 7#include <asm/pgtable_types.h>
8#include <asm/processor-flags.h> 8#include <asm/processor-flags.h>
9 9
10 .code16 10 .code16
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
index 707c1f6f95fa..7c243a2c5115 100644
--- a/arch/x86/kernel/acpi/sleep.c
+++ b/arch/x86/kernel/acpi/sleep.c
@@ -101,6 +101,7 @@ int acpi_save_state_mem(void)
101 stack_start.sp = temp_stack + sizeof(temp_stack); 101 stack_start.sp = temp_stack + sizeof(temp_stack);
102 early_gdt_descr.address = 102 early_gdt_descr.address =
103 (unsigned long)get_cpu_gdt_table(smp_processor_id()); 103 (unsigned long)get_cpu_gdt_table(smp_processor_id());
104 initial_gs = per_cpu_offset(smp_processor_id());
104#endif 105#endif
105 initial_code = (unsigned long)wakeup_long64; 106 initial_code = (unsigned long)wakeup_long64;
106 saved_magic = 0x123456789abcdef0; 107 saved_magic = 0x123456789abcdef0;
@@ -156,11 +157,11 @@ static int __init acpi_sleep_setup(char *str)
156#ifdef CONFIG_HIBERNATION 157#ifdef CONFIG_HIBERNATION
157 if (strncmp(str, "s4_nohwsig", 10) == 0) 158 if (strncmp(str, "s4_nohwsig", 10) == 0)
158 acpi_no_s4_hw_signature(); 159 acpi_no_s4_hw_signature();
160 if (strncmp(str, "s4_nonvs", 8) == 0)
161 acpi_s4_no_nvs();
159#endif 162#endif
160 if (strncmp(str, "old_ordering", 12) == 0) 163 if (strncmp(str, "old_ordering", 12) == 0)
161 acpi_old_suspend_ordering(); 164 acpi_old_suspend_ordering();
162 if (strncmp(str, "s4_nonvs", 8) == 0)
163 acpi_s4_no_nvs();
164 str = strchr(str, ','); 165 str = strchr(str, ',');
165 if (str != NULL) 166 if (str != NULL)
166 str += strspn(str, ", \t"); 167 str += strspn(str, ", \t");
diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S
index a12e6a9fb659..8ded418b0593 100644
--- a/arch/x86/kernel/acpi/wakeup_32.S
+++ b/arch/x86/kernel/acpi/wakeup_32.S
@@ -1,7 +1,7 @@
1 .section .text.page_aligned 1 .section .text.page_aligned
2#include <linux/linkage.h> 2#include <linux/linkage.h>
3#include <asm/segment.h> 3#include <asm/segment.h>
4#include <asm/page.h> 4#include <asm/page_types.h>
5 5
6# Copyright 2003, 2008 Pavel Machek <pavel@suse.cz>, distribute under GPLv2 6# Copyright 2003, 2008 Pavel Machek <pavel@suse.cz>, distribute under GPLv2
7 7
diff --git a/arch/x86/kernel/acpi/wakeup_64.S b/arch/x86/kernel/acpi/wakeup_64.S
index bcc293423a70..8ea5164cbd04 100644
--- a/arch/x86/kernel/acpi/wakeup_64.S
+++ b/arch/x86/kernel/acpi/wakeup_64.S
@@ -1,8 +1,8 @@
1.text 1.text
2#include <linux/linkage.h> 2#include <linux/linkage.h>
3#include <asm/segment.h> 3#include <asm/segment.h>
4#include <asm/pgtable.h> 4#include <asm/pgtable_types.h>
5#include <asm/page.h> 5#include <asm/page_types.h>
6#include <asm/msr.h> 6#include <asm/msr.h>
7#include <asm/asm-offsets.h> 7#include <asm/asm-offsets.h>
8 8
@@ -13,7 +13,6 @@
13 * Hooray, we are in Long 64-bit mode (but still running in low memory) 13 * Hooray, we are in Long 64-bit mode (but still running in low memory)
14 */ 14 */
15ENTRY(wakeup_long64) 15ENTRY(wakeup_long64)
16wakeup_long64:
17 movq saved_magic, %rax 16 movq saved_magic, %rax
18 movq $0x123456789abcdef0, %rdx 17 movq $0x123456789abcdef0, %rdx
19 cmpq %rdx, %rax 18 cmpq %rdx, %rax
@@ -34,16 +33,12 @@ wakeup_long64:
34 33
35 movq saved_rip, %rax 34 movq saved_rip, %rax
36 jmp *%rax 35 jmp *%rax
36ENDPROC(wakeup_long64)
37 37
38bogus_64_magic: 38bogus_64_magic:
39 jmp bogus_64_magic 39 jmp bogus_64_magic
40 40
41 .align 2 41ENTRY(do_suspend_lowlevel)
42 .p2align 4,,15
43.globl do_suspend_lowlevel
44 .type do_suspend_lowlevel,@function
45do_suspend_lowlevel:
46.LFB5:
47 subq $8, %rsp 42 subq $8, %rsp
48 xorl %eax, %eax 43 xorl %eax, %eax
49 call save_processor_state 44 call save_processor_state
@@ -67,7 +62,7 @@ do_suspend_lowlevel:
67 pushfq 62 pushfq
68 popq pt_regs_flags(%rax) 63 popq pt_regs_flags(%rax)
69 64
70 movq $.L97, saved_rip(%rip) 65 movq $resume_point, saved_rip(%rip)
71 66
72 movq %rsp, saved_rsp 67 movq %rsp, saved_rsp
73 movq %rbp, saved_rbp 68 movq %rbp, saved_rbp
@@ -78,14 +73,12 @@ do_suspend_lowlevel:
78 addq $8, %rsp 73 addq $8, %rsp
79 movl $3, %edi 74 movl $3, %edi
80 xorl %eax, %eax 75 xorl %eax, %eax
81 jmp acpi_enter_sleep_state 76 call acpi_enter_sleep_state
82.L97: 77 /* in case something went wrong, restore the machine status and go on */
83 .p2align 4,,7 78 jmp resume_point
84.L99:
85 .align 4
86 movl $24, %eax
87 movw %ax, %ds
88 79
80 .align 4
81resume_point:
89 /* We don't restore %rax, it must be 0 anyway */ 82 /* We don't restore %rax, it must be 0 anyway */
90 movq $saved_context, %rax 83 movq $saved_context, %rax
91 movq saved_context_cr4(%rax), %rbx 84 movq saved_context_cr4(%rax), %rbx
@@ -117,12 +110,9 @@ do_suspend_lowlevel:
117 xorl %eax, %eax 110 xorl %eax, %eax
118 addq $8, %rsp 111 addq $8, %rsp
119 jmp restore_processor_state 112 jmp restore_processor_state
120.LFE5: 113ENDPROC(do_suspend_lowlevel)
121.Lfe5: 114
122 .size do_suspend_lowlevel, .Lfe5-do_suspend_lowlevel
123
124.data 115.data
125ALIGN
126ENTRY(saved_rbp) .quad 0 116ENTRY(saved_rbp) .quad 0
127ENTRY(saved_rsi) .quad 0 117ENTRY(saved_rsi) .quad 0
128ENTRY(saved_rdi) .quad 0 118ENTRY(saved_rdi) .quad 0
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index a84ac7b570e6..6907b8e85d52 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -498,12 +498,12 @@ void *text_poke_early(void *addr, const void *opcode, size_t len)
498 */ 498 */
499void *__kprobes text_poke(void *addr, const void *opcode, size_t len) 499void *__kprobes text_poke(void *addr, const void *opcode, size_t len)
500{ 500{
501 unsigned long flags;
502 char *vaddr; 501 char *vaddr;
503 int nr_pages = 2; 502 int nr_pages = 2;
504 struct page *pages[2]; 503 struct page *pages[2];
505 int i; 504 int i;
506 505
506 might_sleep();
507 if (!core_kernel_text((unsigned long)addr)) { 507 if (!core_kernel_text((unsigned long)addr)) {
508 pages[0] = vmalloc_to_page(addr); 508 pages[0] = vmalloc_to_page(addr);
509 pages[1] = vmalloc_to_page(addr + PAGE_SIZE); 509 pages[1] = vmalloc_to_page(addr + PAGE_SIZE);
@@ -517,9 +517,9 @@ void *__kprobes text_poke(void *addr, const void *opcode, size_t len)
517 nr_pages = 1; 517 nr_pages = 1;
518 vaddr = vmap(pages, nr_pages, VM_MAP, PAGE_KERNEL); 518 vaddr = vmap(pages, nr_pages, VM_MAP, PAGE_KERNEL);
519 BUG_ON(!vaddr); 519 BUG_ON(!vaddr);
520 local_irq_save(flags); 520 local_irq_disable();
521 memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len); 521 memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len);
522 local_irq_restore(flags); 522 local_irq_enable();
523 vunmap(vaddr); 523 vunmap(vaddr);
524 sync_core(); 524 sync_core();
525 /* Could also do a CLFLUSH here to speed up CPU recovery; but 525 /* Could also do a CLFLUSH here to speed up CPU recovery; but
diff --git a/arch/x86/kernel/apic/Makefile b/arch/x86/kernel/apic/Makefile
new file mode 100644
index 000000000000..da7b7b9f8bd8
--- /dev/null
+++ b/arch/x86/kernel/apic/Makefile
@@ -0,0 +1,19 @@
1#
2# Makefile for local APIC drivers and for the IO-APIC code
3#
4
5obj-$(CONFIG_X86_LOCAL_APIC) += apic.o probe_$(BITS).o ipi.o nmi.o
6obj-$(CONFIG_X86_IO_APIC) += io_apic.o
7obj-$(CONFIG_SMP) += ipi.o
8
9ifeq ($(CONFIG_X86_64),y)
10obj-y += apic_flat_64.o
11obj-$(CONFIG_X86_X2APIC) += x2apic_cluster.o
12obj-$(CONFIG_X86_X2APIC) += x2apic_phys.o
13obj-$(CONFIG_X86_UV) += x2apic_uv_x.o
14endif
15
16obj-$(CONFIG_X86_BIGSMP) += bigsmp_32.o
17obj-$(CONFIG_X86_NUMAQ) += numaq_32.o
18obj-$(CONFIG_X86_ES7000) += es7000_32.o
19obj-$(CONFIG_X86_SUMMIT) += summit_32.o
diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic/apic.c
index b13d3c4dbd42..f9cecdfd05c5 100644
--- a/arch/x86/kernel/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Local APIC handling, local APIC timers 2 * Local APIC handling, local APIC timers
3 * 3 *
4 * (c) 1999, 2000 Ingo Molnar <mingo@redhat.com> 4 * (c) 1999, 2000, 2009 Ingo Molnar <mingo@redhat.com>
5 * 5 *
6 * Fixes 6 * Fixes
7 * Maciej W. Rozycki : Bits for genuine 82489DX APICs; 7 * Maciej W. Rozycki : Bits for genuine 82489DX APICs;
@@ -14,50 +14,69 @@
14 * Mikael Pettersson : PM converted to driver model. 14 * Mikael Pettersson : PM converted to driver model.
15 */ 15 */
16 16
17#include <linux/init.h>
18
19#include <linux/mm.h>
20#include <linux/delay.h>
21#include <linux/bootmem.h>
22#include <linux/interrupt.h>
23#include <linux/mc146818rtc.h>
24#include <linux/kernel_stat.h> 17#include <linux/kernel_stat.h>
25#include <linux/sysdev.h> 18#include <linux/mc146818rtc.h>
26#include <linux/ioport.h>
27#include <linux/cpu.h>
28#include <linux/clockchips.h>
29#include <linux/acpi_pmtmr.h> 19#include <linux/acpi_pmtmr.h>
20#include <linux/clockchips.h>
21#include <linux/interrupt.h>
22#include <linux/bootmem.h>
23#include <linux/ftrace.h>
24#include <linux/ioport.h>
30#include <linux/module.h> 25#include <linux/module.h>
31#include <linux/dmi.h> 26#include <linux/sysdev.h>
27#include <linux/delay.h>
28#include <linux/timex.h>
32#include <linux/dmar.h> 29#include <linux/dmar.h>
33#include <linux/ftrace.h> 30#include <linux/init.h>
31#include <linux/cpu.h>
32#include <linux/dmi.h>
33#include <linux/nmi.h>
34#include <linux/smp.h>
35#include <linux/mm.h>
34 36
37#include <asm/pgalloc.h>
35#include <asm/atomic.h> 38#include <asm/atomic.h>
36#include <asm/smp.h>
37#include <asm/mtrr.h>
38#include <asm/mpspec.h> 39#include <asm/mpspec.h>
39#include <asm/desc.h>
40#include <asm/arch_hooks.h>
41#include <asm/hpet.h>
42#include <asm/pgalloc.h>
43#include <asm/i8253.h> 40#include <asm/i8253.h>
44#include <asm/nmi.h> 41#include <asm/i8259.h>
45#include <asm/idle.h>
46#include <asm/proto.h> 42#include <asm/proto.h>
47#include <asm/timex.h>
48#include <asm/apic.h> 43#include <asm/apic.h>
49#include <asm/i8259.h> 44#include <asm/desc.h>
45#include <asm/hpet.h>
46#include <asm/idle.h>
47#include <asm/mtrr.h>
48#include <asm/smp.h>
49
50unsigned int num_processors;
50 51
51#include <mach_apic.h> 52unsigned disabled_cpus __cpuinitdata;
52#include <mach_apicdef.h> 53
53#include <mach_ipi.h> 54/* Processor that is doing the boot up */
55unsigned int boot_cpu_physical_apicid = -1U;
54 56
55/* 57/*
56 * Sanity check 58 * The highest APIC ID seen during enumeration.
59 *
60 * This determines the messaging protocol we can use: if all APIC IDs
61 * are in the 0 ... 7 range, then we can use logical addressing which
62 * has some performance advantages (better broadcasting).
63 *
64 * If there's an APIC ID above 8, we use physical addressing.
57 */ 65 */
58#if ((SPURIOUS_APIC_VECTOR & 0x0F) != 0x0F) 66unsigned int max_physical_apicid;
59# error SPURIOUS_APIC_VECTOR definition error 67
60#endif 68/*
69 * Bitmask of physically existing CPUs:
70 */
71physid_mask_t phys_cpu_present_map;
72
73/*
74 * Map cpu index to physical APIC ID
75 */
76DEFINE_EARLY_PER_CPU(u16, x86_cpu_to_apicid, BAD_APICID);
77DEFINE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid, BAD_APICID);
78EXPORT_EARLY_PER_CPU_SYMBOL(x86_cpu_to_apicid);
79EXPORT_EARLY_PER_CPU_SYMBOL(x86_bios_cpu_apicid);
61 80
62#ifdef CONFIG_X86_32 81#ifdef CONFIG_X86_32
63/* 82/*
@@ -91,11 +110,7 @@ static __init int setup_apicpmtimer(char *s)
91__setup("apicpmtimer", setup_apicpmtimer); 110__setup("apicpmtimer", setup_apicpmtimer);
92#endif 111#endif
93 112
94#ifdef CONFIG_X86_64 113#ifdef CONFIG_X86_X2APIC
95#define HAVE_X2APIC
96#endif
97
98#ifdef HAVE_X2APIC
99int x2apic; 114int x2apic;
100/* x2apic enabled before OS handover */ 115/* x2apic enabled before OS handover */
101static int x2apic_preenabled; 116static int x2apic_preenabled;
@@ -193,18 +208,13 @@ static int modern_apic(void)
193 return lapic_get_version() >= 0x14; 208 return lapic_get_version() >= 0x14;
194} 209}
195 210
196/* 211void native_apic_wait_icr_idle(void)
197 * Paravirt kernels also might be using these below ops. So we still
198 * use generic apic_read()/apic_write(), which might be pointing to different
199 * ops in PARAVIRT case.
200 */
201void xapic_wait_icr_idle(void)
202{ 212{
203 while (apic_read(APIC_ICR) & APIC_ICR_BUSY) 213 while (apic_read(APIC_ICR) & APIC_ICR_BUSY)
204 cpu_relax(); 214 cpu_relax();
205} 215}
206 216
207u32 safe_xapic_wait_icr_idle(void) 217u32 native_safe_apic_wait_icr_idle(void)
208{ 218{
209 u32 send_status; 219 u32 send_status;
210 int timeout; 220 int timeout;
@@ -220,13 +230,13 @@ u32 safe_xapic_wait_icr_idle(void)
220 return send_status; 230 return send_status;
221} 231}
222 232
223void xapic_icr_write(u32 low, u32 id) 233void native_apic_icr_write(u32 low, u32 id)
224{ 234{
225 apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(id)); 235 apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(id));
226 apic_write(APIC_ICR, low); 236 apic_write(APIC_ICR, low);
227} 237}
228 238
229static u64 xapic_icr_read(void) 239u64 native_apic_icr_read(void)
230{ 240{
231 u32 icr1, icr2; 241 u32 icr1, icr2;
232 242
@@ -236,54 +246,6 @@ static u64 xapic_icr_read(void)
236 return icr1 | ((u64)icr2 << 32); 246 return icr1 | ((u64)icr2 << 32);
237} 247}
238 248
239static struct apic_ops xapic_ops = {
240 .read = native_apic_mem_read,
241 .write = native_apic_mem_write,
242 .icr_read = xapic_icr_read,
243 .icr_write = xapic_icr_write,
244 .wait_icr_idle = xapic_wait_icr_idle,
245 .safe_wait_icr_idle = safe_xapic_wait_icr_idle,
246};
247
248struct apic_ops __read_mostly *apic_ops = &xapic_ops;
249EXPORT_SYMBOL_GPL(apic_ops);
250
251#ifdef HAVE_X2APIC
252static void x2apic_wait_icr_idle(void)
253{
254 /* no need to wait for icr idle in x2apic */
255 return;
256}
257
258static u32 safe_x2apic_wait_icr_idle(void)
259{
260 /* no need to wait for icr idle in x2apic */
261 return 0;
262}
263
264void x2apic_icr_write(u32 low, u32 id)
265{
266 wrmsrl(APIC_BASE_MSR + (APIC_ICR >> 4), ((__u64) id) << 32 | low);
267}
268
269static u64 x2apic_icr_read(void)
270{
271 unsigned long val;
272
273 rdmsrl(APIC_BASE_MSR + (APIC_ICR >> 4), val);
274 return val;
275}
276
277static struct apic_ops x2apic_ops = {
278 .read = native_apic_msr_read,
279 .write = native_apic_msr_write,
280 .icr_read = x2apic_icr_read,
281 .icr_write = x2apic_icr_write,
282 .wait_icr_idle = x2apic_wait_icr_idle,
283 .safe_wait_icr_idle = safe_x2apic_wait_icr_idle,
284};
285#endif
286
287/** 249/**
288 * enable_NMI_through_LVT0 - enable NMI through local vector table 0 250 * enable_NMI_through_LVT0 - enable NMI through local vector table 0
289 */ 251 */
@@ -456,7 +418,7 @@ static void lapic_timer_setup(enum clock_event_mode mode,
456static void lapic_timer_broadcast(const struct cpumask *mask) 418static void lapic_timer_broadcast(const struct cpumask *mask)
457{ 419{
458#ifdef CONFIG_SMP 420#ifdef CONFIG_SMP
459 send_IPI_mask(mask, LOCAL_TIMER_VECTOR); 421 apic->send_IPI_mask(mask, LOCAL_TIMER_VECTOR);
460#endif 422#endif
461} 423}
462 424
@@ -534,7 +496,8 @@ static void __init lapic_cal_handler(struct clock_event_device *dev)
534 } 496 }
535} 497}
536 498
537static int __init calibrate_by_pmtimer(long deltapm, long *delta) 499static int __init
500calibrate_by_pmtimer(long deltapm, long *delta, long *deltatsc)
538{ 501{
539 const long pm_100ms = PMTMR_TICKS_PER_SEC / 10; 502 const long pm_100ms = PMTMR_TICKS_PER_SEC / 10;
540 const long pm_thresh = pm_100ms / 100; 503 const long pm_thresh = pm_100ms / 100;
@@ -545,7 +508,7 @@ static int __init calibrate_by_pmtimer(long deltapm, long *delta)
545 return -1; 508 return -1;
546#endif 509#endif
547 510
548 apic_printk(APIC_VERBOSE, "... PM timer delta = %ld\n", deltapm); 511 apic_printk(APIC_VERBOSE, "... PM-Timer delta = %ld\n", deltapm);
549 512
550 /* Check, if the PM timer is available */ 513 /* Check, if the PM timer is available */
551 if (!deltapm) 514 if (!deltapm)
@@ -555,19 +518,30 @@ static int __init calibrate_by_pmtimer(long deltapm, long *delta)
555 518
556 if (deltapm > (pm_100ms - pm_thresh) && 519 if (deltapm > (pm_100ms - pm_thresh) &&
557 deltapm < (pm_100ms + pm_thresh)) { 520 deltapm < (pm_100ms + pm_thresh)) {
558 apic_printk(APIC_VERBOSE, "... PM timer result ok\n"); 521 apic_printk(APIC_VERBOSE, "... PM-Timer result ok\n");
559 } else { 522 return 0;
560 res = (((u64)deltapm) * mult) >> 22; 523 }
561 do_div(res, 1000000); 524
562 pr_warning("APIC calibration not consistent " 525 res = (((u64)deltapm) * mult) >> 22;
563 "with PM Timer: %ldms instead of 100ms\n", 526 do_div(res, 1000000);
564 (long)res); 527 pr_warning("APIC calibration not consistent "
565 /* Correct the lapic counter value */ 528 "with PM-Timer: %ldms instead of 100ms\n",(long)res);
566 res = (((u64)(*delta)) * pm_100ms); 529
530 /* Correct the lapic counter value */
531 res = (((u64)(*delta)) * pm_100ms);
532 do_div(res, deltapm);
533 pr_info("APIC delta adjusted to PM-Timer: "
534 "%lu (%ld)\n", (unsigned long)res, *delta);
535 *delta = (long)res;
536
537 /* Correct the tsc counter value */
538 if (cpu_has_tsc) {
539 res = (((u64)(*deltatsc)) * pm_100ms);
567 do_div(res, deltapm); 540 do_div(res, deltapm);
568 pr_info("APIC delta adjusted to PM-Timer: " 541 apic_printk(APIC_VERBOSE, "TSC delta adjusted to "
569 "%lu (%ld)\n", (unsigned long)res, *delta); 542 "PM-Timer: %lu (%ld) \n",
570 *delta = (long)res; 543 (unsigned long)res, *deltatsc);
544 *deltatsc = (long)res;
571 } 545 }
572 546
573 return 0; 547 return 0;
@@ -578,7 +552,7 @@ static int __init calibrate_APIC_clock(void)
578 struct clock_event_device *levt = &__get_cpu_var(lapic_events); 552 struct clock_event_device *levt = &__get_cpu_var(lapic_events);
579 void (*real_handler)(struct clock_event_device *dev); 553 void (*real_handler)(struct clock_event_device *dev);
580 unsigned long deltaj; 554 unsigned long deltaj;
581 long delta; 555 long delta, deltatsc;
582 int pm_referenced = 0; 556 int pm_referenced = 0;
583 557
584 local_irq_disable(); 558 local_irq_disable();
@@ -608,9 +582,11 @@ static int __init calibrate_APIC_clock(void)
608 delta = lapic_cal_t1 - lapic_cal_t2; 582 delta = lapic_cal_t1 - lapic_cal_t2;
609 apic_printk(APIC_VERBOSE, "... lapic delta = %ld\n", delta); 583 apic_printk(APIC_VERBOSE, "... lapic delta = %ld\n", delta);
610 584
585 deltatsc = (long)(lapic_cal_tsc2 - lapic_cal_tsc1);
586
611 /* we trust the PM based calibration if possible */ 587 /* we trust the PM based calibration if possible */
612 pm_referenced = !calibrate_by_pmtimer(lapic_cal_pm2 - lapic_cal_pm1, 588 pm_referenced = !calibrate_by_pmtimer(lapic_cal_pm2 - lapic_cal_pm1,
613 &delta); 589 &delta, &deltatsc);
614 590
615 /* Calculate the scaled math multiplication factor */ 591 /* Calculate the scaled math multiplication factor */
616 lapic_clockevent.mult = div_sc(delta, TICK_NSEC * LAPIC_CAL_LOOPS, 592 lapic_clockevent.mult = div_sc(delta, TICK_NSEC * LAPIC_CAL_LOOPS,
@@ -628,11 +604,10 @@ static int __init calibrate_APIC_clock(void)
628 calibration_result); 604 calibration_result);
629 605
630 if (cpu_has_tsc) { 606 if (cpu_has_tsc) {
631 delta = (long)(lapic_cal_tsc2 - lapic_cal_tsc1);
632 apic_printk(APIC_VERBOSE, "..... CPU clock speed is " 607 apic_printk(APIC_VERBOSE, "..... CPU clock speed is "
633 "%ld.%04ld MHz.\n", 608 "%ld.%04ld MHz.\n",
634 (delta / LAPIC_CAL_LOOPS) / (1000000 / HZ), 609 (deltatsc / LAPIC_CAL_LOOPS) / (1000000 / HZ),
635 (delta / LAPIC_CAL_LOOPS) % (1000000 / HZ)); 610 (deltatsc / LAPIC_CAL_LOOPS) % (1000000 / HZ));
636 } 611 }
637 612
638 apic_printk(APIC_VERBOSE, "..... host bus clock speed is " 613 apic_printk(APIC_VERBOSE, "..... host bus clock speed is "
@@ -687,7 +662,7 @@ static int __init calibrate_APIC_clock(void)
687 local_irq_enable(); 662 local_irq_enable();
688 663
689 if (levt->features & CLOCK_EVT_FEAT_DUMMY) { 664 if (levt->features & CLOCK_EVT_FEAT_DUMMY) {
690 pr_warning("APIC timer disabled due to verification failure.\n"); 665 pr_warning("APIC timer disabled due to verification failure\n");
691 return -1; 666 return -1;
692 } 667 }
693 668
@@ -861,7 +836,7 @@ void clear_local_APIC(void)
861 } 836 }
862 837
863 /* lets not touch this if we didn't frob it */ 838 /* lets not touch this if we didn't frob it */
864#if defined(CONFIG_X86_MCE_P4THERMAL) || defined(X86_MCE_INTEL) 839#if defined(CONFIG_X86_MCE_P4THERMAL) || defined(CONFIG_X86_MCE_INTEL)
865 if (maxlvt >= 5) { 840 if (maxlvt >= 5) {
866 v = apic_read(APIC_LVTTHMR); 841 v = apic_read(APIC_LVTTHMR);
867 apic_write(APIC_LVTTHMR, v | APIC_LVT_MASKED); 842 apic_write(APIC_LVTTHMR, v | APIC_LVT_MASKED);
@@ -894,6 +869,10 @@ void disable_local_APIC(void)
894{ 869{
895 unsigned int value; 870 unsigned int value;
896 871
872 /* APIC hasn't been mapped yet */
873 if (!apic_phys)
874 return;
875
897 clear_local_APIC(); 876 clear_local_APIC();
898 877
899 /* 878 /*
@@ -986,11 +965,11 @@ int __init verify_local_APIC(void)
986 */ 965 */
987 reg0 = apic_read(APIC_ID); 966 reg0 = apic_read(APIC_ID);
988 apic_printk(APIC_DEBUG, "Getting ID: %x\n", reg0); 967 apic_printk(APIC_DEBUG, "Getting ID: %x\n", reg0);
989 apic_write(APIC_ID, reg0 ^ APIC_ID_MASK); 968 apic_write(APIC_ID, reg0 ^ apic->apic_id_mask);
990 reg1 = apic_read(APIC_ID); 969 reg1 = apic_read(APIC_ID);
991 apic_printk(APIC_DEBUG, "Getting ID: %x\n", reg1); 970 apic_printk(APIC_DEBUG, "Getting ID: %x\n", reg1);
992 apic_write(APIC_ID, reg0); 971 apic_write(APIC_ID, reg0);
993 if (reg1 != (reg0 ^ APIC_ID_MASK)) 972 if (reg1 != (reg0 ^ apic->apic_id_mask))
994 return 0; 973 return 0;
995 974
996 /* 975 /*
@@ -1084,7 +1063,7 @@ static void __cpuinit lapic_setup_esr(void)
1084 return; 1063 return;
1085 } 1064 }
1086 1065
1087 if (esr_disable) { 1066 if (apic->disable_esr) {
1088 /* 1067 /*
1089 * Something untraceable is creating bad interrupts on 1068 * Something untraceable is creating bad interrupts on
1090 * secondary quads ... for the moment, just leave the 1069 * secondary quads ... for the moment, just leave the
@@ -1125,9 +1104,14 @@ void __cpuinit setup_local_APIC(void)
1125 unsigned int value; 1104 unsigned int value;
1126 int i, j; 1105 int i, j;
1127 1106
1107 if (disable_apic) {
1108 arch_disable_smp_support();
1109 return;
1110 }
1111
1128#ifdef CONFIG_X86_32 1112#ifdef CONFIG_X86_32
1129 /* Pound the ESR really hard over the head with a big hammer - mbligh */ 1113 /* Pound the ESR really hard over the head with a big hammer - mbligh */
1130 if (lapic_is_integrated() && esr_disable) { 1114 if (lapic_is_integrated() && apic->disable_esr) {
1131 apic_write(APIC_ESR, 0); 1115 apic_write(APIC_ESR, 0);
1132 apic_write(APIC_ESR, 0); 1116 apic_write(APIC_ESR, 0);
1133 apic_write(APIC_ESR, 0); 1117 apic_write(APIC_ESR, 0);
@@ -1141,7 +1125,7 @@ void __cpuinit setup_local_APIC(void)
1141 * Double-check whether this APIC is really registered. 1125 * Double-check whether this APIC is really registered.
1142 * This is meaningless in clustered apic mode, so we skip it. 1126 * This is meaningless in clustered apic mode, so we skip it.
1143 */ 1127 */
1144 if (!apic_id_registered()) 1128 if (!apic->apic_id_registered())
1145 BUG(); 1129 BUG();
1146 1130
1147 /* 1131 /*
@@ -1149,7 +1133,7 @@ void __cpuinit setup_local_APIC(void)
1149 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel 1133 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
1150 * document number 292116). So here it goes... 1134 * document number 292116). So here it goes...
1151 */ 1135 */
1152 init_apic_ldr(); 1136 apic->init_apic_ldr();
1153 1137
1154 /* 1138 /*
1155 * Set Task Priority to 'accept all'. We never change this 1139 * Set Task Priority to 'accept all'. We never change this
@@ -1277,17 +1261,12 @@ void __cpuinit end_local_APIC_setup(void)
1277 apic_pm_activate(); 1261 apic_pm_activate();
1278} 1262}
1279 1263
1280#ifdef HAVE_X2APIC 1264#ifdef CONFIG_X86_X2APIC
1281void check_x2apic(void) 1265void check_x2apic(void)
1282{ 1266{
1283 int msr, msr2; 1267 if (x2apic_enabled()) {
1284
1285 rdmsr(MSR_IA32_APICBASE, msr, msr2);
1286
1287 if (msr & X2APIC_ENABLE) {
1288 pr_info("x2apic enabled by BIOS, switching to x2apic ops\n"); 1268 pr_info("x2apic enabled by BIOS, switching to x2apic ops\n");
1289 x2apic_preenabled = x2apic = 1; 1269 x2apic_preenabled = x2apic = 1;
1290 apic_ops = &x2apic_ops;
1291 } 1270 }
1292} 1271}
1293 1272
@@ -1295,6 +1274,9 @@ void enable_x2apic(void)
1295{ 1274{
1296 int msr, msr2; 1275 int msr, msr2;
1297 1276
1277 if (!x2apic)
1278 return;
1279
1298 rdmsr(MSR_IA32_APICBASE, msr, msr2); 1280 rdmsr(MSR_IA32_APICBASE, msr, msr2);
1299 if (!(msr & X2APIC_ENABLE)) { 1281 if (!(msr & X2APIC_ENABLE)) {
1300 pr_info("Enabling x2apic\n"); 1282 pr_info("Enabling x2apic\n");
@@ -1358,7 +1340,6 @@ void __init enable_IR_x2apic(void)
1358 1340
1359 if (!x2apic) { 1341 if (!x2apic) {
1360 x2apic = 1; 1342 x2apic = 1;
1361 apic_ops = &x2apic_ops;
1362 enable_x2apic(); 1343 enable_x2apic();
1363 } 1344 }
1364 1345
@@ -1396,7 +1377,7 @@ end:
1396 1377
1397 return; 1378 return;
1398} 1379}
1399#endif /* HAVE_X2APIC */ 1380#endif /* CONFIG_X86_X2APIC */
1400 1381
1401#ifdef CONFIG_X86_64 1382#ifdef CONFIG_X86_64
1402/* 1383/*
@@ -1431,7 +1412,7 @@ static int __init detect_init_APIC(void)
1431 switch (boot_cpu_data.x86_vendor) { 1412 switch (boot_cpu_data.x86_vendor) {
1432 case X86_VENDOR_AMD: 1413 case X86_VENDOR_AMD:
1433 if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model > 1) || 1414 if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model > 1) ||
1434 (boot_cpu_data.x86 == 15)) 1415 (boot_cpu_data.x86 >= 15))
1435 break; 1416 break;
1436 goto no_apic; 1417 goto no_apic;
1437 case X86_VENDOR_INTEL: 1418 case X86_VENDOR_INTEL:
@@ -1527,7 +1508,7 @@ void __init early_init_lapic_mapping(void)
1527 */ 1508 */
1528void __init init_apic_mappings(void) 1509void __init init_apic_mappings(void)
1529{ 1510{
1530#ifdef HAVE_X2APIC 1511#ifdef CONFIG_X86_X2APIC
1531 if (x2apic) { 1512 if (x2apic) {
1532 boot_cpu_physical_apicid = read_apic_id(); 1513 boot_cpu_physical_apicid = read_apic_id();
1533 return; 1514 return;
@@ -1565,11 +1546,11 @@ int apic_version[MAX_APICS];
1565 1546
1566int __init APIC_init_uniprocessor(void) 1547int __init APIC_init_uniprocessor(void)
1567{ 1548{
1568#ifdef CONFIG_X86_64
1569 if (disable_apic) { 1549 if (disable_apic) {
1570 pr_info("Apic disabled\n"); 1550 pr_info("Apic disabled\n");
1571 return -1; 1551 return -1;
1572 } 1552 }
1553#ifdef CONFIG_X86_64
1573 if (!cpu_has_apic) { 1554 if (!cpu_has_apic) {
1574 disable_apic = 1; 1555 disable_apic = 1;
1575 pr_info("Apic disabled by BIOS\n"); 1556 pr_info("Apic disabled by BIOS\n");
@@ -1591,11 +1572,9 @@ int __init APIC_init_uniprocessor(void)
1591 } 1572 }
1592#endif 1573#endif
1593 1574
1594#ifdef HAVE_X2APIC
1595 enable_IR_x2apic(); 1575 enable_IR_x2apic();
1596#endif
1597#ifdef CONFIG_X86_64 1576#ifdef CONFIG_X86_64
1598 setup_apic_routing(); 1577 default_setup_apic_routing();
1599#endif 1578#endif
1600 1579
1601 verify_local_APIC(); 1580 verify_local_APIC();
@@ -1616,35 +1595,31 @@ int __init APIC_init_uniprocessor(void)
1616 physid_set_mask_of_physid(boot_cpu_physical_apicid, &phys_cpu_present_map); 1595 physid_set_mask_of_physid(boot_cpu_physical_apicid, &phys_cpu_present_map);
1617 setup_local_APIC(); 1596 setup_local_APIC();
1618 1597
1619#ifdef CONFIG_X86_64 1598#ifdef CONFIG_X86_IO_APIC
1620 /* 1599 /*
1621 * Now enable IO-APICs, actually call clear_IO_APIC 1600 * Now enable IO-APICs, actually call clear_IO_APIC
1622 * We need clear_IO_APIC before enabling vector on BP 1601 * We need clear_IO_APIC before enabling error vector
1623 */ 1602 */
1624 if (!skip_ioapic_setup && nr_ioapics) 1603 if (!skip_ioapic_setup && nr_ioapics)
1625 enable_IO_APIC(); 1604 enable_IO_APIC();
1626#endif 1605#endif
1627 1606
1628#ifdef CONFIG_X86_IO_APIC
1629 if (!smp_found_config || skip_ioapic_setup || !nr_ioapics)
1630#endif
1631 localise_nmi_watchdog();
1632 end_local_APIC_setup(); 1607 end_local_APIC_setup();
1633 1608
1634#ifdef CONFIG_X86_IO_APIC 1609#ifdef CONFIG_X86_IO_APIC
1635 if (smp_found_config && !skip_ioapic_setup && nr_ioapics) 1610 if (smp_found_config && !skip_ioapic_setup && nr_ioapics)
1636 setup_IO_APIC(); 1611 setup_IO_APIC();
1637# ifdef CONFIG_X86_64 1612 else {
1638 else
1639 nr_ioapics = 0; 1613 nr_ioapics = 0;
1640# endif 1614 localise_nmi_watchdog();
1615 }
1616#else
1617 localise_nmi_watchdog();
1641#endif 1618#endif
1642 1619
1620 setup_boot_clock();
1643#ifdef CONFIG_X86_64 1621#ifdef CONFIG_X86_64
1644 setup_boot_APIC_clock();
1645 check_nmi_watchdog(); 1622 check_nmi_watchdog();
1646#else
1647 setup_boot_clock();
1648#endif 1623#endif
1649 1624
1650 return 0; 1625 return 0;
@@ -1733,7 +1708,8 @@ void __init connect_bsp_APIC(void)
1733 outb(0x01, 0x23); 1708 outb(0x01, 0x23);
1734 } 1709 }
1735#endif 1710#endif
1736 enable_apic_mode(); 1711 if (apic->enable_apic_mode)
1712 apic->enable_apic_mode();
1737} 1713}
1738 1714
1739/** 1715/**
@@ -1832,6 +1808,11 @@ void __cpuinit generic_processor_info(int apicid, int version)
1832 num_processors++; 1808 num_processors++;
1833 cpu = cpumask_next_zero(-1, cpu_present_mask); 1809 cpu = cpumask_next_zero(-1, cpu_present_mask);
1834 1810
1811 if (version != apic_version[boot_cpu_physical_apicid])
1812 WARN_ONCE(1,
1813 "ACPI: apic version mismatch, bootcpu: %x cpu %d: %x\n",
1814 apic_version[boot_cpu_physical_apicid], cpu, version);
1815
1835 physid_set(apicid, phys_cpu_present_map); 1816 physid_set(apicid, phys_cpu_present_map);
1836 if (apicid == boot_cpu_physical_apicid) { 1817 if (apicid == boot_cpu_physical_apicid) {
1837 /* 1818 /*
@@ -1866,29 +1847,39 @@ void __cpuinit generic_processor_info(int apicid, int version)
1866 } 1847 }
1867#endif 1848#endif
1868 1849
1869#if defined(CONFIG_X86_SMP) || defined(CONFIG_X86_64) 1850#if defined(CONFIG_SMP) || defined(CONFIG_X86_64)
1870 /* are we being called early in kernel startup? */ 1851 early_per_cpu(x86_cpu_to_apicid, cpu) = apicid;
1871 if (early_per_cpu_ptr(x86_cpu_to_apicid)) { 1852 early_per_cpu(x86_bios_cpu_apicid, cpu) = apicid;
1872 u16 *cpu_to_apicid = early_per_cpu_ptr(x86_cpu_to_apicid);
1873 u16 *bios_cpu_apicid = early_per_cpu_ptr(x86_bios_cpu_apicid);
1874
1875 cpu_to_apicid[cpu] = apicid;
1876 bios_cpu_apicid[cpu] = apicid;
1877 } else {
1878 per_cpu(x86_cpu_to_apicid, cpu) = apicid;
1879 per_cpu(x86_bios_cpu_apicid, cpu) = apicid;
1880 }
1881#endif 1853#endif
1882 1854
1883 set_cpu_possible(cpu, true); 1855 set_cpu_possible(cpu, true);
1884 set_cpu_present(cpu, true); 1856 set_cpu_present(cpu, true);
1885} 1857}
1886 1858
1887#ifdef CONFIG_X86_64
1888int hard_smp_processor_id(void) 1859int hard_smp_processor_id(void)
1889{ 1860{
1890 return read_apic_id(); 1861 return read_apic_id();
1891} 1862}
1863
1864void default_init_apic_ldr(void)
1865{
1866 unsigned long val;
1867
1868 apic_write(APIC_DFR, APIC_DFR_VALUE);
1869 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
1870 val |= SET_APIC_LOGICAL_ID(1UL << smp_processor_id());
1871 apic_write(APIC_LDR, val);
1872}
1873
1874#ifdef CONFIG_X86_32
1875int default_apicid_to_node(int logical_apicid)
1876{
1877#ifdef CONFIG_SMP
1878 return apicid_2_node[hard_smp_processor_id()];
1879#else
1880 return 0;
1881#endif
1882}
1892#endif 1883#endif
1893 1884
1894/* 1885/*
@@ -1966,7 +1957,7 @@ static int lapic_resume(struct sys_device *dev)
1966 1957
1967 local_irq_save(flags); 1958 local_irq_save(flags);
1968 1959
1969#ifdef HAVE_X2APIC 1960#ifdef CONFIG_X86_X2APIC
1970 if (x2apic) 1961 if (x2apic)
1971 enable_x2apic(); 1962 enable_x2apic();
1972 else 1963 else
@@ -2087,14 +2078,12 @@ __cpuinit int apic_is_clustered_box(void)
2087 /* are we being called early in kernel startup? */ 2078 /* are we being called early in kernel startup? */
2088 if (bios_cpu_apicid) { 2079 if (bios_cpu_apicid) {
2089 id = bios_cpu_apicid[i]; 2080 id = bios_cpu_apicid[i];
2090 } 2081 } else if (i < nr_cpu_ids) {
2091 else if (i < nr_cpu_ids) {
2092 if (cpu_present(i)) 2082 if (cpu_present(i))
2093 id = per_cpu(x86_bios_cpu_apicid, i); 2083 id = per_cpu(x86_bios_cpu_apicid, i);
2094 else 2084 else
2095 continue; 2085 continue;
2096 } 2086 } else
2097 else
2098 break; 2087 break;
2099 2088
2100 if (id != BAD_APICID) 2089 if (id != BAD_APICID)
diff --git a/arch/x86/kernel/genapic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
index 34185488e4fb..f933822dba18 100644
--- a/arch/x86/kernel/genapic_flat_64.c
+++ b/arch/x86/kernel/apic/apic_flat_64.c
@@ -17,9 +17,8 @@
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/hardirq.h> 18#include <linux/hardirq.h>
19#include <asm/smp.h> 19#include <asm/smp.h>
20#include <asm/apic.h>
20#include <asm/ipi.h> 21#include <asm/ipi.h>
21#include <asm/genapic.h>
22#include <mach_apicdef.h>
23 22
24#ifdef CONFIG_ACPI 23#ifdef CONFIG_ACPI
25#include <acpi/acpi_bus.h> 24#include <acpi/acpi_bus.h>
@@ -74,7 +73,7 @@ static inline void _flat_send_IPI_mask(unsigned long mask, int vector)
74 unsigned long flags; 73 unsigned long flags;
75 74
76 local_irq_save(flags); 75 local_irq_save(flags);
77 __send_IPI_dest_field(mask, vector, APIC_DEST_LOGICAL); 76 __default_send_IPI_dest_field(mask, vector, apic->dest_logical);
78 local_irq_restore(flags); 77 local_irq_restore(flags);
79} 78}
80 79
@@ -85,14 +84,15 @@ static void flat_send_IPI_mask(const struct cpumask *cpumask, int vector)
85 _flat_send_IPI_mask(mask, vector); 84 _flat_send_IPI_mask(mask, vector);
86} 85}
87 86
88static void flat_send_IPI_mask_allbutself(const struct cpumask *cpumask, 87static void
89 int vector) 88 flat_send_IPI_mask_allbutself(const struct cpumask *cpumask, int vector)
90{ 89{
91 unsigned long mask = cpumask_bits(cpumask)[0]; 90 unsigned long mask = cpumask_bits(cpumask)[0];
92 int cpu = smp_processor_id(); 91 int cpu = smp_processor_id();
93 92
94 if (cpu < BITS_PER_LONG) 93 if (cpu < BITS_PER_LONG)
95 clear_bit(cpu, &mask); 94 clear_bit(cpu, &mask);
95
96 _flat_send_IPI_mask(mask, vector); 96 _flat_send_IPI_mask(mask, vector);
97} 97}
98 98
@@ -114,23 +114,27 @@ static void flat_send_IPI_allbutself(int vector)
114 _flat_send_IPI_mask(mask, vector); 114 _flat_send_IPI_mask(mask, vector);
115 } 115 }
116 } else if (num_online_cpus() > 1) { 116 } else if (num_online_cpus() > 1) {
117 __send_IPI_shortcut(APIC_DEST_ALLBUT, vector,APIC_DEST_LOGICAL); 117 __default_send_IPI_shortcut(APIC_DEST_ALLBUT,
118 vector, apic->dest_logical);
118 } 119 }
119} 120}
120 121
121static void flat_send_IPI_all(int vector) 122static void flat_send_IPI_all(int vector)
122{ 123{
123 if (vector == NMI_VECTOR) 124 if (vector == NMI_VECTOR) {
124 flat_send_IPI_mask(cpu_online_mask, vector); 125 flat_send_IPI_mask(cpu_online_mask, vector);
125 else 126 } else {
126 __send_IPI_shortcut(APIC_DEST_ALLINC, vector, APIC_DEST_LOGICAL); 127 __default_send_IPI_shortcut(APIC_DEST_ALLINC,
128 vector, apic->dest_logical);
129 }
127} 130}
128 131
129static unsigned int get_apic_id(unsigned long x) 132static unsigned int flat_get_apic_id(unsigned long x)
130{ 133{
131 unsigned int id; 134 unsigned int id;
132 135
133 id = (((x)>>24) & 0xFFu); 136 id = (((x)>>24) & 0xFFu);
137
134 return id; 138 return id;
135} 139}
136 140
@@ -146,7 +150,7 @@ static unsigned int read_xapic_id(void)
146{ 150{
147 unsigned int id; 151 unsigned int id;
148 152
149 id = get_apic_id(apic_read(APIC_ID)); 153 id = flat_get_apic_id(apic_read(APIC_ID));
150 return id; 154 return id;
151} 155}
152 156
@@ -169,31 +173,67 @@ static unsigned int flat_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
169 return mask1 & mask2; 173 return mask1 & mask2;
170} 174}
171 175
172static unsigned int phys_pkg_id(int index_msb) 176static int flat_phys_pkg_id(int initial_apic_id, int index_msb)
173{ 177{
174 return hard_smp_processor_id() >> index_msb; 178 return hard_smp_processor_id() >> index_msb;
175} 179}
176 180
177struct genapic apic_flat = { 181struct apic apic_flat = {
178 .name = "flat", 182 .name = "flat",
179 .acpi_madt_oem_check = flat_acpi_madt_oem_check, 183 .probe = NULL,
180 .int_delivery_mode = dest_LowestPrio, 184 .acpi_madt_oem_check = flat_acpi_madt_oem_check,
181 .int_dest_mode = (APIC_DEST_LOGICAL != 0), 185 .apic_id_registered = flat_apic_id_registered,
182 .target_cpus = flat_target_cpus, 186
183 .vector_allocation_domain = flat_vector_allocation_domain, 187 .irq_delivery_mode = dest_LowestPrio,
184 .apic_id_registered = flat_apic_id_registered, 188 .irq_dest_mode = 1, /* logical */
185 .init_apic_ldr = flat_init_apic_ldr, 189
186 .send_IPI_all = flat_send_IPI_all, 190 .target_cpus = flat_target_cpus,
187 .send_IPI_allbutself = flat_send_IPI_allbutself, 191 .disable_esr = 0,
188 .send_IPI_mask = flat_send_IPI_mask, 192 .dest_logical = APIC_DEST_LOGICAL,
189 .send_IPI_mask_allbutself = flat_send_IPI_mask_allbutself, 193 .check_apicid_used = NULL,
190 .send_IPI_self = apic_send_IPI_self, 194 .check_apicid_present = NULL,
191 .cpu_mask_to_apicid = flat_cpu_mask_to_apicid, 195
192 .cpu_mask_to_apicid_and = flat_cpu_mask_to_apicid_and, 196 .vector_allocation_domain = flat_vector_allocation_domain,
193 .phys_pkg_id = phys_pkg_id, 197 .init_apic_ldr = flat_init_apic_ldr,
194 .get_apic_id = get_apic_id, 198
195 .set_apic_id = set_apic_id, 199 .ioapic_phys_id_map = NULL,
196 .apic_id_mask = (0xFFu<<24), 200 .setup_apic_routing = NULL,
201 .multi_timer_check = NULL,
202 .apicid_to_node = NULL,
203 .cpu_to_logical_apicid = NULL,
204 .cpu_present_to_apicid = default_cpu_present_to_apicid,
205 .apicid_to_cpu_present = NULL,
206 .setup_portio_remap = NULL,
207 .check_phys_apicid_present = default_check_phys_apicid_present,
208 .enable_apic_mode = NULL,
209 .phys_pkg_id = flat_phys_pkg_id,
210 .mps_oem_check = NULL,
211
212 .get_apic_id = flat_get_apic_id,
213 .set_apic_id = set_apic_id,
214 .apic_id_mask = 0xFFu << 24,
215
216 .cpu_mask_to_apicid = flat_cpu_mask_to_apicid,
217 .cpu_mask_to_apicid_and = flat_cpu_mask_to_apicid_and,
218
219 .send_IPI_mask = flat_send_IPI_mask,
220 .send_IPI_mask_allbutself = flat_send_IPI_mask_allbutself,
221 .send_IPI_allbutself = flat_send_IPI_allbutself,
222 .send_IPI_all = flat_send_IPI_all,
223 .send_IPI_self = apic_send_IPI_self,
224
225 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
226 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
227 .wait_for_init_deassert = NULL,
228 .smp_callin_clear_local_apic = NULL,
229 .inquire_remote_apic = NULL,
230
231 .read = native_apic_mem_read,
232 .write = native_apic_mem_write,
233 .icr_read = native_apic_icr_read,
234 .icr_write = native_apic_icr_write,
235 .wait_icr_idle = native_apic_wait_icr_idle,
236 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
197}; 237};
198 238
199/* 239/*
@@ -232,18 +272,18 @@ static void physflat_vector_allocation_domain(int cpu, struct cpumask *retmask)
232 272
233static void physflat_send_IPI_mask(const struct cpumask *cpumask, int vector) 273static void physflat_send_IPI_mask(const struct cpumask *cpumask, int vector)
234{ 274{
235 send_IPI_mask_sequence(cpumask, vector); 275 default_send_IPI_mask_sequence_phys(cpumask, vector);
236} 276}
237 277
238static void physflat_send_IPI_mask_allbutself(const struct cpumask *cpumask, 278static void physflat_send_IPI_mask_allbutself(const struct cpumask *cpumask,
239 int vector) 279 int vector)
240{ 280{
241 send_IPI_mask_allbutself(cpumask, vector); 281 default_send_IPI_mask_allbutself_phys(cpumask, vector);
242} 282}
243 283
244static void physflat_send_IPI_allbutself(int vector) 284static void physflat_send_IPI_allbutself(int vector)
245{ 285{
246 send_IPI_mask_allbutself(cpu_online_mask, vector); 286 default_send_IPI_mask_allbutself_phys(cpu_online_mask, vector);
247} 287}
248 288
249static void physflat_send_IPI_all(int vector) 289static void physflat_send_IPI_all(int vector)
@@ -276,32 +316,72 @@ physflat_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
276 * We're using fixed IRQ delivery, can only return one phys APIC ID. 316 * We're using fixed IRQ delivery, can only return one phys APIC ID.
277 * May as well be the first. 317 * May as well be the first.
278 */ 318 */
279 for_each_cpu_and(cpu, cpumask, andmask) 319 for_each_cpu_and(cpu, cpumask, andmask) {
280 if (cpumask_test_cpu(cpu, cpu_online_mask)) 320 if (cpumask_test_cpu(cpu, cpu_online_mask))
281 break; 321 break;
322 }
282 if (cpu < nr_cpu_ids) 323 if (cpu < nr_cpu_ids)
283 return per_cpu(x86_cpu_to_apicid, cpu); 324 return per_cpu(x86_cpu_to_apicid, cpu);
325
284 return BAD_APICID; 326 return BAD_APICID;
285} 327}
286 328
287struct genapic apic_physflat = { 329struct apic apic_physflat = {
288 .name = "physical flat", 330
289 .acpi_madt_oem_check = physflat_acpi_madt_oem_check, 331 .name = "physical flat",
290 .int_delivery_mode = dest_Fixed, 332 .probe = NULL,
291 .int_dest_mode = (APIC_DEST_PHYSICAL != 0), 333 .acpi_madt_oem_check = physflat_acpi_madt_oem_check,
292 .target_cpus = physflat_target_cpus, 334 .apic_id_registered = flat_apic_id_registered,
293 .vector_allocation_domain = physflat_vector_allocation_domain, 335
294 .apic_id_registered = flat_apic_id_registered, 336 .irq_delivery_mode = dest_Fixed,
295 .init_apic_ldr = flat_init_apic_ldr,/*not needed, but shouldn't hurt*/ 337 .irq_dest_mode = 0, /* physical */
296 .send_IPI_all = physflat_send_IPI_all, 338
297 .send_IPI_allbutself = physflat_send_IPI_allbutself, 339 .target_cpus = physflat_target_cpus,
298 .send_IPI_mask = physflat_send_IPI_mask, 340 .disable_esr = 0,
299 .send_IPI_mask_allbutself = physflat_send_IPI_mask_allbutself, 341 .dest_logical = 0,
300 .send_IPI_self = apic_send_IPI_self, 342 .check_apicid_used = NULL,
301 .cpu_mask_to_apicid = physflat_cpu_mask_to_apicid, 343 .check_apicid_present = NULL,
302 .cpu_mask_to_apicid_and = physflat_cpu_mask_to_apicid_and, 344
303 .phys_pkg_id = phys_pkg_id, 345 .vector_allocation_domain = physflat_vector_allocation_domain,
304 .get_apic_id = get_apic_id, 346 /* not needed, but shouldn't hurt: */
305 .set_apic_id = set_apic_id, 347 .init_apic_ldr = flat_init_apic_ldr,
306 .apic_id_mask = (0xFFu<<24), 348
349 .ioapic_phys_id_map = NULL,
350 .setup_apic_routing = NULL,
351 .multi_timer_check = NULL,
352 .apicid_to_node = NULL,
353 .cpu_to_logical_apicid = NULL,
354 .cpu_present_to_apicid = default_cpu_present_to_apicid,
355 .apicid_to_cpu_present = NULL,
356 .setup_portio_remap = NULL,
357 .check_phys_apicid_present = default_check_phys_apicid_present,
358 .enable_apic_mode = NULL,
359 .phys_pkg_id = flat_phys_pkg_id,
360 .mps_oem_check = NULL,
361
362 .get_apic_id = flat_get_apic_id,
363 .set_apic_id = set_apic_id,
364 .apic_id_mask = 0xFFu << 24,
365
366 .cpu_mask_to_apicid = physflat_cpu_mask_to_apicid,
367 .cpu_mask_to_apicid_and = physflat_cpu_mask_to_apicid_and,
368
369 .send_IPI_mask = physflat_send_IPI_mask,
370 .send_IPI_mask_allbutself = physflat_send_IPI_mask_allbutself,
371 .send_IPI_allbutself = physflat_send_IPI_allbutself,
372 .send_IPI_all = physflat_send_IPI_all,
373 .send_IPI_self = apic_send_IPI_self,
374
375 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
376 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
377 .wait_for_init_deassert = NULL,
378 .smp_callin_clear_local_apic = NULL,
379 .inquire_remote_apic = NULL,
380
381 .read = native_apic_mem_read,
382 .write = native_apic_mem_write,
383 .icr_read = native_apic_icr_read,
384 .icr_write = native_apic_icr_write,
385 .wait_icr_idle = native_apic_wait_icr_idle,
386 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
307}; 387};
diff --git a/arch/x86/kernel/apic/bigsmp_32.c b/arch/x86/kernel/apic/bigsmp_32.c
new file mode 100644
index 000000000000..d806ecaa948f
--- /dev/null
+++ b/arch/x86/kernel/apic/bigsmp_32.c
@@ -0,0 +1,267 @@
1/*
2 * APIC driver for "bigsmp" xAPIC machines with more than 8 virtual CPUs.
3 *
4 * Drives the local APIC in "clustered mode".
5 */
6#include <linux/threads.h>
7#include <linux/cpumask.h>
8#include <linux/kernel.h>
9#include <linux/init.h>
10#include <linux/dmi.h>
11#include <linux/smp.h>
12
13#include <asm/apicdef.h>
14#include <asm/fixmap.h>
15#include <asm/mpspec.h>
16#include <asm/apic.h>
17#include <asm/ipi.h>
18
19static unsigned bigsmp_get_apic_id(unsigned long x)
20{
21 return (x >> 24) & 0xFF;
22}
23
24static int bigsmp_apic_id_registered(void)
25{
26 return 1;
27}
28
29static const cpumask_t *bigsmp_target_cpus(void)
30{
31#ifdef CONFIG_SMP
32 return &cpu_online_map;
33#else
34 return &cpumask_of_cpu(0);
35#endif
36}
37
38static unsigned long bigsmp_check_apicid_used(physid_mask_t bitmap, int apicid)
39{
40 return 0;
41}
42
43static unsigned long bigsmp_check_apicid_present(int bit)
44{
45 return 1;
46}
47
48static inline unsigned long calculate_ldr(int cpu)
49{
50 unsigned long val, id;
51
52 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
53 id = per_cpu(x86_bios_cpu_apicid, cpu);
54 val |= SET_APIC_LOGICAL_ID(id);
55
56 return val;
57}
58
59/*
60 * Set up the logical destination ID.
61 *
62 * Intel recommends to set DFR, LDR and TPR before enabling
63 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
64 * document number 292116). So here it goes...
65 */
66static void bigsmp_init_apic_ldr(void)
67{
68 unsigned long val;
69 int cpu = smp_processor_id();
70
71 apic_write(APIC_DFR, APIC_DFR_FLAT);
72 val = calculate_ldr(cpu);
73 apic_write(APIC_LDR, val);
74}
75
76static void bigsmp_setup_apic_routing(void)
77{
78 printk(KERN_INFO
79 "Enabling APIC mode: Physflat. Using %d I/O APICs\n",
80 nr_ioapics);
81}
82
83static int bigsmp_apicid_to_node(int logical_apicid)
84{
85 return apicid_2_node[hard_smp_processor_id()];
86}
87
88static int bigsmp_cpu_present_to_apicid(int mps_cpu)
89{
90 if (mps_cpu < nr_cpu_ids)
91 return (int) per_cpu(x86_bios_cpu_apicid, mps_cpu);
92
93 return BAD_APICID;
94}
95
96static physid_mask_t bigsmp_apicid_to_cpu_present(int phys_apicid)
97{
98 return physid_mask_of_physid(phys_apicid);
99}
100
101/* Mapping from cpu number to logical apicid */
102static inline int bigsmp_cpu_to_logical_apicid(int cpu)
103{
104 if (cpu >= nr_cpu_ids)
105 return BAD_APICID;
106 return cpu_physical_id(cpu);
107}
108
109static physid_mask_t bigsmp_ioapic_phys_id_map(physid_mask_t phys_map)
110{
111 /* For clustered we don't have a good way to do this yet - hack */
112 return physids_promote(0xFFL);
113}
114
115static int bigsmp_check_phys_apicid_present(int boot_cpu_physical_apicid)
116{
117 return 1;
118}
119
120/* As we are using single CPU as destination, pick only one CPU here */
121static unsigned int bigsmp_cpu_mask_to_apicid(const cpumask_t *cpumask)
122{
123 return bigsmp_cpu_to_logical_apicid(first_cpu(*cpumask));
124}
125
126static unsigned int bigsmp_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
127 const struct cpumask *andmask)
128{
129 int cpu;
130
131 /*
132 * We're using fixed IRQ delivery, can only return one phys APIC ID.
133 * May as well be the first.
134 */
135 for_each_cpu_and(cpu, cpumask, andmask) {
136 if (cpumask_test_cpu(cpu, cpu_online_mask))
137 break;
138 }
139 if (cpu < nr_cpu_ids)
140 return bigsmp_cpu_to_logical_apicid(cpu);
141
142 return BAD_APICID;
143}
144
145static int bigsmp_phys_pkg_id(int cpuid_apic, int index_msb)
146{
147 return cpuid_apic >> index_msb;
148}
149
150static inline void bigsmp_send_IPI_mask(const struct cpumask *mask, int vector)
151{
152 default_send_IPI_mask_sequence_phys(mask, vector);
153}
154
155static void bigsmp_send_IPI_allbutself(int vector)
156{
157 default_send_IPI_mask_allbutself_phys(cpu_online_mask, vector);
158}
159
160static void bigsmp_send_IPI_all(int vector)
161{
162 bigsmp_send_IPI_mask(cpu_online_mask, vector);
163}
164
165static int dmi_bigsmp; /* can be set by dmi scanners */
166
167static int hp_ht_bigsmp(const struct dmi_system_id *d)
168{
169 printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident);
170 dmi_bigsmp = 1;
171
172 return 0;
173}
174
175
176static const struct dmi_system_id bigsmp_dmi_table[] = {
177 { hp_ht_bigsmp, "HP ProLiant DL760 G2",
178 { DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
179 DMI_MATCH(DMI_BIOS_VERSION, "P44-"),
180 }
181 },
182
183 { hp_ht_bigsmp, "HP ProLiant DL740",
184 { DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
185 DMI_MATCH(DMI_BIOS_VERSION, "P47-"),
186 }
187 },
188 { } /* NULL entry stops DMI scanning */
189};
190
191static void bigsmp_vector_allocation_domain(int cpu, cpumask_t *retmask)
192{
193 cpus_clear(*retmask);
194 cpu_set(cpu, *retmask);
195}
196
197static int probe_bigsmp(void)
198{
199 if (def_to_bigsmp)
200 dmi_bigsmp = 1;
201 else
202 dmi_check_system(bigsmp_dmi_table);
203
204 return dmi_bigsmp;
205}
206
207struct apic apic_bigsmp = {
208
209 .name = "bigsmp",
210 .probe = probe_bigsmp,
211 .acpi_madt_oem_check = NULL,
212 .apic_id_registered = bigsmp_apic_id_registered,
213
214 .irq_delivery_mode = dest_Fixed,
215 /* phys delivery to target CPU: */
216 .irq_dest_mode = 0,
217
218 .target_cpus = bigsmp_target_cpus,
219 .disable_esr = 1,
220 .dest_logical = 0,
221 .check_apicid_used = bigsmp_check_apicid_used,
222 .check_apicid_present = bigsmp_check_apicid_present,
223
224 .vector_allocation_domain = bigsmp_vector_allocation_domain,
225 .init_apic_ldr = bigsmp_init_apic_ldr,
226
227 .ioapic_phys_id_map = bigsmp_ioapic_phys_id_map,
228 .setup_apic_routing = bigsmp_setup_apic_routing,
229 .multi_timer_check = NULL,
230 .apicid_to_node = bigsmp_apicid_to_node,
231 .cpu_to_logical_apicid = bigsmp_cpu_to_logical_apicid,
232 .cpu_present_to_apicid = bigsmp_cpu_present_to_apicid,
233 .apicid_to_cpu_present = bigsmp_apicid_to_cpu_present,
234 .setup_portio_remap = NULL,
235 .check_phys_apicid_present = bigsmp_check_phys_apicid_present,
236 .enable_apic_mode = NULL,
237 .phys_pkg_id = bigsmp_phys_pkg_id,
238 .mps_oem_check = NULL,
239
240 .get_apic_id = bigsmp_get_apic_id,
241 .set_apic_id = NULL,
242 .apic_id_mask = 0xFF << 24,
243
244 .cpu_mask_to_apicid = bigsmp_cpu_mask_to_apicid,
245 .cpu_mask_to_apicid_and = bigsmp_cpu_mask_to_apicid_and,
246
247 .send_IPI_mask = bigsmp_send_IPI_mask,
248 .send_IPI_mask_allbutself = NULL,
249 .send_IPI_allbutself = bigsmp_send_IPI_allbutself,
250 .send_IPI_all = bigsmp_send_IPI_all,
251 .send_IPI_self = default_send_IPI_self,
252
253 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
254 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
255
256 .wait_for_init_deassert = default_wait_for_init_deassert,
257
258 .smp_callin_clear_local_apic = NULL,
259 .inquire_remote_apic = default_inquire_remote_apic,
260
261 .read = native_apic_mem_read,
262 .write = native_apic_mem_write,
263 .icr_read = native_apic_icr_read,
264 .icr_write = native_apic_icr_write,
265 .wait_icr_idle = native_apic_wait_icr_idle,
266 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
267};
diff --git a/arch/x86/kernel/apic/es7000_32.c b/arch/x86/kernel/apic/es7000_32.c
new file mode 100644
index 000000000000..19588f2770ee
--- /dev/null
+++ b/arch/x86/kernel/apic/es7000_32.c
@@ -0,0 +1,780 @@
1/*
2 * Written by: Garry Forsgren, Unisys Corporation
3 * Natalie Protasevich, Unisys Corporation
4 *
5 * This file contains the code to configure and interface
6 * with Unisys ES7000 series hardware system manager.
7 *
8 * Copyright (c) 2003 Unisys Corporation.
9 * Copyright (C) 2009, Red Hat, Inc., Ingo Molnar
10 *
11 * All Rights Reserved.
12 *
13 * This program is free software; you can redistribute it and/or modify it
14 * under the terms of version 2 of the GNU General Public License as
15 * published by the Free Software Foundation.
16 *
17 * This program is distributed in the hope that it would be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * You should have received a copy of the GNU General Public License along
22 * with this program; if not, write the Free Software Foundation, Inc., 59
23 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
24 *
25 * Contact information: Unisys Corporation, Township Line & Union Meeting
26 * Roads-A, Unisys Way, Blue Bell, Pennsylvania, 19424, or:
27 *
28 * http://www.unisys.com
29 */
30#include <linux/notifier.h>
31#include <linux/spinlock.h>
32#include <linux/cpumask.h>
33#include <linux/threads.h>
34#include <linux/kernel.h>
35#include <linux/module.h>
36#include <linux/reboot.h>
37#include <linux/string.h>
38#include <linux/types.h>
39#include <linux/errno.h>
40#include <linux/acpi.h>
41#include <linux/init.h>
42#include <linux/nmi.h>
43#include <linux/smp.h>
44#include <linux/io.h>
45
46#include <asm/apicdef.h>
47#include <asm/atomic.h>
48#include <asm/fixmap.h>
49#include <asm/mpspec.h>
50#include <asm/setup.h>
51#include <asm/apic.h>
52#include <asm/ipi.h>
53
54/*
55 * ES7000 chipsets
56 */
57
58#define NON_UNISYS 0
59#define ES7000_CLASSIC 1
60#define ES7000_ZORRO 2
61
62#define MIP_REG 1
63#define MIP_PSAI_REG 4
64
65#define MIP_BUSY 1
66#define MIP_SPIN 0xf0000
67#define MIP_VALID 0x0100000000000000ULL
68#define MIP_SW_APIC 0x1020b
69
70#define MIP_PORT(val) ((val >> 32) & 0xffff)
71
72#define MIP_RD_LO(val) (val & 0xffffffff)
73
74struct mip_reg {
75 unsigned long long off_0x00;
76 unsigned long long off_0x08;
77 unsigned long long off_0x10;
78 unsigned long long off_0x18;
79 unsigned long long off_0x20;
80 unsigned long long off_0x28;
81 unsigned long long off_0x30;
82 unsigned long long off_0x38;
83};
84
85struct mip_reg_info {
86 unsigned long long mip_info;
87 unsigned long long delivery_info;
88 unsigned long long host_reg;
89 unsigned long long mip_reg;
90};
91
92struct psai {
93 unsigned long long entry_type;
94 unsigned long long addr;
95 unsigned long long bep_addr;
96};
97
98#ifdef CONFIG_ACPI
99
100struct es7000_oem_table {
101 struct acpi_table_header Header;
102 u32 OEMTableAddr;
103 u32 OEMTableSize;
104};
105
106static unsigned long oem_addrX;
107static unsigned long oem_size;
108
109#endif
110
111/*
112 * ES7000 Globals
113 */
114
115static volatile unsigned long *psai;
116static struct mip_reg *mip_reg;
117static struct mip_reg *host_reg;
118static int mip_port;
119static unsigned long mip_addr;
120static unsigned long host_addr;
121
122int es7000_plat;
123
124/*
125 * GSI override for ES7000 platforms.
126 */
127
128static unsigned int base;
129
130static int
131es7000_rename_gsi(int ioapic, int gsi)
132{
133 if (es7000_plat == ES7000_ZORRO)
134 return gsi;
135
136 if (!base) {
137 int i;
138 for (i = 0; i < nr_ioapics; i++)
139 base += nr_ioapic_registers[i];
140 }
141
142 if (!ioapic && (gsi < 16))
143 gsi += base;
144
145 return gsi;
146}
147
148static int wakeup_secondary_cpu_via_mip(int cpu, unsigned long eip)
149{
150 unsigned long vect = 0, psaival = 0;
151
152 if (psai == NULL)
153 return -1;
154
155 vect = ((unsigned long)__pa(eip)/0x1000) << 16;
156 psaival = (0x1000000 | vect | cpu);
157
158 while (*psai & 0x1000000)
159 ;
160
161 *psai = psaival;
162
163 return 0;
164}
165
166static int es7000_apic_is_cluster(void)
167{
168 /* MPENTIUMIII */
169 if (boot_cpu_data.x86 == 6 &&
170 (boot_cpu_data.x86_model >= 7 || boot_cpu_data.x86_model <= 11))
171 return 1;
172
173 return 0;
174}
175
176static void setup_unisys(void)
177{
178 /*
179 * Determine the generation of the ES7000 currently running.
180 *
181 * es7000_plat = 1 if the machine is a 5xx ES7000 box
182 * es7000_plat = 2 if the machine is a x86_64 ES7000 box
183 *
184 */
185 if (!(boot_cpu_data.x86 <= 15 && boot_cpu_data.x86_model <= 2))
186 es7000_plat = ES7000_ZORRO;
187 else
188 es7000_plat = ES7000_CLASSIC;
189 ioapic_renumber_irq = es7000_rename_gsi;
190}
191
192/*
193 * Parse the OEM Table:
194 */
195static int parse_unisys_oem(char *oemptr)
196{
197 int i;
198 int success = 0;
199 unsigned char type, size;
200 unsigned long val;
201 char *tp = NULL;
202 struct psai *psaip = NULL;
203 struct mip_reg_info *mi;
204 struct mip_reg *host, *mip;
205
206 tp = oemptr;
207
208 tp += 8;
209
210 for (i = 0; i <= 6; i++) {
211 type = *tp++;
212 size = *tp++;
213 tp -= 2;
214 switch (type) {
215 case MIP_REG:
216 mi = (struct mip_reg_info *)tp;
217 val = MIP_RD_LO(mi->host_reg);
218 host_addr = val;
219 host = (struct mip_reg *)val;
220 host_reg = __va(host);
221 val = MIP_RD_LO(mi->mip_reg);
222 mip_port = MIP_PORT(mi->mip_info);
223 mip_addr = val;
224 mip = (struct mip_reg *)val;
225 mip_reg = __va(mip);
226 pr_debug("es7000_mipcfg: host_reg = 0x%lx \n",
227 (unsigned long)host_reg);
228 pr_debug("es7000_mipcfg: mip_reg = 0x%lx \n",
229 (unsigned long)mip_reg);
230 success++;
231 break;
232 case MIP_PSAI_REG:
233 psaip = (struct psai *)tp;
234 if (tp != NULL) {
235 if (psaip->addr)
236 psai = __va(psaip->addr);
237 else
238 psai = NULL;
239 success++;
240 }
241 break;
242 default:
243 break;
244 }
245 tp += size;
246 }
247
248 if (success < 2)
249 es7000_plat = NON_UNISYS;
250 else
251 setup_unisys();
252
253 return es7000_plat;
254}
255
256#ifdef CONFIG_ACPI
257static int find_unisys_acpi_oem_table(unsigned long *oem_addr)
258{
259 struct acpi_table_header *header = NULL;
260 struct es7000_oem_table *table;
261 acpi_size tbl_size;
262 acpi_status ret;
263 int i = 0;
264
265 for (;;) {
266 ret = acpi_get_table_with_size("OEM1", i++, &header, &tbl_size);
267 if (!ACPI_SUCCESS(ret))
268 return -1;
269
270 if (!memcmp((char *) &header->oem_id, "UNISYS", 6))
271 break;
272
273 early_acpi_os_unmap_memory(header, tbl_size);
274 }
275
276 table = (void *)header;
277
278 oem_addrX = table->OEMTableAddr;
279 oem_size = table->OEMTableSize;
280
281 early_acpi_os_unmap_memory(header, tbl_size);
282
283 *oem_addr = (unsigned long)__acpi_map_table(oem_addrX, oem_size);
284
285 return 0;
286}
287
288static void unmap_unisys_acpi_oem_table(unsigned long oem_addr)
289{
290 if (!oem_addr)
291 return;
292
293 __acpi_unmap_table((char *)oem_addr, oem_size);
294}
295
296static int es7000_check_dsdt(void)
297{
298 struct acpi_table_header header;
299
300 if (ACPI_SUCCESS(acpi_get_table_header(ACPI_SIG_DSDT, 0, &header)) &&
301 !strncmp(header.oem_id, "UNISYS", 6))
302 return 1;
303 return 0;
304}
305
306static int es7000_acpi_ret;
307
308/* Hook from generic ACPI tables.c */
309static int es7000_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
310{
311 unsigned long oem_addr = 0;
312 int check_dsdt;
313 int ret = 0;
314
315 /* check dsdt at first to avoid clear fix_map for oem_addr */
316 check_dsdt = es7000_check_dsdt();
317
318 if (!find_unisys_acpi_oem_table(&oem_addr)) {
319 if (check_dsdt) {
320 ret = parse_unisys_oem((char *)oem_addr);
321 } else {
322 setup_unisys();
323 ret = 1;
324 }
325 /*
326 * we need to unmap it
327 */
328 unmap_unisys_acpi_oem_table(oem_addr);
329 }
330
331 es7000_acpi_ret = ret;
332
333 return ret && !es7000_apic_is_cluster();
334}
335
336static int es7000_acpi_madt_oem_check_cluster(char *oem_id, char *oem_table_id)
337{
338 int ret = es7000_acpi_ret;
339
340 return ret && es7000_apic_is_cluster();
341}
342
343#else /* !CONFIG_ACPI: */
344static int es7000_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
345{
346 return 0;
347}
348
349static int es7000_acpi_madt_oem_check_cluster(char *oem_id, char *oem_table_id)
350{
351 return 0;
352}
353#endif /* !CONFIG_ACPI */
354
355static void es7000_spin(int n)
356{
357 int i = 0;
358
359 while (i++ < n)
360 rep_nop();
361}
362
363static int es7000_mip_write(struct mip_reg *mip_reg)
364{
365 int status = 0;
366 int spin;
367
368 spin = MIP_SPIN;
369 while ((host_reg->off_0x38 & MIP_VALID) != 0) {
370 if (--spin <= 0) {
371 WARN(1, "Timeout waiting for Host Valid Flag\n");
372 return -1;
373 }
374 es7000_spin(MIP_SPIN);
375 }
376
377 memcpy(host_reg, mip_reg, sizeof(struct mip_reg));
378 outb(1, mip_port);
379
380 spin = MIP_SPIN;
381
382 while ((mip_reg->off_0x38 & MIP_VALID) == 0) {
383 if (--spin <= 0) {
384 WARN(1, "Timeout waiting for MIP Valid Flag\n");
385 return -1;
386 }
387 es7000_spin(MIP_SPIN);
388 }
389
390 status = (mip_reg->off_0x00 & 0xffff0000000000ULL) >> 48;
391 mip_reg->off_0x38 &= ~MIP_VALID;
392
393 return status;
394}
395
396static void es7000_enable_apic_mode(void)
397{
398 struct mip_reg es7000_mip_reg;
399 int mip_status;
400
401 if (!es7000_plat)
402 return;
403
404 printk(KERN_INFO "ES7000: Enabling APIC mode.\n");
405 memset(&es7000_mip_reg, 0, sizeof(struct mip_reg));
406 es7000_mip_reg.off_0x00 = MIP_SW_APIC;
407 es7000_mip_reg.off_0x38 = MIP_VALID;
408
409 while ((mip_status = es7000_mip_write(&es7000_mip_reg)) != 0)
410 WARN(1, "Command failed, status = %x\n", mip_status);
411}
412
413static void es7000_vector_allocation_domain(int cpu, cpumask_t *retmask)
414{
415 /* Careful. Some cpus do not strictly honor the set of cpus
416 * specified in the interrupt destination when using lowest
417 * priority interrupt delivery mode.
418 *
419 * In particular there was a hyperthreading cpu observed to
420 * deliver interrupts to the wrong hyperthread when only one
421 * hyperthread was specified in the interrupt desitination.
422 */
423 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
424}
425
426
427static void es7000_wait_for_init_deassert(atomic_t *deassert)
428{
429 while (!atomic_read(deassert))
430 cpu_relax();
431}
432
433static unsigned int es7000_get_apic_id(unsigned long x)
434{
435 return (x >> 24) & 0xFF;
436}
437
438static void es7000_send_IPI_mask(const struct cpumask *mask, int vector)
439{
440 default_send_IPI_mask_sequence_phys(mask, vector);
441}
442
443static void es7000_send_IPI_allbutself(int vector)
444{
445 default_send_IPI_mask_allbutself_phys(cpu_online_mask, vector);
446}
447
448static void es7000_send_IPI_all(int vector)
449{
450 es7000_send_IPI_mask(cpu_online_mask, vector);
451}
452
453static int es7000_apic_id_registered(void)
454{
455 return 1;
456}
457
458static const cpumask_t *target_cpus_cluster(void)
459{
460 return &CPU_MASK_ALL;
461}
462
463static const cpumask_t *es7000_target_cpus(void)
464{
465 return &cpumask_of_cpu(smp_processor_id());
466}
467
468static unsigned long
469es7000_check_apicid_used(physid_mask_t bitmap, int apicid)
470{
471 return 0;
472}
473static unsigned long es7000_check_apicid_present(int bit)
474{
475 return physid_isset(bit, phys_cpu_present_map);
476}
477
478static unsigned long calculate_ldr(int cpu)
479{
480 unsigned long id = per_cpu(x86_bios_cpu_apicid, cpu);
481
482 return SET_APIC_LOGICAL_ID(id);
483}
484
485/*
486 * Set up the logical destination ID.
487 *
488 * Intel recommends to set DFR, LdR and TPR before enabling
489 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
490 * document number 292116). So here it goes...
491 */
492static void es7000_init_apic_ldr_cluster(void)
493{
494 unsigned long val;
495 int cpu = smp_processor_id();
496
497 apic_write(APIC_DFR, APIC_DFR_CLUSTER);
498 val = calculate_ldr(cpu);
499 apic_write(APIC_LDR, val);
500}
501
502static void es7000_init_apic_ldr(void)
503{
504 unsigned long val;
505 int cpu = smp_processor_id();
506
507 apic_write(APIC_DFR, APIC_DFR_FLAT);
508 val = calculate_ldr(cpu);
509 apic_write(APIC_LDR, val);
510}
511
512static void es7000_setup_apic_routing(void)
513{
514 int apic = per_cpu(x86_bios_cpu_apicid, smp_processor_id());
515
516 printk(KERN_INFO
517 "Enabling APIC mode: %s. Using %d I/O APICs, target cpus %lx\n",
518 (apic_version[apic] == 0x14) ?
519 "Physical Cluster" : "Logical Cluster",
520 nr_ioapics, cpus_addr(*es7000_target_cpus())[0]);
521}
522
523static int es7000_apicid_to_node(int logical_apicid)
524{
525 return 0;
526}
527
528
529static int es7000_cpu_present_to_apicid(int mps_cpu)
530{
531 if (!mps_cpu)
532 return boot_cpu_physical_apicid;
533 else if (mps_cpu < nr_cpu_ids)
534 return per_cpu(x86_bios_cpu_apicid, mps_cpu);
535 else
536 return BAD_APICID;
537}
538
539static int cpu_id;
540
541static physid_mask_t es7000_apicid_to_cpu_present(int phys_apicid)
542{
543 physid_mask_t mask;
544
545 mask = physid_mask_of_physid(cpu_id);
546 ++cpu_id;
547
548 return mask;
549}
550
551/* Mapping from cpu number to logical apicid */
552static int es7000_cpu_to_logical_apicid(int cpu)
553{
554#ifdef CONFIG_SMP
555 if (cpu >= nr_cpu_ids)
556 return BAD_APICID;
557 return cpu_2_logical_apicid[cpu];
558#else
559 return logical_smp_processor_id();
560#endif
561}
562
563static physid_mask_t es7000_ioapic_phys_id_map(physid_mask_t phys_map)
564{
565 /* For clustered we don't have a good way to do this yet - hack */
566 return physids_promote(0xff);
567}
568
569static int es7000_check_phys_apicid_present(int cpu_physical_apicid)
570{
571 boot_cpu_physical_apicid = read_apic_id();
572 return 1;
573}
574
575static unsigned int es7000_cpu_mask_to_apicid(const cpumask_t *cpumask)
576{
577 unsigned int round = 0;
578 int cpu, uninitialized_var(apicid);
579
580 /*
581 * The cpus in the mask must all be on the apic cluster.
582 */
583 for_each_cpu(cpu, cpumask) {
584 int new_apicid = es7000_cpu_to_logical_apicid(cpu);
585
586 if (round && APIC_CLUSTER(apicid) != APIC_CLUSTER(new_apicid)) {
587 WARN(1, "Not a valid mask!");
588
589 return BAD_APICID;
590 }
591 apicid = new_apicid;
592 round++;
593 }
594 return apicid;
595}
596
597static unsigned int
598es7000_cpu_mask_to_apicid_and(const struct cpumask *inmask,
599 const struct cpumask *andmask)
600{
601 int apicid = es7000_cpu_to_logical_apicid(0);
602 cpumask_var_t cpumask;
603
604 if (!alloc_cpumask_var(&cpumask, GFP_ATOMIC))
605 return apicid;
606
607 cpumask_and(cpumask, inmask, andmask);
608 cpumask_and(cpumask, cpumask, cpu_online_mask);
609 apicid = es7000_cpu_mask_to_apicid(cpumask);
610
611 free_cpumask_var(cpumask);
612
613 return apicid;
614}
615
616static int es7000_phys_pkg_id(int cpuid_apic, int index_msb)
617{
618 return cpuid_apic >> index_msb;
619}
620
621static int probe_es7000(void)
622{
623 /* probed later in mptable/ACPI hooks */
624 return 0;
625}
626
627static int es7000_mps_ret;
628static int es7000_mps_oem_check(struct mpc_table *mpc, char *oem,
629 char *productid)
630{
631 int ret = 0;
632
633 if (mpc->oemptr) {
634 struct mpc_oemtable *oem_table =
635 (struct mpc_oemtable *)mpc->oemptr;
636
637 if (!strncmp(oem, "UNISYS", 6))
638 ret = parse_unisys_oem((char *)oem_table);
639 }
640
641 es7000_mps_ret = ret;
642
643 return ret && !es7000_apic_is_cluster();
644}
645
646static int es7000_mps_oem_check_cluster(struct mpc_table *mpc, char *oem,
647 char *productid)
648{
649 int ret = es7000_mps_ret;
650
651 return ret && es7000_apic_is_cluster();
652}
653
654struct apic apic_es7000_cluster = {
655
656 .name = "es7000",
657 .probe = probe_es7000,
658 .acpi_madt_oem_check = es7000_acpi_madt_oem_check_cluster,
659 .apic_id_registered = es7000_apic_id_registered,
660
661 .irq_delivery_mode = dest_LowestPrio,
662 /* logical delivery broadcast to all procs: */
663 .irq_dest_mode = 1,
664
665 .target_cpus = target_cpus_cluster,
666 .disable_esr = 1,
667 .dest_logical = 0,
668 .check_apicid_used = es7000_check_apicid_used,
669 .check_apicid_present = es7000_check_apicid_present,
670
671 .vector_allocation_domain = es7000_vector_allocation_domain,
672 .init_apic_ldr = es7000_init_apic_ldr_cluster,
673
674 .ioapic_phys_id_map = es7000_ioapic_phys_id_map,
675 .setup_apic_routing = es7000_setup_apic_routing,
676 .multi_timer_check = NULL,
677 .apicid_to_node = es7000_apicid_to_node,
678 .cpu_to_logical_apicid = es7000_cpu_to_logical_apicid,
679 .cpu_present_to_apicid = es7000_cpu_present_to_apicid,
680 .apicid_to_cpu_present = es7000_apicid_to_cpu_present,
681 .setup_portio_remap = NULL,
682 .check_phys_apicid_present = es7000_check_phys_apicid_present,
683 .enable_apic_mode = es7000_enable_apic_mode,
684 .phys_pkg_id = es7000_phys_pkg_id,
685 .mps_oem_check = es7000_mps_oem_check_cluster,
686
687 .get_apic_id = es7000_get_apic_id,
688 .set_apic_id = NULL,
689 .apic_id_mask = 0xFF << 24,
690
691 .cpu_mask_to_apicid = es7000_cpu_mask_to_apicid,
692 .cpu_mask_to_apicid_and = es7000_cpu_mask_to_apicid_and,
693
694 .send_IPI_mask = es7000_send_IPI_mask,
695 .send_IPI_mask_allbutself = NULL,
696 .send_IPI_allbutself = es7000_send_IPI_allbutself,
697 .send_IPI_all = es7000_send_IPI_all,
698 .send_IPI_self = default_send_IPI_self,
699
700 .wakeup_secondary_cpu = wakeup_secondary_cpu_via_mip,
701
702 .trampoline_phys_low = 0x467,
703 .trampoline_phys_high = 0x469,
704
705 .wait_for_init_deassert = NULL,
706
707 /* Nothing to do for most platforms, since cleared by the INIT cycle: */
708 .smp_callin_clear_local_apic = NULL,
709 .inquire_remote_apic = default_inquire_remote_apic,
710
711 .read = native_apic_mem_read,
712 .write = native_apic_mem_write,
713 .icr_read = native_apic_icr_read,
714 .icr_write = native_apic_icr_write,
715 .wait_icr_idle = native_apic_wait_icr_idle,
716 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
717};
718
719struct apic apic_es7000 = {
720
721 .name = "es7000",
722 .probe = probe_es7000,
723 .acpi_madt_oem_check = es7000_acpi_madt_oem_check,
724 .apic_id_registered = es7000_apic_id_registered,
725
726 .irq_delivery_mode = dest_Fixed,
727 /* phys delivery to target CPUs: */
728 .irq_dest_mode = 0,
729
730 .target_cpus = es7000_target_cpus,
731 .disable_esr = 1,
732 .dest_logical = 0,
733 .check_apicid_used = es7000_check_apicid_used,
734 .check_apicid_present = es7000_check_apicid_present,
735
736 .vector_allocation_domain = es7000_vector_allocation_domain,
737 .init_apic_ldr = es7000_init_apic_ldr,
738
739 .ioapic_phys_id_map = es7000_ioapic_phys_id_map,
740 .setup_apic_routing = es7000_setup_apic_routing,
741 .multi_timer_check = NULL,
742 .apicid_to_node = es7000_apicid_to_node,
743 .cpu_to_logical_apicid = es7000_cpu_to_logical_apicid,
744 .cpu_present_to_apicid = es7000_cpu_present_to_apicid,
745 .apicid_to_cpu_present = es7000_apicid_to_cpu_present,
746 .setup_portio_remap = NULL,
747 .check_phys_apicid_present = es7000_check_phys_apicid_present,
748 .enable_apic_mode = es7000_enable_apic_mode,
749 .phys_pkg_id = es7000_phys_pkg_id,
750 .mps_oem_check = es7000_mps_oem_check,
751
752 .get_apic_id = es7000_get_apic_id,
753 .set_apic_id = NULL,
754 .apic_id_mask = 0xFF << 24,
755
756 .cpu_mask_to_apicid = es7000_cpu_mask_to_apicid,
757 .cpu_mask_to_apicid_and = es7000_cpu_mask_to_apicid_and,
758
759 .send_IPI_mask = es7000_send_IPI_mask,
760 .send_IPI_mask_allbutself = NULL,
761 .send_IPI_allbutself = es7000_send_IPI_allbutself,
762 .send_IPI_all = es7000_send_IPI_all,
763 .send_IPI_self = default_send_IPI_self,
764
765 .trampoline_phys_low = 0x467,
766 .trampoline_phys_high = 0x469,
767
768 .wait_for_init_deassert = es7000_wait_for_init_deassert,
769
770 /* Nothing to do for most platforms, since cleared by the INIT cycle: */
771 .smp_callin_clear_local_apic = NULL,
772 .inquire_remote_apic = default_inquire_remote_apic,
773
774 .read = native_apic_mem_read,
775 .write = native_apic_mem_write,
776 .icr_read = native_apic_icr_read,
777 .icr_write = native_apic_icr_write,
778 .wait_icr_idle = native_apic_wait_icr_idle,
779 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
780};
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 3639442aa7a4..00e6071cefc4 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Intel IO-APIC support for multi-Pentium hosts. 2 * Intel IO-APIC support for multi-Pentium hosts.
3 * 3 *
4 * Copyright (C) 1997, 1998, 1999, 2000 Ingo Molnar, Hajnalka Szabo 4 * Copyright (C) 1997, 1998, 1999, 2000, 2009 Ingo Molnar, Hajnalka Szabo
5 * 5 *
6 * Many thanks to Stig Venaas for trying out countless experimental 6 * Many thanks to Stig Venaas for trying out countless experimental
7 * patches and reporting/debugging problems patiently! 7 * patches and reporting/debugging problems patiently!
@@ -46,6 +46,7 @@
46#include <asm/idle.h> 46#include <asm/idle.h>
47#include <asm/io.h> 47#include <asm/io.h>
48#include <asm/smp.h> 48#include <asm/smp.h>
49#include <asm/cpu.h>
49#include <asm/desc.h> 50#include <asm/desc.h>
50#include <asm/proto.h> 51#include <asm/proto.h>
51#include <asm/acpi.h> 52#include <asm/acpi.h>
@@ -61,9 +62,7 @@
61#include <asm/uv/uv_hub.h> 62#include <asm/uv/uv_hub.h>
62#include <asm/uv/uv_irq.h> 63#include <asm/uv/uv_irq.h>
63 64
64#include <mach_ipi.h> 65#include <asm/apic.h>
65#include <mach_apic.h>
66#include <mach_apicdef.h>
67 66
68#define __apicdebuginit(type) static type __init 67#define __apicdebuginit(type) static type __init
69 68
@@ -82,11 +81,11 @@ static DEFINE_SPINLOCK(vector_lock);
82int nr_ioapic_registers[MAX_IO_APICS]; 81int nr_ioapic_registers[MAX_IO_APICS];
83 82
84/* I/O APIC entries */ 83/* I/O APIC entries */
85struct mp_config_ioapic mp_ioapics[MAX_IO_APICS]; 84struct mpc_ioapic mp_ioapics[MAX_IO_APICS];
86int nr_ioapics; 85int nr_ioapics;
87 86
88/* MP IRQ source entries */ 87/* MP IRQ source entries */
89struct mp_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; 88struct mpc_intsrc mp_irqs[MAX_IRQ_SOURCES];
90 89
91/* # of MP IRQ source entries */ 90/* # of MP IRQ source entries */
92int mp_irq_entries; 91int mp_irq_entries;
@@ -99,10 +98,19 @@ DECLARE_BITMAP(mp_bus_not_pci, MAX_MP_BUSSES);
99 98
100int skip_ioapic_setup; 99int skip_ioapic_setup;
101 100
101void arch_disable_smp_support(void)
102{
103#ifdef CONFIG_PCI
104 noioapicquirk = 1;
105 noioapicreroute = -1;
106#endif
107 skip_ioapic_setup = 1;
108}
109
102static int __init parse_noapic(char *str) 110static int __init parse_noapic(char *str)
103{ 111{
104 /* disable IO-APIC */ 112 /* disable IO-APIC */
105 disable_ioapic_setup(); 113 arch_disable_smp_support();
106 return 0; 114 return 0;
107} 115}
108early_param("noapic", parse_noapic); 116early_param("noapic", parse_noapic);
@@ -129,7 +137,6 @@ static struct irq_pin_list *get_one_free_irq_2_pin(int cpu)
129 node = cpu_to_node(cpu); 137 node = cpu_to_node(cpu);
130 138
131 pin = kzalloc_node(sizeof(*pin), GFP_ATOMIC, node); 139 pin = kzalloc_node(sizeof(*pin), GFP_ATOMIC, node);
132 printk(KERN_DEBUG " alloc irq_2_pin on cpu %d node %d\n", cpu, node);
133 140
134 return pin; 141 return pin;
135} 142}
@@ -227,7 +234,6 @@ static struct irq_cfg *get_one_free_irq_cfg(int cpu)
227 cpumask_clear(cfg->old_domain); 234 cpumask_clear(cfg->old_domain);
228 } 235 }
229 } 236 }
230 printk(KERN_DEBUG " alloc irq_cfg on cpu %d node %d\n", cpu, node);
231 237
232 return cfg; 238 return cfg;
233} 239}
@@ -358,7 +364,7 @@ set_extra_move_desc(struct irq_desc *desc, const struct cpumask *mask)
358 364
359 if (!cfg->move_in_progress) { 365 if (!cfg->move_in_progress) {
360 /* it means that domain is not changed */ 366 /* it means that domain is not changed */
361 if (!cpumask_intersects(&desc->affinity, mask)) 367 if (!cpumask_intersects(desc->affinity, mask))
362 cfg->move_desc_pending = 1; 368 cfg->move_desc_pending = 1;
363 } 369 }
364} 370}
@@ -388,7 +394,7 @@ struct io_apic {
388static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx) 394static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx)
389{ 395{
390 return (void __iomem *) __fix_to_virt(FIX_IO_APIC_BASE_0 + idx) 396 return (void __iomem *) __fix_to_virt(FIX_IO_APIC_BASE_0 + idx)
391 + (mp_ioapics[idx].mp_apicaddr & ~PAGE_MASK); 397 + (mp_ioapics[idx].apicaddr & ~PAGE_MASK);
392} 398}
393 399
394static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg) 400static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg)
@@ -480,7 +486,7 @@ __ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e)
480 io_apic_write(apic, 0x10 + 2*pin, eu.w1); 486 io_apic_write(apic, 0x10 + 2*pin, eu.w1);
481} 487}
482 488
483static void ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e) 489void ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e)
484{ 490{
485 unsigned long flags; 491 unsigned long flags;
486 spin_lock_irqsave(&ioapic_lock, flags); 492 spin_lock_irqsave(&ioapic_lock, flags);
@@ -515,11 +521,11 @@ static void send_cleanup_vector(struct irq_cfg *cfg)
515 for_each_cpu_and(i, cfg->old_domain, cpu_online_mask) 521 for_each_cpu_and(i, cfg->old_domain, cpu_online_mask)
516 cfg->move_cleanup_count++; 522 cfg->move_cleanup_count++;
517 for_each_cpu_and(i, cfg->old_domain, cpu_online_mask) 523 for_each_cpu_and(i, cfg->old_domain, cpu_online_mask)
518 send_IPI_mask(cpumask_of(i), IRQ_MOVE_CLEANUP_VECTOR); 524 apic->send_IPI_mask(cpumask_of(i), IRQ_MOVE_CLEANUP_VECTOR);
519 } else { 525 } else {
520 cpumask_and(cleanup_mask, cfg->old_domain, cpu_online_mask); 526 cpumask_and(cleanup_mask, cfg->old_domain, cpu_online_mask);
521 cfg->move_cleanup_count = cpumask_weight(cleanup_mask); 527 cfg->move_cleanup_count = cpumask_weight(cleanup_mask);
522 send_IPI_mask(cleanup_mask, IRQ_MOVE_CLEANUP_VECTOR); 528 apic->send_IPI_mask(cleanup_mask, IRQ_MOVE_CLEANUP_VECTOR);
523 free_cpumask_var(cleanup_mask); 529 free_cpumask_var(cleanup_mask);
524 } 530 }
525 cfg->move_in_progress = 0; 531 cfg->move_in_progress = 0;
@@ -564,8 +570,9 @@ static int
564assign_irq_vector(int irq, struct irq_cfg *cfg, const struct cpumask *mask); 570assign_irq_vector(int irq, struct irq_cfg *cfg, const struct cpumask *mask);
565 571
566/* 572/*
567 * Either sets desc->affinity to a valid value, and returns cpu_mask_to_apicid 573 * Either sets desc->affinity to a valid value, and returns
568 * of that, or returns BAD_APICID and leaves desc->affinity untouched. 574 * ->cpu_mask_to_apicid of that, or returns BAD_APICID and
575 * leaves desc->affinity untouched.
569 */ 576 */
570static unsigned int 577static unsigned int
571set_desc_affinity(struct irq_desc *desc, const struct cpumask *mask) 578set_desc_affinity(struct irq_desc *desc, const struct cpumask *mask)
@@ -581,9 +588,10 @@ set_desc_affinity(struct irq_desc *desc, const struct cpumask *mask)
581 if (assign_irq_vector(irq, cfg, mask)) 588 if (assign_irq_vector(irq, cfg, mask))
582 return BAD_APICID; 589 return BAD_APICID;
583 590
584 cpumask_and(&desc->affinity, cfg->domain, mask); 591 cpumask_and(desc->affinity, cfg->domain, mask);
585 set_extra_move_desc(desc, mask); 592 set_extra_move_desc(desc, mask);
586 return cpu_mask_to_apicid_and(&desc->affinity, cpu_online_mask); 593
594 return apic->cpu_mask_to_apicid_and(desc->affinity, cpu_online_mask);
587} 595}
588 596
589static void 597static void
@@ -798,23 +806,6 @@ static void clear_IO_APIC (void)
798 clear_IO_APIC_pin(apic, pin); 806 clear_IO_APIC_pin(apic, pin);
799} 807}
800 808
801#if !defined(CONFIG_SMP) && defined(CONFIG_X86_32)
802void send_IPI_self(int vector)
803{
804 unsigned int cfg;
805
806 /*
807 * Wait for idle.
808 */
809 apic_wait_icr_idle();
810 cfg = APIC_DM_FIXED | APIC_DEST_SELF | vector | APIC_DEST_LOGICAL;
811 /*
812 * Send the IPI. The write to APIC_ICR fires this off.
813 */
814 apic_write(APIC_ICR, cfg);
815}
816#endif /* !CONFIG_SMP && CONFIG_X86_32*/
817
818#ifdef CONFIG_X86_32 809#ifdef CONFIG_X86_32
819/* 810/*
820 * support for broken MP BIOSs, enables hand-redirection of PIRQ0-7 to 811 * support for broken MP BIOSs, enables hand-redirection of PIRQ0-7 to
@@ -822,8 +813,9 @@ void send_IPI_self(int vector)
822 */ 813 */
823 814
824#define MAX_PIRQS 8 815#define MAX_PIRQS 8
825static int pirq_entries [MAX_PIRQS]; 816static int pirq_entries[MAX_PIRQS] = {
826static int pirqs_enabled; 817 [0 ... MAX_PIRQS - 1] = -1
818};
827 819
828static int __init ioapic_pirq_setup(char *str) 820static int __init ioapic_pirq_setup(char *str)
829{ 821{
@@ -832,10 +824,6 @@ static int __init ioapic_pirq_setup(char *str)
832 824
833 get_options(str, ARRAY_SIZE(ints), ints); 825 get_options(str, ARRAY_SIZE(ints), ints);
834 826
835 for (i = 0; i < MAX_PIRQS; i++)
836 pirq_entries[i] = -1;
837
838 pirqs_enabled = 1;
839 apic_printk(APIC_VERBOSE, KERN_INFO 827 apic_printk(APIC_VERBOSE, KERN_INFO
840 "PIRQ redirection, working around broken MP-BIOS.\n"); 828 "PIRQ redirection, working around broken MP-BIOS.\n");
841 max = MAX_PIRQS; 829 max = MAX_PIRQS;
@@ -946,10 +934,10 @@ static int find_irq_entry(int apic, int pin, int type)
946 int i; 934 int i;
947 935
948 for (i = 0; i < mp_irq_entries; i++) 936 for (i = 0; i < mp_irq_entries; i++)
949 if (mp_irqs[i].mp_irqtype == type && 937 if (mp_irqs[i].irqtype == type &&
950 (mp_irqs[i].mp_dstapic == mp_ioapics[apic].mp_apicid || 938 (mp_irqs[i].dstapic == mp_ioapics[apic].apicid ||
951 mp_irqs[i].mp_dstapic == MP_APIC_ALL) && 939 mp_irqs[i].dstapic == MP_APIC_ALL) &&
952 mp_irqs[i].mp_dstirq == pin) 940 mp_irqs[i].dstirq == pin)
953 return i; 941 return i;
954 942
955 return -1; 943 return -1;
@@ -963,13 +951,13 @@ static int __init find_isa_irq_pin(int irq, int type)
963 int i; 951 int i;
964 952
965 for (i = 0; i < mp_irq_entries; i++) { 953 for (i = 0; i < mp_irq_entries; i++) {
966 int lbus = mp_irqs[i].mp_srcbus; 954 int lbus = mp_irqs[i].srcbus;
967 955
968 if (test_bit(lbus, mp_bus_not_pci) && 956 if (test_bit(lbus, mp_bus_not_pci) &&
969 (mp_irqs[i].mp_irqtype == type) && 957 (mp_irqs[i].irqtype == type) &&
970 (mp_irqs[i].mp_srcbusirq == irq)) 958 (mp_irqs[i].srcbusirq == irq))
971 959
972 return mp_irqs[i].mp_dstirq; 960 return mp_irqs[i].dstirq;
973 } 961 }
974 return -1; 962 return -1;
975} 963}
@@ -979,17 +967,17 @@ static int __init find_isa_irq_apic(int irq, int type)
979 int i; 967 int i;
980 968
981 for (i = 0; i < mp_irq_entries; i++) { 969 for (i = 0; i < mp_irq_entries; i++) {
982 int lbus = mp_irqs[i].mp_srcbus; 970 int lbus = mp_irqs[i].srcbus;
983 971
984 if (test_bit(lbus, mp_bus_not_pci) && 972 if (test_bit(lbus, mp_bus_not_pci) &&
985 (mp_irqs[i].mp_irqtype == type) && 973 (mp_irqs[i].irqtype == type) &&
986 (mp_irqs[i].mp_srcbusirq == irq)) 974 (mp_irqs[i].srcbusirq == irq))
987 break; 975 break;
988 } 976 }
989 if (i < mp_irq_entries) { 977 if (i < mp_irq_entries) {
990 int apic; 978 int apic;
991 for(apic = 0; apic < nr_ioapics; apic++) { 979 for(apic = 0; apic < nr_ioapics; apic++) {
992 if (mp_ioapics[apic].mp_apicid == mp_irqs[i].mp_dstapic) 980 if (mp_ioapics[apic].apicid == mp_irqs[i].dstapic)
993 return apic; 981 return apic;
994 } 982 }
995 } 983 }
@@ -1014,23 +1002,23 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin)
1014 return -1; 1002 return -1;
1015 } 1003 }
1016 for (i = 0; i < mp_irq_entries; i++) { 1004 for (i = 0; i < mp_irq_entries; i++) {
1017 int lbus = mp_irqs[i].mp_srcbus; 1005 int lbus = mp_irqs[i].srcbus;
1018 1006
1019 for (apic = 0; apic < nr_ioapics; apic++) 1007 for (apic = 0; apic < nr_ioapics; apic++)
1020 if (mp_ioapics[apic].mp_apicid == mp_irqs[i].mp_dstapic || 1008 if (mp_ioapics[apic].apicid == mp_irqs[i].dstapic ||
1021 mp_irqs[i].mp_dstapic == MP_APIC_ALL) 1009 mp_irqs[i].dstapic == MP_APIC_ALL)
1022 break; 1010 break;
1023 1011
1024 if (!test_bit(lbus, mp_bus_not_pci) && 1012 if (!test_bit(lbus, mp_bus_not_pci) &&
1025 !mp_irqs[i].mp_irqtype && 1013 !mp_irqs[i].irqtype &&
1026 (bus == lbus) && 1014 (bus == lbus) &&
1027 (slot == ((mp_irqs[i].mp_srcbusirq >> 2) & 0x1f))) { 1015 (slot == ((mp_irqs[i].srcbusirq >> 2) & 0x1f))) {
1028 int irq = pin_2_irq(i,apic,mp_irqs[i].mp_dstirq); 1016 int irq = pin_2_irq(i, apic, mp_irqs[i].dstirq);
1029 1017
1030 if (!(apic || IO_APIC_IRQ(irq))) 1018 if (!(apic || IO_APIC_IRQ(irq)))
1031 continue; 1019 continue;
1032 1020
1033 if (pin == (mp_irqs[i].mp_srcbusirq & 3)) 1021 if (pin == (mp_irqs[i].srcbusirq & 3))
1034 return irq; 1022 return irq;
1035 /* 1023 /*
1036 * Use the first all-but-pin matching entry as a 1024 * Use the first all-but-pin matching entry as a
@@ -1073,7 +1061,7 @@ static int EISA_ELCR(unsigned int irq)
1073 * EISA conforming in the MP table, that means its trigger type must 1061 * EISA conforming in the MP table, that means its trigger type must
1074 * be read in from the ELCR */ 1062 * be read in from the ELCR */
1075 1063
1076#define default_EISA_trigger(idx) (EISA_ELCR(mp_irqs[idx].mp_srcbusirq)) 1064#define default_EISA_trigger(idx) (EISA_ELCR(mp_irqs[idx].srcbusirq))
1077#define default_EISA_polarity(idx) default_ISA_polarity(idx) 1065#define default_EISA_polarity(idx) default_ISA_polarity(idx)
1078 1066
1079/* PCI interrupts are always polarity one level triggered, 1067/* PCI interrupts are always polarity one level triggered,
@@ -1090,13 +1078,13 @@ static int EISA_ELCR(unsigned int irq)
1090 1078
1091static int MPBIOS_polarity(int idx) 1079static int MPBIOS_polarity(int idx)
1092{ 1080{
1093 int bus = mp_irqs[idx].mp_srcbus; 1081 int bus = mp_irqs[idx].srcbus;
1094 int polarity; 1082 int polarity;
1095 1083
1096 /* 1084 /*
1097 * Determine IRQ line polarity (high active or low active): 1085 * Determine IRQ line polarity (high active or low active):
1098 */ 1086 */
1099 switch (mp_irqs[idx].mp_irqflag & 3) 1087 switch (mp_irqs[idx].irqflag & 3)
1100 { 1088 {
1101 case 0: /* conforms, ie. bus-type dependent polarity */ 1089 case 0: /* conforms, ie. bus-type dependent polarity */
1102 if (test_bit(bus, mp_bus_not_pci)) 1090 if (test_bit(bus, mp_bus_not_pci))
@@ -1132,13 +1120,13 @@ static int MPBIOS_polarity(int idx)
1132 1120
1133static int MPBIOS_trigger(int idx) 1121static int MPBIOS_trigger(int idx)
1134{ 1122{
1135 int bus = mp_irqs[idx].mp_srcbus; 1123 int bus = mp_irqs[idx].srcbus;
1136 int trigger; 1124 int trigger;
1137 1125
1138 /* 1126 /*
1139 * Determine IRQ trigger mode (edge or level sensitive): 1127 * Determine IRQ trigger mode (edge or level sensitive):
1140 */ 1128 */
1141 switch ((mp_irqs[idx].mp_irqflag>>2) & 3) 1129 switch ((mp_irqs[idx].irqflag>>2) & 3)
1142 { 1130 {
1143 case 0: /* conforms, ie. bus-type dependent */ 1131 case 0: /* conforms, ie. bus-type dependent */
1144 if (test_bit(bus, mp_bus_not_pci)) 1132 if (test_bit(bus, mp_bus_not_pci))
@@ -1216,16 +1204,16 @@ int (*ioapic_renumber_irq)(int ioapic, int irq);
1216static int pin_2_irq(int idx, int apic, int pin) 1204static int pin_2_irq(int idx, int apic, int pin)
1217{ 1205{
1218 int irq, i; 1206 int irq, i;
1219 int bus = mp_irqs[idx].mp_srcbus; 1207 int bus = mp_irqs[idx].srcbus;
1220 1208
1221 /* 1209 /*
1222 * Debugging check, we are in big trouble if this message pops up! 1210 * Debugging check, we are in big trouble if this message pops up!
1223 */ 1211 */
1224 if (mp_irqs[idx].mp_dstirq != pin) 1212 if (mp_irqs[idx].dstirq != pin)
1225 printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n"); 1213 printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n");
1226 1214
1227 if (test_bit(bus, mp_bus_not_pci)) { 1215 if (test_bit(bus, mp_bus_not_pci)) {
1228 irq = mp_irqs[idx].mp_srcbusirq; 1216 irq = mp_irqs[idx].srcbusirq;
1229 } else { 1217 } else {
1230 /* 1218 /*
1231 * PCI IRQs are mapped in order 1219 * PCI IRQs are mapped in order
@@ -1317,7 +1305,7 @@ __assign_irq_vector(int irq, struct irq_cfg *cfg, const struct cpumask *mask)
1317 int new_cpu; 1305 int new_cpu;
1318 int vector, offset; 1306 int vector, offset;
1319 1307
1320 vector_allocation_domain(cpu, tmp_mask); 1308 apic->vector_allocation_domain(cpu, tmp_mask);
1321 1309
1322 vector = current_vector; 1310 vector = current_vector;
1323 offset = current_offset; 1311 offset = current_offset;
@@ -1487,10 +1475,10 @@ static void ioapic_register_intr(int irq, struct irq_desc *desc, unsigned long t
1487 handle_edge_irq, "edge"); 1475 handle_edge_irq, "edge");
1488} 1476}
1489 1477
1490static int setup_ioapic_entry(int apic, int irq, 1478int setup_ioapic_entry(int apic_id, int irq,
1491 struct IO_APIC_route_entry *entry, 1479 struct IO_APIC_route_entry *entry,
1492 unsigned int destination, int trigger, 1480 unsigned int destination, int trigger,
1493 int polarity, int vector) 1481 int polarity, int vector)
1494{ 1482{
1495 /* 1483 /*
1496 * add it to the IO-APIC irq-routing table: 1484 * add it to the IO-APIC irq-routing table:
@@ -1499,25 +1487,25 @@ static int setup_ioapic_entry(int apic, int irq,
1499 1487
1500#ifdef CONFIG_INTR_REMAP 1488#ifdef CONFIG_INTR_REMAP
1501 if (intr_remapping_enabled) { 1489 if (intr_remapping_enabled) {
1502 struct intel_iommu *iommu = map_ioapic_to_ir(apic); 1490 struct intel_iommu *iommu = map_ioapic_to_ir(apic_id);
1503 struct irte irte; 1491 struct irte irte;
1504 struct IR_IO_APIC_route_entry *ir_entry = 1492 struct IR_IO_APIC_route_entry *ir_entry =
1505 (struct IR_IO_APIC_route_entry *) entry; 1493 (struct IR_IO_APIC_route_entry *) entry;
1506 int index; 1494 int index;
1507 1495
1508 if (!iommu) 1496 if (!iommu)
1509 panic("No mapping iommu for ioapic %d\n", apic); 1497 panic("No mapping iommu for ioapic %d\n", apic_id);
1510 1498
1511 index = alloc_irte(iommu, irq, 1); 1499 index = alloc_irte(iommu, irq, 1);
1512 if (index < 0) 1500 if (index < 0)
1513 panic("Failed to allocate IRTE for ioapic %d\n", apic); 1501 panic("Failed to allocate IRTE for ioapic %d\n", apic_id);
1514 1502
1515 memset(&irte, 0, sizeof(irte)); 1503 memset(&irte, 0, sizeof(irte));
1516 1504
1517 irte.present = 1; 1505 irte.present = 1;
1518 irte.dst_mode = INT_DEST_MODE; 1506 irte.dst_mode = apic->irq_dest_mode;
1519 irte.trigger_mode = trigger; 1507 irte.trigger_mode = trigger;
1520 irte.dlvry_mode = INT_DELIVERY_MODE; 1508 irte.dlvry_mode = apic->irq_delivery_mode;
1521 irte.vector = vector; 1509 irte.vector = vector;
1522 irte.dest_id = IRTE_DEST(destination); 1510 irte.dest_id = IRTE_DEST(destination);
1523 1511
@@ -1530,8 +1518,8 @@ static int setup_ioapic_entry(int apic, int irq,
1530 } else 1518 } else
1531#endif 1519#endif
1532 { 1520 {
1533 entry->delivery_mode = INT_DELIVERY_MODE; 1521 entry->delivery_mode = apic->irq_delivery_mode;
1534 entry->dest_mode = INT_DEST_MODE; 1522 entry->dest_mode = apic->irq_dest_mode;
1535 entry->dest = destination; 1523 entry->dest = destination;
1536 } 1524 }
1537 1525
@@ -1548,7 +1536,7 @@ static int setup_ioapic_entry(int apic, int irq,
1548 return 0; 1536 return 0;
1549} 1537}
1550 1538
1551static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq, struct irq_desc *desc, 1539static void setup_IO_APIC_irq(int apic_id, int pin, unsigned int irq, struct irq_desc *desc,
1552 int trigger, int polarity) 1540 int trigger, int polarity)
1553{ 1541{
1554 struct irq_cfg *cfg; 1542 struct irq_cfg *cfg;
@@ -1560,22 +1548,22 @@ static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq, struct irq_de
1560 1548
1561 cfg = desc->chip_data; 1549 cfg = desc->chip_data;
1562 1550
1563 if (assign_irq_vector(irq, cfg, TARGET_CPUS)) 1551 if (assign_irq_vector(irq, cfg, apic->target_cpus()))
1564 return; 1552 return;
1565 1553
1566 dest = cpu_mask_to_apicid_and(cfg->domain, TARGET_CPUS); 1554 dest = apic->cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus());
1567 1555
1568 apic_printk(APIC_VERBOSE,KERN_DEBUG 1556 apic_printk(APIC_VERBOSE,KERN_DEBUG
1569 "IOAPIC[%d]: Set routing entry (%d-%d -> 0x%x -> " 1557 "IOAPIC[%d]: Set routing entry (%d-%d -> 0x%x -> "
1570 "IRQ %d Mode:%i Active:%i)\n", 1558 "IRQ %d Mode:%i Active:%i)\n",
1571 apic, mp_ioapics[apic].mp_apicid, pin, cfg->vector, 1559 apic_id, mp_ioapics[apic_id].apicid, pin, cfg->vector,
1572 irq, trigger, polarity); 1560 irq, trigger, polarity);
1573 1561
1574 1562
1575 if (setup_ioapic_entry(mp_ioapics[apic].mp_apicid, irq, &entry, 1563 if (setup_ioapic_entry(mp_ioapics[apic_id].apicid, irq, &entry,
1576 dest, trigger, polarity, cfg->vector)) { 1564 dest, trigger, polarity, cfg->vector)) {
1577 printk("Failed to setup ioapic entry for ioapic %d, pin %d\n", 1565 printk("Failed to setup ioapic entry for ioapic %d, pin %d\n",
1578 mp_ioapics[apic].mp_apicid, pin); 1566 mp_ioapics[apic_id].apicid, pin);
1579 __clear_irq_vector(irq, cfg); 1567 __clear_irq_vector(irq, cfg);
1580 return; 1568 return;
1581 } 1569 }
@@ -1584,12 +1572,12 @@ static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq, struct irq_de
1584 if (irq < NR_IRQS_LEGACY) 1572 if (irq < NR_IRQS_LEGACY)
1585 disable_8259A_irq(irq); 1573 disable_8259A_irq(irq);
1586 1574
1587 ioapic_write_entry(apic, pin, entry); 1575 ioapic_write_entry(apic_id, pin, entry);
1588} 1576}
1589 1577
1590static void __init setup_IO_APIC_irqs(void) 1578static void __init setup_IO_APIC_irqs(void)
1591{ 1579{
1592 int apic, pin, idx, irq; 1580 int apic_id, pin, idx, irq;
1593 int notcon = 0; 1581 int notcon = 0;
1594 struct irq_desc *desc; 1582 struct irq_desc *desc;
1595 struct irq_cfg *cfg; 1583 struct irq_cfg *cfg;
@@ -1597,21 +1585,19 @@ static void __init setup_IO_APIC_irqs(void)
1597 1585
1598 apic_printk(APIC_VERBOSE, KERN_DEBUG "init IO_APIC IRQs\n"); 1586 apic_printk(APIC_VERBOSE, KERN_DEBUG "init IO_APIC IRQs\n");
1599 1587
1600 for (apic = 0; apic < nr_ioapics; apic++) { 1588 for (apic_id = 0; apic_id < nr_ioapics; apic_id++) {
1601 for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) { 1589 for (pin = 0; pin < nr_ioapic_registers[apic_id]; pin++) {
1602 1590
1603 idx = find_irq_entry(apic, pin, mp_INT); 1591 idx = find_irq_entry(apic_id, pin, mp_INT);
1604 if (idx == -1) { 1592 if (idx == -1) {
1605 if (!notcon) { 1593 if (!notcon) {
1606 notcon = 1; 1594 notcon = 1;
1607 apic_printk(APIC_VERBOSE, 1595 apic_printk(APIC_VERBOSE,
1608 KERN_DEBUG " %d-%d", 1596 KERN_DEBUG " %d-%d",
1609 mp_ioapics[apic].mp_apicid, 1597 mp_ioapics[apic_id].apicid, pin);
1610 pin);
1611 } else 1598 } else
1612 apic_printk(APIC_VERBOSE, " %d-%d", 1599 apic_printk(APIC_VERBOSE, " %d-%d",
1613 mp_ioapics[apic].mp_apicid, 1600 mp_ioapics[apic_id].apicid, pin);
1614 pin);
1615 continue; 1601 continue;
1616 } 1602 }
1617 if (notcon) { 1603 if (notcon) {
@@ -1620,20 +1606,25 @@ static void __init setup_IO_APIC_irqs(void)
1620 notcon = 0; 1606 notcon = 0;
1621 } 1607 }
1622 1608
1623 irq = pin_2_irq(idx, apic, pin); 1609 irq = pin_2_irq(idx, apic_id, pin);
1624#ifdef CONFIG_X86_32 1610
1625 if (multi_timer_check(apic, irq)) 1611 /*
1612 * Skip the timer IRQ if there's a quirk handler
1613 * installed and if it returns 1:
1614 */
1615 if (apic->multi_timer_check &&
1616 apic->multi_timer_check(apic_id, irq))
1626 continue; 1617 continue;
1627#endif 1618
1628 desc = irq_to_desc_alloc_cpu(irq, cpu); 1619 desc = irq_to_desc_alloc_cpu(irq, cpu);
1629 if (!desc) { 1620 if (!desc) {
1630 printk(KERN_INFO "can not get irq_desc for %d\n", irq); 1621 printk(KERN_INFO "can not get irq_desc for %d\n", irq);
1631 continue; 1622 continue;
1632 } 1623 }
1633 cfg = desc->chip_data; 1624 cfg = desc->chip_data;
1634 add_pin_to_irq_cpu(cfg, cpu, apic, pin); 1625 add_pin_to_irq_cpu(cfg, cpu, apic_id, pin);
1635 1626
1636 setup_IO_APIC_irq(apic, pin, irq, desc, 1627 setup_IO_APIC_irq(apic_id, pin, irq, desc,
1637 irq_trigger(idx), irq_polarity(idx)); 1628 irq_trigger(idx), irq_polarity(idx));
1638 } 1629 }
1639 } 1630 }
@@ -1646,7 +1637,7 @@ static void __init setup_IO_APIC_irqs(void)
1646/* 1637/*
1647 * Set up the timer pin, possibly with the 8259A-master behind. 1638 * Set up the timer pin, possibly with the 8259A-master behind.
1648 */ 1639 */
1649static void __init setup_timer_IRQ0_pin(unsigned int apic, unsigned int pin, 1640static void __init setup_timer_IRQ0_pin(unsigned int apic_id, unsigned int pin,
1650 int vector) 1641 int vector)
1651{ 1642{
1652 struct IO_APIC_route_entry entry; 1643 struct IO_APIC_route_entry entry;
@@ -1662,10 +1653,10 @@ static void __init setup_timer_IRQ0_pin(unsigned int apic, unsigned int pin,
1662 * We use logical delivery to get the timer IRQ 1653 * We use logical delivery to get the timer IRQ
1663 * to the first CPU. 1654 * to the first CPU.
1664 */ 1655 */
1665 entry.dest_mode = INT_DEST_MODE; 1656 entry.dest_mode = apic->irq_dest_mode;
1666 entry.mask = 1; /* mask IRQ now */ 1657 entry.mask = 0; /* don't mask IRQ for edge */
1667 entry.dest = cpu_mask_to_apicid(TARGET_CPUS); 1658 entry.dest = apic->cpu_mask_to_apicid(apic->target_cpus());
1668 entry.delivery_mode = INT_DELIVERY_MODE; 1659 entry.delivery_mode = apic->irq_delivery_mode;
1669 entry.polarity = 0; 1660 entry.polarity = 0;
1670 entry.trigger = 0; 1661 entry.trigger = 0;
1671 entry.vector = vector; 1662 entry.vector = vector;
@@ -1679,7 +1670,7 @@ static void __init setup_timer_IRQ0_pin(unsigned int apic, unsigned int pin,
1679 /* 1670 /*
1680 * Add it to the IO-APIC irq-routing table: 1671 * Add it to the IO-APIC irq-routing table:
1681 */ 1672 */
1682 ioapic_write_entry(apic, pin, entry); 1673 ioapic_write_entry(apic_id, pin, entry);
1683} 1674}
1684 1675
1685 1676
@@ -1701,7 +1692,7 @@ __apicdebuginit(void) print_IO_APIC(void)
1701 printk(KERN_DEBUG "number of MP IRQ sources: %d.\n", mp_irq_entries); 1692 printk(KERN_DEBUG "number of MP IRQ sources: %d.\n", mp_irq_entries);
1702 for (i = 0; i < nr_ioapics; i++) 1693 for (i = 0; i < nr_ioapics; i++)
1703 printk(KERN_DEBUG "number of IO-APIC #%d registers: %d.\n", 1694 printk(KERN_DEBUG "number of IO-APIC #%d registers: %d.\n",
1704 mp_ioapics[i].mp_apicid, nr_ioapic_registers[i]); 1695 mp_ioapics[i].apicid, nr_ioapic_registers[i]);
1705 1696
1706 /* 1697 /*
1707 * We are a bit conservative about what we expect. We have to 1698 * We are a bit conservative about what we expect. We have to
@@ -1721,7 +1712,7 @@ __apicdebuginit(void) print_IO_APIC(void)
1721 spin_unlock_irqrestore(&ioapic_lock, flags); 1712 spin_unlock_irqrestore(&ioapic_lock, flags);
1722 1713
1723 printk("\n"); 1714 printk("\n");
1724 printk(KERN_DEBUG "IO APIC #%d......\n", mp_ioapics[apic].mp_apicid); 1715 printk(KERN_DEBUG "IO APIC #%d......\n", mp_ioapics[apic].apicid);
1725 printk(KERN_DEBUG ".... register #00: %08X\n", reg_00.raw); 1716 printk(KERN_DEBUG ".... register #00: %08X\n", reg_00.raw);
1726 printk(KERN_DEBUG "....... : physical APIC id: %02X\n", reg_00.bits.ID); 1717 printk(KERN_DEBUG "....... : physical APIC id: %02X\n", reg_00.bits.ID);
1727 printk(KERN_DEBUG "....... : Delivery Type: %X\n", reg_00.bits.delivery_type); 1718 printk(KERN_DEBUG "....... : Delivery Type: %X\n", reg_00.bits.delivery_type);
@@ -1982,13 +1973,6 @@ void __init enable_IO_APIC(void)
1982 int apic; 1973 int apic;
1983 unsigned long flags; 1974 unsigned long flags;
1984 1975
1985#ifdef CONFIG_X86_32
1986 int i;
1987 if (!pirqs_enabled)
1988 for (i = 0; i < MAX_PIRQS; i++)
1989 pirq_entries[i] = -1;
1990#endif
1991
1992 /* 1976 /*
1993 * The number of IO-APIC IRQ registers (== #pins): 1977 * The number of IO-APIC IRQ registers (== #pins):
1994 */ 1978 */
@@ -2092,7 +2076,7 @@ static void __init setup_ioapic_ids_from_mpc(void)
2092{ 2076{
2093 union IO_APIC_reg_00 reg_00; 2077 union IO_APIC_reg_00 reg_00;
2094 physid_mask_t phys_id_present_map; 2078 physid_mask_t phys_id_present_map;
2095 int apic; 2079 int apic_id;
2096 int i; 2080 int i;
2097 unsigned char old_id; 2081 unsigned char old_id;
2098 unsigned long flags; 2082 unsigned long flags;
@@ -2111,26 +2095,26 @@ static void __init setup_ioapic_ids_from_mpc(void)
2111 * This is broken; anything with a real cpu count has to 2095 * This is broken; anything with a real cpu count has to
2112 * circumvent this idiocy regardless. 2096 * circumvent this idiocy regardless.
2113 */ 2097 */
2114 phys_id_present_map = ioapic_phys_id_map(phys_cpu_present_map); 2098 phys_id_present_map = apic->ioapic_phys_id_map(phys_cpu_present_map);
2115 2099
2116 /* 2100 /*
2117 * Set the IOAPIC ID to the value stored in the MPC table. 2101 * Set the IOAPIC ID to the value stored in the MPC table.
2118 */ 2102 */
2119 for (apic = 0; apic < nr_ioapics; apic++) { 2103 for (apic_id = 0; apic_id < nr_ioapics; apic_id++) {
2120 2104
2121 /* Read the register 0 value */ 2105 /* Read the register 0 value */
2122 spin_lock_irqsave(&ioapic_lock, flags); 2106 spin_lock_irqsave(&ioapic_lock, flags);
2123 reg_00.raw = io_apic_read(apic, 0); 2107 reg_00.raw = io_apic_read(apic_id, 0);
2124 spin_unlock_irqrestore(&ioapic_lock, flags); 2108 spin_unlock_irqrestore(&ioapic_lock, flags);
2125 2109
2126 old_id = mp_ioapics[apic].mp_apicid; 2110 old_id = mp_ioapics[apic_id].apicid;
2127 2111
2128 if (mp_ioapics[apic].mp_apicid >= get_physical_broadcast()) { 2112 if (mp_ioapics[apic_id].apicid >= get_physical_broadcast()) {
2129 printk(KERN_ERR "BIOS bug, IO-APIC#%d ID is %d in the MPC table!...\n", 2113 printk(KERN_ERR "BIOS bug, IO-APIC#%d ID is %d in the MPC table!...\n",
2130 apic, mp_ioapics[apic].mp_apicid); 2114 apic_id, mp_ioapics[apic_id].apicid);
2131 printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n", 2115 printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n",
2132 reg_00.bits.ID); 2116 reg_00.bits.ID);
2133 mp_ioapics[apic].mp_apicid = reg_00.bits.ID; 2117 mp_ioapics[apic_id].apicid = reg_00.bits.ID;
2134 } 2118 }
2135 2119
2136 /* 2120 /*
@@ -2138,10 +2122,10 @@ static void __init setup_ioapic_ids_from_mpc(void)
2138 * system must have a unique ID or we get lots of nice 2122 * system must have a unique ID or we get lots of nice
2139 * 'stuck on smp_invalidate_needed IPI wait' messages. 2123 * 'stuck on smp_invalidate_needed IPI wait' messages.
2140 */ 2124 */
2141 if (check_apicid_used(phys_id_present_map, 2125 if (apic->check_apicid_used(phys_id_present_map,
2142 mp_ioapics[apic].mp_apicid)) { 2126 mp_ioapics[apic_id].apicid)) {
2143 printk(KERN_ERR "BIOS bug, IO-APIC#%d ID %d is already used!...\n", 2127 printk(KERN_ERR "BIOS bug, IO-APIC#%d ID %d is already used!...\n",
2144 apic, mp_ioapics[apic].mp_apicid); 2128 apic_id, mp_ioapics[apic_id].apicid);
2145 for (i = 0; i < get_physical_broadcast(); i++) 2129 for (i = 0; i < get_physical_broadcast(); i++)
2146 if (!physid_isset(i, phys_id_present_map)) 2130 if (!physid_isset(i, phys_id_present_map))
2147 break; 2131 break;
@@ -2150,13 +2134,13 @@ static void __init setup_ioapic_ids_from_mpc(void)
2150 printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n", 2134 printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n",
2151 i); 2135 i);
2152 physid_set(i, phys_id_present_map); 2136 physid_set(i, phys_id_present_map);
2153 mp_ioapics[apic].mp_apicid = i; 2137 mp_ioapics[apic_id].apicid = i;
2154 } else { 2138 } else {
2155 physid_mask_t tmp; 2139 physid_mask_t tmp;
2156 tmp = apicid_to_cpu_present(mp_ioapics[apic].mp_apicid); 2140 tmp = apic->apicid_to_cpu_present(mp_ioapics[apic_id].apicid);
2157 apic_printk(APIC_VERBOSE, "Setting %d in the " 2141 apic_printk(APIC_VERBOSE, "Setting %d in the "
2158 "phys_id_present_map\n", 2142 "phys_id_present_map\n",
2159 mp_ioapics[apic].mp_apicid); 2143 mp_ioapics[apic_id].apicid);
2160 physids_or(phys_id_present_map, phys_id_present_map, tmp); 2144 physids_or(phys_id_present_map, phys_id_present_map, tmp);
2161 } 2145 }
2162 2146
@@ -2165,11 +2149,11 @@ static void __init setup_ioapic_ids_from_mpc(void)
2165 * We need to adjust the IRQ routing table 2149 * We need to adjust the IRQ routing table
2166 * if the ID changed. 2150 * if the ID changed.
2167 */ 2151 */
2168 if (old_id != mp_ioapics[apic].mp_apicid) 2152 if (old_id != mp_ioapics[apic_id].apicid)
2169 for (i = 0; i < mp_irq_entries; i++) 2153 for (i = 0; i < mp_irq_entries; i++)
2170 if (mp_irqs[i].mp_dstapic == old_id) 2154 if (mp_irqs[i].dstapic == old_id)
2171 mp_irqs[i].mp_dstapic 2155 mp_irqs[i].dstapic
2172 = mp_ioapics[apic].mp_apicid; 2156 = mp_ioapics[apic_id].apicid;
2173 2157
2174 /* 2158 /*
2175 * Read the right value from the MPC table and 2159 * Read the right value from the MPC table and
@@ -2177,20 +2161,20 @@ static void __init setup_ioapic_ids_from_mpc(void)
2177 */ 2161 */
2178 apic_printk(APIC_VERBOSE, KERN_INFO 2162 apic_printk(APIC_VERBOSE, KERN_INFO
2179 "...changing IO-APIC physical APIC ID to %d ...", 2163 "...changing IO-APIC physical APIC ID to %d ...",
2180 mp_ioapics[apic].mp_apicid); 2164 mp_ioapics[apic_id].apicid);
2181 2165
2182 reg_00.bits.ID = mp_ioapics[apic].mp_apicid; 2166 reg_00.bits.ID = mp_ioapics[apic_id].apicid;
2183 spin_lock_irqsave(&ioapic_lock, flags); 2167 spin_lock_irqsave(&ioapic_lock, flags);
2184 io_apic_write(apic, 0, reg_00.raw); 2168 io_apic_write(apic_id, 0, reg_00.raw);
2185 spin_unlock_irqrestore(&ioapic_lock, flags); 2169 spin_unlock_irqrestore(&ioapic_lock, flags);
2186 2170
2187 /* 2171 /*
2188 * Sanity check 2172 * Sanity check
2189 */ 2173 */
2190 spin_lock_irqsave(&ioapic_lock, flags); 2174 spin_lock_irqsave(&ioapic_lock, flags);
2191 reg_00.raw = io_apic_read(apic, 0); 2175 reg_00.raw = io_apic_read(apic_id, 0);
2192 spin_unlock_irqrestore(&ioapic_lock, flags); 2176 spin_unlock_irqrestore(&ioapic_lock, flags);
2193 if (reg_00.bits.ID != mp_ioapics[apic].mp_apicid) 2177 if (reg_00.bits.ID != mp_ioapics[apic_id].apicid)
2194 printk("could not set ID!\n"); 2178 printk("could not set ID!\n");
2195 else 2179 else
2196 apic_printk(APIC_VERBOSE, " ok.\n"); 2180 apic_printk(APIC_VERBOSE, " ok.\n");
@@ -2293,7 +2277,7 @@ static int ioapic_retrigger_irq(unsigned int irq)
2293 unsigned long flags; 2277 unsigned long flags;
2294 2278
2295 spin_lock_irqsave(&vector_lock, flags); 2279 spin_lock_irqsave(&vector_lock, flags);
2296 send_IPI_mask(cpumask_of(cpumask_first(cfg->domain)), cfg->vector); 2280 apic->send_IPI_mask(cpumask_of(cpumask_first(cfg->domain)), cfg->vector);
2297 spin_unlock_irqrestore(&vector_lock, flags); 2281 spin_unlock_irqrestore(&vector_lock, flags);
2298 2282
2299 return 1; 2283 return 1;
@@ -2301,7 +2285,7 @@ static int ioapic_retrigger_irq(unsigned int irq)
2301#else 2285#else
2302static int ioapic_retrigger_irq(unsigned int irq) 2286static int ioapic_retrigger_irq(unsigned int irq)
2303{ 2287{
2304 send_IPI_self(irq_cfg(irq)->vector); 2288 apic->send_IPI_self(irq_cfg(irq)->vector);
2305 2289
2306 return 1; 2290 return 1;
2307} 2291}
@@ -2365,7 +2349,7 @@ migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask)
2365 2349
2366 set_extra_move_desc(desc, mask); 2350 set_extra_move_desc(desc, mask);
2367 2351
2368 dest = cpu_mask_to_apicid_and(cfg->domain, mask); 2352 dest = apic->cpu_mask_to_apicid_and(cfg->domain, mask);
2369 2353
2370 modify_ioapic_rte = desc->status & IRQ_LEVEL; 2354 modify_ioapic_rte = desc->status & IRQ_LEVEL;
2371 if (modify_ioapic_rte) { 2355 if (modify_ioapic_rte) {
@@ -2385,7 +2369,7 @@ migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask)
2385 if (cfg->move_in_progress) 2369 if (cfg->move_in_progress)
2386 send_cleanup_vector(cfg); 2370 send_cleanup_vector(cfg);
2387 2371
2388 cpumask_copy(&desc->affinity, mask); 2372 cpumask_copy(desc->affinity, mask);
2389} 2373}
2390 2374
2391static int migrate_irq_remapped_level_desc(struct irq_desc *desc) 2375static int migrate_irq_remapped_level_desc(struct irq_desc *desc)
@@ -2407,11 +2391,11 @@ static int migrate_irq_remapped_level_desc(struct irq_desc *desc)
2407 } 2391 }
2408 2392
2409 /* everthing is clear. we have right of way */ 2393 /* everthing is clear. we have right of way */
2410 migrate_ioapic_irq_desc(desc, &desc->pending_mask); 2394 migrate_ioapic_irq_desc(desc, desc->pending_mask);
2411 2395
2412 ret = 0; 2396 ret = 0;
2413 desc->status &= ~IRQ_MOVE_PENDING; 2397 desc->status &= ~IRQ_MOVE_PENDING;
2414 cpumask_clear(&desc->pending_mask); 2398 cpumask_clear(desc->pending_mask);
2415 2399
2416unmask: 2400unmask:
2417 unmask_IO_APIC_irq_desc(desc); 2401 unmask_IO_APIC_irq_desc(desc);
@@ -2436,7 +2420,7 @@ static void ir_irq_migration(struct work_struct *work)
2436 continue; 2420 continue;
2437 } 2421 }
2438 2422
2439 desc->chip->set_affinity(irq, &desc->pending_mask); 2423 desc->chip->set_affinity(irq, desc->pending_mask);
2440 spin_unlock_irqrestore(&desc->lock, flags); 2424 spin_unlock_irqrestore(&desc->lock, flags);
2441 } 2425 }
2442 } 2426 }
@@ -2450,7 +2434,7 @@ static void set_ir_ioapic_affinity_irq_desc(struct irq_desc *desc,
2450{ 2434{
2451 if (desc->status & IRQ_LEVEL) { 2435 if (desc->status & IRQ_LEVEL) {
2452 desc->status |= IRQ_MOVE_PENDING; 2436 desc->status |= IRQ_MOVE_PENDING;
2453 cpumask_copy(&desc->pending_mask, mask); 2437 cpumask_copy(desc->pending_mask, mask);
2454 migrate_irq_remapped_level_desc(desc); 2438 migrate_irq_remapped_level_desc(desc);
2455 return; 2439 return;
2456 } 2440 }
@@ -2518,7 +2502,7 @@ static void irq_complete_move(struct irq_desc **descp)
2518 2502
2519 /* domain has not changed, but affinity did */ 2503 /* domain has not changed, but affinity did */
2520 me = smp_processor_id(); 2504 me = smp_processor_id();
2521 if (cpu_isset(me, desc->affinity)) { 2505 if (cpumask_test_cpu(me, desc->affinity)) {
2522 *descp = desc = move_irq_desc(desc, me); 2506 *descp = desc = move_irq_desc(desc, me);
2523 /* get the new one */ 2507 /* get the new one */
2524 cfg = desc->chip_data; 2508 cfg = desc->chip_data;
@@ -2530,14 +2514,15 @@ static void irq_complete_move(struct irq_desc **descp)
2530 2514
2531 vector = ~get_irq_regs()->orig_ax; 2515 vector = ~get_irq_regs()->orig_ax;
2532 me = smp_processor_id(); 2516 me = smp_processor_id();
2517
2518 if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain)) {
2533#ifdef CONFIG_NUMA_MIGRATE_IRQ_DESC 2519#ifdef CONFIG_NUMA_MIGRATE_IRQ_DESC
2534 *descp = desc = move_irq_desc(desc, me); 2520 *descp = desc = move_irq_desc(desc, me);
2535 /* get the new one */ 2521 /* get the new one */
2536 cfg = desc->chip_data; 2522 cfg = desc->chip_data;
2537#endif 2523#endif
2538
2539 if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain))
2540 send_cleanup_vector(cfg); 2524 send_cleanup_vector(cfg);
2525 }
2541} 2526}
2542#else 2527#else
2543static inline void irq_complete_move(struct irq_desc **descp) {} 2528static inline void irq_complete_move(struct irq_desc **descp) {}
@@ -2868,19 +2853,15 @@ static inline void __init check_timer(void)
2868 int cpu = boot_cpu_id; 2853 int cpu = boot_cpu_id;
2869 int apic1, pin1, apic2, pin2; 2854 int apic1, pin1, apic2, pin2;
2870 unsigned long flags; 2855 unsigned long flags;
2871 unsigned int ver;
2872 int no_pin1 = 0; 2856 int no_pin1 = 0;
2873 2857
2874 local_irq_save(flags); 2858 local_irq_save(flags);
2875 2859
2876 ver = apic_read(APIC_LVR);
2877 ver = GET_APIC_VERSION(ver);
2878
2879 /* 2860 /*
2880 * get/set the timer IRQ vector: 2861 * get/set the timer IRQ vector:
2881 */ 2862 */
2882 disable_8259A_irq(0); 2863 disable_8259A_irq(0);
2883 assign_irq_vector(0, cfg, TARGET_CPUS); 2864 assign_irq_vector(0, cfg, apic->target_cpus());
2884 2865
2885 /* 2866 /*
2886 * As IRQ0 is to be enabled in the 8259A, the virtual 2867 * As IRQ0 is to be enabled in the 8259A, the virtual
@@ -2894,7 +2875,13 @@ static inline void __init check_timer(void)
2894 apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); 2875 apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT);
2895 init_8259A(1); 2876 init_8259A(1);
2896#ifdef CONFIG_X86_32 2877#ifdef CONFIG_X86_32
2897 timer_ack = (nmi_watchdog == NMI_IO_APIC && !APIC_INTEGRATED(ver)); 2878 {
2879 unsigned int ver;
2880
2881 ver = apic_read(APIC_LVR);
2882 ver = GET_APIC_VERSION(ver);
2883 timer_ack = (nmi_watchdog == NMI_IO_APIC && !APIC_INTEGRATED(ver));
2884 }
2898#endif 2885#endif
2899 2886
2900 pin1 = find_isa_irq_pin(0, mp_INT); 2887 pin1 = find_isa_irq_pin(0, mp_INT);
@@ -2933,8 +2920,17 @@ static inline void __init check_timer(void)
2933 if (no_pin1) { 2920 if (no_pin1) {
2934 add_pin_to_irq_cpu(cfg, cpu, apic1, pin1); 2921 add_pin_to_irq_cpu(cfg, cpu, apic1, pin1);
2935 setup_timer_IRQ0_pin(apic1, pin1, cfg->vector); 2922 setup_timer_IRQ0_pin(apic1, pin1, cfg->vector);
2923 } else {
2924 /* for edge trigger, setup_IO_APIC_irq already
2925 * leave it unmasked.
2926 * so only need to unmask if it is level-trigger
2927 * do we really have level trigger timer?
2928 */
2929 int idx;
2930 idx = find_irq_entry(apic1, pin1, mp_INT);
2931 if (idx != -1 && irq_trigger(idx))
2932 unmask_IO_APIC_irq_desc(desc);
2936 } 2933 }
2937 unmask_IO_APIC_irq_desc(desc);
2938 if (timer_irq_works()) { 2934 if (timer_irq_works()) {
2939 if (nmi_watchdog == NMI_IO_APIC) { 2935 if (nmi_watchdog == NMI_IO_APIC) {
2940 setup_nmi(); 2936 setup_nmi();
@@ -2948,6 +2944,7 @@ static inline void __init check_timer(void)
2948 if (intr_remapping_enabled) 2944 if (intr_remapping_enabled)
2949 panic("timer doesn't work through Interrupt-remapped IO-APIC"); 2945 panic("timer doesn't work through Interrupt-remapped IO-APIC");
2950#endif 2946#endif
2947 local_irq_disable();
2951 clear_IO_APIC_pin(apic1, pin1); 2948 clear_IO_APIC_pin(apic1, pin1);
2952 if (!no_pin1) 2949 if (!no_pin1)
2953 apic_printk(APIC_QUIET, KERN_ERR "..MP-BIOS bug: " 2950 apic_printk(APIC_QUIET, KERN_ERR "..MP-BIOS bug: "
@@ -2962,7 +2959,6 @@ static inline void __init check_timer(void)
2962 */ 2959 */
2963 replace_pin_at_irq_cpu(cfg, cpu, apic1, pin1, apic2, pin2); 2960 replace_pin_at_irq_cpu(cfg, cpu, apic1, pin1, apic2, pin2);
2964 setup_timer_IRQ0_pin(apic2, pin2, cfg->vector); 2961 setup_timer_IRQ0_pin(apic2, pin2, cfg->vector);
2965 unmask_IO_APIC_irq_desc(desc);
2966 enable_8259A_irq(0); 2962 enable_8259A_irq(0);
2967 if (timer_irq_works()) { 2963 if (timer_irq_works()) {
2968 apic_printk(APIC_QUIET, KERN_INFO "....... works.\n"); 2964 apic_printk(APIC_QUIET, KERN_INFO "....... works.\n");
@@ -2977,6 +2973,7 @@ static inline void __init check_timer(void)
2977 /* 2973 /*
2978 * Cleanup, just in case ... 2974 * Cleanup, just in case ...
2979 */ 2975 */
2976 local_irq_disable();
2980 disable_8259A_irq(0); 2977 disable_8259A_irq(0);
2981 clear_IO_APIC_pin(apic2, pin2); 2978 clear_IO_APIC_pin(apic2, pin2);
2982 apic_printk(APIC_QUIET, KERN_INFO "....... failed.\n"); 2979 apic_printk(APIC_QUIET, KERN_INFO "....... failed.\n");
@@ -3002,6 +2999,7 @@ static inline void __init check_timer(void)
3002 apic_printk(APIC_QUIET, KERN_INFO "..... works.\n"); 2999 apic_printk(APIC_QUIET, KERN_INFO "..... works.\n");
3003 goto out; 3000 goto out;
3004 } 3001 }
3002 local_irq_disable();
3005 disable_8259A_irq(0); 3003 disable_8259A_irq(0);
3006 apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | cfg->vector); 3004 apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | cfg->vector);
3007 apic_printk(APIC_QUIET, KERN_INFO "..... failed.\n"); 3005 apic_printk(APIC_QUIET, KERN_INFO "..... failed.\n");
@@ -3019,6 +3017,7 @@ static inline void __init check_timer(void)
3019 apic_printk(APIC_QUIET, KERN_INFO "..... works.\n"); 3017 apic_printk(APIC_QUIET, KERN_INFO "..... works.\n");
3020 goto out; 3018 goto out;
3021 } 3019 }
3020 local_irq_disable();
3022 apic_printk(APIC_QUIET, KERN_INFO "..... failed :(.\n"); 3021 apic_printk(APIC_QUIET, KERN_INFO "..... failed :(.\n");
3023 panic("IO-APIC + timer doesn't work! Boot with apic=debug and send a " 3022 panic("IO-APIC + timer doesn't work! Boot with apic=debug and send a "
3024 "report. Then try booting with the 'noapic' option.\n"); 3023 "report. Then try booting with the 'noapic' option.\n");
@@ -3048,13 +3047,9 @@ out:
3048void __init setup_IO_APIC(void) 3047void __init setup_IO_APIC(void)
3049{ 3048{
3050 3049
3051#ifdef CONFIG_X86_32
3052 enable_IO_APIC();
3053#else
3054 /* 3050 /*
3055 * calling enable_IO_APIC() is moved to setup_local_APIC for BP 3051 * calling enable_IO_APIC() is moved to setup_local_APIC for BP
3056 */ 3052 */
3057#endif
3058 3053
3059 io_apic_irqs = ~PIC_IRQS; 3054 io_apic_irqs = ~PIC_IRQS;
3060 3055
@@ -3119,8 +3114,8 @@ static int ioapic_resume(struct sys_device *dev)
3119 3114
3120 spin_lock_irqsave(&ioapic_lock, flags); 3115 spin_lock_irqsave(&ioapic_lock, flags);
3121 reg_00.raw = io_apic_read(dev->id, 0); 3116 reg_00.raw = io_apic_read(dev->id, 0);
3122 if (reg_00.bits.ID != mp_ioapics[dev->id].mp_apicid) { 3117 if (reg_00.bits.ID != mp_ioapics[dev->id].apicid) {
3123 reg_00.bits.ID = mp_ioapics[dev->id].mp_apicid; 3118 reg_00.bits.ID = mp_ioapics[dev->id].apicid;
3124 io_apic_write(dev->id, 0, reg_00.raw); 3119 io_apic_write(dev->id, 0, reg_00.raw);
3125 } 3120 }
3126 spin_unlock_irqrestore(&ioapic_lock, flags); 3121 spin_unlock_irqrestore(&ioapic_lock, flags);
@@ -3170,6 +3165,7 @@ static int __init ioapic_init_sysfs(void)
3170 3165
3171device_initcall(ioapic_init_sysfs); 3166device_initcall(ioapic_init_sysfs);
3172 3167
3168static int nr_irqs_gsi = NR_IRQS_LEGACY;
3173/* 3169/*
3174 * Dynamic irq allocate and deallocation 3170 * Dynamic irq allocate and deallocation
3175 */ 3171 */
@@ -3184,11 +3180,11 @@ unsigned int create_irq_nr(unsigned int irq_want)
3184 struct irq_desc *desc_new = NULL; 3180 struct irq_desc *desc_new = NULL;
3185 3181
3186 irq = 0; 3182 irq = 0;
3187 spin_lock_irqsave(&vector_lock, flags); 3183 if (irq_want < nr_irqs_gsi)
3188 for (new = irq_want; new < NR_IRQS; new++) { 3184 irq_want = nr_irqs_gsi;
3189 if (platform_legacy_irq(new))
3190 continue;
3191 3185
3186 spin_lock_irqsave(&vector_lock, flags);
3187 for (new = irq_want; new < nr_irqs; new++) {
3192 desc_new = irq_to_desc_alloc_cpu(new, cpu); 3188 desc_new = irq_to_desc_alloc_cpu(new, cpu);
3193 if (!desc_new) { 3189 if (!desc_new) {
3194 printk(KERN_INFO "can not get irq_desc for %d\n", new); 3190 printk(KERN_INFO "can not get irq_desc for %d\n", new);
@@ -3198,7 +3194,7 @@ unsigned int create_irq_nr(unsigned int irq_want)
3198 3194
3199 if (cfg_new->vector != 0) 3195 if (cfg_new->vector != 0)
3200 continue; 3196 continue;
3201 if (__assign_irq_vector(new, cfg_new, TARGET_CPUS) == 0) 3197 if (__assign_irq_vector(new, cfg_new, apic->target_cpus()) == 0)
3202 irq = new; 3198 irq = new;
3203 break; 3199 break;
3204 } 3200 }
@@ -3213,7 +3209,6 @@ unsigned int create_irq_nr(unsigned int irq_want)
3213 return irq; 3209 return irq;
3214} 3210}
3215 3211
3216static int nr_irqs_gsi = NR_IRQS_LEGACY;
3217int create_irq(void) 3212int create_irq(void)
3218{ 3213{
3219 unsigned int irq_want; 3214 unsigned int irq_want;
@@ -3260,12 +3255,15 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3260 int err; 3255 int err;
3261 unsigned dest; 3256 unsigned dest;
3262 3257
3258 if (disable_apic)
3259 return -ENXIO;
3260
3263 cfg = irq_cfg(irq); 3261 cfg = irq_cfg(irq);
3264 err = assign_irq_vector(irq, cfg, TARGET_CPUS); 3262 err = assign_irq_vector(irq, cfg, apic->target_cpus());
3265 if (err) 3263 if (err)
3266 return err; 3264 return err;
3267 3265
3268 dest = cpu_mask_to_apicid_and(cfg->domain, TARGET_CPUS); 3266 dest = apic->cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus());
3269 3267
3270#ifdef CONFIG_INTR_REMAP 3268#ifdef CONFIG_INTR_REMAP
3271 if (irq_remapped(irq)) { 3269 if (irq_remapped(irq)) {
@@ -3279,9 +3277,9 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3279 memset (&irte, 0, sizeof(irte)); 3277 memset (&irte, 0, sizeof(irte));
3280 3278
3281 irte.present = 1; 3279 irte.present = 1;
3282 irte.dst_mode = INT_DEST_MODE; 3280 irte.dst_mode = apic->irq_dest_mode;
3283 irte.trigger_mode = 0; /* edge */ 3281 irte.trigger_mode = 0; /* edge */
3284 irte.dlvry_mode = INT_DELIVERY_MODE; 3282 irte.dlvry_mode = apic->irq_delivery_mode;
3285 irte.vector = cfg->vector; 3283 irte.vector = cfg->vector;
3286 irte.dest_id = IRTE_DEST(dest); 3284 irte.dest_id = IRTE_DEST(dest);
3287 3285
@@ -3299,10 +3297,10 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3299 msg->address_hi = MSI_ADDR_BASE_HI; 3297 msg->address_hi = MSI_ADDR_BASE_HI;
3300 msg->address_lo = 3298 msg->address_lo =
3301 MSI_ADDR_BASE_LO | 3299 MSI_ADDR_BASE_LO |
3302 ((INT_DEST_MODE == 0) ? 3300 ((apic->irq_dest_mode == 0) ?
3303 MSI_ADDR_DEST_MODE_PHYSICAL: 3301 MSI_ADDR_DEST_MODE_PHYSICAL:
3304 MSI_ADDR_DEST_MODE_LOGICAL) | 3302 MSI_ADDR_DEST_MODE_LOGICAL) |
3305 ((INT_DELIVERY_MODE != dest_LowestPrio) ? 3303 ((apic->irq_delivery_mode != dest_LowestPrio) ?
3306 MSI_ADDR_REDIRECTION_CPU: 3304 MSI_ADDR_REDIRECTION_CPU:
3307 MSI_ADDR_REDIRECTION_LOWPRI) | 3305 MSI_ADDR_REDIRECTION_LOWPRI) |
3308 MSI_ADDR_DEST_ID(dest); 3306 MSI_ADDR_DEST_ID(dest);
@@ -3310,7 +3308,7 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3310 msg->data = 3308 msg->data =
3311 MSI_DATA_TRIGGER_EDGE | 3309 MSI_DATA_TRIGGER_EDGE |
3312 MSI_DATA_LEVEL_ASSERT | 3310 MSI_DATA_LEVEL_ASSERT |
3313 ((INT_DELIVERY_MODE != dest_LowestPrio) ? 3311 ((apic->irq_delivery_mode != dest_LowestPrio) ?
3314 MSI_DATA_DELIVERY_FIXED: 3312 MSI_DATA_DELIVERY_FIXED:
3315 MSI_DATA_DELIVERY_LOWPRI) | 3313 MSI_DATA_DELIVERY_LOWPRI) |
3316 MSI_DATA_VECTOR(cfg->vector); 3314 MSI_DATA_VECTOR(cfg->vector);
@@ -3465,40 +3463,6 @@ static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
3465 return 0; 3463 return 0;
3466} 3464}
3467 3465
3468int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc)
3469{
3470 unsigned int irq;
3471 int ret;
3472 unsigned int irq_want;
3473
3474 irq_want = nr_irqs_gsi;
3475 irq = create_irq_nr(irq_want);
3476 if (irq == 0)
3477 return -1;
3478
3479#ifdef CONFIG_INTR_REMAP
3480 if (!intr_remapping_enabled)
3481 goto no_ir;
3482
3483 ret = msi_alloc_irte(dev, irq, 1);
3484 if (ret < 0)
3485 goto error;
3486no_ir:
3487#endif
3488 ret = setup_msi_irq(dev, msidesc, irq);
3489 if (ret < 0) {
3490 destroy_irq(irq);
3491 return ret;
3492 }
3493 return 0;
3494
3495#ifdef CONFIG_INTR_REMAP
3496error:
3497 destroy_irq(irq);
3498 return ret;
3499#endif
3500}
3501
3502int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) 3466int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
3503{ 3467{
3504 unsigned int irq; 3468 unsigned int irq;
@@ -3515,9 +3479,9 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
3515 sub_handle = 0; 3479 sub_handle = 0;
3516 list_for_each_entry(msidesc, &dev->msi_list, list) { 3480 list_for_each_entry(msidesc, &dev->msi_list, list) {
3517 irq = create_irq_nr(irq_want); 3481 irq = create_irq_nr(irq_want);
3518 irq_want++;
3519 if (irq == 0) 3482 if (irq == 0)
3520 return -1; 3483 return -1;
3484 irq_want = irq + 1;
3521#ifdef CONFIG_INTR_REMAP 3485#ifdef CONFIG_INTR_REMAP
3522 if (!intr_remapping_enabled) 3486 if (!intr_remapping_enabled)
3523 goto no_ir; 3487 goto no_ir;
@@ -3728,13 +3692,17 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)
3728 struct irq_cfg *cfg; 3692 struct irq_cfg *cfg;
3729 int err; 3693 int err;
3730 3694
3695 if (disable_apic)
3696 return -ENXIO;
3697
3731 cfg = irq_cfg(irq); 3698 cfg = irq_cfg(irq);
3732 err = assign_irq_vector(irq, cfg, TARGET_CPUS); 3699 err = assign_irq_vector(irq, cfg, apic->target_cpus());
3733 if (!err) { 3700 if (!err) {
3734 struct ht_irq_msg msg; 3701 struct ht_irq_msg msg;
3735 unsigned dest; 3702 unsigned dest;
3736 3703
3737 dest = cpu_mask_to_apicid_and(cfg->domain, TARGET_CPUS); 3704 dest = apic->cpu_mask_to_apicid_and(cfg->domain,
3705 apic->target_cpus());
3738 3706
3739 msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest); 3707 msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest);
3740 3708
@@ -3742,11 +3710,11 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)
3742 HT_IRQ_LOW_BASE | 3710 HT_IRQ_LOW_BASE |
3743 HT_IRQ_LOW_DEST_ID(dest) | 3711 HT_IRQ_LOW_DEST_ID(dest) |
3744 HT_IRQ_LOW_VECTOR(cfg->vector) | 3712 HT_IRQ_LOW_VECTOR(cfg->vector) |
3745 ((INT_DEST_MODE == 0) ? 3713 ((apic->irq_dest_mode == 0) ?
3746 HT_IRQ_LOW_DM_PHYSICAL : 3714 HT_IRQ_LOW_DM_PHYSICAL :
3747 HT_IRQ_LOW_DM_LOGICAL) | 3715 HT_IRQ_LOW_DM_LOGICAL) |
3748 HT_IRQ_LOW_RQEOI_EDGE | 3716 HT_IRQ_LOW_RQEOI_EDGE |
3749 ((INT_DELIVERY_MODE != dest_LowestPrio) ? 3717 ((apic->irq_delivery_mode != dest_LowestPrio) ?
3750 HT_IRQ_LOW_MT_FIXED : 3718 HT_IRQ_LOW_MT_FIXED :
3751 HT_IRQ_LOW_MT_ARBITRATED) | 3719 HT_IRQ_LOW_MT_ARBITRATED) |
3752 HT_IRQ_LOW_IRQ_MASKED; 3720 HT_IRQ_LOW_IRQ_MASKED;
@@ -3762,7 +3730,7 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)
3762} 3730}
3763#endif /* CONFIG_HT_IRQ */ 3731#endif /* CONFIG_HT_IRQ */
3764 3732
3765#ifdef CONFIG_X86_64 3733#ifdef CONFIG_X86_UV
3766/* 3734/*
3767 * Re-target the irq to the specified CPU and enable the specified MMR located 3735 * Re-target the irq to the specified CPU and enable the specified MMR located
3768 * on the specified blade to allow the sending of MSIs to the specified CPU. 3736 * on the specified blade to allow the sending of MSIs to the specified CPU.
@@ -3794,12 +3762,12 @@ int arch_enable_uv_irq(char *irq_name, unsigned int irq, int cpu, int mmr_blade,
3794 BUG_ON(sizeof(struct uv_IO_APIC_route_entry) != sizeof(unsigned long)); 3762 BUG_ON(sizeof(struct uv_IO_APIC_route_entry) != sizeof(unsigned long));
3795 3763
3796 entry->vector = cfg->vector; 3764 entry->vector = cfg->vector;
3797 entry->delivery_mode = INT_DELIVERY_MODE; 3765 entry->delivery_mode = apic->irq_delivery_mode;
3798 entry->dest_mode = INT_DEST_MODE; 3766 entry->dest_mode = apic->irq_dest_mode;
3799 entry->polarity = 0; 3767 entry->polarity = 0;
3800 entry->trigger = 0; 3768 entry->trigger = 0;
3801 entry->mask = 0; 3769 entry->mask = 0;
3802 entry->dest = cpu_mask_to_apicid(eligible_cpu); 3770 entry->dest = apic->cpu_mask_to_apicid(eligible_cpu);
3803 3771
3804 mmr_pnode = uv_blade_to_pnode(mmr_blade); 3772 mmr_pnode = uv_blade_to_pnode(mmr_blade);
3805 uv_write_global_mmr64(mmr_pnode, mmr_offset, mmr_value); 3773 uv_write_global_mmr64(mmr_pnode, mmr_offset, mmr_value);
@@ -3842,16 +3810,48 @@ int __init io_apic_get_redir_entries (int ioapic)
3842 3810
3843void __init probe_nr_irqs_gsi(void) 3811void __init probe_nr_irqs_gsi(void)
3844{ 3812{
3845 int idx;
3846 int nr = 0; 3813 int nr = 0;
3847 3814
3848 for (idx = 0; idx < nr_ioapics; idx++) 3815 nr = acpi_probe_gsi();
3849 nr += io_apic_get_redir_entries(idx) + 1; 3816 if (nr > nr_irqs_gsi) {
3850
3851 if (nr > nr_irqs_gsi)
3852 nr_irqs_gsi = nr; 3817 nr_irqs_gsi = nr;
3818 } else {
3819 /* for acpi=off or acpi is not compiled in */
3820 int idx;
3821
3822 nr = 0;
3823 for (idx = 0; idx < nr_ioapics; idx++)
3824 nr += io_apic_get_redir_entries(idx) + 1;
3825
3826 if (nr > nr_irqs_gsi)
3827 nr_irqs_gsi = nr;
3828 }
3829
3830 printk(KERN_DEBUG "nr_irqs_gsi: %d\n", nr_irqs_gsi);
3853} 3831}
3854 3832
3833#ifdef CONFIG_SPARSE_IRQ
3834int __init arch_probe_nr_irqs(void)
3835{
3836 int nr;
3837
3838 if (nr_irqs > (NR_VECTORS * nr_cpu_ids))
3839 nr_irqs = NR_VECTORS * nr_cpu_ids;
3840
3841 nr = nr_irqs_gsi + 8 * nr_cpu_ids;
3842#if defined(CONFIG_PCI_MSI) || defined(CONFIG_HT_IRQ)
3843 /*
3844 * for MSI and HT dyn irq
3845 */
3846 nr += nr_irqs_gsi * 16;
3847#endif
3848 if (nr < nr_irqs)
3849 nr_irqs = nr;
3850
3851 return 0;
3852}
3853#endif
3854
3855/* -------------------------------------------------------------------------- 3855/* --------------------------------------------------------------------------
3856 ACPI-based IOAPIC Configuration 3856 ACPI-based IOAPIC Configuration
3857 -------------------------------------------------------------------------- */ 3857 -------------------------------------------------------------------------- */
@@ -3877,7 +3877,7 @@ int __init io_apic_get_unique_id(int ioapic, int apic_id)
3877 */ 3877 */
3878 3878
3879 if (physids_empty(apic_id_map)) 3879 if (physids_empty(apic_id_map))
3880 apic_id_map = ioapic_phys_id_map(phys_cpu_present_map); 3880 apic_id_map = apic->ioapic_phys_id_map(phys_cpu_present_map);
3881 3881
3882 spin_lock_irqsave(&ioapic_lock, flags); 3882 spin_lock_irqsave(&ioapic_lock, flags);
3883 reg_00.raw = io_apic_read(ioapic, 0); 3883 reg_00.raw = io_apic_read(ioapic, 0);
@@ -3893,10 +3893,10 @@ int __init io_apic_get_unique_id(int ioapic, int apic_id)
3893 * Every APIC in a system must have a unique ID or we get lots of nice 3893 * Every APIC in a system must have a unique ID or we get lots of nice
3894 * 'stuck on smp_invalidate_needed IPI wait' messages. 3894 * 'stuck on smp_invalidate_needed IPI wait' messages.
3895 */ 3895 */
3896 if (check_apicid_used(apic_id_map, apic_id)) { 3896 if (apic->check_apicid_used(apic_id_map, apic_id)) {
3897 3897
3898 for (i = 0; i < get_physical_broadcast(); i++) { 3898 for (i = 0; i < get_physical_broadcast(); i++) {
3899 if (!check_apicid_used(apic_id_map, i)) 3899 if (!apic->check_apicid_used(apic_id_map, i))
3900 break; 3900 break;
3901 } 3901 }
3902 3902
@@ -3909,7 +3909,7 @@ int __init io_apic_get_unique_id(int ioapic, int apic_id)
3909 apic_id = i; 3909 apic_id = i;
3910 } 3910 }
3911 3911
3912 tmp = apicid_to_cpu_present(apic_id); 3912 tmp = apic->apicid_to_cpu_present(apic_id);
3913 physids_or(apic_id_map, apic_id_map, tmp); 3913 physids_or(apic_id_map, apic_id_map, tmp);
3914 3914
3915 if (reg_00.bits.ID != apic_id) { 3915 if (reg_00.bits.ID != apic_id) {
@@ -3986,8 +3986,8 @@ int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity)
3986 return -1; 3986 return -1;
3987 3987
3988 for (i = 0; i < mp_irq_entries; i++) 3988 for (i = 0; i < mp_irq_entries; i++)
3989 if (mp_irqs[i].mp_irqtype == mp_INT && 3989 if (mp_irqs[i].irqtype == mp_INT &&
3990 mp_irqs[i].mp_srcbusirq == bus_irq) 3990 mp_irqs[i].srcbusirq == bus_irq)
3991 break; 3991 break;
3992 if (i >= mp_irq_entries) 3992 if (i >= mp_irq_entries)
3993 return -1; 3993 return -1;
@@ -4002,7 +4002,7 @@ int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity)
4002/* 4002/*
4003 * This function currently is only a helper for the i386 smp boot process where 4003 * This function currently is only a helper for the i386 smp boot process where
4004 * we need to reprogram the ioredtbls to cater for the cpus which have come online 4004 * we need to reprogram the ioredtbls to cater for the cpus which have come online
4005 * so mask in all cases should simply be TARGET_CPUS 4005 * so mask in all cases should simply be apic->target_cpus()
4006 */ 4006 */
4007#ifdef CONFIG_SMP 4007#ifdef CONFIG_SMP
4008void __init setup_ioapic_dest(void) 4008void __init setup_ioapic_dest(void)
@@ -4041,9 +4041,9 @@ void __init setup_ioapic_dest(void)
4041 */ 4041 */
4042 if (desc->status & 4042 if (desc->status &
4043 (IRQ_NO_BALANCING | IRQ_AFFINITY_SET)) 4043 (IRQ_NO_BALANCING | IRQ_AFFINITY_SET))
4044 mask = &desc->affinity; 4044 mask = desc->affinity;
4045 else 4045 else
4046 mask = TARGET_CPUS; 4046 mask = apic->target_cpus();
4047 4047
4048#ifdef CONFIG_INTR_REMAP 4048#ifdef CONFIG_INTR_REMAP
4049 if (intr_remapping_enabled) 4049 if (intr_remapping_enabled)
@@ -4102,7 +4102,7 @@ void __init ioapic_init_mappings(void)
4102 ioapic_res = ioapic_setup_resources(); 4102 ioapic_res = ioapic_setup_resources();
4103 for (i = 0; i < nr_ioapics; i++) { 4103 for (i = 0; i < nr_ioapics; i++) {
4104 if (smp_found_config) { 4104 if (smp_found_config) {
4105 ioapic_phys = mp_ioapics[i].mp_apicaddr; 4105 ioapic_phys = mp_ioapics[i].apicaddr;
4106#ifdef CONFIG_X86_32 4106#ifdef CONFIG_X86_32
4107 if (!ioapic_phys) { 4107 if (!ioapic_phys) {
4108 printk(KERN_ERR 4108 printk(KERN_ERR
diff --git a/arch/x86/kernel/apic/ipi.c b/arch/x86/kernel/apic/ipi.c
new file mode 100644
index 000000000000..dbf5445727a9
--- /dev/null
+++ b/arch/x86/kernel/apic/ipi.c
@@ -0,0 +1,164 @@
1#include <linux/cpumask.h>
2#include <linux/interrupt.h>
3#include <linux/init.h>
4
5#include <linux/mm.h>
6#include <linux/delay.h>
7#include <linux/spinlock.h>
8#include <linux/kernel_stat.h>
9#include <linux/mc146818rtc.h>
10#include <linux/cache.h>
11#include <linux/cpu.h>
12#include <linux/module.h>
13
14#include <asm/smp.h>
15#include <asm/mtrr.h>
16#include <asm/tlbflush.h>
17#include <asm/mmu_context.h>
18#include <asm/apic.h>
19#include <asm/proto.h>
20#include <asm/ipi.h>
21
22void default_send_IPI_mask_sequence_phys(const struct cpumask *mask, int vector)
23{
24 unsigned long query_cpu;
25 unsigned long flags;
26
27 /*
28 * Hack. The clustered APIC addressing mode doesn't allow us to send
29 * to an arbitrary mask, so I do a unicast to each CPU instead.
30 * - mbligh
31 */
32 local_irq_save(flags);
33 for_each_cpu(query_cpu, mask) {
34 __default_send_IPI_dest_field(per_cpu(x86_cpu_to_apicid,
35 query_cpu), vector, APIC_DEST_PHYSICAL);
36 }
37 local_irq_restore(flags);
38}
39
40void default_send_IPI_mask_allbutself_phys(const struct cpumask *mask,
41 int vector)
42{
43 unsigned int this_cpu = smp_processor_id();
44 unsigned int query_cpu;
45 unsigned long flags;
46
47 /* See Hack comment above */
48
49 local_irq_save(flags);
50 for_each_cpu(query_cpu, mask) {
51 if (query_cpu == this_cpu)
52 continue;
53 __default_send_IPI_dest_field(per_cpu(x86_cpu_to_apicid,
54 query_cpu), vector, APIC_DEST_PHYSICAL);
55 }
56 local_irq_restore(flags);
57}
58
59void default_send_IPI_mask_sequence_logical(const struct cpumask *mask,
60 int vector)
61{
62 unsigned long flags;
63 unsigned int query_cpu;
64
65 /*
66 * Hack. The clustered APIC addressing mode doesn't allow us to send
67 * to an arbitrary mask, so I do a unicasts to each CPU instead. This
68 * should be modified to do 1 message per cluster ID - mbligh
69 */
70
71 local_irq_save(flags);
72 for_each_cpu(query_cpu, mask)
73 __default_send_IPI_dest_field(
74 apic->cpu_to_logical_apicid(query_cpu), vector,
75 apic->dest_logical);
76 local_irq_restore(flags);
77}
78
79void default_send_IPI_mask_allbutself_logical(const struct cpumask *mask,
80 int vector)
81{
82 unsigned long flags;
83 unsigned int query_cpu;
84 unsigned int this_cpu = smp_processor_id();
85
86 /* See Hack comment above */
87
88 local_irq_save(flags);
89 for_each_cpu(query_cpu, mask) {
90 if (query_cpu == this_cpu)
91 continue;
92 __default_send_IPI_dest_field(
93 apic->cpu_to_logical_apicid(query_cpu), vector,
94 apic->dest_logical);
95 }
96 local_irq_restore(flags);
97}
98
99#ifdef CONFIG_X86_32
100
101/*
102 * This is only used on smaller machines.
103 */
104void default_send_IPI_mask_logical(const struct cpumask *cpumask, int vector)
105{
106 unsigned long mask = cpumask_bits(cpumask)[0];
107 unsigned long flags;
108
109 local_irq_save(flags);
110 WARN_ON(mask & ~cpumask_bits(cpu_online_mask)[0]);
111 __default_send_IPI_dest_field(mask, vector, apic->dest_logical);
112 local_irq_restore(flags);
113}
114
115void default_send_IPI_allbutself(int vector)
116{
117 /*
118 * if there are no other CPUs in the system then we get an APIC send
119 * error if we try to broadcast, thus avoid sending IPIs in this case.
120 */
121 if (!(num_online_cpus() > 1))
122 return;
123
124 __default_local_send_IPI_allbutself(vector);
125}
126
127void default_send_IPI_all(int vector)
128{
129 __default_local_send_IPI_all(vector);
130}
131
132void default_send_IPI_self(int vector)
133{
134 __default_send_IPI_shortcut(APIC_DEST_SELF, vector, apic->dest_logical);
135}
136
137/* must come after the send_IPI functions above for inlining */
138static int convert_apicid_to_cpu(int apic_id)
139{
140 int i;
141
142 for_each_possible_cpu(i) {
143 if (per_cpu(x86_cpu_to_apicid, i) == apic_id)
144 return i;
145 }
146 return -1;
147}
148
149int safe_smp_processor_id(void)
150{
151 int apicid, cpuid;
152
153 if (!boot_cpu_has(X86_FEATURE_APIC))
154 return 0;
155
156 apicid = hard_smp_processor_id();
157 if (apicid == BAD_APICID)
158 return 0;
159
160 cpuid = convert_apicid_to_cpu(apicid);
161
162 return cpuid >= 0 ? cpuid : 0;
163}
164#endif
diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/apic/nmi.c
index 45a09ccdc214..bdfad80c3cf1 100644
--- a/arch/x86/kernel/nmi.c
+++ b/arch/x86/kernel/apic/nmi.c
@@ -26,7 +26,6 @@
26#include <linux/kernel_stat.h> 26#include <linux/kernel_stat.h>
27#include <linux/kdebug.h> 27#include <linux/kdebug.h>
28#include <linux/smp.h> 28#include <linux/smp.h>
29#include <linux/nmi.h>
30 29
31#include <asm/i8259.h> 30#include <asm/i8259.h>
32#include <asm/io_apic.h> 31#include <asm/io_apic.h>
@@ -35,7 +34,7 @@
35 34
36#include <asm/mce.h> 35#include <asm/mce.h>
37 36
38#include <mach_traps.h> 37#include <asm/mach_traps.h>
39 38
40int unknown_nmi_panic; 39int unknown_nmi_panic;
41int nmi_watchdog_enabled; 40int nmi_watchdog_enabled;
@@ -62,11 +61,7 @@ static int endflag __initdata;
62 61
63static inline unsigned int get_nmi_count(int cpu) 62static inline unsigned int get_nmi_count(int cpu)
64{ 63{
65#ifdef CONFIG_X86_64 64 return per_cpu(irq_stat, cpu).__nmi_count;
66 return cpu_pda(cpu)->__nmi_count;
67#else
68 return nmi_count(cpu);
69#endif
70} 65}
71 66
72static inline int mce_in_progress(void) 67static inline int mce_in_progress(void)
@@ -83,12 +78,8 @@ static inline int mce_in_progress(void)
83 */ 78 */
84static inline unsigned int get_timer_irqs(int cpu) 79static inline unsigned int get_timer_irqs(int cpu)
85{ 80{
86#ifdef CONFIG_X86_64
87 return read_pda(apic_timer_irqs) + read_pda(irq0_irqs);
88#else
89 return per_cpu(irq_stat, cpu).apic_timer_irqs + 81 return per_cpu(irq_stat, cpu).apic_timer_irqs +
90 per_cpu(irq_stat, cpu).irq0_irqs; 82 per_cpu(irq_stat, cpu).irq0_irqs;
91#endif
92} 83}
93 84
94#ifdef CONFIG_SMP 85#ifdef CONFIG_SMP
diff --git a/arch/x86/kernel/apic/numaq_32.c b/arch/x86/kernel/apic/numaq_32.c
new file mode 100644
index 000000000000..ba2fc6465534
--- /dev/null
+++ b/arch/x86/kernel/apic/numaq_32.c
@@ -0,0 +1,557 @@
1/*
2 * Written by: Patricia Gaughen, IBM Corporation
3 *
4 * Copyright (C) 2002, IBM Corp.
5 * Copyright (C) 2009, Red Hat, Inc., Ingo Molnar
6 *
7 * All rights reserved.
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, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
17 * NON INFRINGEMENT. See the GNU General Public License for more
18 * details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 *
24 * Send feedback to <gone@us.ibm.com>
25 */
26#include <linux/nodemask.h>
27#include <linux/topology.h>
28#include <linux/bootmem.h>
29#include <linux/threads.h>
30#include <linux/cpumask.h>
31#include <linux/kernel.h>
32#include <linux/mmzone.h>
33#include <linux/module.h>
34#include <linux/string.h>
35#include <linux/init.h>
36#include <linux/numa.h>
37#include <linux/smp.h>
38#include <linux/io.h>
39#include <linux/mm.h>
40
41#include <asm/processor.h>
42#include <asm/fixmap.h>
43#include <asm/mpspec.h>
44#include <asm/numaq.h>
45#include <asm/setup.h>
46#include <asm/apic.h>
47#include <asm/e820.h>
48#include <asm/ipi.h>
49
50#define MB_TO_PAGES(addr) ((addr) << (20 - PAGE_SHIFT))
51
52int found_numaq;
53
54/*
55 * Have to match translation table entries to main table entries by counter
56 * hence the mpc_record variable .... can't see a less disgusting way of
57 * doing this ....
58 */
59struct mpc_trans {
60 unsigned char mpc_type;
61 unsigned char trans_len;
62 unsigned char trans_type;
63 unsigned char trans_quad;
64 unsigned char trans_global;
65 unsigned char trans_local;
66 unsigned short trans_reserved;
67};
68
69/* x86_quirks member */
70static int mpc_record;
71
72static struct mpc_trans *translation_table[MAX_MPC_ENTRY];
73
74int mp_bus_id_to_node[MAX_MP_BUSSES];
75int mp_bus_id_to_local[MAX_MP_BUSSES];
76int quad_local_to_mp_bus_id[NR_CPUS/4][4];
77
78
79static inline void numaq_register_node(int node, struct sys_cfg_data *scd)
80{
81 struct eachquadmem *eq = scd->eq + node;
82
83 node_set_online(node);
84
85 /* Convert to pages */
86 node_start_pfn[node] =
87 MB_TO_PAGES(eq->hi_shrd_mem_start - eq->priv_mem_size);
88
89 node_end_pfn[node] =
90 MB_TO_PAGES(eq->hi_shrd_mem_start + eq->hi_shrd_mem_size);
91
92 e820_register_active_regions(node, node_start_pfn[node],
93 node_end_pfn[node]);
94
95 memory_present(node, node_start_pfn[node], node_end_pfn[node]);
96
97 node_remap_size[node] = node_memmap_size_bytes(node,
98 node_start_pfn[node],
99 node_end_pfn[node]);
100}
101
102/*
103 * Function: smp_dump_qct()
104 *
105 * Description: gets memory layout from the quad config table. This
106 * function also updates node_online_map with the nodes (quads) present.
107 */
108static void __init smp_dump_qct(void)
109{
110 struct sys_cfg_data *scd;
111 int node;
112
113 scd = (void *)__va(SYS_CFG_DATA_PRIV_ADDR);
114
115 nodes_clear(node_online_map);
116 for_each_node(node) {
117 if (scd->quads_present31_0 & (1 << node))
118 numaq_register_node(node, scd);
119 }
120}
121
122void __cpuinit numaq_tsc_disable(void)
123{
124 if (!found_numaq)
125 return;
126
127 if (num_online_nodes() > 1) {
128 printk(KERN_DEBUG "NUMAQ: disabling TSC\n");
129 setup_clear_cpu_cap(X86_FEATURE_TSC);
130 }
131}
132
133static int __init numaq_pre_time_init(void)
134{
135 numaq_tsc_disable();
136 return 0;
137}
138
139static inline int generate_logical_apicid(int quad, int phys_apicid)
140{
141 return (quad << 4) + (phys_apicid ? phys_apicid << 1 : 1);
142}
143
144/* x86_quirks member */
145static int mpc_apic_id(struct mpc_cpu *m)
146{
147 int quad = translation_table[mpc_record]->trans_quad;
148 int logical_apicid = generate_logical_apicid(quad, m->apicid);
149
150 printk(KERN_DEBUG
151 "Processor #%d %u:%u APIC version %d (quad %d, apic %d)\n",
152 m->apicid, (m->cpufeature & CPU_FAMILY_MASK) >> 8,
153 (m->cpufeature & CPU_MODEL_MASK) >> 4,
154 m->apicver, quad, logical_apicid);
155
156 return logical_apicid;
157}
158
159/* x86_quirks member */
160static void mpc_oem_bus_info(struct mpc_bus *m, char *name)
161{
162 int quad = translation_table[mpc_record]->trans_quad;
163 int local = translation_table[mpc_record]->trans_local;
164
165 mp_bus_id_to_node[m->busid] = quad;
166 mp_bus_id_to_local[m->busid] = local;
167
168 printk(KERN_INFO "Bus #%d is %s (node %d)\n", m->busid, name, quad);
169}
170
171/* x86_quirks member */
172static void mpc_oem_pci_bus(struct mpc_bus *m)
173{
174 int quad = translation_table[mpc_record]->trans_quad;
175 int local = translation_table[mpc_record]->trans_local;
176
177 quad_local_to_mp_bus_id[quad][local] = m->busid;
178}
179
180static void __init MP_translation_info(struct mpc_trans *m)
181{
182 printk(KERN_INFO
183 "Translation: record %d, type %d, quad %d, global %d, local %d\n",
184 mpc_record, m->trans_type, m->trans_quad, m->trans_global,
185 m->trans_local);
186
187 if (mpc_record >= MAX_MPC_ENTRY)
188 printk(KERN_ERR "MAX_MPC_ENTRY exceeded!\n");
189 else
190 translation_table[mpc_record] = m; /* stash this for later */
191
192 if (m->trans_quad < MAX_NUMNODES && !node_online(m->trans_quad))
193 node_set_online(m->trans_quad);
194}
195
196static int __init mpf_checksum(unsigned char *mp, int len)
197{
198 int sum = 0;
199
200 while (len--)
201 sum += *mp++;
202
203 return sum & 0xFF;
204}
205
206/*
207 * Read/parse the MPC oem tables
208 */
209static void __init
210 smp_read_mpc_oem(struct mpc_oemtable *oemtable, unsigned short oemsize)
211{
212 int count = sizeof(*oemtable); /* the header size */
213 unsigned char *oemptr = ((unsigned char *)oemtable) + count;
214
215 mpc_record = 0;
216 printk(KERN_INFO
217 "Found an OEM MPC table at %8p - parsing it ... \n", oemtable);
218
219 if (memcmp(oemtable->signature, MPC_OEM_SIGNATURE, 4)) {
220 printk(KERN_WARNING
221 "SMP mpc oemtable: bad signature [%c%c%c%c]!\n",
222 oemtable->signature[0], oemtable->signature[1],
223 oemtable->signature[2], oemtable->signature[3]);
224 return;
225 }
226
227 if (mpf_checksum((unsigned char *)oemtable, oemtable->length)) {
228 printk(KERN_WARNING "SMP oem mptable: checksum error!\n");
229 return;
230 }
231
232 while (count < oemtable->length) {
233 switch (*oemptr) {
234 case MP_TRANSLATION:
235 {
236 struct mpc_trans *m = (void *)oemptr;
237
238 MP_translation_info(m);
239 oemptr += sizeof(*m);
240 count += sizeof(*m);
241 ++mpc_record;
242 break;
243 }
244 default:
245 printk(KERN_WARNING
246 "Unrecognised OEM table entry type! - %d\n",
247 (int)*oemptr);
248 return;
249 }
250 }
251}
252
253static int __init numaq_setup_ioapic_ids(void)
254{
255 /* so can skip it */
256 return 1;
257}
258
259static struct x86_quirks numaq_x86_quirks __initdata = {
260 .arch_pre_time_init = numaq_pre_time_init,
261 .arch_time_init = NULL,
262 .arch_pre_intr_init = NULL,
263 .arch_memory_setup = NULL,
264 .arch_intr_init = NULL,
265 .arch_trap_init = NULL,
266 .mach_get_smp_config = NULL,
267 .mach_find_smp_config = NULL,
268 .mpc_record = &mpc_record,
269 .mpc_apic_id = mpc_apic_id,
270 .mpc_oem_bus_info = mpc_oem_bus_info,
271 .mpc_oem_pci_bus = mpc_oem_pci_bus,
272 .smp_read_mpc_oem = smp_read_mpc_oem,
273 .setup_ioapic_ids = numaq_setup_ioapic_ids,
274};
275
276static __init void early_check_numaq(void)
277{
278 /*
279 * Find possible boot-time SMP configuration:
280 */
281 early_find_smp_config();
282
283 /*
284 * get boot-time SMP configuration:
285 */
286 if (smp_found_config)
287 early_get_smp_config();
288
289 if (found_numaq)
290 x86_quirks = &numaq_x86_quirks;
291}
292
293int __init get_memcfg_numaq(void)
294{
295 early_check_numaq();
296 if (!found_numaq)
297 return 0;
298 smp_dump_qct();
299
300 return 1;
301}
302
303#define NUMAQ_APIC_DFR_VALUE (APIC_DFR_CLUSTER)
304
305static inline unsigned int numaq_get_apic_id(unsigned long x)
306{
307 return (x >> 24) & 0x0F;
308}
309
310static inline void numaq_send_IPI_mask(const struct cpumask *mask, int vector)
311{
312 default_send_IPI_mask_sequence_logical(mask, vector);
313}
314
315static inline void numaq_send_IPI_allbutself(int vector)
316{
317 default_send_IPI_mask_allbutself_logical(cpu_online_mask, vector);
318}
319
320static inline void numaq_send_IPI_all(int vector)
321{
322 numaq_send_IPI_mask(cpu_online_mask, vector);
323}
324
325#define NUMAQ_TRAMPOLINE_PHYS_LOW (0x8)
326#define NUMAQ_TRAMPOLINE_PHYS_HIGH (0xa)
327
328/*
329 * Because we use NMIs rather than the INIT-STARTUP sequence to
330 * bootstrap the CPUs, the APIC may be in a weird state. Kick it:
331 */
332static inline void numaq_smp_callin_clear_local_apic(void)
333{
334 clear_local_APIC();
335}
336
337static inline const cpumask_t *numaq_target_cpus(void)
338{
339 return &CPU_MASK_ALL;
340}
341
342static inline unsigned long
343numaq_check_apicid_used(physid_mask_t bitmap, int apicid)
344{
345 return physid_isset(apicid, bitmap);
346}
347
348static inline unsigned long numaq_check_apicid_present(int bit)
349{
350 return physid_isset(bit, phys_cpu_present_map);
351}
352
353static inline int numaq_apic_id_registered(void)
354{
355 return 1;
356}
357
358static inline void numaq_init_apic_ldr(void)
359{
360 /* Already done in NUMA-Q firmware */
361}
362
363static inline void numaq_setup_apic_routing(void)
364{
365 printk(KERN_INFO
366 "Enabling APIC mode: NUMA-Q. Using %d I/O APICs\n",
367 nr_ioapics);
368}
369
370/*
371 * Skip adding the timer int on secondary nodes, which causes
372 * a small but painful rift in the time-space continuum.
373 */
374static inline int numaq_multi_timer_check(int apic, int irq)
375{
376 return apic != 0 && irq == 0;
377}
378
379static inline physid_mask_t numaq_ioapic_phys_id_map(physid_mask_t phys_map)
380{
381 /* We don't have a good way to do this yet - hack */
382 return physids_promote(0xFUL);
383}
384
385static inline int numaq_cpu_to_logical_apicid(int cpu)
386{
387 if (cpu >= nr_cpu_ids)
388 return BAD_APICID;
389 return cpu_2_logical_apicid[cpu];
390}
391
392/*
393 * Supporting over 60 cpus on NUMA-Q requires a locality-dependent
394 * cpu to APIC ID relation to properly interact with the intelligent
395 * mode of the cluster controller.
396 */
397static inline int numaq_cpu_present_to_apicid(int mps_cpu)
398{
399 if (mps_cpu < 60)
400 return ((mps_cpu >> 2) << 4) | (1 << (mps_cpu & 0x3));
401 else
402 return BAD_APICID;
403}
404
405static inline int numaq_apicid_to_node(int logical_apicid)
406{
407 return logical_apicid >> 4;
408}
409
410static inline physid_mask_t numaq_apicid_to_cpu_present(int logical_apicid)
411{
412 int node = numaq_apicid_to_node(logical_apicid);
413 int cpu = __ffs(logical_apicid & 0xf);
414
415 return physid_mask_of_physid(cpu + 4*node);
416}
417
418/* Where the IO area was mapped on multiquad, always 0 otherwise */
419void *xquad_portio;
420
421static inline int numaq_check_phys_apicid_present(int boot_cpu_physical_apicid)
422{
423 return 1;
424}
425
426/*
427 * We use physical apicids here, not logical, so just return the default
428 * physical broadcast to stop people from breaking us
429 */
430static inline unsigned int numaq_cpu_mask_to_apicid(const cpumask_t *cpumask)
431{
432 return 0x0F;
433}
434
435static inline unsigned int
436numaq_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
437 const struct cpumask *andmask)
438{
439 return 0x0F;
440}
441
442/* No NUMA-Q box has a HT CPU, but it can't hurt to use the default code. */
443static inline int numaq_phys_pkg_id(int cpuid_apic, int index_msb)
444{
445 return cpuid_apic >> index_msb;
446}
447
448static int
449numaq_mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
450{
451 if (strncmp(oem, "IBM NUMA", 8))
452 printk(KERN_ERR "Warning! Not a NUMA-Q system!\n");
453 else
454 found_numaq = 1;
455
456 return found_numaq;
457}
458
459static int probe_numaq(void)
460{
461 /* already know from get_memcfg_numaq() */
462 return found_numaq;
463}
464
465static void numaq_vector_allocation_domain(int cpu, cpumask_t *retmask)
466{
467 /* Careful. Some cpus do not strictly honor the set of cpus
468 * specified in the interrupt destination when using lowest
469 * priority interrupt delivery mode.
470 *
471 * In particular there was a hyperthreading cpu observed to
472 * deliver interrupts to the wrong hyperthread when only one
473 * hyperthread was specified in the interrupt desitination.
474 */
475 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
476}
477
478static void numaq_setup_portio_remap(void)
479{
480 int num_quads = num_online_nodes();
481
482 if (num_quads <= 1)
483 return;
484
485 printk(KERN_INFO
486 "Remapping cross-quad port I/O for %d quads\n", num_quads);
487
488 xquad_portio = ioremap(XQUAD_PORTIO_BASE, num_quads*XQUAD_PORTIO_QUAD);
489
490 printk(KERN_INFO
491 "xquad_portio vaddr 0x%08lx, len %08lx\n",
492 (u_long) xquad_portio, (u_long) num_quads*XQUAD_PORTIO_QUAD);
493}
494
495struct apic apic_numaq = {
496
497 .name = "NUMAQ",
498 .probe = probe_numaq,
499 .acpi_madt_oem_check = NULL,
500 .apic_id_registered = numaq_apic_id_registered,
501
502 .irq_delivery_mode = dest_LowestPrio,
503 /* physical delivery on LOCAL quad: */
504 .irq_dest_mode = 0,
505
506 .target_cpus = numaq_target_cpus,
507 .disable_esr = 1,
508 .dest_logical = APIC_DEST_LOGICAL,
509 .check_apicid_used = numaq_check_apicid_used,
510 .check_apicid_present = numaq_check_apicid_present,
511
512 .vector_allocation_domain = numaq_vector_allocation_domain,
513 .init_apic_ldr = numaq_init_apic_ldr,
514
515 .ioapic_phys_id_map = numaq_ioapic_phys_id_map,
516 .setup_apic_routing = numaq_setup_apic_routing,
517 .multi_timer_check = numaq_multi_timer_check,
518 .apicid_to_node = numaq_apicid_to_node,
519 .cpu_to_logical_apicid = numaq_cpu_to_logical_apicid,
520 .cpu_present_to_apicid = numaq_cpu_present_to_apicid,
521 .apicid_to_cpu_present = numaq_apicid_to_cpu_present,
522 .setup_portio_remap = numaq_setup_portio_remap,
523 .check_phys_apicid_present = numaq_check_phys_apicid_present,
524 .enable_apic_mode = NULL,
525 .phys_pkg_id = numaq_phys_pkg_id,
526 .mps_oem_check = numaq_mps_oem_check,
527
528 .get_apic_id = numaq_get_apic_id,
529 .set_apic_id = NULL,
530 .apic_id_mask = 0x0F << 24,
531
532 .cpu_mask_to_apicid = numaq_cpu_mask_to_apicid,
533 .cpu_mask_to_apicid_and = numaq_cpu_mask_to_apicid_and,
534
535 .send_IPI_mask = numaq_send_IPI_mask,
536 .send_IPI_mask_allbutself = NULL,
537 .send_IPI_allbutself = numaq_send_IPI_allbutself,
538 .send_IPI_all = numaq_send_IPI_all,
539 .send_IPI_self = default_send_IPI_self,
540
541 .wakeup_secondary_cpu = wakeup_secondary_cpu_via_nmi,
542 .trampoline_phys_low = NUMAQ_TRAMPOLINE_PHYS_LOW,
543 .trampoline_phys_high = NUMAQ_TRAMPOLINE_PHYS_HIGH,
544
545 /* We don't do anything here because we use NMI's to boot instead */
546 .wait_for_init_deassert = NULL,
547
548 .smp_callin_clear_local_apic = numaq_smp_callin_clear_local_apic,
549 .inquire_remote_apic = NULL,
550
551 .read = native_apic_mem_read,
552 .write = native_apic_mem_write,
553 .icr_read = native_apic_icr_read,
554 .icr_write = native_apic_icr_write,
555 .wait_icr_idle = native_apic_wait_icr_idle,
556 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
557};
diff --git a/arch/x86/kernel/apic/probe_32.c b/arch/x86/kernel/apic/probe_32.c
new file mode 100644
index 000000000000..141c99a1c264
--- /dev/null
+++ b/arch/x86/kernel/apic/probe_32.c
@@ -0,0 +1,284 @@
1/*
2 * Default generic APIC driver. This handles up to 8 CPUs.
3 *
4 * Copyright 2003 Andi Kleen, SuSE Labs.
5 * Subject to the GNU Public License, v.2
6 *
7 * Generic x86 APIC driver probe layer.
8 */
9#include <linux/threads.h>
10#include <linux/cpumask.h>
11#include <linux/module.h>
12#include <linux/string.h>
13#include <linux/kernel.h>
14#include <linux/ctype.h>
15#include <linux/init.h>
16#include <linux/errno.h>
17#include <asm/fixmap.h>
18#include <asm/mpspec.h>
19#include <asm/apicdef.h>
20#include <asm/apic.h>
21#include <asm/setup.h>
22
23#include <linux/threads.h>
24#include <linux/cpumask.h>
25#include <asm/mpspec.h>
26#include <asm/fixmap.h>
27#include <asm/apicdef.h>
28#include <linux/kernel.h>
29#include <linux/string.h>
30#include <linux/smp.h>
31#include <linux/init.h>
32#include <asm/ipi.h>
33
34#include <linux/smp.h>
35#include <linux/init.h>
36#include <linux/interrupt.h>
37#include <asm/acpi.h>
38#include <asm/e820.h>
39#include <asm/setup.h>
40
41#ifdef CONFIG_HOTPLUG_CPU
42#define DEFAULT_SEND_IPI (1)
43#else
44#define DEFAULT_SEND_IPI (0)
45#endif
46
47int no_broadcast = DEFAULT_SEND_IPI;
48
49static __init int no_ipi_broadcast(char *str)
50{
51 get_option(&str, &no_broadcast);
52 pr_info("Using %s mode\n",
53 no_broadcast ? "No IPI Broadcast" : "IPI Broadcast");
54 return 1;
55}
56__setup("no_ipi_broadcast=", no_ipi_broadcast);
57
58static int __init print_ipi_mode(void)
59{
60 pr_info("Using IPI %s mode\n",
61 no_broadcast ? "No-Shortcut" : "Shortcut");
62 return 0;
63}
64late_initcall(print_ipi_mode);
65
66void default_setup_apic_routing(void)
67{
68#ifdef CONFIG_X86_IO_APIC
69 printk(KERN_INFO
70 "Enabling APIC mode: Flat. Using %d I/O APICs\n",
71 nr_ioapics);
72#endif
73}
74
75static void default_vector_allocation_domain(int cpu, struct cpumask *retmask)
76{
77 /*
78 * Careful. Some cpus do not strictly honor the set of cpus
79 * specified in the interrupt destination when using lowest
80 * priority interrupt delivery mode.
81 *
82 * In particular there was a hyperthreading cpu observed to
83 * deliver interrupts to the wrong hyperthread when only one
84 * hyperthread was specified in the interrupt desitination.
85 */
86 *retmask = (cpumask_t) { { [0] = APIC_ALL_CPUS } };
87}
88
89/* should be called last. */
90static int probe_default(void)
91{
92 return 1;
93}
94
95struct apic apic_default = {
96
97 .name = "default",
98 .probe = probe_default,
99 .acpi_madt_oem_check = NULL,
100 .apic_id_registered = default_apic_id_registered,
101
102 .irq_delivery_mode = dest_LowestPrio,
103 /* logical delivery broadcast to all CPUs: */
104 .irq_dest_mode = 1,
105
106 .target_cpus = default_target_cpus,
107 .disable_esr = 0,
108 .dest_logical = APIC_DEST_LOGICAL,
109 .check_apicid_used = default_check_apicid_used,
110 .check_apicid_present = default_check_apicid_present,
111
112 .vector_allocation_domain = default_vector_allocation_domain,
113 .init_apic_ldr = default_init_apic_ldr,
114
115 .ioapic_phys_id_map = default_ioapic_phys_id_map,
116 .setup_apic_routing = default_setup_apic_routing,
117 .multi_timer_check = NULL,
118 .apicid_to_node = default_apicid_to_node,
119 .cpu_to_logical_apicid = default_cpu_to_logical_apicid,
120 .cpu_present_to_apicid = default_cpu_present_to_apicid,
121 .apicid_to_cpu_present = default_apicid_to_cpu_present,
122 .setup_portio_remap = NULL,
123 .check_phys_apicid_present = default_check_phys_apicid_present,
124 .enable_apic_mode = NULL,
125 .phys_pkg_id = default_phys_pkg_id,
126 .mps_oem_check = NULL,
127
128 .get_apic_id = default_get_apic_id,
129 .set_apic_id = NULL,
130 .apic_id_mask = 0x0F << 24,
131
132 .cpu_mask_to_apicid = default_cpu_mask_to_apicid,
133 .cpu_mask_to_apicid_and = default_cpu_mask_to_apicid_and,
134
135 .send_IPI_mask = default_send_IPI_mask_logical,
136 .send_IPI_mask_allbutself = default_send_IPI_mask_allbutself_logical,
137 .send_IPI_allbutself = default_send_IPI_allbutself,
138 .send_IPI_all = default_send_IPI_all,
139 .send_IPI_self = default_send_IPI_self,
140
141 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
142 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
143
144 .wait_for_init_deassert = default_wait_for_init_deassert,
145
146 .smp_callin_clear_local_apic = NULL,
147 .inquire_remote_apic = default_inquire_remote_apic,
148
149 .read = native_apic_mem_read,
150 .write = native_apic_mem_write,
151 .icr_read = native_apic_icr_read,
152 .icr_write = native_apic_icr_write,
153 .wait_icr_idle = native_apic_wait_icr_idle,
154 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
155};
156
157extern struct apic apic_numaq;
158extern struct apic apic_summit;
159extern struct apic apic_bigsmp;
160extern struct apic apic_es7000;
161extern struct apic apic_es7000_cluster;
162extern struct apic apic_default;
163
164struct apic *apic = &apic_default;
165EXPORT_SYMBOL_GPL(apic);
166
167static struct apic *apic_probe[] __initdata = {
168#ifdef CONFIG_X86_NUMAQ
169 &apic_numaq,
170#endif
171#ifdef CONFIG_X86_SUMMIT
172 &apic_summit,
173#endif
174#ifdef CONFIG_X86_BIGSMP
175 &apic_bigsmp,
176#endif
177#ifdef CONFIG_X86_ES7000
178 &apic_es7000,
179 &apic_es7000_cluster,
180#endif
181 &apic_default, /* must be last */
182 NULL,
183};
184
185static int cmdline_apic __initdata;
186static int __init parse_apic(char *arg)
187{
188 int i;
189
190 if (!arg)
191 return -EINVAL;
192
193 for (i = 0; apic_probe[i]; i++) {
194 if (!strcmp(apic_probe[i]->name, arg)) {
195 apic = apic_probe[i];
196 cmdline_apic = 1;
197 return 0;
198 }
199 }
200
201 /* Parsed again by __setup for debug/verbose */
202 return 0;
203}
204early_param("apic", parse_apic);
205
206void __init generic_bigsmp_probe(void)
207{
208#ifdef CONFIG_X86_BIGSMP
209 /*
210 * This routine is used to switch to bigsmp mode when
211 * - There is no apic= option specified by the user
212 * - generic_apic_probe() has chosen apic_default as the sub_arch
213 * - we find more than 8 CPUs in acpi LAPIC listing with xAPIC support
214 */
215
216 if (!cmdline_apic && apic == &apic_default) {
217 if (apic_bigsmp.probe()) {
218 apic = &apic_bigsmp;
219 printk(KERN_INFO "Overriding APIC driver with %s\n",
220 apic->name);
221 }
222 }
223#endif
224}
225
226void __init generic_apic_probe(void)
227{
228 if (!cmdline_apic) {
229 int i;
230 for (i = 0; apic_probe[i]; i++) {
231 if (apic_probe[i]->probe()) {
232 apic = apic_probe[i];
233 break;
234 }
235 }
236 /* Not visible without early console */
237 if (!apic_probe[i])
238 panic("Didn't find an APIC driver");
239 }
240 printk(KERN_INFO "Using APIC driver %s\n", apic->name);
241}
242
243/* These functions can switch the APIC even after the initial ->probe() */
244
245int __init
246generic_mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
247{
248 int i;
249
250 for (i = 0; apic_probe[i]; ++i) {
251 if (!apic_probe[i]->mps_oem_check)
252 continue;
253 if (!apic_probe[i]->mps_oem_check(mpc, oem, productid))
254 continue;
255
256 if (!cmdline_apic) {
257 apic = apic_probe[i];
258 printk(KERN_INFO "Switched to APIC driver `%s'.\n",
259 apic->name);
260 }
261 return 1;
262 }
263 return 0;
264}
265
266int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
267{
268 int i;
269
270 for (i = 0; apic_probe[i]; ++i) {
271 if (!apic_probe[i]->acpi_madt_oem_check)
272 continue;
273 if (!apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id))
274 continue;
275
276 if (!cmdline_apic) {
277 apic = apic_probe[i];
278 printk(KERN_INFO "Switched to APIC driver `%s'.\n",
279 apic->name);
280 }
281 return 1;
282 }
283 return 0;
284}
diff --git a/arch/x86/kernel/genapic_64.c b/arch/x86/kernel/apic/probe_64.c
index 2bced78b0b8e..8d7748efe6a8 100644
--- a/arch/x86/kernel/genapic_64.c
+++ b/arch/x86/kernel/apic/probe_64.c
@@ -19,22 +19,27 @@
19#include <linux/dmar.h> 19#include <linux/dmar.h>
20 20
21#include <asm/smp.h> 21#include <asm/smp.h>
22#include <asm/apic.h>
22#include <asm/ipi.h> 23#include <asm/ipi.h>
23#include <asm/genapic.h>
24#include <asm/setup.h> 24#include <asm/setup.h>
25 25
26extern struct genapic apic_flat; 26extern struct apic apic_flat;
27extern struct genapic apic_physflat; 27extern struct apic apic_physflat;
28extern struct genapic apic_x2xpic_uv_x; 28extern struct apic apic_x2xpic_uv_x;
29extern struct genapic apic_x2apic_phys; 29extern struct apic apic_x2apic_phys;
30extern struct genapic apic_x2apic_cluster; 30extern struct apic apic_x2apic_cluster;
31 31
32struct genapic __read_mostly *genapic = &apic_flat; 32struct apic __read_mostly *apic = &apic_flat;
33EXPORT_SYMBOL_GPL(apic);
33 34
34static struct genapic *apic_probe[] __initdata = { 35static struct apic *apic_probe[] __initdata = {
36#ifdef CONFIG_X86_UV
35 &apic_x2apic_uv_x, 37 &apic_x2apic_uv_x,
38#endif
39#ifdef CONFIG_X86_X2APIC
36 &apic_x2apic_phys, 40 &apic_x2apic_phys,
37 &apic_x2apic_cluster, 41 &apic_x2apic_cluster,
42#endif
38 &apic_physflat, 43 &apic_physflat,
39 NULL, 44 NULL,
40}; 45};
@@ -42,39 +47,45 @@ static struct genapic *apic_probe[] __initdata = {
42/* 47/*
43 * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode. 48 * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
44 */ 49 */
45void __init setup_apic_routing(void) 50void __init default_setup_apic_routing(void)
46{ 51{
47 if (genapic == &apic_x2apic_phys || genapic == &apic_x2apic_cluster) { 52#ifdef CONFIG_X86_X2APIC
48 if (!intr_remapping_enabled) 53 if (x2apic && (apic != &apic_x2apic_phys &&
49 genapic = &apic_flat; 54#ifdef CONFIG_X86_UV
55 apic != &apic_x2apic_uv_x &&
56#endif
57 apic != &apic_x2apic_cluster)) {
58 if (x2apic_phys)
59 apic = &apic_x2apic_phys;
60 else
61 apic = &apic_x2apic_cluster;
62 printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
50 } 63 }
64#endif
51 65
52 if (genapic == &apic_flat) { 66 if (apic == &apic_flat) {
53 if (max_physical_apicid >= 8) 67 if (max_physical_apicid >= 8)
54 genapic = &apic_physflat; 68 apic = &apic_physflat;
55 printk(KERN_INFO "Setting APIC routing to %s\n", genapic->name); 69 printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
56 } 70 }
57
58 if (x86_quirks->update_genapic)
59 x86_quirks->update_genapic();
60} 71}
61 72
62/* Same for both flat and physical. */ 73/* Same for both flat and physical. */
63 74
64void apic_send_IPI_self(int vector) 75void apic_send_IPI_self(int vector)
65{ 76{
66 __send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL); 77 __default_send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL);
67} 78}
68 79
69int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) 80int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
70{ 81{
71 int i; 82 int i;
72 83
73 for (i = 0; apic_probe[i]; ++i) { 84 for (i = 0; apic_probe[i]; ++i) {
74 if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) { 85 if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) {
75 genapic = apic_probe[i]; 86 apic = apic_probe[i];
76 printk(KERN_INFO "Setting APIC routing to %s.\n", 87 printk(KERN_INFO "Setting APIC routing to %s.\n",
77 genapic->name); 88 apic->name);
78 return 1; 89 return 1;
79 } 90 }
80 } 91 }
diff --git a/arch/x86/kernel/apic/summit_32.c b/arch/x86/kernel/apic/summit_32.c
new file mode 100644
index 000000000000..aac52fa873ff
--- /dev/null
+++ b/arch/x86/kernel/apic/summit_32.c
@@ -0,0 +1,579 @@
1/*
2 * IBM Summit-Specific Code
3 *
4 * Written By: Matthew Dobson, IBM Corporation
5 *
6 * Copyright (c) 2003 IBM Corp.
7 *
8 * All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or (at
13 * your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
18 * NON INFRINGEMENT. See the GNU General Public License for more
19 * details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 *
25 * Send feedback to <colpatch@us.ibm.com>
26 *
27 */
28
29#include <linux/mm.h>
30#include <linux/init.h>
31#include <asm/io.h>
32#include <asm/bios_ebda.h>
33
34/*
35 * APIC driver for the IBM "Summit" chipset.
36 */
37#include <linux/threads.h>
38#include <linux/cpumask.h>
39#include <asm/mpspec.h>
40#include <asm/apic.h>
41#include <asm/smp.h>
42#include <asm/fixmap.h>
43#include <asm/apicdef.h>
44#include <asm/ipi.h>
45#include <linux/kernel.h>
46#include <linux/string.h>
47#include <linux/init.h>
48#include <linux/gfp.h>
49#include <linux/smp.h>
50
51static unsigned summit_get_apic_id(unsigned long x)
52{
53 return (x >> 24) & 0xFF;
54}
55
56static inline void summit_send_IPI_mask(const cpumask_t *mask, int vector)
57{
58 default_send_IPI_mask_sequence_logical(mask, vector);
59}
60
61static void summit_send_IPI_allbutself(int vector)
62{
63 cpumask_t mask = cpu_online_map;
64 cpu_clear(smp_processor_id(), mask);
65
66 if (!cpus_empty(mask))
67 summit_send_IPI_mask(&mask, vector);
68}
69
70static void summit_send_IPI_all(int vector)
71{
72 summit_send_IPI_mask(&cpu_online_map, vector);
73}
74
75#include <asm/tsc.h>
76
77extern int use_cyclone;
78
79#ifdef CONFIG_X86_SUMMIT_NUMA
80static void setup_summit(void);
81#else
82static inline void setup_summit(void) {}
83#endif
84
85static int summit_mps_oem_check(struct mpc_table *mpc, char *oem,
86 char *productid)
87{
88 if (!strncmp(oem, "IBM ENSW", 8) &&
89 (!strncmp(productid, "VIGIL SMP", 9)
90 || !strncmp(productid, "EXA", 3)
91 || !strncmp(productid, "RUTHLESS SMP", 12))){
92 mark_tsc_unstable("Summit based system");
93 use_cyclone = 1; /*enable cyclone-timer*/
94 setup_summit();
95 return 1;
96 }
97 return 0;
98}
99
100/* Hook from generic ACPI tables.c */
101static int summit_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
102{
103 if (!strncmp(oem_id, "IBM", 3) &&
104 (!strncmp(oem_table_id, "SERVIGIL", 8)
105 || !strncmp(oem_table_id, "EXA", 3))){
106 mark_tsc_unstable("Summit based system");
107 use_cyclone = 1; /*enable cyclone-timer*/
108 setup_summit();
109 return 1;
110 }
111 return 0;
112}
113
114struct rio_table_hdr {
115 unsigned char version; /* Version number of this data structure */
116 /* Version 3 adds chassis_num & WP_index */
117 unsigned char num_scal_dev; /* # of Scalability devices (Twisters for Vigil) */
118 unsigned char num_rio_dev; /* # of RIO I/O devices (Cyclones and Winnipegs) */
119} __attribute__((packed));
120
121struct scal_detail {
122 unsigned char node_id; /* Scalability Node ID */
123 unsigned long CBAR; /* Address of 1MB register space */
124 unsigned char port0node; /* Node ID port connected to: 0xFF=None */
125 unsigned char port0port; /* Port num port connected to: 0,1,2, or 0xFF=None */
126 unsigned char port1node; /* Node ID port connected to: 0xFF = None */
127 unsigned char port1port; /* Port num port connected to: 0,1,2, or 0xFF=None */
128 unsigned char port2node; /* Node ID port connected to: 0xFF = None */
129 unsigned char port2port; /* Port num port connected to: 0,1,2, or 0xFF=None */
130 unsigned char chassis_num; /* 1 based Chassis number (1 = boot node) */
131} __attribute__((packed));
132
133struct rio_detail {
134 unsigned char node_id; /* RIO Node ID */
135 unsigned long BBAR; /* Address of 1MB register space */
136 unsigned char type; /* Type of device */
137 unsigned char owner_id; /* For WPEG: Node ID of Cyclone that owns this WPEG*/
138 /* For CYC: Node ID of Twister that owns this CYC */
139 unsigned char port0node; /* Node ID port connected to: 0xFF=None */
140 unsigned char port0port; /* Port num port connected to: 0,1,2, or 0xFF=None */
141 unsigned char port1node; /* Node ID port connected to: 0xFF=None */
142 unsigned char port1port; /* Port num port connected to: 0,1,2, or 0xFF=None */
143 unsigned char first_slot; /* For WPEG: Lowest slot number below this WPEG */
144 /* For CYC: 0 */
145 unsigned char status; /* For WPEG: Bit 0 = 1 : the XAPIC is used */
146 /* = 0 : the XAPIC is not used, ie:*/
147 /* ints fwded to another XAPIC */
148 /* Bits1:7 Reserved */
149 /* For CYC: Bits0:7 Reserved */
150 unsigned char WP_index; /* For WPEG: WPEG instance index - lower ones have */
151 /* lower slot numbers/PCI bus numbers */
152 /* For CYC: No meaning */
153 unsigned char chassis_num; /* 1 based Chassis number */
154 /* For LookOut WPEGs this field indicates the */
155 /* Expansion Chassis #, enumerated from Boot */
156 /* Node WPEG external port, then Boot Node CYC */
157 /* external port, then Next Vigil chassis WPEG */
158 /* external port, etc. */
159 /* Shared Lookouts have only 1 chassis number (the */
160 /* first one assigned) */
161} __attribute__((packed));
162
163
164typedef enum {
165 CompatTwister = 0, /* Compatibility Twister */
166 AltTwister = 1, /* Alternate Twister of internal 8-way */
167 CompatCyclone = 2, /* Compatibility Cyclone */
168 AltCyclone = 3, /* Alternate Cyclone of internal 8-way */
169 CompatWPEG = 4, /* Compatibility WPEG */
170 AltWPEG = 5, /* Second Planar WPEG */
171 LookOutAWPEG = 6, /* LookOut WPEG */
172 LookOutBWPEG = 7, /* LookOut WPEG */
173} node_type;
174
175static inline int is_WPEG(struct rio_detail *rio){
176 return (rio->type == CompatWPEG || rio->type == AltWPEG ||
177 rio->type == LookOutAWPEG || rio->type == LookOutBWPEG);
178}
179
180
181/* In clustered mode, the high nibble of APIC ID is a cluster number.
182 * The low nibble is a 4-bit bitmap. */
183#define XAPIC_DEST_CPUS_SHIFT 4
184#define XAPIC_DEST_CPUS_MASK ((1u << XAPIC_DEST_CPUS_SHIFT) - 1)
185#define XAPIC_DEST_CLUSTER_MASK (XAPIC_DEST_CPUS_MASK << XAPIC_DEST_CPUS_SHIFT)
186
187#define SUMMIT_APIC_DFR_VALUE (APIC_DFR_CLUSTER)
188
189static const cpumask_t *summit_target_cpus(void)
190{
191 /* CPU_MASK_ALL (0xff) has undefined behaviour with
192 * dest_LowestPrio mode logical clustered apic interrupt routing
193 * Just start on cpu 0. IRQ balancing will spread load
194 */
195 return &cpumask_of_cpu(0);
196}
197
198static unsigned long summit_check_apicid_used(physid_mask_t bitmap, int apicid)
199{
200 return 0;
201}
202
203/* we don't use the phys_cpu_present_map to indicate apicid presence */
204static unsigned long summit_check_apicid_present(int bit)
205{
206 return 1;
207}
208
209static void summit_init_apic_ldr(void)
210{
211 unsigned long val, id;
212 int count = 0;
213 u8 my_id = (u8)hard_smp_processor_id();
214 u8 my_cluster = APIC_CLUSTER(my_id);
215#ifdef CONFIG_SMP
216 u8 lid;
217 int i;
218
219 /* Create logical APIC IDs by counting CPUs already in cluster. */
220 for (count = 0, i = nr_cpu_ids; --i >= 0; ) {
221 lid = cpu_2_logical_apicid[i];
222 if (lid != BAD_APICID && APIC_CLUSTER(lid) == my_cluster)
223 ++count;
224 }
225#endif
226 /* We only have a 4 wide bitmap in cluster mode. If a deranged
227 * BIOS puts 5 CPUs in one APIC cluster, we're hosed. */
228 BUG_ON(count >= XAPIC_DEST_CPUS_SHIFT);
229 id = my_cluster | (1UL << count);
230 apic_write(APIC_DFR, SUMMIT_APIC_DFR_VALUE);
231 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
232 val |= SET_APIC_LOGICAL_ID(id);
233 apic_write(APIC_LDR, val);
234}
235
236static int summit_apic_id_registered(void)
237{
238 return 1;
239}
240
241static void summit_setup_apic_routing(void)
242{
243 printk("Enabling APIC mode: Summit. Using %d I/O APICs\n",
244 nr_ioapics);
245}
246
247static int summit_apicid_to_node(int logical_apicid)
248{
249#ifdef CONFIG_SMP
250 return apicid_2_node[hard_smp_processor_id()];
251#else
252 return 0;
253#endif
254}
255
256/* Mapping from cpu number to logical apicid */
257static inline int summit_cpu_to_logical_apicid(int cpu)
258{
259#ifdef CONFIG_SMP
260 if (cpu >= nr_cpu_ids)
261 return BAD_APICID;
262 return cpu_2_logical_apicid[cpu];
263#else
264 return logical_smp_processor_id();
265#endif
266}
267
268static int summit_cpu_present_to_apicid(int mps_cpu)
269{
270 if (mps_cpu < nr_cpu_ids)
271 return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu);
272 else
273 return BAD_APICID;
274}
275
276static physid_mask_t summit_ioapic_phys_id_map(physid_mask_t phys_id_map)
277{
278 /* For clustered we don't have a good way to do this yet - hack */
279 return physids_promote(0x0F);
280}
281
282static physid_mask_t summit_apicid_to_cpu_present(int apicid)
283{
284 return physid_mask_of_physid(0);
285}
286
287static int summit_check_phys_apicid_present(int boot_cpu_physical_apicid)
288{
289 return 1;
290}
291
292static unsigned int summit_cpu_mask_to_apicid(const cpumask_t *cpumask)
293{
294 unsigned int round = 0;
295 int cpu, apicid = 0;
296
297 /*
298 * The cpus in the mask must all be on the apic cluster.
299 */
300 for_each_cpu(cpu, cpumask) {
301 int new_apicid = summit_cpu_to_logical_apicid(cpu);
302
303 if (round && APIC_CLUSTER(apicid) != APIC_CLUSTER(new_apicid)) {
304 printk("%s: Not a valid mask!\n", __func__);
305 return BAD_APICID;
306 }
307 apicid |= new_apicid;
308 round++;
309 }
310 return apicid;
311}
312
313static unsigned int summit_cpu_mask_to_apicid_and(const struct cpumask *inmask,
314 const struct cpumask *andmask)
315{
316 int apicid = summit_cpu_to_logical_apicid(0);
317 cpumask_var_t cpumask;
318
319 if (!alloc_cpumask_var(&cpumask, GFP_ATOMIC))
320 return apicid;
321
322 cpumask_and(cpumask, inmask, andmask);
323 cpumask_and(cpumask, cpumask, cpu_online_mask);
324 apicid = summit_cpu_mask_to_apicid(cpumask);
325
326 free_cpumask_var(cpumask);
327
328 return apicid;
329}
330
331/*
332 * cpuid returns the value latched in the HW at reset, not the APIC ID
333 * register's value. For any box whose BIOS changes APIC IDs, like
334 * clustered APIC systems, we must use hard_smp_processor_id.
335 *
336 * See Intel's IA-32 SW Dev's Manual Vol2 under CPUID.
337 */
338static int summit_phys_pkg_id(int cpuid_apic, int index_msb)
339{
340 return hard_smp_processor_id() >> index_msb;
341}
342
343static int probe_summit(void)
344{
345 /* probed later in mptable/ACPI hooks */
346 return 0;
347}
348
349static void summit_vector_allocation_domain(int cpu, cpumask_t *retmask)
350{
351 /* Careful. Some cpus do not strictly honor the set of cpus
352 * specified in the interrupt destination when using lowest
353 * priority interrupt delivery mode.
354 *
355 * In particular there was a hyperthreading cpu observed to
356 * deliver interrupts to the wrong hyperthread when only one
357 * hyperthread was specified in the interrupt desitination.
358 */
359 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
360}
361
362#ifdef CONFIG_X86_SUMMIT_NUMA
363static struct rio_table_hdr *rio_table_hdr;
364static struct scal_detail *scal_devs[MAX_NUMNODES];
365static struct rio_detail *rio_devs[MAX_NUMNODES*4];
366
367#ifndef CONFIG_X86_NUMAQ
368static int mp_bus_id_to_node[MAX_MP_BUSSES];
369#endif
370
371static int setup_pci_node_map_for_wpeg(int wpeg_num, int last_bus)
372{
373 int twister = 0, node = 0;
374 int i, bus, num_buses;
375
376 for (i = 0; i < rio_table_hdr->num_rio_dev; i++) {
377 if (rio_devs[i]->node_id == rio_devs[wpeg_num]->owner_id) {
378 twister = rio_devs[i]->owner_id;
379 break;
380 }
381 }
382 if (i == rio_table_hdr->num_rio_dev) {
383 printk(KERN_ERR "%s: Couldn't find owner Cyclone for Winnipeg!\n", __func__);
384 return last_bus;
385 }
386
387 for (i = 0; i < rio_table_hdr->num_scal_dev; i++) {
388 if (scal_devs[i]->node_id == twister) {
389 node = scal_devs[i]->node_id;
390 break;
391 }
392 }
393 if (i == rio_table_hdr->num_scal_dev) {
394 printk(KERN_ERR "%s: Couldn't find owner Twister for Cyclone!\n", __func__);
395 return last_bus;
396 }
397
398 switch (rio_devs[wpeg_num]->type) {
399 case CompatWPEG:
400 /*
401 * The Compatibility Winnipeg controls the 2 legacy buses,
402 * the 66MHz PCI bus [2 slots] and the 2 "extra" buses in case
403 * a PCI-PCI bridge card is used in either slot: total 5 buses.
404 */
405 num_buses = 5;
406 break;
407 case AltWPEG:
408 /*
409 * The Alternate Winnipeg controls the 2 133MHz buses [1 slot
410 * each], their 2 "extra" buses, the 100MHz bus [2 slots] and
411 * the "extra" buses for each of those slots: total 7 buses.
412 */
413 num_buses = 7;
414 break;
415 case LookOutAWPEG:
416 case LookOutBWPEG:
417 /*
418 * A Lookout Winnipeg controls 3 100MHz buses [2 slots each]
419 * & the "extra" buses for each of those slots: total 9 buses.
420 */
421 num_buses = 9;
422 break;
423 default:
424 printk(KERN_INFO "%s: Unsupported Winnipeg type!\n", __func__);
425 return last_bus;
426 }
427
428 for (bus = last_bus; bus < last_bus + num_buses; bus++)
429 mp_bus_id_to_node[bus] = node;
430 return bus;
431}
432
433static int build_detail_arrays(void)
434{
435 unsigned long ptr;
436 int i, scal_detail_size, rio_detail_size;
437
438 if (rio_table_hdr->num_scal_dev > MAX_NUMNODES) {
439 printk(KERN_WARNING "%s: MAX_NUMNODES too low! Defined as %d, but system has %d nodes.\n", __func__, MAX_NUMNODES, rio_table_hdr->num_scal_dev);
440 return 0;
441 }
442
443 switch (rio_table_hdr->version) {
444 default:
445 printk(KERN_WARNING "%s: Invalid Rio Grande Table Version: %d\n", __func__, rio_table_hdr->version);
446 return 0;
447 case 2:
448 scal_detail_size = 11;
449 rio_detail_size = 13;
450 break;
451 case 3:
452 scal_detail_size = 12;
453 rio_detail_size = 15;
454 break;
455 }
456
457 ptr = (unsigned long)rio_table_hdr + 3;
458 for (i = 0; i < rio_table_hdr->num_scal_dev; i++, ptr += scal_detail_size)
459 scal_devs[i] = (struct scal_detail *)ptr;
460
461 for (i = 0; i < rio_table_hdr->num_rio_dev; i++, ptr += rio_detail_size)
462 rio_devs[i] = (struct rio_detail *)ptr;
463
464 return 1;
465}
466
467void setup_summit(void)
468{
469 unsigned long ptr;
470 unsigned short offset;
471 int i, next_wpeg, next_bus = 0;
472
473 /* The pointer to the EBDA is stored in the word @ phys 0x40E(40:0E) */
474 ptr = get_bios_ebda();
475 ptr = (unsigned long)phys_to_virt(ptr);
476
477 rio_table_hdr = NULL;
478 offset = 0x180;
479 while (offset) {
480 /* The block id is stored in the 2nd word */
481 if (*((unsigned short *)(ptr + offset + 2)) == 0x4752) {
482 /* set the pointer past the offset & block id */
483 rio_table_hdr = (struct rio_table_hdr *)(ptr + offset + 4);
484 break;
485 }
486 /* The next offset is stored in the 1st word. 0 means no more */
487 offset = *((unsigned short *)(ptr + offset));
488 }
489 if (!rio_table_hdr) {
490 printk(KERN_ERR "%s: Unable to locate Rio Grande Table in EBDA - bailing!\n", __func__);
491 return;
492 }
493
494 if (!build_detail_arrays())
495 return;
496
497 /* The first Winnipeg we're looking for has an index of 0 */
498 next_wpeg = 0;
499 do {
500 for (i = 0; i < rio_table_hdr->num_rio_dev; i++) {
501 if (is_WPEG(rio_devs[i]) && rio_devs[i]->WP_index == next_wpeg) {
502 /* It's the Winnipeg we're looking for! */
503 next_bus = setup_pci_node_map_for_wpeg(i, next_bus);
504 next_wpeg++;
505 break;
506 }
507 }
508 /*
509 * If we go through all Rio devices and don't find one with
510 * the next index, it means we've found all the Winnipegs,
511 * and thus all the PCI buses.
512 */
513 if (i == rio_table_hdr->num_rio_dev)
514 next_wpeg = 0;
515 } while (next_wpeg != 0);
516}
517#endif
518
519struct apic apic_summit = {
520
521 .name = "summit",
522 .probe = probe_summit,
523 .acpi_madt_oem_check = summit_acpi_madt_oem_check,
524 .apic_id_registered = summit_apic_id_registered,
525
526 .irq_delivery_mode = dest_LowestPrio,
527 /* logical delivery broadcast to all CPUs: */
528 .irq_dest_mode = 1,
529
530 .target_cpus = summit_target_cpus,
531 .disable_esr = 1,
532 .dest_logical = APIC_DEST_LOGICAL,
533 .check_apicid_used = summit_check_apicid_used,
534 .check_apicid_present = summit_check_apicid_present,
535
536 .vector_allocation_domain = summit_vector_allocation_domain,
537 .init_apic_ldr = summit_init_apic_ldr,
538
539 .ioapic_phys_id_map = summit_ioapic_phys_id_map,
540 .setup_apic_routing = summit_setup_apic_routing,
541 .multi_timer_check = NULL,
542 .apicid_to_node = summit_apicid_to_node,
543 .cpu_to_logical_apicid = summit_cpu_to_logical_apicid,
544 .cpu_present_to_apicid = summit_cpu_present_to_apicid,
545 .apicid_to_cpu_present = summit_apicid_to_cpu_present,
546 .setup_portio_remap = NULL,
547 .check_phys_apicid_present = summit_check_phys_apicid_present,
548 .enable_apic_mode = NULL,
549 .phys_pkg_id = summit_phys_pkg_id,
550 .mps_oem_check = summit_mps_oem_check,
551
552 .get_apic_id = summit_get_apic_id,
553 .set_apic_id = NULL,
554 .apic_id_mask = 0xFF << 24,
555
556 .cpu_mask_to_apicid = summit_cpu_mask_to_apicid,
557 .cpu_mask_to_apicid_and = summit_cpu_mask_to_apicid_and,
558
559 .send_IPI_mask = summit_send_IPI_mask,
560 .send_IPI_mask_allbutself = NULL,
561 .send_IPI_allbutself = summit_send_IPI_allbutself,
562 .send_IPI_all = summit_send_IPI_all,
563 .send_IPI_self = default_send_IPI_self,
564
565 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
566 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
567
568 .wait_for_init_deassert = default_wait_for_init_deassert,
569
570 .smp_callin_clear_local_apic = NULL,
571 .inquire_remote_apic = default_inquire_remote_apic,
572
573 .read = native_apic_mem_read,
574 .write = native_apic_mem_write,
575 .icr_read = native_apic_icr_read,
576 .icr_write = native_apic_icr_write,
577 .wait_icr_idle = native_apic_wait_icr_idle,
578 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
579};
diff --git a/arch/x86/kernel/genx2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c
index 6ce497cc372d..8fb87b6dd633 100644
--- a/arch/x86/kernel/genx2apic_cluster.c
+++ b/arch/x86/kernel/apic/x2apic_cluster.c
@@ -7,17 +7,14 @@
7#include <linux/dmar.h> 7#include <linux/dmar.h>
8 8
9#include <asm/smp.h> 9#include <asm/smp.h>
10#include <asm/apic.h>
10#include <asm/ipi.h> 11#include <asm/ipi.h>
11#include <asm/genapic.h>
12 12
13DEFINE_PER_CPU(u32, x86_cpu_to_logical_apicid); 13DEFINE_PER_CPU(u32, x86_cpu_to_logical_apicid);
14 14
15static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) 15static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
16{ 16{
17 if (cpu_has_x2apic) 17 return x2apic_enabled();
18 return 1;
19
20 return 0;
21} 18}
22 19
23/* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ 20/* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */
@@ -36,8 +33,8 @@ static void x2apic_vector_allocation_domain(int cpu, struct cpumask *retmask)
36 cpumask_set_cpu(cpu, retmask); 33 cpumask_set_cpu(cpu, retmask);
37} 34}
38 35
39static void __x2apic_send_IPI_dest(unsigned int apicid, int vector, 36static void
40 unsigned int dest) 37 __x2apic_send_IPI_dest(unsigned int apicid, int vector, unsigned int dest)
41{ 38{
42 unsigned long cfg; 39 unsigned long cfg;
43 40
@@ -46,7 +43,7 @@ static void __x2apic_send_IPI_dest(unsigned int apicid, int vector,
46 /* 43 /*
47 * send the IPI. 44 * send the IPI.
48 */ 45 */
49 x2apic_icr_write(cfg, apicid); 46 native_x2apic_icr_write(cfg, apicid);
50} 47}
51 48
52/* 49/*
@@ -57,45 +54,50 @@ static void __x2apic_send_IPI_dest(unsigned int apicid, int vector,
57 */ 54 */
58static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector) 55static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector)
59{ 56{
60 unsigned long flags;
61 unsigned long query_cpu; 57 unsigned long query_cpu;
58 unsigned long flags;
62 59
63 local_irq_save(flags); 60 local_irq_save(flags);
64 for_each_cpu(query_cpu, mask) 61 for_each_cpu(query_cpu, mask) {
65 __x2apic_send_IPI_dest( 62 __x2apic_send_IPI_dest(
66 per_cpu(x86_cpu_to_logical_apicid, query_cpu), 63 per_cpu(x86_cpu_to_logical_apicid, query_cpu),
67 vector, APIC_DEST_LOGICAL); 64 vector, apic->dest_logical);
65 }
68 local_irq_restore(flags); 66 local_irq_restore(flags);
69} 67}
70 68
71static void x2apic_send_IPI_mask_allbutself(const struct cpumask *mask, 69static void
72 int vector) 70 x2apic_send_IPI_mask_allbutself(const struct cpumask *mask, int vector)
73{ 71{
74 unsigned long flags;
75 unsigned long query_cpu;
76 unsigned long this_cpu = smp_processor_id(); 72 unsigned long this_cpu = smp_processor_id();
73 unsigned long query_cpu;
74 unsigned long flags;
77 75
78 local_irq_save(flags); 76 local_irq_save(flags);
79 for_each_cpu(query_cpu, mask) 77 for_each_cpu(query_cpu, mask) {
80 if (query_cpu != this_cpu) 78 if (query_cpu == this_cpu)
81 __x2apic_send_IPI_dest( 79 continue;
80 __x2apic_send_IPI_dest(
82 per_cpu(x86_cpu_to_logical_apicid, query_cpu), 81 per_cpu(x86_cpu_to_logical_apicid, query_cpu),
83 vector, APIC_DEST_LOGICAL); 82 vector, apic->dest_logical);
83 }
84 local_irq_restore(flags); 84 local_irq_restore(flags);
85} 85}
86 86
87static void x2apic_send_IPI_allbutself(int vector) 87static void x2apic_send_IPI_allbutself(int vector)
88{ 88{
89 unsigned long flags;
90 unsigned long query_cpu;
91 unsigned long this_cpu = smp_processor_id(); 89 unsigned long this_cpu = smp_processor_id();
90 unsigned long query_cpu;
91 unsigned long flags;
92 92
93 local_irq_save(flags); 93 local_irq_save(flags);
94 for_each_online_cpu(query_cpu) 94 for_each_online_cpu(query_cpu) {
95 if (query_cpu != this_cpu) 95 if (query_cpu == this_cpu)
96 __x2apic_send_IPI_dest( 96 continue;
97 __x2apic_send_IPI_dest(
97 per_cpu(x86_cpu_to_logical_apicid, query_cpu), 98 per_cpu(x86_cpu_to_logical_apicid, query_cpu),
98 vector, APIC_DEST_LOGICAL); 99 vector, apic->dest_logical);
100 }
99 local_irq_restore(flags); 101 local_irq_restore(flags);
100} 102}
101 103
@@ -111,21 +113,21 @@ static int x2apic_apic_id_registered(void)
111 113
112static unsigned int x2apic_cpu_mask_to_apicid(const struct cpumask *cpumask) 114static unsigned int x2apic_cpu_mask_to_apicid(const struct cpumask *cpumask)
113{ 115{
114 int cpu;
115
116 /* 116 /*
117 * We're using fixed IRQ delivery, can only return one logical APIC ID. 117 * We're using fixed IRQ delivery, can only return one logical APIC ID.
118 * May as well be the first. 118 * May as well be the first.
119 */ 119 */
120 cpu = cpumask_first(cpumask); 120 int cpu = cpumask_first(cpumask);
121
121 if ((unsigned)cpu < nr_cpu_ids) 122 if ((unsigned)cpu < nr_cpu_ids)
122 return per_cpu(x86_cpu_to_logical_apicid, cpu); 123 return per_cpu(x86_cpu_to_logical_apicid, cpu);
123 else 124 else
124 return BAD_APICID; 125 return BAD_APICID;
125} 126}
126 127
127static unsigned int x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask, 128static unsigned int
128 const struct cpumask *andmask) 129x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
130 const struct cpumask *andmask)
129{ 131{
130 int cpu; 132 int cpu;
131 133
@@ -133,15 +135,18 @@ static unsigned int x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
133 * We're using fixed IRQ delivery, can only return one logical APIC ID. 135 * We're using fixed IRQ delivery, can only return one logical APIC ID.
134 * May as well be the first. 136 * May as well be the first.
135 */ 137 */
136 for_each_cpu_and(cpu, cpumask, andmask) 138 for_each_cpu_and(cpu, cpumask, andmask) {
137 if (cpumask_test_cpu(cpu, cpu_online_mask)) 139 if (cpumask_test_cpu(cpu, cpu_online_mask))
138 break; 140 break;
141 }
142
139 if (cpu < nr_cpu_ids) 143 if (cpu < nr_cpu_ids)
140 return per_cpu(x86_cpu_to_logical_apicid, cpu); 144 return per_cpu(x86_cpu_to_logical_apicid, cpu);
145
141 return BAD_APICID; 146 return BAD_APICID;
142} 147}
143 148
144static unsigned int get_apic_id(unsigned long x) 149static unsigned int x2apic_cluster_phys_get_apic_id(unsigned long x)
145{ 150{
146 unsigned int id; 151 unsigned int id;
147 152
@@ -157,7 +162,7 @@ static unsigned long set_apic_id(unsigned int id)
157 return x; 162 return x;
158} 163}
159 164
160static unsigned int phys_pkg_id(int index_msb) 165static int x2apic_cluster_phys_pkg_id(int initial_apicid, int index_msb)
161{ 166{
162 return current_cpu_data.initial_apicid >> index_msb; 167 return current_cpu_data.initial_apicid >> index_msb;
163} 168}
@@ -172,27 +177,63 @@ static void init_x2apic_ldr(void)
172 int cpu = smp_processor_id(); 177 int cpu = smp_processor_id();
173 178
174 per_cpu(x86_cpu_to_logical_apicid, cpu) = apic_read(APIC_LDR); 179 per_cpu(x86_cpu_to_logical_apicid, cpu) = apic_read(APIC_LDR);
175 return; 180}
176} 181
177 182struct apic apic_x2apic_cluster = {
178struct genapic apic_x2apic_cluster = { 183
179 .name = "cluster x2apic", 184 .name = "cluster x2apic",
180 .acpi_madt_oem_check = x2apic_acpi_madt_oem_check, 185 .probe = NULL,
181 .int_delivery_mode = dest_LowestPrio, 186 .acpi_madt_oem_check = x2apic_acpi_madt_oem_check,
182 .int_dest_mode = (APIC_DEST_LOGICAL != 0), 187 .apic_id_registered = x2apic_apic_id_registered,
183 .target_cpus = x2apic_target_cpus, 188
184 .vector_allocation_domain = x2apic_vector_allocation_domain, 189 .irq_delivery_mode = dest_LowestPrio,
185 .apic_id_registered = x2apic_apic_id_registered, 190 .irq_dest_mode = 1, /* logical */
186 .init_apic_ldr = init_x2apic_ldr, 191
187 .send_IPI_all = x2apic_send_IPI_all, 192 .target_cpus = x2apic_target_cpus,
188 .send_IPI_allbutself = x2apic_send_IPI_allbutself, 193 .disable_esr = 0,
189 .send_IPI_mask = x2apic_send_IPI_mask, 194 .dest_logical = APIC_DEST_LOGICAL,
190 .send_IPI_mask_allbutself = x2apic_send_IPI_mask_allbutself, 195 .check_apicid_used = NULL,
191 .send_IPI_self = x2apic_send_IPI_self, 196 .check_apicid_present = NULL,
192 .cpu_mask_to_apicid = x2apic_cpu_mask_to_apicid, 197
193 .cpu_mask_to_apicid_and = x2apic_cpu_mask_to_apicid_and, 198 .vector_allocation_domain = x2apic_vector_allocation_domain,
194 .phys_pkg_id = phys_pkg_id, 199 .init_apic_ldr = init_x2apic_ldr,
195 .get_apic_id = get_apic_id, 200
196 .set_apic_id = set_apic_id, 201 .ioapic_phys_id_map = NULL,
197 .apic_id_mask = (0xFFFFFFFFu), 202 .setup_apic_routing = NULL,
203 .multi_timer_check = NULL,
204 .apicid_to_node = NULL,
205 .cpu_to_logical_apicid = NULL,
206 .cpu_present_to_apicid = default_cpu_present_to_apicid,
207 .apicid_to_cpu_present = NULL,
208 .setup_portio_remap = NULL,
209 .check_phys_apicid_present = default_check_phys_apicid_present,
210 .enable_apic_mode = NULL,
211 .phys_pkg_id = x2apic_cluster_phys_pkg_id,
212 .mps_oem_check = NULL,
213
214 .get_apic_id = x2apic_cluster_phys_get_apic_id,
215 .set_apic_id = set_apic_id,
216 .apic_id_mask = 0xFFFFFFFFu,
217
218 .cpu_mask_to_apicid = x2apic_cpu_mask_to_apicid,
219 .cpu_mask_to_apicid_and = x2apic_cpu_mask_to_apicid_and,
220
221 .send_IPI_mask = x2apic_send_IPI_mask,
222 .send_IPI_mask_allbutself = x2apic_send_IPI_mask_allbutself,
223 .send_IPI_allbutself = x2apic_send_IPI_allbutself,
224 .send_IPI_all = x2apic_send_IPI_all,
225 .send_IPI_self = x2apic_send_IPI_self,
226
227 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
228 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
229 .wait_for_init_deassert = NULL,
230 .smp_callin_clear_local_apic = NULL,
231 .inquire_remote_apic = NULL,
232
233 .read = native_apic_msr_read,
234 .write = native_apic_msr_write,
235 .icr_read = native_x2apic_icr_read,
236 .icr_write = native_x2apic_icr_write,
237 .wait_icr_idle = native_x2apic_wait_icr_idle,
238 .safe_wait_icr_idle = native_safe_x2apic_wait_icr_idle,
198}; 239};
diff --git a/arch/x86/kernel/genx2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c
index 21bcc0e098ba..23625b9f98b2 100644
--- a/arch/x86/kernel/genx2apic_phys.c
+++ b/arch/x86/kernel/apic/x2apic_phys.c
@@ -7,10 +7,10 @@
7#include <linux/dmar.h> 7#include <linux/dmar.h>
8 8
9#include <asm/smp.h> 9#include <asm/smp.h>
10#include <asm/apic.h>
10#include <asm/ipi.h> 11#include <asm/ipi.h>
11#include <asm/genapic.h>
12 12
13static int x2apic_phys; 13int x2apic_phys;
14 14
15static int set_x2apic_phys_mode(char *arg) 15static int set_x2apic_phys_mode(char *arg)
16{ 16{
@@ -21,10 +21,10 @@ early_param("x2apic_phys", set_x2apic_phys_mode);
21 21
22static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) 22static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
23{ 23{
24 if (cpu_has_x2apic && x2apic_phys) 24 if (x2apic_phys)
25 return 1; 25 return x2apic_enabled();
26 26 else
27 return 0; 27 return 0;
28} 28}
29 29
30/* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ 30/* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */
@@ -50,13 +50,13 @@ static void __x2apic_send_IPI_dest(unsigned int apicid, int vector,
50 /* 50 /*
51 * send the IPI. 51 * send the IPI.
52 */ 52 */
53 x2apic_icr_write(cfg, apicid); 53 native_x2apic_icr_write(cfg, apicid);
54} 54}
55 55
56static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector) 56static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector)
57{ 57{
58 unsigned long flags;
59 unsigned long query_cpu; 58 unsigned long query_cpu;
59 unsigned long flags;
60 60
61 local_irq_save(flags); 61 local_irq_save(flags);
62 for_each_cpu(query_cpu, mask) { 62 for_each_cpu(query_cpu, mask) {
@@ -66,12 +66,12 @@ static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector)
66 local_irq_restore(flags); 66 local_irq_restore(flags);
67} 67}
68 68
69static void x2apic_send_IPI_mask_allbutself(const struct cpumask *mask, 69static void
70 int vector) 70 x2apic_send_IPI_mask_allbutself(const struct cpumask *mask, int vector)
71{ 71{
72 unsigned long flags;
73 unsigned long query_cpu;
74 unsigned long this_cpu = smp_processor_id(); 72 unsigned long this_cpu = smp_processor_id();
73 unsigned long query_cpu;
74 unsigned long flags;
75 75
76 local_irq_save(flags); 76 local_irq_save(flags);
77 for_each_cpu(query_cpu, mask) { 77 for_each_cpu(query_cpu, mask) {
@@ -85,16 +85,17 @@ static void x2apic_send_IPI_mask_allbutself(const struct cpumask *mask,
85 85
86static void x2apic_send_IPI_allbutself(int vector) 86static void x2apic_send_IPI_allbutself(int vector)
87{ 87{
88 unsigned long flags;
89 unsigned long query_cpu;
90 unsigned long this_cpu = smp_processor_id(); 88 unsigned long this_cpu = smp_processor_id();
89 unsigned long query_cpu;
90 unsigned long flags;
91 91
92 local_irq_save(flags); 92 local_irq_save(flags);
93 for_each_online_cpu(query_cpu) 93 for_each_online_cpu(query_cpu) {
94 if (query_cpu != this_cpu) 94 if (query_cpu == this_cpu)
95 __x2apic_send_IPI_dest( 95 continue;
96 per_cpu(x86_cpu_to_apicid, query_cpu), 96 __x2apic_send_IPI_dest(per_cpu(x86_cpu_to_apicid, query_cpu),
97 vector, APIC_DEST_PHYSICAL); 97 vector, APIC_DEST_PHYSICAL);
98 }
98 local_irq_restore(flags); 99 local_irq_restore(flags);
99} 100}
100 101
@@ -110,21 +111,21 @@ static int x2apic_apic_id_registered(void)
110 111
111static unsigned int x2apic_cpu_mask_to_apicid(const struct cpumask *cpumask) 112static unsigned int x2apic_cpu_mask_to_apicid(const struct cpumask *cpumask)
112{ 113{
113 int cpu;
114
115 /* 114 /*
116 * We're using fixed IRQ delivery, can only return one phys APIC ID. 115 * We're using fixed IRQ delivery, can only return one phys APIC ID.
117 * May as well be the first. 116 * May as well be the first.
118 */ 117 */
119 cpu = cpumask_first(cpumask); 118 int cpu = cpumask_first(cpumask);
119
120 if ((unsigned)cpu < nr_cpu_ids) 120 if ((unsigned)cpu < nr_cpu_ids)
121 return per_cpu(x86_cpu_to_apicid, cpu); 121 return per_cpu(x86_cpu_to_apicid, cpu);
122 else 122 else
123 return BAD_APICID; 123 return BAD_APICID;
124} 124}
125 125
126static unsigned int x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask, 126static unsigned int
127 const struct cpumask *andmask) 127x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
128 const struct cpumask *andmask)
128{ 129{
129 int cpu; 130 int cpu;
130 131
@@ -132,31 +133,28 @@ static unsigned int x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
132 * We're using fixed IRQ delivery, can only return one phys APIC ID. 133 * We're using fixed IRQ delivery, can only return one phys APIC ID.
133 * May as well be the first. 134 * May as well be the first.
134 */ 135 */
135 for_each_cpu_and(cpu, cpumask, andmask) 136 for_each_cpu_and(cpu, cpumask, andmask) {
136 if (cpumask_test_cpu(cpu, cpu_online_mask)) 137 if (cpumask_test_cpu(cpu, cpu_online_mask))
137 break; 138 break;
139 }
140
138 if (cpu < nr_cpu_ids) 141 if (cpu < nr_cpu_ids)
139 return per_cpu(x86_cpu_to_apicid, cpu); 142 return per_cpu(x86_cpu_to_apicid, cpu);
143
140 return BAD_APICID; 144 return BAD_APICID;
141} 145}
142 146
143static unsigned int get_apic_id(unsigned long x) 147static unsigned int x2apic_phys_get_apic_id(unsigned long x)
144{ 148{
145 unsigned int id; 149 return x;
146
147 id = x;
148 return id;
149} 150}
150 151
151static unsigned long set_apic_id(unsigned int id) 152static unsigned long set_apic_id(unsigned int id)
152{ 153{
153 unsigned long x; 154 return id;
154
155 x = id;
156 return x;
157} 155}
158 156
159static unsigned int phys_pkg_id(int index_msb) 157static int x2apic_phys_pkg_id(int initial_apicid, int index_msb)
160{ 158{
161 return current_cpu_data.initial_apicid >> index_msb; 159 return current_cpu_data.initial_apicid >> index_msb;
162} 160}
@@ -168,27 +166,63 @@ static void x2apic_send_IPI_self(int vector)
168 166
169static void init_x2apic_ldr(void) 167static void init_x2apic_ldr(void)
170{ 168{
171 return; 169}
172} 170
173 171struct apic apic_x2apic_phys = {
174struct genapic apic_x2apic_phys = { 172
175 .name = "physical x2apic", 173 .name = "physical x2apic",
176 .acpi_madt_oem_check = x2apic_acpi_madt_oem_check, 174 .probe = NULL,
177 .int_delivery_mode = dest_Fixed, 175 .acpi_madt_oem_check = x2apic_acpi_madt_oem_check,
178 .int_dest_mode = (APIC_DEST_PHYSICAL != 0), 176 .apic_id_registered = x2apic_apic_id_registered,
179 .target_cpus = x2apic_target_cpus, 177
180 .vector_allocation_domain = x2apic_vector_allocation_domain, 178 .irq_delivery_mode = dest_Fixed,
181 .apic_id_registered = x2apic_apic_id_registered, 179 .irq_dest_mode = 0, /* physical */
182 .init_apic_ldr = init_x2apic_ldr, 180
183 .send_IPI_all = x2apic_send_IPI_all, 181 .target_cpus = x2apic_target_cpus,
184 .send_IPI_allbutself = x2apic_send_IPI_allbutself, 182 .disable_esr = 0,
185 .send_IPI_mask = x2apic_send_IPI_mask, 183 .dest_logical = 0,
186 .send_IPI_mask_allbutself = x2apic_send_IPI_mask_allbutself, 184 .check_apicid_used = NULL,
187 .send_IPI_self = x2apic_send_IPI_self, 185 .check_apicid_present = NULL,
188 .cpu_mask_to_apicid = x2apic_cpu_mask_to_apicid, 186
189 .cpu_mask_to_apicid_and = x2apic_cpu_mask_to_apicid_and, 187 .vector_allocation_domain = x2apic_vector_allocation_domain,
190 .phys_pkg_id = phys_pkg_id, 188 .init_apic_ldr = init_x2apic_ldr,
191 .get_apic_id = get_apic_id, 189
192 .set_apic_id = set_apic_id, 190 .ioapic_phys_id_map = NULL,
193 .apic_id_mask = (0xFFFFFFFFu), 191 .setup_apic_routing = NULL,
192 .multi_timer_check = NULL,
193 .apicid_to_node = NULL,
194 .cpu_to_logical_apicid = NULL,
195 .cpu_present_to_apicid = default_cpu_present_to_apicid,
196 .apicid_to_cpu_present = NULL,
197 .setup_portio_remap = NULL,
198 .check_phys_apicid_present = default_check_phys_apicid_present,
199 .enable_apic_mode = NULL,
200 .phys_pkg_id = x2apic_phys_pkg_id,
201 .mps_oem_check = NULL,
202
203 .get_apic_id = x2apic_phys_get_apic_id,
204 .set_apic_id = set_apic_id,
205 .apic_id_mask = 0xFFFFFFFFu,
206
207 .cpu_mask_to_apicid = x2apic_cpu_mask_to_apicid,
208 .cpu_mask_to_apicid_and = x2apic_cpu_mask_to_apicid_and,
209
210 .send_IPI_mask = x2apic_send_IPI_mask,
211 .send_IPI_mask_allbutself = x2apic_send_IPI_mask_allbutself,
212 .send_IPI_allbutself = x2apic_send_IPI_allbutself,
213 .send_IPI_all = x2apic_send_IPI_all,
214 .send_IPI_self = x2apic_send_IPI_self,
215
216 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
217 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
218 .wait_for_init_deassert = NULL,
219 .smp_callin_clear_local_apic = NULL,
220 .inquire_remote_apic = NULL,
221
222 .read = native_apic_msr_read,
223 .write = native_apic_msr_write,
224 .icr_read = native_x2apic_icr_read,
225 .icr_write = native_x2apic_icr_write,
226 .wait_icr_idle = native_x2apic_wait_icr_idle,
227 .safe_wait_icr_idle = native_safe_x2apic_wait_icr_idle,
194}; 228};
diff --git a/arch/x86/kernel/genx2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
index b193e082f6ce..1bd6da1f8fad 100644
--- a/arch/x86/kernel/genx2apic_uv_x.c
+++ b/arch/x86/kernel/apic/x2apic_uv_x.c
@@ -7,27 +7,28 @@
7 * 7 *
8 * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved. 8 * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved.
9 */ 9 */
10
11#include <linux/kernel.h>
12#include <linux/threads.h>
13#include <linux/cpu.h>
14#include <linux/cpumask.h> 10#include <linux/cpumask.h>
11#include <linux/hardirq.h>
12#include <linux/proc_fs.h>
13#include <linux/threads.h>
14#include <linux/kernel.h>
15#include <linux/module.h>
15#include <linux/string.h> 16#include <linux/string.h>
16#include <linux/ctype.h> 17#include <linux/ctype.h>
17#include <linux/init.h>
18#include <linux/sched.h> 18#include <linux/sched.h>
19#include <linux/module.h>
20#include <linux/hardirq.h>
21#include <linux/timer.h> 19#include <linux/timer.h>
22#include <linux/proc_fs.h> 20#include <linux/cpu.h>
23#include <asm/current.h> 21#include <linux/init.h>
24#include <asm/smp.h> 22
25#include <asm/ipi.h>
26#include <asm/genapic.h>
27#include <asm/pgtable.h>
28#include <asm/uv/uv_mmrs.h> 23#include <asm/uv/uv_mmrs.h>
29#include <asm/uv/uv_hub.h> 24#include <asm/uv/uv_hub.h>
25#include <asm/current.h>
26#include <asm/pgtable.h>
30#include <asm/uv/bios.h> 27#include <asm/uv/bios.h>
28#include <asm/uv/uv.h>
29#include <asm/apic.h>
30#include <asm/ipi.h>
31#include <asm/smp.h>
31 32
32DEFINE_PER_CPU(int, x2apic_extra_bits); 33DEFINE_PER_CPU(int, x2apic_extra_bits);
33 34
@@ -90,39 +91,43 @@ static void uv_vector_allocation_domain(int cpu, struct cpumask *retmask)
90 cpumask_set_cpu(cpu, retmask); 91 cpumask_set_cpu(cpu, retmask);
91} 92}
92 93
93int uv_wakeup_secondary(int phys_apicid, unsigned int start_rip) 94static int uv_wakeup_secondary(int phys_apicid, unsigned long start_rip)
94{ 95{
96#ifdef CONFIG_SMP
95 unsigned long val; 97 unsigned long val;
96 int pnode; 98 int pnode;
97 99
98 pnode = uv_apicid_to_pnode(phys_apicid); 100 pnode = uv_apicid_to_pnode(phys_apicid);
99 val = (1UL << UVH_IPI_INT_SEND_SHFT) | 101 val = (1UL << UVH_IPI_INT_SEND_SHFT) |
100 (phys_apicid << UVH_IPI_INT_APIC_ID_SHFT) | 102 (phys_apicid << UVH_IPI_INT_APIC_ID_SHFT) |
101 (((long)start_rip << UVH_IPI_INT_VECTOR_SHFT) >> 12) | 103 ((start_rip << UVH_IPI_INT_VECTOR_SHFT) >> 12) |
102 APIC_DM_INIT; 104 APIC_DM_INIT;
103 uv_write_global_mmr64(pnode, UVH_IPI_INT, val); 105 uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
104 mdelay(10); 106 mdelay(10);
105 107
106 val = (1UL << UVH_IPI_INT_SEND_SHFT) | 108 val = (1UL << UVH_IPI_INT_SEND_SHFT) |
107 (phys_apicid << UVH_IPI_INT_APIC_ID_SHFT) | 109 (phys_apicid << UVH_IPI_INT_APIC_ID_SHFT) |
108 (((long)start_rip << UVH_IPI_INT_VECTOR_SHFT) >> 12) | 110 ((start_rip << UVH_IPI_INT_VECTOR_SHFT) >> 12) |
109 APIC_DM_STARTUP; 111 APIC_DM_STARTUP;
110 uv_write_global_mmr64(pnode, UVH_IPI_INT, val); 112 uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
113
114 atomic_set(&init_deasserted, 1);
115#endif
111 return 0; 116 return 0;
112} 117}
113 118
114static void uv_send_IPI_one(int cpu, int vector) 119static void uv_send_IPI_one(int cpu, int vector)
115{ 120{
116 unsigned long val, apicid, lapicid; 121 unsigned long val, apicid;
117 int pnode; 122 int pnode;
118 123
119 apicid = per_cpu(x86_cpu_to_apicid, cpu); 124 apicid = per_cpu(x86_cpu_to_apicid, cpu);
120 lapicid = apicid & 0x3f; /* ZZZ macro needed */
121 pnode = uv_apicid_to_pnode(apicid); 125 pnode = uv_apicid_to_pnode(apicid);
122 val = 126
123 (1UL << UVH_IPI_INT_SEND_SHFT) | (lapicid << 127 val = (1UL << UVH_IPI_INT_SEND_SHFT) |
124 UVH_IPI_INT_APIC_ID_SHFT) | 128 (apicid << UVH_IPI_INT_APIC_ID_SHFT) |
125 (vector << UVH_IPI_INT_VECTOR_SHFT); 129 (vector << UVH_IPI_INT_VECTOR_SHFT);
130
126 uv_write_global_mmr64(pnode, UVH_IPI_INT, val); 131 uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
127} 132}
128 133
@@ -136,22 +141,24 @@ static void uv_send_IPI_mask(const struct cpumask *mask, int vector)
136 141
137static void uv_send_IPI_mask_allbutself(const struct cpumask *mask, int vector) 142static void uv_send_IPI_mask_allbutself(const struct cpumask *mask, int vector)
138{ 143{
139 unsigned int cpu;
140 unsigned int this_cpu = smp_processor_id(); 144 unsigned int this_cpu = smp_processor_id();
145 unsigned int cpu;
141 146
142 for_each_cpu(cpu, mask) 147 for_each_cpu(cpu, mask) {
143 if (cpu != this_cpu) 148 if (cpu != this_cpu)
144 uv_send_IPI_one(cpu, vector); 149 uv_send_IPI_one(cpu, vector);
150 }
145} 151}
146 152
147static void uv_send_IPI_allbutself(int vector) 153static void uv_send_IPI_allbutself(int vector)
148{ 154{
149 unsigned int cpu;
150 unsigned int this_cpu = smp_processor_id(); 155 unsigned int this_cpu = smp_processor_id();
156 unsigned int cpu;
151 157
152 for_each_online_cpu(cpu) 158 for_each_online_cpu(cpu) {
153 if (cpu != this_cpu) 159 if (cpu != this_cpu)
154 uv_send_IPI_one(cpu, vector); 160 uv_send_IPI_one(cpu, vector);
161 }
155} 162}
156 163
157static void uv_send_IPI_all(int vector) 164static void uv_send_IPI_all(int vector)
@@ -170,21 +177,21 @@ static void uv_init_apic_ldr(void)
170 177
171static unsigned int uv_cpu_mask_to_apicid(const struct cpumask *cpumask) 178static unsigned int uv_cpu_mask_to_apicid(const struct cpumask *cpumask)
172{ 179{
173 int cpu;
174
175 /* 180 /*
176 * We're using fixed IRQ delivery, can only return one phys APIC ID. 181 * We're using fixed IRQ delivery, can only return one phys APIC ID.
177 * May as well be the first. 182 * May as well be the first.
178 */ 183 */
179 cpu = cpumask_first(cpumask); 184 int cpu = cpumask_first(cpumask);
185
180 if ((unsigned)cpu < nr_cpu_ids) 186 if ((unsigned)cpu < nr_cpu_ids)
181 return per_cpu(x86_cpu_to_apicid, cpu); 187 return per_cpu(x86_cpu_to_apicid, cpu);
182 else 188 else
183 return BAD_APICID; 189 return BAD_APICID;
184} 190}
185 191
186static unsigned int uv_cpu_mask_to_apicid_and(const struct cpumask *cpumask, 192static unsigned int
187 const struct cpumask *andmask) 193uv_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
194 const struct cpumask *andmask)
188{ 195{
189 int cpu; 196 int cpu;
190 197
@@ -192,15 +199,17 @@ static unsigned int uv_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
192 * We're using fixed IRQ delivery, can only return one phys APIC ID. 199 * We're using fixed IRQ delivery, can only return one phys APIC ID.
193 * May as well be the first. 200 * May as well be the first.
194 */ 201 */
195 for_each_cpu_and(cpu, cpumask, andmask) 202 for_each_cpu_and(cpu, cpumask, andmask) {
196 if (cpumask_test_cpu(cpu, cpu_online_mask)) 203 if (cpumask_test_cpu(cpu, cpu_online_mask))
197 break; 204 break;
205 }
198 if (cpu < nr_cpu_ids) 206 if (cpu < nr_cpu_ids)
199 return per_cpu(x86_cpu_to_apicid, cpu); 207 return per_cpu(x86_cpu_to_apicid, cpu);
208
200 return BAD_APICID; 209 return BAD_APICID;
201} 210}
202 211
203static unsigned int get_apic_id(unsigned long x) 212static unsigned int x2apic_get_apic_id(unsigned long x)
204{ 213{
205 unsigned int id; 214 unsigned int id;
206 215
@@ -222,10 +231,10 @@ static unsigned long set_apic_id(unsigned int id)
222static unsigned int uv_read_apic_id(void) 231static unsigned int uv_read_apic_id(void)
223{ 232{
224 233
225 return get_apic_id(apic_read(APIC_ID)); 234 return x2apic_get_apic_id(apic_read(APIC_ID));
226} 235}
227 236
228static unsigned int phys_pkg_id(int index_msb) 237static int uv_phys_pkg_id(int initial_apicid, int index_msb)
229{ 238{
230 return uv_read_apic_id() >> index_msb; 239 return uv_read_apic_id() >> index_msb;
231} 240}
@@ -235,26 +244,64 @@ static void uv_send_IPI_self(int vector)
235 apic_write(APIC_SELF_IPI, vector); 244 apic_write(APIC_SELF_IPI, vector);
236} 245}
237 246
238struct genapic apic_x2apic_uv_x = { 247struct apic apic_x2apic_uv_x = {
239 .name = "UV large system", 248
240 .acpi_madt_oem_check = uv_acpi_madt_oem_check, 249 .name = "UV large system",
241 .int_delivery_mode = dest_Fixed, 250 .probe = NULL,
242 .int_dest_mode = (APIC_DEST_PHYSICAL != 0), 251 .acpi_madt_oem_check = uv_acpi_madt_oem_check,
243 .target_cpus = uv_target_cpus, 252 .apic_id_registered = uv_apic_id_registered,
244 .vector_allocation_domain = uv_vector_allocation_domain, 253
245 .apic_id_registered = uv_apic_id_registered, 254 .irq_delivery_mode = dest_Fixed,
246 .init_apic_ldr = uv_init_apic_ldr, 255 .irq_dest_mode = 1, /* logical */
247 .send_IPI_all = uv_send_IPI_all, 256
248 .send_IPI_allbutself = uv_send_IPI_allbutself, 257 .target_cpus = uv_target_cpus,
249 .send_IPI_mask = uv_send_IPI_mask, 258 .disable_esr = 0,
250 .send_IPI_mask_allbutself = uv_send_IPI_mask_allbutself, 259 .dest_logical = APIC_DEST_LOGICAL,
251 .send_IPI_self = uv_send_IPI_self, 260 .check_apicid_used = NULL,
252 .cpu_mask_to_apicid = uv_cpu_mask_to_apicid, 261 .check_apicid_present = NULL,
253 .cpu_mask_to_apicid_and = uv_cpu_mask_to_apicid_and, 262
254 .phys_pkg_id = phys_pkg_id, 263 .vector_allocation_domain = uv_vector_allocation_domain,
255 .get_apic_id = get_apic_id, 264 .init_apic_ldr = uv_init_apic_ldr,
256 .set_apic_id = set_apic_id, 265
257 .apic_id_mask = (0xFFFFFFFFu), 266 .ioapic_phys_id_map = NULL,
267 .setup_apic_routing = NULL,
268 .multi_timer_check = NULL,
269 .apicid_to_node = NULL,
270 .cpu_to_logical_apicid = NULL,
271 .cpu_present_to_apicid = default_cpu_present_to_apicid,
272 .apicid_to_cpu_present = NULL,
273 .setup_portio_remap = NULL,
274 .check_phys_apicid_present = default_check_phys_apicid_present,
275 .enable_apic_mode = NULL,
276 .phys_pkg_id = uv_phys_pkg_id,
277 .mps_oem_check = NULL,
278
279 .get_apic_id = x2apic_get_apic_id,
280 .set_apic_id = set_apic_id,
281 .apic_id_mask = 0xFFFFFFFFu,
282
283 .cpu_mask_to_apicid = uv_cpu_mask_to_apicid,
284 .cpu_mask_to_apicid_and = uv_cpu_mask_to_apicid_and,
285
286 .send_IPI_mask = uv_send_IPI_mask,
287 .send_IPI_mask_allbutself = uv_send_IPI_mask_allbutself,
288 .send_IPI_allbutself = uv_send_IPI_allbutself,
289 .send_IPI_all = uv_send_IPI_all,
290 .send_IPI_self = uv_send_IPI_self,
291
292 .wakeup_secondary_cpu = uv_wakeup_secondary,
293 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
294 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
295 .wait_for_init_deassert = NULL,
296 .smp_callin_clear_local_apic = NULL,
297 .inquire_remote_apic = NULL,
298
299 .read = native_apic_msr_read,
300 .write = native_apic_msr_write,
301 .icr_read = native_x2apic_icr_read,
302 .icr_write = native_x2apic_icr_write,
303 .wait_icr_idle = native_x2apic_wait_icr_idle,
304 .safe_wait_icr_idle = native_safe_x2apic_wait_icr_idle,
258}; 305};
259 306
260static __cpuinit void set_x2apic_extra_bits(int pnode) 307static __cpuinit void set_x2apic_extra_bits(int pnode)
@@ -322,7 +369,7 @@ static __init void map_high(char *id, unsigned long base, int shift,
322 paddr = base << shift; 369 paddr = base << shift;
323 bytes = (1UL << shift) * (max_pnode + 1); 370 bytes = (1UL << shift) * (max_pnode + 1);
324 printk(KERN_INFO "UV: Map %s_HI 0x%lx - 0x%lx\n", id, paddr, 371 printk(KERN_INFO "UV: Map %s_HI 0x%lx - 0x%lx\n", id, paddr,
325 paddr + bytes); 372 paddr + bytes);
326 if (map_type == map_uc) 373 if (map_type == map_uc)
327 init_extra_mapping_uc(paddr, bytes); 374 init_extra_mapping_uc(paddr, bytes);
328 else 375 else
@@ -485,7 +532,7 @@ late_initcall(uv_init_heartbeat);
485 532
486/* 533/*
487 * Called on each cpu to initialize the per_cpu UV data area. 534 * Called on each cpu to initialize the per_cpu UV data area.
488 * ZZZ hotplug not supported yet 535 * FIXME: hotplug not supported yet
489 */ 536 */
490void __cpuinit uv_cpu_init(void) 537void __cpuinit uv_cpu_init(void)
491{ 538{
diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
index 3a26525a3f31..10033fe718e0 100644
--- a/arch/x86/kernel/apm_32.c
+++ b/arch/x86/kernel/apm_32.c
@@ -160,9 +160,9 @@
160 * Work around byte swap bug in one of the Vaio's BIOS's 160 * Work around byte swap bug in one of the Vaio's BIOS's
161 * (Marc Boucher <marc@mbsi.ca>). 161 * (Marc Boucher <marc@mbsi.ca>).
162 * Exposed the disable flag to dmi so that we can handle known 162 * Exposed the disable flag to dmi so that we can handle known
163 * broken APM (Alan Cox <alan@redhat.com>). 163 * broken APM (Alan Cox <alan@lxorguk.ukuu.org.uk>).
164 * 1.14ac: If the BIOS says "I slowed the CPU down" then don't spin 164 * 1.14ac: If the BIOS says "I slowed the CPU down" then don't spin
165 * calling it - instead idle. (Alan Cox <alan@redhat.com>) 165 * calling it - instead idle. (Alan Cox <alan@lxorguk.ukuu.org.uk>)
166 * If an APM idle fails log it and idle sensibly 166 * If an APM idle fails log it and idle sensibly
167 * 1.15: Don't queue events to clients who open the device O_WRONLY. 167 * 1.15: Don't queue events to clients who open the device O_WRONLY.
168 * Don't expect replies from clients who open the device O_RDONLY. 168 * Don't expect replies from clients who open the device O_RDONLY.
@@ -301,7 +301,7 @@ extern int (*console_blank_hook)(int);
301 */ 301 */
302#define APM_ZERO_SEGS 302#define APM_ZERO_SEGS
303 303
304#include "apm.h" 304#include <asm/apm.h>
305 305
306/* 306/*
307 * Define to re-initialize the interrupt 0 timer to 100 Hz after a suspend. 307 * Define to re-initialize the interrupt 0 timer to 100 Hz after a suspend.
@@ -1192,6 +1192,7 @@ static int suspend(int vetoable)
1192 device_suspend(PMSG_SUSPEND); 1192 device_suspend(PMSG_SUSPEND);
1193 local_irq_disable(); 1193 local_irq_disable();
1194 device_power_down(PMSG_SUSPEND); 1194 device_power_down(PMSG_SUSPEND);
1195 sysdev_suspend(PMSG_SUSPEND);
1195 1196
1196 local_irq_enable(); 1197 local_irq_enable();
1197 1198
@@ -1208,6 +1209,7 @@ static int suspend(int vetoable)
1208 if (err != APM_SUCCESS) 1209 if (err != APM_SUCCESS)
1209 apm_error("suspend", err); 1210 apm_error("suspend", err);
1210 err = (err == APM_SUCCESS) ? 0 : -EIO; 1211 err = (err == APM_SUCCESS) ? 0 : -EIO;
1212 sysdev_resume();
1211 device_power_up(PMSG_RESUME); 1213 device_power_up(PMSG_RESUME);
1212 local_irq_enable(); 1214 local_irq_enable();
1213 device_resume(PMSG_RESUME); 1215 device_resume(PMSG_RESUME);
@@ -1228,6 +1230,7 @@ static void standby(void)
1228 1230
1229 local_irq_disable(); 1231 local_irq_disable();
1230 device_power_down(PMSG_SUSPEND); 1232 device_power_down(PMSG_SUSPEND);
1233 sysdev_suspend(PMSG_SUSPEND);
1231 local_irq_enable(); 1234 local_irq_enable();
1232 1235
1233 err = set_system_power_state(APM_STATE_STANDBY); 1236 err = set_system_power_state(APM_STATE_STANDBY);
@@ -1235,6 +1238,7 @@ static void standby(void)
1235 apm_error("standby", err); 1238 apm_error("standby", err);
1236 1239
1237 local_irq_disable(); 1240 local_irq_disable();
1241 sysdev_resume();
1238 device_power_up(PMSG_RESUME); 1242 device_power_up(PMSG_RESUME);
1239 local_irq_enable(); 1243 local_irq_enable();
1240} 1244}
diff --git a/arch/x86/kernel/asm-offsets_32.c b/arch/x86/kernel/asm-offsets_32.c
index ee4df08feee6..fbf2f33e3080 100644
--- a/arch/x86/kernel/asm-offsets_32.c
+++ b/arch/x86/kernel/asm-offsets_32.c
@@ -75,6 +75,7 @@ void foo(void)
75 OFFSET(PT_DS, pt_regs, ds); 75 OFFSET(PT_DS, pt_regs, ds);
76 OFFSET(PT_ES, pt_regs, es); 76 OFFSET(PT_ES, pt_regs, es);
77 OFFSET(PT_FS, pt_regs, fs); 77 OFFSET(PT_FS, pt_regs, fs);
78 OFFSET(PT_GS, pt_regs, gs);
78 OFFSET(PT_ORIG_EAX, pt_regs, orig_ax); 79 OFFSET(PT_ORIG_EAX, pt_regs, orig_ax);
79 OFFSET(PT_EIP, pt_regs, ip); 80 OFFSET(PT_EIP, pt_regs, ip);
80 OFFSET(PT_CS, pt_regs, cs); 81 OFFSET(PT_CS, pt_regs, cs);
diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
index 1d41d3f1edbc..8793ab33e2c1 100644
--- a/arch/x86/kernel/asm-offsets_64.c
+++ b/arch/x86/kernel/asm-offsets_64.c
@@ -11,7 +11,6 @@
11#include <linux/hardirq.h> 11#include <linux/hardirq.h>
12#include <linux/suspend.h> 12#include <linux/suspend.h>
13#include <linux/kbuild.h> 13#include <linux/kbuild.h>
14#include <asm/pda.h>
15#include <asm/processor.h> 14#include <asm/processor.h>
16#include <asm/segment.h> 15#include <asm/segment.h>
17#include <asm/thread_info.h> 16#include <asm/thread_info.h>
@@ -48,16 +47,6 @@ int main(void)
48#endif 47#endif
49 BLANK(); 48 BLANK();
50#undef ENTRY 49#undef ENTRY
51#define ENTRY(entry) DEFINE(pda_ ## entry, offsetof(struct x8664_pda, entry))
52 ENTRY(kernelstack);
53 ENTRY(oldrsp);
54 ENTRY(pcurrent);
55 ENTRY(irqcount);
56 ENTRY(cpunumber);
57 ENTRY(irqstackptr);
58 ENTRY(data_offset);
59 BLANK();
60#undef ENTRY
61#ifdef CONFIG_PARAVIRT 50#ifdef CONFIG_PARAVIRT
62 BLANK(); 51 BLANK();
63 OFFSET(PARAVIRT_enabled, pv_info, paravirt_enabled); 52 OFFSET(PARAVIRT_enabled, pv_info, paravirt_enabled);
diff --git a/arch/x86/kernel/cpu/addon_cpuid_features.c b/arch/x86/kernel/cpu/addon_cpuid_features.c
index 2cf23634b6d9..6882a735d9c0 100644
--- a/arch/x86/kernel/cpu/addon_cpuid_features.c
+++ b/arch/x86/kernel/cpu/addon_cpuid_features.c
@@ -7,7 +7,7 @@
7#include <asm/pat.h> 7#include <asm/pat.h>
8#include <asm/processor.h> 8#include <asm/processor.h>
9 9
10#include <mach_apic.h> 10#include <asm/apic.h>
11 11
12struct cpuid_bit { 12struct cpuid_bit {
13 u16 feature; 13 u16 feature;
@@ -69,7 +69,7 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c)
69 */ 69 */
70void __cpuinit detect_extended_topology(struct cpuinfo_x86 *c) 70void __cpuinit detect_extended_topology(struct cpuinfo_x86 *c)
71{ 71{
72#ifdef CONFIG_X86_SMP 72#ifdef CONFIG_SMP
73 unsigned int eax, ebx, ecx, edx, sub_index; 73 unsigned int eax, ebx, ecx, edx, sub_index;
74 unsigned int ht_mask_width, core_plus_mask_width; 74 unsigned int ht_mask_width, core_plus_mask_width;
75 unsigned int core_select_mask, core_level_siblings; 75 unsigned int core_select_mask, core_level_siblings;
@@ -116,22 +116,14 @@ void __cpuinit detect_extended_topology(struct cpuinfo_x86 *c)
116 116
117 core_select_mask = (~(-1 << core_plus_mask_width)) >> ht_mask_width; 117 core_select_mask = (~(-1 << core_plus_mask_width)) >> ht_mask_width;
118 118
119#ifdef CONFIG_X86_32 119 c->cpu_core_id = apic->phys_pkg_id(c->initial_apicid, ht_mask_width)
120 c->cpu_core_id = phys_pkg_id(c->initial_apicid, ht_mask_width)
121 & core_select_mask; 120 & core_select_mask;
122 c->phys_proc_id = phys_pkg_id(c->initial_apicid, core_plus_mask_width); 121 c->phys_proc_id = apic->phys_pkg_id(c->initial_apicid, core_plus_mask_width);
123 /* 122 /*
124 * Reinit the apicid, now that we have extended initial_apicid. 123 * Reinit the apicid, now that we have extended initial_apicid.
125 */ 124 */
126 c->apicid = phys_pkg_id(c->initial_apicid, 0); 125 c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
127#else 126
128 c->cpu_core_id = phys_pkg_id(ht_mask_width) & core_select_mask;
129 c->phys_proc_id = phys_pkg_id(core_plus_mask_width);
130 /*
131 * Reinit the apicid, now that we have extended initial_apicid.
132 */
133 c->apicid = phys_pkg_id(0);
134#endif
135 c->x86_max_cores = (core_level_siblings / smp_num_siblings); 127 c->x86_max_cores = (core_level_siblings / smp_num_siblings);
136 128
137 129
@@ -143,37 +135,3 @@ void __cpuinit detect_extended_topology(struct cpuinfo_x86 *c)
143 return; 135 return;
144#endif 136#endif
145} 137}
146
147#ifdef CONFIG_X86_PAT
148void __cpuinit validate_pat_support(struct cpuinfo_x86 *c)
149{
150 if (!cpu_has_pat)
151 pat_disable("PAT not supported by CPU.");
152
153 switch (c->x86_vendor) {
154 case X86_VENDOR_INTEL:
155 /*
156 * There is a known erratum on Pentium III and Core Solo
157 * and Core Duo CPUs.
158 * " Page with PAT set to WC while associated MTRR is UC
159 * may consolidate to UC "
160 * Because of this erratum, it is better to stick with
161 * setting WC in MTRR rather than using PAT on these CPUs.
162 *
163 * Enable PAT WC only on P4, Core 2 or later CPUs.
164 */
165 if (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 15))
166 return;
167
168 pat_disable("PAT WC disabled due to known CPU erratum.");
169 return;
170
171 case X86_VENDOR_AMD:
172 case X86_VENDOR_CENTAUR:
173 case X86_VENDOR_TRANSMETA:
174 return;
175 }
176
177 pat_disable("PAT disabled. Not yet verified on this CPU type.");
178}
179#endif
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 7c878f6aa919..25423a5b80ed 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -12,8 +12,6 @@
12# include <asm/cacheflush.h> 12# include <asm/cacheflush.h>
13#endif 13#endif
14 14
15#include <mach_apic.h>
16
17#include "cpu.h" 15#include "cpu.h"
18 16
19#ifdef CONFIG_X86_32 17#ifdef CONFIG_X86_32
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 3f95a40f718a..826d5c876278 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -21,14 +21,14 @@
21#include <asm/asm.h> 21#include <asm/asm.h>
22#include <asm/numa.h> 22#include <asm/numa.h>
23#include <asm/smp.h> 23#include <asm/smp.h>
24#ifdef CONFIG_X86_LOCAL_APIC 24#include <asm/cpu.h>
25#include <asm/mpspec.h> 25#include <asm/cpumask.h>
26#include <asm/apic.h> 26#include <asm/apic.h>
27#include <mach_apic.h> 27
28#include <asm/genapic.h> 28#ifdef CONFIG_X86_LOCAL_APIC
29#include <asm/uv/uv.h>
29#endif 30#endif
30 31
31#include <asm/pda.h>
32#include <asm/pgtable.h> 32#include <asm/pgtable.h>
33#include <asm/processor.h> 33#include <asm/processor.h>
34#include <asm/desc.h> 34#include <asm/desc.h>
@@ -37,28 +37,58 @@
37#include <asm/sections.h> 37#include <asm/sections.h>
38#include <asm/setup.h> 38#include <asm/setup.h>
39#include <asm/hypervisor.h> 39#include <asm/hypervisor.h>
40#include <asm/stackprotector.h>
40 41
41#include "cpu.h" 42#include "cpu.h"
42 43
44#ifdef CONFIG_X86_64
45
46/* all of these masks are initialized in setup_cpu_local_masks() */
47cpumask_var_t cpu_callin_mask;
48cpumask_var_t cpu_callout_mask;
49cpumask_var_t cpu_initialized_mask;
50
51/* representing cpus for which sibling maps can be computed */
52cpumask_var_t cpu_sibling_setup_mask;
53
54/* correctly size the local cpu masks */
55void __init setup_cpu_local_masks(void)
56{
57 alloc_bootmem_cpumask_var(&cpu_initialized_mask);
58 alloc_bootmem_cpumask_var(&cpu_callin_mask);
59 alloc_bootmem_cpumask_var(&cpu_callout_mask);
60 alloc_bootmem_cpumask_var(&cpu_sibling_setup_mask);
61}
62
63#else /* CONFIG_X86_32 */
64
65cpumask_t cpu_callin_map;
66cpumask_t cpu_callout_map;
67cpumask_t cpu_initialized;
68cpumask_t cpu_sibling_setup_map;
69
70#endif /* CONFIG_X86_32 */
71
72
43static struct cpu_dev *this_cpu __cpuinitdata; 73static struct cpu_dev *this_cpu __cpuinitdata;
44 74
75DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
45#ifdef CONFIG_X86_64 76#ifdef CONFIG_X86_64
46/* We need valid kernel segments for data and code in long mode too 77 /*
47 * IRET will check the segment types kkeil 2000/10/28 78 * We need valid kernel segments for data and code in long mode too
48 * Also sysret mandates a special GDT layout 79 * IRET will check the segment types kkeil 2000/10/28
49 */ 80 * Also sysret mandates a special GDT layout
50/* The TLS descriptors are currently at a different place compared to i386. 81 *
51 Hopefully nobody expects them at a fixed place (Wine?) */ 82 * The TLS descriptors are currently at a different place compared to i386.
52DEFINE_PER_CPU(struct gdt_page, gdt_page) = { .gdt = { 83 * Hopefully nobody expects them at a fixed place (Wine?)
84 */
53 [GDT_ENTRY_KERNEL32_CS] = { { { 0x0000ffff, 0x00cf9b00 } } }, 85 [GDT_ENTRY_KERNEL32_CS] = { { { 0x0000ffff, 0x00cf9b00 } } },
54 [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00af9b00 } } }, 86 [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00af9b00 } } },
55 [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9300 } } }, 87 [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9300 } } },
56 [GDT_ENTRY_DEFAULT_USER32_CS] = { { { 0x0000ffff, 0x00cffb00 } } }, 88 [GDT_ENTRY_DEFAULT_USER32_CS] = { { { 0x0000ffff, 0x00cffb00 } } },
57 [GDT_ENTRY_DEFAULT_USER_DS] = { { { 0x0000ffff, 0x00cff300 } } }, 89 [GDT_ENTRY_DEFAULT_USER_DS] = { { { 0x0000ffff, 0x00cff300 } } },
58 [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00affb00 } } }, 90 [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00affb00 } } },
59} };
60#else 91#else
61DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
62 [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00cf9a00 } } }, 92 [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00cf9a00 } } },
63 [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9200 } } }, 93 [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9200 } } },
64 [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00cffa00 } } }, 94 [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00cffa00 } } },
@@ -90,9 +120,10 @@ DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
90 [GDT_ENTRY_APMBIOS_BASE+2] = { { { 0x0000ffff, 0x00409200 } } }, 120 [GDT_ENTRY_APMBIOS_BASE+2] = { { { 0x0000ffff, 0x00409200 } } },
91 121
92 [GDT_ENTRY_ESPFIX_SS] = { { { 0x00000000, 0x00c09200 } } }, 122 [GDT_ENTRY_ESPFIX_SS] = { { { 0x00000000, 0x00c09200 } } },
93 [GDT_ENTRY_PERCPU] = { { { 0x00000000, 0x00000000 } } }, 123 [GDT_ENTRY_PERCPU] = { { { 0x0000ffff, 0x00cf9200 } } },
94} }; 124 GDT_STACK_CANARY_INIT
95#endif 125#endif
126} };
96EXPORT_PER_CPU_SYMBOL_GPL(gdt_page); 127EXPORT_PER_CPU_SYMBOL_GPL(gdt_page);
97 128
98#ifdef CONFIG_X86_32 129#ifdef CONFIG_X86_32
@@ -193,6 +224,49 @@ static inline void squash_the_stupid_serial_number(struct cpuinfo_x86 *c)
193#endif 224#endif
194 225
195/* 226/*
227 * Some CPU features depend on higher CPUID levels, which may not always
228 * be available due to CPUID level capping or broken virtualization
229 * software. Add those features to this table to auto-disable them.
230 */
231struct cpuid_dependent_feature {
232 u32 feature;
233 u32 level;
234};
235static const struct cpuid_dependent_feature __cpuinitconst
236cpuid_dependent_features[] = {
237 { X86_FEATURE_MWAIT, 0x00000005 },
238 { X86_FEATURE_DCA, 0x00000009 },
239 { X86_FEATURE_XSAVE, 0x0000000d },
240 { 0, 0 }
241};
242
243static void __cpuinit filter_cpuid_features(struct cpuinfo_x86 *c, bool warn)
244{
245 const struct cpuid_dependent_feature *df;
246 for (df = cpuid_dependent_features; df->feature; df++) {
247 /*
248 * Note: cpuid_level is set to -1 if unavailable, but
249 * extended_extended_level is set to 0 if unavailable
250 * and the legitimate extended levels are all negative
251 * when signed; hence the weird messing around with
252 * signs here...
253 */
254 if (cpu_has(c, df->feature) &&
255 ((s32)df->level < 0 ?
256 (u32)df->level > (u32)c->extended_cpuid_level :
257 (s32)df->level > (s32)c->cpuid_level)) {
258 clear_cpu_cap(c, df->feature);
259 if (warn)
260 printk(KERN_WARNING
261 "CPU: CPU feature %s disabled "
262 "due to lack of CPUID level 0x%x\n",
263 x86_cap_flags[df->feature],
264 df->level);
265 }
266 }
267}
268
269/*
196 * Naming convention should be: <Name> [(<Codename>)] 270 * Naming convention should be: <Name> [(<Codename>)]
197 * This table only is used unless init_<vendor>() below doesn't set it; 271 * This table only is used unless init_<vendor>() below doesn't set it;
198 * in particular, if CPUID levels 0x80000002..4 are supported, this isn't used 272 * in particular, if CPUID levels 0x80000002..4 are supported, this isn't used
@@ -222,18 +296,29 @@ static char __cpuinit *table_lookup_model(struct cpuinfo_x86 *c)
222 296
223__u32 cleared_cpu_caps[NCAPINTS] __cpuinitdata; 297__u32 cleared_cpu_caps[NCAPINTS] __cpuinitdata;
224 298
299void load_percpu_segment(int cpu)
300{
301#ifdef CONFIG_X86_32
302 loadsegment(fs, __KERNEL_PERCPU);
303#else
304 loadsegment(gs, 0);
305 wrmsrl(MSR_GS_BASE, (unsigned long)per_cpu(irq_stack_union.gs_base, cpu));
306#endif
307 load_stack_canary_segment();
308}
309
225/* Current gdt points %fs at the "master" per-cpu area: after this, 310/* Current gdt points %fs at the "master" per-cpu area: after this,
226 * it's on the real one. */ 311 * it's on the real one. */
227void switch_to_new_gdt(void) 312void switch_to_new_gdt(int cpu)
228{ 313{
229 struct desc_ptr gdt_descr; 314 struct desc_ptr gdt_descr;
230 315
231 gdt_descr.address = (long)get_cpu_gdt_table(smp_processor_id()); 316 gdt_descr.address = (long)get_cpu_gdt_table(cpu);
232 gdt_descr.size = GDT_SIZE - 1; 317 gdt_descr.size = GDT_SIZE - 1;
233 load_gdt(&gdt_descr); 318 load_gdt(&gdt_descr);
234#ifdef CONFIG_X86_32 319 /* Reload the per-cpu base */
235 asm("mov %0, %%fs" : : "r" (__KERNEL_PERCPU) : "memory"); 320
236#endif 321 load_percpu_segment(cpu);
237} 322}
238 323
239static struct cpu_dev *cpu_devs[X86_VENDOR_NUM] = {}; 324static struct cpu_dev *cpu_devs[X86_VENDOR_NUM] = {};
@@ -363,11 +448,7 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
363 } 448 }
364 449
365 index_msb = get_count_order(smp_num_siblings); 450 index_msb = get_count_order(smp_num_siblings);
366#ifdef CONFIG_X86_64 451 c->phys_proc_id = apic->phys_pkg_id(c->initial_apicid, index_msb);
367 c->phys_proc_id = phys_pkg_id(index_msb);
368#else
369 c->phys_proc_id = phys_pkg_id(c->initial_apicid, index_msb);
370#endif
371 452
372 smp_num_siblings = smp_num_siblings / c->x86_max_cores; 453 smp_num_siblings = smp_num_siblings / c->x86_max_cores;
373 454
@@ -375,13 +456,8 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
375 456
376 core_bits = get_count_order(c->x86_max_cores); 457 core_bits = get_count_order(c->x86_max_cores);
377 458
378#ifdef CONFIG_X86_64 459 c->cpu_core_id = apic->phys_pkg_id(c->initial_apicid, index_msb) &
379 c->cpu_core_id = phys_pkg_id(index_msb) &
380 ((1 << core_bits) - 1); 460 ((1 << core_bits) - 1);
381#else
382 c->cpu_core_id = phys_pkg_id(c->initial_apicid, index_msb) &
383 ((1 << core_bits) - 1);
384#endif
385 } 461 }
386 462
387out: 463out:
@@ -550,11 +626,10 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
550 if (this_cpu->c_early_init) 626 if (this_cpu->c_early_init)
551 this_cpu->c_early_init(c); 627 this_cpu->c_early_init(c);
552 628
553 validate_pat_support(c);
554
555#ifdef CONFIG_SMP 629#ifdef CONFIG_SMP
556 c->cpu_index = boot_cpu_id; 630 c->cpu_index = boot_cpu_id;
557#endif 631#endif
632 filter_cpuid_features(c, false);
558} 633}
559 634
560void __init early_cpu_init(void) 635void __init early_cpu_init(void)
@@ -617,7 +692,7 @@ static void __cpuinit generic_identify(struct cpuinfo_x86 *c)
617 c->initial_apicid = (cpuid_ebx(1) >> 24) & 0xFF; 692 c->initial_apicid = (cpuid_ebx(1) >> 24) & 0xFF;
618#ifdef CONFIG_X86_32 693#ifdef CONFIG_X86_32
619# ifdef CONFIG_X86_HT 694# ifdef CONFIG_X86_HT
620 c->apicid = phys_pkg_id(c->initial_apicid, 0); 695 c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
621# else 696# else
622 c->apicid = c->initial_apicid; 697 c->apicid = c->initial_apicid;
623# endif 698# endif
@@ -664,7 +739,7 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
664 this_cpu->c_identify(c); 739 this_cpu->c_identify(c);
665 740
666#ifdef CONFIG_X86_64 741#ifdef CONFIG_X86_64
667 c->apicid = phys_pkg_id(0); 742 c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
668#endif 743#endif
669 744
670 /* 745 /*
@@ -688,6 +763,9 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
688 * we do "generic changes." 763 * we do "generic changes."
689 */ 764 */
690 765
766 /* Filter out anything that depends on CPUID levels we don't have */
767 filter_cpuid_features(c, true);
768
691 /* If the model name is still unset, do table lookup. */ 769 /* If the model name is still unset, do table lookup. */
692 if (!c->x86_model_id[0]) { 770 if (!c->x86_model_id[0]) {
693 char *p; 771 char *p;
@@ -856,57 +934,23 @@ static __init int setup_disablecpuid(char *arg)
856} 934}
857__setup("clearcpuid=", setup_disablecpuid); 935__setup("clearcpuid=", setup_disablecpuid);
858 936
859cpumask_t cpu_initialized __cpuinitdata = CPU_MASK_NONE;
860
861#ifdef CONFIG_X86_64 937#ifdef CONFIG_X86_64
862struct x8664_pda **_cpu_pda __read_mostly;
863EXPORT_SYMBOL(_cpu_pda);
864
865struct desc_ptr idt_descr = { 256 * 16 - 1, (unsigned long) idt_table }; 938struct desc_ptr idt_descr = { 256 * 16 - 1, (unsigned long) idt_table };
866 939
867static char boot_cpu_stack[IRQSTACKSIZE] __page_aligned_bss; 940DEFINE_PER_CPU_FIRST(union irq_stack_union,
941 irq_stack_union) __aligned(PAGE_SIZE);
942DEFINE_PER_CPU(char *, irq_stack_ptr) =
943 init_per_cpu_var(irq_stack_union.irq_stack) + IRQ_STACK_SIZE - 64;
868 944
869void __cpuinit pda_init(int cpu) 945DEFINE_PER_CPU(unsigned long, kernel_stack) =
870{ 946 (unsigned long)&init_thread_union - KERNEL_STACK_OFFSET + THREAD_SIZE;
871 struct x8664_pda *pda = cpu_pda(cpu); 947EXPORT_PER_CPU_SYMBOL(kernel_stack);
872 948
873 /* Setup up data that may be needed in __get_free_pages early */ 949DEFINE_PER_CPU(unsigned int, irq_count) = -1;
874 loadsegment(fs, 0);
875 loadsegment(gs, 0);
876 /* Memory clobbers used to order PDA accessed */
877 mb();
878 wrmsrl(MSR_GS_BASE, pda);
879 mb();
880
881 pda->cpunumber = cpu;
882 pda->irqcount = -1;
883 pda->kernelstack = (unsigned long)stack_thread_info() -
884 PDA_STACKOFFSET + THREAD_SIZE;
885 pda->active_mm = &init_mm;
886 pda->mmu_state = 0;
887
888 if (cpu == 0) {
889 /* others are initialized in smpboot.c */
890 pda->pcurrent = &init_task;
891 pda->irqstackptr = boot_cpu_stack;
892 pda->irqstackptr += IRQSTACKSIZE - 64;
893 } else {
894 if (!pda->irqstackptr) {
895 pda->irqstackptr = (char *)
896 __get_free_pages(GFP_ATOMIC, IRQSTACK_ORDER);
897 if (!pda->irqstackptr)
898 panic("cannot allocate irqstack for cpu %d",
899 cpu);
900 pda->irqstackptr += IRQSTACKSIZE - 64;
901 }
902 950
903 if (pda->nodenumber == 0 && cpu_to_node(cpu) != NUMA_NO_NODE) 951static DEFINE_PER_CPU_PAGE_ALIGNED(char, exception_stacks
904 pda->nodenumber = cpu_to_node(cpu); 952 [(N_EXCEPTION_STACKS - 1) * EXCEPTION_STKSZ + DEBUG_STKSZ])
905 } 953 __aligned(PAGE_SIZE);
906}
907
908static char boot_exception_stacks[(N_EXCEPTION_STACKS - 1) * EXCEPTION_STKSZ +
909 DEBUG_STKSZ] __page_aligned_bss;
910 954
911extern asmlinkage void ignore_sysret(void); 955extern asmlinkage void ignore_sysret(void);
912 956
@@ -939,16 +983,21 @@ unsigned long kernel_eflags;
939 */ 983 */
940DEFINE_PER_CPU(struct orig_ist, orig_ist); 984DEFINE_PER_CPU(struct orig_ist, orig_ist);
941 985
942#else 986#else /* x86_64 */
943 987
944/* Make sure %fs is initialized properly in idle threads */ 988#ifdef CONFIG_CC_STACKPROTECTOR
989DEFINE_PER_CPU(unsigned long, stack_canary);
990#endif
991
992/* Make sure %fs and %gs are initialized properly in idle threads */
945struct pt_regs * __cpuinit idle_regs(struct pt_regs *regs) 993struct pt_regs * __cpuinit idle_regs(struct pt_regs *regs)
946{ 994{
947 memset(regs, 0, sizeof(struct pt_regs)); 995 memset(regs, 0, sizeof(struct pt_regs));
948 regs->fs = __KERNEL_PERCPU; 996 regs->fs = __KERNEL_PERCPU;
997 regs->gs = __KERNEL_STACK_CANARY;
949 return regs; 998 return regs;
950} 999}
951#endif 1000#endif /* x86_64 */
952 1001
953/* 1002/*
954 * cpu_init() initializes state that is per-CPU. Some data is already 1003 * cpu_init() initializes state that is per-CPU. Some data is already
@@ -964,19 +1013,18 @@ void __cpuinit cpu_init(void)
964 struct tss_struct *t = &per_cpu(init_tss, cpu); 1013 struct tss_struct *t = &per_cpu(init_tss, cpu);
965 struct orig_ist *orig_ist = &per_cpu(orig_ist, cpu); 1014 struct orig_ist *orig_ist = &per_cpu(orig_ist, cpu);
966 unsigned long v; 1015 unsigned long v;
967 char *estacks = NULL;
968 struct task_struct *me; 1016 struct task_struct *me;
969 int i; 1017 int i;
970 1018
971 /* CPU 0 is initialised in head64.c */ 1019#ifdef CONFIG_NUMA
972 if (cpu != 0) 1020 if (cpu != 0 && percpu_read(node_number) == 0 &&
973 pda_init(cpu); 1021 cpu_to_node(cpu) != NUMA_NO_NODE)
974 else 1022 percpu_write(node_number, cpu_to_node(cpu));
975 estacks = boot_exception_stacks; 1023#endif
976 1024
977 me = current; 1025 me = current;
978 1026
979 if (cpu_test_and_set(cpu, cpu_initialized)) 1027 if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask))
980 panic("CPU#%d already initialized!\n", cpu); 1028 panic("CPU#%d already initialized!\n", cpu);
981 1029
982 printk(KERN_INFO "Initializing CPU#%d\n", cpu); 1030 printk(KERN_INFO "Initializing CPU#%d\n", cpu);
@@ -988,7 +1036,9 @@ void __cpuinit cpu_init(void)
988 * and set up the GDT descriptor: 1036 * and set up the GDT descriptor:
989 */ 1037 */
990 1038
991 switch_to_new_gdt(); 1039 switch_to_new_gdt(cpu);
1040 loadsegment(fs, 0);
1041
992 load_idt((const struct desc_ptr *)&idt_descr); 1042 load_idt((const struct desc_ptr *)&idt_descr);
993 1043
994 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8); 1044 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8);
@@ -999,25 +1049,20 @@ void __cpuinit cpu_init(void)
999 barrier(); 1049 barrier();
1000 1050
1001 check_efer(); 1051 check_efer();
1002 if (cpu != 0 && x2apic) 1052 if (cpu != 0)
1003 enable_x2apic(); 1053 enable_x2apic();
1004 1054
1005 /* 1055 /*
1006 * set up and load the per-CPU TSS 1056 * set up and load the per-CPU TSS
1007 */ 1057 */
1008 if (!orig_ist->ist[0]) { 1058 if (!orig_ist->ist[0]) {
1009 static const unsigned int order[N_EXCEPTION_STACKS] = { 1059 static const unsigned int sizes[N_EXCEPTION_STACKS] = {
1010 [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, 1060 [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STKSZ,
1011 [DEBUG_STACK - 1] = DEBUG_STACK_ORDER 1061 [DEBUG_STACK - 1] = DEBUG_STKSZ
1012 }; 1062 };
1063 char *estacks = per_cpu(exception_stacks, cpu);
1013 for (v = 0; v < N_EXCEPTION_STACKS; v++) { 1064 for (v = 0; v < N_EXCEPTION_STACKS; v++) {
1014 if (cpu) { 1065 estacks += sizes[v];
1015 estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]);
1016 if (!estacks)
1017 panic("Cannot allocate exception "
1018 "stack %ld %d\n", v, cpu);
1019 }
1020 estacks += PAGE_SIZE << order[v];
1021 orig_ist->ist[v] = t->x86_tss.ist[v] = 1066 orig_ist->ist[v] = t->x86_tss.ist[v] =
1022 (unsigned long)estacks; 1067 (unsigned long)estacks;
1023 } 1068 }
@@ -1051,22 +1096,19 @@ void __cpuinit cpu_init(void)
1051 */ 1096 */
1052 if (kgdb_connected && arch_kgdb_ops.correct_hw_break) 1097 if (kgdb_connected && arch_kgdb_ops.correct_hw_break)
1053 arch_kgdb_ops.correct_hw_break(); 1098 arch_kgdb_ops.correct_hw_break();
1054 else { 1099 else
1055#endif 1100#endif
1056 /* 1101 {
1057 * Clear all 6 debug registers: 1102 /*
1058 */ 1103 * Clear all 6 debug registers:
1059 1104 */
1060 set_debugreg(0UL, 0); 1105 set_debugreg(0UL, 0);
1061 set_debugreg(0UL, 1); 1106 set_debugreg(0UL, 1);
1062 set_debugreg(0UL, 2); 1107 set_debugreg(0UL, 2);
1063 set_debugreg(0UL, 3); 1108 set_debugreg(0UL, 3);
1064 set_debugreg(0UL, 6); 1109 set_debugreg(0UL, 6);
1065 set_debugreg(0UL, 7); 1110 set_debugreg(0UL, 7);
1066#ifdef CONFIG_KGDB
1067 /* If the kgdb is connected no debug regs should be altered. */
1068 } 1111 }
1069#endif
1070 1112
1071 fpu_init(); 1113 fpu_init();
1072 1114
@@ -1085,7 +1127,7 @@ void __cpuinit cpu_init(void)
1085 struct tss_struct *t = &per_cpu(init_tss, cpu); 1127 struct tss_struct *t = &per_cpu(init_tss, cpu);
1086 struct thread_struct *thread = &curr->thread; 1128 struct thread_struct *thread = &curr->thread;
1087 1129
1088 if (cpu_test_and_set(cpu, cpu_initialized)) { 1130 if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) {
1089 printk(KERN_WARNING "CPU#%d already initialized!\n", cpu); 1131 printk(KERN_WARNING "CPU#%d already initialized!\n", cpu);
1090 for (;;) local_irq_enable(); 1132 for (;;) local_irq_enable();
1091 } 1133 }
@@ -1096,7 +1138,7 @@ void __cpuinit cpu_init(void)
1096 clear_in_cr4(X86_CR4_VME|X86_CR4_PVI|X86_CR4_TSD|X86_CR4_DE); 1138 clear_in_cr4(X86_CR4_VME|X86_CR4_PVI|X86_CR4_TSD|X86_CR4_DE);
1097 1139
1098 load_idt(&idt_descr); 1140 load_idt(&idt_descr);
1099 switch_to_new_gdt(); 1141 switch_to_new_gdt(cpu);
1100 1142
1101 /* 1143 /*
1102 * Set up and load the per-CPU TSS and LDT 1144 * Set up and load the per-CPU TSS and LDT
@@ -1117,9 +1159,6 @@ void __cpuinit cpu_init(void)
1117 __set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss); 1159 __set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss);
1118#endif 1160#endif
1119 1161
1120 /* Clear %gs. */
1121 asm volatile ("mov %0, %%gs" : : "r" (0));
1122
1123 /* Clear all 6 debug registers: */ 1162 /* Clear all 6 debug registers: */
1124 set_debugreg(0, 0); 1163 set_debugreg(0, 0);
1125 set_debugreg(0, 1); 1164 set_debugreg(0, 1);
diff --git a/arch/x86/kernel/cpu/cpufreq/Kconfig b/arch/x86/kernel/cpu/cpufreq/Kconfig
index efae3b22a0ff..65792c2cc462 100644
--- a/arch/x86/kernel/cpu/cpufreq/Kconfig
+++ b/arch/x86/kernel/cpu/cpufreq/Kconfig
@@ -245,17 +245,6 @@ config X86_E_POWERSAVER
245 245
246comment "shared options" 246comment "shared options"
247 247
248config X86_ACPI_CPUFREQ_PROC_INTF
249 bool "/proc/acpi/processor/../performance interface (deprecated)"
250 depends on PROC_FS
251 depends on X86_ACPI_CPUFREQ || X86_POWERNOW_K7_ACPI || X86_POWERNOW_K8_ACPI
252 help
253 This enables the deprecated /proc/acpi/processor/../performance
254 interface. While it is helpful for debugging, the generic,
255 cross-architecture cpufreq interfaces should be used.
256
257 If in doubt, say N.
258
259config X86_SPEEDSTEP_LIB 248config X86_SPEEDSTEP_LIB
260 tristate 249 tristate
261 default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD) 250 default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD)
diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
index 28102ad1a363..4b1c319d30c3 100644
--- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -145,13 +145,14 @@ typedef union {
145 145
146struct drv_cmd { 146struct drv_cmd {
147 unsigned int type; 147 unsigned int type;
148 cpumask_t mask; 148 const struct cpumask *mask;
149 drv_addr_union addr; 149 drv_addr_union addr;
150 u32 val; 150 u32 val;
151}; 151};
152 152
153static void do_drv_read(struct drv_cmd *cmd) 153static long do_drv_read(void *_cmd)
154{ 154{
155 struct drv_cmd *cmd = _cmd;
155 u32 h; 156 u32 h;
156 157
157 switch (cmd->type) { 158 switch (cmd->type) {
@@ -166,10 +167,12 @@ static void do_drv_read(struct drv_cmd *cmd)
166 default: 167 default:
167 break; 168 break;
168 } 169 }
170 return 0;
169} 171}
170 172
171static void do_drv_write(struct drv_cmd *cmd) 173static long do_drv_write(void *_cmd)
172{ 174{
175 struct drv_cmd *cmd = _cmd;
173 u32 lo, hi; 176 u32 lo, hi;
174 177
175 switch (cmd->type) { 178 switch (cmd->type) {
@@ -186,48 +189,41 @@ static void do_drv_write(struct drv_cmd *cmd)
186 default: 189 default:
187 break; 190 break;
188 } 191 }
192 return 0;
189} 193}
190 194
191static void drv_read(struct drv_cmd *cmd) 195static void drv_read(struct drv_cmd *cmd)
192{ 196{
193 cpumask_t saved_mask = current->cpus_allowed;
194 cmd->val = 0; 197 cmd->val = 0;
195 198
196 set_cpus_allowed_ptr(current, &cmd->mask); 199 work_on_cpu(cpumask_any(cmd->mask), do_drv_read, cmd);
197 do_drv_read(cmd);
198 set_cpus_allowed_ptr(current, &saved_mask);
199} 200}
200 201
201static void drv_write(struct drv_cmd *cmd) 202static void drv_write(struct drv_cmd *cmd)
202{ 203{
203 cpumask_t saved_mask = current->cpus_allowed;
204 unsigned int i; 204 unsigned int i;
205 205
206 for_each_cpu_mask_nr(i, cmd->mask) { 206 for_each_cpu(i, cmd->mask) {
207 set_cpus_allowed_ptr(current, &cpumask_of_cpu(i)); 207 work_on_cpu(i, do_drv_write, cmd);
208 do_drv_write(cmd);
209 } 208 }
210
211 set_cpus_allowed_ptr(current, &saved_mask);
212 return;
213} 209}
214 210
215static u32 get_cur_val(const cpumask_t *mask) 211static u32 get_cur_val(const struct cpumask *mask)
216{ 212{
217 struct acpi_processor_performance *perf; 213 struct acpi_processor_performance *perf;
218 struct drv_cmd cmd; 214 struct drv_cmd cmd;
219 215
220 if (unlikely(cpus_empty(*mask))) 216 if (unlikely(cpumask_empty(mask)))
221 return 0; 217 return 0;
222 218
223 switch (per_cpu(drv_data, first_cpu(*mask))->cpu_feature) { 219 switch (per_cpu(drv_data, cpumask_first(mask))->cpu_feature) {
224 case SYSTEM_INTEL_MSR_CAPABLE: 220 case SYSTEM_INTEL_MSR_CAPABLE:
225 cmd.type = SYSTEM_INTEL_MSR_CAPABLE; 221 cmd.type = SYSTEM_INTEL_MSR_CAPABLE;
226 cmd.addr.msr.reg = MSR_IA32_PERF_STATUS; 222 cmd.addr.msr.reg = MSR_IA32_PERF_STATUS;
227 break; 223 break;
228 case SYSTEM_IO_CAPABLE: 224 case SYSTEM_IO_CAPABLE:
229 cmd.type = SYSTEM_IO_CAPABLE; 225 cmd.type = SYSTEM_IO_CAPABLE;
230 perf = per_cpu(drv_data, first_cpu(*mask))->acpi_data; 226 perf = per_cpu(drv_data, cpumask_first(mask))->acpi_data;
231 cmd.addr.io.port = perf->control_register.address; 227 cmd.addr.io.port = perf->control_register.address;
232 cmd.addr.io.bit_width = perf->control_register.bit_width; 228 cmd.addr.io.bit_width = perf->control_register.bit_width;
233 break; 229 break;
@@ -235,8 +231,7 @@ static u32 get_cur_val(const cpumask_t *mask)
235 return 0; 231 return 0;
236 } 232 }
237 233
238 cmd.mask = *mask; 234 cmd.mask = mask;
239
240 drv_read(&cmd); 235 drv_read(&cmd);
241 236
242 dprintk("get_cur_val = %u\n", cmd.val); 237 dprintk("get_cur_val = %u\n", cmd.val);
@@ -244,6 +239,30 @@ static u32 get_cur_val(const cpumask_t *mask)
244 return cmd.val; 239 return cmd.val;
245} 240}
246 241
242struct perf_cur {
243 union {
244 struct {
245 u32 lo;
246 u32 hi;
247 } split;
248 u64 whole;
249 } aperf_cur, mperf_cur;
250};
251
252
253static long read_measured_perf_ctrs(void *_cur)
254{
255 struct perf_cur *cur = _cur;
256
257 rdmsr(MSR_IA32_APERF, cur->aperf_cur.split.lo, cur->aperf_cur.split.hi);
258 rdmsr(MSR_IA32_MPERF, cur->mperf_cur.split.lo, cur->mperf_cur.split.hi);
259
260 wrmsr(MSR_IA32_APERF, 0, 0);
261 wrmsr(MSR_IA32_MPERF, 0, 0);
262
263 return 0;
264}
265
247/* 266/*
248 * Return the measured active (C0) frequency on this CPU since last call 267 * Return the measured active (C0) frequency on this CPU since last call
249 * to this function. 268 * to this function.
@@ -260,31 +279,12 @@ static u32 get_cur_val(const cpumask_t *mask)
260static unsigned int get_measured_perf(struct cpufreq_policy *policy, 279static unsigned int get_measured_perf(struct cpufreq_policy *policy,
261 unsigned int cpu) 280 unsigned int cpu)
262{ 281{
263 union { 282 struct perf_cur cur;
264 struct {
265 u32 lo;
266 u32 hi;
267 } split;
268 u64 whole;
269 } aperf_cur, mperf_cur;
270
271 cpumask_t saved_mask;
272 unsigned int perf_percent; 283 unsigned int perf_percent;
273 unsigned int retval; 284 unsigned int retval;
274 285
275 saved_mask = current->cpus_allowed; 286 if (!work_on_cpu(cpu, read_measured_perf_ctrs, &cur))
276 set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu));
277 if (get_cpu() != cpu) {
278 /* We were not able to run on requested processor */
279 put_cpu();
280 return 0; 287 return 0;
281 }
282
283 rdmsr(MSR_IA32_APERF, aperf_cur.split.lo, aperf_cur.split.hi);
284 rdmsr(MSR_IA32_MPERF, mperf_cur.split.lo, mperf_cur.split.hi);
285
286 wrmsr(MSR_IA32_APERF, 0,0);
287 wrmsr(MSR_IA32_MPERF, 0,0);
288 288
289#ifdef __i386__ 289#ifdef __i386__
290 /* 290 /*
@@ -292,37 +292,39 @@ static unsigned int get_measured_perf(struct cpufreq_policy *policy,
292 * Get an approximate value. Return failure in case we cannot get 292 * Get an approximate value. Return failure in case we cannot get
293 * an approximate value. 293 * an approximate value.
294 */ 294 */
295 if (unlikely(aperf_cur.split.hi || mperf_cur.split.hi)) { 295 if (unlikely(cur.aperf_cur.split.hi || cur.mperf_cur.split.hi)) {
296 int shift_count; 296 int shift_count;
297 u32 h; 297 u32 h;
298 298
299 h = max_t(u32, aperf_cur.split.hi, mperf_cur.split.hi); 299 h = max_t(u32, cur.aperf_cur.split.hi, cur.mperf_cur.split.hi);
300 shift_count = fls(h); 300 shift_count = fls(h);
301 301
302 aperf_cur.whole >>= shift_count; 302 cur.aperf_cur.whole >>= shift_count;
303 mperf_cur.whole >>= shift_count; 303 cur.mperf_cur.whole >>= shift_count;
304 } 304 }
305 305
306 if (((unsigned long)(-1) / 100) < aperf_cur.split.lo) { 306 if (((unsigned long)(-1) / 100) < cur.aperf_cur.split.lo) {
307 int shift_count = 7; 307 int shift_count = 7;
308 aperf_cur.split.lo >>= shift_count; 308 cur.aperf_cur.split.lo >>= shift_count;
309 mperf_cur.split.lo >>= shift_count; 309 cur.mperf_cur.split.lo >>= shift_count;
310 } 310 }
311 311
312 if (aperf_cur.split.lo && mperf_cur.split.lo) 312 if (cur.aperf_cur.split.lo && cur.mperf_cur.split.lo)
313 perf_percent = (aperf_cur.split.lo * 100) / mperf_cur.split.lo; 313 perf_percent = (cur.aperf_cur.split.lo * 100) /
314 cur.mperf_cur.split.lo;
314 else 315 else
315 perf_percent = 0; 316 perf_percent = 0;
316 317
317#else 318#else
318 if (unlikely(((unsigned long)(-1) / 100) < aperf_cur.whole)) { 319 if (unlikely(((unsigned long)(-1) / 100) < cur.aperf_cur.whole)) {
319 int shift_count = 7; 320 int shift_count = 7;
320 aperf_cur.whole >>= shift_count; 321 cur.aperf_cur.whole >>= shift_count;
321 mperf_cur.whole >>= shift_count; 322 cur.mperf_cur.whole >>= shift_count;
322 } 323 }
323 324
324 if (aperf_cur.whole && mperf_cur.whole) 325 if (cur.aperf_cur.whole && cur.mperf_cur.whole)
325 perf_percent = (aperf_cur.whole * 100) / mperf_cur.whole; 326 perf_percent = (cur.aperf_cur.whole * 100) /
327 cur.mperf_cur.whole;
326 else 328 else
327 perf_percent = 0; 329 perf_percent = 0;
328 330
@@ -330,10 +332,6 @@ static unsigned int get_measured_perf(struct cpufreq_policy *policy,
330 332
331 retval = per_cpu(drv_data, policy->cpu)->max_freq * perf_percent / 100; 333 retval = per_cpu(drv_data, policy->cpu)->max_freq * perf_percent / 100;
332 334
333 put_cpu();
334 set_cpus_allowed_ptr(current, &saved_mask);
335
336 dprintk("cpu %d: performance percent %d\n", cpu, perf_percent);
337 return retval; 335 return retval;
338} 336}
339 337
@@ -351,7 +349,7 @@ static unsigned int get_cur_freq_on_cpu(unsigned int cpu)
351 } 349 }
352 350
353 cached_freq = data->freq_table[data->acpi_data->state].frequency; 351 cached_freq = data->freq_table[data->acpi_data->state].frequency;
354 freq = extract_freq(get_cur_val(&cpumask_of_cpu(cpu)), data); 352 freq = extract_freq(get_cur_val(cpumask_of(cpu)), data);
355 if (freq != cached_freq) { 353 if (freq != cached_freq) {
356 /* 354 /*
357 * The dreaded BIOS frequency change behind our back. 355 * The dreaded BIOS frequency change behind our back.
@@ -365,7 +363,7 @@ static unsigned int get_cur_freq_on_cpu(unsigned int cpu)
365 return freq; 363 return freq;
366} 364}
367 365
368static unsigned int check_freqs(const cpumask_t *mask, unsigned int freq, 366static unsigned int check_freqs(const struct cpumask *mask, unsigned int freq,
369 struct acpi_cpufreq_data *data) 367 struct acpi_cpufreq_data *data)
370{ 368{
371 unsigned int cur_freq; 369 unsigned int cur_freq;
@@ -386,7 +384,6 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy,
386 struct acpi_cpufreq_data *data = per_cpu(drv_data, policy->cpu); 384 struct acpi_cpufreq_data *data = per_cpu(drv_data, policy->cpu);
387 struct acpi_processor_performance *perf; 385 struct acpi_processor_performance *perf;
388 struct cpufreq_freqs freqs; 386 struct cpufreq_freqs freqs;
389 cpumask_t online_policy_cpus;
390 struct drv_cmd cmd; 387 struct drv_cmd cmd;
391 unsigned int next_state = 0; /* Index into freq_table */ 388 unsigned int next_state = 0; /* Index into freq_table */
392 unsigned int next_perf_state = 0; /* Index into perf table */ 389 unsigned int next_perf_state = 0; /* Index into perf table */
@@ -406,15 +403,10 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy,
406 data->freq_table, 403 data->freq_table,
407 target_freq, 404 target_freq,
408 relation, &next_state); 405 relation, &next_state);
409 if (unlikely(result)) 406 if (unlikely(result)) {
410 return -ENODEV; 407 result = -ENODEV;
411 408 goto out;
412#ifdef CONFIG_HOTPLUG_CPU 409 }
413 /* cpufreq holds the hotplug lock, so we are safe from here on */
414 cpus_and(online_policy_cpus, cpu_online_map, policy->cpus);
415#else
416 online_policy_cpus = policy->cpus;
417#endif
418 410
419 next_perf_state = data->freq_table[next_state].index; 411 next_perf_state = data->freq_table[next_state].index;
420 if (perf->state == next_perf_state) { 412 if (perf->state == next_perf_state) {
@@ -425,7 +417,7 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy,
425 } else { 417 } else {
426 dprintk("Already at target state (P%d)\n", 418 dprintk("Already at target state (P%d)\n",
427 next_perf_state); 419 next_perf_state);
428 return 0; 420 goto out;
429 } 421 }
430 } 422 }
431 423
@@ -444,19 +436,19 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy,
444 cmd.val = (u32) perf->states[next_perf_state].control; 436 cmd.val = (u32) perf->states[next_perf_state].control;
445 break; 437 break;
446 default: 438 default:
447 return -ENODEV; 439 result = -ENODEV;
440 goto out;
448 } 441 }
449 442
450 cpus_clear(cmd.mask); 443 /* cpufreq holds the hotplug lock, so we are safe from here on */
451
452 if (policy->shared_type != CPUFREQ_SHARED_TYPE_ANY) 444 if (policy->shared_type != CPUFREQ_SHARED_TYPE_ANY)
453 cmd.mask = online_policy_cpus; 445 cmd.mask = policy->cpus;
454 else 446 else
455 cpu_set(policy->cpu, cmd.mask); 447 cmd.mask = cpumask_of(policy->cpu);
456 448
457 freqs.old = perf->states[perf->state].core_frequency * 1000; 449 freqs.old = perf->states[perf->state].core_frequency * 1000;
458 freqs.new = data->freq_table[next_state].frequency; 450 freqs.new = data->freq_table[next_state].frequency;
459 for_each_cpu_mask_nr(i, cmd.mask) { 451 for_each_cpu(i, cmd.mask) {
460 freqs.cpu = i; 452 freqs.cpu = i;
461 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); 453 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
462 } 454 }
@@ -464,19 +456,21 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy,
464 drv_write(&cmd); 456 drv_write(&cmd);
465 457
466 if (acpi_pstate_strict) { 458 if (acpi_pstate_strict) {
467 if (!check_freqs(&cmd.mask, freqs.new, data)) { 459 if (!check_freqs(cmd.mask, freqs.new, data)) {
468 dprintk("acpi_cpufreq_target failed (%d)\n", 460 dprintk("acpi_cpufreq_target failed (%d)\n",
469 policy->cpu); 461 policy->cpu);
470 return -EAGAIN; 462 result = -EAGAIN;
463 goto out;
471 } 464 }
472 } 465 }
473 466
474 for_each_cpu_mask_nr(i, cmd.mask) { 467 for_each_cpu(i, cmd.mask) {
475 freqs.cpu = i; 468 freqs.cpu = i;
476 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); 469 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
477 } 470 }
478 perf->state = next_perf_state; 471 perf->state = next_perf_state;
479 472
473out:
480 return result; 474 return result;
481} 475}
482 476
@@ -626,15 +620,15 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
626 */ 620 */
627 if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL || 621 if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL ||
628 policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) { 622 policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) {
629 cpumask_copy(&policy->cpus, perf->shared_cpu_map); 623 cpumask_copy(policy->cpus, perf->shared_cpu_map);
630 } 624 }
631 cpumask_copy(&policy->related_cpus, perf->shared_cpu_map); 625 cpumask_copy(policy->related_cpus, perf->shared_cpu_map);
632 626
633#ifdef CONFIG_SMP 627#ifdef CONFIG_SMP
634 dmi_check_system(sw_any_bug_dmi_table); 628 dmi_check_system(sw_any_bug_dmi_table);
635 if (bios_with_sw_any_bug && cpus_weight(policy->cpus) == 1) { 629 if (bios_with_sw_any_bug && cpumask_weight(policy->cpus) == 1) {
636 policy->shared_type = CPUFREQ_SHARED_TYPE_ALL; 630 policy->shared_type = CPUFREQ_SHARED_TYPE_ALL;
637 policy->cpus = per_cpu(cpu_core_map, cpu); 631 cpumask_copy(policy->cpus, cpu_core_mask(cpu));
638 } 632 }
639#endif 633#endif
640 634
diff --git a/arch/x86/kernel/cpu/cpufreq/e_powersaver.c b/arch/x86/kernel/cpu/cpufreq/e_powersaver.c
index c2f930d86640..41ab3f064cb1 100644
--- a/arch/x86/kernel/cpu/cpufreq/e_powersaver.c
+++ b/arch/x86/kernel/cpu/cpufreq/e_powersaver.c
@@ -204,12 +204,12 @@ static int eps_cpu_init(struct cpufreq_policy *policy)
204 } 204 }
205 /* Enable Enhanced PowerSaver */ 205 /* Enable Enhanced PowerSaver */
206 rdmsrl(MSR_IA32_MISC_ENABLE, val); 206 rdmsrl(MSR_IA32_MISC_ENABLE, val);
207 if (!(val & 1 << 16)) { 207 if (!(val & MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP)) {
208 val |= 1 << 16; 208 val |= MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP;
209 wrmsrl(MSR_IA32_MISC_ENABLE, val); 209 wrmsrl(MSR_IA32_MISC_ENABLE, val);
210 /* Can be locked at 0 */ 210 /* Can be locked at 0 */
211 rdmsrl(MSR_IA32_MISC_ENABLE, val); 211 rdmsrl(MSR_IA32_MISC_ENABLE, val);
212 if (!(val & 1 << 16)) { 212 if (!(val & MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP)) {
213 printk(KERN_INFO "eps: Can't enable Enhanced PowerSaver\n"); 213 printk(KERN_INFO "eps: Can't enable Enhanced PowerSaver\n");
214 return -ENODEV; 214 return -ENODEV;
215 } 215 }
diff --git a/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c b/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c
index beea4466b063..b585e04cbc9e 100644
--- a/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c
+++ b/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c
@@ -122,7 +122,7 @@ static int cpufreq_p4_target(struct cpufreq_policy *policy,
122 return 0; 122 return 0;
123 123
124 /* notifiers */ 124 /* notifiers */
125 for_each_cpu_mask_nr(i, policy->cpus) { 125 for_each_cpu(i, policy->cpus) {
126 freqs.cpu = i; 126 freqs.cpu = i;
127 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); 127 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
128 } 128 }
@@ -130,11 +130,11 @@ static int cpufreq_p4_target(struct cpufreq_policy *policy,
130 /* run on each logical CPU, see section 13.15.3 of IA32 Intel Architecture Software 130 /* run on each logical CPU, see section 13.15.3 of IA32 Intel Architecture Software
131 * Developer's Manual, Volume 3 131 * Developer's Manual, Volume 3
132 */ 132 */
133 for_each_cpu_mask_nr(i, policy->cpus) 133 for_each_cpu(i, policy->cpus)
134 cpufreq_p4_setdc(i, p4clockmod_table[newstate].index); 134 cpufreq_p4_setdc(i, p4clockmod_table[newstate].index);
135 135
136 /* notifiers */ 136 /* notifiers */
137 for_each_cpu_mask_nr(i, policy->cpus) { 137 for_each_cpu(i, policy->cpus) {
138 freqs.cpu = i; 138 freqs.cpu = i;
139 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); 139 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
140 } 140 }
@@ -203,7 +203,7 @@ static int cpufreq_p4_cpu_init(struct cpufreq_policy *policy)
203 unsigned int i; 203 unsigned int i;
204 204
205#ifdef CONFIG_SMP 205#ifdef CONFIG_SMP
206 policy->cpus = per_cpu(cpu_sibling_map, policy->cpu); 206 cpumask_copy(policy->cpus, &per_cpu(cpu_sibling_map, policy->cpu));
207#endif 207#endif
208 208
209 /* Errata workaround */ 209 /* Errata workaround */
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
index c3c9adbaa26f..6428aa17b40e 100644
--- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
+++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
@@ -939,10 +939,25 @@ static void powernow_k8_cpu_exit_acpi(struct powernow_k8_data *data)
939 free_cpumask_var(data->acpi_data.shared_cpu_map); 939 free_cpumask_var(data->acpi_data.shared_cpu_map);
940} 940}
941 941
942static int get_transition_latency(struct powernow_k8_data *data)
943{
944 int max_latency = 0;
945 int i;
946 for (i = 0; i < data->acpi_data.state_count; i++) {
947 int cur_latency = data->acpi_data.states[i].transition_latency
948 + data->acpi_data.states[i].bus_master_latency;
949 if (cur_latency > max_latency)
950 max_latency = cur_latency;
951 }
952 /* value in usecs, needs to be in nanoseconds */
953 return 1000 * max_latency;
954}
955
942#else 956#else
943static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data) { return -ENODEV; } 957static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data) { return -ENODEV; }
944static void powernow_k8_cpu_exit_acpi(struct powernow_k8_data *data) { return; } 958static void powernow_k8_cpu_exit_acpi(struct powernow_k8_data *data) { return; }
945static void powernow_k8_acpi_pst_values(struct powernow_k8_data *data, unsigned int index) { return; } 959static void powernow_k8_acpi_pst_values(struct powernow_k8_data *data, unsigned int index) { return; }
960static int get_transition_latency(struct powernow_k8_data *data) { return 0; }
946#endif /* CONFIG_X86_POWERNOW_K8_ACPI */ 961#endif /* CONFIG_X86_POWERNOW_K8_ACPI */
947 962
948/* Take a frequency, and issue the fid/vid transition command */ 963/* Take a frequency, and issue the fid/vid transition command */
@@ -1142,8 +1157,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
1142 data->cpu = pol->cpu; 1157 data->cpu = pol->cpu;
1143 data->currpstate = HW_PSTATE_INVALID; 1158 data->currpstate = HW_PSTATE_INVALID;
1144 1159
1145 rc = powernow_k8_cpu_init_acpi(data); 1160 if (powernow_k8_cpu_init_acpi(data)) {
1146 if (rc) {
1147 /* 1161 /*
1148 * Use the PSB BIOS structure. This is only availabe on 1162 * Use the PSB BIOS structure. This is only availabe on
1149 * an UP version, and is deprecated by AMD. 1163 * an UP version, and is deprecated by AMD.
@@ -1161,19 +1175,28 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
1161 "ACPI maintainers and complain to your BIOS " 1175 "ACPI maintainers and complain to your BIOS "
1162 "vendor.\n"); 1176 "vendor.\n");
1163#endif 1177#endif
1164 goto err_out; 1178 kfree(data);
1179 return -ENODEV;
1165 } 1180 }
1166 if (pol->cpu != 0) { 1181 if (pol->cpu != 0) {
1167 printk(KERN_ERR FW_BUG PFX "No ACPI _PSS objects for " 1182 printk(KERN_ERR FW_BUG PFX "No ACPI _PSS objects for "
1168 "CPU other than CPU0. Complain to your BIOS " 1183 "CPU other than CPU0. Complain to your BIOS "
1169 "vendor.\n"); 1184 "vendor.\n");
1170 goto err_out; 1185 kfree(data);
1186 return -ENODEV;
1171 } 1187 }
1172 rc = find_psb_table(data); 1188 rc = find_psb_table(data);
1173 if (rc) { 1189 if (rc) {
1174 goto err_out; 1190 kfree(data);
1191 return -ENODEV;
1175 } 1192 }
1176 } 1193 /* Take a crude guess here.
1194 * That guess was in microseconds, so multiply with 1000 */
1195 pol->cpuinfo.transition_latency = (
1196 ((data->rvo + 8) * data->vstable * VST_UNITS_20US) +
1197 ((1 << data->irt) * 30)) * 1000;
1198 } else /* ACPI _PSS objects available */
1199 pol->cpuinfo.transition_latency = get_transition_latency(data);
1177 1200
1178 /* only run on specific CPU from here on */ 1201 /* only run on specific CPU from here on */
1179 oldmask = current->cpus_allowed; 1202 oldmask = current->cpus_allowed;
@@ -1199,15 +1222,10 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
1199 set_cpus_allowed_ptr(current, &oldmask); 1222 set_cpus_allowed_ptr(current, &oldmask);
1200 1223
1201 if (cpu_family == CPU_HW_PSTATE) 1224 if (cpu_family == CPU_HW_PSTATE)
1202 pol->cpus = cpumask_of_cpu(pol->cpu); 1225 cpumask_copy(pol->cpus, cpumask_of(pol->cpu));
1203 else 1226 else
1204 pol->cpus = per_cpu(cpu_core_map, pol->cpu); 1227 cpumask_copy(pol->cpus, &per_cpu(cpu_core_map, pol->cpu));
1205 data->available_cores = &(pol->cpus); 1228 data->available_cores = pol->cpus;
1206
1207 /* Take a crude guess here.
1208 * That guess was in microseconds, so multiply with 1000 */
1209 pol->cpuinfo.transition_latency = (((data->rvo + 8) * data->vstable * VST_UNITS_20US)
1210 + (3 * (1 << data->irt) * 10)) * 1000;
1211 1229
1212 if (cpu_family == CPU_HW_PSTATE) 1230 if (cpu_family == CPU_HW_PSTATE)
1213 pol->cur = find_khz_freq_from_pstate(data->powernow_table, data->currpstate); 1231 pol->cur = find_khz_freq_from_pstate(data->powernow_table, data->currpstate);
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.h b/arch/x86/kernel/cpu/cpufreq/powernow-k8.h
index 65cfb5d7f77f..8ecc75b6c7c3 100644
--- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.h
+++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.h
@@ -53,7 +53,7 @@ struct powernow_k8_data {
53 /* we need to keep track of associated cores, but let cpufreq 53 /* we need to keep track of associated cores, but let cpufreq
54 * handle hotplug events - so just point at cpufreq pol->cpus 54 * handle hotplug events - so just point at cpufreq pol->cpus
55 * structure */ 55 * structure */
56 cpumask_t *available_cores; 56 struct cpumask *available_cores;
57}; 57};
58 58
59 59
diff --git a/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c b/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
index f0ea6fa2f53c..c9f1fdc02830 100644
--- a/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
+++ b/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
@@ -390,14 +390,14 @@ static int centrino_cpu_init(struct cpufreq_policy *policy)
390 enable it if not. */ 390 enable it if not. */
391 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 391 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
392 392
393 if (!(l & (1<<16))) { 393 if (!(l & MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP)) {
394 l |= (1<<16); 394 l |= MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP;
395 dprintk("trying to enable Enhanced SpeedStep (%x)\n", l); 395 dprintk("trying to enable Enhanced SpeedStep (%x)\n", l);
396 wrmsr(MSR_IA32_MISC_ENABLE, l, h); 396 wrmsr(MSR_IA32_MISC_ENABLE, l, h);
397 397
398 /* check to see if it stuck */ 398 /* check to see if it stuck */
399 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 399 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
400 if (!(l & (1<<16))) { 400 if (!(l & MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP)) {
401 printk(KERN_INFO PFX 401 printk(KERN_INFO PFX
402 "couldn't enable Enhanced SpeedStep\n"); 402 "couldn't enable Enhanced SpeedStep\n");
403 return -ENODEV; 403 return -ENODEV;
@@ -458,11 +458,6 @@ static int centrino_verify (struct cpufreq_policy *policy)
458 * 458 *
459 * Sets a new CPUFreq policy. 459 * Sets a new CPUFreq policy.
460 */ 460 */
461struct allmasks {
462 cpumask_t saved_mask;
463 cpumask_t covered_cpus;
464};
465
466static int centrino_target (struct cpufreq_policy *policy, 461static int centrino_target (struct cpufreq_policy *policy,
467 unsigned int target_freq, 462 unsigned int target_freq,
468 unsigned int relation) 463 unsigned int relation)
@@ -472,12 +467,15 @@ static int centrino_target (struct cpufreq_policy *policy,
472 struct cpufreq_freqs freqs; 467 struct cpufreq_freqs freqs;
473 int retval = 0; 468 int retval = 0;
474 unsigned int j, k, first_cpu, tmp; 469 unsigned int j, k, first_cpu, tmp;
475 CPUMASK_ALLOC(allmasks); 470 cpumask_var_t saved_mask, covered_cpus;
476 CPUMASK_PTR(saved_mask, allmasks);
477 CPUMASK_PTR(covered_cpus, allmasks);
478 471
479 if (unlikely(allmasks == NULL)) 472 if (unlikely(!alloc_cpumask_var(&saved_mask, GFP_KERNEL)))
480 return -ENOMEM; 473 return -ENOMEM;
474 if (unlikely(!alloc_cpumask_var(&covered_cpus, GFP_KERNEL))) {
475 free_cpumask_var(saved_mask);
476 return -ENOMEM;
477 }
478 cpumask_copy(saved_mask, &current->cpus_allowed);
481 479
482 if (unlikely(per_cpu(centrino_model, cpu) == NULL)) { 480 if (unlikely(per_cpu(centrino_model, cpu) == NULL)) {
483 retval = -ENODEV; 481 retval = -ENODEV;
@@ -493,11 +491,9 @@ static int centrino_target (struct cpufreq_policy *policy,
493 goto out; 491 goto out;
494 } 492 }
495 493
496 *saved_mask = current->cpus_allowed;
497 first_cpu = 1; 494 first_cpu = 1;
498 cpus_clear(*covered_cpus); 495 for_each_cpu(j, policy->cpus) {
499 for_each_cpu_mask_nr(j, policy->cpus) { 496 const struct cpumask *mask;
500 const cpumask_t *mask;
501 497
502 /* cpufreq holds the hotplug lock, so we are safe here */ 498 /* cpufreq holds the hotplug lock, so we are safe here */
503 if (!cpu_online(j)) 499 if (!cpu_online(j))
@@ -508,9 +504,9 @@ static int centrino_target (struct cpufreq_policy *policy,
508 * Make sure we are running on CPU that wants to change freq 504 * Make sure we are running on CPU that wants to change freq
509 */ 505 */
510 if (policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) 506 if (policy->shared_type == CPUFREQ_SHARED_TYPE_ANY)
511 mask = &policy->cpus; 507 mask = policy->cpus;
512 else 508 else
513 mask = &cpumask_of_cpu(j); 509 mask = cpumask_of(j);
514 510
515 set_cpus_allowed_ptr(current, mask); 511 set_cpus_allowed_ptr(current, mask);
516 preempt_disable(); 512 preempt_disable();
@@ -542,7 +538,7 @@ static int centrino_target (struct cpufreq_policy *policy,
542 dprintk("target=%dkHz old=%d new=%d msr=%04x\n", 538 dprintk("target=%dkHz old=%d new=%d msr=%04x\n",
543 target_freq, freqs.old, freqs.new, msr); 539 target_freq, freqs.old, freqs.new, msr);
544 540
545 for_each_cpu_mask_nr(k, policy->cpus) { 541 for_each_cpu(k, policy->cpus) {
546 if (!cpu_online(k)) 542 if (!cpu_online(k))
547 continue; 543 continue;
548 freqs.cpu = k; 544 freqs.cpu = k;
@@ -567,7 +563,7 @@ static int centrino_target (struct cpufreq_policy *policy,
567 preempt_enable(); 563 preempt_enable();
568 } 564 }
569 565
570 for_each_cpu_mask_nr(k, policy->cpus) { 566 for_each_cpu(k, policy->cpus) {
571 if (!cpu_online(k)) 567 if (!cpu_online(k))
572 continue; 568 continue;
573 freqs.cpu = k; 569 freqs.cpu = k;
@@ -590,7 +586,7 @@ static int centrino_target (struct cpufreq_policy *policy,
590 tmp = freqs.new; 586 tmp = freqs.new;
591 freqs.new = freqs.old; 587 freqs.new = freqs.old;
592 freqs.old = tmp; 588 freqs.old = tmp;
593 for_each_cpu_mask_nr(j, policy->cpus) { 589 for_each_cpu(j, policy->cpus) {
594 if (!cpu_online(j)) 590 if (!cpu_online(j))
595 continue; 591 continue;
596 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); 592 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
@@ -605,7 +601,8 @@ migrate_end:
605 preempt_enable(); 601 preempt_enable();
606 set_cpus_allowed_ptr(current, saved_mask); 602 set_cpus_allowed_ptr(current, saved_mask);
607out: 603out:
608 CPUMASK_FREE(allmasks); 604 free_cpumask_var(saved_mask);
605 free_cpumask_var(covered_cpus);
609 return retval; 606 return retval;
610} 607}
611 608
diff --git a/arch/x86/kernel/cpu/cpufreq/speedstep-ich.c b/arch/x86/kernel/cpu/cpufreq/speedstep-ich.c
index 04d0376b64b0..dedc1e98f168 100644
--- a/arch/x86/kernel/cpu/cpufreq/speedstep-ich.c
+++ b/arch/x86/kernel/cpu/cpufreq/speedstep-ich.c
@@ -229,7 +229,7 @@ static unsigned int speedstep_detect_chipset (void)
229 return 0; 229 return 0;
230} 230}
231 231
232static unsigned int _speedstep_get(const cpumask_t *cpus) 232static unsigned int _speedstep_get(const struct cpumask *cpus)
233{ 233{
234 unsigned int speed; 234 unsigned int speed;
235 cpumask_t cpus_allowed; 235 cpumask_t cpus_allowed;
@@ -244,7 +244,7 @@ static unsigned int _speedstep_get(const cpumask_t *cpus)
244 244
245static unsigned int speedstep_get(unsigned int cpu) 245static unsigned int speedstep_get(unsigned int cpu)
246{ 246{
247 return _speedstep_get(&cpumask_of_cpu(cpu)); 247 return _speedstep_get(cpumask_of(cpu));
248} 248}
249 249
250/** 250/**
@@ -267,7 +267,7 @@ static int speedstep_target (struct cpufreq_policy *policy,
267 if (cpufreq_frequency_table_target(policy, &speedstep_freqs[0], target_freq, relation, &newstate)) 267 if (cpufreq_frequency_table_target(policy, &speedstep_freqs[0], target_freq, relation, &newstate))
268 return -EINVAL; 268 return -EINVAL;
269 269
270 freqs.old = _speedstep_get(&policy->cpus); 270 freqs.old = _speedstep_get(policy->cpus);
271 freqs.new = speedstep_freqs[newstate].frequency; 271 freqs.new = speedstep_freqs[newstate].frequency;
272 freqs.cpu = policy->cpu; 272 freqs.cpu = policy->cpu;
273 273
@@ -279,20 +279,20 @@ static int speedstep_target (struct cpufreq_policy *policy,
279 279
280 cpus_allowed = current->cpus_allowed; 280 cpus_allowed = current->cpus_allowed;
281 281
282 for_each_cpu_mask_nr(i, policy->cpus) { 282 for_each_cpu(i, policy->cpus) {
283 freqs.cpu = i; 283 freqs.cpu = i;
284 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); 284 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
285 } 285 }
286 286
287 /* switch to physical CPU where state is to be changed */ 287 /* switch to physical CPU where state is to be changed */
288 set_cpus_allowed_ptr(current, &policy->cpus); 288 set_cpus_allowed_ptr(current, policy->cpus);
289 289
290 speedstep_set_state(newstate); 290 speedstep_set_state(newstate);
291 291
292 /* allow to be run on all CPUs */ 292 /* allow to be run on all CPUs */
293 set_cpus_allowed_ptr(current, &cpus_allowed); 293 set_cpus_allowed_ptr(current, &cpus_allowed);
294 294
295 for_each_cpu_mask_nr(i, policy->cpus) { 295 for_each_cpu(i, policy->cpus) {
296 freqs.cpu = i; 296 freqs.cpu = i;
297 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); 297 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
298 } 298 }
@@ -322,11 +322,11 @@ static int speedstep_cpu_init(struct cpufreq_policy *policy)
322 322
323 /* only run on CPU to be set, or on its sibling */ 323 /* only run on CPU to be set, or on its sibling */
324#ifdef CONFIG_SMP 324#ifdef CONFIG_SMP
325 policy->cpus = per_cpu(cpu_sibling_map, policy->cpu); 325 cpumask_copy(policy->cpus, &per_cpu(cpu_sibling_map, policy->cpu));
326#endif 326#endif
327 327
328 cpus_allowed = current->cpus_allowed; 328 cpus_allowed = current->cpus_allowed;
329 set_cpus_allowed_ptr(current, &policy->cpus); 329 set_cpus_allowed_ptr(current, policy->cpus);
330 330
331 /* detect low and high frequency and transition latency */ 331 /* detect low and high frequency and transition latency */
332 result = speedstep_get_freqs(speedstep_processor, 332 result = speedstep_get_freqs(speedstep_processor,
@@ -339,7 +339,7 @@ static int speedstep_cpu_init(struct cpufreq_policy *policy)
339 return result; 339 return result;
340 340
341 /* get current speed setting */ 341 /* get current speed setting */
342 speed = _speedstep_get(&policy->cpus); 342 speed = _speedstep_get(policy->cpus);
343 if (!speed) 343 if (!speed)
344 return -EIO; 344 return -EIO;
345 345
diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
index 8ea6929e974c..25c559ba8d54 100644
--- a/arch/x86/kernel/cpu/intel.c
+++ b/arch/x86/kernel/cpu/intel.c
@@ -24,11 +24,23 @@
24#ifdef CONFIG_X86_LOCAL_APIC 24#ifdef CONFIG_X86_LOCAL_APIC
25#include <asm/mpspec.h> 25#include <asm/mpspec.h>
26#include <asm/apic.h> 26#include <asm/apic.h>
27#include <mach_apic.h>
28#endif 27#endif
29 28
30static void __cpuinit early_init_intel(struct cpuinfo_x86 *c) 29static void __cpuinit early_init_intel(struct cpuinfo_x86 *c)
31{ 30{
31 /* Unmask CPUID levels if masked: */
32 if (c->x86 > 6 || (c->x86 == 6 && c->x86_model >= 0xd)) {
33 u64 misc_enable;
34
35 rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
36
37 if (misc_enable & MSR_IA32_MISC_ENABLE_LIMIT_CPUID) {
38 misc_enable &= ~MSR_IA32_MISC_ENABLE_LIMIT_CPUID;
39 wrmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
40 c->cpuid_level = cpuid_eax(0);
41 }
42 }
43
32 if ((c->x86 == 0xf && c->x86_model >= 0x03) || 44 if ((c->x86 == 0xf && c->x86_model >= 0x03) ||
33 (c->x86 == 0x6 && c->x86_model >= 0x0e)) 45 (c->x86 == 0x6 && c->x86_model >= 0x0e))
34 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); 46 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
@@ -50,6 +62,18 @@ static void __cpuinit early_init_intel(struct cpuinfo_x86 *c)
50 set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC); 62 set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC);
51 } 63 }
52 64
65 /*
66 * There is a known erratum on Pentium III and Core Solo
67 * and Core Duo CPUs.
68 * " Page with PAT set to WC while associated MTRR is UC
69 * may consolidate to UC "
70 * Because of this erratum, it is better to stick with
71 * setting WC in MTRR rather than using PAT on these CPUs.
72 *
73 * Enable PAT WC only on P4, Core 2 or later CPUs.
74 */
75 if (c->x86 == 6 && c->x86_model < 15)
76 clear_cpu_cap(c, X86_FEATURE_PAT);
53} 77}
54 78
55#ifdef CONFIG_X86_32 79#ifdef CONFIG_X86_32
@@ -122,10 +146,10 @@ static void __cpuinit intel_workarounds(struct cpuinfo_x86 *c)
122 */ 146 */
123 if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) { 147 if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
124 rdmsr(MSR_IA32_MISC_ENABLE, lo, hi); 148 rdmsr(MSR_IA32_MISC_ENABLE, lo, hi);
125 if ((lo & (1<<9)) == 0) { 149 if ((lo & MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE) == 0) {
126 printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n"); 150 printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n");
127 printk (KERN_INFO "CPU: Disabling hardware prefetching (Errata 037)\n"); 151 printk (KERN_INFO "CPU: Disabling hardware prefetching (Errata 037)\n");
128 lo |= (1<<9); /* Disable hw prefetching */ 152 lo |= MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE;
129 wrmsr (MSR_IA32_MISC_ENABLE, lo, hi); 153 wrmsr (MSR_IA32_MISC_ENABLE, lo, hi);
130 } 154 }
131 } 155 }
@@ -278,6 +302,9 @@ static void __cpuinit init_intel(struct cpuinfo_x86 *c)
278 ds_init_intel(c); 302 ds_init_intel(c);
279 } 303 }
280 304
305 if (c->x86 == 6 && c->x86_model == 29 && cpu_has_clflush)
306 set_cpu_cap(c, X86_FEATURE_CLFLUSH_MONITOR);
307
281#ifdef CONFIG_X86_64 308#ifdef CONFIG_X86_64
282 if (c->x86 == 15) 309 if (c->x86 == 15)
283 c->x86_cache_alignment = c->x86_clflush_size * 2; 310 c->x86_cache_alignment = c->x86_clflush_size * 2;
diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
index 48533d77be78..7293508d8f5c 100644
--- a/arch/x86/kernel/cpu/intel_cacheinfo.c
+++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
@@ -36,8 +36,11 @@ static struct _cache_table cache_table[] __cpuinitdata =
36{ 36{
37 { 0x06, LVL_1_INST, 8 }, /* 4-way set assoc, 32 byte line size */ 37 { 0x06, LVL_1_INST, 8 }, /* 4-way set assoc, 32 byte line size */
38 { 0x08, LVL_1_INST, 16 }, /* 4-way set assoc, 32 byte line size */ 38 { 0x08, LVL_1_INST, 16 }, /* 4-way set assoc, 32 byte line size */
39 { 0x09, LVL_1_INST, 32 }, /* 4-way set assoc, 64 byte line size */
39 { 0x0a, LVL_1_DATA, 8 }, /* 2 way set assoc, 32 byte line size */ 40 { 0x0a, LVL_1_DATA, 8 }, /* 2 way set assoc, 32 byte line size */
40 { 0x0c, LVL_1_DATA, 16 }, /* 4-way set assoc, 32 byte line size */ 41 { 0x0c, LVL_1_DATA, 16 }, /* 4-way set assoc, 32 byte line size */
42 { 0x0d, LVL_1_DATA, 16 }, /* 4-way set assoc, 64 byte line size */
43 { 0x21, LVL_2, 256 }, /* 8-way set assoc, 64 byte line size */
41 { 0x22, LVL_3, 512 }, /* 4-way set assoc, sectored cache, 64 byte line size */ 44 { 0x22, LVL_3, 512 }, /* 4-way set assoc, sectored cache, 64 byte line size */
42 { 0x23, LVL_3, 1024 }, /* 8-way set assoc, sectored cache, 64 byte line size */ 45 { 0x23, LVL_3, 1024 }, /* 8-way set assoc, sectored cache, 64 byte line size */
43 { 0x25, LVL_3, 2048 }, /* 8-way set assoc, sectored cache, 64 byte line size */ 46 { 0x25, LVL_3, 2048 }, /* 8-way set assoc, sectored cache, 64 byte line size */
@@ -85,6 +88,18 @@ static struct _cache_table cache_table[] __cpuinitdata =
85 { 0x85, LVL_2, 2048 }, /* 8-way set assoc, 32 byte line size */ 88 { 0x85, LVL_2, 2048 }, /* 8-way set assoc, 32 byte line size */
86 { 0x86, LVL_2, 512 }, /* 4-way set assoc, 64 byte line size */ 89 { 0x86, LVL_2, 512 }, /* 4-way set assoc, 64 byte line size */
87 { 0x87, LVL_2, 1024 }, /* 8-way set assoc, 64 byte line size */ 90 { 0x87, LVL_2, 1024 }, /* 8-way set assoc, 64 byte line size */
91 { 0xd0, LVL_3, 512 }, /* 4-way set assoc, 64 byte line size */
92 { 0xd1, LVL_3, 1024 }, /* 4-way set assoc, 64 byte line size */
93 { 0xd2, LVL_3, 2048 }, /* 4-way set assoc, 64 byte line size */
94 { 0xd6, LVL_3, 1024 }, /* 8-way set assoc, 64 byte line size */
95 { 0xd7, LVL_3, 2038 }, /* 8-way set assoc, 64 byte line size */
96 { 0xd8, LVL_3, 4096 }, /* 12-way set assoc, 64 byte line size */
97 { 0xdc, LVL_3, 2048 }, /* 12-way set assoc, 64 byte line size */
98 { 0xdd, LVL_3, 4096 }, /* 12-way set assoc, 64 byte line size */
99 { 0xde, LVL_3, 8192 }, /* 12-way set assoc, 64 byte line size */
100 { 0xe2, LVL_3, 2048 }, /* 16-way set assoc, 64 byte line size */
101 { 0xe3, LVL_3, 4096 }, /* 16-way set assoc, 64 byte line size */
102 { 0xe4, LVL_3, 8192 }, /* 16-way set assoc, 64 byte line size */
88 { 0x00, 0, 0} 103 { 0x00, 0, 0}
89}; 104};
90 105
@@ -132,7 +147,16 @@ struct _cpuid4_info {
132 union _cpuid4_leaf_ecx ecx; 147 union _cpuid4_leaf_ecx ecx;
133 unsigned long size; 148 unsigned long size;
134 unsigned long can_disable; 149 unsigned long can_disable;
135 cpumask_t shared_cpu_map; /* future?: only cpus/node is needed */ 150 DECLARE_BITMAP(shared_cpu_map, NR_CPUS);
151};
152
153/* subset of above _cpuid4_info w/o shared_cpu_map */
154struct _cpuid4_info_regs {
155 union _cpuid4_leaf_eax eax;
156 union _cpuid4_leaf_ebx ebx;
157 union _cpuid4_leaf_ecx ecx;
158 unsigned long size;
159 unsigned long can_disable;
136}; 160};
137 161
138#ifdef CONFIG_PCI 162#ifdef CONFIG_PCI
@@ -263,7 +287,7 @@ amd_cpuid4(int leaf, union _cpuid4_leaf_eax *eax,
263} 287}
264 288
265static void __cpuinit 289static void __cpuinit
266amd_check_l3_disable(int index, struct _cpuid4_info *this_leaf) 290amd_check_l3_disable(int index, struct _cpuid4_info_regs *this_leaf)
267{ 291{
268 if (index < 3) 292 if (index < 3)
269 return; 293 return;
@@ -271,7 +295,8 @@ amd_check_l3_disable(int index, struct _cpuid4_info *this_leaf)
271} 295}
272 296
273static int 297static int
274__cpuinit cpuid4_cache_lookup(int index, struct _cpuid4_info *this_leaf) 298__cpuinit cpuid4_cache_lookup_regs(int index,
299 struct _cpuid4_info_regs *this_leaf)
275{ 300{
276 union _cpuid4_leaf_eax eax; 301 union _cpuid4_leaf_eax eax;
277 union _cpuid4_leaf_ebx ebx; 302 union _cpuid4_leaf_ebx ebx;
@@ -299,6 +324,15 @@ __cpuinit cpuid4_cache_lookup(int index, struct _cpuid4_info *this_leaf)
299 return 0; 324 return 0;
300} 325}
301 326
327static int
328__cpuinit cpuid4_cache_lookup(int index, struct _cpuid4_info *this_leaf)
329{
330 struct _cpuid4_info_regs *leaf_regs =
331 (struct _cpuid4_info_regs *)this_leaf;
332
333 return cpuid4_cache_lookup_regs(index, leaf_regs);
334}
335
302static int __cpuinit find_num_cache_leaves(void) 336static int __cpuinit find_num_cache_leaves(void)
303{ 337{
304 unsigned int eax, ebx, ecx, edx; 338 unsigned int eax, ebx, ecx, edx;
@@ -338,11 +372,10 @@ unsigned int __cpuinit init_intel_cacheinfo(struct cpuinfo_x86 *c)
338 * parameters cpuid leaf to find the cache details 372 * parameters cpuid leaf to find the cache details
339 */ 373 */
340 for (i = 0; i < num_cache_leaves; i++) { 374 for (i = 0; i < num_cache_leaves; i++) {
341 struct _cpuid4_info this_leaf; 375 struct _cpuid4_info_regs this_leaf;
342
343 int retval; 376 int retval;
344 377
345 retval = cpuid4_cache_lookup(i, &this_leaf); 378 retval = cpuid4_cache_lookup_regs(i, &this_leaf);
346 if (retval >= 0) { 379 if (retval >= 0) {
347 switch(this_leaf.eax.split.level) { 380 switch(this_leaf.eax.split.level) {
348 case 1: 381 case 1:
@@ -491,17 +524,20 @@ static void __cpuinit cache_shared_cpu_map_setup(unsigned int cpu, int index)
491 num_threads_sharing = 1 + this_leaf->eax.split.num_threads_sharing; 524 num_threads_sharing = 1 + this_leaf->eax.split.num_threads_sharing;
492 525
493 if (num_threads_sharing == 1) 526 if (num_threads_sharing == 1)
494 cpu_set(cpu, this_leaf->shared_cpu_map); 527 cpumask_set_cpu(cpu, to_cpumask(this_leaf->shared_cpu_map));
495 else { 528 else {
496 index_msb = get_count_order(num_threads_sharing); 529 index_msb = get_count_order(num_threads_sharing);
497 530
498 for_each_online_cpu(i) { 531 for_each_online_cpu(i) {
499 if (cpu_data(i).apicid >> index_msb == 532 if (cpu_data(i).apicid >> index_msb ==
500 c->apicid >> index_msb) { 533 c->apicid >> index_msb) {
501 cpu_set(i, this_leaf->shared_cpu_map); 534 cpumask_set_cpu(i,
535 to_cpumask(this_leaf->shared_cpu_map));
502 if (i != cpu && per_cpu(cpuid4_info, i)) { 536 if (i != cpu && per_cpu(cpuid4_info, i)) {
503 sibling_leaf = CPUID4_INFO_IDX(i, index); 537 sibling_leaf =
504 cpu_set(cpu, sibling_leaf->shared_cpu_map); 538 CPUID4_INFO_IDX(i, index);
539 cpumask_set_cpu(cpu, to_cpumask(
540 sibling_leaf->shared_cpu_map));
505 } 541 }
506 } 542 }
507 } 543 }
@@ -513,9 +549,10 @@ static void __cpuinit cache_remove_shared_cpu_map(unsigned int cpu, int index)
513 int sibling; 549 int sibling;
514 550
515 this_leaf = CPUID4_INFO_IDX(cpu, index); 551 this_leaf = CPUID4_INFO_IDX(cpu, index);
516 for_each_cpu_mask_nr(sibling, this_leaf->shared_cpu_map) { 552 for_each_cpu(sibling, to_cpumask(this_leaf->shared_cpu_map)) {
517 sibling_leaf = CPUID4_INFO_IDX(sibling, index); 553 sibling_leaf = CPUID4_INFO_IDX(sibling, index);
518 cpu_clear(cpu, sibling_leaf->shared_cpu_map); 554 cpumask_clear_cpu(cpu,
555 to_cpumask(sibling_leaf->shared_cpu_map));
519 } 556 }
520} 557}
521#else 558#else
@@ -620,8 +657,9 @@ static ssize_t show_shared_cpu_map_func(struct _cpuid4_info *this_leaf,
620 int n = 0; 657 int n = 0;
621 658
622 if (len > 1) { 659 if (len > 1) {
623 cpumask_t *mask = &this_leaf->shared_cpu_map; 660 const struct cpumask *mask;
624 661
662 mask = to_cpumask(this_leaf->shared_cpu_map);
625 n = type? 663 n = type?
626 cpulist_scnprintf(buf, len-2, mask) : 664 cpulist_scnprintf(buf, len-2, mask) :
627 cpumask_scnprintf(buf, len-2, mask); 665 cpumask_scnprintf(buf, len-2, mask);
@@ -684,7 +722,8 @@ static struct pci_dev *get_k8_northbridge(int node)
684 722
685static ssize_t show_cache_disable(struct _cpuid4_info *this_leaf, char *buf) 723static ssize_t show_cache_disable(struct _cpuid4_info *this_leaf, char *buf)
686{ 724{
687 int node = cpu_to_node(first_cpu(this_leaf->shared_cpu_map)); 725 const struct cpumask *mask = to_cpumask(this_leaf->shared_cpu_map);
726 int node = cpu_to_node(cpumask_first(mask));
688 struct pci_dev *dev = NULL; 727 struct pci_dev *dev = NULL;
689 ssize_t ret = 0; 728 ssize_t ret = 0;
690 int i; 729 int i;
@@ -718,7 +757,8 @@ static ssize_t
718store_cache_disable(struct _cpuid4_info *this_leaf, const char *buf, 757store_cache_disable(struct _cpuid4_info *this_leaf, const char *buf,
719 size_t count) 758 size_t count)
720{ 759{
721 int node = cpu_to_node(first_cpu(this_leaf->shared_cpu_map)); 760 const struct cpumask *mask = to_cpumask(this_leaf->shared_cpu_map);
761 int node = cpu_to_node(cpumask_first(mask));
722 struct pci_dev *dev = NULL; 762 struct pci_dev *dev = NULL;
723 unsigned int ret, index, val; 763 unsigned int ret, index, val;
724 764
@@ -863,7 +903,7 @@ err_out:
863 return -ENOMEM; 903 return -ENOMEM;
864} 904}
865 905
866static cpumask_t cache_dev_map = CPU_MASK_NONE; 906static DECLARE_BITMAP(cache_dev_map, NR_CPUS);
867 907
868/* Add/Remove cache interface for CPU device */ 908/* Add/Remove cache interface for CPU device */
869static int __cpuinit cache_add_dev(struct sys_device * sys_dev) 909static int __cpuinit cache_add_dev(struct sys_device * sys_dev)
@@ -903,7 +943,7 @@ static int __cpuinit cache_add_dev(struct sys_device * sys_dev)
903 } 943 }
904 kobject_uevent(&(this_object->kobj), KOBJ_ADD); 944 kobject_uevent(&(this_object->kobj), KOBJ_ADD);
905 } 945 }
906 cpu_set(cpu, cache_dev_map); 946 cpumask_set_cpu(cpu, to_cpumask(cache_dev_map));
907 947
908 kobject_uevent(per_cpu(cache_kobject, cpu), KOBJ_ADD); 948 kobject_uevent(per_cpu(cache_kobject, cpu), KOBJ_ADD);
909 return 0; 949 return 0;
@@ -916,9 +956,9 @@ static void __cpuinit cache_remove_dev(struct sys_device * sys_dev)
916 956
917 if (per_cpu(cpuid4_info, cpu) == NULL) 957 if (per_cpu(cpuid4_info, cpu) == NULL)
918 return; 958 return;
919 if (!cpu_isset(cpu, cache_dev_map)) 959 if (!cpumask_test_cpu(cpu, to_cpumask(cache_dev_map)))
920 return; 960 return;
921 cpu_clear(cpu, cache_dev_map); 961 cpumask_clear_cpu(cpu, to_cpumask(cache_dev_map));
922 962
923 for (i = 0; i < num_cache_leaves; i++) 963 for (i = 0; i < num_cache_leaves; i++)
924 kobject_put(&(INDEX_KOBJECT_PTR(cpu,i)->kobj)); 964 kobject_put(&(INDEX_KOBJECT_PTR(cpu,i)->kobj));
diff --git a/arch/x86/kernel/cpu/mcheck/mce_32.c b/arch/x86/kernel/cpu/mcheck/mce_32.c
index 0ebf3fc6a610..dfaebce3633e 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_32.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_32.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * mce.c - x86 Machine Check Exception Reporting 2 * mce.c - x86 Machine Check Exception Reporting
3 * (c) 2002 Alan Cox <alan@redhat.com>, Dave Jones <davej@redhat.com> 3 * (c) 2002 Alan Cox <alan@lxorguk.ukuu.org.uk>, Dave Jones <davej@redhat.com>
4 */ 4 */
5 5
6#include <linux/init.h> 6#include <linux/init.h>
diff --git a/arch/x86/kernel/cpu/mcheck/mce_64.c b/arch/x86/kernel/cpu/mcheck/mce_64.c
index 1c838032fd37..fe79985ce0f2 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_64.c
@@ -295,11 +295,11 @@ void do_machine_check(struct pt_regs * regs, long error_code)
295 * If we know that the error was in user space, send a 295 * If we know that the error was in user space, send a
296 * SIGBUS. Otherwise, panic if tolerance is low. 296 * SIGBUS. Otherwise, panic if tolerance is low.
297 * 297 *
298 * do_exit() takes an awful lot of locks and has a slight 298 * force_sig() takes an awful lot of locks and has a slight
299 * risk of deadlocking. 299 * risk of deadlocking.
300 */ 300 */
301 if (user_space) { 301 if (user_space) {
302 do_exit(SIGBUS); 302 force_sig(SIGBUS, current);
303 } else if (panic_on_oops || tolerant < 2) { 303 } else if (panic_on_oops || tolerant < 2) {
304 mce_panic("Uncorrected machine check", 304 mce_panic("Uncorrected machine check",
305 &panicm, mcestart); 305 &panicm, mcestart);
@@ -490,7 +490,7 @@ static void __cpuinit mce_cpu_quirks(struct cpuinfo_x86 *c)
490 490
491} 491}
492 492
493static void __cpuinit mce_cpu_features(struct cpuinfo_x86 *c) 493static void mce_cpu_features(struct cpuinfo_x86 *c)
494{ 494{
495 switch (c->x86_vendor) { 495 switch (c->x86_vendor) {
496 case X86_VENDOR_INTEL: 496 case X86_VENDOR_INTEL:
@@ -734,6 +734,7 @@ __setup("mce=", mcheck_enable);
734static int mce_resume(struct sys_device *dev) 734static int mce_resume(struct sys_device *dev)
735{ 735{
736 mce_init(NULL); 736 mce_init(NULL);
737 mce_cpu_features(&current_cpu_data);
737 return 0; 738 return 0;
738} 739}
739 740
diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c b/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
index a5a5e0530370..9817506dd469 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
@@ -67,7 +67,7 @@ static struct threshold_block threshold_defaults = {
67struct threshold_bank { 67struct threshold_bank {
68 struct kobject *kobj; 68 struct kobject *kobj;
69 struct threshold_block *blocks; 69 struct threshold_block *blocks;
70 cpumask_t cpus; 70 cpumask_var_t cpus;
71}; 71};
72static DEFINE_PER_CPU(struct threshold_bank *, threshold_banks[NR_BANKS]); 72static DEFINE_PER_CPU(struct threshold_bank *, threshold_banks[NR_BANKS]);
73 73
@@ -121,7 +121,7 @@ static long threshold_restart_bank(void *_tr)
121} 121}
122 122
123/* cpu init entry point, called from mce.c with preempt off */ 123/* cpu init entry point, called from mce.c with preempt off */
124void __cpuinit mce_amd_feature_init(struct cpuinfo_x86 *c) 124void mce_amd_feature_init(struct cpuinfo_x86 *c)
125{ 125{
126 unsigned int bank, block; 126 unsigned int bank, block;
127 unsigned int cpu = smp_processor_id(); 127 unsigned int cpu = smp_processor_id();
@@ -462,7 +462,7 @@ out_free:
462 return err; 462 return err;
463} 463}
464 464
465static long local_allocate_threshold_blocks(void *_bank) 465static __cpuinit long local_allocate_threshold_blocks(void *_bank)
466{ 466{
467 unsigned int *bank = _bank; 467 unsigned int *bank = _bank;
468 468
@@ -481,7 +481,7 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank)
481 481
482#ifdef CONFIG_SMP 482#ifdef CONFIG_SMP
483 if (cpu_data(cpu).cpu_core_id && shared_bank[bank]) { /* symlink */ 483 if (cpu_data(cpu).cpu_core_id && shared_bank[bank]) { /* symlink */
484 i = first_cpu(per_cpu(cpu_core_map, cpu)); 484 i = cpumask_first(&per_cpu(cpu_core_map, cpu));
485 485
486 /* first core not up yet */ 486 /* first core not up yet */
487 if (cpu_data(i).cpu_core_id) 487 if (cpu_data(i).cpu_core_id)
@@ -501,7 +501,7 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank)
501 if (err) 501 if (err)
502 goto out; 502 goto out;
503 503
504 b->cpus = per_cpu(cpu_core_map, cpu); 504 cpumask_copy(b->cpus, &per_cpu(cpu_core_map, cpu));
505 per_cpu(threshold_banks, cpu)[bank] = b; 505 per_cpu(threshold_banks, cpu)[bank] = b;
506 goto out; 506 goto out;
507 } 507 }
@@ -512,15 +512,20 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank)
512 err = -ENOMEM; 512 err = -ENOMEM;
513 goto out; 513 goto out;
514 } 514 }
515 if (!alloc_cpumask_var(&b->cpus, GFP_KERNEL)) {
516 kfree(b);
517 err = -ENOMEM;
518 goto out;
519 }
515 520
516 b->kobj = kobject_create_and_add(name, &per_cpu(device_mce, cpu).kobj); 521 b->kobj = kobject_create_and_add(name, &per_cpu(device_mce, cpu).kobj);
517 if (!b->kobj) 522 if (!b->kobj)
518 goto out_free; 523 goto out_free;
519 524
520#ifndef CONFIG_SMP 525#ifndef CONFIG_SMP
521 b->cpus = CPU_MASK_ALL; 526 cpumask_setall(b->cpus);
522#else 527#else
523 b->cpus = per_cpu(cpu_core_map, cpu); 528 cpumask_copy(b->cpus, &per_cpu(cpu_core_map, cpu));
524#endif 529#endif
525 530
526 per_cpu(threshold_banks, cpu)[bank] = b; 531 per_cpu(threshold_banks, cpu)[bank] = b;
@@ -529,7 +534,7 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank)
529 if (err) 534 if (err)
530 goto out_free; 535 goto out_free;
531 536
532 for_each_cpu_mask_nr(i, b->cpus) { 537 for_each_cpu(i, b->cpus) {
533 if (i == cpu) 538 if (i == cpu)
534 continue; 539 continue;
535 540
@@ -545,6 +550,7 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank)
545 550
546out_free: 551out_free:
547 per_cpu(threshold_banks, cpu)[bank] = NULL; 552 per_cpu(threshold_banks, cpu)[bank] = NULL;
553 free_cpumask_var(b->cpus);
548 kfree(b); 554 kfree(b);
549out: 555out:
550 return err; 556 return err;
@@ -619,7 +625,7 @@ static void threshold_remove_bank(unsigned int cpu, int bank)
619#endif 625#endif
620 626
621 /* remove all sibling symlinks before unregistering */ 627 /* remove all sibling symlinks before unregistering */
622 for_each_cpu_mask_nr(i, b->cpus) { 628 for_each_cpu(i, b->cpus) {
623 if (i == cpu) 629 if (i == cpu)
624 continue; 630 continue;
625 631
@@ -632,6 +638,7 @@ static void threshold_remove_bank(unsigned int cpu, int bank)
632free_out: 638free_out:
633 kobject_del(b->kobj); 639 kobject_del(b->kobj);
634 kobject_put(b->kobj); 640 kobject_put(b->kobj);
641 free_cpumask_var(b->cpus);
635 kfree(b); 642 kfree(b);
636 per_cpu(threshold_banks, cpu)[bank] = NULL; 643 per_cpu(threshold_banks, cpu)[bank] = NULL;
637} 644}
diff --git a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c b/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
index 4b48f251fd39..aa5e287c98e0 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
@@ -7,6 +7,7 @@
7#include <linux/interrupt.h> 7#include <linux/interrupt.h>
8#include <linux/percpu.h> 8#include <linux/percpu.h>
9#include <asm/processor.h> 9#include <asm/processor.h>
10#include <asm/apic.h>
10#include <asm/msr.h> 11#include <asm/msr.h>
11#include <asm/mce.h> 12#include <asm/mce.h>
12#include <asm/hw_irq.h> 13#include <asm/hw_irq.h>
@@ -30,7 +31,7 @@ asmlinkage void smp_thermal_interrupt(void)
30 irq_exit(); 31 irq_exit();
31} 32}
32 33
33static void __cpuinit intel_init_thermal(struct cpuinfo_x86 *c) 34static void intel_init_thermal(struct cpuinfo_x86 *c)
34{ 35{
35 u32 l, h; 36 u32 l, h;
36 int tm2 = 0; 37 int tm2 = 0;
@@ -48,13 +49,13 @@ static void __cpuinit intel_init_thermal(struct cpuinfo_x86 *c)
48 */ 49 */
49 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 50 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
50 h = apic_read(APIC_LVTTHMR); 51 h = apic_read(APIC_LVTTHMR);
51 if ((l & (1 << 3)) && (h & APIC_DM_SMI)) { 52 if ((l & MSR_IA32_MISC_ENABLE_TM1) && (h & APIC_DM_SMI)) {
52 printk(KERN_DEBUG 53 printk(KERN_DEBUG
53 "CPU%d: Thermal monitoring handled by SMI\n", cpu); 54 "CPU%d: Thermal monitoring handled by SMI\n", cpu);
54 return; 55 return;
55 } 56 }
56 57
57 if (cpu_has(c, X86_FEATURE_TM2) && (l & (1 << 13))) 58 if (cpu_has(c, X86_FEATURE_TM2) && (l & MSR_IA32_MISC_ENABLE_TM2))
58 tm2 = 1; 59 tm2 = 1;
59 60
60 if (h & APIC_VECTOR_MASK) { 61 if (h & APIC_VECTOR_MASK) {
@@ -72,7 +73,7 @@ static void __cpuinit intel_init_thermal(struct cpuinfo_x86 *c)
72 wrmsr(MSR_IA32_THERM_INTERRUPT, l | 0x03, h); 73 wrmsr(MSR_IA32_THERM_INTERRUPT, l | 0x03, h);
73 74
74 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 75 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
75 wrmsr(MSR_IA32_MISC_ENABLE, l | (1 << 3), h); 76 wrmsr(MSR_IA32_MISC_ENABLE, l | MSR_IA32_MISC_ENABLE_TM1, h);
76 77
77 l = apic_read(APIC_LVTTHMR); 78 l = apic_read(APIC_LVTTHMR);
78 apic_write(APIC_LVTTHMR, l & ~APIC_LVT_MASKED); 79 apic_write(APIC_LVTTHMR, l & ~APIC_LVT_MASKED);
@@ -84,7 +85,7 @@ static void __cpuinit intel_init_thermal(struct cpuinfo_x86 *c)
84 return; 85 return;
85} 86}
86 87
87void __cpuinit mce_intel_feature_init(struct cpuinfo_x86 *c) 88void mce_intel_feature_init(struct cpuinfo_x86 *c)
88{ 89{
89 intel_init_thermal(c); 90 intel_init_thermal(c);
90} 91}
diff --git a/arch/x86/kernel/cpu/mcheck/p4.c b/arch/x86/kernel/cpu/mcheck/p4.c
index 9b60fce09f75..f53bdcbaf382 100644
--- a/arch/x86/kernel/cpu/mcheck/p4.c
+++ b/arch/x86/kernel/cpu/mcheck/p4.c
@@ -85,7 +85,7 @@ static void intel_init_thermal(struct cpuinfo_x86 *c)
85 */ 85 */
86 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 86 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
87 h = apic_read(APIC_LVTTHMR); 87 h = apic_read(APIC_LVTTHMR);
88 if ((l & (1<<3)) && (h & APIC_DM_SMI)) { 88 if ((l & MSR_IA32_MISC_ENABLE_TM1) && (h & APIC_DM_SMI)) {
89 printk(KERN_DEBUG "CPU%d: Thermal monitoring handled by SMI\n", 89 printk(KERN_DEBUG "CPU%d: Thermal monitoring handled by SMI\n",
90 cpu); 90 cpu);
91 return; /* -EBUSY */ 91 return; /* -EBUSY */
@@ -111,7 +111,7 @@ static void intel_init_thermal(struct cpuinfo_x86 *c)
111 vendor_thermal_interrupt = intel_thermal_interrupt; 111 vendor_thermal_interrupt = intel_thermal_interrupt;
112 112
113 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 113 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
114 wrmsr(MSR_IA32_MISC_ENABLE, l | (1<<3), h); 114 wrmsr(MSR_IA32_MISC_ENABLE, l | MSR_IA32_MISC_ENABLE_TM1, h);
115 115
116 l = apic_read(APIC_LVTTHMR); 116 l = apic_read(APIC_LVTTHMR);
117 apic_write(APIC_LVTTHMR, l & ~APIC_LVT_MASKED); 117 apic_write(APIC_LVTTHMR, l & ~APIC_LVT_MASKED);
diff --git a/arch/x86/kernel/cpu/mcheck/p5.c b/arch/x86/kernel/cpu/mcheck/p5.c
index bfa5817afdda..c9f77ea69edc 100644
--- a/arch/x86/kernel/cpu/mcheck/p5.c
+++ b/arch/x86/kernel/cpu/mcheck/p5.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * P5 specific Machine Check Exception Reporting 2 * P5 specific Machine Check Exception Reporting
3 * (C) Copyright 2002 Alan Cox <alan@redhat.com> 3 * (C) Copyright 2002 Alan Cox <alan@lxorguk.ukuu.org.uk>
4 */ 4 */
5 5
6#include <linux/init.h> 6#include <linux/init.h>
diff --git a/arch/x86/kernel/cpu/mcheck/p6.c b/arch/x86/kernel/cpu/mcheck/p6.c
index 62efc9c2b3af..2ac52d7b434b 100644
--- a/arch/x86/kernel/cpu/mcheck/p6.c
+++ b/arch/x86/kernel/cpu/mcheck/p6.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * P6 specific Machine Check Exception Reporting 2 * P6 specific Machine Check Exception Reporting
3 * (C) Copyright 2002 Alan Cox <alan@redhat.com> 3 * (C) Copyright 2002 Alan Cox <alan@lxorguk.ukuu.org.uk>
4 */ 4 */
5 5
6#include <linux/init.h> 6#include <linux/init.h>
diff --git a/arch/x86/kernel/cpu/mcheck/winchip.c b/arch/x86/kernel/cpu/mcheck/winchip.c
index f2be3e190c6b..2a043d89811d 100644
--- a/arch/x86/kernel/cpu/mcheck/winchip.c
+++ b/arch/x86/kernel/cpu/mcheck/winchip.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * IDT Winchip specific Machine Check Exception Reporting 2 * IDT Winchip specific Machine Check Exception Reporting
3 * (C) Copyright 2002 Alan Cox <alan@redhat.com> 3 * (C) Copyright 2002 Alan Cox <alan@lxorguk.ukuu.org.uk>
4 */ 4 */
5 5
6#include <linux/init.h> 6#include <linux/init.h>
diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index b59ddcc88cd8..0c0a455fe95c 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -33,11 +33,13 @@ u64 mtrr_tom2;
33struct mtrr_state_type mtrr_state = {}; 33struct mtrr_state_type mtrr_state = {};
34EXPORT_SYMBOL_GPL(mtrr_state); 34EXPORT_SYMBOL_GPL(mtrr_state);
35 35
36#undef MODULE_PARAM_PREFIX 36static int __initdata mtrr_show;
37#define MODULE_PARAM_PREFIX "mtrr." 37static int __init mtrr_debug(char *opt)
38 38{
39static int mtrr_show; 39 mtrr_show = 1;
40module_param_named(show, mtrr_show, bool, 0); 40 return 0;
41}
42early_param("mtrr.show", mtrr_debug);
41 43
42/* 44/*
43 * Returns the effective MTRR type for the region 45 * Returns the effective MTRR type for the region
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
index d259e5d2e054..236a401b8259 100644
--- a/arch/x86/kernel/cpu/mtrr/main.c
+++ b/arch/x86/kernel/cpu/mtrr/main.c
@@ -1594,8 +1594,7 @@ int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
1594 1594
1595 /* kvm/qemu doesn't have mtrr set right, don't trim them all */ 1595 /* kvm/qemu doesn't have mtrr set right, don't trim them all */
1596 if (!highest_pfn) { 1596 if (!highest_pfn) {
1597 WARN(!kvm_para_available(), KERN_WARNING 1597 printk(KERN_INFO "CPU MTRRs all blank - virtualized system.\n");
1598 "WARNING: strange, CPU MTRRs all blank?\n");
1599 return 0; 1598 return 0;
1600 } 1599 }
1601 1600
diff --git a/arch/x86/kernel/cpu/perfctr-watchdog.c b/arch/x86/kernel/cpu/perfctr-watchdog.c
index 9abd48b22674..f6c70a164e32 100644
--- a/arch/x86/kernel/cpu/perfctr-watchdog.c
+++ b/arch/x86/kernel/cpu/perfctr-watchdog.c
@@ -19,7 +19,7 @@
19#include <linux/nmi.h> 19#include <linux/nmi.h>
20#include <linux/kprobes.h> 20#include <linux/kprobes.h>
21 21
22#include <asm/apic.h> 22#include <asm/genapic.h>
23#include <asm/intel_arch_perfmon.h> 23#include <asm/intel_arch_perfmon.h>
24 24
25struct nmi_watchdog_ctlblk { 25struct nmi_watchdog_ctlblk {
diff --git a/arch/x86/kernel/cpu/proc.c b/arch/x86/kernel/cpu/proc.c
index 01b1244ef1c0..d67e0e48bc2d 100644
--- a/arch/x86/kernel/cpu/proc.c
+++ b/arch/x86/kernel/cpu/proc.c
@@ -7,11 +7,10 @@
7/* 7/*
8 * Get CPU information for use by the procfs. 8 * Get CPU information for use by the procfs.
9 */ 9 */
10#ifdef CONFIG_X86_32
11static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c, 10static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c,
12 unsigned int cpu) 11 unsigned int cpu)
13{ 12{
14#ifdef CONFIG_X86_HT 13#ifdef CONFIG_SMP
15 if (c->x86_max_cores * smp_num_siblings > 1) { 14 if (c->x86_max_cores * smp_num_siblings > 1) {
16 seq_printf(m, "physical id\t: %d\n", c->phys_proc_id); 15 seq_printf(m, "physical id\t: %d\n", c->phys_proc_id);
17 seq_printf(m, "siblings\t: %d\n", 16 seq_printf(m, "siblings\t: %d\n",
@@ -24,6 +23,7 @@ static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c,
24#endif 23#endif
25} 24}
26 25
26#ifdef CONFIG_X86_32
27static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c) 27static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
28{ 28{
29 /* 29 /*
@@ -50,22 +50,6 @@ static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
50 c->wp_works_ok ? "yes" : "no"); 50 c->wp_works_ok ? "yes" : "no");
51} 51}
52#else 52#else
53static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c,
54 unsigned int cpu)
55{
56#ifdef CONFIG_SMP
57 if (c->x86_max_cores * smp_num_siblings > 1) {
58 seq_printf(m, "physical id\t: %d\n", c->phys_proc_id);
59 seq_printf(m, "siblings\t: %d\n",
60 cpus_weight(per_cpu(cpu_core_map, cpu)));
61 seq_printf(m, "core id\t\t: %d\n", c->cpu_core_id);
62 seq_printf(m, "cpu cores\t: %d\n", c->booted_cores);
63 seq_printf(m, "apicid\t\t: %d\n", c->apicid);
64 seq_printf(m, "initial apicid\t: %d\n", c->initial_apicid);
65 }
66#endif
67}
68
69static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c) 53static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
70{ 54{
71 seq_printf(m, 55 seq_printf(m,
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index c689d19e35ab..ff958248e61d 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -24,12 +24,10 @@
24#include <asm/apic.h> 24#include <asm/apic.h>
25#include <asm/hpet.h> 25#include <asm/hpet.h>
26#include <linux/kdebug.h> 26#include <linux/kdebug.h>
27#include <asm/smp.h> 27#include <asm/cpu.h>
28#include <asm/reboot.h> 28#include <asm/reboot.h>
29#include <asm/virtext.h> 29#include <asm/virtext.h>
30 30
31#include <mach_ipi.h>
32
33 31
34#if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC) 32#if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC)
35 33
diff --git a/arch/x86/kernel/ds.c b/arch/x86/kernel/ds.c
index da91701a2348..169a120587be 100644
--- a/arch/x86/kernel/ds.c
+++ b/arch/x86/kernel/ds.c
@@ -15,8 +15,8 @@
15 * - buffer allocation (memory accounting) 15 * - buffer allocation (memory accounting)
16 * 16 *
17 * 17 *
18 * Copyright (C) 2007-2008 Intel Corporation. 18 * Copyright (C) 2007-2009 Intel Corporation.
19 * Markus Metzger <markus.t.metzger@intel.com>, 2007-2008 19 * Markus Metzger <markus.t.metzger@intel.com>, 2007-2009
20 */ 20 */
21 21
22 22
@@ -890,7 +890,7 @@ int ds_set_pebs_reset(struct pebs_tracer *tracer, u64 value)
890} 890}
891 891
892static const struct ds_configuration ds_cfg_netburst = { 892static const struct ds_configuration ds_cfg_netburst = {
893 .name = "netburst", 893 .name = "Netburst",
894 .ctl[dsf_bts] = (1 << 2) | (1 << 3), 894 .ctl[dsf_bts] = (1 << 2) | (1 << 3),
895 .ctl[dsf_bts_kernel] = (1 << 5), 895 .ctl[dsf_bts_kernel] = (1 << 5),
896 .ctl[dsf_bts_user] = (1 << 6), 896 .ctl[dsf_bts_user] = (1 << 6),
@@ -904,7 +904,7 @@ static const struct ds_configuration ds_cfg_netburst = {
904#endif 904#endif
905}; 905};
906static const struct ds_configuration ds_cfg_pentium_m = { 906static const struct ds_configuration ds_cfg_pentium_m = {
907 .name = "pentium m", 907 .name = "Pentium M",
908 .ctl[dsf_bts] = (1 << 6) | (1 << 7), 908 .ctl[dsf_bts] = (1 << 6) | (1 << 7),
909 909
910 .sizeof_field = sizeof(long), 910 .sizeof_field = sizeof(long),
@@ -915,8 +915,8 @@ static const struct ds_configuration ds_cfg_pentium_m = {
915 .sizeof_rec[ds_pebs] = sizeof(long) * 18, 915 .sizeof_rec[ds_pebs] = sizeof(long) * 18,
916#endif 916#endif
917}; 917};
918static const struct ds_configuration ds_cfg_core2 = { 918static const struct ds_configuration ds_cfg_core2_atom = {
919 .name = "core 2", 919 .name = "Core 2/Atom",
920 .ctl[dsf_bts] = (1 << 6) | (1 << 7), 920 .ctl[dsf_bts] = (1 << 6) | (1 << 7),
921 .ctl[dsf_bts_kernel] = (1 << 9), 921 .ctl[dsf_bts_kernel] = (1 << 9),
922 .ctl[dsf_bts_user] = (1 << 10), 922 .ctl[dsf_bts_user] = (1 << 10),
@@ -949,19 +949,22 @@ void __cpuinit ds_init_intel(struct cpuinfo_x86 *c)
949 switch (c->x86) { 949 switch (c->x86) {
950 case 0x6: 950 case 0x6:
951 switch (c->x86_model) { 951 switch (c->x86_model) {
952 case 0 ... 0xC: 952 case 0x9:
953 /* sorry, don't know about them */ 953 case 0xd: /* Pentium M */
954 break;
955 case 0xD:
956 case 0xE: /* Pentium M */
957 ds_configure(&ds_cfg_pentium_m); 954 ds_configure(&ds_cfg_pentium_m);
958 break; 955 break;
959 default: /* Core2, Atom, ... */ 956 case 0xf:
960 ds_configure(&ds_cfg_core2); 957 case 0x17: /* Core2 */
958 case 0x1c: /* Atom */
959 ds_configure(&ds_cfg_core2_atom);
960 break;
961 case 0x1a: /* i7 */
962 default:
963 /* sorry, don't know about them */
961 break; 964 break;
962 } 965 }
963 break; 966 break;
964 case 0xF: 967 case 0xf:
965 switch (c->x86_model) { 968 switch (c->x86_model) {
966 case 0x0: 969 case 0x0:
967 case 0x1: 970 case 0x1:
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 6b1f6f6f8661..87d103ded1c3 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -99,7 +99,7 @@ print_context_stack(struct thread_info *tinfo,
99 frame = frame->next_frame; 99 frame = frame->next_frame;
100 bp = (unsigned long) frame; 100 bp = (unsigned long) frame;
101 } else { 101 } else {
102 ops->address(data, addr, bp == 0); 102 ops->address(data, addr, 0);
103 } 103 }
104 print_ftrace_graph_addr(addr, data, ops, tinfo, graph); 104 print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
105 } 105 }
diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
index c302d0707048..d35db5993fd6 100644
--- a/arch/x86/kernel/dumpstack_64.c
+++ b/arch/x86/kernel/dumpstack_64.c
@@ -106,7 +106,8 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
106 const struct stacktrace_ops *ops, void *data) 106 const struct stacktrace_ops *ops, void *data)
107{ 107{
108 const unsigned cpu = get_cpu(); 108 const unsigned cpu = get_cpu();
109 unsigned long *irqstack_end = (unsigned long *)cpu_pda(cpu)->irqstackptr; 109 unsigned long *irq_stack_end =
110 (unsigned long *)per_cpu(irq_stack_ptr, cpu);
110 unsigned used = 0; 111 unsigned used = 0;
111 struct thread_info *tinfo; 112 struct thread_info *tinfo;
112 int graph = 0; 113 int graph = 0;
@@ -160,23 +161,23 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
160 stack = (unsigned long *) estack_end[-2]; 161 stack = (unsigned long *) estack_end[-2];
161 continue; 162 continue;
162 } 163 }
163 if (irqstack_end) { 164 if (irq_stack_end) {
164 unsigned long *irqstack; 165 unsigned long *irq_stack;
165 irqstack = irqstack_end - 166 irq_stack = irq_stack_end -
166 (IRQSTACKSIZE - 64) / sizeof(*irqstack); 167 (IRQ_STACK_SIZE - 64) / sizeof(*irq_stack);
167 168
168 if (stack >= irqstack && stack < irqstack_end) { 169 if (stack >= irq_stack && stack < irq_stack_end) {
169 if (ops->stack(data, "IRQ") < 0) 170 if (ops->stack(data, "IRQ") < 0)
170 break; 171 break;
171 bp = print_context_stack(tinfo, stack, bp, 172 bp = print_context_stack(tinfo, stack, bp,
172 ops, data, irqstack_end, &graph); 173 ops, data, irq_stack_end, &graph);
173 /* 174 /*
174 * We link to the next stack (which would be 175 * We link to the next stack (which would be
175 * the process stack normally) the last 176 * the process stack normally) the last
176 * pointer (index -1 to end) in the IRQ stack: 177 * pointer (index -1 to end) in the IRQ stack:
177 */ 178 */
178 stack = (unsigned long *) (irqstack_end[-1]); 179 stack = (unsigned long *) (irq_stack_end[-1]);
179 irqstack_end = NULL; 180 irq_stack_end = NULL;
180 ops->stack(data, "EOI"); 181 ops->stack(data, "EOI");
181 continue; 182 continue;
182 } 183 }
@@ -199,10 +200,10 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs,
199 unsigned long *stack; 200 unsigned long *stack;
200 int i; 201 int i;
201 const int cpu = smp_processor_id(); 202 const int cpu = smp_processor_id();
202 unsigned long *irqstack_end = 203 unsigned long *irq_stack_end =
203 (unsigned long *) (cpu_pda(cpu)->irqstackptr); 204 (unsigned long *)(per_cpu(irq_stack_ptr, cpu));
204 unsigned long *irqstack = 205 unsigned long *irq_stack =
205 (unsigned long *) (cpu_pda(cpu)->irqstackptr - IRQSTACKSIZE); 206 (unsigned long *)(per_cpu(irq_stack_ptr, cpu) - IRQ_STACK_SIZE);
206 207
207 /* 208 /*
208 * debugging aid: "show_stack(NULL, NULL);" prints the 209 * debugging aid: "show_stack(NULL, NULL);" prints the
@@ -218,9 +219,9 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs,
218 219
219 stack = sp; 220 stack = sp;
220 for (i = 0; i < kstack_depth_to_print; i++) { 221 for (i = 0; i < kstack_depth_to_print; i++) {
221 if (stack >= irqstack && stack <= irqstack_end) { 222 if (stack >= irq_stack && stack <= irq_stack_end) {
222 if (stack == irqstack_end) { 223 if (stack == irq_stack_end) {
223 stack = (unsigned long *) (irqstack_end[-1]); 224 stack = (unsigned long *) (irq_stack_end[-1]);
224 printk(" <EOI> "); 225 printk(" <EOI> ");
225 } 226 }
226 } else { 227 } else {
@@ -241,7 +242,7 @@ void show_registers(struct pt_regs *regs)
241 int i; 242 int i;
242 unsigned long sp; 243 unsigned long sp;
243 const int cpu = smp_processor_id(); 244 const int cpu = smp_processor_id();
244 struct task_struct *cur = cpu_pda(cpu)->pcurrent; 245 struct task_struct *cur = current;
245 246
246 sp = regs->sp; 247 sp = regs->sp;
247 printk("CPU %d ", cpu); 248 printk("CPU %d ", cpu);
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index e85826829cf2..508bec1cee27 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -858,6 +858,9 @@ void __init reserve_early_overlap_ok(u64 start, u64 end, char *name)
858 */ 858 */
859void __init reserve_early(u64 start, u64 end, char *name) 859void __init reserve_early(u64 start, u64 end, char *name)
860{ 860{
861 if (start >= end)
862 return;
863
861 drop_overlaps_that_are_ok(start, end); 864 drop_overlaps_that_are_ok(start, end);
862 __reserve_early(start, end, name, 0); 865 __reserve_early(start, end, name, 0);
863} 866}
diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
index 504ad198e4ad..639ad98238a2 100644
--- a/arch/x86/kernel/early_printk.c
+++ b/arch/x86/kernel/early_printk.c
@@ -13,8 +13,8 @@
13#include <asm/setup.h> 13#include <asm/setup.h>
14#include <xen/hvc-console.h> 14#include <xen/hvc-console.h>
15#include <asm/pci-direct.h> 15#include <asm/pci-direct.h>
16#include <asm/pgtable.h>
17#include <asm/fixmap.h> 16#include <asm/fixmap.h>
17#include <asm/pgtable.h>
18#include <linux/usb/ehci_def.h> 18#include <linux/usb/ehci_def.h>
19 19
20/* Simple VGA output */ 20/* Simple VGA output */
diff --git a/arch/x86/kernel/efi.c b/arch/x86/kernel/efi.c
index 1119d247fe11..b205272ad394 100644
--- a/arch/x86/kernel/efi.c
+++ b/arch/x86/kernel/efi.c
@@ -366,10 +366,12 @@ void __init efi_init(void)
366 SMBIOS_TABLE_GUID)) { 366 SMBIOS_TABLE_GUID)) {
367 efi.smbios = config_tables[i].table; 367 efi.smbios = config_tables[i].table;
368 printk(" SMBIOS=0x%lx ", config_tables[i].table); 368 printk(" SMBIOS=0x%lx ", config_tables[i].table);
369#ifdef CONFIG_X86_UV
369 } else if (!efi_guidcmp(config_tables[i].guid, 370 } else if (!efi_guidcmp(config_tables[i].guid,
370 UV_SYSTEM_TABLE_GUID)) { 371 UV_SYSTEM_TABLE_GUID)) {
371 efi.uv_systab = config_tables[i].table; 372 efi.uv_systab = config_tables[i].table;
372 printk(" UVsystab=0x%lx ", config_tables[i].table); 373 printk(" UVsystab=0x%lx ", config_tables[i].table);
374#endif
373 } else if (!efi_guidcmp(config_tables[i].guid, 375 } else if (!efi_guidcmp(config_tables[i].guid,
374 HCDP_TABLE_GUID)) { 376 HCDP_TABLE_GUID)) {
375 efi.hcdp = config_tables[i].table; 377 efi.hcdp = config_tables[i].table;
diff --git a/arch/x86/kernel/efi_64.c b/arch/x86/kernel/efi_64.c
index 652c5287215f..a4ee29127fdf 100644
--- a/arch/x86/kernel/efi_64.c
+++ b/arch/x86/kernel/efi_64.c
@@ -36,6 +36,7 @@
36#include <asm/proto.h> 36#include <asm/proto.h>
37#include <asm/efi.h> 37#include <asm/efi.h>
38#include <asm/cacheflush.h> 38#include <asm/cacheflush.h>
39#include <asm/fixmap.h>
39 40
40static pgd_t save_pgd __initdata; 41static pgd_t save_pgd __initdata;
41static unsigned long efi_flags __initdata; 42static unsigned long efi_flags __initdata;
diff --git a/arch/x86/kernel/efi_stub_32.S b/arch/x86/kernel/efi_stub_32.S
index ef00bb77d7e4..fbe66e626c09 100644
--- a/arch/x86/kernel/efi_stub_32.S
+++ b/arch/x86/kernel/efi_stub_32.S
@@ -6,7 +6,7 @@
6 */ 6 */
7 7
8#include <linux/linkage.h> 8#include <linux/linkage.h>
9#include <asm/page.h> 9#include <asm/page_types.h>
10 10
11/* 11/*
12 * efi_call_phys(void *, ...) is a function with variable parameters. 12 * efi_call_phys(void *, ...) is a function with variable parameters.
@@ -113,6 +113,7 @@ ENTRY(efi_call_phys)
113 movl (%edx), %ecx 113 movl (%edx), %ecx
114 pushl %ecx 114 pushl %ecx
115 ret 115 ret
116ENDPROC(efi_call_phys)
116.previous 117.previous
117 118
118.data 119.data
diff --git a/arch/x86/kernel/efi_stub_64.S b/arch/x86/kernel/efi_stub_64.S
index 99b47d48c9f4..4c07ccab8146 100644
--- a/arch/x86/kernel/efi_stub_64.S
+++ b/arch/x86/kernel/efi_stub_64.S
@@ -41,6 +41,7 @@ ENTRY(efi_call0)
41 addq $32, %rsp 41 addq $32, %rsp
42 RESTORE_XMM 42 RESTORE_XMM
43 ret 43 ret
44ENDPROC(efi_call0)
44 45
45ENTRY(efi_call1) 46ENTRY(efi_call1)
46 SAVE_XMM 47 SAVE_XMM
@@ -50,6 +51,7 @@ ENTRY(efi_call1)
50 addq $32, %rsp 51 addq $32, %rsp
51 RESTORE_XMM 52 RESTORE_XMM
52 ret 53 ret
54ENDPROC(efi_call1)
53 55
54ENTRY(efi_call2) 56ENTRY(efi_call2)
55 SAVE_XMM 57 SAVE_XMM
@@ -59,6 +61,7 @@ ENTRY(efi_call2)
59 addq $32, %rsp 61 addq $32, %rsp
60 RESTORE_XMM 62 RESTORE_XMM
61 ret 63 ret
64ENDPROC(efi_call2)
62 65
63ENTRY(efi_call3) 66ENTRY(efi_call3)
64 SAVE_XMM 67 SAVE_XMM
@@ -69,6 +72,7 @@ ENTRY(efi_call3)
69 addq $32, %rsp 72 addq $32, %rsp
70 RESTORE_XMM 73 RESTORE_XMM
71 ret 74 ret
75ENDPROC(efi_call3)
72 76
73ENTRY(efi_call4) 77ENTRY(efi_call4)
74 SAVE_XMM 78 SAVE_XMM
@@ -80,6 +84,7 @@ ENTRY(efi_call4)
80 addq $32, %rsp 84 addq $32, %rsp
81 RESTORE_XMM 85 RESTORE_XMM
82 ret 86 ret
87ENDPROC(efi_call4)
83 88
84ENTRY(efi_call5) 89ENTRY(efi_call5)
85 SAVE_XMM 90 SAVE_XMM
@@ -92,6 +97,7 @@ ENTRY(efi_call5)
92 addq $48, %rsp 97 addq $48, %rsp
93 RESTORE_XMM 98 RESTORE_XMM
94 ret 99 ret
100ENDPROC(efi_call5)
95 101
96ENTRY(efi_call6) 102ENTRY(efi_call6)
97 SAVE_XMM 103 SAVE_XMM
@@ -107,3 +113,4 @@ ENTRY(efi_call6)
107 addq $48, %rsp 113 addq $48, %rsp
108 RESTORE_XMM 114 RESTORE_XMM
109 ret 115 ret
116ENDPROC(efi_call6)
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
index d6f0490a7391..899e8938e79f 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -30,12 +30,13 @@
30 * 1C(%esp) - %ds 30 * 1C(%esp) - %ds
31 * 20(%esp) - %es 31 * 20(%esp) - %es
32 * 24(%esp) - %fs 32 * 24(%esp) - %fs
33 * 28(%esp) - orig_eax 33 * 28(%esp) - %gs saved iff !CONFIG_X86_32_LAZY_GS
34 * 2C(%esp) - %eip 34 * 2C(%esp) - orig_eax
35 * 30(%esp) - %cs 35 * 30(%esp) - %eip
36 * 34(%esp) - %eflags 36 * 34(%esp) - %cs
37 * 38(%esp) - %oldesp 37 * 38(%esp) - %eflags
38 * 3C(%esp) - %oldss 38 * 3C(%esp) - %oldesp
39 * 40(%esp) - %oldss
39 * 40 *
40 * "current" is in register %ebx during any slow entries. 41 * "current" is in register %ebx during any slow entries.
41 */ 42 */
@@ -46,7 +47,7 @@
46#include <asm/errno.h> 47#include <asm/errno.h>
47#include <asm/segment.h> 48#include <asm/segment.h>
48#include <asm/smp.h> 49#include <asm/smp.h>
49#include <asm/page.h> 50#include <asm/page_types.h>
50#include <asm/desc.h> 51#include <asm/desc.h>
51#include <asm/percpu.h> 52#include <asm/percpu.h>
52#include <asm/dwarf2.h> 53#include <asm/dwarf2.h>
@@ -101,121 +102,221 @@
101#define resume_userspace_sig resume_userspace 102#define resume_userspace_sig resume_userspace
102#endif 103#endif
103 104
104#define SAVE_ALL \ 105/*
105 cld; \ 106 * User gs save/restore
106 pushl %fs; \ 107 *
107 CFI_ADJUST_CFA_OFFSET 4;\ 108 * %gs is used for userland TLS and kernel only uses it for stack
108 /*CFI_REL_OFFSET fs, 0;*/\ 109 * canary which is required to be at %gs:20 by gcc. Read the comment
109 pushl %es; \ 110 * at the top of stackprotector.h for more info.
110 CFI_ADJUST_CFA_OFFSET 4;\ 111 *
111 /*CFI_REL_OFFSET es, 0;*/\ 112 * Local labels 98 and 99 are used.
112 pushl %ds; \ 113 */
113 CFI_ADJUST_CFA_OFFSET 4;\ 114#ifdef CONFIG_X86_32_LAZY_GS
114 /*CFI_REL_OFFSET ds, 0;*/\ 115
115 pushl %eax; \ 116 /* unfortunately push/pop can't be no-op */
116 CFI_ADJUST_CFA_OFFSET 4;\ 117.macro PUSH_GS
117 CFI_REL_OFFSET eax, 0;\ 118 pushl $0
118 pushl %ebp; \ 119 CFI_ADJUST_CFA_OFFSET 4
119 CFI_ADJUST_CFA_OFFSET 4;\ 120.endm
120 CFI_REL_OFFSET ebp, 0;\ 121.macro POP_GS pop=0
121 pushl %edi; \ 122 addl $(4 + \pop), %esp
122 CFI_ADJUST_CFA_OFFSET 4;\ 123 CFI_ADJUST_CFA_OFFSET -(4 + \pop)
123 CFI_REL_OFFSET edi, 0;\ 124.endm
124 pushl %esi; \ 125.macro POP_GS_EX
125 CFI_ADJUST_CFA_OFFSET 4;\ 126.endm
126 CFI_REL_OFFSET esi, 0;\ 127
127 pushl %edx; \ 128 /* all the rest are no-op */
128 CFI_ADJUST_CFA_OFFSET 4;\ 129.macro PTGS_TO_GS
129 CFI_REL_OFFSET edx, 0;\ 130.endm
130 pushl %ecx; \ 131.macro PTGS_TO_GS_EX
131 CFI_ADJUST_CFA_OFFSET 4;\ 132.endm
132 CFI_REL_OFFSET ecx, 0;\ 133.macro GS_TO_REG reg
133 pushl %ebx; \ 134.endm
134 CFI_ADJUST_CFA_OFFSET 4;\ 135.macro REG_TO_PTGS reg
135 CFI_REL_OFFSET ebx, 0;\ 136.endm
136 movl $(__USER_DS), %edx; \ 137.macro SET_KERNEL_GS reg
137 movl %edx, %ds; \ 138.endm
138 movl %edx, %es; \ 139
139 movl $(__KERNEL_PERCPU), %edx; \ 140#else /* CONFIG_X86_32_LAZY_GS */
141
142.macro PUSH_GS
143 pushl %gs
144 CFI_ADJUST_CFA_OFFSET 4
145 /*CFI_REL_OFFSET gs, 0*/
146.endm
147
148.macro POP_GS pop=0
14998: popl %gs
150 CFI_ADJUST_CFA_OFFSET -4
151 /*CFI_RESTORE gs*/
152 .if \pop <> 0
153 add $\pop, %esp
154 CFI_ADJUST_CFA_OFFSET -\pop
155 .endif
156.endm
157.macro POP_GS_EX
158.pushsection .fixup, "ax"
15999: movl $0, (%esp)
160 jmp 98b
161.section __ex_table, "a"
162 .align 4
163 .long 98b, 99b
164.popsection
165.endm
166
167.macro PTGS_TO_GS
16898: mov PT_GS(%esp), %gs
169.endm
170.macro PTGS_TO_GS_EX
171.pushsection .fixup, "ax"
17299: movl $0, PT_GS(%esp)
173 jmp 98b
174.section __ex_table, "a"
175 .align 4
176 .long 98b, 99b
177.popsection
178.endm
179
180.macro GS_TO_REG reg
181 movl %gs, \reg
182 /*CFI_REGISTER gs, \reg*/
183.endm
184.macro REG_TO_PTGS reg
185 movl \reg, PT_GS(%esp)
186 /*CFI_REL_OFFSET gs, PT_GS*/
187.endm
188.macro SET_KERNEL_GS reg
189 movl $(__KERNEL_STACK_CANARY), \reg
190 movl \reg, %gs
191.endm
192
193#endif /* CONFIG_X86_32_LAZY_GS */
194
195.macro SAVE_ALL
196 cld
197 PUSH_GS
198 pushl %fs
199 CFI_ADJUST_CFA_OFFSET 4
200 /*CFI_REL_OFFSET fs, 0;*/
201 pushl %es
202 CFI_ADJUST_CFA_OFFSET 4
203 /*CFI_REL_OFFSET es, 0;*/
204 pushl %ds
205 CFI_ADJUST_CFA_OFFSET 4
206 /*CFI_REL_OFFSET ds, 0;*/
207 pushl %eax
208 CFI_ADJUST_CFA_OFFSET 4
209 CFI_REL_OFFSET eax, 0
210 pushl %ebp
211 CFI_ADJUST_CFA_OFFSET 4
212 CFI_REL_OFFSET ebp, 0
213 pushl %edi
214 CFI_ADJUST_CFA_OFFSET 4
215 CFI_REL_OFFSET edi, 0
216 pushl %esi
217 CFI_ADJUST_CFA_OFFSET 4
218 CFI_REL_OFFSET esi, 0
219 pushl %edx
220 CFI_ADJUST_CFA_OFFSET 4
221 CFI_REL_OFFSET edx, 0
222 pushl %ecx
223 CFI_ADJUST_CFA_OFFSET 4
224 CFI_REL_OFFSET ecx, 0
225 pushl %ebx
226 CFI_ADJUST_CFA_OFFSET 4
227 CFI_REL_OFFSET ebx, 0
228 movl $(__USER_DS), %edx
229 movl %edx, %ds
230 movl %edx, %es
231 movl $(__KERNEL_PERCPU), %edx
140 movl %edx, %fs 232 movl %edx, %fs
233 SET_KERNEL_GS %edx
234.endm
141 235
142#define RESTORE_INT_REGS \ 236.macro RESTORE_INT_REGS
143 popl %ebx; \ 237 popl %ebx
144 CFI_ADJUST_CFA_OFFSET -4;\ 238 CFI_ADJUST_CFA_OFFSET -4
145 CFI_RESTORE ebx;\ 239 CFI_RESTORE ebx
146 popl %ecx; \ 240 popl %ecx
147 CFI_ADJUST_CFA_OFFSET -4;\ 241 CFI_ADJUST_CFA_OFFSET -4
148 CFI_RESTORE ecx;\ 242 CFI_RESTORE ecx
149 popl %edx; \ 243 popl %edx
150 CFI_ADJUST_CFA_OFFSET -4;\ 244 CFI_ADJUST_CFA_OFFSET -4
151 CFI_RESTORE edx;\ 245 CFI_RESTORE edx
152 popl %esi; \ 246 popl %esi
153 CFI_ADJUST_CFA_OFFSET -4;\ 247 CFI_ADJUST_CFA_OFFSET -4
154 CFI_RESTORE esi;\ 248 CFI_RESTORE esi
155 popl %edi; \ 249 popl %edi
156 CFI_ADJUST_CFA_OFFSET -4;\ 250 CFI_ADJUST_CFA_OFFSET -4
157 CFI_RESTORE edi;\ 251 CFI_RESTORE edi
158 popl %ebp; \ 252 popl %ebp
159 CFI_ADJUST_CFA_OFFSET -4;\ 253 CFI_ADJUST_CFA_OFFSET -4
160 CFI_RESTORE ebp;\ 254 CFI_RESTORE ebp
161 popl %eax; \ 255 popl %eax
162 CFI_ADJUST_CFA_OFFSET -4;\ 256 CFI_ADJUST_CFA_OFFSET -4
163 CFI_RESTORE eax 257 CFI_RESTORE eax
258.endm
164 259
165#define RESTORE_REGS \ 260.macro RESTORE_REGS pop=0
166 RESTORE_INT_REGS; \ 261 RESTORE_INT_REGS
1671: popl %ds; \ 2621: popl %ds
168 CFI_ADJUST_CFA_OFFSET -4;\ 263 CFI_ADJUST_CFA_OFFSET -4
169 /*CFI_RESTORE ds;*/\ 264 /*CFI_RESTORE ds;*/
1702: popl %es; \ 2652: popl %es
171 CFI_ADJUST_CFA_OFFSET -4;\ 266 CFI_ADJUST_CFA_OFFSET -4
172 /*CFI_RESTORE es;*/\ 267 /*CFI_RESTORE es;*/
1733: popl %fs; \ 2683: popl %fs
174 CFI_ADJUST_CFA_OFFSET -4;\ 269 CFI_ADJUST_CFA_OFFSET -4
175 /*CFI_RESTORE fs;*/\ 270 /*CFI_RESTORE fs;*/
176.pushsection .fixup,"ax"; \ 271 POP_GS \pop
1774: movl $0,(%esp); \ 272.pushsection .fixup, "ax"
178 jmp 1b; \ 2734: movl $0, (%esp)
1795: movl $0,(%esp); \ 274 jmp 1b
180 jmp 2b; \ 2755: movl $0, (%esp)
1816: movl $0,(%esp); \ 276 jmp 2b
182 jmp 3b; \ 2776: movl $0, (%esp)
183.section __ex_table,"a";\ 278 jmp 3b
184 .align 4; \ 279.section __ex_table, "a"
185 .long 1b,4b; \ 280 .align 4
186 .long 2b,5b; \ 281 .long 1b, 4b
187 .long 3b,6b; \ 282 .long 2b, 5b
283 .long 3b, 6b
188.popsection 284.popsection
285 POP_GS_EX
286.endm
189 287
190#define RING0_INT_FRAME \ 288.macro RING0_INT_FRAME
191 CFI_STARTPROC simple;\ 289 CFI_STARTPROC simple
192 CFI_SIGNAL_FRAME;\ 290 CFI_SIGNAL_FRAME
193 CFI_DEF_CFA esp, 3*4;\ 291 CFI_DEF_CFA esp, 3*4
194 /*CFI_OFFSET cs, -2*4;*/\ 292 /*CFI_OFFSET cs, -2*4;*/
195 CFI_OFFSET eip, -3*4 293 CFI_OFFSET eip, -3*4
294.endm
196 295
197#define RING0_EC_FRAME \ 296.macro RING0_EC_FRAME
198 CFI_STARTPROC simple;\ 297 CFI_STARTPROC simple
199 CFI_SIGNAL_FRAME;\ 298 CFI_SIGNAL_FRAME
200 CFI_DEF_CFA esp, 4*4;\ 299 CFI_DEF_CFA esp, 4*4
201 /*CFI_OFFSET cs, -2*4;*/\ 300 /*CFI_OFFSET cs, -2*4;*/
202 CFI_OFFSET eip, -3*4 301 CFI_OFFSET eip, -3*4
302.endm
203 303
204#define RING0_PTREGS_FRAME \ 304.macro RING0_PTREGS_FRAME
205 CFI_STARTPROC simple;\ 305 CFI_STARTPROC simple
206 CFI_SIGNAL_FRAME;\ 306 CFI_SIGNAL_FRAME
207 CFI_DEF_CFA esp, PT_OLDESP-PT_EBX;\ 307 CFI_DEF_CFA esp, PT_OLDESP-PT_EBX
208 /*CFI_OFFSET cs, PT_CS-PT_OLDESP;*/\ 308 /*CFI_OFFSET cs, PT_CS-PT_OLDESP;*/
209 CFI_OFFSET eip, PT_EIP-PT_OLDESP;\ 309 CFI_OFFSET eip, PT_EIP-PT_OLDESP
210 /*CFI_OFFSET es, PT_ES-PT_OLDESP;*/\ 310 /*CFI_OFFSET es, PT_ES-PT_OLDESP;*/
211 /*CFI_OFFSET ds, PT_DS-PT_OLDESP;*/\ 311 /*CFI_OFFSET ds, PT_DS-PT_OLDESP;*/
212 CFI_OFFSET eax, PT_EAX-PT_OLDESP;\ 312 CFI_OFFSET eax, PT_EAX-PT_OLDESP
213 CFI_OFFSET ebp, PT_EBP-PT_OLDESP;\ 313 CFI_OFFSET ebp, PT_EBP-PT_OLDESP
214 CFI_OFFSET edi, PT_EDI-PT_OLDESP;\ 314 CFI_OFFSET edi, PT_EDI-PT_OLDESP
215 CFI_OFFSET esi, PT_ESI-PT_OLDESP;\ 315 CFI_OFFSET esi, PT_ESI-PT_OLDESP
216 CFI_OFFSET edx, PT_EDX-PT_OLDESP;\ 316 CFI_OFFSET edx, PT_EDX-PT_OLDESP
217 CFI_OFFSET ecx, PT_ECX-PT_OLDESP;\ 317 CFI_OFFSET ecx, PT_ECX-PT_OLDESP
218 CFI_OFFSET ebx, PT_EBX-PT_OLDESP 318 CFI_OFFSET ebx, PT_EBX-PT_OLDESP
319.endm
219 320
220ENTRY(ret_from_fork) 321ENTRY(ret_from_fork)
221 CFI_STARTPROC 322 CFI_STARTPROC
@@ -362,6 +463,7 @@ sysenter_exit:
362 xorl %ebp,%ebp 463 xorl %ebp,%ebp
363 TRACE_IRQS_ON 464 TRACE_IRQS_ON
3641: mov PT_FS(%esp), %fs 4651: mov PT_FS(%esp), %fs
466 PTGS_TO_GS
365 ENABLE_INTERRUPTS_SYSEXIT 467 ENABLE_INTERRUPTS_SYSEXIT
366 468
367#ifdef CONFIG_AUDITSYSCALL 469#ifdef CONFIG_AUDITSYSCALL
@@ -410,6 +512,7 @@ sysexit_audit:
410 .align 4 512 .align 4
411 .long 1b,2b 513 .long 1b,2b
412.popsection 514.popsection
515 PTGS_TO_GS_EX
413ENDPROC(ia32_sysenter_target) 516ENDPROC(ia32_sysenter_target)
414 517
415 # system call handler stub 518 # system call handler stub
@@ -452,8 +555,7 @@ restore_all:
452restore_nocheck: 555restore_nocheck:
453 TRACE_IRQS_IRET 556 TRACE_IRQS_IRET
454restore_nocheck_notrace: 557restore_nocheck_notrace:
455 RESTORE_REGS 558 RESTORE_REGS 4 # skip orig_eax/error_code
456 addl $4, %esp # skip orig_eax/error_code
457 CFI_ADJUST_CFA_OFFSET -4 559 CFI_ADJUST_CFA_OFFSET -4
458irq_return: 560irq_return:
459 INTERRUPT_RETURN 561 INTERRUPT_RETURN
@@ -595,28 +697,50 @@ syscall_badsys:
595END(syscall_badsys) 697END(syscall_badsys)
596 CFI_ENDPROC 698 CFI_ENDPROC
597 699
598#define FIXUP_ESPFIX_STACK \ 700/*
599 /* since we are on a wrong stack, we cant make it a C code :( */ \ 701 * System calls that need a pt_regs pointer.
600 PER_CPU(gdt_page, %ebx); \ 702 */
601 GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah); \ 703#define PTREGSCALL(name) \
602 addl %esp, %eax; \ 704 ALIGN; \
603 pushl $__KERNEL_DS; \ 705ptregs_##name: \
604 CFI_ADJUST_CFA_OFFSET 4; \ 706 leal 4(%esp),%eax; \
605 pushl %eax; \ 707 jmp sys_##name;
606 CFI_ADJUST_CFA_OFFSET 4; \ 708
607 lss (%esp), %esp; \ 709PTREGSCALL(iopl)
608 CFI_ADJUST_CFA_OFFSET -8; 710PTREGSCALL(fork)
609#define UNWIND_ESPFIX_STACK \ 711PTREGSCALL(clone)
610 movl %ss, %eax; \ 712PTREGSCALL(vfork)
611 /* see if on espfix stack */ \ 713PTREGSCALL(execve)
612 cmpw $__ESPFIX_SS, %ax; \ 714PTREGSCALL(sigaltstack)
613 jne 27f; \ 715PTREGSCALL(sigreturn)
614 movl $__KERNEL_DS, %eax; \ 716PTREGSCALL(rt_sigreturn)
615 movl %eax, %ds; \ 717PTREGSCALL(vm86)
616 movl %eax, %es; \ 718PTREGSCALL(vm86old)
617 /* switch to normal stack */ \ 719
618 FIXUP_ESPFIX_STACK; \ 720.macro FIXUP_ESPFIX_STACK
61927:; 721 /* since we are on a wrong stack, we cant make it a C code :( */
722 PER_CPU(gdt_page, %ebx)
723 GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah)
724 addl %esp, %eax
725 pushl $__KERNEL_DS
726 CFI_ADJUST_CFA_OFFSET 4
727 pushl %eax
728 CFI_ADJUST_CFA_OFFSET 4
729 lss (%esp), %esp
730 CFI_ADJUST_CFA_OFFSET -8
731.endm
732.macro UNWIND_ESPFIX_STACK
733 movl %ss, %eax
734 /* see if on espfix stack */
735 cmpw $__ESPFIX_SS, %ax
736 jne 27f
737 movl $__KERNEL_DS, %eax
738 movl %eax, %ds
739 movl %eax, %es
740 /* switch to normal stack */
741 FIXUP_ESPFIX_STACK
74227:
743.endm
620 744
621/* 745/*
622 * Build the entry stubs and pointer table with some assembler magic. 746 * Build the entry stubs and pointer table with some assembler magic.
@@ -672,7 +796,7 @@ common_interrupt:
672ENDPROC(common_interrupt) 796ENDPROC(common_interrupt)
673 CFI_ENDPROC 797 CFI_ENDPROC
674 798
675#define BUILD_INTERRUPT(name, nr) \ 799#define BUILD_INTERRUPT3(name, nr, fn) \
676ENTRY(name) \ 800ENTRY(name) \
677 RING0_INT_FRAME; \ 801 RING0_INT_FRAME; \
678 pushl $~(nr); \ 802 pushl $~(nr); \
@@ -680,13 +804,15 @@ ENTRY(name) \
680 SAVE_ALL; \ 804 SAVE_ALL; \
681 TRACE_IRQS_OFF \ 805 TRACE_IRQS_OFF \
682 movl %esp,%eax; \ 806 movl %esp,%eax; \
683 call smp_##name; \ 807 call fn; \
684 jmp ret_from_intr; \ 808 jmp ret_from_intr; \
685 CFI_ENDPROC; \ 809 CFI_ENDPROC; \
686ENDPROC(name) 810ENDPROC(name)
687 811
812#define BUILD_INTERRUPT(name, nr) BUILD_INTERRUPT3(name, nr, smp_##name)
813
688/* The include is where all of the SMP etc. interrupts come from */ 814/* The include is where all of the SMP etc. interrupts come from */
689#include "entry_arch.h" 815#include <asm/entry_arch.h>
690 816
691ENTRY(coprocessor_error) 817ENTRY(coprocessor_error)
692 RING0_INT_FRAME 818 RING0_INT_FRAME
@@ -1068,7 +1194,10 @@ ENTRY(page_fault)
1068 CFI_ADJUST_CFA_OFFSET 4 1194 CFI_ADJUST_CFA_OFFSET 4
1069 ALIGN 1195 ALIGN
1070error_code: 1196error_code:
1071 /* the function address is in %fs's slot on the stack */ 1197 /* the function address is in %gs's slot on the stack */
1198 pushl %fs
1199 CFI_ADJUST_CFA_OFFSET 4
1200 /*CFI_REL_OFFSET fs, 0*/
1072 pushl %es 1201 pushl %es
1073 CFI_ADJUST_CFA_OFFSET 4 1202 CFI_ADJUST_CFA_OFFSET 4
1074 /*CFI_REL_OFFSET es, 0*/ 1203 /*CFI_REL_OFFSET es, 0*/
@@ -1097,20 +1226,15 @@ error_code:
1097 CFI_ADJUST_CFA_OFFSET 4 1226 CFI_ADJUST_CFA_OFFSET 4
1098 CFI_REL_OFFSET ebx, 0 1227 CFI_REL_OFFSET ebx, 0
1099 cld 1228 cld
1100 pushl %fs
1101 CFI_ADJUST_CFA_OFFSET 4
1102 /*CFI_REL_OFFSET fs, 0*/
1103 movl $(__KERNEL_PERCPU), %ecx 1229 movl $(__KERNEL_PERCPU), %ecx
1104 movl %ecx, %fs 1230 movl %ecx, %fs
1105 UNWIND_ESPFIX_STACK 1231 UNWIND_ESPFIX_STACK
1106 popl %ecx 1232 GS_TO_REG %ecx
1107 CFI_ADJUST_CFA_OFFSET -4 1233 movl PT_GS(%esp), %edi # get the function address
1108 /*CFI_REGISTER es, ecx*/
1109 movl PT_FS(%esp), %edi # get the function address
1110 movl PT_ORIG_EAX(%esp), %edx # get the error code 1234 movl PT_ORIG_EAX(%esp), %edx # get the error code
1111 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart 1235 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart
1112 mov %ecx, PT_FS(%esp) 1236 REG_TO_PTGS %ecx
1113 /*CFI_REL_OFFSET fs, ES*/ 1237 SET_KERNEL_GS %ecx
1114 movl $(__USER_DS), %ecx 1238 movl $(__USER_DS), %ecx
1115 movl %ecx, %ds 1239 movl %ecx, %ds
1116 movl %ecx, %es 1240 movl %ecx, %es
@@ -1134,26 +1258,27 @@ END(page_fault)
1134 * by hand onto the new stack - while updating the return eip past 1258 * by hand onto the new stack - while updating the return eip past
1135 * the instruction that would have done it for sysenter. 1259 * the instruction that would have done it for sysenter.
1136 */ 1260 */
1137#define FIX_STACK(offset, ok, label) \ 1261.macro FIX_STACK offset ok label
1138 cmpw $__KERNEL_CS,4(%esp); \ 1262 cmpw $__KERNEL_CS, 4(%esp)
1139 jne ok; \ 1263 jne \ok
1140label: \ 1264\label:
1141 movl TSS_sysenter_sp0+offset(%esp),%esp; \ 1265 movl TSS_sysenter_sp0 + \offset(%esp), %esp
1142 CFI_DEF_CFA esp, 0; \ 1266 CFI_DEF_CFA esp, 0
1143 CFI_UNDEFINED eip; \ 1267 CFI_UNDEFINED eip
1144 pushfl; \ 1268 pushfl
1145 CFI_ADJUST_CFA_OFFSET 4; \ 1269 CFI_ADJUST_CFA_OFFSET 4
1146 pushl $__KERNEL_CS; \ 1270 pushl $__KERNEL_CS
1147 CFI_ADJUST_CFA_OFFSET 4; \ 1271 CFI_ADJUST_CFA_OFFSET 4
1148 pushl $sysenter_past_esp; \ 1272 pushl $sysenter_past_esp
1149 CFI_ADJUST_CFA_OFFSET 4; \ 1273 CFI_ADJUST_CFA_OFFSET 4
1150 CFI_REL_OFFSET eip, 0 1274 CFI_REL_OFFSET eip, 0
1275.endm
1151 1276
1152ENTRY(debug) 1277ENTRY(debug)
1153 RING0_INT_FRAME 1278 RING0_INT_FRAME
1154 cmpl $ia32_sysenter_target,(%esp) 1279 cmpl $ia32_sysenter_target,(%esp)
1155 jne debug_stack_correct 1280 jne debug_stack_correct
1156 FIX_STACK(12, debug_stack_correct, debug_esp_fix_insn) 1281 FIX_STACK 12, debug_stack_correct, debug_esp_fix_insn
1157debug_stack_correct: 1282debug_stack_correct:
1158 pushl $-1 # mark this as an int 1283 pushl $-1 # mark this as an int
1159 CFI_ADJUST_CFA_OFFSET 4 1284 CFI_ADJUST_CFA_OFFSET 4
@@ -1203,7 +1328,6 @@ nmi_stack_correct:
1203 pushl %eax 1328 pushl %eax
1204 CFI_ADJUST_CFA_OFFSET 4 1329 CFI_ADJUST_CFA_OFFSET 4
1205 SAVE_ALL 1330 SAVE_ALL
1206 TRACE_IRQS_OFF
1207 xorl %edx,%edx # zero error code 1331 xorl %edx,%edx # zero error code
1208 movl %esp,%eax # pt_regs pointer 1332 movl %esp,%eax # pt_regs pointer
1209 call do_nmi 1333 call do_nmi
@@ -1212,7 +1336,7 @@ nmi_stack_correct:
1212 1336
1213nmi_stack_fixup: 1337nmi_stack_fixup:
1214 RING0_INT_FRAME 1338 RING0_INT_FRAME
1215 FIX_STACK(12,nmi_stack_correct, 1) 1339 FIX_STACK 12, nmi_stack_correct, 1
1216 jmp nmi_stack_correct 1340 jmp nmi_stack_correct
1217 1341
1218nmi_debug_stack_check: 1342nmi_debug_stack_check:
@@ -1223,7 +1347,7 @@ nmi_debug_stack_check:
1223 jb nmi_stack_correct 1347 jb nmi_stack_correct
1224 cmpl $debug_esp_fix_insn,(%esp) 1348 cmpl $debug_esp_fix_insn,(%esp)
1225 ja nmi_stack_correct 1349 ja nmi_stack_correct
1226 FIX_STACK(24,nmi_stack_correct, 1) 1350 FIX_STACK 24, nmi_stack_correct, 1
1227 jmp nmi_stack_correct 1351 jmp nmi_stack_correct
1228 1352
1229nmi_espfix_stack: 1353nmi_espfix_stack:
@@ -1235,7 +1359,7 @@ nmi_espfix_stack:
1235 CFI_ADJUST_CFA_OFFSET 4 1359 CFI_ADJUST_CFA_OFFSET 4
1236 pushl %esp 1360 pushl %esp
1237 CFI_ADJUST_CFA_OFFSET 4 1361 CFI_ADJUST_CFA_OFFSET 4
1238 addw $4, (%esp) 1362 addl $4, (%esp)
1239 /* copy the iret frame of 12 bytes */ 1363 /* copy the iret frame of 12 bytes */
1240 .rept 3 1364 .rept 3
1241 pushl 16(%esp) 1365 pushl 16(%esp)
@@ -1244,7 +1368,6 @@ nmi_espfix_stack:
1244 pushl %eax 1368 pushl %eax
1245 CFI_ADJUST_CFA_OFFSET 4 1369 CFI_ADJUST_CFA_OFFSET 4
1246 SAVE_ALL 1370 SAVE_ALL
1247 TRACE_IRQS_OFF
1248 FIXUP_ESPFIX_STACK # %eax == %esp 1371 FIXUP_ESPFIX_STACK # %eax == %esp
1249 xorl %edx,%edx # zero error code 1372 xorl %edx,%edx # zero error code
1250 call do_nmi 1373 call do_nmi
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index e28c7a987793..83d1836b9467 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -48,10 +48,11 @@
48#include <asm/unistd.h> 48#include <asm/unistd.h>
49#include <asm/thread_info.h> 49#include <asm/thread_info.h>
50#include <asm/hw_irq.h> 50#include <asm/hw_irq.h>
51#include <asm/page.h> 51#include <asm/page_types.h>
52#include <asm/irqflags.h> 52#include <asm/irqflags.h>
53#include <asm/paravirt.h> 53#include <asm/paravirt.h>
54#include <asm/ftrace.h> 54#include <asm/ftrace.h>
55#include <asm/percpu.h>
55 56
56/* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */ 57/* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
57#include <linux/elf-em.h> 58#include <linux/elf-em.h>
@@ -76,20 +77,17 @@ ENTRY(ftrace_caller)
76 movq 8(%rbp), %rsi 77 movq 8(%rbp), %rsi
77 subq $MCOUNT_INSN_SIZE, %rdi 78 subq $MCOUNT_INSN_SIZE, %rdi
78 79
79.globl ftrace_call 80GLOBAL(ftrace_call)
80ftrace_call:
81 call ftrace_stub 81 call ftrace_stub
82 82
83 MCOUNT_RESTORE_FRAME 83 MCOUNT_RESTORE_FRAME
84 84
85#ifdef CONFIG_FUNCTION_GRAPH_TRACER 85#ifdef CONFIG_FUNCTION_GRAPH_TRACER
86.globl ftrace_graph_call 86GLOBAL(ftrace_graph_call)
87ftrace_graph_call:
88 jmp ftrace_stub 87 jmp ftrace_stub
89#endif 88#endif
90 89
91.globl ftrace_stub 90GLOBAL(ftrace_stub)
92ftrace_stub:
93 retq 91 retq
94END(ftrace_caller) 92END(ftrace_caller)
95 93
@@ -109,8 +107,7 @@ ENTRY(mcount)
109 jnz ftrace_graph_caller 107 jnz ftrace_graph_caller
110#endif 108#endif
111 109
112.globl ftrace_stub 110GLOBAL(ftrace_stub)
113ftrace_stub:
114 retq 111 retq
115 112
116trace: 113trace:
@@ -147,9 +144,7 @@ ENTRY(ftrace_graph_caller)
147 retq 144 retq
148END(ftrace_graph_caller) 145END(ftrace_graph_caller)
149 146
150 147GLOBAL(return_to_handler)
151.globl return_to_handler
152return_to_handler:
153 subq $80, %rsp 148 subq $80, %rsp
154 149
155 movq %rax, (%rsp) 150 movq %rax, (%rsp)
@@ -187,6 +182,7 @@ return_to_handler:
187ENTRY(native_usergs_sysret64) 182ENTRY(native_usergs_sysret64)
188 swapgs 183 swapgs
189 sysretq 184 sysretq
185ENDPROC(native_usergs_sysret64)
190#endif /* CONFIG_PARAVIRT */ 186#endif /* CONFIG_PARAVIRT */
191 187
192 188
@@ -209,7 +205,7 @@ ENTRY(native_usergs_sysret64)
209 205
210 /* %rsp:at FRAMEEND */ 206 /* %rsp:at FRAMEEND */
211 .macro FIXUP_TOP_OF_STACK tmp offset=0 207 .macro FIXUP_TOP_OF_STACK tmp offset=0
212 movq %gs:pda_oldrsp,\tmp 208 movq PER_CPU_VAR(old_rsp),\tmp
213 movq \tmp,RSP+\offset(%rsp) 209 movq \tmp,RSP+\offset(%rsp)
214 movq $__USER_DS,SS+\offset(%rsp) 210 movq $__USER_DS,SS+\offset(%rsp)
215 movq $__USER_CS,CS+\offset(%rsp) 211 movq $__USER_CS,CS+\offset(%rsp)
@@ -220,7 +216,7 @@ ENTRY(native_usergs_sysret64)
220 216
221 .macro RESTORE_TOP_OF_STACK tmp offset=0 217 .macro RESTORE_TOP_OF_STACK tmp offset=0
222 movq RSP+\offset(%rsp),\tmp 218 movq RSP+\offset(%rsp),\tmp
223 movq \tmp,%gs:pda_oldrsp 219 movq \tmp,PER_CPU_VAR(old_rsp)
224 movq EFLAGS+\offset(%rsp),\tmp 220 movq EFLAGS+\offset(%rsp),\tmp
225 movq \tmp,R11+\offset(%rsp) 221 movq \tmp,R11+\offset(%rsp)
226 .endm 222 .endm
@@ -336,16 +332,17 @@ ENTRY(save_args)
336 je 1f 332 je 1f
337 SWAPGS 333 SWAPGS
338 /* 334 /*
339 * irqcount is used to check if a CPU is already on an interrupt stack 335 * irq_count is used to check if a CPU is already on an interrupt stack
340 * or not. While this is essentially redundant with preempt_count it is 336 * or not. While this is essentially redundant with preempt_count it is
341 * a little cheaper to use a separate counter in the PDA (short of 337 * a little cheaper to use a separate counter in the PDA (short of
342 * moving irq_enter into assembly, which would be too much work) 338 * moving irq_enter into assembly, which would be too much work)
343 */ 339 */
3441: incl %gs:pda_irqcount 3401: incl PER_CPU_VAR(irq_count)
345 jne 2f 341 jne 2f
346 popq_cfi %rax /* move return address... */ 342 popq_cfi %rax /* move return address... */
347 mov %gs:pda_irqstackptr,%rsp 343 mov PER_CPU_VAR(irq_stack_ptr),%rsp
348 EMPTY_FRAME 0 344 EMPTY_FRAME 0
345 pushq_cfi %rbp /* backlink for unwinder */
349 pushq_cfi %rax /* ... to the new stack */ 346 pushq_cfi %rax /* ... to the new stack */
350 /* 347 /*
351 * We entered an interrupt context - irqs are off: 348 * We entered an interrupt context - irqs are off:
@@ -408,6 +405,8 @@ END(save_paranoid)
408ENTRY(ret_from_fork) 405ENTRY(ret_from_fork)
409 DEFAULT_FRAME 406 DEFAULT_FRAME
410 407
408 LOCK ; btr $TIF_FORK,TI_flags(%r8)
409
411 push kernel_eflags(%rip) 410 push kernel_eflags(%rip)
412 CFI_ADJUST_CFA_OFFSET 8 411 CFI_ADJUST_CFA_OFFSET 8
413 popf # reset kernel eflags 412 popf # reset kernel eflags
@@ -467,7 +466,7 @@ END(ret_from_fork)
467ENTRY(system_call) 466ENTRY(system_call)
468 CFI_STARTPROC simple 467 CFI_STARTPROC simple
469 CFI_SIGNAL_FRAME 468 CFI_SIGNAL_FRAME
470 CFI_DEF_CFA rsp,PDA_STACKOFFSET 469 CFI_DEF_CFA rsp,KERNEL_STACK_OFFSET
471 CFI_REGISTER rip,rcx 470 CFI_REGISTER rip,rcx
472 /*CFI_REGISTER rflags,r11*/ 471 /*CFI_REGISTER rflags,r11*/
473 SWAPGS_UNSAFE_STACK 472 SWAPGS_UNSAFE_STACK
@@ -478,8 +477,8 @@ ENTRY(system_call)
478 */ 477 */
479ENTRY(system_call_after_swapgs) 478ENTRY(system_call_after_swapgs)
480 479
481 movq %rsp,%gs:pda_oldrsp 480 movq %rsp,PER_CPU_VAR(old_rsp)
482 movq %gs:pda_kernelstack,%rsp 481 movq PER_CPU_VAR(kernel_stack),%rsp
483 /* 482 /*
484 * No need to follow this irqs off/on section - it's straight 483 * No need to follow this irqs off/on section - it's straight
485 * and short: 484 * and short:
@@ -522,7 +521,7 @@ sysret_check:
522 CFI_REGISTER rip,rcx 521 CFI_REGISTER rip,rcx
523 RESTORE_ARGS 0,-ARG_SKIP,1 522 RESTORE_ARGS 0,-ARG_SKIP,1
524 /*CFI_REGISTER rflags,r11*/ 523 /*CFI_REGISTER rflags,r11*/
525 movq %gs:pda_oldrsp, %rsp 524 movq PER_CPU_VAR(old_rsp), %rsp
526 USERGS_SYSRET64 525 USERGS_SYSRET64
527 526
528 CFI_RESTORE_STATE 527 CFI_RESTORE_STATE
@@ -629,16 +628,14 @@ tracesys:
629 * Syscall return path ending with IRET. 628 * Syscall return path ending with IRET.
630 * Has correct top of stack, but partial stack frame. 629 * Has correct top of stack, but partial stack frame.
631 */ 630 */
632 .globl int_ret_from_sys_call 631GLOBAL(int_ret_from_sys_call)
633 .globl int_with_check
634int_ret_from_sys_call:
635 DISABLE_INTERRUPTS(CLBR_NONE) 632 DISABLE_INTERRUPTS(CLBR_NONE)
636 TRACE_IRQS_OFF 633 TRACE_IRQS_OFF
637 testl $3,CS-ARGOFFSET(%rsp) 634 testl $3,CS-ARGOFFSET(%rsp)
638 je retint_restore_args 635 je retint_restore_args
639 movl $_TIF_ALLWORK_MASK,%edi 636 movl $_TIF_ALLWORK_MASK,%edi
640 /* edi: mask to check */ 637 /* edi: mask to check */
641int_with_check: 638GLOBAL(int_with_check)
642 LOCKDEP_SYS_EXIT_IRQ 639 LOCKDEP_SYS_EXIT_IRQ
643 GET_THREAD_INFO(%rcx) 640 GET_THREAD_INFO(%rcx)
644 movl TI_flags(%rcx),%edx 641 movl TI_flags(%rcx),%edx
@@ -832,11 +829,11 @@ common_interrupt:
832 XCPT_FRAME 829 XCPT_FRAME
833 addq $-0x80,(%rsp) /* Adjust vector to [-256,-1] range */ 830 addq $-0x80,(%rsp) /* Adjust vector to [-256,-1] range */
834 interrupt do_IRQ 831 interrupt do_IRQ
835 /* 0(%rsp): oldrsp-ARGOFFSET */ 832 /* 0(%rsp): old_rsp-ARGOFFSET */
836ret_from_intr: 833ret_from_intr:
837 DISABLE_INTERRUPTS(CLBR_NONE) 834 DISABLE_INTERRUPTS(CLBR_NONE)
838 TRACE_IRQS_OFF 835 TRACE_IRQS_OFF
839 decl %gs:pda_irqcount 836 decl PER_CPU_VAR(irq_count)
840 leaveq 837 leaveq
841 CFI_DEF_CFA_REGISTER rsp 838 CFI_DEF_CFA_REGISTER rsp
842 CFI_ADJUST_CFA_OFFSET -8 839 CFI_ADJUST_CFA_OFFSET -8
@@ -981,8 +978,10 @@ apicinterrupt IRQ_MOVE_CLEANUP_VECTOR \
981 irq_move_cleanup_interrupt smp_irq_move_cleanup_interrupt 978 irq_move_cleanup_interrupt smp_irq_move_cleanup_interrupt
982#endif 979#endif
983 980
981#ifdef CONFIG_X86_UV
984apicinterrupt UV_BAU_MESSAGE \ 982apicinterrupt UV_BAU_MESSAGE \
985 uv_bau_message_intr1 uv_bau_message_interrupt 983 uv_bau_message_intr1 uv_bau_message_interrupt
984#endif
986apicinterrupt LOCAL_TIMER_VECTOR \ 985apicinterrupt LOCAL_TIMER_VECTOR \
987 apic_timer_interrupt smp_apic_timer_interrupt 986 apic_timer_interrupt smp_apic_timer_interrupt
988 987
@@ -1072,10 +1071,10 @@ ENTRY(\sym)
1072 TRACE_IRQS_OFF 1071 TRACE_IRQS_OFF
1073 movq %rsp,%rdi /* pt_regs pointer */ 1072 movq %rsp,%rdi /* pt_regs pointer */
1074 xorl %esi,%esi /* no error code */ 1073 xorl %esi,%esi /* no error code */
1075 movq %gs:pda_data_offset, %rbp 1074 PER_CPU(init_tss, %rbp)
1076 subq $EXCEPTION_STKSZ, per_cpu__init_tss + TSS_ist + (\ist - 1) * 8(%rbp) 1075 subq $EXCEPTION_STKSZ, TSS_ist + (\ist - 1) * 8(%rbp)
1077 call \do_sym 1076 call \do_sym
1078 addq $EXCEPTION_STKSZ, per_cpu__init_tss + TSS_ist + (\ist - 1) * 8(%rbp) 1077 addq $EXCEPTION_STKSZ, TSS_ist + (\ist - 1) * 8(%rbp)
1079 jmp paranoid_exit /* %ebx: no swapgs flag */ 1078 jmp paranoid_exit /* %ebx: no swapgs flag */
1080 CFI_ENDPROC 1079 CFI_ENDPROC
1081END(\sym) 1080END(\sym)
@@ -1137,7 +1136,7 @@ ENTRY(native_load_gs_index)
1137 CFI_STARTPROC 1136 CFI_STARTPROC
1138 pushf 1137 pushf
1139 CFI_ADJUST_CFA_OFFSET 8 1138 CFI_ADJUST_CFA_OFFSET 8
1140 DISABLE_INTERRUPTS(CLBR_ANY | ~(CLBR_RDI)) 1139 DISABLE_INTERRUPTS(CLBR_ANY & ~CLBR_RDI)
1141 SWAPGS 1140 SWAPGS
1142gs_change: 1141gs_change:
1143 movl %edi,%gs 1142 movl %edi,%gs
@@ -1259,14 +1258,14 @@ ENTRY(call_softirq)
1259 CFI_REL_OFFSET rbp,0 1258 CFI_REL_OFFSET rbp,0
1260 mov %rsp,%rbp 1259 mov %rsp,%rbp
1261 CFI_DEF_CFA_REGISTER rbp 1260 CFI_DEF_CFA_REGISTER rbp
1262 incl %gs:pda_irqcount 1261 incl PER_CPU_VAR(irq_count)
1263 cmove %gs:pda_irqstackptr,%rsp 1262 cmove PER_CPU_VAR(irq_stack_ptr),%rsp
1264 push %rbp # backlink for old unwinder 1263 push %rbp # backlink for old unwinder
1265 call __do_softirq 1264 call __do_softirq
1266 leaveq 1265 leaveq
1267 CFI_DEF_CFA_REGISTER rsp 1266 CFI_DEF_CFA_REGISTER rsp
1268 CFI_ADJUST_CFA_OFFSET -8 1267 CFI_ADJUST_CFA_OFFSET -8
1269 decl %gs:pda_irqcount 1268 decl PER_CPU_VAR(irq_count)
1270 ret 1269 ret
1271 CFI_ENDPROC 1270 CFI_ENDPROC
1272END(call_softirq) 1271END(call_softirq)
@@ -1296,15 +1295,15 @@ ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs)
1296 movq %rdi, %rsp # we don't return, adjust the stack frame 1295 movq %rdi, %rsp # we don't return, adjust the stack frame
1297 CFI_ENDPROC 1296 CFI_ENDPROC
1298 DEFAULT_FRAME 1297 DEFAULT_FRAME
129911: incl %gs:pda_irqcount 129811: incl PER_CPU_VAR(irq_count)
1300 movq %rsp,%rbp 1299 movq %rsp,%rbp
1301 CFI_DEF_CFA_REGISTER rbp 1300 CFI_DEF_CFA_REGISTER rbp
1302 cmovzq %gs:pda_irqstackptr,%rsp 1301 cmovzq PER_CPU_VAR(irq_stack_ptr),%rsp
1303 pushq %rbp # backlink for old unwinder 1302 pushq %rbp # backlink for old unwinder
1304 call xen_evtchn_do_upcall 1303 call xen_evtchn_do_upcall
1305 popq %rsp 1304 popq %rsp
1306 CFI_DEF_CFA_REGISTER rsp 1305 CFI_DEF_CFA_REGISTER rsp
1307 decl %gs:pda_irqcount 1306 decl PER_CPU_VAR(irq_count)
1308 jmp error_exit 1307 jmp error_exit
1309 CFI_ENDPROC 1308 CFI_ENDPROC
1310END(do_hypervisor_callback) 1309END(do_hypervisor_callback)
diff --git a/arch/x86/kernel/es7000_32.c b/arch/x86/kernel/es7000_32.c
deleted file mode 100644
index 53699c931ad4..000000000000
--- a/arch/x86/kernel/es7000_32.c
+++ /dev/null
@@ -1,378 +0,0 @@
1/*
2 * Written by: Garry Forsgren, Unisys Corporation
3 * Natalie Protasevich, Unisys Corporation
4 * This file contains the code to configure and interface
5 * with Unisys ES7000 series hardware system manager.
6 *
7 * Copyright (c) 2003 Unisys Corporation. All Rights Reserved.
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of version 2 of the GNU General Public License as
11 * published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it would be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 *
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write the Free Software Foundation, Inc., 59
19 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
20 *
21 * Contact information: Unisys Corporation, Township Line & Union Meeting
22 * Roads-A, Unisys Way, Blue Bell, Pennsylvania, 19424, or:
23 *
24 * http://www.unisys.com
25 */
26
27#include <linux/module.h>
28#include <linux/types.h>
29#include <linux/kernel.h>
30#include <linux/smp.h>
31#include <linux/string.h>
32#include <linux/spinlock.h>
33#include <linux/errno.h>
34#include <linux/notifier.h>
35#include <linux/reboot.h>
36#include <linux/init.h>
37#include <linux/acpi.h>
38#include <asm/io.h>
39#include <asm/nmi.h>
40#include <asm/smp.h>
41#include <asm/atomic.h>
42#include <asm/apicdef.h>
43#include <mach_mpparse.h>
44#include <asm/genapic.h>
45#include <asm/setup.h>
46
47/*
48 * ES7000 chipsets
49 */
50
51#define NON_UNISYS 0
52#define ES7000_CLASSIC 1
53#define ES7000_ZORRO 2
54
55
56#define MIP_REG 1
57#define MIP_PSAI_REG 4
58
59#define MIP_BUSY 1
60#define MIP_SPIN 0xf0000
61#define MIP_VALID 0x0100000000000000ULL
62#define MIP_PORT(VALUE) ((VALUE >> 32) & 0xffff)
63
64#define MIP_RD_LO(VALUE) (VALUE & 0xffffffff)
65
66struct mip_reg_info {
67 unsigned long long mip_info;
68 unsigned long long delivery_info;
69 unsigned long long host_reg;
70 unsigned long long mip_reg;
71};
72
73struct part_info {
74 unsigned char type;
75 unsigned char length;
76 unsigned char part_id;
77 unsigned char apic_mode;
78 unsigned long snum;
79 char ptype[16];
80 char sname[64];
81 char pname[64];
82};
83
84struct psai {
85 unsigned long long entry_type;
86 unsigned long long addr;
87 unsigned long long bep_addr;
88};
89
90struct es7000_mem_info {
91 unsigned char type;
92 unsigned char length;
93 unsigned char resv[6];
94 unsigned long long start;
95 unsigned long long size;
96};
97
98struct es7000_oem_table {
99 unsigned long long hdr;
100 struct mip_reg_info mip;
101 struct part_info pif;
102 struct es7000_mem_info shm;
103 struct psai psai;
104};
105
106#ifdef CONFIG_ACPI
107
108struct oem_table {
109 struct acpi_table_header Header;
110 u32 OEMTableAddr;
111 u32 OEMTableSize;
112};
113
114extern int find_unisys_acpi_oem_table(unsigned long *oem_addr);
115extern void unmap_unisys_acpi_oem_table(unsigned long oem_addr);
116#endif
117
118struct mip_reg {
119 unsigned long long off_0;
120 unsigned long long off_8;
121 unsigned long long off_10;
122 unsigned long long off_18;
123 unsigned long long off_20;
124 unsigned long long off_28;
125 unsigned long long off_30;
126 unsigned long long off_38;
127};
128
129#define MIP_SW_APIC 0x1020b
130#define MIP_FUNC(VALUE) (VALUE & 0xff)
131
132/*
133 * ES7000 Globals
134 */
135
136static volatile unsigned long *psai = NULL;
137static struct mip_reg *mip_reg;
138static struct mip_reg *host_reg;
139static int mip_port;
140static unsigned long mip_addr, host_addr;
141
142int es7000_plat;
143
144/*
145 * GSI override for ES7000 platforms.
146 */
147
148static unsigned int base;
149
150static int
151es7000_rename_gsi(int ioapic, int gsi)
152{
153 if (es7000_plat == ES7000_ZORRO)
154 return gsi;
155
156 if (!base) {
157 int i;
158 for (i = 0; i < nr_ioapics; i++)
159 base += nr_ioapic_registers[i];
160 }
161
162 if (!ioapic && (gsi < 16))
163 gsi += base;
164 return gsi;
165}
166
167static int wakeup_secondary_cpu_via_mip(int cpu, unsigned long eip)
168{
169 unsigned long vect = 0, psaival = 0;
170
171 if (psai == NULL)
172 return -1;
173
174 vect = ((unsigned long)__pa(eip)/0x1000) << 16;
175 psaival = (0x1000000 | vect | cpu);
176
177 while (*psai & 0x1000000)
178 ;
179
180 *psai = psaival;
181
182 return 0;
183}
184
185static void noop_wait_for_deassert(atomic_t *deassert_not_used)
186{
187}
188
189static int __init es7000_update_genapic(void)
190{
191 genapic->wakeup_cpu = wakeup_secondary_cpu_via_mip;
192
193 /* MPENTIUMIII */
194 if (boot_cpu_data.x86 == 6 &&
195 (boot_cpu_data.x86_model >= 7 || boot_cpu_data.x86_model <= 11)) {
196 es7000_update_genapic_to_cluster();
197 genapic->wait_for_init_deassert = noop_wait_for_deassert;
198 genapic->wakeup_cpu = wakeup_secondary_cpu_via_mip;
199 }
200
201 return 0;
202}
203
204void __init
205setup_unisys(void)
206{
207 /*
208 * Determine the generation of the ES7000 currently running.
209 *
210 * es7000_plat = 1 if the machine is a 5xx ES7000 box
211 * es7000_plat = 2 if the machine is a x86_64 ES7000 box
212 *
213 */
214 if (!(boot_cpu_data.x86 <= 15 && boot_cpu_data.x86_model <= 2))
215 es7000_plat = ES7000_ZORRO;
216 else
217 es7000_plat = ES7000_CLASSIC;
218 ioapic_renumber_irq = es7000_rename_gsi;
219
220 x86_quirks->update_genapic = es7000_update_genapic;
221}
222
223/*
224 * Parse the OEM Table
225 */
226
227int __init
228parse_unisys_oem (char *oemptr)
229{
230 int i;
231 int success = 0;
232 unsigned char type, size;
233 unsigned long val;
234 char *tp = NULL;
235 struct psai *psaip = NULL;
236 struct mip_reg_info *mi;
237 struct mip_reg *host, *mip;
238
239 tp = oemptr;
240
241 tp += 8;
242
243 for (i=0; i <= 6; i++) {
244 type = *tp++;
245 size = *tp++;
246 tp -= 2;
247 switch (type) {
248 case MIP_REG:
249 mi = (struct mip_reg_info *)tp;
250 val = MIP_RD_LO(mi->host_reg);
251 host_addr = val;
252 host = (struct mip_reg *)val;
253 host_reg = __va(host);
254 val = MIP_RD_LO(mi->mip_reg);
255 mip_port = MIP_PORT(mi->mip_info);
256 mip_addr = val;
257 mip = (struct mip_reg *)val;
258 mip_reg = __va(mip);
259 pr_debug("es7000_mipcfg: host_reg = 0x%lx \n",
260 (unsigned long)host_reg);
261 pr_debug("es7000_mipcfg: mip_reg = 0x%lx \n",
262 (unsigned long)mip_reg);
263 success++;
264 break;
265 case MIP_PSAI_REG:
266 psaip = (struct psai *)tp;
267 if (tp != NULL) {
268 if (psaip->addr)
269 psai = __va(psaip->addr);
270 else
271 psai = NULL;
272 success++;
273 }
274 break;
275 default:
276 break;
277 }
278 tp += size;
279 }
280
281 if (success < 2) {
282 es7000_plat = NON_UNISYS;
283 } else
284 setup_unisys();
285 return es7000_plat;
286}
287
288#ifdef CONFIG_ACPI
289static unsigned long oem_addrX;
290static unsigned long oem_size;
291int __init find_unisys_acpi_oem_table(unsigned long *oem_addr)
292{
293 struct acpi_table_header *header = NULL;
294 int i = 0;
295
296 while (ACPI_SUCCESS(acpi_get_table("OEM1", i++, &header))) {
297 if (!memcmp((char *) &header->oem_id, "UNISYS", 6)) {
298 struct oem_table *t = (struct oem_table *)header;
299
300 oem_addrX = t->OEMTableAddr;
301 oem_size = t->OEMTableSize;
302
303 *oem_addr = (unsigned long)__acpi_map_table(oem_addrX,
304 oem_size);
305 return 0;
306 }
307 }
308 return -1;
309}
310
311void __init unmap_unisys_acpi_oem_table(unsigned long oem_addr)
312{
313}
314#endif
315
316static void
317es7000_spin(int n)
318{
319 int i = 0;
320
321 while (i++ < n)
322 rep_nop();
323}
324
325static int __init
326es7000_mip_write(struct mip_reg *mip_reg)
327{
328 int status = 0;
329 int spin;
330
331 spin = MIP_SPIN;
332 while (((unsigned long long)host_reg->off_38 &
333 (unsigned long long)MIP_VALID) != 0) {
334 if (--spin <= 0) {
335 printk("es7000_mip_write: Timeout waiting for Host Valid Flag");
336 return -1;
337 }
338 es7000_spin(MIP_SPIN);
339 }
340
341 memcpy(host_reg, mip_reg, sizeof(struct mip_reg));
342 outb(1, mip_port);
343
344 spin = MIP_SPIN;
345
346 while (((unsigned long long)mip_reg->off_38 &
347 (unsigned long long)MIP_VALID) == 0) {
348 if (--spin <= 0) {
349 printk("es7000_mip_write: Timeout waiting for MIP Valid Flag");
350 return -1;
351 }
352 es7000_spin(MIP_SPIN);
353 }
354
355 status = ((unsigned long long)mip_reg->off_0 &
356 (unsigned long long)0xffff0000000000ULL) >> 48;
357 mip_reg->off_38 = ((unsigned long long)mip_reg->off_38 &
358 (unsigned long long)~MIP_VALID);
359 return status;
360}
361
362void __init
363es7000_sw_apic(void)
364{
365 if (es7000_plat) {
366 int mip_status;
367 struct mip_reg es7000_mip_reg;
368
369 printk("ES7000: Enabling APIC mode.\n");
370 memset(&es7000_mip_reg, 0, sizeof(struct mip_reg));
371 es7000_mip_reg.off_0 = MIP_SW_APIC;
372 es7000_mip_reg.off_38 = (MIP_VALID);
373 while ((mip_status = es7000_mip_write(&es7000_mip_reg)) != 0)
374 printk("es7000_sw_apic: command failed, status = %x\n",
375 mip_status);
376 return;
377 }
378}
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
index 1b43086b097a..231bdd3c5b1c 100644
--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -488,20 +488,21 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
488 * ignore such a protection. 488 * ignore such a protection.
489 */ 489 */
490 asm volatile( 490 asm volatile(
491 "1: " _ASM_MOV " (%[parent_old]), %[old]\n" 491 "1: " _ASM_MOV " (%[parent]), %[old]\n"
492 "2: " _ASM_MOV " %[return_hooker], (%[parent_replaced])\n" 492 "2: " _ASM_MOV " %[return_hooker], (%[parent])\n"
493 " movl $0, %[faulted]\n" 493 " movl $0, %[faulted]\n"
494 "3:\n"
494 495
495 ".section .fixup, \"ax\"\n" 496 ".section .fixup, \"ax\"\n"
496 "3: movl $1, %[faulted]\n" 497 "4: movl $1, %[faulted]\n"
498 " jmp 3b\n"
497 ".previous\n" 499 ".previous\n"
498 500
499 _ASM_EXTABLE(1b, 3b) 501 _ASM_EXTABLE(1b, 4b)
500 _ASM_EXTABLE(2b, 3b) 502 _ASM_EXTABLE(2b, 4b)
501 503
502 : [parent_replaced] "=r" (parent), [old] "=r" (old), 504 : [old] "=r" (old), [faulted] "=r" (faulted)
503 [faulted] "=r" (faulted) 505 : [parent] "r" (parent), [return_hooker] "r" (return_hooker)
504 : [parent_old] "0" (parent), [return_hooker] "r" (return_hooker)
505 : "memory" 506 : "memory"
506 ); 507 );
507 508
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index b9a4d8c4b935..f5b272247690 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -26,27 +26,6 @@
26#include <asm/bios_ebda.h> 26#include <asm/bios_ebda.h>
27#include <asm/trampoline.h> 27#include <asm/trampoline.h>
28 28
29/* boot cpu pda */
30static struct x8664_pda _boot_cpu_pda;
31
32#ifdef CONFIG_SMP
33/*
34 * We install an empty cpu_pda pointer table to indicate to early users
35 * (numa_set_node) that the cpu_pda pointer table for cpus other than
36 * the boot cpu is not yet setup.
37 */
38static struct x8664_pda *__cpu_pda[NR_CPUS] __initdata;
39#else
40static struct x8664_pda *__cpu_pda[NR_CPUS] __read_mostly;
41#endif
42
43void __init x86_64_init_pda(void)
44{
45 _cpu_pda = __cpu_pda;
46 cpu_pda(0) = &_boot_cpu_pda;
47 pda_init(0);
48}
49
50static void __init zap_identity_mappings(void) 29static void __init zap_identity_mappings(void)
51{ 30{
52 pgd_t *pgd = pgd_offset_k(0UL); 31 pgd_t *pgd = pgd_offset_k(0UL);
@@ -112,8 +91,6 @@ void __init x86_64_start_kernel(char * real_mode_data)
112 if (console_loglevel == 10) 91 if (console_loglevel == 10)
113 early_printk("Kernel alive\n"); 92 early_printk("Kernel alive\n");
114 93
115 x86_64_init_pda();
116
117 x86_64_start_reservations(real_mode_data); 94 x86_64_start_reservations(real_mode_data);
118} 95}
119 96
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index e835b4eea70b..c32ca19d591a 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -11,14 +11,15 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/linkage.h> 12#include <linux/linkage.h>
13#include <asm/segment.h> 13#include <asm/segment.h>
14#include <asm/page.h> 14#include <asm/page_types.h>
15#include <asm/pgtable.h> 15#include <asm/pgtable_types.h>
16#include <asm/desc.h> 16#include <asm/desc.h>
17#include <asm/cache.h> 17#include <asm/cache.h>
18#include <asm/thread_info.h> 18#include <asm/thread_info.h>
19#include <asm/asm-offsets.h> 19#include <asm/asm-offsets.h>
20#include <asm/setup.h> 20#include <asm/setup.h>
21#include <asm/processor-flags.h> 21#include <asm/processor-flags.h>
22#include <asm/percpu.h>
22 23
23/* Physical address */ 24/* Physical address */
24#define pa(X) ((X) - __PAGE_OFFSET) 25#define pa(X) ((X) - __PAGE_OFFSET)
@@ -429,14 +430,34 @@ is386: movl $2,%ecx # set MP
429 ljmp $(__KERNEL_CS),$1f 430 ljmp $(__KERNEL_CS),$1f
4301: movl $(__KERNEL_DS),%eax # reload all the segment registers 4311: movl $(__KERNEL_DS),%eax # reload all the segment registers
431 movl %eax,%ss # after changing gdt. 432 movl %eax,%ss # after changing gdt.
432 movl %eax,%fs # gets reset once there's real percpu
433 433
434 movl $(__USER_DS),%eax # DS/ES contains default USER segment 434 movl $(__USER_DS),%eax # DS/ES contains default USER segment
435 movl %eax,%ds 435 movl %eax,%ds
436 movl %eax,%es 436 movl %eax,%es
437 437
438 xorl %eax,%eax # Clear GS and LDT 438 movl $(__KERNEL_PERCPU), %eax
439 movl %eax,%fs # set this cpu's percpu
440
441#ifdef CONFIG_CC_STACKPROTECTOR
442 /*
443 * The linker can't handle this by relocation. Manually set
444 * base address in stack canary segment descriptor.
445 */
446 cmpb $0,ready
447 jne 1f
448 movl $per_cpu__gdt_page,%eax
449 movl $per_cpu__stack_canary,%ecx
450 subl $20, %ecx
451 movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax)
452 shrl $16, %ecx
453 movb %cl, 8 * GDT_ENTRY_STACK_CANARY + 4(%eax)
454 movb %ch, 8 * GDT_ENTRY_STACK_CANARY + 7(%eax)
4551:
456#endif
457 movl $(__KERNEL_STACK_CANARY),%eax
439 movl %eax,%gs 458 movl %eax,%gs
459
460 xorl %eax,%eax # Clear LDT
440 lldt %ax 461 lldt %ax
441 462
442 cld # gcc2 wants the direction flag cleared at all times 463 cld # gcc2 wants the direction flag cleared at all times
@@ -446,8 +467,6 @@ is386: movl $2,%ecx # set MP
446 movb $1, ready 467 movb $1, ready
447 cmpb $0,%cl # the first CPU calls start_kernel 468 cmpb $0,%cl # the first CPU calls start_kernel
448 je 1f 469 je 1f
449 movl $(__KERNEL_PERCPU), %eax
450 movl %eax,%fs # set this cpu's percpu
451 movl (stack_start), %esp 470 movl (stack_start), %esp
4521: 4711:
453#endif /* CONFIG_SMP */ 472#endif /* CONFIG_SMP */
@@ -548,12 +567,8 @@ early_fault:
548 pushl %eax 567 pushl %eax
549 pushl %edx /* trapno */ 568 pushl %edx /* trapno */
550 pushl $fault_msg 569 pushl $fault_msg
551#ifdef CONFIG_EARLY_PRINTK
552 call early_printk
553#else
554 call printk 570 call printk
555#endif 571#endif
556#endif
557 call dump_stack 572 call dump_stack
558hlt_loop: 573hlt_loop:
559 hlt 574 hlt
@@ -580,11 +595,10 @@ ignore_int:
580 pushl 32(%esp) 595 pushl 32(%esp)
581 pushl 40(%esp) 596 pushl 40(%esp)
582 pushl $int_msg 597 pushl $int_msg
583#ifdef CONFIG_EARLY_PRINTK
584 call early_printk
585#else
586 call printk 598 call printk
587#endif 599
600 call dump_stack
601
588 addl $(5*4),%esp 602 addl $(5*4),%esp
589 popl %ds 603 popl %ds
590 popl %es 604 popl %es
@@ -660,7 +674,7 @@ early_recursion_flag:
660 .long 0 674 .long 0
661 675
662int_msg: 676int_msg:
663 .asciz "Unknown interrupt or fault at EIP %p %p %p\n" 677 .asciz "Unknown interrupt or fault at: %p %p %p\n"
664 678
665fault_msg: 679fault_msg:
666/* fault info: */ 680/* fault info: */
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index 26cfdc1d7c7f..54b29bb24e71 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -19,6 +19,7 @@
19#include <asm/msr.h> 19#include <asm/msr.h>
20#include <asm/cache.h> 20#include <asm/cache.h>
21#include <asm/processor-flags.h> 21#include <asm/processor-flags.h>
22#include <asm/percpu.h>
22 23
23#ifdef CONFIG_PARAVIRT 24#ifdef CONFIG_PARAVIRT
24#include <asm/asm-offsets.h> 25#include <asm/asm-offsets.h>
@@ -226,12 +227,15 @@ ENTRY(secondary_startup_64)
226 movl %eax,%fs 227 movl %eax,%fs
227 movl %eax,%gs 228 movl %eax,%gs
228 229
229 /* 230 /* Set up %gs.
230 * Setup up a dummy PDA. this is just for some early bootup code 231 *
231 * that does in_interrupt() 232 * The base of %gs always points to the bottom of the irqstack
232 */ 233 * union. If the stack protector canary is enabled, it is
234 * located at %gs:40. Note that, on SMP, the boot cpu uses
235 * init data section till per cpu areas are set up.
236 */
233 movl $MSR_GS_BASE,%ecx 237 movl $MSR_GS_BASE,%ecx
234 movq $empty_zero_page,%rax 238 movq initial_gs(%rip),%rax
235 movq %rax,%rdx 239 movq %rax,%rdx
236 shrq $32,%rdx 240 shrq $32,%rdx
237 wrmsr 241 wrmsr
@@ -257,6 +261,8 @@ ENTRY(secondary_startup_64)
257 .align 8 261 .align 8
258 ENTRY(initial_code) 262 ENTRY(initial_code)
259 .quad x86_64_start_kernel 263 .quad x86_64_start_kernel
264 ENTRY(initial_gs)
265 .quad INIT_PER_CPU_VAR(irq_stack_union)
260 __FINITDATA 266 __FINITDATA
261 267
262 ENTRY(stack_start) 268 ENTRY(stack_start)
@@ -305,7 +311,7 @@ ENTRY(early_idt_handler)
305 call dump_stack 311 call dump_stack
306#ifdef CONFIG_KALLSYMS 312#ifdef CONFIG_KALLSYMS
307 leaq early_idt_ripmsg(%rip),%rdi 313 leaq early_idt_ripmsg(%rip),%rdi
308 movq 8(%rsp),%rsi # get rip again 314 movq 0(%rsp),%rsi # get rip again
309 call __print_symbol 315 call __print_symbol
310#endif 316#endif
311#endif /* EARLY_PRINTK */ 317#endif /* EARLY_PRINTK */
@@ -323,8 +329,6 @@ early_idt_ripmsg:
323#endif /* CONFIG_EARLY_PRINTK */ 329#endif /* CONFIG_EARLY_PRINTK */
324 .previous 330 .previous
325 331
326.balign PAGE_SIZE
327
328#define NEXT_PAGE(name) \ 332#define NEXT_PAGE(name) \
329 .balign PAGE_SIZE; \ 333 .balign PAGE_SIZE; \
330ENTRY(name) 334ENTRY(name)
@@ -401,7 +405,8 @@ NEXT_PAGE(level2_spare_pgt)
401 .globl early_gdt_descr 405 .globl early_gdt_descr
402early_gdt_descr: 406early_gdt_descr:
403 .word GDT_ENTRIES*8-1 407 .word GDT_ENTRIES*8-1
404 .quad per_cpu__gdt_page 408early_gdt_descr_base:
409 .quad INIT_PER_CPU_VAR(gdt_page)
405 410
406ENTRY(phys_base) 411ENTRY(phys_base)
407 /* This must match the first entry in level2_kernel_pgt */ 412 /* This must match the first entry in level2_kernel_pgt */
@@ -412,7 +417,7 @@ ENTRY(phys_base)
412 .section .bss, "aw", @nobits 417 .section .bss, "aw", @nobits
413 .align L1_CACHE_BYTES 418 .align L1_CACHE_BYTES
414ENTRY(idt_table) 419ENTRY(idt_table)
415 .skip 256 * 16 420 .skip IDT_ENTRIES * 16
416 421
417 .section .bss.page_aligned, "aw", @nobits 422 .section .bss.page_aligned, "aw", @nobits
418 .align PAGE_SIZE 423 .align PAGE_SIZE
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index cd759ad90690..a00545fe5cdd 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -269,6 +269,8 @@ static void hpet_set_mode(enum clock_event_mode mode,
269 now = hpet_readl(HPET_COUNTER); 269 now = hpet_readl(HPET_COUNTER);
270 cmp = now + (unsigned long) delta; 270 cmp = now + (unsigned long) delta;
271 cfg = hpet_readl(HPET_Tn_CFG(timer)); 271 cfg = hpet_readl(HPET_Tn_CFG(timer));
272 /* Make sure we use edge triggered interrupts */
273 cfg &= ~HPET_TN_LEVEL;
272 cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC | 274 cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC |
273 HPET_TN_SETVAL | HPET_TN_32BIT; 275 HPET_TN_SETVAL | HPET_TN_32BIT;
274 hpet_writel(cfg, HPET_Tn_CFG(timer)); 276 hpet_writel(cfg, HPET_Tn_CFG(timer));
@@ -628,11 +630,12 @@ static int hpet_cpuhp_notify(struct notifier_block *n,
628 630
629 switch (action & 0xf) { 631 switch (action & 0xf) {
630 case CPU_ONLINE: 632 case CPU_ONLINE:
631 INIT_DELAYED_WORK(&work.work, hpet_work); 633 INIT_DELAYED_WORK_ON_STACK(&work.work, hpet_work);
632 init_completion(&work.complete); 634 init_completion(&work.complete);
633 /* FIXME: add schedule_work_on() */ 635 /* FIXME: add schedule_work_on() */
634 schedule_delayed_work_on(cpu, &work.work, 0); 636 schedule_delayed_work_on(cpu, &work.work, 0);
635 wait_for_completion(&work.complete); 637 wait_for_completion(&work.complete);
638 destroy_timer_on_stack(&work.work.timer);
636 break; 639 break;
637 case CPU_DEAD: 640 case CPU_DEAD:
638 if (hdev) { 641 if (hdev) {
@@ -896,7 +899,7 @@ static unsigned long hpet_rtc_flags;
896static int hpet_prev_update_sec; 899static int hpet_prev_update_sec;
897static struct rtc_time hpet_alarm_time; 900static struct rtc_time hpet_alarm_time;
898static unsigned long hpet_pie_count; 901static unsigned long hpet_pie_count;
899static unsigned long hpet_t1_cmp; 902static u32 hpet_t1_cmp;
900static unsigned long hpet_default_delta; 903static unsigned long hpet_default_delta;
901static unsigned long hpet_pie_delta; 904static unsigned long hpet_pie_delta;
902static unsigned long hpet_pie_limit; 905static unsigned long hpet_pie_limit;
@@ -904,6 +907,14 @@ static unsigned long hpet_pie_limit;
904static rtc_irq_handler irq_handler; 907static rtc_irq_handler irq_handler;
905 908
906/* 909/*
910 * Check that the hpet counter c1 is ahead of the c2
911 */
912static inline int hpet_cnt_ahead(u32 c1, u32 c2)
913{
914 return (s32)(c2 - c1) < 0;
915}
916
917/*
907 * Registers a IRQ handler. 918 * Registers a IRQ handler.
908 */ 919 */
909int hpet_register_irq_handler(rtc_irq_handler handler) 920int hpet_register_irq_handler(rtc_irq_handler handler)
@@ -1074,7 +1085,7 @@ static void hpet_rtc_timer_reinit(void)
1074 hpet_t1_cmp += delta; 1085 hpet_t1_cmp += delta;
1075 hpet_writel(hpet_t1_cmp, HPET_T1_CMP); 1086 hpet_writel(hpet_t1_cmp, HPET_T1_CMP);
1076 lost_ints++; 1087 lost_ints++;
1077 } while ((long)(hpet_readl(HPET_COUNTER) - hpet_t1_cmp) > 0); 1088 } while (!hpet_cnt_ahead(hpet_t1_cmp, hpet_readl(HPET_COUNTER)));
1078 1089
1079 if (lost_ints) { 1090 if (lost_ints) {
1080 if (hpet_rtc_flags & RTC_PIE) 1091 if (hpet_rtc_flags & RTC_PIE)
diff --git a/arch/x86/kernel/i8237.c b/arch/x86/kernel/i8237.c
index dbd6c1d1b638..b42ca694dc68 100644
--- a/arch/x86/kernel/i8237.c
+++ b/arch/x86/kernel/i8237.c
@@ -28,10 +28,10 @@ static int i8237A_resume(struct sys_device *dev)
28 28
29 flags = claim_dma_lock(); 29 flags = claim_dma_lock();
30 30
31 dma_outb(DMA1_RESET_REG, 0); 31 dma_outb(0, DMA1_RESET_REG);
32 dma_outb(DMA2_RESET_REG, 0); 32 dma_outb(0, DMA2_RESET_REG);
33 33
34 for (i = 0;i < 8;i++) { 34 for (i = 0; i < 8; i++) {
35 set_dma_addr(i, 0x000000); 35 set_dma_addr(i, 0x000000);
36 /* DMA count is a bit weird so this is not 0 */ 36 /* DMA count is a bit weird so this is not 0 */
37 set_dma_count(i, 1); 37 set_dma_count(i, 1);
@@ -51,14 +51,14 @@ static int i8237A_suspend(struct sys_device *dev, pm_message_t state)
51} 51}
52 52
53static struct sysdev_class i8237_sysdev_class = { 53static struct sysdev_class i8237_sysdev_class = {
54 .name = "i8237", 54 .name = "i8237",
55 .suspend = i8237A_suspend, 55 .suspend = i8237A_suspend,
56 .resume = i8237A_resume, 56 .resume = i8237A_resume,
57}; 57};
58 58
59static struct sys_device device_i8237A = { 59static struct sys_device device_i8237A = {
60 .id = 0, 60 .id = 0,
61 .cls = &i8237_sysdev_class, 61 .cls = &i8237_sysdev_class,
62}; 62};
63 63
64static int __init i8237A_init_sysfs(void) 64static int __init i8237A_init_sysfs(void)
@@ -68,5 +68,4 @@ static int __init i8237A_init_sysfs(void)
68 error = sysdev_register(&device_i8237A); 68 error = sysdev_register(&device_i8237A);
69 return error; 69 return error;
70} 70}
71
72device_initcall(i8237A_init_sysfs); 71device_initcall(i8237A_init_sysfs);
diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c
index 4b8a53d841f7..df89102bef80 100644
--- a/arch/x86/kernel/i8259.c
+++ b/arch/x86/kernel/i8259.c
@@ -11,18 +11,17 @@
11#include <linux/kernel_stat.h> 11#include <linux/kernel_stat.h>
12#include <linux/sysdev.h> 12#include <linux/sysdev.h>
13#include <linux/bitops.h> 13#include <linux/bitops.h>
14#include <linux/acpi.h>
15#include <linux/io.h>
16#include <linux/delay.h>
14 17
15#include <asm/acpi.h>
16#include <asm/atomic.h> 18#include <asm/atomic.h>
17#include <asm/system.h> 19#include <asm/system.h>
18#include <asm/io.h>
19#include <asm/timer.h> 20#include <asm/timer.h>
20#include <asm/hw_irq.h> 21#include <asm/hw_irq.h>
21#include <asm/pgtable.h> 22#include <asm/pgtable.h>
22#include <asm/delay.h>
23#include <asm/desc.h> 23#include <asm/desc.h>
24#include <asm/apic.h> 24#include <asm/apic.h>
25#include <asm/arch_hooks.h>
26#include <asm/i8259.h> 25#include <asm/i8259.h>
27 26
28/* 27/*
@@ -323,7 +322,7 @@ void init_8259A(int auto_eoi)
323 outb_pic(0x11, PIC_MASTER_CMD); /* ICW1: select 8259A-1 init */ 322 outb_pic(0x11, PIC_MASTER_CMD); /* ICW1: select 8259A-1 init */
324 323
325 /* ICW2: 8259A-1 IR0-7 mapped to 0x30-0x37 on x86-64, 324 /* ICW2: 8259A-1 IR0-7 mapped to 0x30-0x37 on x86-64,
326 to 0x20-0x27 on i386 */ 325 to 0x20-0x27 on i386 */
327 outb_pic(IRQ0_VECTOR, PIC_MASTER_IMR); 326 outb_pic(IRQ0_VECTOR, PIC_MASTER_IMR);
328 327
329 /* 8259A-1 (the master) has a slave on IR2 */ 328 /* 8259A-1 (the master) has a slave on IR2 */
diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
index 191914302744..99c4d308f16b 100644
--- a/arch/x86/kernel/ioport.c
+++ b/arch/x86/kernel/ioport.c
@@ -35,8 +35,8 @@ static void set_bitmap(unsigned long *bitmap, unsigned int base,
35 */ 35 */
36asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) 36asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
37{ 37{
38 struct thread_struct * t = &current->thread; 38 struct thread_struct *t = &current->thread;
39 struct tss_struct * tss; 39 struct tss_struct *tss;
40 unsigned int i, max_long, bytes, bytes_updated; 40 unsigned int i, max_long, bytes, bytes_updated;
41 41
42 if ((from + num <= from) || (from + num > IO_BITMAP_BITS)) 42 if ((from + num <= from) || (from + num > IO_BITMAP_BITS))
@@ -85,19 +85,8 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
85 85
86 t->io_bitmap_max = bytes; 86 t->io_bitmap_max = bytes;
87 87
88#ifdef CONFIG_X86_32
89 /*
90 * Sets the lazy trigger so that the next I/O operation will
91 * reload the correct bitmap.
92 * Reset the owner so that a process switch will not set
93 * tss->io_bitmap_base to IO_BITMAP_OFFSET.
94 */
95 tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET_LAZY;
96 tss->io_bitmap_owner = NULL;
97#else
98 /* Update the TSS: */ 88 /* Update the TSS: */
99 memcpy(tss->io_bitmap, t->io_bitmap_ptr, bytes_updated); 89 memcpy(tss->io_bitmap, t->io_bitmap_ptr, bytes_updated);
100#endif
101 90
102 put_cpu(); 91 put_cpu();
103 92
@@ -131,9 +120,8 @@ static int do_iopl(unsigned int level, struct pt_regs *regs)
131} 120}
132 121
133#ifdef CONFIG_X86_32 122#ifdef CONFIG_X86_32
134asmlinkage long sys_iopl(unsigned long regsp) 123long sys_iopl(struct pt_regs *regs)
135{ 124{
136 struct pt_regs *regs = (struct pt_regs *)&regsp;
137 unsigned int level = regs->bx; 125 unsigned int level = regs->bx;
138 struct thread_struct *t = &current->thread; 126 struct thread_struct *t = &current->thread;
139 int rc; 127 int rc;
diff --git a/arch/x86/kernel/ipi.c b/arch/x86/kernel/ipi.c
deleted file mode 100644
index 285bbf8831fa..000000000000
--- a/arch/x86/kernel/ipi.c
+++ /dev/null
@@ -1,190 +0,0 @@
1#include <linux/cpumask.h>
2#include <linux/interrupt.h>
3#include <linux/init.h>
4
5#include <linux/mm.h>
6#include <linux/delay.h>
7#include <linux/spinlock.h>
8#include <linux/kernel_stat.h>
9#include <linux/mc146818rtc.h>
10#include <linux/cache.h>
11#include <linux/cpu.h>
12#include <linux/module.h>
13
14#include <asm/smp.h>
15#include <asm/mtrr.h>
16#include <asm/tlbflush.h>
17#include <asm/mmu_context.h>
18#include <asm/apic.h>
19#include <asm/proto.h>
20
21#ifdef CONFIG_X86_32
22#include <mach_apic.h>
23#include <mach_ipi.h>
24
25/*
26 * the following functions deal with sending IPIs between CPUs.
27 *
28 * We use 'broadcast', CPU->CPU IPIs and self-IPIs too.
29 */
30
31static inline int __prepare_ICR(unsigned int shortcut, int vector)
32{
33 unsigned int icr = shortcut | APIC_DEST_LOGICAL;
34
35 switch (vector) {
36 default:
37 icr |= APIC_DM_FIXED | vector;
38 break;
39 case NMI_VECTOR:
40 icr |= APIC_DM_NMI;
41 break;
42 }
43 return icr;
44}
45
46static inline int __prepare_ICR2(unsigned int mask)
47{
48 return SET_APIC_DEST_FIELD(mask);
49}
50
51void __send_IPI_shortcut(unsigned int shortcut, int vector)
52{
53 /*
54 * Subtle. In the case of the 'never do double writes' workaround
55 * we have to lock out interrupts to be safe. As we don't care
56 * of the value read we use an atomic rmw access to avoid costly
57 * cli/sti. Otherwise we use an even cheaper single atomic write
58 * to the APIC.
59 */
60 unsigned int cfg;
61
62 /*
63 * Wait for idle.
64 */
65 apic_wait_icr_idle();
66
67 /*
68 * No need to touch the target chip field
69 */
70 cfg = __prepare_ICR(shortcut, vector);
71
72 /*
73 * Send the IPI. The write to APIC_ICR fires this off.
74 */
75 apic_write(APIC_ICR, cfg);
76}
77
78void send_IPI_self(int vector)
79{
80 __send_IPI_shortcut(APIC_DEST_SELF, vector);
81}
82
83/*
84 * This is used to send an IPI with no shorthand notation (the destination is
85 * specified in bits 56 to 63 of the ICR).
86 */
87static inline void __send_IPI_dest_field(unsigned long mask, int vector)
88{
89 unsigned long cfg;
90
91 /*
92 * Wait for idle.
93 */
94 if (unlikely(vector == NMI_VECTOR))
95 safe_apic_wait_icr_idle();
96 else
97 apic_wait_icr_idle();
98
99 /*
100 * prepare target chip field
101 */
102 cfg = __prepare_ICR2(mask);
103 apic_write(APIC_ICR2, cfg);
104
105 /*
106 * program the ICR
107 */
108 cfg = __prepare_ICR(0, vector);
109
110 /*
111 * Send the IPI. The write to APIC_ICR fires this off.
112 */
113 apic_write(APIC_ICR, cfg);
114}
115
116/*
117 * This is only used on smaller machines.
118 */
119void send_IPI_mask_bitmask(const struct cpumask *cpumask, int vector)
120{
121 unsigned long mask = cpumask_bits(cpumask)[0];
122 unsigned long flags;
123
124 local_irq_save(flags);
125 WARN_ON(mask & ~cpumask_bits(cpu_online_mask)[0]);
126 __send_IPI_dest_field(mask, vector);
127 local_irq_restore(flags);
128}
129
130void send_IPI_mask_sequence(const struct cpumask *mask, int vector)
131{
132 unsigned long flags;
133 unsigned int query_cpu;
134
135 /*
136 * Hack. The clustered APIC addressing mode doesn't allow us to send
137 * to an arbitrary mask, so I do a unicasts to each CPU instead. This
138 * should be modified to do 1 message per cluster ID - mbligh
139 */
140
141 local_irq_save(flags);
142 for_each_cpu(query_cpu, mask)
143 __send_IPI_dest_field(cpu_to_logical_apicid(query_cpu), vector);
144 local_irq_restore(flags);
145}
146
147void send_IPI_mask_allbutself(const struct cpumask *mask, int vector)
148{
149 unsigned long flags;
150 unsigned int query_cpu;
151 unsigned int this_cpu = smp_processor_id();
152
153 /* See Hack comment above */
154
155 local_irq_save(flags);
156 for_each_cpu(query_cpu, mask)
157 if (query_cpu != this_cpu)
158 __send_IPI_dest_field(cpu_to_logical_apicid(query_cpu),
159 vector);
160 local_irq_restore(flags);
161}
162
163/* must come after the send_IPI functions above for inlining */
164static int convert_apicid_to_cpu(int apic_id)
165{
166 int i;
167
168 for_each_possible_cpu(i) {
169 if (per_cpu(x86_cpu_to_apicid, i) == apic_id)
170 return i;
171 }
172 return -1;
173}
174
175int safe_smp_processor_id(void)
176{
177 int apicid, cpuid;
178
179 if (!boot_cpu_has(X86_FEATURE_APIC))
180 return 0;
181
182 apicid = hard_smp_processor_id();
183 if (apicid == BAD_APICID)
184 return 0;
185
186 cpuid = convert_apicid_to_cpu(apicid);
187
188 return cpuid >= 0 ? cpuid : 0;
189}
190#endif
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
index bce53e1352a0..f13ca1650aaf 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -5,11 +5,13 @@
5#include <linux/interrupt.h> 5#include <linux/interrupt.h>
6#include <linux/kernel_stat.h> 6#include <linux/kernel_stat.h>
7#include <linux/seq_file.h> 7#include <linux/seq_file.h>
8#include <linux/smp.h>
9#include <linux/ftrace.h>
8 10
9#include <asm/apic.h> 11#include <asm/apic.h>
10#include <asm/io_apic.h> 12#include <asm/io_apic.h>
11#include <asm/smp.h>
12#include <asm/irq.h> 13#include <asm/irq.h>
14#include <asm/idle.h>
13 15
14atomic_t irq_err_count; 16atomic_t irq_err_count;
15 17
@@ -36,11 +38,7 @@ void ack_bad_irq(unsigned int irq)
36#endif 38#endif
37} 39}
38 40
39#ifdef CONFIG_X86_32 41#define irq_stats(x) (&per_cpu(irq_stat, x))
40# define irq_stats(x) (&per_cpu(irq_stat, x))
41#else
42# define irq_stats(x) cpu_pda(x)
43#endif
44/* 42/*
45 * /proc/interrupts printing: 43 * /proc/interrupts printing:
46 */ 44 */
@@ -192,4 +190,40 @@ u64 arch_irq_stat(void)
192 return sum; 190 return sum;
193} 191}
194 192
193
194/*
195 * do_IRQ handles all normal device IRQ's (the special
196 * SMP cross-CPU interrupts have their own specific
197 * handlers).
198 */
199unsigned int __irq_entry do_IRQ(struct pt_regs *regs)
200{
201 struct pt_regs *old_regs = set_irq_regs(regs);
202
203 /* high bit used in ret_from_ code */
204 unsigned vector = ~regs->orig_ax;
205 unsigned irq;
206
207 exit_idle();
208 irq_enter();
209
210 irq = __get_cpu_var(vector_irq)[vector];
211
212 if (!handle_irq(irq, regs)) {
213#ifdef CONFIG_X86_64
214 if (!disable_apic)
215 ack_APIC_irq();
216#endif
217
218 if (printk_ratelimit())
219 printk(KERN_EMERG "%s: %d.%d No irq handler for vector (irq %d)\n",
220 __func__, smp_processor_id(), vector, irq);
221 }
222
223 irq_exit();
224
225 set_irq_regs(old_regs);
226 return 1;
227}
228
195EXPORT_SYMBOL_GPL(vector_used_by_percpu_irq); 229EXPORT_SYMBOL_GPL(vector_used_by_percpu_irq);
diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
index 9dc5588f336a..9dc6b2b24275 100644
--- a/arch/x86/kernel/irq_32.c
+++ b/arch/x86/kernel/irq_32.c
@@ -15,9 +15,9 @@
15#include <linux/notifier.h> 15#include <linux/notifier.h>
16#include <linux/cpu.h> 16#include <linux/cpu.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/uaccess.h>
18 19
19#include <asm/apic.h> 20#include <asm/apic.h>
20#include <asm/uaccess.h>
21 21
22DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); 22DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
23EXPORT_PER_CPU_SYMBOL(irq_stat); 23EXPORT_PER_CPU_SYMBOL(irq_stat);
@@ -93,7 +93,7 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
93 return 0; 93 return 0;
94 94
95 /* build the stack frame on the IRQ stack */ 95 /* build the stack frame on the IRQ stack */
96 isp = (u32 *) ((char*)irqctx + sizeof(*irqctx)); 96 isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
97 irqctx->tinfo.task = curctx->tinfo.task; 97 irqctx->tinfo.task = curctx->tinfo.task;
98 irqctx->tinfo.previous_esp = current_stack_pointer; 98 irqctx->tinfo.previous_esp = current_stack_pointer;
99 99
@@ -137,7 +137,7 @@ void __cpuinit irq_ctx_init(int cpu)
137 137
138 hardirq_ctx[cpu] = irqctx; 138 hardirq_ctx[cpu] = irqctx;
139 139
140 irqctx = (union irq_ctx*) &softirq_stack[cpu*THREAD_SIZE]; 140 irqctx = (union irq_ctx *) &softirq_stack[cpu*THREAD_SIZE];
141 irqctx->tinfo.task = NULL; 141 irqctx->tinfo.task = NULL;
142 irqctx->tinfo.exec_domain = NULL; 142 irqctx->tinfo.exec_domain = NULL;
143 irqctx->tinfo.cpu = cpu; 143 irqctx->tinfo.cpu = cpu;
@@ -147,7 +147,7 @@ void __cpuinit irq_ctx_init(int cpu)
147 softirq_ctx[cpu] = irqctx; 147 softirq_ctx[cpu] = irqctx;
148 148
149 printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n", 149 printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n",
150 cpu,hardirq_ctx[cpu],softirq_ctx[cpu]); 150 cpu, hardirq_ctx[cpu], softirq_ctx[cpu]);
151} 151}
152 152
153void irq_ctx_exit(int cpu) 153void irq_ctx_exit(int cpu)
@@ -174,7 +174,7 @@ asmlinkage void do_softirq(void)
174 irqctx->tinfo.previous_esp = current_stack_pointer; 174 irqctx->tinfo.previous_esp = current_stack_pointer;
175 175
176 /* build the stack frame on the softirq stack */ 176 /* build the stack frame on the softirq stack */
177 isp = (u32*) ((char*)irqctx + sizeof(*irqctx)); 177 isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
178 178
179 call_on_stack(__do_softirq, isp); 179 call_on_stack(__do_softirq, isp);
180 /* 180 /*
@@ -191,33 +191,16 @@ static inline int
191execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq) { return 0; } 191execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq) { return 0; }
192#endif 192#endif
193 193
194/* 194bool handle_irq(unsigned irq, struct pt_regs *regs)
195 * do_IRQ handles all normal device IRQ's (the special
196 * SMP cross-CPU interrupts have their own specific
197 * handlers).
198 */
199unsigned int do_IRQ(struct pt_regs *regs)
200{ 195{
201 struct pt_regs *old_regs;
202 /* high bit used in ret_from_ code */
203 int overflow;
204 unsigned vector = ~regs->orig_ax;
205 struct irq_desc *desc; 196 struct irq_desc *desc;
206 unsigned irq; 197 int overflow;
207
208
209 old_regs = set_irq_regs(regs);
210 irq_enter();
211 irq = __get_cpu_var(vector_irq)[vector];
212 198
213 overflow = check_stack_overflow(); 199 overflow = check_stack_overflow();
214 200
215 desc = irq_to_desc(irq); 201 desc = irq_to_desc(irq);
216 if (unlikely(!desc)) { 202 if (unlikely(!desc))
217 printk(KERN_EMERG "%s: cannot handle IRQ %d vector %#x cpu %d\n", 203 return false;
218 __func__, irq, vector, smp_processor_id());
219 BUG();
220 }
221 204
222 if (!execute_on_irq_stack(overflow, desc, irq)) { 205 if (!execute_on_irq_stack(overflow, desc, irq)) {
223 if (unlikely(overflow)) 206 if (unlikely(overflow))
@@ -225,13 +208,10 @@ unsigned int do_IRQ(struct pt_regs *regs)
225 desc->handle_irq(irq, desc); 208 desc->handle_irq(irq, desc);
226 } 209 }
227 210
228 irq_exit(); 211 return true;
229 set_irq_regs(old_regs);
230 return 1;
231} 212}
232 213
233#ifdef CONFIG_HOTPLUG_CPU 214#ifdef CONFIG_HOTPLUG_CPU
234#include <mach_apic.h>
235 215
236/* A cpu has been removed from cpu_online_mask. Reset irq affinities. */ 216/* A cpu has been removed from cpu_online_mask. Reset irq affinities. */
237void fixup_irqs(void) 217void fixup_irqs(void)
@@ -248,7 +228,7 @@ void fixup_irqs(void)
248 if (irq == 2) 228 if (irq == 2)
249 continue; 229 continue;
250 230
251 affinity = &desc->affinity; 231 affinity = desc->affinity;
252 if (cpumask_any_and(affinity, cpu_online_mask) >= nr_cpu_ids) { 232 if (cpumask_any_and(affinity, cpu_online_mask) >= nr_cpu_ids) {
253 printk("Breaking affinity for irq %i\n", irq); 233 printk("Breaking affinity for irq %i\n", irq);
254 affinity = cpu_all_mask; 234 affinity = cpu_all_mask;
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
index 6383d50f82ea..977d8b43a0dd 100644
--- a/arch/x86/kernel/irq_64.c
+++ b/arch/x86/kernel/irq_64.c
@@ -14,10 +14,17 @@
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/delay.h> 15#include <linux/delay.h>
16#include <linux/ftrace.h> 16#include <linux/ftrace.h>
17#include <asm/uaccess.h> 17#include <linux/uaccess.h>
18#include <linux/smp.h>
18#include <asm/io_apic.h> 19#include <asm/io_apic.h>
19#include <asm/idle.h> 20#include <asm/idle.h>
20#include <asm/smp.h> 21#include <asm/apic.h>
22
23DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
24EXPORT_PER_CPU_SYMBOL(irq_stat);
25
26DEFINE_PER_CPU(struct pt_regs *, irq_regs);
27EXPORT_PER_CPU_SYMBOL(irq_regs);
21 28
22/* 29/*
23 * Probabilistic stack overflow check: 30 * Probabilistic stack overflow check:
@@ -41,42 +48,18 @@ static inline void stack_overflow_check(struct pt_regs *regs)
41#endif 48#endif
42} 49}
43 50
44/* 51bool handle_irq(unsigned irq, struct pt_regs *regs)
45 * do_IRQ handles all normal device IRQ's (the special
46 * SMP cross-CPU interrupts have their own specific
47 * handlers).
48 */
49asmlinkage unsigned int __irq_entry do_IRQ(struct pt_regs *regs)
50{ 52{
51 struct pt_regs *old_regs = set_irq_regs(regs);
52 struct irq_desc *desc; 53 struct irq_desc *desc;
53 54
54 /* high bit used in ret_from_ code */
55 unsigned vector = ~regs->orig_ax;
56 unsigned irq;
57
58 exit_idle();
59 irq_enter();
60 irq = __get_cpu_var(vector_irq)[vector];
61
62 stack_overflow_check(regs); 55 stack_overflow_check(regs);
63 56
64 desc = irq_to_desc(irq); 57 desc = irq_to_desc(irq);
65 if (likely(desc)) 58 if (unlikely(!desc))
66 generic_handle_irq_desc(irq, desc); 59 return false;
67 else {
68 if (!disable_apic)
69 ack_APIC_irq();
70
71 if (printk_ratelimit())
72 printk(KERN_EMERG "%s: %d.%d No irq handler for vector\n",
73 __func__, smp_processor_id(), vector);
74 }
75
76 irq_exit();
77 60
78 set_irq_regs(old_regs); 61 generic_handle_irq_desc(irq, desc);
79 return 1; 62 return true;
80} 63}
81 64
82#ifdef CONFIG_HOTPLUG_CPU 65#ifdef CONFIG_HOTPLUG_CPU
@@ -100,7 +83,7 @@ void fixup_irqs(void)
100 /* interrupt's are disabled at this point */ 83 /* interrupt's are disabled at this point */
101 spin_lock(&desc->lock); 84 spin_lock(&desc->lock);
102 85
103 affinity = &desc->affinity; 86 affinity = desc->affinity;
104 if (!irq_has_action(irq) || 87 if (!irq_has_action(irq) ||
105 cpumask_equal(affinity, cpu_online_mask)) { 88 cpumask_equal(affinity, cpu_online_mask)) {
106 spin_unlock(&desc->lock); 89 spin_unlock(&desc->lock);
@@ -142,18 +125,18 @@ extern void call_softirq(void);
142 125
143asmlinkage void do_softirq(void) 126asmlinkage void do_softirq(void)
144{ 127{
145 __u32 pending; 128 __u32 pending;
146 unsigned long flags; 129 unsigned long flags;
147 130
148 if (in_interrupt()) 131 if (in_interrupt())
149 return; 132 return;
150 133
151 local_irq_save(flags); 134 local_irq_save(flags);
152 pending = local_softirq_pending(); 135 pending = local_softirq_pending();
153 /* Switch to interrupt stack */ 136 /* Switch to interrupt stack */
154 if (pending) { 137 if (pending) {
155 call_softirq(); 138 call_softirq();
156 WARN_ON_ONCE(softirq_count()); 139 WARN_ON_ONCE(softirq_count());
157 } 140 }
158 local_irq_restore(flags); 141 local_irq_restore(flags);
159} 142}
diff --git a/arch/x86/kernel/irqinit_32.c b/arch/x86/kernel/irqinit_32.c
index 84723295f88a..50b8c3a3006c 100644
--- a/arch/x86/kernel/irqinit_32.c
+++ b/arch/x86/kernel/irqinit_32.c
@@ -9,18 +9,18 @@
9#include <linux/kernel_stat.h> 9#include <linux/kernel_stat.h>
10#include <linux/sysdev.h> 10#include <linux/sysdev.h>
11#include <linux/bitops.h> 11#include <linux/bitops.h>
12#include <linux/io.h>
13#include <linux/delay.h>
12 14
13#include <asm/atomic.h> 15#include <asm/atomic.h>
14#include <asm/system.h> 16#include <asm/system.h>
15#include <asm/io.h>
16#include <asm/timer.h> 17#include <asm/timer.h>
17#include <asm/pgtable.h> 18#include <asm/pgtable.h>
18#include <asm/delay.h>
19#include <asm/desc.h> 19#include <asm/desc.h>
20#include <asm/apic.h> 20#include <asm/apic.h>
21#include <asm/arch_hooks.h> 21#include <asm/setup.h>
22#include <asm/i8259.h> 22#include <asm/i8259.h>
23 23#include <asm/traps.h>
24 24
25 25
26/* 26/*
@@ -34,12 +34,10 @@
34 * leads to races. IBM designers who came up with it should 34 * leads to races. IBM designers who came up with it should
35 * be shot. 35 * be shot.
36 */ 36 */
37
38 37
39static irqreturn_t math_error_irq(int cpl, void *dev_id) 38static irqreturn_t math_error_irq(int cpl, void *dev_id)
40{ 39{
41 extern void math_error(void __user *); 40 outb(0, 0xF0);
42 outb(0,0xF0);
43 if (ignore_fpu_irq || !boot_cpu_data.hard_math) 41 if (ignore_fpu_irq || !boot_cpu_data.hard_math)
44 return IRQ_NONE; 42 return IRQ_NONE;
45 math_error((void __user *)get_irq_regs()->ip); 43 math_error((void __user *)get_irq_regs()->ip);
@@ -56,7 +54,7 @@ static struct irqaction fpu_irq = {
56 .name = "fpu", 54 .name = "fpu",
57}; 55};
58 56
59void __init init_ISA_irqs (void) 57void __init init_ISA_irqs(void)
60{ 58{
61 int i; 59 int i;
62 60
@@ -129,8 +127,8 @@ void __init native_init_IRQ(void)
129{ 127{
130 int i; 128 int i;
131 129
132 /* all the set up before the call gates are initialised */ 130 /* Execute any quirks before the call gates are initialised: */
133 pre_intr_init_hook(); 131 x86_quirk_pre_intr_init();
134 132
135 /* 133 /*
136 * Cover the whole vector space, no vector can escape 134 * Cover the whole vector space, no vector can escape
@@ -151,8 +149,15 @@ void __init native_init_IRQ(void)
151 */ 149 */
152 alloc_intr_gate(RESCHEDULE_VECTOR, reschedule_interrupt); 150 alloc_intr_gate(RESCHEDULE_VECTOR, reschedule_interrupt);
153 151
154 /* IPI for invalidation */ 152 /* IPIs for invalidation */
155 alloc_intr_gate(INVALIDATE_TLB_VECTOR, invalidate_interrupt); 153 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+0, invalidate_interrupt0);
154 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+1, invalidate_interrupt1);
155 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+2, invalidate_interrupt2);
156 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+3, invalidate_interrupt3);
157 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+4, invalidate_interrupt4);
158 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+5, invalidate_interrupt5);
159 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+6, invalidate_interrupt6);
160 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+7, invalidate_interrupt7);
156 161
157 /* IPI for generic function call */ 162 /* IPI for generic function call */
158 alloc_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt); 163 alloc_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt);
@@ -183,10 +188,11 @@ void __init native_init_IRQ(void)
183 if (!acpi_ioapic) 188 if (!acpi_ioapic)
184 setup_irq(2, &irq2); 189 setup_irq(2, &irq2);
185 190
186 /* setup after call gates are initialised (usually add in 191 /*
187 * the architecture specific gates) 192 * Call quirks after call gates are initialised (usually add in
193 * the architecture specific gates):
188 */ 194 */
189 intr_init_hook(); 195 x86_quirk_intr_init();
190 196
191 /* 197 /*
192 * External FPU? Set up irq13 if so, for 198 * External FPU? Set up irq13 if so, for
diff --git a/arch/x86/kernel/irqinit_64.c b/arch/x86/kernel/irqinit_64.c
index 31ebfe38e96c..da481a1e3f30 100644
--- a/arch/x86/kernel/irqinit_64.c
+++ b/arch/x86/kernel/irqinit_64.c
@@ -11,14 +11,14 @@
11#include <linux/kernel_stat.h> 11#include <linux/kernel_stat.h>
12#include <linux/sysdev.h> 12#include <linux/sysdev.h>
13#include <linux/bitops.h> 13#include <linux/bitops.h>
14#include <linux/acpi.h>
15#include <linux/io.h>
16#include <linux/delay.h>
14 17
15#include <asm/acpi.h>
16#include <asm/atomic.h> 18#include <asm/atomic.h>
17#include <asm/system.h> 19#include <asm/system.h>
18#include <asm/io.h>
19#include <asm/hw_irq.h> 20#include <asm/hw_irq.h>
20#include <asm/pgtable.h> 21#include <asm/pgtable.h>
21#include <asm/delay.h>
22#include <asm/desc.h> 22#include <asm/desc.h>
23#include <asm/apic.h> 23#include <asm/apic.h>
24#include <asm/i8259.h> 24#include <asm/i8259.h>
@@ -81,7 +81,7 @@ int vector_used_by_percpu_irq(unsigned int vector)
81 return 0; 81 return 0;
82} 82}
83 83
84void __init init_ISA_irqs(void) 84static void __init init_ISA_irqs(void)
85{ 85{
86 int i; 86 int i;
87 87
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
index 10435a120d22..eedfaebe1063 100644
--- a/arch/x86/kernel/kgdb.c
+++ b/arch/x86/kernel/kgdb.c
@@ -46,7 +46,7 @@
46#include <asm/apicdef.h> 46#include <asm/apicdef.h>
47#include <asm/system.h> 47#include <asm/system.h>
48 48
49#include <mach_ipi.h> 49#include <asm/apic.h>
50 50
51/* 51/*
52 * Put the error code here just in case the user cares: 52 * Put the error code here just in case the user cares:
@@ -347,7 +347,7 @@ void kgdb_post_primary_code(struct pt_regs *regs, int e_vector, int err_code)
347 */ 347 */
348void kgdb_roundup_cpus(unsigned long flags) 348void kgdb_roundup_cpus(unsigned long flags)
349{ 349{
350 send_IPI_allbutself(APIC_DM_NMI); 350 apic->send_IPI_allbutself(APIC_DM_NMI);
351} 351}
352#endif 352#endif
353 353
diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c
index 884d985b8b82..e948b28a5a9a 100644
--- a/arch/x86/kernel/kprobes.c
+++ b/arch/x86/kernel/kprobes.c
@@ -446,7 +446,7 @@ void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,
446static void __kprobes setup_singlestep(struct kprobe *p, struct pt_regs *regs, 446static void __kprobes setup_singlestep(struct kprobe *p, struct pt_regs *regs,
447 struct kprobe_ctlblk *kcb) 447 struct kprobe_ctlblk *kcb)
448{ 448{
449#if !defined(CONFIG_PREEMPT) || defined(CONFIG_PM) 449#if !defined(CONFIG_PREEMPT) || defined(CONFIG_FREEZER)
450 if (p->ainsn.boostable == 1 && !p->post_handler) { 450 if (p->ainsn.boostable == 1 && !p->post_handler) {
451 /* Boost up -- we can execute copied instructions directly */ 451 /* Boost up -- we can execute copied instructions directly */
452 reset_current_kprobe(); 452 reset_current_kprobe();
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 652fce6d2cce..137f2e8132df 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -19,7 +19,6 @@
19#include <linux/clocksource.h> 19#include <linux/clocksource.h>
20#include <linux/kvm_para.h> 20#include <linux/kvm_para.h>
21#include <asm/pvclock.h> 21#include <asm/pvclock.h>
22#include <asm/arch_hooks.h>
23#include <asm/msr.h> 22#include <asm/msr.h>
24#include <asm/apic.h> 23#include <asm/apic.h>
25#include <linux/percpu.h> 24#include <linux/percpu.h>
diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c
index 37f420018a41..f5fc8c781a62 100644
--- a/arch/x86/kernel/machine_kexec_32.c
+++ b/arch/x86/kernel/machine_kexec_32.c
@@ -121,7 +121,7 @@ static void machine_kexec_page_table_set_one(
121static void machine_kexec_prepare_page_tables(struct kimage *image) 121static void machine_kexec_prepare_page_tables(struct kimage *image)
122{ 122{
123 void *control_page; 123 void *control_page;
124 pmd_t *pmd = 0; 124 pmd_t *pmd = NULL;
125 125
126 control_page = page_address(image->control_code_page); 126 control_page = page_address(image->control_code_page);
127#ifdef CONFIG_X86_PAE 127#ifdef CONFIG_X86_PAE
diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c
index c43caa3a91f3..6993d51b7fd8 100644
--- a/arch/x86/kernel/machine_kexec_64.c
+++ b/arch/x86/kernel/machine_kexec_64.c
@@ -18,15 +18,6 @@
18#include <asm/mmu_context.h> 18#include <asm/mmu_context.h>
19#include <asm/io.h> 19#include <asm/io.h>
20 20
21#define PAGE_ALIGNED __attribute__ ((__aligned__(PAGE_SIZE)))
22static u64 kexec_pgd[512] PAGE_ALIGNED;
23static u64 kexec_pud0[512] PAGE_ALIGNED;
24static u64 kexec_pmd0[512] PAGE_ALIGNED;
25static u64 kexec_pte0[512] PAGE_ALIGNED;
26static u64 kexec_pud1[512] PAGE_ALIGNED;
27static u64 kexec_pmd1[512] PAGE_ALIGNED;
28static u64 kexec_pte1[512] PAGE_ALIGNED;
29
30static void init_level2_page(pmd_t *level2p, unsigned long addr) 21static void init_level2_page(pmd_t *level2p, unsigned long addr)
31{ 22{
32 unsigned long end_addr; 23 unsigned long end_addr;
@@ -107,12 +98,65 @@ out:
107 return result; 98 return result;
108} 99}
109 100
101static void free_transition_pgtable(struct kimage *image)
102{
103 free_page((unsigned long)image->arch.pud);
104 free_page((unsigned long)image->arch.pmd);
105 free_page((unsigned long)image->arch.pte);
106}
107
108static int init_transition_pgtable(struct kimage *image, pgd_t *pgd)
109{
110 pud_t *pud;
111 pmd_t *pmd;
112 pte_t *pte;
113 unsigned long vaddr, paddr;
114 int result = -ENOMEM;
115
116 vaddr = (unsigned long)relocate_kernel;
117 paddr = __pa(page_address(image->control_code_page)+PAGE_SIZE);
118 pgd += pgd_index(vaddr);
119 if (!pgd_present(*pgd)) {
120 pud = (pud_t *)get_zeroed_page(GFP_KERNEL);
121 if (!pud)
122 goto err;
123 image->arch.pud = pud;
124 set_pgd(pgd, __pgd(__pa(pud) | _KERNPG_TABLE));
125 }
126 pud = pud_offset(pgd, vaddr);
127 if (!pud_present(*pud)) {
128 pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL);
129 if (!pmd)
130 goto err;
131 image->arch.pmd = pmd;
132 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE));
133 }
134 pmd = pmd_offset(pud, vaddr);
135 if (!pmd_present(*pmd)) {
136 pte = (pte_t *)get_zeroed_page(GFP_KERNEL);
137 if (!pte)
138 goto err;
139 image->arch.pte = pte;
140 set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE));
141 }
142 pte = pte_offset_kernel(pmd, vaddr);
143 set_pte(pte, pfn_pte(paddr >> PAGE_SHIFT, PAGE_KERNEL_EXEC));
144 return 0;
145err:
146 free_transition_pgtable(image);
147 return result;
148}
149
110 150
111static int init_pgtable(struct kimage *image, unsigned long start_pgtable) 151static int init_pgtable(struct kimage *image, unsigned long start_pgtable)
112{ 152{
113 pgd_t *level4p; 153 pgd_t *level4p;
154 int result;
114 level4p = (pgd_t *)__va(start_pgtable); 155 level4p = (pgd_t *)__va(start_pgtable);
115 return init_level4_page(image, level4p, 0, max_pfn << PAGE_SHIFT); 156 result = init_level4_page(image, level4p, 0, max_pfn << PAGE_SHIFT);
157 if (result)
158 return result;
159 return init_transition_pgtable(image, level4p);
116} 160}
117 161
118static void set_idt(void *newidt, u16 limit) 162static void set_idt(void *newidt, u16 limit)
@@ -174,7 +218,7 @@ int machine_kexec_prepare(struct kimage *image)
174 218
175void machine_kexec_cleanup(struct kimage *image) 219void machine_kexec_cleanup(struct kimage *image)
176{ 220{
177 return; 221 free_transition_pgtable(image);
178} 222}
179 223
180/* 224/*
@@ -195,22 +239,6 @@ void machine_kexec(struct kimage *image)
195 memcpy(control_page, relocate_kernel, PAGE_SIZE); 239 memcpy(control_page, relocate_kernel, PAGE_SIZE);
196 240
197 page_list[PA_CONTROL_PAGE] = virt_to_phys(control_page); 241 page_list[PA_CONTROL_PAGE] = virt_to_phys(control_page);
198 page_list[VA_CONTROL_PAGE] = (unsigned long)relocate_kernel;
199 page_list[PA_PGD] = virt_to_phys(&kexec_pgd);
200 page_list[VA_PGD] = (unsigned long)kexec_pgd;
201 page_list[PA_PUD_0] = virt_to_phys(&kexec_pud0);
202 page_list[VA_PUD_0] = (unsigned long)kexec_pud0;
203 page_list[PA_PMD_0] = virt_to_phys(&kexec_pmd0);
204 page_list[VA_PMD_0] = (unsigned long)kexec_pmd0;
205 page_list[PA_PTE_0] = virt_to_phys(&kexec_pte0);
206 page_list[VA_PTE_0] = (unsigned long)kexec_pte0;
207 page_list[PA_PUD_1] = virt_to_phys(&kexec_pud1);
208 page_list[VA_PUD_1] = (unsigned long)kexec_pud1;
209 page_list[PA_PMD_1] = virt_to_phys(&kexec_pmd1);
210 page_list[VA_PMD_1] = (unsigned long)kexec_pmd1;
211 page_list[PA_PTE_1] = virt_to_phys(&kexec_pte1);
212 page_list[VA_PTE_1] = (unsigned long)kexec_pte1;
213
214 page_list[PA_TABLE_PAGE] = 242 page_list[PA_TABLE_PAGE] =
215 (unsigned long)__pa(page_address(image->control_code_page)); 243 (unsigned long)__pa(page_address(image->control_code_page));
216 244
diff --git a/arch/x86/kernel/mca_32.c b/arch/x86/kernel/mca_32.c
index 2dc183758be3..845d80ce1ef1 100644
--- a/arch/x86/kernel/mca_32.c
+++ b/arch/x86/kernel/mca_32.c
@@ -51,7 +51,6 @@
51#include <linux/ioport.h> 51#include <linux/ioport.h>
52#include <asm/uaccess.h> 52#include <asm/uaccess.h>
53#include <linux/init.h> 53#include <linux/init.h>
54#include <asm/arch_hooks.h>
55 54
56static unsigned char which_scsi; 55static unsigned char which_scsi;
57 56
@@ -474,6 +473,4 @@ void __kprobes mca_handle_nmi(void)
474 * adapter was responsible for the error. 473 * adapter was responsible for the error.
475 */ 474 */
476 bus_for_each_dev(&mca_bus_type, NULL, NULL, mca_handle_nmi_callback); 475 bus_for_each_dev(&mca_bus_type, NULL, NULL, mca_handle_nmi_callback);
477 476}
478 mca_nmi_hook();
479} /* mca_handle_nmi */
diff --git a/arch/x86/kernel/microcode_intel.c b/arch/x86/kernel/microcode_intel.c
index b7f4c929e615..5e9f4fc51385 100644
--- a/arch/x86/kernel/microcode_intel.c
+++ b/arch/x86/kernel/microcode_intel.c
@@ -87,9 +87,9 @@
87#include <linux/cpu.h> 87#include <linux/cpu.h>
88#include <linux/firmware.h> 88#include <linux/firmware.h>
89#include <linux/platform_device.h> 89#include <linux/platform_device.h>
90#include <linux/uaccess.h>
90 91
91#include <asm/msr.h> 92#include <asm/msr.h>
92#include <asm/uaccess.h>
93#include <asm/processor.h> 93#include <asm/processor.h>
94#include <asm/microcode.h> 94#include <asm/microcode.h>
95 95
@@ -196,7 +196,7 @@ static inline int update_match_cpu(struct cpu_signature *csig, int sig, int pf)
196 return (!sigmatch(sig, csig->sig, pf, csig->pf)) ? 0 : 1; 196 return (!sigmatch(sig, csig->sig, pf, csig->pf)) ? 0 : 1;
197} 197}
198 198
199static inline int 199static inline int
200update_match_revision(struct microcode_header_intel *mc_header, int rev) 200update_match_revision(struct microcode_header_intel *mc_header, int rev)
201{ 201{
202 return (mc_header->rev <= rev) ? 0 : 1; 202 return (mc_header->rev <= rev) ? 0 : 1;
@@ -442,8 +442,8 @@ static int request_microcode_fw(int cpu, struct device *device)
442 return ret; 442 return ret;
443 } 443 }
444 444
445 ret = generic_load_microcode(cpu, (void*)firmware->data, firmware->size, 445 ret = generic_load_microcode(cpu, (void *)firmware->data,
446 &get_ucode_fw); 446 firmware->size, &get_ucode_fw);
447 447
448 release_firmware(firmware); 448 release_firmware(firmware);
449 449
@@ -460,7 +460,7 @@ static int request_microcode_user(int cpu, const void __user *buf, size_t size)
460 /* We should bind the task to the CPU */ 460 /* We should bind the task to the CPU */
461 BUG_ON(cpu != raw_smp_processor_id()); 461 BUG_ON(cpu != raw_smp_processor_id());
462 462
463 return generic_load_microcode(cpu, (void*)buf, size, &get_ucode_user); 463 return generic_load_microcode(cpu, (void *)buf, size, &get_ucode_user);
464} 464}
465 465
466static void microcode_fini_cpu(int cpu) 466static void microcode_fini_cpu(int cpu)
diff --git a/arch/x86/kernel/module_32.c b/arch/x86/kernel/module_32.c
index 3db0a5442eb1..0edd819050e7 100644
--- a/arch/x86/kernel/module_32.c
+++ b/arch/x86/kernel/module_32.c
@@ -42,7 +42,7 @@ void module_free(struct module *mod, void *module_region)
42{ 42{
43 vfree(module_region); 43 vfree(module_region);
44 /* FIXME: If module_region == mod->init_region, trim exception 44 /* FIXME: If module_region == mod->init_region, trim exception
45 table entries. */ 45 table entries. */
46} 46}
47 47
48/* We don't need anything special. */ 48/* We don't need anything special. */
@@ -113,13 +113,13 @@ int module_finalize(const Elf_Ehdr *hdr,
113 *para = NULL; 113 *para = NULL;
114 char *secstrings = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset; 114 char *secstrings = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
115 115
116 for (s = sechdrs; s < sechdrs + hdr->e_shnum; s++) { 116 for (s = sechdrs; s < sechdrs + hdr->e_shnum; s++) {
117 if (!strcmp(".text", secstrings + s->sh_name)) 117 if (!strcmp(".text", secstrings + s->sh_name))
118 text = s; 118 text = s;
119 if (!strcmp(".altinstructions", secstrings + s->sh_name)) 119 if (!strcmp(".altinstructions", secstrings + s->sh_name))
120 alt = s; 120 alt = s;
121 if (!strcmp(".smp_locks", secstrings + s->sh_name)) 121 if (!strcmp(".smp_locks", secstrings + s->sh_name))
122 locks= s; 122 locks = s;
123 if (!strcmp(".parainstructions", secstrings + s->sh_name)) 123 if (!strcmp(".parainstructions", secstrings + s->sh_name))
124 para = s; 124 para = s;
125 } 125 }
diff --git a/arch/x86/kernel/module_64.c b/arch/x86/kernel/module_64.c
index 6ba87830d4b1..c23880b90b5c 100644
--- a/arch/x86/kernel/module_64.c
+++ b/arch/x86/kernel/module_64.c
@@ -30,14 +30,14 @@
30#include <asm/page.h> 30#include <asm/page.h>
31#include <asm/pgtable.h> 31#include <asm/pgtable.h>
32 32
33#define DEBUGP(fmt...) 33#define DEBUGP(fmt...)
34 34
35#ifndef CONFIG_UML 35#ifndef CONFIG_UML
36void module_free(struct module *mod, void *module_region) 36void module_free(struct module *mod, void *module_region)
37{ 37{
38 vfree(module_region); 38 vfree(module_region);
39 /* FIXME: If module_region == mod->init_region, trim exception 39 /* FIXME: If module_region == mod->init_region, trim exception
40 table entries. */ 40 table entries. */
41} 41}
42 42
43void *module_alloc(unsigned long size) 43void *module_alloc(unsigned long size)
@@ -77,7 +77,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
77 Elf64_Rela *rel = (void *)sechdrs[relsec].sh_addr; 77 Elf64_Rela *rel = (void *)sechdrs[relsec].sh_addr;
78 Elf64_Sym *sym; 78 Elf64_Sym *sym;
79 void *loc; 79 void *loc;
80 u64 val; 80 u64 val;
81 81
82 DEBUGP("Applying relocate section %u to %u\n", relsec, 82 DEBUGP("Applying relocate section %u to %u\n", relsec,
83 sechdrs[relsec].sh_info); 83 sechdrs[relsec].sh_info);
@@ -91,11 +91,11 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
91 sym = (Elf64_Sym *)sechdrs[symindex].sh_addr 91 sym = (Elf64_Sym *)sechdrs[symindex].sh_addr
92 + ELF64_R_SYM(rel[i].r_info); 92 + ELF64_R_SYM(rel[i].r_info);
93 93
94 DEBUGP("type %d st_value %Lx r_addend %Lx loc %Lx\n", 94 DEBUGP("type %d st_value %Lx r_addend %Lx loc %Lx\n",
95 (int)ELF64_R_TYPE(rel[i].r_info), 95 (int)ELF64_R_TYPE(rel[i].r_info),
96 sym->st_value, rel[i].r_addend, (u64)loc); 96 sym->st_value, rel[i].r_addend, (u64)loc);
97 97
98 val = sym->st_value + rel[i].r_addend; 98 val = sym->st_value + rel[i].r_addend;
99 99
100 switch (ELF64_R_TYPE(rel[i].r_info)) { 100 switch (ELF64_R_TYPE(rel[i].r_info)) {
101 case R_X86_64_NONE: 101 case R_X86_64_NONE:
@@ -113,16 +113,16 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
113 if ((s64)val != *(s32 *)loc) 113 if ((s64)val != *(s32 *)loc)
114 goto overflow; 114 goto overflow;
115 break; 115 break;
116 case R_X86_64_PC32: 116 case R_X86_64_PC32:
117 val -= (u64)loc; 117 val -= (u64)loc;
118 *(u32 *)loc = val; 118 *(u32 *)loc = val;
119#if 0 119#if 0
120 if ((s64)val != *(s32 *)loc) 120 if ((s64)val != *(s32 *)loc)
121 goto overflow; 121 goto overflow;
122#endif 122#endif
123 break; 123 break;
124 default: 124 default:
125 printk(KERN_ERR "module %s: Unknown rela relocation: %Lu\n", 125 printk(KERN_ERR "module %s: Unknown rela relocation: %llu\n",
126 me->name, ELF64_R_TYPE(rel[i].r_info)); 126 me->name, ELF64_R_TYPE(rel[i].r_info));
127 return -ENOEXEC; 127 return -ENOEXEC;
128 } 128 }
@@ -130,7 +130,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
130 return 0; 130 return 0;
131 131
132overflow: 132overflow:
133 printk(KERN_ERR "overflow in relocation type %d val %Lx\n", 133 printk(KERN_ERR "overflow in relocation type %d val %Lx\n",
134 (int)ELF64_R_TYPE(rel[i].r_info), val); 134 (int)ELF64_R_TYPE(rel[i].r_info), val);
135 printk(KERN_ERR "`%s' likely not compiled with -mcmodel=kernel\n", 135 printk(KERN_ERR "`%s' likely not compiled with -mcmodel=kernel\n",
136 me->name); 136 me->name);
@@ -143,13 +143,13 @@ int apply_relocate(Elf_Shdr *sechdrs,
143 unsigned int relsec, 143 unsigned int relsec,
144 struct module *me) 144 struct module *me)
145{ 145{
146 printk("non add relocation not supported\n"); 146 printk(KERN_ERR "non add relocation not supported\n");
147 return -ENOSYS; 147 return -ENOSYS;
148} 148}
149 149
150int module_finalize(const Elf_Ehdr *hdr, 150int module_finalize(const Elf_Ehdr *hdr,
151 const Elf_Shdr *sechdrs, 151 const Elf_Shdr *sechdrs,
152 struct module *me) 152 struct module *me)
153{ 153{
154 const Elf_Shdr *s, *text = NULL, *alt = NULL, *locks = NULL, 154 const Elf_Shdr *s, *text = NULL, *alt = NULL, *locks = NULL,
155 *para = NULL; 155 *para = NULL;
@@ -161,7 +161,7 @@ int module_finalize(const Elf_Ehdr *hdr,
161 if (!strcmp(".altinstructions", secstrings + s->sh_name)) 161 if (!strcmp(".altinstructions", secstrings + s->sh_name))
162 alt = s; 162 alt = s;
163 if (!strcmp(".smp_locks", secstrings + s->sh_name)) 163 if (!strcmp(".smp_locks", secstrings + s->sh_name))
164 locks= s; 164 locks = s;
165 if (!strcmp(".parainstructions", secstrings + s->sh_name)) 165 if (!strcmp(".parainstructions", secstrings + s->sh_name))
166 para = s; 166 para = s;
167 } 167 }
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index c5c5b8df1dbc..37cb1bda1baf 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -2,8 +2,8 @@
2 * Intel Multiprocessor Specification 1.1 and 1.4 2 * Intel Multiprocessor Specification 1.1 and 1.4
3 * compliant MP-table parsing routines. 3 * compliant MP-table parsing routines.
4 * 4 *
5 * (c) 1995 Alan Cox, Building #3 <alan@redhat.com> 5 * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk>
6 * (c) 1998, 1999, 2000 Ingo Molnar <mingo@redhat.com> 6 * (c) 1998, 1999, 2000, 2009 Ingo Molnar <mingo@redhat.com>
7 * (c) 2008 Alexey Starikovskiy <astarikovskiy@suse.de> 7 * (c) 2008 Alexey Starikovskiy <astarikovskiy@suse.de>
8 */ 8 */
9 9
@@ -17,7 +17,6 @@
17#include <linux/acpi.h> 17#include <linux/acpi.h>
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/smp.h> 19#include <linux/smp.h>
20#include <linux/acpi.h>
21 20
22#include <asm/mtrr.h> 21#include <asm/mtrr.h>
23#include <asm/mpspec.h> 22#include <asm/mpspec.h>
@@ -28,13 +27,9 @@
28#include <asm/e820.h> 27#include <asm/e820.h>
29#include <asm/trampoline.h> 28#include <asm/trampoline.h>
30#include <asm/setup.h> 29#include <asm/setup.h>
30#include <asm/smp.h>
31 31
32#include <mach_apic.h> 32#include <asm/apic.h>
33#ifdef CONFIG_X86_32
34#include <mach_apicdef.h>
35#include <mach_mpparse.h>
36#endif
37
38/* 33/*
39 * Checksum an MP configuration block. 34 * Checksum an MP configuration block.
40 */ 35 */
@@ -49,12 +44,12 @@ static int __init mpf_checksum(unsigned char *mp, int len)
49 return sum & 0xFF; 44 return sum & 0xFF;
50} 45}
51 46
52static void __init MP_processor_info(struct mpc_config_processor *m) 47static void __init MP_processor_info(struct mpc_cpu *m)
53{ 48{
54 int apicid; 49 int apicid;
55 char *bootup_cpu = ""; 50 char *bootup_cpu = "";
56 51
57 if (!(m->mpc_cpuflag & CPU_ENABLED)) { 52 if (!(m->cpuflag & CPU_ENABLED)) {
58 disabled_cpus++; 53 disabled_cpus++;
59 return; 54 return;
60 } 55 }
@@ -62,54 +57,54 @@ static void __init MP_processor_info(struct mpc_config_processor *m)
62 if (x86_quirks->mpc_apic_id) 57 if (x86_quirks->mpc_apic_id)
63 apicid = x86_quirks->mpc_apic_id(m); 58 apicid = x86_quirks->mpc_apic_id(m);
64 else 59 else
65 apicid = m->mpc_apicid; 60 apicid = m->apicid;
66 61
67 if (m->mpc_cpuflag & CPU_BOOTPROCESSOR) { 62 if (m->cpuflag & CPU_BOOTPROCESSOR) {
68 bootup_cpu = " (Bootup-CPU)"; 63 bootup_cpu = " (Bootup-CPU)";
69 boot_cpu_physical_apicid = m->mpc_apicid; 64 boot_cpu_physical_apicid = m->apicid;
70 } 65 }
71 66
72 printk(KERN_INFO "Processor #%d%s\n", m->mpc_apicid, bootup_cpu); 67 printk(KERN_INFO "Processor #%d%s\n", m->apicid, bootup_cpu);
73 generic_processor_info(apicid, m->mpc_apicver); 68 generic_processor_info(apicid, m->apicver);
74} 69}
75 70
76#ifdef CONFIG_X86_IO_APIC 71#ifdef CONFIG_X86_IO_APIC
77static void __init MP_bus_info(struct mpc_config_bus *m) 72static void __init MP_bus_info(struct mpc_bus *m)
78{ 73{
79 char str[7]; 74 char str[7];
80 memcpy(str, m->mpc_bustype, 6); 75 memcpy(str, m->bustype, 6);
81 str[6] = 0; 76 str[6] = 0;
82 77
83 if (x86_quirks->mpc_oem_bus_info) 78 if (x86_quirks->mpc_oem_bus_info)
84 x86_quirks->mpc_oem_bus_info(m, str); 79 x86_quirks->mpc_oem_bus_info(m, str);
85 else 80 else
86 apic_printk(APIC_VERBOSE, "Bus #%d is %s\n", m->mpc_busid, str); 81 apic_printk(APIC_VERBOSE, "Bus #%d is %s\n", m->busid, str);
87 82
88#if MAX_MP_BUSSES < 256 83#if MAX_MP_BUSSES < 256
89 if (m->mpc_busid >= MAX_MP_BUSSES) { 84 if (m->busid >= MAX_MP_BUSSES) {
90 printk(KERN_WARNING "MP table busid value (%d) for bustype %s " 85 printk(KERN_WARNING "MP table busid value (%d) for bustype %s "
91 " is too large, max. supported is %d\n", 86 " is too large, max. supported is %d\n",
92 m->mpc_busid, str, MAX_MP_BUSSES - 1); 87 m->busid, str, MAX_MP_BUSSES - 1);
93 return; 88 return;
94 } 89 }
95#endif 90#endif
96 91
97 if (strncmp(str, BUSTYPE_ISA, sizeof(BUSTYPE_ISA) - 1) == 0) { 92 if (strncmp(str, BUSTYPE_ISA, sizeof(BUSTYPE_ISA) - 1) == 0) {
98 set_bit(m->mpc_busid, mp_bus_not_pci); 93 set_bit(m->busid, mp_bus_not_pci);
99#if defined(CONFIG_EISA) || defined(CONFIG_MCA) 94#if defined(CONFIG_EISA) || defined(CONFIG_MCA)
100 mp_bus_id_to_type[m->mpc_busid] = MP_BUS_ISA; 95 mp_bus_id_to_type[m->busid] = MP_BUS_ISA;
101#endif 96#endif
102 } else if (strncmp(str, BUSTYPE_PCI, sizeof(BUSTYPE_PCI) - 1) == 0) { 97 } else if (strncmp(str, BUSTYPE_PCI, sizeof(BUSTYPE_PCI) - 1) == 0) {
103 if (x86_quirks->mpc_oem_pci_bus) 98 if (x86_quirks->mpc_oem_pci_bus)
104 x86_quirks->mpc_oem_pci_bus(m); 99 x86_quirks->mpc_oem_pci_bus(m);
105 100
106 clear_bit(m->mpc_busid, mp_bus_not_pci); 101 clear_bit(m->busid, mp_bus_not_pci);
107#if defined(CONFIG_EISA) || defined(CONFIG_MCA) 102#if defined(CONFIG_EISA) || defined(CONFIG_MCA)
108 mp_bus_id_to_type[m->mpc_busid] = MP_BUS_PCI; 103 mp_bus_id_to_type[m->busid] = MP_BUS_PCI;
109 } else if (strncmp(str, BUSTYPE_EISA, sizeof(BUSTYPE_EISA) - 1) == 0) { 104 } else if (strncmp(str, BUSTYPE_EISA, sizeof(BUSTYPE_EISA) - 1) == 0) {
110 mp_bus_id_to_type[m->mpc_busid] = MP_BUS_EISA; 105 mp_bus_id_to_type[m->busid] = MP_BUS_EISA;
111 } else if (strncmp(str, BUSTYPE_MCA, sizeof(BUSTYPE_MCA) - 1) == 0) { 106 } else if (strncmp(str, BUSTYPE_MCA, sizeof(BUSTYPE_MCA) - 1) == 0) {
112 mp_bus_id_to_type[m->mpc_busid] = MP_BUS_MCA; 107 mp_bus_id_to_type[m->busid] = MP_BUS_MCA;
113#endif 108#endif
114 } else 109 } else
115 printk(KERN_WARNING "Unknown bustype %s - ignoring\n", str); 110 printk(KERN_WARNING "Unknown bustype %s - ignoring\n", str);
@@ -133,89 +128,88 @@ static int bad_ioapic(unsigned long address)
133 return 0; 128 return 0;
134} 129}
135 130
136static void __init MP_ioapic_info(struct mpc_config_ioapic *m) 131static void __init MP_ioapic_info(struct mpc_ioapic *m)
137{ 132{
138 if (!(m->mpc_flags & MPC_APIC_USABLE)) 133 if (!(m->flags & MPC_APIC_USABLE))
139 return; 134 return;
140 135
141 printk(KERN_INFO "I/O APIC #%d Version %d at 0x%X.\n", 136 printk(KERN_INFO "I/O APIC #%d Version %d at 0x%X.\n",
142 m->mpc_apicid, m->mpc_apicver, m->mpc_apicaddr); 137 m->apicid, m->apicver, m->apicaddr);
143 138
144 if (bad_ioapic(m->mpc_apicaddr)) 139 if (bad_ioapic(m->apicaddr))
145 return; 140 return;
146 141
147 mp_ioapics[nr_ioapics].mp_apicaddr = m->mpc_apicaddr; 142 mp_ioapics[nr_ioapics].apicaddr = m->apicaddr;
148 mp_ioapics[nr_ioapics].mp_apicid = m->mpc_apicid; 143 mp_ioapics[nr_ioapics].apicid = m->apicid;
149 mp_ioapics[nr_ioapics].mp_type = m->mpc_type; 144 mp_ioapics[nr_ioapics].type = m->type;
150 mp_ioapics[nr_ioapics].mp_apicver = m->mpc_apicver; 145 mp_ioapics[nr_ioapics].apicver = m->apicver;
151 mp_ioapics[nr_ioapics].mp_flags = m->mpc_flags; 146 mp_ioapics[nr_ioapics].flags = m->flags;
152 nr_ioapics++; 147 nr_ioapics++;
153} 148}
154 149
155static void print_MP_intsrc_info(struct mpc_config_intsrc *m) 150static void print_MP_intsrc_info(struct mpc_intsrc *m)
156{ 151{
157 apic_printk(APIC_VERBOSE, "Int: type %d, pol %d, trig %d, bus %02x," 152 apic_printk(APIC_VERBOSE, "Int: type %d, pol %d, trig %d, bus %02x,"
158 " IRQ %02x, APIC ID %x, APIC INT %02x\n", 153 " IRQ %02x, APIC ID %x, APIC INT %02x\n",
159 m->mpc_irqtype, m->mpc_irqflag & 3, 154 m->irqtype, m->irqflag & 3, (m->irqflag >> 2) & 3, m->srcbus,
160 (m->mpc_irqflag >> 2) & 3, m->mpc_srcbus, 155 m->srcbusirq, m->dstapic, m->dstirq);
161 m->mpc_srcbusirq, m->mpc_dstapic, m->mpc_dstirq);
162} 156}
163 157
164static void __init print_mp_irq_info(struct mp_config_intsrc *mp_irq) 158static void __init print_mp_irq_info(struct mpc_intsrc *mp_irq)
165{ 159{
166 apic_printk(APIC_VERBOSE, "Int: type %d, pol %d, trig %d, bus %02x," 160 apic_printk(APIC_VERBOSE, "Int: type %d, pol %d, trig %d, bus %02x,"
167 " IRQ %02x, APIC ID %x, APIC INT %02x\n", 161 " IRQ %02x, APIC ID %x, APIC INT %02x\n",
168 mp_irq->mp_irqtype, mp_irq->mp_irqflag & 3, 162 mp_irq->irqtype, mp_irq->irqflag & 3,
169 (mp_irq->mp_irqflag >> 2) & 3, mp_irq->mp_srcbus, 163 (mp_irq->irqflag >> 2) & 3, mp_irq->srcbus,
170 mp_irq->mp_srcbusirq, mp_irq->mp_dstapic, mp_irq->mp_dstirq); 164 mp_irq->srcbusirq, mp_irq->dstapic, mp_irq->dstirq);
171} 165}
172 166
173static void __init assign_to_mp_irq(struct mpc_config_intsrc *m, 167static void __init assign_to_mp_irq(struct mpc_intsrc *m,
174 struct mp_config_intsrc *mp_irq) 168 struct mpc_intsrc *mp_irq)
175{ 169{
176 mp_irq->mp_dstapic = m->mpc_dstapic; 170 mp_irq->dstapic = m->dstapic;
177 mp_irq->mp_type = m->mpc_type; 171 mp_irq->type = m->type;
178 mp_irq->mp_irqtype = m->mpc_irqtype; 172 mp_irq->irqtype = m->irqtype;
179 mp_irq->mp_irqflag = m->mpc_irqflag; 173 mp_irq->irqflag = m->irqflag;
180 mp_irq->mp_srcbus = m->mpc_srcbus; 174 mp_irq->srcbus = m->srcbus;
181 mp_irq->mp_srcbusirq = m->mpc_srcbusirq; 175 mp_irq->srcbusirq = m->srcbusirq;
182 mp_irq->mp_dstirq = m->mpc_dstirq; 176 mp_irq->dstirq = m->dstirq;
183} 177}
184 178
185static void __init assign_to_mpc_intsrc(struct mp_config_intsrc *mp_irq, 179static void __init assign_to_mpc_intsrc(struct mpc_intsrc *mp_irq,
186 struct mpc_config_intsrc *m) 180 struct mpc_intsrc *m)
187{ 181{
188 m->mpc_dstapic = mp_irq->mp_dstapic; 182 m->dstapic = mp_irq->dstapic;
189 m->mpc_type = mp_irq->mp_type; 183 m->type = mp_irq->type;
190 m->mpc_irqtype = mp_irq->mp_irqtype; 184 m->irqtype = mp_irq->irqtype;
191 m->mpc_irqflag = mp_irq->mp_irqflag; 185 m->irqflag = mp_irq->irqflag;
192 m->mpc_srcbus = mp_irq->mp_srcbus; 186 m->srcbus = mp_irq->srcbus;
193 m->mpc_srcbusirq = mp_irq->mp_srcbusirq; 187 m->srcbusirq = mp_irq->srcbusirq;
194 m->mpc_dstirq = mp_irq->mp_dstirq; 188 m->dstirq = mp_irq->dstirq;
195} 189}
196 190
197static int __init mp_irq_mpc_intsrc_cmp(struct mp_config_intsrc *mp_irq, 191static int __init mp_irq_mpc_intsrc_cmp(struct mpc_intsrc *mp_irq,
198 struct mpc_config_intsrc *m) 192 struct mpc_intsrc *m)
199{ 193{
200 if (mp_irq->mp_dstapic != m->mpc_dstapic) 194 if (mp_irq->dstapic != m->dstapic)
201 return 1; 195 return 1;
202 if (mp_irq->mp_type != m->mpc_type) 196 if (mp_irq->type != m->type)
203 return 2; 197 return 2;
204 if (mp_irq->mp_irqtype != m->mpc_irqtype) 198 if (mp_irq->irqtype != m->irqtype)
205 return 3; 199 return 3;
206 if (mp_irq->mp_irqflag != m->mpc_irqflag) 200 if (mp_irq->irqflag != m->irqflag)
207 return 4; 201 return 4;
208 if (mp_irq->mp_srcbus != m->mpc_srcbus) 202 if (mp_irq->srcbus != m->srcbus)
209 return 5; 203 return 5;
210 if (mp_irq->mp_srcbusirq != m->mpc_srcbusirq) 204 if (mp_irq->srcbusirq != m->srcbusirq)
211 return 6; 205 return 6;
212 if (mp_irq->mp_dstirq != m->mpc_dstirq) 206 if (mp_irq->dstirq != m->dstirq)
213 return 7; 207 return 7;
214 208
215 return 0; 209 return 0;
216} 210}
217 211
218static void __init MP_intsrc_info(struct mpc_config_intsrc *m) 212static void __init MP_intsrc_info(struct mpc_intsrc *m)
219{ 213{
220 int i; 214 int i;
221 215
@@ -233,57 +227,55 @@ static void __init MP_intsrc_info(struct mpc_config_intsrc *m)
233 227
234#endif 228#endif
235 229
236static void __init MP_lintsrc_info(struct mpc_config_lintsrc *m) 230static void __init MP_lintsrc_info(struct mpc_lintsrc *m)
237{ 231{
238 apic_printk(APIC_VERBOSE, "Lint: type %d, pol %d, trig %d, bus %02x," 232 apic_printk(APIC_VERBOSE, "Lint: type %d, pol %d, trig %d, bus %02x,"
239 " IRQ %02x, APIC ID %x, APIC LINT %02x\n", 233 " IRQ %02x, APIC ID %x, APIC LINT %02x\n",
240 m->mpc_irqtype, m->mpc_irqflag & 3, 234 m->irqtype, m->irqflag & 3, (m->irqflag >> 2) & 3, m->srcbusid,
241 (m->mpc_irqflag >> 2) & 3, m->mpc_srcbusid, 235 m->srcbusirq, m->destapic, m->destapiclint);
242 m->mpc_srcbusirq, m->mpc_destapic, m->mpc_destapiclint);
243} 236}
244 237
245/* 238/*
246 * Read/parse the MPC 239 * Read/parse the MPC
247 */ 240 */
248 241
249static int __init smp_check_mpc(struct mp_config_table *mpc, char *oem, 242static int __init smp_check_mpc(struct mpc_table *mpc, char *oem, char *str)
250 char *str)
251{ 243{
252 244
253 if (memcmp(mpc->mpc_signature, MPC_SIGNATURE, 4)) { 245 if (memcmp(mpc->signature, MPC_SIGNATURE, 4)) {
254 printk(KERN_ERR "MPTABLE: bad signature [%c%c%c%c]!\n", 246 printk(KERN_ERR "MPTABLE: bad signature [%c%c%c%c]!\n",
255 mpc->mpc_signature[0], mpc->mpc_signature[1], 247 mpc->signature[0], mpc->signature[1],
256 mpc->mpc_signature[2], mpc->mpc_signature[3]); 248 mpc->signature[2], mpc->signature[3]);
257 return 0; 249 return 0;
258 } 250 }
259 if (mpf_checksum((unsigned char *)mpc, mpc->mpc_length)) { 251 if (mpf_checksum((unsigned char *)mpc, mpc->length)) {
260 printk(KERN_ERR "MPTABLE: checksum error!\n"); 252 printk(KERN_ERR "MPTABLE: checksum error!\n");
261 return 0; 253 return 0;
262 } 254 }
263 if (mpc->mpc_spec != 0x01 && mpc->mpc_spec != 0x04) { 255 if (mpc->spec != 0x01 && mpc->spec != 0x04) {
264 printk(KERN_ERR "MPTABLE: bad table version (%d)!!\n", 256 printk(KERN_ERR "MPTABLE: bad table version (%d)!!\n",
265 mpc->mpc_spec); 257 mpc->spec);
266 return 0; 258 return 0;
267 } 259 }
268 if (!mpc->mpc_lapic) { 260 if (!mpc->lapic) {
269 printk(KERN_ERR "MPTABLE: null local APIC address!\n"); 261 printk(KERN_ERR "MPTABLE: null local APIC address!\n");
270 return 0; 262 return 0;
271 } 263 }
272 memcpy(oem, mpc->mpc_oem, 8); 264 memcpy(oem, mpc->oem, 8);
273 oem[8] = 0; 265 oem[8] = 0;
274 printk(KERN_INFO "MPTABLE: OEM ID: %s\n", oem); 266 printk(KERN_INFO "MPTABLE: OEM ID: %s\n", oem);
275 267
276 memcpy(str, mpc->mpc_productid, 12); 268 memcpy(str, mpc->productid, 12);
277 str[12] = 0; 269 str[12] = 0;
278 270
279 printk(KERN_INFO "MPTABLE: Product ID: %s\n", str); 271 printk(KERN_INFO "MPTABLE: Product ID: %s\n", str);
280 272
281 printk(KERN_INFO "MPTABLE: APIC at: 0x%X\n", mpc->mpc_lapic); 273 printk(KERN_INFO "MPTABLE: APIC at: 0x%X\n", mpc->lapic);
282 274
283 return 1; 275 return 1;
284} 276}
285 277
286static int __init smp_read_mpc(struct mp_config_table *mpc, unsigned early) 278static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
287{ 279{
288 char str[16]; 280 char str[16];
289 char oem[10]; 281 char oem[10];
@@ -295,27 +287,18 @@ static int __init smp_read_mpc(struct mp_config_table *mpc, unsigned early)
295 return 0; 287 return 0;
296 288
297#ifdef CONFIG_X86_32 289#ifdef CONFIG_X86_32
298 /* 290 generic_mps_oem_check(mpc, oem, str);
299 * need to make sure summit and es7000's mps_oem_check is safe to be
300 * called early via genericarch 's mps_oem_check
301 */
302 if (early) {
303#ifdef CONFIG_X86_NUMAQ
304 numaq_mps_oem_check(mpc, oem, str);
305#endif
306 } else
307 mps_oem_check(mpc, oem, str);
308#endif 291#endif
309 /* save the local APIC address, it might be non-default */ 292 /* save the local APIC address, it might be non-default */
310 if (!acpi_lapic) 293 if (!acpi_lapic)
311 mp_lapic_addr = mpc->mpc_lapic; 294 mp_lapic_addr = mpc->lapic;
312 295
313 if (early) 296 if (early)
314 return 1; 297 return 1;
315 298
316 if (mpc->mpc_oemptr && x86_quirks->smp_read_mpc_oem) { 299 if (mpc->oemptr && x86_quirks->smp_read_mpc_oem) {
317 struct mp_config_oemtable *oem_table = (struct mp_config_oemtable *)(unsigned long)mpc->mpc_oemptr; 300 struct mpc_oemtable *oem_table = (void *)(long)mpc->oemptr;
318 x86_quirks->smp_read_mpc_oem(oem_table, mpc->mpc_oemsize); 301 x86_quirks->smp_read_mpc_oem(oem_table, mpc->oemsize);
319 } 302 }
320 303
321 /* 304 /*
@@ -324,12 +307,11 @@ static int __init smp_read_mpc(struct mp_config_table *mpc, unsigned early)
324 if (x86_quirks->mpc_record) 307 if (x86_quirks->mpc_record)
325 *x86_quirks->mpc_record = 0; 308 *x86_quirks->mpc_record = 0;
326 309
327 while (count < mpc->mpc_length) { 310 while (count < mpc->length) {
328 switch (*mpt) { 311 switch (*mpt) {
329 case MP_PROCESSOR: 312 case MP_PROCESSOR:
330 { 313 {
331 struct mpc_config_processor *m = 314 struct mpc_cpu *m = (struct mpc_cpu *)mpt;
332 (struct mpc_config_processor *)mpt;
333 /* ACPI may have already provided this data */ 315 /* ACPI may have already provided this data */
334 if (!acpi_lapic) 316 if (!acpi_lapic)
335 MP_processor_info(m); 317 MP_processor_info(m);
@@ -339,8 +321,7 @@ static int __init smp_read_mpc(struct mp_config_table *mpc, unsigned early)
339 } 321 }
340 case MP_BUS: 322 case MP_BUS:
341 { 323 {
342 struct mpc_config_bus *m = 324 struct mpc_bus *m = (struct mpc_bus *)mpt;
343 (struct mpc_config_bus *)mpt;
344#ifdef CONFIG_X86_IO_APIC 325#ifdef CONFIG_X86_IO_APIC
345 MP_bus_info(m); 326 MP_bus_info(m);
346#endif 327#endif
@@ -351,30 +332,28 @@ static int __init smp_read_mpc(struct mp_config_table *mpc, unsigned early)
351 case MP_IOAPIC: 332 case MP_IOAPIC:
352 { 333 {
353#ifdef CONFIG_X86_IO_APIC 334#ifdef CONFIG_X86_IO_APIC
354 struct mpc_config_ioapic *m = 335 struct mpc_ioapic *m = (struct mpc_ioapic *)mpt;
355 (struct mpc_config_ioapic *)mpt;
356 MP_ioapic_info(m); 336 MP_ioapic_info(m);
357#endif 337#endif
358 mpt += sizeof(struct mpc_config_ioapic); 338 mpt += sizeof(struct mpc_ioapic);
359 count += sizeof(struct mpc_config_ioapic); 339 count += sizeof(struct mpc_ioapic);
360 break; 340 break;
361 } 341 }
362 case MP_INTSRC: 342 case MP_INTSRC:
363 { 343 {
364#ifdef CONFIG_X86_IO_APIC 344#ifdef CONFIG_X86_IO_APIC
365 struct mpc_config_intsrc *m = 345 struct mpc_intsrc *m = (struct mpc_intsrc *)mpt;
366 (struct mpc_config_intsrc *)mpt;
367 346
368 MP_intsrc_info(m); 347 MP_intsrc_info(m);
369#endif 348#endif
370 mpt += sizeof(struct mpc_config_intsrc); 349 mpt += sizeof(struct mpc_intsrc);
371 count += sizeof(struct mpc_config_intsrc); 350 count += sizeof(struct mpc_intsrc);
372 break; 351 break;
373 } 352 }
374 case MP_LINTSRC: 353 case MP_LINTSRC:
375 { 354 {
376 struct mpc_config_lintsrc *m = 355 struct mpc_lintsrc *m =
377 (struct mpc_config_lintsrc *)mpt; 356 (struct mpc_lintsrc *)mpt;
378 MP_lintsrc_info(m); 357 MP_lintsrc_info(m);
379 mpt += sizeof(*m); 358 mpt += sizeof(*m);
380 count += sizeof(*m); 359 count += sizeof(*m);
@@ -385,21 +364,21 @@ static int __init smp_read_mpc(struct mp_config_table *mpc, unsigned early)
385 printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n"); 364 printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n");
386 printk(KERN_ERR "type %x\n", *mpt); 365 printk(KERN_ERR "type %x\n", *mpt);
387 print_hex_dump(KERN_ERR, " ", DUMP_PREFIX_ADDRESS, 16, 366 print_hex_dump(KERN_ERR, " ", DUMP_PREFIX_ADDRESS, 16,
388 1, mpc, mpc->mpc_length, 1); 367 1, mpc, mpc->length, 1);
389 count = mpc->mpc_length; 368 count = mpc->length;
390 break; 369 break;
391 } 370 }
392 if (x86_quirks->mpc_record) 371 if (x86_quirks->mpc_record)
393 (*x86_quirks->mpc_record)++; 372 (*x86_quirks->mpc_record)++;
394 } 373 }
395 374
396#ifdef CONFIG_X86_GENERICARCH 375#ifdef CONFIG_X86_BIGSMP
397 generic_bigsmp_probe(); 376 generic_bigsmp_probe();
398#endif 377#endif
399 378
400#ifdef CONFIG_X86_32 379 if (apic->setup_apic_routing)
401 setup_apic_routing(); 380 apic->setup_apic_routing();
402#endif 381
403 if (!num_processors) 382 if (!num_processors)
404 printk(KERN_ERR "MPTABLE: no processors registered!\n"); 383 printk(KERN_ERR "MPTABLE: no processors registered!\n");
405 return num_processors; 384 return num_processors;
@@ -417,16 +396,16 @@ static int __init ELCR_trigger(unsigned int irq)
417 396
418static void __init construct_default_ioirq_mptable(int mpc_default_type) 397static void __init construct_default_ioirq_mptable(int mpc_default_type)
419{ 398{
420 struct mpc_config_intsrc intsrc; 399 struct mpc_intsrc intsrc;
421 int i; 400 int i;
422 int ELCR_fallback = 0; 401 int ELCR_fallback = 0;
423 402
424 intsrc.mpc_type = MP_INTSRC; 403 intsrc.type = MP_INTSRC;
425 intsrc.mpc_irqflag = 0; /* conforming */ 404 intsrc.irqflag = 0; /* conforming */
426 intsrc.mpc_srcbus = 0; 405 intsrc.srcbus = 0;
427 intsrc.mpc_dstapic = mp_ioapics[0].mp_apicid; 406 intsrc.dstapic = mp_ioapics[0].apicid;
428 407
429 intsrc.mpc_irqtype = mp_INT; 408 intsrc.irqtype = mp_INT;
430 409
431 /* 410 /*
432 * If true, we have an ISA/PCI system with no IRQ entries 411 * If true, we have an ISA/PCI system with no IRQ entries
@@ -469,30 +448,30 @@ static void __init construct_default_ioirq_mptable(int mpc_default_type)
469 * irqflag field (level sensitive, active high polarity). 448 * irqflag field (level sensitive, active high polarity).
470 */ 449 */
471 if (ELCR_trigger(i)) 450 if (ELCR_trigger(i))
472 intsrc.mpc_irqflag = 13; 451 intsrc.irqflag = 13;
473 else 452 else
474 intsrc.mpc_irqflag = 0; 453 intsrc.irqflag = 0;
475 } 454 }
476 455
477 intsrc.mpc_srcbusirq = i; 456 intsrc.srcbusirq = i;
478 intsrc.mpc_dstirq = i ? i : 2; /* IRQ0 to INTIN2 */ 457 intsrc.dstirq = i ? i : 2; /* IRQ0 to INTIN2 */
479 MP_intsrc_info(&intsrc); 458 MP_intsrc_info(&intsrc);
480 } 459 }
481 460
482 intsrc.mpc_irqtype = mp_ExtINT; 461 intsrc.irqtype = mp_ExtINT;
483 intsrc.mpc_srcbusirq = 0; 462 intsrc.srcbusirq = 0;
484 intsrc.mpc_dstirq = 0; /* 8259A to INTIN0 */ 463 intsrc.dstirq = 0; /* 8259A to INTIN0 */
485 MP_intsrc_info(&intsrc); 464 MP_intsrc_info(&intsrc);
486} 465}
487 466
488 467
489static void __init construct_ioapic_table(int mpc_default_type) 468static void __init construct_ioapic_table(int mpc_default_type)
490{ 469{
491 struct mpc_config_ioapic ioapic; 470 struct mpc_ioapic ioapic;
492 struct mpc_config_bus bus; 471 struct mpc_bus bus;
493 472
494 bus.mpc_type = MP_BUS; 473 bus.type = MP_BUS;
495 bus.mpc_busid = 0; 474 bus.busid = 0;
496 switch (mpc_default_type) { 475 switch (mpc_default_type) {
497 default: 476 default:
498 printk(KERN_ERR "???\nUnknown standard configuration %d\n", 477 printk(KERN_ERR "???\nUnknown standard configuration %d\n",
@@ -500,29 +479,29 @@ static void __init construct_ioapic_table(int mpc_default_type)
500 /* fall through */ 479 /* fall through */
501 case 1: 480 case 1:
502 case 5: 481 case 5:
503 memcpy(bus.mpc_bustype, "ISA ", 6); 482 memcpy(bus.bustype, "ISA ", 6);
504 break; 483 break;
505 case 2: 484 case 2:
506 case 6: 485 case 6:
507 case 3: 486 case 3:
508 memcpy(bus.mpc_bustype, "EISA ", 6); 487 memcpy(bus.bustype, "EISA ", 6);
509 break; 488 break;
510 case 4: 489 case 4:
511 case 7: 490 case 7:
512 memcpy(bus.mpc_bustype, "MCA ", 6); 491 memcpy(bus.bustype, "MCA ", 6);
513 } 492 }
514 MP_bus_info(&bus); 493 MP_bus_info(&bus);
515 if (mpc_default_type > 4) { 494 if (mpc_default_type > 4) {
516 bus.mpc_busid = 1; 495 bus.busid = 1;
517 memcpy(bus.mpc_bustype, "PCI ", 6); 496 memcpy(bus.bustype, "PCI ", 6);
518 MP_bus_info(&bus); 497 MP_bus_info(&bus);
519 } 498 }
520 499
521 ioapic.mpc_type = MP_IOAPIC; 500 ioapic.type = MP_IOAPIC;
522 ioapic.mpc_apicid = 2; 501 ioapic.apicid = 2;
523 ioapic.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01; 502 ioapic.apicver = mpc_default_type > 4 ? 0x10 : 0x01;
524 ioapic.mpc_flags = MPC_APIC_USABLE; 503 ioapic.flags = MPC_APIC_USABLE;
525 ioapic.mpc_apicaddr = 0xFEC00000; 504 ioapic.apicaddr = 0xFEC00000;
526 MP_ioapic_info(&ioapic); 505 MP_ioapic_info(&ioapic);
527 506
528 /* 507 /*
@@ -536,8 +515,8 @@ static inline void __init construct_ioapic_table(int mpc_default_type) { }
536 515
537static inline void __init construct_default_ISA_mptable(int mpc_default_type) 516static inline void __init construct_default_ISA_mptable(int mpc_default_type)
538{ 517{
539 struct mpc_config_processor processor; 518 struct mpc_cpu processor;
540 struct mpc_config_lintsrc lintsrc; 519 struct mpc_lintsrc lintsrc;
541 int linttypes[2] = { mp_ExtINT, mp_NMI }; 520 int linttypes[2] = { mp_ExtINT, mp_NMI };
542 int i; 521 int i;
543 522
@@ -549,42 +528,42 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
549 /* 528 /*
550 * 2 CPUs, numbered 0 & 1. 529 * 2 CPUs, numbered 0 & 1.
551 */ 530 */
552 processor.mpc_type = MP_PROCESSOR; 531 processor.type = MP_PROCESSOR;
553 /* Either an integrated APIC or a discrete 82489DX. */ 532 /* Either an integrated APIC or a discrete 82489DX. */
554 processor.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01; 533 processor.apicver = mpc_default_type > 4 ? 0x10 : 0x01;
555 processor.mpc_cpuflag = CPU_ENABLED; 534 processor.cpuflag = CPU_ENABLED;
556 processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) | 535 processor.cpufeature = (boot_cpu_data.x86 << 8) |
557 (boot_cpu_data.x86_model << 4) | boot_cpu_data.x86_mask; 536 (boot_cpu_data.x86_model << 4) | boot_cpu_data.x86_mask;
558 processor.mpc_featureflag = boot_cpu_data.x86_capability[0]; 537 processor.featureflag = boot_cpu_data.x86_capability[0];
559 processor.mpc_reserved[0] = 0; 538 processor.reserved[0] = 0;
560 processor.mpc_reserved[1] = 0; 539 processor.reserved[1] = 0;
561 for (i = 0; i < 2; i++) { 540 for (i = 0; i < 2; i++) {
562 processor.mpc_apicid = i; 541 processor.apicid = i;
563 MP_processor_info(&processor); 542 MP_processor_info(&processor);
564 } 543 }
565 544
566 construct_ioapic_table(mpc_default_type); 545 construct_ioapic_table(mpc_default_type);
567 546
568 lintsrc.mpc_type = MP_LINTSRC; 547 lintsrc.type = MP_LINTSRC;
569 lintsrc.mpc_irqflag = 0; /* conforming */ 548 lintsrc.irqflag = 0; /* conforming */
570 lintsrc.mpc_srcbusid = 0; 549 lintsrc.srcbusid = 0;
571 lintsrc.mpc_srcbusirq = 0; 550 lintsrc.srcbusirq = 0;
572 lintsrc.mpc_destapic = MP_APIC_ALL; 551 lintsrc.destapic = MP_APIC_ALL;
573 for (i = 0; i < 2; i++) { 552 for (i = 0; i < 2; i++) {
574 lintsrc.mpc_irqtype = linttypes[i]; 553 lintsrc.irqtype = linttypes[i];
575 lintsrc.mpc_destapiclint = i; 554 lintsrc.destapiclint = i;
576 MP_lintsrc_info(&lintsrc); 555 MP_lintsrc_info(&lintsrc);
577 } 556 }
578} 557}
579 558
580static struct intel_mp_floating *mpf_found; 559static struct mpf_intel *mpf_found;
581 560
582/* 561/*
583 * Scan the memory blocks for an SMP configuration block. 562 * Scan the memory blocks for an SMP configuration block.
584 */ 563 */
585static void __init __get_smp_config(unsigned int early) 564static void __init __get_smp_config(unsigned int early)
586{ 565{
587 struct intel_mp_floating *mpf = mpf_found; 566 struct mpf_intel *mpf = mpf_found;
588 567
589 if (!mpf) 568 if (!mpf)
590 return; 569 return;
@@ -605,9 +584,9 @@ static void __init __get_smp_config(unsigned int early)
605 } 584 }
606 585
607 printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n", 586 printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n",
608 mpf->mpf_specification); 587 mpf->specification);
609#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32) 588#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32)
610 if (mpf->mpf_feature2 & (1 << 7)) { 589 if (mpf->feature2 & (1 << 7)) {
611 printk(KERN_INFO " IMCR and PIC compatibility mode.\n"); 590 printk(KERN_INFO " IMCR and PIC compatibility mode.\n");
612 pic_mode = 1; 591 pic_mode = 1;
613 } else { 592 } else {
@@ -618,7 +597,7 @@ static void __init __get_smp_config(unsigned int early)
618 /* 597 /*
619 * Now see if we need to read further. 598 * Now see if we need to read further.
620 */ 599 */
621 if (mpf->mpf_feature1 != 0) { 600 if (mpf->feature1 != 0) {
622 if (early) { 601 if (early) {
623 /* 602 /*
624 * local APIC has default address 603 * local APIC has default address
@@ -628,16 +607,16 @@ static void __init __get_smp_config(unsigned int early)
628 } 607 }
629 608
630 printk(KERN_INFO "Default MP configuration #%d\n", 609 printk(KERN_INFO "Default MP configuration #%d\n",
631 mpf->mpf_feature1); 610 mpf->feature1);
632 construct_default_ISA_mptable(mpf->mpf_feature1); 611 construct_default_ISA_mptable(mpf->feature1);
633 612
634 } else if (mpf->mpf_physptr) { 613 } else if (mpf->physptr) {
635 614
636 /* 615 /*
637 * Read the physical hardware table. Anything here will 616 * Read the physical hardware table. Anything here will
638 * override the defaults. 617 * override the defaults.
639 */ 618 */
640 if (!smp_read_mpc(phys_to_virt(mpf->mpf_physptr), early)) { 619 if (!smp_read_mpc(phys_to_virt(mpf->physptr), early)) {
641#ifdef CONFIG_X86_LOCAL_APIC 620#ifdef CONFIG_X86_LOCAL_APIC
642 smp_found_config = 0; 621 smp_found_config = 0;
643#endif 622#endif
@@ -657,15 +636,15 @@ static void __init __get_smp_config(unsigned int early)
657 * ISA defaults and hope it will work. 636 * ISA defaults and hope it will work.
658 */ 637 */
659 if (!mp_irq_entries) { 638 if (!mp_irq_entries) {
660 struct mpc_config_bus bus; 639 struct mpc_bus bus;
661 640
662 printk(KERN_ERR "BIOS bug, no explicit IRQ entries, " 641 printk(KERN_ERR "BIOS bug, no explicit IRQ entries, "
663 "using default mptable. " 642 "using default mptable. "
664 "(tell your hw vendor)\n"); 643 "(tell your hw vendor)\n");
665 644
666 bus.mpc_type = MP_BUS; 645 bus.type = MP_BUS;
667 bus.mpc_busid = 0; 646 bus.busid = 0;
668 memcpy(bus.mpc_bustype, "ISA ", 6); 647 memcpy(bus.bustype, "ISA ", 6);
669 MP_bus_info(&bus); 648 MP_bus_info(&bus);
670 649
671 construct_default_ioirq_mptable(0); 650 construct_default_ioirq_mptable(0);
@@ -695,32 +674,32 @@ static int __init smp_scan_config(unsigned long base, unsigned long length,
695 unsigned reserve) 674 unsigned reserve)
696{ 675{
697 unsigned int *bp = phys_to_virt(base); 676 unsigned int *bp = phys_to_virt(base);
698 struct intel_mp_floating *mpf; 677 struct mpf_intel *mpf;
699 678
700 apic_printk(APIC_VERBOSE, "Scan SMP from %p for %ld bytes.\n", 679 apic_printk(APIC_VERBOSE, "Scan SMP from %p for %ld bytes.\n",
701 bp, length); 680 bp, length);
702 BUILD_BUG_ON(sizeof(*mpf) != 16); 681 BUILD_BUG_ON(sizeof(*mpf) != 16);
703 682
704 while (length > 0) { 683 while (length > 0) {
705 mpf = (struct intel_mp_floating *)bp; 684 mpf = (struct mpf_intel *)bp;
706 if ((*bp == SMP_MAGIC_IDENT) && 685 if ((*bp == SMP_MAGIC_IDENT) &&
707 (mpf->mpf_length == 1) && 686 (mpf->length == 1) &&
708 !mpf_checksum((unsigned char *)bp, 16) && 687 !mpf_checksum((unsigned char *)bp, 16) &&
709 ((mpf->mpf_specification == 1) 688 ((mpf->specification == 1)
710 || (mpf->mpf_specification == 4))) { 689 || (mpf->specification == 4))) {
711#ifdef CONFIG_X86_LOCAL_APIC 690#ifdef CONFIG_X86_LOCAL_APIC
712 smp_found_config = 1; 691 smp_found_config = 1;
713#endif 692#endif
714 mpf_found = mpf; 693 mpf_found = mpf;
715 694
716 printk(KERN_INFO "found SMP MP-table at [%p] %08lx\n", 695 printk(KERN_INFO "found SMP MP-table at [%p] %llx\n",
717 mpf, virt_to_phys(mpf)); 696 mpf, (u64)virt_to_phys(mpf));
718 697
719 if (!reserve) 698 if (!reserve)
720 return 1; 699 return 1;
721 reserve_bootmem_generic(virt_to_phys(mpf), PAGE_SIZE, 700 reserve_bootmem_generic(virt_to_phys(mpf), PAGE_SIZE,
722 BOOTMEM_DEFAULT); 701 BOOTMEM_DEFAULT);
723 if (mpf->mpf_physptr) { 702 if (mpf->physptr) {
724 unsigned long size = PAGE_SIZE; 703 unsigned long size = PAGE_SIZE;
725#ifdef CONFIG_X86_32 704#ifdef CONFIG_X86_32
726 /* 705 /*
@@ -729,15 +708,24 @@ static int __init smp_scan_config(unsigned long base, unsigned long length,
729 * the bottom is mapped now. 708 * the bottom is mapped now.
730 * PC-9800's MPC table places on the very last 709 * PC-9800's MPC table places on the very last
731 * of physical memory; so that simply reserving 710 * of physical memory; so that simply reserving
732 * PAGE_SIZE from mpg->mpf_physptr yields BUG() 711 * PAGE_SIZE from mpf->physptr yields BUG()
733 * in reserve_bootmem. 712 * in reserve_bootmem.
713 * also need to make sure physptr is below than
714 * max_low_pfn
715 * we don't need reserve the area above max_low_pfn
734 */ 716 */
735 unsigned long end = max_low_pfn * PAGE_SIZE; 717 unsigned long end = max_low_pfn * PAGE_SIZE;
736 if (mpf->mpf_physptr + size > end) 718
737 size = end - mpf->mpf_physptr; 719 if (mpf->physptr < end) {
738#endif 720 if (mpf->physptr + size > end)
739 reserve_bootmem_generic(mpf->mpf_physptr, size, 721 size = end - mpf->physptr;
722 reserve_bootmem_generic(mpf->physptr, size,
723 BOOTMEM_DEFAULT);
724 }
725#else
726 reserve_bootmem_generic(mpf->physptr, size,
740 BOOTMEM_DEFAULT); 727 BOOTMEM_DEFAULT);
728#endif
741 } 729 }
742 730
743 return 1; 731 return 1;
@@ -803,28 +791,28 @@ void __init find_smp_config(void)
803#ifdef CONFIG_X86_IO_APIC 791#ifdef CONFIG_X86_IO_APIC
804static u8 __initdata irq_used[MAX_IRQ_SOURCES]; 792static u8 __initdata irq_used[MAX_IRQ_SOURCES];
805 793
806static int __init get_MP_intsrc_index(struct mpc_config_intsrc *m) 794static int __init get_MP_intsrc_index(struct mpc_intsrc *m)
807{ 795{
808 int i; 796 int i;
809 797
810 if (m->mpc_irqtype != mp_INT) 798 if (m->irqtype != mp_INT)
811 return 0; 799 return 0;
812 800
813 if (m->mpc_irqflag != 0x0f) 801 if (m->irqflag != 0x0f)
814 return 0; 802 return 0;
815 803
816 /* not legacy */ 804 /* not legacy */
817 805
818 for (i = 0; i < mp_irq_entries; i++) { 806 for (i = 0; i < mp_irq_entries; i++) {
819 if (mp_irqs[i].mp_irqtype != mp_INT) 807 if (mp_irqs[i].irqtype != mp_INT)
820 continue; 808 continue;
821 809
822 if (mp_irqs[i].mp_irqflag != 0x0f) 810 if (mp_irqs[i].irqflag != 0x0f)
823 continue; 811 continue;
824 812
825 if (mp_irqs[i].mp_srcbus != m->mpc_srcbus) 813 if (mp_irqs[i].srcbus != m->srcbus)
826 continue; 814 continue;
827 if (mp_irqs[i].mp_srcbusirq != m->mpc_srcbusirq) 815 if (mp_irqs[i].srcbusirq != m->srcbusirq)
828 continue; 816 continue;
829 if (irq_used[i]) { 817 if (irq_used[i]) {
830 /* already claimed */ 818 /* already claimed */
@@ -840,10 +828,10 @@ static int __init get_MP_intsrc_index(struct mpc_config_intsrc *m)
840 828
841#define SPARE_SLOT_NUM 20 829#define SPARE_SLOT_NUM 20
842 830
843static struct mpc_config_intsrc __initdata *m_spare[SPARE_SLOT_NUM]; 831static struct mpc_intsrc __initdata *m_spare[SPARE_SLOT_NUM];
844#endif 832#endif
845 833
846static int __init replace_intsrc_all(struct mp_config_table *mpc, 834static int __init replace_intsrc_all(struct mpc_table *mpc,
847 unsigned long mpc_new_phys, 835 unsigned long mpc_new_phys,
848 unsigned long mpc_new_length) 836 unsigned long mpc_new_length)
849{ 837{
@@ -855,36 +843,33 @@ static int __init replace_intsrc_all(struct mp_config_table *mpc,
855 int count = sizeof(*mpc); 843 int count = sizeof(*mpc);
856 unsigned char *mpt = ((unsigned char *)mpc) + count; 844 unsigned char *mpt = ((unsigned char *)mpc) + count;
857 845
858 printk(KERN_INFO "mpc_length %x\n", mpc->mpc_length); 846 printk(KERN_INFO "mpc_length %x\n", mpc->length);
859 while (count < mpc->mpc_length) { 847 while (count < mpc->length) {
860 switch (*mpt) { 848 switch (*mpt) {
861 case MP_PROCESSOR: 849 case MP_PROCESSOR:
862 { 850 {
863 struct mpc_config_processor *m = 851 struct mpc_cpu *m = (struct mpc_cpu *)mpt;
864 (struct mpc_config_processor *)mpt;
865 mpt += sizeof(*m); 852 mpt += sizeof(*m);
866 count += sizeof(*m); 853 count += sizeof(*m);
867 break; 854 break;
868 } 855 }
869 case MP_BUS: 856 case MP_BUS:
870 { 857 {
871 struct mpc_config_bus *m = 858 struct mpc_bus *m = (struct mpc_bus *)mpt;
872 (struct mpc_config_bus *)mpt;
873 mpt += sizeof(*m); 859 mpt += sizeof(*m);
874 count += sizeof(*m); 860 count += sizeof(*m);
875 break; 861 break;
876 } 862 }
877 case MP_IOAPIC: 863 case MP_IOAPIC:
878 { 864 {
879 mpt += sizeof(struct mpc_config_ioapic); 865 mpt += sizeof(struct mpc_ioapic);
880 count += sizeof(struct mpc_config_ioapic); 866 count += sizeof(struct mpc_ioapic);
881 break; 867 break;
882 } 868 }
883 case MP_INTSRC: 869 case MP_INTSRC:
884 { 870 {
885#ifdef CONFIG_X86_IO_APIC 871#ifdef CONFIG_X86_IO_APIC
886 struct mpc_config_intsrc *m = 872 struct mpc_intsrc *m = (struct mpc_intsrc *)mpt;
887 (struct mpc_config_intsrc *)mpt;
888 873
889 printk(KERN_INFO "OLD "); 874 printk(KERN_INFO "OLD ");
890 print_MP_intsrc_info(m); 875 print_MP_intsrc_info(m);
@@ -905,14 +890,14 @@ static int __init replace_intsrc_all(struct mp_config_table *mpc,
905 nr_m_spare++; 890 nr_m_spare++;
906 } 891 }
907#endif 892#endif
908 mpt += sizeof(struct mpc_config_intsrc); 893 mpt += sizeof(struct mpc_intsrc);
909 count += sizeof(struct mpc_config_intsrc); 894 count += sizeof(struct mpc_intsrc);
910 break; 895 break;
911 } 896 }
912 case MP_LINTSRC: 897 case MP_LINTSRC:
913 { 898 {
914 struct mpc_config_lintsrc *m = 899 struct mpc_lintsrc *m =
915 (struct mpc_config_lintsrc *)mpt; 900 (struct mpc_lintsrc *)mpt;
916 mpt += sizeof(*m); 901 mpt += sizeof(*m);
917 count += sizeof(*m); 902 count += sizeof(*m);
918 break; 903 break;
@@ -922,7 +907,7 @@ static int __init replace_intsrc_all(struct mp_config_table *mpc,
922 printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n"); 907 printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n");
923 printk(KERN_ERR "type %x\n", *mpt); 908 printk(KERN_ERR "type %x\n", *mpt);
924 print_hex_dump(KERN_ERR, " ", DUMP_PREFIX_ADDRESS, 16, 909 print_hex_dump(KERN_ERR, " ", DUMP_PREFIX_ADDRESS, 16,
925 1, mpc, mpc->mpc_length, 1); 910 1, mpc, mpc->length, 1);
926 goto out; 911 goto out;
927 } 912 }
928 } 913 }
@@ -932,10 +917,10 @@ static int __init replace_intsrc_all(struct mp_config_table *mpc,
932 if (irq_used[i]) 917 if (irq_used[i])
933 continue; 918 continue;
934 919
935 if (mp_irqs[i].mp_irqtype != mp_INT) 920 if (mp_irqs[i].irqtype != mp_INT)
936 continue; 921 continue;
937 922
938 if (mp_irqs[i].mp_irqflag != 0x0f) 923 if (mp_irqs[i].irqflag != 0x0f)
939 continue; 924 continue;
940 925
941 if (nr_m_spare > 0) { 926 if (nr_m_spare > 0) {
@@ -944,9 +929,8 @@ static int __init replace_intsrc_all(struct mp_config_table *mpc,
944 assign_to_mpc_intsrc(&mp_irqs[i], m_spare[nr_m_spare]); 929 assign_to_mpc_intsrc(&mp_irqs[i], m_spare[nr_m_spare]);
945 m_spare[nr_m_spare] = NULL; 930 m_spare[nr_m_spare] = NULL;
946 } else { 931 } else {
947 struct mpc_config_intsrc *m = 932 struct mpc_intsrc *m = (struct mpc_intsrc *)mpt;
948 (struct mpc_config_intsrc *)mpt; 933 count += sizeof(struct mpc_intsrc);
949 count += sizeof(struct mpc_config_intsrc);
950 if (!mpc_new_phys) { 934 if (!mpc_new_phys) {
951 printk(KERN_INFO "No spare slots, try to append...take your risk, new mpc_length %x\n", count); 935 printk(KERN_INFO "No spare slots, try to append...take your risk, new mpc_length %x\n", count);
952 } else { 936 } else {
@@ -958,17 +942,16 @@ static int __init replace_intsrc_all(struct mp_config_table *mpc,
958 } 942 }
959 } 943 }
960 assign_to_mpc_intsrc(&mp_irqs[i], m); 944 assign_to_mpc_intsrc(&mp_irqs[i], m);
961 mpc->mpc_length = count; 945 mpc->length = count;
962 mpt += sizeof(struct mpc_config_intsrc); 946 mpt += sizeof(struct mpc_intsrc);
963 } 947 }
964 print_mp_irq_info(&mp_irqs[i]); 948 print_mp_irq_info(&mp_irqs[i]);
965 } 949 }
966#endif 950#endif
967out: 951out:
968 /* update checksum */ 952 /* update checksum */
969 mpc->mpc_checksum = 0; 953 mpc->checksum = 0;
970 mpc->mpc_checksum -= mpf_checksum((unsigned char *)mpc, 954 mpc->checksum -= mpf_checksum((unsigned char *)mpc, mpc->length);
971 mpc->mpc_length);
972 955
973 return 0; 956 return 0;
974} 957}
@@ -1013,9 +996,8 @@ static int __init update_mp_table(void)
1013{ 996{
1014 char str[16]; 997 char str[16];
1015 char oem[10]; 998 char oem[10];
1016 struct intel_mp_floating *mpf; 999 struct mpf_intel *mpf;
1017 struct mp_config_table *mpc; 1000 struct mpc_table *mpc, *mpc_new;
1018 struct mp_config_table *mpc_new;
1019 1001
1020 if (!enable_update_mptable) 1002 if (!enable_update_mptable)
1021 return 0; 1003 return 0;
@@ -1027,21 +1009,21 @@ static int __init update_mp_table(void)
1027 /* 1009 /*
1028 * Now see if we need to go further. 1010 * Now see if we need to go further.
1029 */ 1011 */
1030 if (mpf->mpf_feature1 != 0) 1012 if (mpf->feature1 != 0)
1031 return 0; 1013 return 0;
1032 1014
1033 if (!mpf->mpf_physptr) 1015 if (!mpf->physptr)
1034 return 0; 1016 return 0;
1035 1017
1036 mpc = phys_to_virt(mpf->mpf_physptr); 1018 mpc = phys_to_virt(mpf->physptr);
1037 1019
1038 if (!smp_check_mpc(mpc, oem, str)) 1020 if (!smp_check_mpc(mpc, oem, str))
1039 return 0; 1021 return 0;
1040 1022
1041 printk(KERN_INFO "mpf: %lx\n", virt_to_phys(mpf)); 1023 printk(KERN_INFO "mpf: %llx\n", (u64)virt_to_phys(mpf));
1042 printk(KERN_INFO "mpf_physptr: %x\n", mpf->mpf_physptr); 1024 printk(KERN_INFO "physptr: %x\n", mpf->physptr);
1043 1025
1044 if (mpc_new_phys && mpc->mpc_length > mpc_new_length) { 1026 if (mpc_new_phys && mpc->length > mpc_new_length) {
1045 mpc_new_phys = 0; 1027 mpc_new_phys = 0;
1046 printk(KERN_INFO "mpc_new_length is %ld, please use alloc_mptable=8k\n", 1028 printk(KERN_INFO "mpc_new_length is %ld, please use alloc_mptable=8k\n",
1047 mpc_new_length); 1029 mpc_new_length);
@@ -1050,33 +1032,33 @@ static int __init update_mp_table(void)
1050 if (!mpc_new_phys) { 1032 if (!mpc_new_phys) {
1051 unsigned char old, new; 1033 unsigned char old, new;
1052 /* check if we can change the postion */ 1034 /* check if we can change the postion */
1053 mpc->mpc_checksum = 0; 1035 mpc->checksum = 0;
1054 old = mpf_checksum((unsigned char *)mpc, mpc->mpc_length); 1036 old = mpf_checksum((unsigned char *)mpc, mpc->length);
1055 mpc->mpc_checksum = 0xff; 1037 mpc->checksum = 0xff;
1056 new = mpf_checksum((unsigned char *)mpc, mpc->mpc_length); 1038 new = mpf_checksum((unsigned char *)mpc, mpc->length);
1057 if (old == new) { 1039 if (old == new) {
1058 printk(KERN_INFO "mpc is readonly, please try alloc_mptable instead\n"); 1040 printk(KERN_INFO "mpc is readonly, please try alloc_mptable instead\n");
1059 return 0; 1041 return 0;
1060 } 1042 }
1061 printk(KERN_INFO "use in-positon replacing\n"); 1043 printk(KERN_INFO "use in-positon replacing\n");
1062 } else { 1044 } else {
1063 mpf->mpf_physptr = mpc_new_phys; 1045 mpf->physptr = mpc_new_phys;
1064 mpc_new = phys_to_virt(mpc_new_phys); 1046 mpc_new = phys_to_virt(mpc_new_phys);
1065 memcpy(mpc_new, mpc, mpc->mpc_length); 1047 memcpy(mpc_new, mpc, mpc->length);
1066 mpc = mpc_new; 1048 mpc = mpc_new;
1067 /* check if we can modify that */ 1049 /* check if we can modify that */
1068 if (mpc_new_phys - mpf->mpf_physptr) { 1050 if (mpc_new_phys - mpf->physptr) {
1069 struct intel_mp_floating *mpf_new; 1051 struct mpf_intel *mpf_new;
1070 /* steal 16 bytes from [0, 1k) */ 1052 /* steal 16 bytes from [0, 1k) */
1071 printk(KERN_INFO "mpf new: %x\n", 0x400 - 16); 1053 printk(KERN_INFO "mpf new: %x\n", 0x400 - 16);
1072 mpf_new = phys_to_virt(0x400 - 16); 1054 mpf_new = phys_to_virt(0x400 - 16);
1073 memcpy(mpf_new, mpf, 16); 1055 memcpy(mpf_new, mpf, 16);
1074 mpf = mpf_new; 1056 mpf = mpf_new;
1075 mpf->mpf_physptr = mpc_new_phys; 1057 mpf->physptr = mpc_new_phys;
1076 } 1058 }
1077 mpf->mpf_checksum = 0; 1059 mpf->checksum = 0;
1078 mpf->mpf_checksum -= mpf_checksum((unsigned char *)mpf, 16); 1060 mpf->checksum -= mpf_checksum((unsigned char *)mpf, 16);
1079 printk(KERN_INFO "mpf_physptr new: %x\n", mpf->mpf_physptr); 1061 printk(KERN_INFO "physptr new: %x\n", mpf->physptr);
1080 } 1062 }
1081 1063
1082 /* 1064 /*
diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c
index 726266695b2c..3cf3413ec626 100644
--- a/arch/x86/kernel/msr.c
+++ b/arch/x86/kernel/msr.c
@@ -35,10 +35,10 @@
35#include <linux/device.h> 35#include <linux/device.h>
36#include <linux/cpu.h> 36#include <linux/cpu.h>
37#include <linux/notifier.h> 37#include <linux/notifier.h>
38#include <linux/uaccess.h>
38 39
39#include <asm/processor.h> 40#include <asm/processor.h>
40#include <asm/msr.h> 41#include <asm/msr.h>
41#include <asm/uaccess.h>
42#include <asm/system.h> 42#include <asm/system.h>
43 43
44static struct class *msr_class; 44static struct class *msr_class;
diff --git a/arch/x86/kernel/numaq_32.c b/arch/x86/kernel/numaq_32.c
deleted file mode 100644
index 0deea37a53cf..000000000000
--- a/arch/x86/kernel/numaq_32.c
+++ /dev/null
@@ -1,295 +0,0 @@
1/*
2 * Written by: Patricia Gaughen, IBM Corporation
3 *
4 * Copyright (C) 2002, IBM Corp.
5 *
6 * All rights reserved.
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, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
16 * NON INFRINGEMENT. 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 program; if not, write to the Free Software
21 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 *
23 * Send feedback to <gone@us.ibm.com>
24 */
25
26#include <linux/mm.h>
27#include <linux/bootmem.h>
28#include <linux/mmzone.h>
29#include <linux/module.h>
30#include <linux/nodemask.h>
31#include <asm/numaq.h>
32#include <asm/topology.h>
33#include <asm/processor.h>
34#include <asm/genapic.h>
35#include <asm/e820.h>
36#include <asm/setup.h>
37
38#define MB_TO_PAGES(addr) ((addr) << (20 - PAGE_SHIFT))
39
40/*
41 * Function: smp_dump_qct()
42 *
43 * Description: gets memory layout from the quad config table. This
44 * function also updates node_online_map with the nodes (quads) present.
45 */
46static void __init smp_dump_qct(void)
47{
48 int node;
49 struct eachquadmem *eq;
50 struct sys_cfg_data *scd =
51 (struct sys_cfg_data *)__va(SYS_CFG_DATA_PRIV_ADDR);
52
53 nodes_clear(node_online_map);
54 for_each_node(node) {
55 if (scd->quads_present31_0 & (1 << node)) {
56 node_set_online(node);
57 eq = &scd->eq[node];
58 /* Convert to pages */
59 node_start_pfn[node] = MB_TO_PAGES(
60 eq->hi_shrd_mem_start - eq->priv_mem_size);
61 node_end_pfn[node] = MB_TO_PAGES(
62 eq->hi_shrd_mem_start + eq->hi_shrd_mem_size);
63
64 e820_register_active_regions(node, node_start_pfn[node],
65 node_end_pfn[node]);
66 memory_present(node,
67 node_start_pfn[node], node_end_pfn[node]);
68 node_remap_size[node] = node_memmap_size_bytes(node,
69 node_start_pfn[node],
70 node_end_pfn[node]);
71 }
72 }
73}
74
75
76void __cpuinit numaq_tsc_disable(void)
77{
78 if (!found_numaq)
79 return;
80
81 if (num_online_nodes() > 1) {
82 printk(KERN_DEBUG "NUMAQ: disabling TSC\n");
83 setup_clear_cpu_cap(X86_FEATURE_TSC);
84 }
85}
86
87static int __init numaq_pre_time_init(void)
88{
89 numaq_tsc_disable();
90 return 0;
91}
92
93int found_numaq;
94/*
95 * Have to match translation table entries to main table entries by counter
96 * hence the mpc_record variable .... can't see a less disgusting way of
97 * doing this ....
98 */
99struct mpc_config_translation {
100 unsigned char mpc_type;
101 unsigned char trans_len;
102 unsigned char trans_type;
103 unsigned char trans_quad;
104 unsigned char trans_global;
105 unsigned char trans_local;
106 unsigned short trans_reserved;
107};
108
109/* x86_quirks member */
110static int mpc_record;
111static struct mpc_config_translation *translation_table[MAX_MPC_ENTRY]
112 __cpuinitdata;
113
114static inline int generate_logical_apicid(int quad, int phys_apicid)
115{
116 return (quad << 4) + (phys_apicid ? phys_apicid << 1 : 1);
117}
118
119/* x86_quirks member */
120static int mpc_apic_id(struct mpc_config_processor *m)
121{
122 int quad = translation_table[mpc_record]->trans_quad;
123 int logical_apicid = generate_logical_apicid(quad, m->mpc_apicid);
124
125 printk(KERN_DEBUG "Processor #%d %u:%u APIC version %d (quad %d, apic %d)\n",
126 m->mpc_apicid,
127 (m->mpc_cpufeature & CPU_FAMILY_MASK) >> 8,
128 (m->mpc_cpufeature & CPU_MODEL_MASK) >> 4,
129 m->mpc_apicver, quad, logical_apicid);
130 return logical_apicid;
131}
132
133int mp_bus_id_to_node[MAX_MP_BUSSES];
134
135int mp_bus_id_to_local[MAX_MP_BUSSES];
136
137/* x86_quirks member */
138static void mpc_oem_bus_info(struct mpc_config_bus *m, char *name)
139{
140 int quad = translation_table[mpc_record]->trans_quad;
141 int local = translation_table[mpc_record]->trans_local;
142
143 mp_bus_id_to_node[m->mpc_busid] = quad;
144 mp_bus_id_to_local[m->mpc_busid] = local;
145 printk(KERN_INFO "Bus #%d is %s (node %d)\n",
146 m->mpc_busid, name, quad);
147}
148
149int quad_local_to_mp_bus_id [NR_CPUS/4][4];
150
151/* x86_quirks member */
152static void mpc_oem_pci_bus(struct mpc_config_bus *m)
153{
154 int quad = translation_table[mpc_record]->trans_quad;
155 int local = translation_table[mpc_record]->trans_local;
156
157 quad_local_to_mp_bus_id[quad][local] = m->mpc_busid;
158}
159
160static void __init MP_translation_info(struct mpc_config_translation *m)
161{
162 printk(KERN_INFO
163 "Translation: record %d, type %d, quad %d, global %d, local %d\n",
164 mpc_record, m->trans_type, m->trans_quad, m->trans_global,
165 m->trans_local);
166
167 if (mpc_record >= MAX_MPC_ENTRY)
168 printk(KERN_ERR "MAX_MPC_ENTRY exceeded!\n");
169 else
170 translation_table[mpc_record] = m; /* stash this for later */
171 if (m->trans_quad < MAX_NUMNODES && !node_online(m->trans_quad))
172 node_set_online(m->trans_quad);
173}
174
175static int __init mpf_checksum(unsigned char *mp, int len)
176{
177 int sum = 0;
178
179 while (len--)
180 sum += *mp++;
181
182 return sum & 0xFF;
183}
184
185/*
186 * Read/parse the MPC oem tables
187 */
188
189static void __init smp_read_mpc_oem(struct mp_config_oemtable *oemtable,
190 unsigned short oemsize)
191{
192 int count = sizeof(*oemtable); /* the header size */
193 unsigned char *oemptr = ((unsigned char *)oemtable) + count;
194
195 mpc_record = 0;
196 printk(KERN_INFO "Found an OEM MPC table at %8p - parsing it ... \n",
197 oemtable);
198 if (memcmp(oemtable->oem_signature, MPC_OEM_SIGNATURE, 4)) {
199 printk(KERN_WARNING
200 "SMP mpc oemtable: bad signature [%c%c%c%c]!\n",
201 oemtable->oem_signature[0], oemtable->oem_signature[1],
202 oemtable->oem_signature[2], oemtable->oem_signature[3]);
203 return;
204 }
205 if (mpf_checksum((unsigned char *)oemtable, oemtable->oem_length)) {
206 printk(KERN_WARNING "SMP oem mptable: checksum error!\n");
207 return;
208 }
209 while (count < oemtable->oem_length) {
210 switch (*oemptr) {
211 case MP_TRANSLATION:
212 {
213 struct mpc_config_translation *m =
214 (struct mpc_config_translation *)oemptr;
215 MP_translation_info(m);
216 oemptr += sizeof(*m);
217 count += sizeof(*m);
218 ++mpc_record;
219 break;
220 }
221 default:
222 {
223 printk(KERN_WARNING
224 "Unrecognised OEM table entry type! - %d\n",
225 (int)*oemptr);
226 return;
227 }
228 }
229 }
230}
231
232static int __init numaq_setup_ioapic_ids(void)
233{
234 /* so can skip it */
235 return 1;
236}
237
238static int __init numaq_update_genapic(void)
239{
240 genapic->wakeup_cpu = wakeup_secondary_cpu_via_nmi;
241
242 return 0;
243}
244
245static struct x86_quirks numaq_x86_quirks __initdata = {
246 .arch_pre_time_init = numaq_pre_time_init,
247 .arch_time_init = NULL,
248 .arch_pre_intr_init = NULL,
249 .arch_memory_setup = NULL,
250 .arch_intr_init = NULL,
251 .arch_trap_init = NULL,
252 .mach_get_smp_config = NULL,
253 .mach_find_smp_config = NULL,
254 .mpc_record = &mpc_record,
255 .mpc_apic_id = mpc_apic_id,
256 .mpc_oem_bus_info = mpc_oem_bus_info,
257 .mpc_oem_pci_bus = mpc_oem_pci_bus,
258 .smp_read_mpc_oem = smp_read_mpc_oem,
259 .setup_ioapic_ids = numaq_setup_ioapic_ids,
260 .update_genapic = numaq_update_genapic,
261};
262
263void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem,
264 char *productid)
265{
266 if (strncmp(oem, "IBM NUMA", 8))
267 printk("Warning! Not a NUMA-Q system!\n");
268 else
269 found_numaq = 1;
270}
271
272static __init void early_check_numaq(void)
273{
274 /*
275 * Find possible boot-time SMP configuration:
276 */
277 early_find_smp_config();
278 /*
279 * get boot-time SMP configuration:
280 */
281 if (smp_found_config)
282 early_get_smp_config();
283
284 if (found_numaq)
285 x86_quirks = &numaq_x86_quirks;
286}
287
288int __init get_memcfg_numaq(void)
289{
290 early_check_numaq();
291 if (!found_numaq)
292 return 0;
293 smp_dump_qct();
294 return 1;
295}
diff --git a/arch/x86/kernel/olpc.c b/arch/x86/kernel/olpc.c
index 7a13fac63a1f..4006c522adc7 100644
--- a/arch/x86/kernel/olpc.c
+++ b/arch/x86/kernel/olpc.c
@@ -203,7 +203,7 @@ static void __init platform_detect(void)
203static void __init platform_detect(void) 203static void __init platform_detect(void)
204{ 204{
205 /* stopgap until OFW support is added to the kernel */ 205 /* stopgap until OFW support is added to the kernel */
206 olpc_platform_info.boardrev = 0xc2; 206 olpc_platform_info.boardrev = olpc_board(0xc2);
207} 207}
208#endif 208#endif
209 209
diff --git a/arch/x86/kernel/paravirt-spinlocks.c b/arch/x86/kernel/paravirt-spinlocks.c
index 95777b0faa73..3a7c5a44082e 100644
--- a/arch/x86/kernel/paravirt-spinlocks.c
+++ b/arch/x86/kernel/paravirt-spinlocks.c
@@ -26,13 +26,3 @@ struct pv_lock_ops pv_lock_ops = {
26}; 26};
27EXPORT_SYMBOL(pv_lock_ops); 27EXPORT_SYMBOL(pv_lock_ops);
28 28
29void __init paravirt_use_bytelocks(void)
30{
31#ifdef CONFIG_SMP
32 pv_lock_ops.spin_is_locked = __byte_spin_is_locked;
33 pv_lock_ops.spin_is_contended = __byte_spin_is_contended;
34 pv_lock_ops.spin_lock = __byte_spin_lock;
35 pv_lock_ops.spin_trylock = __byte_spin_trylock;
36 pv_lock_ops.spin_unlock = __byte_spin_unlock;
37#endif
38}
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index e4c8fb608873..63dd358d8ee1 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -28,7 +28,6 @@
28#include <asm/paravirt.h> 28#include <asm/paravirt.h>
29#include <asm/desc.h> 29#include <asm/desc.h>
30#include <asm/setup.h> 30#include <asm/setup.h>
31#include <asm/arch_hooks.h>
32#include <asm/pgtable.h> 31#include <asm/pgtable.h>
33#include <asm/time.h> 32#include <asm/time.h>
34#include <asm/pgalloc.h> 33#include <asm/pgalloc.h>
@@ -44,6 +43,17 @@ void _paravirt_nop(void)
44{ 43{
45} 44}
46 45
46/* identity function, which can be inlined */
47u32 _paravirt_ident_32(u32 x)
48{
49 return x;
50}
51
52u64 _paravirt_ident_64(u64 x)
53{
54 return x;
55}
56
47static void __init default_banner(void) 57static void __init default_banner(void)
48{ 58{
49 printk(KERN_INFO "Booting paravirtualized kernel on %s\n", 59 printk(KERN_INFO "Booting paravirtualized kernel on %s\n",
@@ -138,9 +148,16 @@ unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf,
138 if (opfunc == NULL) 148 if (opfunc == NULL)
139 /* If there's no function, patch it with a ud2a (BUG) */ 149 /* If there's no function, patch it with a ud2a (BUG) */
140 ret = paravirt_patch_insns(insnbuf, len, ud2a, ud2a+sizeof(ud2a)); 150 ret = paravirt_patch_insns(insnbuf, len, ud2a, ud2a+sizeof(ud2a));
141 else if (opfunc == paravirt_nop) 151 else if (opfunc == _paravirt_nop)
142 /* If the operation is a nop, then nop the callsite */ 152 /* If the operation is a nop, then nop the callsite */
143 ret = paravirt_patch_nop(); 153 ret = paravirt_patch_nop();
154
155 /* identity functions just return their single argument */
156 else if (opfunc == _paravirt_ident_32)
157 ret = paravirt_patch_ident_32(insnbuf, len);
158 else if (opfunc == _paravirt_ident_64)
159 ret = paravirt_patch_ident_64(insnbuf, len);
160
144 else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) || 161 else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) ||
145 type == PARAVIRT_PATCH(pv_cpu_ops.irq_enable_sysexit) || 162 type == PARAVIRT_PATCH(pv_cpu_ops.irq_enable_sysexit) ||
146 type == PARAVIRT_PATCH(pv_cpu_ops.usergs_sysret32) || 163 type == PARAVIRT_PATCH(pv_cpu_ops.usergs_sysret32) ||
@@ -268,6 +285,32 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
268 return __get_cpu_var(paravirt_lazy_mode); 285 return __get_cpu_var(paravirt_lazy_mode);
269} 286}
270 287
288void arch_flush_lazy_mmu_mode(void)
289{
290 preempt_disable();
291
292 if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) {
293 WARN_ON(preempt_count() == 1);
294 arch_leave_lazy_mmu_mode();
295 arch_enter_lazy_mmu_mode();
296 }
297
298 preempt_enable();
299}
300
301void arch_flush_lazy_cpu_mode(void)
302{
303 preempt_disable();
304
305 if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU) {
306 WARN_ON(preempt_count() == 1);
307 arch_leave_lazy_cpu_mode();
308 arch_enter_lazy_cpu_mode();
309 }
310
311 preempt_enable();
312}
313
271struct pv_info pv_info = { 314struct pv_info pv_info = {
272 .name = "bare hardware", 315 .name = "bare hardware",
273 .paravirt_enabled = 0, 316 .paravirt_enabled = 0,
@@ -292,10 +335,10 @@ struct pv_time_ops pv_time_ops = {
292 335
293struct pv_irq_ops pv_irq_ops = { 336struct pv_irq_ops pv_irq_ops = {
294 .init_IRQ = native_init_IRQ, 337 .init_IRQ = native_init_IRQ,
295 .save_fl = native_save_fl, 338 .save_fl = __PV_IS_CALLEE_SAVE(native_save_fl),
296 .restore_fl = native_restore_fl, 339 .restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl),
297 .irq_disable = native_irq_disable, 340 .irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable),
298 .irq_enable = native_irq_enable, 341 .irq_enable = __PV_IS_CALLEE_SAVE(native_irq_enable),
299 .safe_halt = native_safe_halt, 342 .safe_halt = native_safe_halt,
300 .halt = native_halt, 343 .halt = native_halt,
301#ifdef CONFIG_X86_64 344#ifdef CONFIG_X86_64
@@ -373,6 +416,14 @@ struct pv_apic_ops pv_apic_ops = {
373#endif 416#endif
374}; 417};
375 418
419#if defined(CONFIG_X86_32) && !defined(CONFIG_X86_PAE)
420/* 32-bit pagetable entries */
421#define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_32)
422#else
423/* 64-bit pagetable entries */
424#define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_64)
425#endif
426
376struct pv_mmu_ops pv_mmu_ops = { 427struct pv_mmu_ops pv_mmu_ops = {
377#ifndef CONFIG_X86_64 428#ifndef CONFIG_X86_64
378 .pagetable_setup_start = native_pagetable_setup_start, 429 .pagetable_setup_start = native_pagetable_setup_start,
@@ -424,22 +475,23 @@ struct pv_mmu_ops pv_mmu_ops = {
424 .pmd_clear = native_pmd_clear, 475 .pmd_clear = native_pmd_clear,
425#endif 476#endif
426 .set_pud = native_set_pud, 477 .set_pud = native_set_pud,
427 .pmd_val = native_pmd_val, 478
428 .make_pmd = native_make_pmd, 479 .pmd_val = PTE_IDENT,
480 .make_pmd = PTE_IDENT,
429 481
430#if PAGETABLE_LEVELS == 4 482#if PAGETABLE_LEVELS == 4
431 .pud_val = native_pud_val, 483 .pud_val = PTE_IDENT,
432 .make_pud = native_make_pud, 484 .make_pud = PTE_IDENT,
485
433 .set_pgd = native_set_pgd, 486 .set_pgd = native_set_pgd,
434#endif 487#endif
435#endif /* PAGETABLE_LEVELS >= 3 */ 488#endif /* PAGETABLE_LEVELS >= 3 */
436 489
437 .pte_val = native_pte_val, 490 .pte_val = PTE_IDENT,
438 .pte_flags = native_pte_flags, 491 .pgd_val = PTE_IDENT,
439 .pgd_val = native_pgd_val,
440 492
441 .make_pte = native_make_pte, 493 .make_pte = PTE_IDENT,
442 .make_pgd = native_make_pgd, 494 .make_pgd = PTE_IDENT,
443 495
444 .dup_mmap = paravirt_nop, 496 .dup_mmap = paravirt_nop,
445 .exit_mmap = paravirt_nop, 497 .exit_mmap = paravirt_nop,
diff --git a/arch/x86/kernel/paravirt_patch_32.c b/arch/x86/kernel/paravirt_patch_32.c
index 9fe644f4861d..d9f32e6d6ab6 100644
--- a/arch/x86/kernel/paravirt_patch_32.c
+++ b/arch/x86/kernel/paravirt_patch_32.c
@@ -12,6 +12,18 @@ DEF_NATIVE(pv_mmu_ops, read_cr3, "mov %cr3, %eax");
12DEF_NATIVE(pv_cpu_ops, clts, "clts"); 12DEF_NATIVE(pv_cpu_ops, clts, "clts");
13DEF_NATIVE(pv_cpu_ops, read_tsc, "rdtsc"); 13DEF_NATIVE(pv_cpu_ops, read_tsc, "rdtsc");
14 14
15unsigned paravirt_patch_ident_32(void *insnbuf, unsigned len)
16{
17 /* arg in %eax, return in %eax */
18 return 0;
19}
20
21unsigned paravirt_patch_ident_64(void *insnbuf, unsigned len)
22{
23 /* arg in %edx:%eax, return in %edx:%eax */
24 return 0;
25}
26
15unsigned native_patch(u8 type, u16 clobbers, void *ibuf, 27unsigned native_patch(u8 type, u16 clobbers, void *ibuf,
16 unsigned long addr, unsigned len) 28 unsigned long addr, unsigned len)
17{ 29{
diff --git a/arch/x86/kernel/paravirt_patch_64.c b/arch/x86/kernel/paravirt_patch_64.c
index 061d01df9ae6..3f08f34f93eb 100644
--- a/arch/x86/kernel/paravirt_patch_64.c
+++ b/arch/x86/kernel/paravirt_patch_64.c
@@ -19,6 +19,21 @@ DEF_NATIVE(pv_cpu_ops, usergs_sysret64, "swapgs; sysretq");
19DEF_NATIVE(pv_cpu_ops, usergs_sysret32, "swapgs; sysretl"); 19DEF_NATIVE(pv_cpu_ops, usergs_sysret32, "swapgs; sysretl");
20DEF_NATIVE(pv_cpu_ops, swapgs, "swapgs"); 20DEF_NATIVE(pv_cpu_ops, swapgs, "swapgs");
21 21
22DEF_NATIVE(, mov32, "mov %edi, %eax");
23DEF_NATIVE(, mov64, "mov %rdi, %rax");
24
25unsigned paravirt_patch_ident_32(void *insnbuf, unsigned len)
26{
27 return paravirt_patch_insns(insnbuf, len,
28 start__mov32, end__mov32);
29}
30
31unsigned paravirt_patch_ident_64(void *insnbuf, unsigned len)
32{
33 return paravirt_patch_insns(insnbuf, len,
34 start__mov64, end__mov64);
35}
36
22unsigned native_patch(u8 type, u16 clobbers, void *ibuf, 37unsigned native_patch(u8 type, u16 clobbers, void *ibuf,
23 unsigned long addr, unsigned len) 38 unsigned long addr, unsigned len)
24{ 39{
diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c
index 00c2bcd41463..d5768b1af080 100644
--- a/arch/x86/kernel/pci-gart_64.c
+++ b/arch/x86/kernel/pci-gart_64.c
@@ -5,7 +5,7 @@
5 * This allows to use PCI devices that only support 32bit addresses on systems 5 * This allows to use PCI devices that only support 32bit addresses on systems
6 * with more than 4GB. 6 * with more than 4GB.
7 * 7 *
8 * See Documentation/DMA-mapping.txt for the interface specification. 8 * See Documentation/PCI/PCI-DMA-mapping.txt for the interface specification.
9 * 9 *
10 * Copyright 2002 Andi Kleen, SuSE Labs. 10 * Copyright 2002 Andi Kleen, SuSE Labs.
11 * Subject to the GNU General Public License v2 only. 11 * Subject to the GNU General Public License v2 only.
diff --git a/arch/x86/kernel/probe_roms_32.c b/arch/x86/kernel/probe_roms_32.c
index 675a48c404a5..071e7fea42e5 100644
--- a/arch/x86/kernel/probe_roms_32.c
+++ b/arch/x86/kernel/probe_roms_32.c
@@ -18,7 +18,7 @@
18#include <asm/setup.h> 18#include <asm/setup.h>
19#include <asm/sections.h> 19#include <asm/sections.h>
20#include <asm/io.h> 20#include <asm/io.h>
21#include <setup_arch.h> 21#include <asm/setup_arch.h>
22 22
23static struct resource system_rom_resource = { 23static struct resource system_rom_resource = {
24 .name = "System ROM", 24 .name = "System ROM",
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index e68bb9e30864..6afa5232dbb7 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -1,8 +1,8 @@
1#include <linux/errno.h> 1#include <linux/errno.h>
2#include <linux/kernel.h> 2#include <linux/kernel.h>
3#include <linux/mm.h> 3#include <linux/mm.h>
4#include <asm/idle.h>
5#include <linux/smp.h> 4#include <linux/smp.h>
5#include <linux/prctl.h>
6#include <linux/slab.h> 6#include <linux/slab.h>
7#include <linux/sched.h> 7#include <linux/sched.h>
8#include <linux/module.h> 8#include <linux/module.h>
@@ -11,6 +11,9 @@
11#include <linux/ftrace.h> 11#include <linux/ftrace.h>
12#include <asm/system.h> 12#include <asm/system.h>
13#include <asm/apic.h> 13#include <asm/apic.h>
14#include <asm/idle.h>
15#include <asm/uaccess.h>
16#include <asm/i387.h>
14 17
15unsigned long idle_halt; 18unsigned long idle_halt;
16EXPORT_SYMBOL(idle_halt); 19EXPORT_SYMBOL(idle_halt);
@@ -56,6 +59,192 @@ void arch_task_cache_init(void)
56} 59}
57 60
58/* 61/*
62 * Free current thread data structures etc..
63 */
64void exit_thread(void)
65{
66 struct task_struct *me = current;
67 struct thread_struct *t = &me->thread;
68
69 if (me->thread.io_bitmap_ptr) {
70 struct tss_struct *tss = &per_cpu(init_tss, get_cpu());
71
72 kfree(t->io_bitmap_ptr);
73 t->io_bitmap_ptr = NULL;
74 clear_thread_flag(TIF_IO_BITMAP);
75 /*
76 * Careful, clear this in the TSS too:
77 */
78 memset(tss->io_bitmap, 0xff, t->io_bitmap_max);
79 t->io_bitmap_max = 0;
80 put_cpu();
81 }
82
83 ds_exit_thread(current);
84}
85
86void flush_thread(void)
87{
88 struct task_struct *tsk = current;
89
90#ifdef CONFIG_X86_64
91 if (test_tsk_thread_flag(tsk, TIF_ABI_PENDING)) {
92 clear_tsk_thread_flag(tsk, TIF_ABI_PENDING);
93 if (test_tsk_thread_flag(tsk, TIF_IA32)) {
94 clear_tsk_thread_flag(tsk, TIF_IA32);
95 } else {
96 set_tsk_thread_flag(tsk, TIF_IA32);
97 current_thread_info()->status |= TS_COMPAT;
98 }
99 }
100#endif
101
102 clear_tsk_thread_flag(tsk, TIF_DEBUG);
103
104 tsk->thread.debugreg0 = 0;
105 tsk->thread.debugreg1 = 0;
106 tsk->thread.debugreg2 = 0;
107 tsk->thread.debugreg3 = 0;
108 tsk->thread.debugreg6 = 0;
109 tsk->thread.debugreg7 = 0;
110 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
111 /*
112 * Forget coprocessor state..
113 */
114 tsk->fpu_counter = 0;
115 clear_fpu(tsk);
116 clear_used_math();
117}
118
119static void hard_disable_TSC(void)
120{
121 write_cr4(read_cr4() | X86_CR4_TSD);
122}
123
124void disable_TSC(void)
125{
126 preempt_disable();
127 if (!test_and_set_thread_flag(TIF_NOTSC))
128 /*
129 * Must flip the CPU state synchronously with
130 * TIF_NOTSC in the current running context.
131 */
132 hard_disable_TSC();
133 preempt_enable();
134}
135
136static void hard_enable_TSC(void)
137{
138 write_cr4(read_cr4() & ~X86_CR4_TSD);
139}
140
141static void enable_TSC(void)
142{
143 preempt_disable();
144 if (test_and_clear_thread_flag(TIF_NOTSC))
145 /*
146 * Must flip the CPU state synchronously with
147 * TIF_NOTSC in the current running context.
148 */
149 hard_enable_TSC();
150 preempt_enable();
151}
152
153int get_tsc_mode(unsigned long adr)
154{
155 unsigned int val;
156
157 if (test_thread_flag(TIF_NOTSC))
158 val = PR_TSC_SIGSEGV;
159 else
160 val = PR_TSC_ENABLE;
161
162 return put_user(val, (unsigned int __user *)adr);
163}
164
165int set_tsc_mode(unsigned int val)
166{
167 if (val == PR_TSC_SIGSEGV)
168 disable_TSC();
169 else if (val == PR_TSC_ENABLE)
170 enable_TSC();
171 else
172 return -EINVAL;
173
174 return 0;
175}
176
177void __switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p,
178 struct tss_struct *tss)
179{
180 struct thread_struct *prev, *next;
181
182 prev = &prev_p->thread;
183 next = &next_p->thread;
184
185 if (test_tsk_thread_flag(next_p, TIF_DS_AREA_MSR) ||
186 test_tsk_thread_flag(prev_p, TIF_DS_AREA_MSR))
187 ds_switch_to(prev_p, next_p);
188 else if (next->debugctlmsr != prev->debugctlmsr)
189 update_debugctlmsr(next->debugctlmsr);
190
191 if (test_tsk_thread_flag(next_p, TIF_DEBUG)) {
192 set_debugreg(next->debugreg0, 0);
193 set_debugreg(next->debugreg1, 1);
194 set_debugreg(next->debugreg2, 2);
195 set_debugreg(next->debugreg3, 3);
196 /* no 4 and 5 */
197 set_debugreg(next->debugreg6, 6);
198 set_debugreg(next->debugreg7, 7);
199 }
200
201 if (test_tsk_thread_flag(prev_p, TIF_NOTSC) ^
202 test_tsk_thread_flag(next_p, TIF_NOTSC)) {
203 /* prev and next are different */
204 if (test_tsk_thread_flag(next_p, TIF_NOTSC))
205 hard_disable_TSC();
206 else
207 hard_enable_TSC();
208 }
209
210 if (test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) {
211 /*
212 * Copy the relevant range of the IO bitmap.
213 * Normally this is 128 bytes or less:
214 */
215 memcpy(tss->io_bitmap, next->io_bitmap_ptr,
216 max(prev->io_bitmap_max, next->io_bitmap_max));
217 } else if (test_tsk_thread_flag(prev_p, TIF_IO_BITMAP)) {
218 /*
219 * Clear any possible leftover bits:
220 */
221 memset(tss->io_bitmap, 0xff, prev->io_bitmap_max);
222 }
223}
224
225int sys_fork(struct pt_regs *regs)
226{
227 return do_fork(SIGCHLD, regs->sp, regs, 0, NULL, NULL);
228}
229
230/*
231 * This is trivial, and on the face of it looks like it
232 * could equally well be done in user mode.
233 *
234 * Not so, for quite unobvious reasons - register pressure.
235 * In user mode vfork() cannot have a stack frame, and if
236 * done by calling the "clone()" system call directly, you
237 * do not have enough call-clobbered registers to hold all
238 * the information you need.
239 */
240int sys_vfork(struct pt_regs *regs)
241{
242 return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->sp, regs, 0,
243 NULL, NULL);
244}
245
246
247/*
59 * Idle related variables and functions 248 * Idle related variables and functions
60 */ 249 */
61unsigned long boot_option_idle_override = 0; 250unsigned long boot_option_idle_override = 0;
@@ -180,6 +369,9 @@ void mwait_idle_with_hints(unsigned long ax, unsigned long cx)
180 369
181 trace_power_start(&it, POWER_CSTATE, (ax>>4)+1); 370 trace_power_start(&it, POWER_CSTATE, (ax>>4)+1);
182 if (!need_resched()) { 371 if (!need_resched()) {
372 if (cpu_has(&current_cpu_data, X86_FEATURE_CLFLUSH_MONITOR))
373 clflush((void *)&current_thread_info()->flags);
374
183 __monitor((void *)&current_thread_info()->flags, 0, 0); 375 __monitor((void *)&current_thread_info()->flags, 0, 0);
184 smp_mb(); 376 smp_mb();
185 if (!need_resched()) 377 if (!need_resched())
@@ -194,6 +386,9 @@ static void mwait_idle(void)
194 struct power_trace it; 386 struct power_trace it;
195 if (!need_resched()) { 387 if (!need_resched()) {
196 trace_power_start(&it, POWER_CSTATE, 1); 388 trace_power_start(&it, POWER_CSTATE, 1);
389 if (cpu_has(&current_cpu_data, X86_FEATURE_CLFLUSH_MONITOR))
390 clflush((void *)&current_thread_info()->flags);
391
197 __monitor((void *)&current_thread_info()->flags, 0, 0); 392 __monitor((void *)&current_thread_info()->flags, 0, 0);
198 smp_mb(); 393 smp_mb();
199 if (!need_resched()) 394 if (!need_resched())
@@ -344,7 +539,7 @@ static void c1e_idle(void)
344 539
345void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c) 540void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c)
346{ 541{
347#ifdef CONFIG_X86_SMP 542#ifdef CONFIG_SMP
348 if (pm_idle == poll_idle && smp_num_siblings > 1) { 543 if (pm_idle == poll_idle && smp_num_siblings > 1) {
349 printk(KERN_WARNING "WARNING: polling idle and HT enabled," 544 printk(KERN_WARNING "WARNING: polling idle and HT enabled,"
350 " performance may degrade.\n"); 545 " performance may degrade.\n");
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index 3ba155d24884..14014d766cad 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -11,6 +11,7 @@
11 11
12#include <stdarg.h> 12#include <stdarg.h>
13 13
14#include <linux/stackprotector.h>
14#include <linux/cpu.h> 15#include <linux/cpu.h>
15#include <linux/errno.h> 16#include <linux/errno.h>
16#include <linux/sched.h> 17#include <linux/sched.h>
@@ -39,11 +40,12 @@
39#include <linux/prctl.h> 40#include <linux/prctl.h>
40#include <linux/dmi.h> 41#include <linux/dmi.h>
41#include <linux/ftrace.h> 42#include <linux/ftrace.h>
43#include <linux/uaccess.h>
44#include <linux/io.h>
45#include <linux/kdebug.h>
42 46
43#include <asm/uaccess.h>
44#include <asm/pgtable.h> 47#include <asm/pgtable.h>
45#include <asm/system.h> 48#include <asm/system.h>
46#include <asm/io.h>
47#include <asm/ldt.h> 49#include <asm/ldt.h>
48#include <asm/processor.h> 50#include <asm/processor.h>
49#include <asm/i387.h> 51#include <asm/i387.h>
@@ -56,10 +58,8 @@
56 58
57#include <asm/tlbflush.h> 59#include <asm/tlbflush.h>
58#include <asm/cpu.h> 60#include <asm/cpu.h>
59#include <asm/kdebug.h>
60#include <asm/idle.h> 61#include <asm/idle.h>
61#include <asm/syscalls.h> 62#include <asm/syscalls.h>
62#include <asm/smp.h>
63#include <asm/ds.h> 63#include <asm/ds.h>
64 64
65asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); 65asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
@@ -67,9 +67,6 @@ asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
67DEFINE_PER_CPU(struct task_struct *, current_task) = &init_task; 67DEFINE_PER_CPU(struct task_struct *, current_task) = &init_task;
68EXPORT_PER_CPU_SYMBOL(current_task); 68EXPORT_PER_CPU_SYMBOL(current_task);
69 69
70DEFINE_PER_CPU(int, cpu_number);
71EXPORT_PER_CPU_SYMBOL(cpu_number);
72
73/* 70/*
74 * Return saved PC of a blocked thread. 71 * Return saved PC of a blocked thread.
75 */ 72 */
@@ -95,6 +92,15 @@ void cpu_idle(void)
95{ 92{
96 int cpu = smp_processor_id(); 93 int cpu = smp_processor_id();
97 94
95 /*
96 * If we're the non-boot CPU, nothing set the stack canary up
97 * for us. CPU0 already has it initialized but no harm in
98 * doing it again. This is a good place for updating it, as
99 * we wont ever return from this function (so the invalid
100 * canaries already on the stack wont ever trigger).
101 */
102 boot_init_stack_canary();
103
98 current_thread_info()->status |= TS_POLLING; 104 current_thread_info()->status |= TS_POLLING;
99 105
100 /* endless idle loop with no priority at all */ 106 /* endless idle loop with no priority at all */
@@ -105,14 +111,10 @@ void cpu_idle(void)
105 check_pgt_cache(); 111 check_pgt_cache();
106 rmb(); 112 rmb();
107 113
108 if (rcu_pending(cpu))
109 rcu_check_callbacks(cpu, 0);
110
111 if (cpu_is_offline(cpu)) 114 if (cpu_is_offline(cpu))
112 play_dead(); 115 play_dead();
113 116
114 local_irq_disable(); 117 local_irq_disable();
115 __get_cpu_var(irq_stat).idle_timestamp = jiffies;
116 /* Don't trace irqs off for idle */ 118 /* Don't trace irqs off for idle */
117 stop_critical_timings(); 119 stop_critical_timings();
118 pm_idle(); 120 pm_idle();
@@ -136,7 +138,7 @@ void __show_regs(struct pt_regs *regs, int all)
136 if (user_mode_vm(regs)) { 138 if (user_mode_vm(regs)) {
137 sp = regs->sp; 139 sp = regs->sp;
138 ss = regs->ss & 0xffff; 140 ss = regs->ss & 0xffff;
139 savesegment(gs, gs); 141 gs = get_user_gs(regs);
140 } else { 142 } else {
141 sp = (unsigned long) (&regs->sp); 143 sp = (unsigned long) (&regs->sp);
142 savesegment(ss, ss); 144 savesegment(ss, ss);
@@ -205,7 +207,7 @@ extern void kernel_thread_helper(void);
205/* 207/*
206 * Create a kernel thread 208 * Create a kernel thread
207 */ 209 */
208int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) 210int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
209{ 211{
210 struct pt_regs regs; 212 struct pt_regs regs;
211 213
@@ -217,6 +219,7 @@ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
217 regs.ds = __USER_DS; 219 regs.ds = __USER_DS;
218 regs.es = __USER_DS; 220 regs.es = __USER_DS;
219 regs.fs = __KERNEL_PERCPU; 221 regs.fs = __KERNEL_PERCPU;
222 regs.gs = __KERNEL_STACK_CANARY;
220 regs.orig_ax = -1; 223 regs.orig_ax = -1;
221 regs.ip = (unsigned long) kernel_thread_helper; 224 regs.ip = (unsigned long) kernel_thread_helper;
222 regs.cs = __KERNEL_CS | get_kernel_rpl(); 225 regs.cs = __KERNEL_CS | get_kernel_rpl();
@@ -227,55 +230,6 @@ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
227} 230}
228EXPORT_SYMBOL(kernel_thread); 231EXPORT_SYMBOL(kernel_thread);
229 232
230/*
231 * Free current thread data structures etc..
232 */
233void exit_thread(void)
234{
235 /* The process may have allocated an io port bitmap... nuke it. */
236 if (unlikely(test_thread_flag(TIF_IO_BITMAP))) {
237 struct task_struct *tsk = current;
238 struct thread_struct *t = &tsk->thread;
239 int cpu = get_cpu();
240 struct tss_struct *tss = &per_cpu(init_tss, cpu);
241
242 kfree(t->io_bitmap_ptr);
243 t->io_bitmap_ptr = NULL;
244 clear_thread_flag(TIF_IO_BITMAP);
245 /*
246 * Careful, clear this in the TSS too:
247 */
248 memset(tss->io_bitmap, 0xff, tss->io_bitmap_max);
249 t->io_bitmap_max = 0;
250 tss->io_bitmap_owner = NULL;
251 tss->io_bitmap_max = 0;
252 tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET;
253 put_cpu();
254 }
255
256 ds_exit_thread(current);
257}
258
259void flush_thread(void)
260{
261 struct task_struct *tsk = current;
262
263 tsk->thread.debugreg0 = 0;
264 tsk->thread.debugreg1 = 0;
265 tsk->thread.debugreg2 = 0;
266 tsk->thread.debugreg3 = 0;
267 tsk->thread.debugreg6 = 0;
268 tsk->thread.debugreg7 = 0;
269 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
270 clear_tsk_thread_flag(tsk, TIF_DEBUG);
271 /*
272 * Forget coprocessor state..
273 */
274 tsk->fpu_counter = 0;
275 clear_fpu(tsk);
276 clear_used_math();
277}
278
279void release_thread(struct task_struct *dead_task) 233void release_thread(struct task_struct *dead_task)
280{ 234{
281 BUG_ON(dead_task->mm); 235 BUG_ON(dead_task->mm);
@@ -293,9 +247,9 @@ void prepare_to_copy(struct task_struct *tsk)
293 247
294int copy_thread(int nr, unsigned long clone_flags, unsigned long sp, 248int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
295 unsigned long unused, 249 unsigned long unused,
296 struct task_struct * p, struct pt_regs * regs) 250 struct task_struct *p, struct pt_regs *regs)
297{ 251{
298 struct pt_regs * childregs; 252 struct pt_regs *childregs;
299 struct task_struct *tsk; 253 struct task_struct *tsk;
300 int err; 254 int err;
301 255
@@ -309,7 +263,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
309 263
310 p->thread.ip = (unsigned long) ret_from_fork; 264 p->thread.ip = (unsigned long) ret_from_fork;
311 265
312 savesegment(gs, p->thread.gs); 266 task_user_gs(p) = get_user_gs(regs);
313 267
314 tsk = current; 268 tsk = current;
315 if (unlikely(test_tsk_thread_flag(tsk, TIF_IO_BITMAP))) { 269 if (unlikely(test_tsk_thread_flag(tsk, TIF_IO_BITMAP))) {
@@ -347,7 +301,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
347void 301void
348start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp) 302start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
349{ 303{
350 __asm__("movl %0, %%gs" :: "r"(0)); 304 set_user_gs(regs, 0);
351 regs->fs = 0; 305 regs->fs = 0;
352 set_fs(USER_DS); 306 set_fs(USER_DS);
353 regs->ds = __USER_DS; 307 regs->ds = __USER_DS;
@@ -363,127 +317,6 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
363} 317}
364EXPORT_SYMBOL_GPL(start_thread); 318EXPORT_SYMBOL_GPL(start_thread);
365 319
366static void hard_disable_TSC(void)
367{
368 write_cr4(read_cr4() | X86_CR4_TSD);
369}
370
371void disable_TSC(void)
372{
373 preempt_disable();
374 if (!test_and_set_thread_flag(TIF_NOTSC))
375 /*
376 * Must flip the CPU state synchronously with
377 * TIF_NOTSC in the current running context.
378 */
379 hard_disable_TSC();
380 preempt_enable();
381}
382
383static void hard_enable_TSC(void)
384{
385 write_cr4(read_cr4() & ~X86_CR4_TSD);
386}
387
388static void enable_TSC(void)
389{
390 preempt_disable();
391 if (test_and_clear_thread_flag(TIF_NOTSC))
392 /*
393 * Must flip the CPU state synchronously with
394 * TIF_NOTSC in the current running context.
395 */
396 hard_enable_TSC();
397 preempt_enable();
398}
399
400int get_tsc_mode(unsigned long adr)
401{
402 unsigned int val;
403
404 if (test_thread_flag(TIF_NOTSC))
405 val = PR_TSC_SIGSEGV;
406 else
407 val = PR_TSC_ENABLE;
408
409 return put_user(val, (unsigned int __user *)adr);
410}
411
412int set_tsc_mode(unsigned int val)
413{
414 if (val == PR_TSC_SIGSEGV)
415 disable_TSC();
416 else if (val == PR_TSC_ENABLE)
417 enable_TSC();
418 else
419 return -EINVAL;
420
421 return 0;
422}
423
424static noinline void
425__switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p,
426 struct tss_struct *tss)
427{
428 struct thread_struct *prev, *next;
429
430 prev = &prev_p->thread;
431 next = &next_p->thread;
432
433 if (test_tsk_thread_flag(next_p, TIF_DS_AREA_MSR) ||
434 test_tsk_thread_flag(prev_p, TIF_DS_AREA_MSR))
435 ds_switch_to(prev_p, next_p);
436 else if (next->debugctlmsr != prev->debugctlmsr)
437 update_debugctlmsr(next->debugctlmsr);
438
439 if (test_tsk_thread_flag(next_p, TIF_DEBUG)) {
440 set_debugreg(next->debugreg0, 0);
441 set_debugreg(next->debugreg1, 1);
442 set_debugreg(next->debugreg2, 2);
443 set_debugreg(next->debugreg3, 3);
444 /* no 4 and 5 */
445 set_debugreg(next->debugreg6, 6);
446 set_debugreg(next->debugreg7, 7);
447 }
448
449 if (test_tsk_thread_flag(prev_p, TIF_NOTSC) ^
450 test_tsk_thread_flag(next_p, TIF_NOTSC)) {
451 /* prev and next are different */
452 if (test_tsk_thread_flag(next_p, TIF_NOTSC))
453 hard_disable_TSC();
454 else
455 hard_enable_TSC();
456 }
457
458 if (!test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) {
459 /*
460 * Disable the bitmap via an invalid offset. We still cache
461 * the previous bitmap owner and the IO bitmap contents:
462 */
463 tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET;
464 return;
465 }
466
467 if (likely(next == tss->io_bitmap_owner)) {
468 /*
469 * Previous owner of the bitmap (hence the bitmap content)
470 * matches the next task, we dont have to do anything but
471 * to set a valid offset in the TSS:
472 */
473 tss->x86_tss.io_bitmap_base = IO_BITMAP_OFFSET;
474 return;
475 }
476 /*
477 * Lazy TSS's I/O bitmap copy. We set an invalid offset here
478 * and we let the task to get a GPF in case an I/O instruction
479 * is performed. The handler of the GPF will verify that the
480 * faulting task has a valid I/O bitmap and, it true, does the
481 * real copy and restart the instruction. This will save us
482 * redundant copies when the currently switched task does not
483 * perform any I/O during its timeslice.
484 */
485 tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET_LAZY;
486}
487 320
488/* 321/*
489 * switch_to(x,yn) should switch tasks from x to y. 322 * switch_to(x,yn) should switch tasks from x to y.
@@ -544,7 +377,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
544 * used %fs or %gs (it does not today), or if the kernel is 377 * used %fs or %gs (it does not today), or if the kernel is
545 * running inside of a hypervisor layer. 378 * running inside of a hypervisor layer.
546 */ 379 */
547 savesegment(gs, prev->gs); 380 lazy_save_gs(prev->gs);
548 381
549 /* 382 /*
550 * Load the per-thread Thread-Local Storage descriptor. 383 * Load the per-thread Thread-Local Storage descriptor.
@@ -590,64 +423,44 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
590 * Restore %gs if needed (which is common) 423 * Restore %gs if needed (which is common)
591 */ 424 */
592 if (prev->gs | next->gs) 425 if (prev->gs | next->gs)
593 loadsegment(gs, next->gs); 426 lazy_load_gs(next->gs);
594 427
595 x86_write_percpu(current_task, next_p); 428 percpu_write(current_task, next_p);
596 429
597 return prev_p; 430 return prev_p;
598} 431}
599 432
600asmlinkage int sys_fork(struct pt_regs regs) 433int sys_clone(struct pt_regs *regs)
601{
602 return do_fork(SIGCHLD, regs.sp, &regs, 0, NULL, NULL);
603}
604
605asmlinkage int sys_clone(struct pt_regs regs)
606{ 434{
607 unsigned long clone_flags; 435 unsigned long clone_flags;
608 unsigned long newsp; 436 unsigned long newsp;
609 int __user *parent_tidptr, *child_tidptr; 437 int __user *parent_tidptr, *child_tidptr;
610 438
611 clone_flags = regs.bx; 439 clone_flags = regs->bx;
612 newsp = regs.cx; 440 newsp = regs->cx;
613 parent_tidptr = (int __user *)regs.dx; 441 parent_tidptr = (int __user *)regs->dx;
614 child_tidptr = (int __user *)regs.di; 442 child_tidptr = (int __user *)regs->di;
615 if (!newsp) 443 if (!newsp)
616 newsp = regs.sp; 444 newsp = regs->sp;
617 return do_fork(clone_flags, newsp, &regs, 0, parent_tidptr, child_tidptr); 445 return do_fork(clone_flags, newsp, regs, 0, parent_tidptr, child_tidptr);
618}
619
620/*
621 * This is trivial, and on the face of it looks like it
622 * could equally well be done in user mode.
623 *
624 * Not so, for quite unobvious reasons - register pressure.
625 * In user mode vfork() cannot have a stack frame, and if
626 * done by calling the "clone()" system call directly, you
627 * do not have enough call-clobbered registers to hold all
628 * the information you need.
629 */
630asmlinkage int sys_vfork(struct pt_regs regs)
631{
632 return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs.sp, &regs, 0, NULL, NULL);
633} 446}
634 447
635/* 448/*
636 * sys_execve() executes a new program. 449 * sys_execve() executes a new program.
637 */ 450 */
638asmlinkage int sys_execve(struct pt_regs regs) 451int sys_execve(struct pt_regs *regs)
639{ 452{
640 int error; 453 int error;
641 char * filename; 454 char *filename;
642 455
643 filename = getname((char __user *) regs.bx); 456 filename = getname((char __user *) regs->bx);
644 error = PTR_ERR(filename); 457 error = PTR_ERR(filename);
645 if (IS_ERR(filename)) 458 if (IS_ERR(filename))
646 goto out; 459 goto out;
647 error = do_execve(filename, 460 error = do_execve(filename,
648 (char __user * __user *) regs.cx, 461 (char __user * __user *) regs->cx,
649 (char __user * __user *) regs.dx, 462 (char __user * __user *) regs->dx,
650 &regs); 463 regs);
651 if (error == 0) { 464 if (error == 0) {
652 /* Make sure we don't return using sysenter.. */ 465 /* Make sure we don't return using sysenter.. */
653 set_thread_flag(TIF_IRET); 466 set_thread_flag(TIF_IRET);
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 416fb9282f4f..abb7e6a7f0c6 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -16,6 +16,7 @@
16 16
17#include <stdarg.h> 17#include <stdarg.h>
18 18
19#include <linux/stackprotector.h>
19#include <linux/cpu.h> 20#include <linux/cpu.h>
20#include <linux/errno.h> 21#include <linux/errno.h>
21#include <linux/sched.h> 22#include <linux/sched.h>
@@ -40,13 +41,13 @@
40#include <linux/uaccess.h> 41#include <linux/uaccess.h>
41#include <linux/io.h> 42#include <linux/io.h>
42#include <linux/ftrace.h> 43#include <linux/ftrace.h>
44#include <linux/dmi.h>
43 45
44#include <asm/pgtable.h> 46#include <asm/pgtable.h>
45#include <asm/system.h> 47#include <asm/system.h>
46#include <asm/processor.h> 48#include <asm/processor.h>
47#include <asm/i387.h> 49#include <asm/i387.h>
48#include <asm/mmu_context.h> 50#include <asm/mmu_context.h>
49#include <asm/pda.h>
50#include <asm/prctl.h> 51#include <asm/prctl.h>
51#include <asm/desc.h> 52#include <asm/desc.h>
52#include <asm/proto.h> 53#include <asm/proto.h>
@@ -57,6 +58,12 @@
57 58
58asmlinkage extern void ret_from_fork(void); 59asmlinkage extern void ret_from_fork(void);
59 60
61DEFINE_PER_CPU(struct task_struct *, current_task) = &init_task;
62EXPORT_PER_CPU_SYMBOL(current_task);
63
64DEFINE_PER_CPU(unsigned long, old_rsp);
65static DEFINE_PER_CPU(unsigned char, is_idle);
66
60unsigned long kernel_thread_flags = CLONE_VM | CLONE_UNTRACED; 67unsigned long kernel_thread_flags = CLONE_VM | CLONE_UNTRACED;
61 68
62static ATOMIC_NOTIFIER_HEAD(idle_notifier); 69static ATOMIC_NOTIFIER_HEAD(idle_notifier);
@@ -75,13 +82,13 @@ EXPORT_SYMBOL_GPL(idle_notifier_unregister);
75 82
76void enter_idle(void) 83void enter_idle(void)
77{ 84{
78 write_pda(isidle, 1); 85 percpu_write(is_idle, 1);
79 atomic_notifier_call_chain(&idle_notifier, IDLE_START, NULL); 86 atomic_notifier_call_chain(&idle_notifier, IDLE_START, NULL);
80} 87}
81 88
82static void __exit_idle(void) 89static void __exit_idle(void)
83{ 90{
84 if (test_and_clear_bit_pda(0, isidle) == 0) 91 if (x86_test_and_clear_bit_percpu(0, is_idle) == 0)
85 return; 92 return;
86 atomic_notifier_call_chain(&idle_notifier, IDLE_END, NULL); 93 atomic_notifier_call_chain(&idle_notifier, IDLE_END, NULL);
87} 94}
@@ -111,6 +118,16 @@ static inline void play_dead(void)
111void cpu_idle(void) 118void cpu_idle(void)
112{ 119{
113 current_thread_info()->status |= TS_POLLING; 120 current_thread_info()->status |= TS_POLLING;
121
122 /*
123 * If we're the non-boot CPU, nothing set the stack canary up
124 * for us. CPU0 already has it initialized but no harm in
125 * doing it again. This is a good place for updating it, as
126 * we wont ever return from this function (so the invalid
127 * canaries already on the stack wont ever trigger).
128 */
129 boot_init_stack_canary();
130
114 /* endless idle loop with no priority at all */ 131 /* endless idle loop with no priority at all */
115 while (1) { 132 while (1) {
116 tick_nohz_stop_sched_tick(1); 133 tick_nohz_stop_sched_tick(1);
@@ -151,14 +168,18 @@ void __show_regs(struct pt_regs *regs, int all)
151 unsigned long d0, d1, d2, d3, d6, d7; 168 unsigned long d0, d1, d2, d3, d6, d7;
152 unsigned int fsindex, gsindex; 169 unsigned int fsindex, gsindex;
153 unsigned int ds, cs, es; 170 unsigned int ds, cs, es;
171 const char *board;
154 172
155 printk("\n"); 173 printk("\n");
156 print_modules(); 174 print_modules();
157 printk(KERN_INFO "Pid: %d, comm: %.20s %s %s %.*s\n", 175 board = dmi_get_system_info(DMI_PRODUCT_NAME);
176 if (!board)
177 board = "";
178 printk(KERN_INFO "Pid: %d, comm: %.20s %s %s %.*s %s\n",
158 current->pid, current->comm, print_tainted(), 179 current->pid, current->comm, print_tainted(),
159 init_utsname()->release, 180 init_utsname()->release,
160 (int)strcspn(init_utsname()->version, " "), 181 (int)strcspn(init_utsname()->version, " "),
161 init_utsname()->version); 182 init_utsname()->version, board);
162 printk(KERN_INFO "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip); 183 printk(KERN_INFO "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip);
163 printk_address(regs->ip, 1); 184 printk_address(regs->ip, 1);
164 printk(KERN_INFO "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, 185 printk(KERN_INFO "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss,
@@ -216,61 +237,6 @@ void show_regs(struct pt_regs *regs)
216 show_trace(NULL, regs, (void *)(regs + 1), regs->bp); 237 show_trace(NULL, regs, (void *)(regs + 1), regs->bp);
217} 238}
218 239
219/*
220 * Free current thread data structures etc..
221 */
222void exit_thread(void)
223{
224 struct task_struct *me = current;
225 struct thread_struct *t = &me->thread;
226
227 if (me->thread.io_bitmap_ptr) {
228 struct tss_struct *tss = &per_cpu(init_tss, get_cpu());
229
230 kfree(t->io_bitmap_ptr);
231 t->io_bitmap_ptr = NULL;
232 clear_thread_flag(TIF_IO_BITMAP);
233 /*
234 * Careful, clear this in the TSS too:
235 */
236 memset(tss->io_bitmap, 0xff, t->io_bitmap_max);
237 t->io_bitmap_max = 0;
238 put_cpu();
239 }
240
241 ds_exit_thread(current);
242}
243
244void flush_thread(void)
245{
246 struct task_struct *tsk = current;
247
248 if (test_tsk_thread_flag(tsk, TIF_ABI_PENDING)) {
249 clear_tsk_thread_flag(tsk, TIF_ABI_PENDING);
250 if (test_tsk_thread_flag(tsk, TIF_IA32)) {
251 clear_tsk_thread_flag(tsk, TIF_IA32);
252 } else {
253 set_tsk_thread_flag(tsk, TIF_IA32);
254 current_thread_info()->status |= TS_COMPAT;
255 }
256 }
257 clear_tsk_thread_flag(tsk, TIF_DEBUG);
258
259 tsk->thread.debugreg0 = 0;
260 tsk->thread.debugreg1 = 0;
261 tsk->thread.debugreg2 = 0;
262 tsk->thread.debugreg3 = 0;
263 tsk->thread.debugreg6 = 0;
264 tsk->thread.debugreg7 = 0;
265 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
266 /*
267 * Forget coprocessor state..
268 */
269 tsk->fpu_counter = 0;
270 clear_fpu(tsk);
271 clear_used_math();
272}
273
274void release_thread(struct task_struct *dead_task) 240void release_thread(struct task_struct *dead_task)
275{ 241{
276 if (dead_task->mm) { 242 if (dead_task->mm) {
@@ -392,7 +358,7 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
392 load_gs_index(0); 358 load_gs_index(0);
393 regs->ip = new_ip; 359 regs->ip = new_ip;
394 regs->sp = new_sp; 360 regs->sp = new_sp;
395 write_pda(oldrsp, new_sp); 361 percpu_write(old_rsp, new_sp);
396 regs->cs = __USER_CS; 362 regs->cs = __USER_CS;
397 regs->ss = __USER_DS; 363 regs->ss = __USER_DS;
398 regs->flags = 0x200; 364 regs->flags = 0x200;
@@ -404,118 +370,6 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
404} 370}
405EXPORT_SYMBOL_GPL(start_thread); 371EXPORT_SYMBOL_GPL(start_thread);
406 372
407static void hard_disable_TSC(void)
408{
409 write_cr4(read_cr4() | X86_CR4_TSD);
410}
411
412void disable_TSC(void)
413{
414 preempt_disable();
415 if (!test_and_set_thread_flag(TIF_NOTSC))
416 /*
417 * Must flip the CPU state synchronously with
418 * TIF_NOTSC in the current running context.
419 */
420 hard_disable_TSC();
421 preempt_enable();
422}
423
424static void hard_enable_TSC(void)
425{
426 write_cr4(read_cr4() & ~X86_CR4_TSD);
427}
428
429static void enable_TSC(void)
430{
431 preempt_disable();
432 if (test_and_clear_thread_flag(TIF_NOTSC))
433 /*
434 * Must flip the CPU state synchronously with
435 * TIF_NOTSC in the current running context.
436 */
437 hard_enable_TSC();
438 preempt_enable();
439}
440
441int get_tsc_mode(unsigned long adr)
442{
443 unsigned int val;
444
445 if (test_thread_flag(TIF_NOTSC))
446 val = PR_TSC_SIGSEGV;
447 else
448 val = PR_TSC_ENABLE;
449
450 return put_user(val, (unsigned int __user *)adr);
451}
452
453int set_tsc_mode(unsigned int val)
454{
455 if (val == PR_TSC_SIGSEGV)
456 disable_TSC();
457 else if (val == PR_TSC_ENABLE)
458 enable_TSC();
459 else
460 return -EINVAL;
461
462 return 0;
463}
464
465/*
466 * This special macro can be used to load a debugging register
467 */
468#define loaddebug(thread, r) set_debugreg(thread->debugreg ## r, r)
469
470static inline void __switch_to_xtra(struct task_struct *prev_p,
471 struct task_struct *next_p,
472 struct tss_struct *tss)
473{
474 struct thread_struct *prev, *next;
475
476 prev = &prev_p->thread,
477 next = &next_p->thread;
478
479 if (test_tsk_thread_flag(next_p, TIF_DS_AREA_MSR) ||
480 test_tsk_thread_flag(prev_p, TIF_DS_AREA_MSR))
481 ds_switch_to(prev_p, next_p);
482 else if (next->debugctlmsr != prev->debugctlmsr)
483 update_debugctlmsr(next->debugctlmsr);
484
485 if (test_tsk_thread_flag(next_p, TIF_DEBUG)) {
486 loaddebug(next, 0);
487 loaddebug(next, 1);
488 loaddebug(next, 2);
489 loaddebug(next, 3);
490 /* no 4 and 5 */
491 loaddebug(next, 6);
492 loaddebug(next, 7);
493 }
494
495 if (test_tsk_thread_flag(prev_p, TIF_NOTSC) ^
496 test_tsk_thread_flag(next_p, TIF_NOTSC)) {
497 /* prev and next are different */
498 if (test_tsk_thread_flag(next_p, TIF_NOTSC))
499 hard_disable_TSC();
500 else
501 hard_enable_TSC();
502 }
503
504 if (test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) {
505 /*
506 * Copy the relevant range of the IO bitmap.
507 * Normally this is 128 bytes or less:
508 */
509 memcpy(tss->io_bitmap, next->io_bitmap_ptr,
510 max(prev->io_bitmap_max, next->io_bitmap_max));
511 } else if (test_tsk_thread_flag(prev_p, TIF_IO_BITMAP)) {
512 /*
513 * Clear any possible leftover bits:
514 */
515 memset(tss->io_bitmap, 0xff, prev->io_bitmap_max);
516 }
517}
518
519/* 373/*
520 * switch_to(x,y) should switch tasks from x to y. 374 * switch_to(x,y) should switch tasks from x to y.
521 * 375 *
@@ -613,21 +467,13 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
613 /* 467 /*
614 * Switch the PDA and FPU contexts. 468 * Switch the PDA and FPU contexts.
615 */ 469 */
616 prev->usersp = read_pda(oldrsp); 470 prev->usersp = percpu_read(old_rsp);
617 write_pda(oldrsp, next->usersp); 471 percpu_write(old_rsp, next->usersp);
618 write_pda(pcurrent, next_p); 472 percpu_write(current_task, next_p);
619 473
620 write_pda(kernelstack, 474 percpu_write(kernel_stack,
621 (unsigned long)task_stack_page(next_p) + 475 (unsigned long)task_stack_page(next_p) +
622 THREAD_SIZE - PDA_STACKOFFSET); 476 THREAD_SIZE - KERNEL_STACK_OFFSET);
623#ifdef CONFIG_CC_STACKPROTECTOR
624 write_pda(stack_canary, next_p->stack_canary);
625 /*
626 * Build time only check to make sure the stack_canary is at
627 * offset 40 in the pda; this is a gcc ABI requirement
628 */
629 BUILD_BUG_ON(offsetof(struct x8664_pda, stack_canary) != 40);
630#endif
631 477
632 /* 478 /*
633 * Now maybe reload the debug registers and handle I/O bitmaps 479 * Now maybe reload the debug registers and handle I/O bitmaps
@@ -681,11 +527,6 @@ void set_personality_64bit(void)
681 current->personality &= ~READ_IMPLIES_EXEC; 527 current->personality &= ~READ_IMPLIES_EXEC;
682} 528}
683 529
684asmlinkage long sys_fork(struct pt_regs *regs)
685{
686 return do_fork(SIGCHLD, regs->sp, regs, 0, NULL, NULL);
687}
688
689asmlinkage long 530asmlinkage long
690sys_clone(unsigned long clone_flags, unsigned long newsp, 531sys_clone(unsigned long clone_flags, unsigned long newsp,
691 void __user *parent_tid, void __user *child_tid, struct pt_regs *regs) 532 void __user *parent_tid, void __user *child_tid, struct pt_regs *regs)
@@ -695,22 +536,6 @@ sys_clone(unsigned long clone_flags, unsigned long newsp,
695 return do_fork(clone_flags, newsp, regs, 0, parent_tid, child_tid); 536 return do_fork(clone_flags, newsp, regs, 0, parent_tid, child_tid);
696} 537}
697 538
698/*
699 * This is trivial, and on the face of it looks like it
700 * could equally well be done in user mode.
701 *
702 * Not so, for quite unobvious reasons - register pressure.
703 * In user mode vfork() cannot have a stack frame, and if
704 * done by calling the "clone()" system call directly, you
705 * do not have enough call-clobbered registers to hold all
706 * the information you need.
707 */
708asmlinkage long sys_vfork(struct pt_regs *regs)
709{
710 return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->sp, regs, 0,
711 NULL, NULL);
712}
713
714unsigned long get_wchan(struct task_struct *p) 539unsigned long get_wchan(struct task_struct *p)
715{ 540{
716 unsigned long stack; 541 unsigned long stack;
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
index 0a5df5f82fb9..3d9672e59c16 100644
--- a/arch/x86/kernel/ptrace.c
+++ b/arch/x86/kernel/ptrace.c
@@ -75,10 +75,7 @@ static inline bool invalid_selector(u16 value)
75static unsigned long *pt_regs_access(struct pt_regs *regs, unsigned long regno) 75static unsigned long *pt_regs_access(struct pt_regs *regs, unsigned long regno)
76{ 76{
77 BUILD_BUG_ON(offsetof(struct pt_regs, bx) != 0); 77 BUILD_BUG_ON(offsetof(struct pt_regs, bx) != 0);
78 regno >>= 2; 78 return &regs->bx + (regno >> 2);
79 if (regno > FS)
80 --regno;
81 return &regs->bx + regno;
82} 79}
83 80
84static u16 get_segment_reg(struct task_struct *task, unsigned long offset) 81static u16 get_segment_reg(struct task_struct *task, unsigned long offset)
@@ -90,9 +87,10 @@ static u16 get_segment_reg(struct task_struct *task, unsigned long offset)
90 if (offset != offsetof(struct user_regs_struct, gs)) 87 if (offset != offsetof(struct user_regs_struct, gs))
91 retval = *pt_regs_access(task_pt_regs(task), offset); 88 retval = *pt_regs_access(task_pt_regs(task), offset);
92 else { 89 else {
93 retval = task->thread.gs;
94 if (task == current) 90 if (task == current)
95 savesegment(gs, retval); 91 retval = get_user_gs(task_pt_regs(task));
92 else
93 retval = task_user_gs(task);
96 } 94 }
97 return retval; 95 return retval;
98} 96}
@@ -126,13 +124,10 @@ static int set_segment_reg(struct task_struct *task,
126 break; 124 break;
127 125
128 case offsetof(struct user_regs_struct, gs): 126 case offsetof(struct user_regs_struct, gs):
129 task->thread.gs = value;
130 if (task == current) 127 if (task == current)
131 /* 128 set_user_gs(task_pt_regs(task), value);
132 * The user-mode %gs is not affected by 129 else
133 * kernel entry, so we must update the CPU. 130 task_user_gs(task) = value;
134 */
135 loadsegment(gs, value);
136 } 131 }
137 132
138 return 0; 133 return 0;
@@ -273,7 +268,7 @@ static unsigned long debugreg_addr_limit(struct task_struct *task)
273 if (test_tsk_thread_flag(task, TIF_IA32)) 268 if (test_tsk_thread_flag(task, TIF_IA32))
274 return IA32_PAGE_OFFSET - 3; 269 return IA32_PAGE_OFFSET - 3;
275#endif 270#endif
276 return TASK_SIZE64 - 7; 271 return TASK_SIZE_MAX - 7;
277} 272}
278 273
279#endif /* CONFIG_X86_32 */ 274#endif /* CONFIG_X86_32 */
@@ -810,12 +805,16 @@ static void ptrace_bts_untrace(struct task_struct *child)
810 805
811static void ptrace_bts_detach(struct task_struct *child) 806static void ptrace_bts_detach(struct task_struct *child)
812{ 807{
813 if (unlikely(child->bts)) { 808 /*
814 ds_release_bts(child->bts); 809 * Ptrace_detach() races with ptrace_untrace() in case
815 child->bts = NULL; 810 * the child dies and is reaped by another thread.
816 811 *
817 ptrace_bts_free_buffer(child); 812 * We only do the memory accounting at this point and
818 } 813 * leave the buffer deallocation and the bts tracer
814 * release to ptrace_bts_untrace() which will be called
815 * later on with tasklist_lock held.
816 */
817 release_locked_buffer(child->bts_buffer, child->bts_size);
819} 818}
820#else 819#else
821static inline void ptrace_bts_fork(struct task_struct *tsk) {} 820static inline void ptrace_bts_fork(struct task_struct *tsk) {}
@@ -1384,7 +1383,7 @@ void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs,
1384#ifdef CONFIG_X86_32 1383#ifdef CONFIG_X86_32
1385# define IS_IA32 1 1384# define IS_IA32 1
1386#elif defined CONFIG_IA32_EMULATION 1385#elif defined CONFIG_IA32_EMULATION
1387# define IS_IA32 test_thread_flag(TIF_IA32) 1386# define IS_IA32 is_compat_task()
1388#else 1387#else
1389# define IS_IA32 0 1388# define IS_IA32 0
1390#endif 1389#endif
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 2b46eb41643b..1cc18d439bbb 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -14,6 +14,7 @@
14#include <asm/reboot.h> 14#include <asm/reboot.h>
15#include <asm/pci_x86.h> 15#include <asm/pci_x86.h>
16#include <asm/virtext.h> 16#include <asm/virtext.h>
17#include <asm/cpu.h>
17 18
18#ifdef CONFIG_X86_32 19#ifdef CONFIG_X86_32
19# include <linux/dmi.h> 20# include <linux/dmi.h>
@@ -23,8 +24,6 @@
23# include <asm/iommu.h> 24# include <asm/iommu.h>
24#endif 25#endif
25 26
26#include <mach_ipi.h>
27
28/* 27/*
29 * Power off function, if any 28 * Power off function, if any
30 */ 29 */
@@ -650,7 +649,7 @@ static int crash_nmi_callback(struct notifier_block *self,
650 649
651static void smp_send_nmi_allbutself(void) 650static void smp_send_nmi_allbutself(void)
652{ 651{
653 send_IPI_allbutself(NMI_VECTOR); 652 apic->send_IPI_allbutself(NMI_VECTOR);
654} 653}
655 654
656static struct notifier_block crash_nmi_nb = { 655static struct notifier_block crash_nmi_nb = {
diff --git a/arch/x86/kernel/relocate_kernel_32.S b/arch/x86/kernel/relocate_kernel_32.S
index a160f3119725..2064d0aa8d28 100644
--- a/arch/x86/kernel/relocate_kernel_32.S
+++ b/arch/x86/kernel/relocate_kernel_32.S
@@ -7,7 +7,7 @@
7 */ 7 */
8 8
9#include <linux/linkage.h> 9#include <linux/linkage.h>
10#include <asm/page.h> 10#include <asm/page_types.h>
11#include <asm/kexec.h> 11#include <asm/kexec.h>
12#include <asm/processor-flags.h> 12#include <asm/processor-flags.h>
13 13
diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
index f5afe665a82b..d32cfb27a479 100644
--- a/arch/x86/kernel/relocate_kernel_64.S
+++ b/arch/x86/kernel/relocate_kernel_64.S
@@ -7,10 +7,10 @@
7 */ 7 */
8 8
9#include <linux/linkage.h> 9#include <linux/linkage.h>
10#include <asm/page.h> 10#include <asm/page_types.h>
11#include <asm/kexec.h> 11#include <asm/kexec.h>
12#include <asm/processor-flags.h> 12#include <asm/processor-flags.h>
13#include <asm/pgtable.h> 13#include <asm/pgtable_types.h>
14 14
15/* 15/*
16 * Must be relocatable PIC code callable as a C function 16 * Must be relocatable PIC code callable as a C function
@@ -29,122 +29,6 @@ relocate_kernel:
29 * %rdx start address 29 * %rdx start address
30 */ 30 */
31 31
32 /* map the control page at its virtual address */
33
34 movq $0x0000ff8000000000, %r10 /* mask */
35 mov $(39 - 3), %cl /* bits to shift */
36 movq PTR(VA_CONTROL_PAGE)(%rsi), %r11 /* address to map */
37
38 movq %r11, %r9
39 andq %r10, %r9
40 shrq %cl, %r9
41
42 movq PTR(VA_PGD)(%rsi), %r8
43 addq %r8, %r9
44 movq PTR(PA_PUD_0)(%rsi), %r8
45 orq $PAGE_ATTR, %r8
46 movq %r8, (%r9)
47
48 shrq $9, %r10
49 sub $9, %cl
50
51 movq %r11, %r9
52 andq %r10, %r9
53 shrq %cl, %r9
54
55 movq PTR(VA_PUD_0)(%rsi), %r8
56 addq %r8, %r9
57 movq PTR(PA_PMD_0)(%rsi), %r8
58 orq $PAGE_ATTR, %r8
59 movq %r8, (%r9)
60
61 shrq $9, %r10
62 sub $9, %cl
63
64 movq %r11, %r9
65 andq %r10, %r9
66 shrq %cl, %r9
67
68 movq PTR(VA_PMD_0)(%rsi), %r8
69 addq %r8, %r9
70 movq PTR(PA_PTE_0)(%rsi), %r8
71 orq $PAGE_ATTR, %r8
72 movq %r8, (%r9)
73
74 shrq $9, %r10
75 sub $9, %cl
76
77 movq %r11, %r9
78 andq %r10, %r9
79 shrq %cl, %r9
80
81 movq PTR(VA_PTE_0)(%rsi), %r8
82 addq %r8, %r9
83 movq PTR(PA_CONTROL_PAGE)(%rsi), %r8
84 orq $PAGE_ATTR, %r8
85 movq %r8, (%r9)
86
87 /* identity map the control page at its physical address */
88
89 movq $0x0000ff8000000000, %r10 /* mask */
90 mov $(39 - 3), %cl /* bits to shift */
91 movq PTR(PA_CONTROL_PAGE)(%rsi), %r11 /* address to map */
92
93 movq %r11, %r9
94 andq %r10, %r9
95 shrq %cl, %r9
96
97 movq PTR(VA_PGD)(%rsi), %r8
98 addq %r8, %r9
99 movq PTR(PA_PUD_1)(%rsi), %r8
100 orq $PAGE_ATTR, %r8
101 movq %r8, (%r9)
102
103 shrq $9, %r10
104 sub $9, %cl
105
106 movq %r11, %r9
107 andq %r10, %r9
108 shrq %cl, %r9
109
110 movq PTR(VA_PUD_1)(%rsi), %r8
111 addq %r8, %r9
112 movq PTR(PA_PMD_1)(%rsi), %r8
113 orq $PAGE_ATTR, %r8
114 movq %r8, (%r9)
115
116 shrq $9, %r10
117 sub $9, %cl
118
119 movq %r11, %r9
120 andq %r10, %r9
121 shrq %cl, %r9
122
123 movq PTR(VA_PMD_1)(%rsi), %r8
124 addq %r8, %r9
125 movq PTR(PA_PTE_1)(%rsi), %r8
126 orq $PAGE_ATTR, %r8
127 movq %r8, (%r9)
128
129 shrq $9, %r10
130 sub $9, %cl
131
132 movq %r11, %r9
133 andq %r10, %r9
134 shrq %cl, %r9
135
136 movq PTR(VA_PTE_1)(%rsi), %r8
137 addq %r8, %r9
138 movq PTR(PA_CONTROL_PAGE)(%rsi), %r8
139 orq $PAGE_ATTR, %r8
140 movq %r8, (%r9)
141
142relocate_new_kernel:
143 /* %rdi indirection_page
144 * %rsi page_list
145 * %rdx start address
146 */
147
148 /* zero out flags, and disable interrupts */ 32 /* zero out flags, and disable interrupts */
149 pushq $0 33 pushq $0
150 popfq 34 popfq
@@ -156,9 +40,8 @@ relocate_new_kernel:
156 /* get physical address of page table now too */ 40 /* get physical address of page table now too */
157 movq PTR(PA_TABLE_PAGE)(%rsi), %rcx 41 movq PTR(PA_TABLE_PAGE)(%rsi), %rcx
158 42
159 /* switch to new set of page tables */ 43 /* Switch to the identity mapped page tables */
160 movq PTR(PA_PGD)(%rsi), %r9 44 movq %rcx, %cr3
161 movq %r9, %cr3
162 45
163 /* setup a new stack at the end of the physical control page */ 46 /* setup a new stack at the end of the physical control page */
164 lea PAGE_SIZE(%r8), %rsp 47 lea PAGE_SIZE(%r8), %rsp
@@ -194,9 +77,7 @@ identity_mapped:
194 jmp 1f 77 jmp 1f
1951: 781:
196 79
197 /* Switch to the identity mapped page tables, 80 /* Flush the TLB (needed?) */
198 * and flush the TLB.
199 */
200 movq %rcx, %cr3 81 movq %rcx, %cr3
201 82
202 /* Do the copies */ 83 /* Do the copies */
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index ae0d8042cf69..4c54bc0d8ff3 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -74,14 +74,15 @@
74#include <asm/e820.h> 74#include <asm/e820.h>
75#include <asm/mpspec.h> 75#include <asm/mpspec.h>
76#include <asm/setup.h> 76#include <asm/setup.h>
77#include <asm/arch_hooks.h>
78#include <asm/efi.h> 77#include <asm/efi.h>
78#include <asm/timer.h>
79#include <asm/i8259.h>
79#include <asm/sections.h> 80#include <asm/sections.h>
80#include <asm/dmi.h> 81#include <asm/dmi.h>
81#include <asm/io_apic.h> 82#include <asm/io_apic.h>
82#include <asm/ist.h> 83#include <asm/ist.h>
83#include <asm/vmi.h> 84#include <asm/vmi.h>
84#include <setup_arch.h> 85#include <asm/setup_arch.h>
85#include <asm/bios_ebda.h> 86#include <asm/bios_ebda.h>
86#include <asm/cacheflush.h> 87#include <asm/cacheflush.h>
87#include <asm/processor.h> 88#include <asm/processor.h>
@@ -89,7 +90,7 @@
89 90
90#include <asm/system.h> 91#include <asm/system.h>
91#include <asm/vsyscall.h> 92#include <asm/vsyscall.h>
92#include <asm/smp.h> 93#include <asm/cpu.h>
93#include <asm/desc.h> 94#include <asm/desc.h>
94#include <asm/dma.h> 95#include <asm/dma.h>
95#include <asm/iommu.h> 96#include <asm/iommu.h>
@@ -97,7 +98,6 @@
97#include <asm/mmu_context.h> 98#include <asm/mmu_context.h>
98#include <asm/proto.h> 99#include <asm/proto.h>
99 100
100#include <mach_apic.h>
101#include <asm/paravirt.h> 101#include <asm/paravirt.h>
102#include <asm/hypervisor.h> 102#include <asm/hypervisor.h>
103 103
@@ -112,6 +112,20 @@
112#define ARCH_SETUP 112#define ARCH_SETUP
113#endif 113#endif
114 114
115unsigned int boot_cpu_id __read_mostly;
116
117#ifdef CONFIG_X86_64
118int default_cpu_present_to_apicid(int mps_cpu)
119{
120 return __default_cpu_present_to_apicid(mps_cpu);
121}
122
123int default_check_phys_apicid_present(int boot_cpu_physical_apicid)
124{
125 return __default_check_phys_apicid_present(boot_cpu_physical_apicid);
126}
127#endif
128
115#ifndef CONFIG_DEBUG_BOOT_PARAMS 129#ifndef CONFIG_DEBUG_BOOT_PARAMS
116struct boot_params __initdata boot_params; 130struct boot_params __initdata boot_params;
117#else 131#else
@@ -586,20 +600,7 @@ static int __init setup_elfcorehdr(char *arg)
586early_param("elfcorehdr", setup_elfcorehdr); 600early_param("elfcorehdr", setup_elfcorehdr);
587#endif 601#endif
588 602
589static int __init default_update_genapic(void) 603static struct x86_quirks default_x86_quirks __initdata;
590{
591#ifdef CONFIG_X86_SMP
592# if defined(CONFIG_X86_GENERICARCH) || defined(CONFIG_X86_64)
593 genapic->wakeup_cpu = wakeup_secondary_cpu_via_init;
594# endif
595#endif
596
597 return 0;
598}
599
600static struct x86_quirks default_x86_quirks __initdata = {
601 .update_genapic = default_update_genapic,
602};
603 604
604struct x86_quirks *x86_quirks __initdata = &default_x86_quirks; 605struct x86_quirks *x86_quirks __initdata = &default_x86_quirks;
605 606
@@ -607,7 +608,7 @@ struct x86_quirks *x86_quirks __initdata = &default_x86_quirks;
607static int __init dmi_low_memory_corruption(const struct dmi_system_id *d) 608static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
608{ 609{
609 printk(KERN_NOTICE 610 printk(KERN_NOTICE
610 "%s detected: BIOS may corrupt low RAM, working it around.\n", 611 "%s detected: BIOS may corrupt low RAM, working around it.\n",
611 d->ident); 612 d->ident);
612 613
613 e820_update_range(0, 0x10000, E820_RAM, E820_RESERVED); 614 e820_update_range(0, 0x10000, E820_RAM, E820_RESERVED);
@@ -656,7 +657,6 @@ void __init setup_arch(char **cmdline_p)
656#ifdef CONFIG_X86_32 657#ifdef CONFIG_X86_32
657 memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data)); 658 memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data));
658 visws_early_detect(); 659 visws_early_detect();
659 pre_setup_arch_hook();
660#else 660#else
661 printk(KERN_INFO "Command line: %s\n", boot_command_line); 661 printk(KERN_INFO "Command line: %s\n", boot_command_line);
662#endif 662#endif
@@ -823,8 +823,7 @@ void __init setup_arch(char **cmdline_p)
823#else 823#else
824 num_physpages = max_pfn; 824 num_physpages = max_pfn;
825 825
826 if (cpu_has_x2apic) 826 check_x2apic();
827 check_x2apic();
828 827
829 /* How many end-of-memory variables you have, grandma! */ 828 /* How many end-of-memory variables you have, grandma! */
830 /* need this before calling reserve_initrd */ 829 /* need this before calling reserve_initrd */
@@ -864,9 +863,7 @@ void __init setup_arch(char **cmdline_p)
864 863
865 reserve_initrd(); 864 reserve_initrd();
866 865
867#ifdef CONFIG_X86_64
868 vsmp_init(); 866 vsmp_init();
869#endif
870 867
871 io_delay_init(); 868 io_delay_init();
872 869
@@ -892,12 +889,11 @@ void __init setup_arch(char **cmdline_p)
892 */ 889 */
893 acpi_reserve_bootmem(); 890 acpi_reserve_bootmem();
894#endif 891#endif
895#ifdef CONFIG_X86_FIND_SMP_CONFIG
896 /* 892 /*
897 * Find and reserve possible boot-time SMP configuration: 893 * Find and reserve possible boot-time SMP configuration:
898 */ 894 */
899 find_smp_config(); 895 find_smp_config();
900#endif 896
901 reserve_crashkernel(); 897 reserve_crashkernel();
902 898
903#ifdef CONFIG_X86_64 899#ifdef CONFIG_X86_64
@@ -924,9 +920,7 @@ void __init setup_arch(char **cmdline_p)
924 map_vsyscall(); 920 map_vsyscall();
925#endif 921#endif
926 922
927#ifdef CONFIG_X86_GENERICARCH
928 generic_apic_probe(); 923 generic_apic_probe();
929#endif
930 924
931 early_quirks(); 925 early_quirks();
932 926
@@ -977,4 +971,95 @@ void __init setup_arch(char **cmdline_p)
977#endif 971#endif
978} 972}
979 973
974#ifdef CONFIG_X86_32
980 975
976/**
977 * x86_quirk_pre_intr_init - initialisation prior to setting up interrupt vectors
978 *
979 * Description:
980 * Perform any necessary interrupt initialisation prior to setting up
981 * the "ordinary" interrupt call gates. For legacy reasons, the ISA
982 * interrupts should be initialised here if the machine emulates a PC
983 * in any way.
984 **/
985void __init x86_quirk_pre_intr_init(void)
986{
987 if (x86_quirks->arch_pre_intr_init) {
988 if (x86_quirks->arch_pre_intr_init())
989 return;
990 }
991 init_ISA_irqs();
992}
993
994/**
995 * x86_quirk_intr_init - post gate setup interrupt initialisation
996 *
997 * Description:
998 * Fill in any interrupts that may have been left out by the general
999 * init_IRQ() routine. interrupts having to do with the machine rather
1000 * than the devices on the I/O bus (like APIC interrupts in intel MP
1001 * systems) are started here.
1002 **/
1003void __init x86_quirk_intr_init(void)
1004{
1005 if (x86_quirks->arch_intr_init) {
1006 if (x86_quirks->arch_intr_init())
1007 return;
1008 }
1009}
1010
1011/**
1012 * x86_quirk_trap_init - initialise system specific traps
1013 *
1014 * Description:
1015 * Called as the final act of trap_init(). Used in VISWS to initialise
1016 * the various board specific APIC traps.
1017 **/
1018void __init x86_quirk_trap_init(void)
1019{
1020 if (x86_quirks->arch_trap_init) {
1021 if (x86_quirks->arch_trap_init())
1022 return;
1023 }
1024}
1025
1026static struct irqaction irq0 = {
1027 .handler = timer_interrupt,
1028 .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_IRQPOLL | IRQF_TIMER,
1029 .mask = CPU_MASK_NONE,
1030 .name = "timer"
1031};
1032
1033/**
1034 * x86_quirk_pre_time_init - do any specific initialisations before.
1035 *
1036 **/
1037void __init x86_quirk_pre_time_init(void)
1038{
1039 if (x86_quirks->arch_pre_time_init)
1040 x86_quirks->arch_pre_time_init();
1041}
1042
1043/**
1044 * x86_quirk_time_init - do any specific initialisations for the system timer.
1045 *
1046 * Description:
1047 * Must plug the system timer interrupt source at HZ into the IRQ listed
1048 * in irq_vectors.h:TIMER_IRQ
1049 **/
1050void __init x86_quirk_time_init(void)
1051{
1052 if (x86_quirks->arch_time_init) {
1053 /*
1054 * A nonzero return code does not mean failure, it means
1055 * that the architecture quirk does not want any
1056 * generic (timer) setup to be performed after this:
1057 */
1058 if (x86_quirks->arch_time_init())
1059 return;
1060 }
1061
1062 irq0.mask = cpumask_of_cpu(0);
1063 setup_irq(0, &irq0);
1064}
1065#endif /* CONFIG_X86_32 */
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
index a4b619c33106..d992e6cff730 100644
--- a/arch/x86/kernel/setup_percpu.c
+++ b/arch/x86/kernel/setup_percpu.c
@@ -5,133 +5,54 @@
5#include <linux/percpu.h> 5#include <linux/percpu.h>
6#include <linux/kexec.h> 6#include <linux/kexec.h>
7#include <linux/crash_dump.h> 7#include <linux/crash_dump.h>
8#include <asm/smp.h> 8#include <linux/smp.h>
9#include <asm/percpu.h> 9#include <linux/topology.h>
10#include <asm/sections.h> 10#include <asm/sections.h>
11#include <asm/processor.h> 11#include <asm/processor.h>
12#include <asm/setup.h> 12#include <asm/setup.h>
13#include <asm/topology.h>
14#include <asm/mpspec.h> 13#include <asm/mpspec.h>
15#include <asm/apicdef.h> 14#include <asm/apicdef.h>
16#include <asm/highmem.h> 15#include <asm/highmem.h>
16#include <asm/proto.h>
17#include <asm/cpumask.h>
18#include <asm/cpu.h>
19#include <asm/stackprotector.h>
17 20
18#ifdef CONFIG_X86_LOCAL_APIC 21#ifdef CONFIG_DEBUG_PER_CPU_MAPS
19unsigned int num_processors; 22# define DBG(x...) printk(KERN_DEBUG x)
20unsigned disabled_cpus __cpuinitdata; 23#else
21/* Processor that is doing the boot up */ 24# define DBG(x...)
22unsigned int boot_cpu_physical_apicid = -1U;
23unsigned int max_physical_apicid;
24EXPORT_SYMBOL(boot_cpu_physical_apicid);
25
26/* Bitmask of physically existing CPUs */
27physid_mask_t phys_cpu_present_map;
28#endif 25#endif
29 26
30/* map cpu index to physical APIC ID */ 27DEFINE_PER_CPU(int, cpu_number);
31DEFINE_EARLY_PER_CPU(u16, x86_cpu_to_apicid, BAD_APICID); 28EXPORT_PER_CPU_SYMBOL(cpu_number);
32DEFINE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid, BAD_APICID);
33EXPORT_EARLY_PER_CPU_SYMBOL(x86_cpu_to_apicid);
34EXPORT_EARLY_PER_CPU_SYMBOL(x86_bios_cpu_apicid);
35
36#if defined(CONFIG_NUMA) && defined(CONFIG_X86_64)
37#define X86_64_NUMA 1
38
39/* map cpu index to node index */
40DEFINE_EARLY_PER_CPU(int, x86_cpu_to_node_map, NUMA_NO_NODE);
41EXPORT_EARLY_PER_CPU_SYMBOL(x86_cpu_to_node_map);
42
43/* which logical CPUs are on which nodes */
44cpumask_t *node_to_cpumask_map;
45EXPORT_SYMBOL(node_to_cpumask_map);
46
47/* setup node_to_cpumask_map */
48static void __init setup_node_to_cpumask_map(void);
49 29
30#ifdef CONFIG_X86_64
31#define BOOT_PERCPU_OFFSET ((unsigned long)__per_cpu_load)
50#else 32#else
51static inline void setup_node_to_cpumask_map(void) { } 33#define BOOT_PERCPU_OFFSET 0
52#endif 34#endif
53 35
54#if defined(CONFIG_HAVE_SETUP_PER_CPU_AREA) && defined(CONFIG_X86_SMP) 36DEFINE_PER_CPU(unsigned long, this_cpu_off) = BOOT_PERCPU_OFFSET;
55/* 37EXPORT_PER_CPU_SYMBOL(this_cpu_off);
56 * Copy data used in early init routines from the initial arrays to the
57 * per cpu data areas. These arrays then become expendable and the
58 * *_early_ptr's are zeroed indicating that the static arrays are gone.
59 */
60static void __init setup_per_cpu_maps(void)
61{
62 int cpu;
63
64 for_each_possible_cpu(cpu) {
65 per_cpu(x86_cpu_to_apicid, cpu) =
66 early_per_cpu_map(x86_cpu_to_apicid, cpu);
67 per_cpu(x86_bios_cpu_apicid, cpu) =
68 early_per_cpu_map(x86_bios_cpu_apicid, cpu);
69#ifdef X86_64_NUMA
70 per_cpu(x86_cpu_to_node_map, cpu) =
71 early_per_cpu_map(x86_cpu_to_node_map, cpu);
72#endif
73 }
74 38
75 /* indicate the early static arrays will soon be gone */ 39unsigned long __per_cpu_offset[NR_CPUS] __read_mostly = {
76 early_per_cpu_ptr(x86_cpu_to_apicid) = NULL; 40 [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET,
77 early_per_cpu_ptr(x86_bios_cpu_apicid) = NULL; 41};
78#ifdef X86_64_NUMA
79 early_per_cpu_ptr(x86_cpu_to_node_map) = NULL;
80#endif
81}
82
83#ifdef CONFIG_X86_32
84/*
85 * Great future not-so-futuristic plan: make i386 and x86_64 do it
86 * the same way
87 */
88unsigned long __per_cpu_offset[NR_CPUS] __read_mostly;
89EXPORT_SYMBOL(__per_cpu_offset); 42EXPORT_SYMBOL(__per_cpu_offset);
90static inline void setup_cpu_pda_map(void) { }
91
92#elif !defined(CONFIG_SMP)
93static inline void setup_cpu_pda_map(void) { }
94 43
95#else /* CONFIG_SMP && CONFIG_X86_64 */ 44static inline void setup_percpu_segment(int cpu)
96
97/*
98 * Allocate cpu_pda pointer table and array via alloc_bootmem.
99 */
100static void __init setup_cpu_pda_map(void)
101{ 45{
102 char *pda; 46#ifdef CONFIG_X86_32
103 struct x8664_pda **new_cpu_pda; 47 struct desc_struct gdt;
104 unsigned long size;
105 int cpu;
106
107 size = roundup(sizeof(struct x8664_pda), cache_line_size());
108
109 /* allocate cpu_pda array and pointer table */
110 {
111 unsigned long tsize = nr_cpu_ids * sizeof(void *);
112 unsigned long asize = size * (nr_cpu_ids - 1);
113
114 tsize = roundup(tsize, cache_line_size());
115 new_cpu_pda = alloc_bootmem(tsize + asize);
116 pda = (char *)new_cpu_pda + tsize;
117 }
118
119 /* initialize pointer table to static pda's */
120 for_each_possible_cpu(cpu) {
121 if (cpu == 0) {
122 /* leave boot cpu pda in place */
123 new_cpu_pda[0] = cpu_pda(0);
124 continue;
125 }
126 new_cpu_pda[cpu] = (struct x8664_pda *)pda;
127 new_cpu_pda[cpu]->in_bootmem = 1;
128 pda += size;
129 }
130 48
131 /* point to new pointer table */ 49 pack_descriptor(&gdt, per_cpu_offset(cpu), 0xFFFFF,
132 _cpu_pda = new_cpu_pda; 50 0x2 | DESCTYPE_S, 0x8);
133} 51 gdt.s = 1;
52 write_gdt_entry(get_cpu_gdt_table(cpu),
53 GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S);
134#endif 54#endif
55}
135 56
136/* 57/*
137 * Great future plan: 58 * Great future plan:
@@ -140,18 +61,12 @@ static void __init setup_cpu_pda_map(void)
140 */ 61 */
141void __init setup_per_cpu_areas(void) 62void __init setup_per_cpu_areas(void)
142{ 63{
143 ssize_t size, old_size; 64 ssize_t size;
144 char *ptr; 65 char *ptr;
145 int cpu; 66 int cpu;
146 unsigned long align = 1;
147
148 /* Setup cpu_pda map */
149 setup_cpu_pda_map();
150 67
151 /* Copy section for each CPU (we discard the original) */ 68 /* Copy section for each CPU (we discard the original) */
152 old_size = PERCPU_ENOUGH_ROOM; 69 size = roundup(PERCPU_ENOUGH_ROOM, PAGE_SIZE);
153 align = max_t(unsigned long, PAGE_SIZE, align);
154 size = roundup(old_size, align);
155 70
156 pr_info("NR_CPUS:%d nr_cpumask_bits:%d nr_cpu_ids:%d nr_node_ids:%d\n", 71 pr_info("NR_CPUS:%d nr_cpumask_bits:%d nr_cpu_ids:%d nr_node_ids:%d\n",
157 NR_CPUS, nr_cpumask_bits, nr_cpu_ids, nr_node_ids); 72 NR_CPUS, nr_cpumask_bits, nr_cpu_ids, nr_node_ids);
@@ -160,227 +75,72 @@ void __init setup_per_cpu_areas(void)
160 75
161 for_each_possible_cpu(cpu) { 76 for_each_possible_cpu(cpu) {
162#ifndef CONFIG_NEED_MULTIPLE_NODES 77#ifndef CONFIG_NEED_MULTIPLE_NODES
163 ptr = __alloc_bootmem(size, align, 78 ptr = alloc_bootmem_pages(size);
164 __pa(MAX_DMA_ADDRESS));
165#else 79#else
166 int node = early_cpu_to_node(cpu); 80 int node = early_cpu_to_node(cpu);
167 if (!node_online(node) || !NODE_DATA(node)) { 81 if (!node_online(node) || !NODE_DATA(node)) {
168 ptr = __alloc_bootmem(size, align, 82 ptr = alloc_bootmem_pages(size);
169 __pa(MAX_DMA_ADDRESS));
170 pr_info("cpu %d has no node %d or node-local memory\n", 83 pr_info("cpu %d has no node %d or node-local memory\n",
171 cpu, node); 84 cpu, node);
172 pr_debug("per cpu data for cpu%d at %016lx\n", 85 pr_debug("per cpu data for cpu%d at %016lx\n",
173 cpu, __pa(ptr)); 86 cpu, __pa(ptr));
174 } else { 87 } else {
175 ptr = __alloc_bootmem_node(NODE_DATA(node), size, align, 88 ptr = alloc_bootmem_pages_node(NODE_DATA(node), size);
176 __pa(MAX_DMA_ADDRESS));
177 pr_debug("per cpu data for cpu%d on node%d at %016lx\n", 89 pr_debug("per cpu data for cpu%d on node%d at %016lx\n",
178 cpu, node, __pa(ptr)); 90 cpu, node, __pa(ptr));
179 } 91 }
180#endif 92#endif
93
94 memcpy(ptr, __per_cpu_load, __per_cpu_end - __per_cpu_start);
181 per_cpu_offset(cpu) = ptr - __per_cpu_start; 95 per_cpu_offset(cpu) = ptr - __per_cpu_start;
182 memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start); 96 per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu);
97 per_cpu(cpu_number, cpu) = cpu;
98 setup_percpu_segment(cpu);
99 setup_stack_canary_segment(cpu);
100 /*
101 * Copy data used in early init routines from the
102 * initial arrays to the per cpu data areas. These
103 * arrays then become expendable and the *_early_ptr's
104 * are zeroed indicating that the static arrays are
105 * gone.
106 */
107#ifdef CONFIG_X86_LOCAL_APIC
108 per_cpu(x86_cpu_to_apicid, cpu) =
109 early_per_cpu_map(x86_cpu_to_apicid, cpu);
110 per_cpu(x86_bios_cpu_apicid, cpu) =
111 early_per_cpu_map(x86_bios_cpu_apicid, cpu);
112#endif
113#ifdef CONFIG_X86_64
114 per_cpu(irq_stack_ptr, cpu) =
115 per_cpu(irq_stack_union.irq_stack, cpu) +
116 IRQ_STACK_SIZE - 64;
117#ifdef CONFIG_NUMA
118 per_cpu(x86_cpu_to_node_map, cpu) =
119 early_per_cpu_map(x86_cpu_to_node_map, cpu);
120#endif
121#endif
122 /*
123 * Up to this point, the boot CPU has been using .data.init
124 * area. Reload any changed state for the boot CPU.
125 */
126 if (cpu == boot_cpu_id)
127 switch_to_new_gdt(cpu);
128
129 DBG("PERCPU: cpu %4d %p\n", cpu, ptr);
183 } 130 }
184 131
185 /* Setup percpu data maps */ 132 /* indicate the early static arrays will soon be gone */
186 setup_per_cpu_maps(); 133#ifdef CONFIG_X86_LOCAL_APIC
134 early_per_cpu_ptr(x86_cpu_to_apicid) = NULL;
135 early_per_cpu_ptr(x86_bios_cpu_apicid) = NULL;
136#endif
137#if defined(CONFIG_X86_64) && defined(CONFIG_NUMA)
138 early_per_cpu_ptr(x86_cpu_to_node_map) = NULL;
139#endif
187 140
188 /* Setup node to cpumask map */ 141 /* Setup node to cpumask map */
189 setup_node_to_cpumask_map(); 142 setup_node_to_cpumask_map();
190}
191 143
192#endif 144 /* Setup cpu initialized, callin, callout masks */
193 145 setup_cpu_local_masks();
194#ifdef X86_64_NUMA
195
196/*
197 * Allocate node_to_cpumask_map based on number of available nodes
198 * Requires node_possible_map to be valid.
199 *
200 * Note: node_to_cpumask() is not valid until after this is done.
201 */
202static void __init setup_node_to_cpumask_map(void)
203{
204 unsigned int node, num = 0;
205 cpumask_t *map;
206
207 /* setup nr_node_ids if not done yet */
208 if (nr_node_ids == MAX_NUMNODES) {
209 for_each_node_mask(node, node_possible_map)
210 num = node;
211 nr_node_ids = num + 1;
212 }
213
214 /* allocate the map */
215 map = alloc_bootmem_low(nr_node_ids * sizeof(cpumask_t));
216
217 pr_debug("Node to cpumask map at %p for %d nodes\n",
218 map, nr_node_ids);
219
220 /* node_to_cpumask() will now work */
221 node_to_cpumask_map = map;
222}
223
224void __cpuinit numa_set_node(int cpu, int node)
225{
226 int *cpu_to_node_map = early_per_cpu_ptr(x86_cpu_to_node_map);
227
228 if (cpu_pda(cpu) && node != NUMA_NO_NODE)
229 cpu_pda(cpu)->nodenumber = node;
230
231 if (cpu_to_node_map)
232 cpu_to_node_map[cpu] = node;
233
234 else if (per_cpu_offset(cpu))
235 per_cpu(x86_cpu_to_node_map, cpu) = node;
236
237 else
238 pr_debug("Setting node for non-present cpu %d\n", cpu);
239}
240
241void __cpuinit numa_clear_node(int cpu)
242{
243 numa_set_node(cpu, NUMA_NO_NODE);
244}
245
246#ifndef CONFIG_DEBUG_PER_CPU_MAPS
247
248void __cpuinit numa_add_cpu(int cpu)
249{
250 cpu_set(cpu, node_to_cpumask_map[early_cpu_to_node(cpu)]);
251}
252
253void __cpuinit numa_remove_cpu(int cpu)
254{
255 cpu_clear(cpu, node_to_cpumask_map[cpu_to_node(cpu)]);
256}
257
258#else /* CONFIG_DEBUG_PER_CPU_MAPS */
259
260/*
261 * --------- debug versions of the numa functions ---------
262 */
263static void __cpuinit numa_set_cpumask(int cpu, int enable)
264{
265 int node = cpu_to_node(cpu);
266 cpumask_t *mask;
267 char buf[64];
268
269 if (node_to_cpumask_map == NULL) {
270 printk(KERN_ERR "node_to_cpumask_map NULL\n");
271 dump_stack();
272 return;
273 }
274
275 mask = &node_to_cpumask_map[node];
276 if (enable)
277 cpu_set(cpu, *mask);
278 else
279 cpu_clear(cpu, *mask);
280
281 cpulist_scnprintf(buf, sizeof(buf), mask);
282 printk(KERN_DEBUG "%s cpu %d node %d: mask now %s\n",
283 enable? "numa_add_cpu":"numa_remove_cpu", cpu, node, buf);
284 }
285
286void __cpuinit numa_add_cpu(int cpu)
287{
288 numa_set_cpumask(cpu, 1);
289}
290
291void __cpuinit numa_remove_cpu(int cpu)
292{
293 numa_set_cpumask(cpu, 0);
294}
295
296int cpu_to_node(int cpu)
297{
298 if (early_per_cpu_ptr(x86_cpu_to_node_map)) {
299 printk(KERN_WARNING
300 "cpu_to_node(%d): usage too early!\n", cpu);
301 dump_stack();
302 return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu];
303 }
304 return per_cpu(x86_cpu_to_node_map, cpu);
305}
306EXPORT_SYMBOL(cpu_to_node);
307
308/*
309 * Same function as cpu_to_node() but used if called before the
310 * per_cpu areas are setup.
311 */
312int early_cpu_to_node(int cpu)
313{
314 if (early_per_cpu_ptr(x86_cpu_to_node_map))
315 return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu];
316
317 if (!per_cpu_offset(cpu)) {
318 printk(KERN_WARNING
319 "early_cpu_to_node(%d): no per_cpu area!\n", cpu);
320 dump_stack();
321 return NUMA_NO_NODE;
322 }
323 return per_cpu(x86_cpu_to_node_map, cpu);
324}
325
326
327/* empty cpumask */
328static const cpumask_t cpu_mask_none;
329
330/*
331 * Returns a pointer to the bitmask of CPUs on Node 'node'.
332 */
333const cpumask_t *cpumask_of_node(int node)
334{
335 if (node_to_cpumask_map == NULL) {
336 printk(KERN_WARNING
337 "cpumask_of_node(%d): no node_to_cpumask_map!\n",
338 node);
339 dump_stack();
340 return (const cpumask_t *)&cpu_online_map;
341 }
342 if (node >= nr_node_ids) {
343 printk(KERN_WARNING
344 "cpumask_of_node(%d): node > nr_node_ids(%d)\n",
345 node, nr_node_ids);
346 dump_stack();
347 return &cpu_mask_none;
348 }
349 return &node_to_cpumask_map[node];
350} 146}
351EXPORT_SYMBOL(cpumask_of_node);
352
353/*
354 * Returns a bitmask of CPUs on Node 'node'.
355 *
356 * Side note: this function creates the returned cpumask on the stack
357 * so with a high NR_CPUS count, excessive stack space is used. The
358 * node_to_cpumask_ptr function should be used whenever possible.
359 */
360cpumask_t node_to_cpumask(int node)
361{
362 if (node_to_cpumask_map == NULL) {
363 printk(KERN_WARNING
364 "node_to_cpumask(%d): no node_to_cpumask_map!\n", node);
365 dump_stack();
366 return cpu_online_map;
367 }
368 if (node >= nr_node_ids) {
369 printk(KERN_WARNING
370 "node_to_cpumask(%d): node > nr_node_ids(%d)\n",
371 node, nr_node_ids);
372 dump_stack();
373 return cpu_mask_none;
374 }
375 return node_to_cpumask_map[node];
376}
377EXPORT_SYMBOL(node_to_cpumask);
378
379/*
380 * --------- end of debug versions of the numa functions ---------
381 */
382
383#endif /* CONFIG_DEBUG_PER_CPU_MAPS */
384
385#endif /* X86_64_NUMA */
386
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
index 89bb7668041d..d2cc6428c587 100644
--- a/arch/x86/kernel/signal.c
+++ b/arch/x86/kernel/signal.c
@@ -50,27 +50,23 @@
50# define FIX_EFLAGS __FIX_EFLAGS 50# define FIX_EFLAGS __FIX_EFLAGS
51#endif 51#endif
52 52
53#define COPY(x) { \ 53#define COPY(x) do { \
54 err |= __get_user(regs->x, &sc->x); \ 54 get_user_ex(regs->x, &sc->x); \
55} 55} while (0)
56 56
57#define COPY_SEG(seg) { \ 57#define GET_SEG(seg) ({ \
58 unsigned short tmp; \ 58 unsigned short tmp; \
59 err |= __get_user(tmp, &sc->seg); \ 59 get_user_ex(tmp, &sc->seg); \
60 regs->seg = tmp; \ 60 tmp; \
61} 61})
62 62
63#define COPY_SEG_CPL3(seg) { \ 63#define COPY_SEG(seg) do { \
64 unsigned short tmp; \ 64 regs->seg = GET_SEG(seg); \
65 err |= __get_user(tmp, &sc->seg); \ 65} while (0)
66 regs->seg = tmp | 3; \
67}
68 66
69#define GET_SEG(seg) { \ 67#define COPY_SEG_CPL3(seg) do { \
70 unsigned short tmp; \ 68 regs->seg = GET_SEG(seg) | 3; \
71 err |= __get_user(tmp, &sc->seg); \ 69} while (0)
72 loadsegment(seg, tmp); \
73}
74 70
75static int 71static int
76restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, 72restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc,
@@ -83,45 +79,49 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc,
83 /* Always make any pending restarted system calls return -EINTR */ 79 /* Always make any pending restarted system calls return -EINTR */
84 current_thread_info()->restart_block.fn = do_no_restart_syscall; 80 current_thread_info()->restart_block.fn = do_no_restart_syscall;
85 81
82 get_user_try {
83
86#ifdef CONFIG_X86_32 84#ifdef CONFIG_X86_32
87 GET_SEG(gs); 85 set_user_gs(regs, GET_SEG(gs));
88 COPY_SEG(fs); 86 COPY_SEG(fs);
89 COPY_SEG(es); 87 COPY_SEG(es);
90 COPY_SEG(ds); 88 COPY_SEG(ds);
91#endif /* CONFIG_X86_32 */ 89#endif /* CONFIG_X86_32 */
92 90
93 COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx); 91 COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx);
94 COPY(dx); COPY(cx); COPY(ip); 92 COPY(dx); COPY(cx); COPY(ip);
95 93
96#ifdef CONFIG_X86_64 94#ifdef CONFIG_X86_64
97 COPY(r8); 95 COPY(r8);
98 COPY(r9); 96 COPY(r9);
99 COPY(r10); 97 COPY(r10);
100 COPY(r11); 98 COPY(r11);
101 COPY(r12); 99 COPY(r12);
102 COPY(r13); 100 COPY(r13);
103 COPY(r14); 101 COPY(r14);
104 COPY(r15); 102 COPY(r15);
105#endif /* CONFIG_X86_64 */ 103#endif /* CONFIG_X86_64 */
106 104
107#ifdef CONFIG_X86_32 105#ifdef CONFIG_X86_32
108 COPY_SEG_CPL3(cs); 106 COPY_SEG_CPL3(cs);
109 COPY_SEG_CPL3(ss); 107 COPY_SEG_CPL3(ss);
110#else /* !CONFIG_X86_32 */ 108#else /* !CONFIG_X86_32 */
111 /* Kernel saves and restores only the CS segment register on signals, 109 /* Kernel saves and restores only the CS segment register on signals,
112 * which is the bare minimum needed to allow mixed 32/64-bit code. 110 * which is the bare minimum needed to allow mixed 32/64-bit code.
113 * App's signal handler can save/restore other segments if needed. */ 111 * App's signal handler can save/restore other segments if needed. */
114 COPY_SEG_CPL3(cs); 112 COPY_SEG_CPL3(cs);
115#endif /* CONFIG_X86_32 */ 113#endif /* CONFIG_X86_32 */
116 114
117 err |= __get_user(tmpflags, &sc->flags); 115 get_user_ex(tmpflags, &sc->flags);
118 regs->flags = (regs->flags & ~FIX_EFLAGS) | (tmpflags & FIX_EFLAGS); 116 regs->flags = (regs->flags & ~FIX_EFLAGS) | (tmpflags & FIX_EFLAGS);
119 regs->orig_ax = -1; /* disable syscall checks */ 117 regs->orig_ax = -1; /* disable syscall checks */
120 118
121 err |= __get_user(buf, &sc->fpstate); 119 get_user_ex(buf, &sc->fpstate);
122 err |= restore_i387_xstate(buf); 120 err |= restore_i387_xstate(buf);
121
122 get_user_ex(*pax, &sc->ax);
123 } get_user_catch(err);
123 124
124 err |= __get_user(*pax, &sc->ax);
125 return err; 125 return err;
126} 126}
127 127
@@ -131,57 +131,55 @@ setup_sigcontext(struct sigcontext __user *sc, void __user *fpstate,
131{ 131{
132 int err = 0; 132 int err = 0;
133 133
134#ifdef CONFIG_X86_32 134 put_user_try {
135 {
136 unsigned int tmp;
137 135
138 savesegment(gs, tmp); 136#ifdef CONFIG_X86_32
139 err |= __put_user(tmp, (unsigned int __user *)&sc->gs); 137 put_user_ex(get_user_gs(regs), (unsigned int __user *)&sc->gs);
140 } 138 put_user_ex(regs->fs, (unsigned int __user *)&sc->fs);
141 err |= __put_user(regs->fs, (unsigned int __user *)&sc->fs); 139 put_user_ex(regs->es, (unsigned int __user *)&sc->es);
142 err |= __put_user(regs->es, (unsigned int __user *)&sc->es); 140 put_user_ex(regs->ds, (unsigned int __user *)&sc->ds);
143 err |= __put_user(regs->ds, (unsigned int __user *)&sc->ds);
144#endif /* CONFIG_X86_32 */ 141#endif /* CONFIG_X86_32 */
145 142
146 err |= __put_user(regs->di, &sc->di); 143 put_user_ex(regs->di, &sc->di);
147 err |= __put_user(regs->si, &sc->si); 144 put_user_ex(regs->si, &sc->si);
148 err |= __put_user(regs->bp, &sc->bp); 145 put_user_ex(regs->bp, &sc->bp);
149 err |= __put_user(regs->sp, &sc->sp); 146 put_user_ex(regs->sp, &sc->sp);
150 err |= __put_user(regs->bx, &sc->bx); 147 put_user_ex(regs->bx, &sc->bx);
151 err |= __put_user(regs->dx, &sc->dx); 148 put_user_ex(regs->dx, &sc->dx);
152 err |= __put_user(regs->cx, &sc->cx); 149 put_user_ex(regs->cx, &sc->cx);
153 err |= __put_user(regs->ax, &sc->ax); 150 put_user_ex(regs->ax, &sc->ax);
154#ifdef CONFIG_X86_64 151#ifdef CONFIG_X86_64
155 err |= __put_user(regs->r8, &sc->r8); 152 put_user_ex(regs->r8, &sc->r8);
156 err |= __put_user(regs->r9, &sc->r9); 153 put_user_ex(regs->r9, &sc->r9);
157 err |= __put_user(regs->r10, &sc->r10); 154 put_user_ex(regs->r10, &sc->r10);
158 err |= __put_user(regs->r11, &sc->r11); 155 put_user_ex(regs->r11, &sc->r11);
159 err |= __put_user(regs->r12, &sc->r12); 156 put_user_ex(regs->r12, &sc->r12);
160 err |= __put_user(regs->r13, &sc->r13); 157 put_user_ex(regs->r13, &sc->r13);
161 err |= __put_user(regs->r14, &sc->r14); 158 put_user_ex(regs->r14, &sc->r14);
162 err |= __put_user(regs->r15, &sc->r15); 159 put_user_ex(regs->r15, &sc->r15);
163#endif /* CONFIG_X86_64 */ 160#endif /* CONFIG_X86_64 */
164 161
165 err |= __put_user(current->thread.trap_no, &sc->trapno); 162 put_user_ex(current->thread.trap_no, &sc->trapno);
166 err |= __put_user(current->thread.error_code, &sc->err); 163 put_user_ex(current->thread.error_code, &sc->err);
167 err |= __put_user(regs->ip, &sc->ip); 164 put_user_ex(regs->ip, &sc->ip);
168#ifdef CONFIG_X86_32 165#ifdef CONFIG_X86_32
169 err |= __put_user(regs->cs, (unsigned int __user *)&sc->cs); 166 put_user_ex(regs->cs, (unsigned int __user *)&sc->cs);
170 err |= __put_user(regs->flags, &sc->flags); 167 put_user_ex(regs->flags, &sc->flags);
171 err |= __put_user(regs->sp, &sc->sp_at_signal); 168 put_user_ex(regs->sp, &sc->sp_at_signal);
172 err |= __put_user(regs->ss, (unsigned int __user *)&sc->ss); 169 put_user_ex(regs->ss, (unsigned int __user *)&sc->ss);
173#else /* !CONFIG_X86_32 */ 170#else /* !CONFIG_X86_32 */
174 err |= __put_user(regs->flags, &sc->flags); 171 put_user_ex(regs->flags, &sc->flags);
175 err |= __put_user(regs->cs, &sc->cs); 172 put_user_ex(regs->cs, &sc->cs);
176 err |= __put_user(0, &sc->gs); 173 put_user_ex(0, &sc->gs);
177 err |= __put_user(0, &sc->fs); 174 put_user_ex(0, &sc->fs);
178#endif /* CONFIG_X86_32 */ 175#endif /* CONFIG_X86_32 */
179 176
180 err |= __put_user(fpstate, &sc->fpstate); 177 put_user_ex(fpstate, &sc->fpstate);
181 178
182 /* non-iBCS2 extensions.. */ 179 /* non-iBCS2 extensions.. */
183 err |= __put_user(mask, &sc->oldmask); 180 put_user_ex(mask, &sc->oldmask);
184 err |= __put_user(current->thread.cr2, &sc->cr2); 181 put_user_ex(current->thread.cr2, &sc->cr2);
182 } put_user_catch(err);
185 183
186 return err; 184 return err;
187} 185}
@@ -189,40 +187,35 @@ setup_sigcontext(struct sigcontext __user *sc, void __user *fpstate,
189/* 187/*
190 * Set up a signal frame. 188 * Set up a signal frame.
191 */ 189 */
192#ifdef CONFIG_X86_32
193static const struct {
194 u16 poplmovl;
195 u32 val;
196 u16 int80;
197} __attribute__((packed)) retcode = {
198 0xb858, /* popl %eax; movl $..., %eax */
199 __NR_sigreturn,
200 0x80cd, /* int $0x80 */
201};
202
203static const struct {
204 u8 movl;
205 u32 val;
206 u16 int80;
207 u8 pad;
208} __attribute__((packed)) rt_retcode = {
209 0xb8, /* movl $..., %eax */
210 __NR_rt_sigreturn,
211 0x80cd, /* int $0x80 */
212 0
213};
214 190
215/* 191/*
216 * Determine which stack to use.. 192 * Determine which stack to use..
217 */ 193 */
194static unsigned long align_sigframe(unsigned long sp)
195{
196#ifdef CONFIG_X86_32
197 /*
198 * Align the stack pointer according to the i386 ABI,
199 * i.e. so that on function entry ((sp + 4) & 15) == 0.
200 */
201 sp = ((sp + 4) & -16ul) - 4;
202#else /* !CONFIG_X86_32 */
203 sp = round_down(sp, 16) - 8;
204#endif
205 return sp;
206}
207
218static inline void __user * 208static inline void __user *
219get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size, 209get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size,
220 void **fpstate) 210 void __user **fpstate)
221{ 211{
222 unsigned long sp;
223
224 /* Default to using normal stack */ 212 /* Default to using normal stack */
225 sp = regs->sp; 213 unsigned long sp = regs->sp;
214
215#ifdef CONFIG_X86_64
216 /* redzone */
217 sp -= 128;
218#endif /* CONFIG_X86_64 */
226 219
227 /* 220 /*
228 * If we are on the alternate signal stack and would overflow it, don't. 221 * If we are on the alternate signal stack and would overflow it, don't.
@@ -236,30 +229,52 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size,
236 if (sas_ss_flags(sp) == 0) 229 if (sas_ss_flags(sp) == 0)
237 sp = current->sas_ss_sp + current->sas_ss_size; 230 sp = current->sas_ss_sp + current->sas_ss_size;
238 } else { 231 } else {
232#ifdef CONFIG_X86_32
239 /* This is the legacy signal stack switching. */ 233 /* This is the legacy signal stack switching. */
240 if ((regs->ss & 0xffff) != __USER_DS && 234 if ((regs->ss & 0xffff) != __USER_DS &&
241 !(ka->sa.sa_flags & SA_RESTORER) && 235 !(ka->sa.sa_flags & SA_RESTORER) &&
242 ka->sa.sa_restorer) 236 ka->sa.sa_restorer)
243 sp = (unsigned long) ka->sa.sa_restorer; 237 sp = (unsigned long) ka->sa.sa_restorer;
238#endif /* CONFIG_X86_32 */
244 } 239 }
245 240
246 if (used_math()) { 241 if (used_math()) {
247 sp = sp - sig_xstate_size; 242 sp -= sig_xstate_size;
248 *fpstate = (struct _fpstate *) sp; 243#ifdef CONFIG_X86_64
244 sp = round_down(sp, 64);
245#endif /* CONFIG_X86_64 */
246 *fpstate = (void __user *)sp;
247
249 if (save_i387_xstate(*fpstate) < 0) 248 if (save_i387_xstate(*fpstate) < 0)
250 return (void __user *)-1L; 249 return (void __user *)-1L;
251 } 250 }
252 251
253 sp -= frame_size; 252 return (void __user *)align_sigframe(sp - frame_size);
254 /*
255 * Align the stack pointer according to the i386 ABI,
256 * i.e. so that on function entry ((sp + 4) & 15) == 0.
257 */
258 sp = ((sp + 4) & -16ul) - 4;
259
260 return (void __user *) sp;
261} 253}
262 254
255#ifdef CONFIG_X86_32
256static const struct {
257 u16 poplmovl;
258 u32 val;
259 u16 int80;
260} __attribute__((packed)) retcode = {
261 0xb858, /* popl %eax; movl $..., %eax */
262 __NR_sigreturn,
263 0x80cd, /* int $0x80 */
264};
265
266static const struct {
267 u8 movl;
268 u32 val;
269 u16 int80;
270 u8 pad;
271} __attribute__((packed)) rt_retcode = {
272 0xb8, /* movl $..., %eax */
273 __NR_rt_sigreturn,
274 0x80cd, /* int $0x80 */
275 0
276};
277
263static int 278static int
264__setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, 279__setup_frame(int sig, struct k_sigaction *ka, sigset_t *set,
265 struct pt_regs *regs) 280 struct pt_regs *regs)
@@ -336,43 +351,41 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
336 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 351 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
337 return -EFAULT; 352 return -EFAULT;
338 353
339 err |= __put_user(sig, &frame->sig); 354 put_user_try {
340 err |= __put_user(&frame->info, &frame->pinfo); 355 put_user_ex(sig, &frame->sig);
341 err |= __put_user(&frame->uc, &frame->puc); 356 put_user_ex(&frame->info, &frame->pinfo);
342 err |= copy_siginfo_to_user(&frame->info, info); 357 put_user_ex(&frame->uc, &frame->puc);
343 if (err) 358 err |= copy_siginfo_to_user(&frame->info, info);
344 return -EFAULT;
345 359
346 /* Create the ucontext. */ 360 /* Create the ucontext. */
347 if (cpu_has_xsave) 361 if (cpu_has_xsave)
348 err |= __put_user(UC_FP_XSTATE, &frame->uc.uc_flags); 362 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags);
349 else 363 else
350 err |= __put_user(0, &frame->uc.uc_flags); 364 put_user_ex(0, &frame->uc.uc_flags);
351 err |= __put_user(0, &frame->uc.uc_link); 365 put_user_ex(0, &frame->uc.uc_link);
352 err |= __put_user(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); 366 put_user_ex(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp);
353 err |= __put_user(sas_ss_flags(regs->sp), 367 put_user_ex(sas_ss_flags(regs->sp),
354 &frame->uc.uc_stack.ss_flags); 368 &frame->uc.uc_stack.ss_flags);
355 err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); 369 put_user_ex(current->sas_ss_size, &frame->uc.uc_stack.ss_size);
356 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate, 370 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate,
357 regs, set->sig[0]); 371 regs, set->sig[0]);
358 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); 372 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
359 if (err) 373
360 return -EFAULT; 374 /* Set up to return from userspace. */
361 375 restorer = VDSO32_SYMBOL(current->mm->context.vdso, rt_sigreturn);
362 /* Set up to return from userspace. */ 376 if (ka->sa.sa_flags & SA_RESTORER)
363 restorer = VDSO32_SYMBOL(current->mm->context.vdso, rt_sigreturn); 377 restorer = ka->sa.sa_restorer;
364 if (ka->sa.sa_flags & SA_RESTORER) 378 put_user_ex(restorer, &frame->pretcode);
365 restorer = ka->sa.sa_restorer;
366 err |= __put_user(restorer, &frame->pretcode);
367 379
368 /* 380 /*
369 * This is movl $__NR_rt_sigreturn, %ax ; int $0x80 381 * This is movl $__NR_rt_sigreturn, %ax ; int $0x80
370 * 382 *
371 * WE DO NOT USE IT ANY MORE! It's only left here for historical 383 * WE DO NOT USE IT ANY MORE! It's only left here for historical
372 * reasons and because gdb uses it as a signature to notice 384 * reasons and because gdb uses it as a signature to notice
373 * signal handler stack frames. 385 * signal handler stack frames.
374 */ 386 */
375 err |= __put_user(*((u64 *)&rt_retcode), (u64 *)frame->retcode); 387 put_user_ex(*((u64 *)&rt_retcode), (u64 *)frame->retcode);
388 } put_user_catch(err);
376 389
377 if (err) 390 if (err)
378 return -EFAULT; 391 return -EFAULT;
@@ -392,24 +405,6 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
392 return 0; 405 return 0;
393} 406}
394#else /* !CONFIG_X86_32 */ 407#else /* !CONFIG_X86_32 */
395/*
396 * Determine which stack to use..
397 */
398static void __user *
399get_stack(struct k_sigaction *ka, unsigned long sp, unsigned long size)
400{
401 /* Default to using normal stack - redzone*/
402 sp -= 128;
403
404 /* This is the X/Open sanctioned signal stack switching. */
405 if (ka->sa.sa_flags & SA_ONSTACK) {
406 if (sas_ss_flags(sp) == 0)
407 sp = current->sas_ss_sp + current->sas_ss_size;
408 }
409
410 return (void __user *)round_down(sp - size, 64);
411}
412
413static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, 408static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
414 sigset_t *set, struct pt_regs *regs) 409 sigset_t *set, struct pt_regs *regs)
415{ 410{
@@ -418,15 +413,7 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
418 int err = 0; 413 int err = 0;
419 struct task_struct *me = current; 414 struct task_struct *me = current;
420 415
421 if (used_math()) { 416 frame = get_sigframe(ka, regs, sizeof(struct rt_sigframe), &fp);
422 fp = get_stack(ka, regs->sp, sig_xstate_size);
423 frame = (void __user *)round_down(
424 (unsigned long)fp - sizeof(struct rt_sigframe), 16) - 8;
425
426 if (save_i387_xstate(fp) < 0)
427 return -EFAULT;
428 } else
429 frame = get_stack(ka, regs->sp, sizeof(struct rt_sigframe)) - 8;
430 417
431 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 418 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
432 return -EFAULT; 419 return -EFAULT;
@@ -436,28 +423,30 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
436 return -EFAULT; 423 return -EFAULT;
437 } 424 }
438 425
439 /* Create the ucontext. */ 426 put_user_try {
440 if (cpu_has_xsave) 427 /* Create the ucontext. */
441 err |= __put_user(UC_FP_XSTATE, &frame->uc.uc_flags); 428 if (cpu_has_xsave)
442 else 429 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags);
443 err |= __put_user(0, &frame->uc.uc_flags); 430 else
444 err |= __put_user(0, &frame->uc.uc_link); 431 put_user_ex(0, &frame->uc.uc_flags);
445 err |= __put_user(me->sas_ss_sp, &frame->uc.uc_stack.ss_sp); 432 put_user_ex(0, &frame->uc.uc_link);
446 err |= __put_user(sas_ss_flags(regs->sp), 433 put_user_ex(me->sas_ss_sp, &frame->uc.uc_stack.ss_sp);
447 &frame->uc.uc_stack.ss_flags); 434 put_user_ex(sas_ss_flags(regs->sp),
448 err |= __put_user(me->sas_ss_size, &frame->uc.uc_stack.ss_size); 435 &frame->uc.uc_stack.ss_flags);
449 err |= setup_sigcontext(&frame->uc.uc_mcontext, fp, regs, set->sig[0]); 436 put_user_ex(me->sas_ss_size, &frame->uc.uc_stack.ss_size);
450 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); 437 err |= setup_sigcontext(&frame->uc.uc_mcontext, fp, regs, set->sig[0]);
451 438 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
452 /* Set up to return from userspace. If provided, use a stub 439
453 already in userspace. */ 440 /* Set up to return from userspace. If provided, use a stub
454 /* x86-64 should always use SA_RESTORER. */ 441 already in userspace. */
455 if (ka->sa.sa_flags & SA_RESTORER) { 442 /* x86-64 should always use SA_RESTORER. */
456 err |= __put_user(ka->sa.sa_restorer, &frame->pretcode); 443 if (ka->sa.sa_flags & SA_RESTORER) {
457 } else { 444 put_user_ex(ka->sa.sa_restorer, &frame->pretcode);
458 /* could use a vstub here */ 445 } else {
459 return -EFAULT; 446 /* could use a vstub here */
460 } 447 err |= -EFAULT;
448 }
449 } put_user_catch(err);
461 450
462 if (err) 451 if (err)
463 return -EFAULT; 452 return -EFAULT;
@@ -509,31 +498,41 @@ sys_sigaction(int sig, const struct old_sigaction __user *act,
509 struct old_sigaction __user *oact) 498 struct old_sigaction __user *oact)
510{ 499{
511 struct k_sigaction new_ka, old_ka; 500 struct k_sigaction new_ka, old_ka;
512 int ret; 501 int ret = 0;
513 502
514 if (act) { 503 if (act) {
515 old_sigset_t mask; 504 old_sigset_t mask;
516 505
517 if (!access_ok(VERIFY_READ, act, sizeof(*act)) || 506 if (!access_ok(VERIFY_READ, act, sizeof(*act)))
518 __get_user(new_ka.sa.sa_handler, &act->sa_handler) ||
519 __get_user(new_ka.sa.sa_restorer, &act->sa_restorer))
520 return -EFAULT; 507 return -EFAULT;
521 508
522 __get_user(new_ka.sa.sa_flags, &act->sa_flags); 509 get_user_try {
523 __get_user(mask, &act->sa_mask); 510 get_user_ex(new_ka.sa.sa_handler, &act->sa_handler);
511 get_user_ex(new_ka.sa.sa_flags, &act->sa_flags);
512 get_user_ex(mask, &act->sa_mask);
513 get_user_ex(new_ka.sa.sa_restorer, &act->sa_restorer);
514 } get_user_catch(ret);
515
516 if (ret)
517 return -EFAULT;
524 siginitset(&new_ka.sa.sa_mask, mask); 518 siginitset(&new_ka.sa.sa_mask, mask);
525 } 519 }
526 520
527 ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL); 521 ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
528 522
529 if (!ret && oact) { 523 if (!ret && oact) {
530 if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)) || 524 if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)))
531 __put_user(old_ka.sa.sa_handler, &oact->sa_handler) ||
532 __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer))
533 return -EFAULT; 525 return -EFAULT;
534 526
535 __put_user(old_ka.sa.sa_flags, &oact->sa_flags); 527 put_user_try {
536 __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask); 528 put_user_ex(old_ka.sa.sa_handler, &oact->sa_handler);
529 put_user_ex(old_ka.sa.sa_flags, &oact->sa_flags);
530 put_user_ex(old_ka.sa.sa_mask.sig[0], &oact->sa_mask);
531 put_user_ex(old_ka.sa.sa_restorer, &oact->sa_restorer);
532 } put_user_catch(ret);
533
534 if (ret)
535 return -EFAULT;
537 } 536 }
538 537
539 return ret; 538 return ret;
@@ -541,14 +540,9 @@ sys_sigaction(int sig, const struct old_sigaction __user *act,
541#endif /* CONFIG_X86_32 */ 540#endif /* CONFIG_X86_32 */
542 541
543#ifdef CONFIG_X86_32 542#ifdef CONFIG_X86_32
544asmlinkage int sys_sigaltstack(unsigned long bx) 543int sys_sigaltstack(struct pt_regs *regs)
545{ 544{
546 /* 545 const stack_t __user *uss = (const stack_t __user *)regs->bx;
547 * This is needed to make gcc realize it doesn't own the
548 * "struct pt_regs"
549 */
550 struct pt_regs *regs = (struct pt_regs *)&bx;
551 const stack_t __user *uss = (const stack_t __user *)bx;
552 stack_t __user *uoss = (stack_t __user *)regs->cx; 546 stack_t __user *uoss = (stack_t __user *)regs->cx;
553 547
554 return do_sigaltstack(uss, uoss, regs->sp); 548 return do_sigaltstack(uss, uoss, regs->sp);
@@ -566,14 +560,12 @@ sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss,
566 * Do a signal return; undo the signal stack. 560 * Do a signal return; undo the signal stack.
567 */ 561 */
568#ifdef CONFIG_X86_32 562#ifdef CONFIG_X86_32
569asmlinkage unsigned long sys_sigreturn(unsigned long __unused) 563unsigned long sys_sigreturn(struct pt_regs *regs)
570{ 564{
571 struct sigframe __user *frame; 565 struct sigframe __user *frame;
572 struct pt_regs *regs;
573 unsigned long ax; 566 unsigned long ax;
574 sigset_t set; 567 sigset_t set;
575 568
576 regs = (struct pt_regs *) &__unused;
577 frame = (struct sigframe __user *)(regs->sp - 8); 569 frame = (struct sigframe __user *)(regs->sp - 8);
578 570
579 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) 571 if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
@@ -600,7 +592,7 @@ badframe:
600} 592}
601#endif /* CONFIG_X86_32 */ 593#endif /* CONFIG_X86_32 */
602 594
603static long do_rt_sigreturn(struct pt_regs *regs) 595long sys_rt_sigreturn(struct pt_regs *regs)
604{ 596{
605 struct rt_sigframe __user *frame; 597 struct rt_sigframe __user *frame;
606 unsigned long ax; 598 unsigned long ax;
@@ -631,18 +623,6 @@ badframe:
631 return 0; 623 return 0;
632} 624}
633 625
634#ifdef CONFIG_X86_32
635asmlinkage int sys_rt_sigreturn(struct pt_regs regs)
636{
637 return do_rt_sigreturn(&regs);
638}
639#else /* !CONFIG_X86_32 */
640asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
641{
642 return do_rt_sigreturn(regs);
643}
644#endif /* CONFIG_X86_32 */
645
646/* 626/*
647 * OK, we're invoking a handler: 627 * OK, we're invoking a handler:
648 */ 628 */
diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
index beea2649a240..13f33ea8ccaa 100644
--- a/arch/x86/kernel/smp.c
+++ b/arch/x86/kernel/smp.c
@@ -1,8 +1,8 @@
1/* 1/*
2 * Intel SMP support routines. 2 * Intel SMP support routines.
3 * 3 *
4 * (c) 1995 Alan Cox, Building #3 <alan@redhat.com> 4 * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk>
5 * (c) 1998-99, 2000 Ingo Molnar <mingo@redhat.com> 5 * (c) 1998-99, 2000, 2009 Ingo Molnar <mingo@redhat.com>
6 * (c) 2002,2003 Andi Kleen, SuSE Labs. 6 * (c) 2002,2003 Andi Kleen, SuSE Labs.
7 * 7 *
8 * i386 and x86_64 integration by Glauber Costa <gcosta@redhat.com> 8 * i386 and x86_64 integration by Glauber Costa <gcosta@redhat.com>
@@ -26,8 +26,7 @@
26#include <asm/tlbflush.h> 26#include <asm/tlbflush.h>
27#include <asm/mmu_context.h> 27#include <asm/mmu_context.h>
28#include <asm/proto.h> 28#include <asm/proto.h>
29#include <mach_ipi.h> 29#include <asm/apic.h>
30#include <mach_apic.h>
31/* 30/*
32 * Some notes on x86 processor bugs affecting SMP operation: 31 * Some notes on x86 processor bugs affecting SMP operation:
33 * 32 *
@@ -118,26 +117,33 @@ static void native_smp_send_reschedule(int cpu)
118 WARN_ON(1); 117 WARN_ON(1);
119 return; 118 return;
120 } 119 }
121 send_IPI_mask(cpumask_of(cpu), RESCHEDULE_VECTOR); 120 apic->send_IPI_mask(cpumask_of(cpu), RESCHEDULE_VECTOR);
122} 121}
123 122
124void native_send_call_func_single_ipi(int cpu) 123void native_send_call_func_single_ipi(int cpu)
125{ 124{
126 send_IPI_mask(cpumask_of(cpu), CALL_FUNCTION_SINGLE_VECTOR); 125 apic->send_IPI_mask(cpumask_of(cpu), CALL_FUNCTION_SINGLE_VECTOR);
127} 126}
128 127
129void native_send_call_func_ipi(const struct cpumask *mask) 128void native_send_call_func_ipi(const struct cpumask *mask)
130{ 129{
131 cpumask_t allbutself; 130 cpumask_var_t allbutself;
132 131
133 allbutself = cpu_online_map; 132 if (!alloc_cpumask_var(&allbutself, GFP_ATOMIC)) {
134 cpu_clear(smp_processor_id(), allbutself); 133 apic->send_IPI_mask(mask, CALL_FUNCTION_VECTOR);
134 return;
135 }
135 136
136 if (cpus_equal(*mask, allbutself) && 137 cpumask_copy(allbutself, cpu_online_mask);
137 cpus_equal(cpu_online_map, cpu_callout_map)) 138 cpumask_clear_cpu(smp_processor_id(), allbutself);
138 send_IPI_allbutself(CALL_FUNCTION_VECTOR); 139
140 if (cpumask_equal(mask, allbutself) &&
141 cpumask_equal(cpu_online_mask, cpu_callout_mask))
142 apic->send_IPI_allbutself(CALL_FUNCTION_VECTOR);
139 else 143 else
140 send_IPI_mask(mask, CALL_FUNCTION_VECTOR); 144 apic->send_IPI_mask(mask, CALL_FUNCTION_VECTOR);
145
146 free_cpumask_var(allbutself);
141} 147}
142 148
143/* 149/*
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 6bd4d9b73870..249334f5080a 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -1,8 +1,8 @@
1/* 1/*
2 * x86 SMP booting functions 2 * x86 SMP booting functions
3 * 3 *
4 * (c) 1995 Alan Cox, Building #3 <alan@redhat.com> 4 * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk>
5 * (c) 1998, 1999, 2000 Ingo Molnar <mingo@redhat.com> 5 * (c) 1998, 1999, 2000, 2009 Ingo Molnar <mingo@redhat.com>
6 * Copyright 2001 Andi Kleen, SuSE Labs. 6 * Copyright 2001 Andi Kleen, SuSE Labs.
7 * 7 *
8 * Much of the core SMP work is based on previous work by Thomas Radke, to 8 * Much of the core SMP work is based on previous work by Thomas Radke, to
@@ -53,7 +53,6 @@
53#include <asm/nmi.h> 53#include <asm/nmi.h>
54#include <asm/irq.h> 54#include <asm/irq.h>
55#include <asm/idle.h> 55#include <asm/idle.h>
56#include <asm/smp.h>
57#include <asm/trampoline.h> 56#include <asm/trampoline.h>
58#include <asm/cpu.h> 57#include <asm/cpu.h>
59#include <asm/numa.h> 58#include <asm/numa.h>
@@ -61,13 +60,12 @@
61#include <asm/tlbflush.h> 60#include <asm/tlbflush.h>
62#include <asm/mtrr.h> 61#include <asm/mtrr.h>
63#include <asm/vmi.h> 62#include <asm/vmi.h>
64#include <asm/genapic.h> 63#include <asm/apic.h>
65#include <asm/setup.h> 64#include <asm/setup.h>
65#include <asm/uv/uv.h>
66#include <linux/mc146818rtc.h> 66#include <linux/mc146818rtc.h>
67 67
68#include <mach_apic.h> 68#include <asm/smpboot_hooks.h>
69#include <mach_wakecpu.h>
70#include <smpboot_hooks.h>
71 69
72#ifdef CONFIG_X86_32 70#ifdef CONFIG_X86_32
73u8 apicid_2_node[MAX_APICID]; 71u8 apicid_2_node[MAX_APICID];
@@ -102,9 +100,6 @@ EXPORT_SYMBOL(smp_num_siblings);
102/* Last level cache ID of each logical CPU */ 100/* Last level cache ID of each logical CPU */
103DEFINE_PER_CPU(u16, cpu_llc_id) = BAD_APICID; 101DEFINE_PER_CPU(u16, cpu_llc_id) = BAD_APICID;
104 102
105cpumask_t cpu_callin_map;
106cpumask_t cpu_callout_map;
107
108/* representing HT siblings of each logical CPU */ 103/* representing HT siblings of each logical CPU */
109DEFINE_PER_CPU(cpumask_t, cpu_sibling_map); 104DEFINE_PER_CPU(cpumask_t, cpu_sibling_map);
110EXPORT_PER_CPU_SYMBOL(cpu_sibling_map); 105EXPORT_PER_CPU_SYMBOL(cpu_sibling_map);
@@ -117,11 +112,8 @@ EXPORT_PER_CPU_SYMBOL(cpu_core_map);
117DEFINE_PER_CPU_SHARED_ALIGNED(struct cpuinfo_x86, cpu_info); 112DEFINE_PER_CPU_SHARED_ALIGNED(struct cpuinfo_x86, cpu_info);
118EXPORT_PER_CPU_SYMBOL(cpu_info); 113EXPORT_PER_CPU_SYMBOL(cpu_info);
119 114
120static atomic_t init_deasserted; 115atomic_t init_deasserted;
121
122 116
123/* representing cpus for which sibling maps can be computed */
124static cpumask_t cpu_sibling_setup_map;
125 117
126/* Set if we find a B stepping CPU */ 118/* Set if we find a B stepping CPU */
127static int __cpuinitdata smp_b_stepping; 119static int __cpuinitdata smp_b_stepping;
@@ -140,7 +132,7 @@ EXPORT_SYMBOL(cpu_to_node_map);
140static void map_cpu_to_node(int cpu, int node) 132static void map_cpu_to_node(int cpu, int node)
141{ 133{
142 printk(KERN_INFO "Mapping cpu %d to node %d\n", cpu, node); 134 printk(KERN_INFO "Mapping cpu %d to node %d\n", cpu, node);
143 cpu_set(cpu, node_to_cpumask_map[node]); 135 cpumask_set_cpu(cpu, &node_to_cpumask_map[node]);
144 cpu_to_node_map[cpu] = node; 136 cpu_to_node_map[cpu] = node;
145} 137}
146 138
@@ -151,7 +143,7 @@ static void unmap_cpu_to_node(int cpu)
151 143
152 printk(KERN_INFO "Unmapping cpu %d from all nodes\n", cpu); 144 printk(KERN_INFO "Unmapping cpu %d from all nodes\n", cpu);
153 for (node = 0; node < MAX_NUMNODES; node++) 145 for (node = 0; node < MAX_NUMNODES; node++)
154 cpu_clear(cpu, node_to_cpumask_map[node]); 146 cpumask_clear_cpu(cpu, &node_to_cpumask_map[node]);
155 cpu_to_node_map[cpu] = 0; 147 cpu_to_node_map[cpu] = 0;
156} 148}
157#else /* !(CONFIG_NUMA && CONFIG_X86_32) */ 149#else /* !(CONFIG_NUMA && CONFIG_X86_32) */
@@ -169,7 +161,7 @@ static void map_cpu_to_logical_apicid(void)
169{ 161{
170 int cpu = smp_processor_id(); 162 int cpu = smp_processor_id();
171 int apicid = logical_smp_processor_id(); 163 int apicid = logical_smp_processor_id();
172 int node = apicid_to_node(apicid); 164 int node = apic->apicid_to_node(apicid);
173 165
174 if (!node_online(node)) 166 if (!node_online(node))
175 node = first_online_node; 167 node = first_online_node;
@@ -202,14 +194,15 @@ static void __cpuinit smp_callin(void)
202 * our local APIC. We have to wait for the IPI or we'll 194 * our local APIC. We have to wait for the IPI or we'll
203 * lock up on an APIC access. 195 * lock up on an APIC access.
204 */ 196 */
205 wait_for_init_deassert(&init_deasserted); 197 if (apic->wait_for_init_deassert)
198 apic->wait_for_init_deassert(&init_deasserted);
206 199
207 /* 200 /*
208 * (This works even if the APIC is not enabled.) 201 * (This works even if the APIC is not enabled.)
209 */ 202 */
210 phys_id = read_apic_id(); 203 phys_id = read_apic_id();
211 cpuid = smp_processor_id(); 204 cpuid = smp_processor_id();
212 if (cpu_isset(cpuid, cpu_callin_map)) { 205 if (cpumask_test_cpu(cpuid, cpu_callin_mask)) {
213 panic("%s: phys CPU#%d, CPU#%d already present??\n", __func__, 206 panic("%s: phys CPU#%d, CPU#%d already present??\n", __func__,
214 phys_id, cpuid); 207 phys_id, cpuid);
215 } 208 }
@@ -231,7 +224,7 @@ static void __cpuinit smp_callin(void)
231 /* 224 /*
232 * Has the boot CPU finished it's STARTUP sequence? 225 * Has the boot CPU finished it's STARTUP sequence?
233 */ 226 */
234 if (cpu_isset(cpuid, cpu_callout_map)) 227 if (cpumask_test_cpu(cpuid, cpu_callout_mask))
235 break; 228 break;
236 cpu_relax(); 229 cpu_relax();
237 } 230 }
@@ -249,7 +242,8 @@ static void __cpuinit smp_callin(void)
249 */ 242 */
250 243
251 pr_debug("CALLIN, before setup_local_APIC().\n"); 244 pr_debug("CALLIN, before setup_local_APIC().\n");
252 smp_callin_clear_local_apic(); 245 if (apic->smp_callin_clear_local_apic)
246 apic->smp_callin_clear_local_apic();
253 setup_local_APIC(); 247 setup_local_APIC();
254 end_local_APIC_setup(); 248 end_local_APIC_setup();
255 map_cpu_to_logical_apicid(); 249 map_cpu_to_logical_apicid();
@@ -274,7 +268,7 @@ static void __cpuinit smp_callin(void)
274 /* 268 /*
275 * Allow the master to continue. 269 * Allow the master to continue.
276 */ 270 */
277 cpu_set(cpuid, cpu_callin_map); 271 cpumask_set_cpu(cpuid, cpu_callin_mask);
278} 272}
279 273
280static int __cpuinitdata unsafe_smp; 274static int __cpuinitdata unsafe_smp;
@@ -332,7 +326,7 @@ notrace static void __cpuinit start_secondary(void *unused)
332 ipi_call_lock(); 326 ipi_call_lock();
333 lock_vector_lock(); 327 lock_vector_lock();
334 __setup_vector_irq(smp_processor_id()); 328 __setup_vector_irq(smp_processor_id());
335 cpu_set(smp_processor_id(), cpu_online_map); 329 set_cpu_online(smp_processor_id(), true);
336 unlock_vector_lock(); 330 unlock_vector_lock();
337 ipi_call_unlock(); 331 ipi_call_unlock();
338 per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; 332 per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE;
@@ -438,50 +432,52 @@ void __cpuinit set_cpu_sibling_map(int cpu)
438 int i; 432 int i;
439 struct cpuinfo_x86 *c = &cpu_data(cpu); 433 struct cpuinfo_x86 *c = &cpu_data(cpu);
440 434
441 cpu_set(cpu, cpu_sibling_setup_map); 435 cpumask_set_cpu(cpu, cpu_sibling_setup_mask);
442 436
443 if (smp_num_siblings > 1) { 437 if (smp_num_siblings > 1) {
444 for_each_cpu_mask_nr(i, cpu_sibling_setup_map) { 438 for_each_cpu(i, cpu_sibling_setup_mask) {
445 if (c->phys_proc_id == cpu_data(i).phys_proc_id && 439 struct cpuinfo_x86 *o = &cpu_data(i);
446 c->cpu_core_id == cpu_data(i).cpu_core_id) { 440
447 cpu_set(i, per_cpu(cpu_sibling_map, cpu)); 441 if (c->phys_proc_id == o->phys_proc_id &&
448 cpu_set(cpu, per_cpu(cpu_sibling_map, i)); 442 c->cpu_core_id == o->cpu_core_id) {
449 cpu_set(i, per_cpu(cpu_core_map, cpu)); 443 cpumask_set_cpu(i, cpu_sibling_mask(cpu));
450 cpu_set(cpu, per_cpu(cpu_core_map, i)); 444 cpumask_set_cpu(cpu, cpu_sibling_mask(i));
451 cpu_set(i, c->llc_shared_map); 445 cpumask_set_cpu(i, cpu_core_mask(cpu));
452 cpu_set(cpu, cpu_data(i).llc_shared_map); 446 cpumask_set_cpu(cpu, cpu_core_mask(i));
447 cpumask_set_cpu(i, &c->llc_shared_map);
448 cpumask_set_cpu(cpu, &o->llc_shared_map);
453 } 449 }
454 } 450 }
455 } else { 451 } else {
456 cpu_set(cpu, per_cpu(cpu_sibling_map, cpu)); 452 cpumask_set_cpu(cpu, cpu_sibling_mask(cpu));
457 } 453 }
458 454
459 cpu_set(cpu, c->llc_shared_map); 455 cpumask_set_cpu(cpu, &c->llc_shared_map);
460 456
461 if (current_cpu_data.x86_max_cores == 1) { 457 if (current_cpu_data.x86_max_cores == 1) {
462 per_cpu(cpu_core_map, cpu) = per_cpu(cpu_sibling_map, cpu); 458 cpumask_copy(cpu_core_mask(cpu), cpu_sibling_mask(cpu));
463 c->booted_cores = 1; 459 c->booted_cores = 1;
464 return; 460 return;
465 } 461 }
466 462
467 for_each_cpu_mask_nr(i, cpu_sibling_setup_map) { 463 for_each_cpu(i, cpu_sibling_setup_mask) {
468 if (per_cpu(cpu_llc_id, cpu) != BAD_APICID && 464 if (per_cpu(cpu_llc_id, cpu) != BAD_APICID &&
469 per_cpu(cpu_llc_id, cpu) == per_cpu(cpu_llc_id, i)) { 465 per_cpu(cpu_llc_id, cpu) == per_cpu(cpu_llc_id, i)) {
470 cpu_set(i, c->llc_shared_map); 466 cpumask_set_cpu(i, &c->llc_shared_map);
471 cpu_set(cpu, cpu_data(i).llc_shared_map); 467 cpumask_set_cpu(cpu, &cpu_data(i).llc_shared_map);
472 } 468 }
473 if (c->phys_proc_id == cpu_data(i).phys_proc_id) { 469 if (c->phys_proc_id == cpu_data(i).phys_proc_id) {
474 cpu_set(i, per_cpu(cpu_core_map, cpu)); 470 cpumask_set_cpu(i, cpu_core_mask(cpu));
475 cpu_set(cpu, per_cpu(cpu_core_map, i)); 471 cpumask_set_cpu(cpu, cpu_core_mask(i));
476 /* 472 /*
477 * Does this new cpu bringup a new core? 473 * Does this new cpu bringup a new core?
478 */ 474 */
479 if (cpus_weight(per_cpu(cpu_sibling_map, cpu)) == 1) { 475 if (cpumask_weight(cpu_sibling_mask(cpu)) == 1) {
480 /* 476 /*
481 * for each core in package, increment 477 * for each core in package, increment
482 * the booted_cores for this new cpu 478 * the booted_cores for this new cpu
483 */ 479 */
484 if (first_cpu(per_cpu(cpu_sibling_map, i)) == i) 480 if (cpumask_first(cpu_sibling_mask(i)) == i)
485 c->booted_cores++; 481 c->booted_cores++;
486 /* 482 /*
487 * increment the core count for all 483 * increment the core count for all
@@ -504,7 +500,7 @@ const struct cpumask *cpu_coregroup_mask(int cpu)
504 * And for power savings, we return cpu_core_map 500 * And for power savings, we return cpu_core_map
505 */ 501 */
506 if (sched_mc_power_savings || sched_smt_power_savings) 502 if (sched_mc_power_savings || sched_smt_power_savings)
507 return &per_cpu(cpu_core_map, cpu); 503 return cpu_core_mask(cpu);
508 else 504 else
509 return &c->llc_shared_map; 505 return &c->llc_shared_map;
510} 506}
@@ -523,7 +519,7 @@ static void impress_friends(void)
523 */ 519 */
524 pr_debug("Before bogomips.\n"); 520 pr_debug("Before bogomips.\n");
525 for_each_possible_cpu(cpu) 521 for_each_possible_cpu(cpu)
526 if (cpu_isset(cpu, cpu_callout_map)) 522 if (cpumask_test_cpu(cpu, cpu_callout_mask))
527 bogosum += cpu_data(cpu).loops_per_jiffy; 523 bogosum += cpu_data(cpu).loops_per_jiffy;
528 printk(KERN_INFO 524 printk(KERN_INFO
529 "Total of %d processors activated (%lu.%02lu BogoMIPS).\n", 525 "Total of %d processors activated (%lu.%02lu BogoMIPS).\n",
@@ -587,7 +583,7 @@ wakeup_secondary_cpu_via_nmi(int logical_apicid, unsigned long start_eip)
587 /* Target chip */ 583 /* Target chip */
588 /* Boot on the stack */ 584 /* Boot on the stack */
589 /* Kick the second */ 585 /* Kick the second */
590 apic_icr_write(APIC_DM_NMI | APIC_DEST_LOGICAL, logical_apicid); 586 apic_icr_write(APIC_DM_NMI | apic->dest_logical, logical_apicid);
591 587
592 pr_debug("Waiting for send to finish...\n"); 588 pr_debug("Waiting for send to finish...\n");
593 send_status = safe_apic_wait_icr_idle(); 589 send_status = safe_apic_wait_icr_idle();
@@ -618,12 +614,6 @@ wakeup_secondary_cpu_via_init(int phys_apicid, unsigned long start_eip)
618 unsigned long send_status, accept_status = 0; 614 unsigned long send_status, accept_status = 0;
619 int maxlvt, num_starts, j; 615 int maxlvt, num_starts, j;
620 616
621 if (get_uv_system_type() == UV_NON_UNIQUE_APIC) {
622 send_status = uv_wakeup_secondary(phys_apicid, start_eip);
623 atomic_set(&init_deasserted, 1);
624 return send_status;
625 }
626
627 maxlvt = lapic_get_maxlvt(); 617 maxlvt = lapic_get_maxlvt();
628 618
629 /* 619 /*
@@ -749,78 +739,23 @@ static void __cpuinit do_fork_idle(struct work_struct *work)
749 complete(&c_idle->done); 739 complete(&c_idle->done);
750} 740}
751 741
752#ifdef CONFIG_X86_64
753
754/* __ref because it's safe to call free_bootmem when after_bootmem == 0. */
755static void __ref free_bootmem_pda(struct x8664_pda *oldpda)
756{
757 if (!after_bootmem)
758 free_bootmem((unsigned long)oldpda, sizeof(*oldpda));
759}
760
761/*
762 * Allocate node local memory for the AP pda.
763 *
764 * Must be called after the _cpu_pda pointer table is initialized.
765 */
766int __cpuinit get_local_pda(int cpu)
767{
768 struct x8664_pda *oldpda, *newpda;
769 unsigned long size = sizeof(struct x8664_pda);
770 int node = cpu_to_node(cpu);
771
772 if (cpu_pda(cpu) && !cpu_pda(cpu)->in_bootmem)
773 return 0;
774
775 oldpda = cpu_pda(cpu);
776 newpda = kmalloc_node(size, GFP_ATOMIC, node);
777 if (!newpda) {
778 printk(KERN_ERR "Could not allocate node local PDA "
779 "for CPU %d on node %d\n", cpu, node);
780
781 if (oldpda)
782 return 0; /* have a usable pda */
783 else
784 return -1;
785 }
786
787 if (oldpda) {
788 memcpy(newpda, oldpda, size);
789 free_bootmem_pda(oldpda);
790 }
791
792 newpda->in_bootmem = 0;
793 cpu_pda(cpu) = newpda;
794 return 0;
795}
796#endif /* CONFIG_X86_64 */
797
798static int __cpuinit do_boot_cpu(int apicid, int cpu)
799/* 742/*
800 * NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad 743 * NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad
801 * (ie clustered apic addressing mode), this is a LOGICAL apic ID. 744 * (ie clustered apic addressing mode), this is a LOGICAL apic ID.
802 * Returns zero if CPU booted OK, else error code from wakeup_secondary_cpu. 745 * Returns zero if CPU booted OK, else error code from
746 * ->wakeup_secondary_cpu.
803 */ 747 */
748static int __cpuinit do_boot_cpu(int apicid, int cpu)
804{ 749{
805 unsigned long boot_error = 0; 750 unsigned long boot_error = 0;
806 int timeout;
807 unsigned long start_ip; 751 unsigned long start_ip;
808 unsigned short nmi_high = 0, nmi_low = 0; 752 int timeout;
809 struct create_idle c_idle = { 753 struct create_idle c_idle = {
810 .cpu = cpu, 754 .cpu = cpu,
811 .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done), 755 .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done),
812 }; 756 };
813 INIT_WORK(&c_idle.work, do_fork_idle);
814 757
815#ifdef CONFIG_X86_64 758 INIT_WORK(&c_idle.work, do_fork_idle);
816 /* Allocate node local memory for AP pdas */
817 if (cpu > 0) {
818 boot_error = get_local_pda(cpu);
819 if (boot_error)
820 goto restore_state;
821 /* if can't get pda memory, can't start cpu */
822 }
823#endif
824 759
825 alternatives_smp_switch(1); 760 alternatives_smp_switch(1);
826 761
@@ -851,14 +786,16 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu)
851 786
852 set_idle_for_cpu(cpu, c_idle.idle); 787 set_idle_for_cpu(cpu, c_idle.idle);
853do_rest: 788do_rest:
854#ifdef CONFIG_X86_32
855 per_cpu(current_task, cpu) = c_idle.idle; 789 per_cpu(current_task, cpu) = c_idle.idle;
856 init_gdt(cpu); 790#ifdef CONFIG_X86_32
857 /* Stack for startup_32 can be just as for start_secondary onwards */ 791 /* Stack for startup_32 can be just as for start_secondary onwards */
858 irq_ctx_init(cpu); 792 irq_ctx_init(cpu);
859#else 793#else
860 cpu_pda(cpu)->pcurrent = c_idle.idle;
861 clear_tsk_thread_flag(c_idle.idle, TIF_FORK); 794 clear_tsk_thread_flag(c_idle.idle, TIF_FORK);
795 initial_gs = per_cpu_offset(cpu);
796 per_cpu(kernel_stack, cpu) =
797 (unsigned long)task_stack_page(c_idle.idle) -
798 KERNEL_STACK_OFFSET + THREAD_SIZE;
862#endif 799#endif
863 early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); 800 early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
864 initial_code = (unsigned long)start_secondary; 801 initial_code = (unsigned long)start_secondary;
@@ -882,8 +819,6 @@ do_rest:
882 819
883 pr_debug("Setting warm reset code and vector.\n"); 820 pr_debug("Setting warm reset code and vector.\n");
884 821
885 store_NMI_vector(&nmi_high, &nmi_low);
886
887 smpboot_setup_warm_reset_vector(start_ip); 822 smpboot_setup_warm_reset_vector(start_ip);
888 /* 823 /*
889 * Be paranoid about clearing APIC errors. 824 * Be paranoid about clearing APIC errors.
@@ -895,28 +830,32 @@ do_rest:
895 } 830 }
896 831
897 /* 832 /*
898 * Starting actual IPI sequence... 833 * Kick the secondary CPU. Use the method in the APIC driver
834 * if it's defined - or use an INIT boot APIC message otherwise:
899 */ 835 */
900 boot_error = wakeup_secondary_cpu(apicid, start_ip); 836 if (apic->wakeup_secondary_cpu)
837 boot_error = apic->wakeup_secondary_cpu(apicid, start_ip);
838 else
839 boot_error = wakeup_secondary_cpu_via_init(apicid, start_ip);
901 840
902 if (!boot_error) { 841 if (!boot_error) {
903 /* 842 /*
904 * allow APs to start initializing. 843 * allow APs to start initializing.
905 */ 844 */
906 pr_debug("Before Callout %d.\n", cpu); 845 pr_debug("Before Callout %d.\n", cpu);
907 cpu_set(cpu, cpu_callout_map); 846 cpumask_set_cpu(cpu, cpu_callout_mask);
908 pr_debug("After Callout %d.\n", cpu); 847 pr_debug("After Callout %d.\n", cpu);
909 848
910 /* 849 /*
911 * Wait 5s total for a response 850 * Wait 5s total for a response
912 */ 851 */
913 for (timeout = 0; timeout < 50000; timeout++) { 852 for (timeout = 0; timeout < 50000; timeout++) {
914 if (cpu_isset(cpu, cpu_callin_map)) 853 if (cpumask_test_cpu(cpu, cpu_callin_mask))
915 break; /* It has booted */ 854 break; /* It has booted */
916 udelay(100); 855 udelay(100);
917 } 856 }
918 857
919 if (cpu_isset(cpu, cpu_callin_map)) { 858 if (cpumask_test_cpu(cpu, cpu_callin_mask)) {
920 /* number CPUs logically, starting from 1 (BSP is 0) */ 859 /* number CPUs logically, starting from 1 (BSP is 0) */
921 pr_debug("OK.\n"); 860 pr_debug("OK.\n");
922 printk(KERN_INFO "CPU%d: ", cpu); 861 printk(KERN_INFO "CPU%d: ", cpu);
@@ -931,19 +870,22 @@ do_rest:
931 else 870 else
932 /* trampoline code not run */ 871 /* trampoline code not run */
933 printk(KERN_ERR "Not responding.\n"); 872 printk(KERN_ERR "Not responding.\n");
934 if (get_uv_system_type() != UV_NON_UNIQUE_APIC) 873 if (apic->inquire_remote_apic)
935 inquire_remote_apic(apicid); 874 apic->inquire_remote_apic(apicid);
936 } 875 }
937 } 876 }
938#ifdef CONFIG_X86_64 877
939restore_state:
940#endif
941 if (boot_error) { 878 if (boot_error) {
942 /* Try to put things back the way they were before ... */ 879 /* Try to put things back the way they were before ... */
943 numa_remove_cpu(cpu); /* was set by numa_add_cpu */ 880 numa_remove_cpu(cpu); /* was set by numa_add_cpu */
944 cpu_clear(cpu, cpu_callout_map); /* was set by do_boot_cpu() */ 881
945 cpu_clear(cpu, cpu_initialized); /* was set by cpu_init() */ 882 /* was set by do_boot_cpu() */
946 cpu_clear(cpu, cpu_present_map); 883 cpumask_clear_cpu(cpu, cpu_callout_mask);
884
885 /* was set by cpu_init() */
886 cpumask_clear_cpu(cpu, cpu_initialized_mask);
887
888 set_cpu_present(cpu, false);
947 per_cpu(x86_cpu_to_apicid, cpu) = BAD_APICID; 889 per_cpu(x86_cpu_to_apicid, cpu) = BAD_APICID;
948 } 890 }
949 891
@@ -960,7 +902,7 @@ restore_state:
960 902
961int __cpuinit native_cpu_up(unsigned int cpu) 903int __cpuinit native_cpu_up(unsigned int cpu)
962{ 904{
963 int apicid = cpu_present_to_apicid(cpu); 905 int apicid = apic->cpu_present_to_apicid(cpu);
964 unsigned long flags; 906 unsigned long flags;
965 int err; 907 int err;
966 908
@@ -977,7 +919,7 @@ int __cpuinit native_cpu_up(unsigned int cpu)
977 /* 919 /*
978 * Already booted CPU? 920 * Already booted CPU?
979 */ 921 */
980 if (cpu_isset(cpu, cpu_callin_map)) { 922 if (cpumask_test_cpu(cpu, cpu_callin_mask)) {
981 pr_debug("do_boot_cpu %d Already started\n", cpu); 923 pr_debug("do_boot_cpu %d Already started\n", cpu);
982 return -ENOSYS; 924 return -ENOSYS;
983 } 925 }
@@ -1032,8 +974,9 @@ int __cpuinit native_cpu_up(unsigned int cpu)
1032 */ 974 */
1033static __init void disable_smp(void) 975static __init void disable_smp(void)
1034{ 976{
1035 cpu_present_map = cpumask_of_cpu(0); 977 /* use the read/write pointers to the present and possible maps */
1036 cpu_possible_map = cpumask_of_cpu(0); 978 cpumask_copy(&cpu_present_map, cpumask_of(0));
979 cpumask_copy(&cpu_possible_map, cpumask_of(0));
1037 smpboot_clear_io_apic_irqs(); 980 smpboot_clear_io_apic_irqs();
1038 981
1039 if (smp_found_config) 982 if (smp_found_config)
@@ -1041,8 +984,8 @@ static __init void disable_smp(void)
1041 else 984 else
1042 physid_set_mask_of_physid(0, &phys_cpu_present_map); 985 physid_set_mask_of_physid(0, &phys_cpu_present_map);
1043 map_cpu_to_logical_apicid(); 986 map_cpu_to_logical_apicid();
1044 cpu_set(0, per_cpu(cpu_sibling_map, 0)); 987 cpumask_set_cpu(0, cpu_sibling_mask(0));
1045 cpu_set(0, per_cpu(cpu_core_map, 0)); 988 cpumask_set_cpu(0, cpu_core_mask(0));
1046} 989}
1047 990
1048/* 991/*
@@ -1052,26 +995,26 @@ static int __init smp_sanity_check(unsigned max_cpus)
1052{ 995{
1053 preempt_disable(); 996 preempt_disable();
1054 997
1055#if defined(CONFIG_X86_PC) && defined(CONFIG_X86_32) 998#if !defined(CONFIG_X86_BIGSMP) && defined(CONFIG_X86_32)
1056 if (def_to_bigsmp && nr_cpu_ids > 8) { 999 if (def_to_bigsmp && nr_cpu_ids > 8) {
1057 unsigned int cpu; 1000 unsigned int cpu;
1058 unsigned nr; 1001 unsigned nr;
1059 1002
1060 printk(KERN_WARNING 1003 printk(KERN_WARNING
1061 "More than 8 CPUs detected - skipping them.\n" 1004 "More than 8 CPUs detected - skipping them.\n"
1062 "Use CONFIG_X86_GENERICARCH and CONFIG_X86_BIGSMP.\n"); 1005 "Use CONFIG_X86_BIGSMP.\n");
1063 1006
1064 nr = 0; 1007 nr = 0;
1065 for_each_present_cpu(cpu) { 1008 for_each_present_cpu(cpu) {
1066 if (nr >= 8) 1009 if (nr >= 8)
1067 cpu_clear(cpu, cpu_present_map); 1010 set_cpu_present(cpu, false);
1068 nr++; 1011 nr++;
1069 } 1012 }
1070 1013
1071 nr = 0; 1014 nr = 0;
1072 for_each_possible_cpu(cpu) { 1015 for_each_possible_cpu(cpu) {
1073 if (nr >= 8) 1016 if (nr >= 8)
1074 cpu_clear(cpu, cpu_possible_map); 1017 set_cpu_possible(cpu, false);
1075 nr++; 1018 nr++;
1076 } 1019 }
1077 1020
@@ -1105,7 +1048,7 @@ static int __init smp_sanity_check(unsigned max_cpus)
1105 * Should not be necessary because the MP table should list the boot 1048 * Should not be necessary because the MP table should list the boot
1106 * CPU too, but we do it for the sake of robustness anyway. 1049 * CPU too, but we do it for the sake of robustness anyway.
1107 */ 1050 */
1108 if (!check_phys_apicid_present(boot_cpu_physical_apicid)) { 1051 if (!apic->check_phys_apicid_present(boot_cpu_physical_apicid)) {
1109 printk(KERN_NOTICE 1052 printk(KERN_NOTICE
1110 "weird, boot CPU (#%d) not listed by the BIOS.\n", 1053 "weird, boot CPU (#%d) not listed by the BIOS.\n",
1111 boot_cpu_physical_apicid); 1054 boot_cpu_physical_apicid);
@@ -1123,6 +1066,7 @@ static int __init smp_sanity_check(unsigned max_cpus)
1123 printk(KERN_ERR "... forcing use of dummy APIC emulation." 1066 printk(KERN_ERR "... forcing use of dummy APIC emulation."
1124 "(tell your hw vendor)\n"); 1067 "(tell your hw vendor)\n");
1125 smpboot_clear_io_apic(); 1068 smpboot_clear_io_apic();
1069 arch_disable_smp_support();
1126 return -1; 1070 return -1;
1127 } 1071 }
1128 1072
@@ -1167,7 +1111,7 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
1167 preempt_disable(); 1111 preempt_disable();
1168 smp_cpu_index_default(); 1112 smp_cpu_index_default();
1169 current_cpu_data = boot_cpu_data; 1113 current_cpu_data = boot_cpu_data;
1170 cpu_callin_map = cpumask_of_cpu(0); 1114 cpumask_copy(cpu_callin_mask, cpumask_of(0));
1171 mb(); 1115 mb();
1172 /* 1116 /*
1173 * Setup boot CPU information 1117 * Setup boot CPU information
@@ -1179,9 +1123,9 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
1179 current_thread_info()->cpu = 0; /* needed? */ 1123 current_thread_info()->cpu = 0; /* needed? */
1180 set_cpu_sibling_map(0); 1124 set_cpu_sibling_map(0);
1181 1125
1182#ifdef CONFIG_X86_64
1183 enable_IR_x2apic(); 1126 enable_IR_x2apic();
1184 setup_apic_routing(); 1127#ifdef CONFIG_X86_64
1128 default_setup_apic_routing();
1185#endif 1129#endif
1186 1130
1187 if (smp_sanity_check(max_cpus) < 0) { 1131 if (smp_sanity_check(max_cpus) < 0) {
@@ -1205,18 +1149,18 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
1205 */ 1149 */
1206 setup_local_APIC(); 1150 setup_local_APIC();
1207 1151
1208#ifdef CONFIG_X86_64
1209 /* 1152 /*
1210 * Enable IO APIC before setting up error vector 1153 * Enable IO APIC before setting up error vector
1211 */ 1154 */
1212 if (!skip_ioapic_setup && nr_ioapics) 1155 if (!skip_ioapic_setup && nr_ioapics)
1213 enable_IO_APIC(); 1156 enable_IO_APIC();
1214#endif 1157
1215 end_local_APIC_setup(); 1158 end_local_APIC_setup();
1216 1159
1217 map_cpu_to_logical_apicid(); 1160 map_cpu_to_logical_apicid();
1218 1161
1219 setup_portio_remap(); 1162 if (apic->setup_portio_remap)
1163 apic->setup_portio_remap();
1220 1164
1221 smpboot_setup_io_apic(); 1165 smpboot_setup_io_apic();
1222 /* 1166 /*
@@ -1238,12 +1182,9 @@ out:
1238void __init native_smp_prepare_boot_cpu(void) 1182void __init native_smp_prepare_boot_cpu(void)
1239{ 1183{
1240 int me = smp_processor_id(); 1184 int me = smp_processor_id();
1241#ifdef CONFIG_X86_32 1185 switch_to_new_gdt(me);
1242 init_gdt(me); 1186 /* already set me in cpu_online_mask in boot_cpu_init() */
1243#endif 1187 cpumask_set_cpu(me, cpu_callout_mask);
1244 switch_to_new_gdt();
1245 /* already set me in cpu_online_map in boot_cpu_init() */
1246 cpu_set(me, cpu_callout_map);
1247 per_cpu(cpu_state, me) = CPU_ONLINE; 1188 per_cpu(cpu_state, me) = CPU_ONLINE;
1248} 1189}
1249 1190
@@ -1311,7 +1252,7 @@ __init void prefill_possible_map(void)
1311 possible, max_t(int, possible - num_processors, 0)); 1252 possible, max_t(int, possible - num_processors, 0));
1312 1253
1313 for (i = 0; i < possible; i++) 1254 for (i = 0; i < possible; i++)
1314 cpu_set(i, cpu_possible_map); 1255 set_cpu_possible(i, true);
1315 1256
1316 nr_cpu_ids = possible; 1257 nr_cpu_ids = possible;
1317} 1258}
@@ -1323,31 +1264,31 @@ static void remove_siblinginfo(int cpu)
1323 int sibling; 1264 int sibling;
1324 struct cpuinfo_x86 *c = &cpu_data(cpu); 1265 struct cpuinfo_x86 *c = &cpu_data(cpu);
1325 1266
1326 for_each_cpu_mask_nr(sibling, per_cpu(cpu_core_map, cpu)) { 1267 for_each_cpu(sibling, cpu_core_mask(cpu)) {
1327 cpu_clear(cpu, per_cpu(cpu_core_map, sibling)); 1268 cpumask_clear_cpu(cpu, cpu_core_mask(sibling));
1328 /*/ 1269 /*/
1329 * last thread sibling in this cpu core going down 1270 * last thread sibling in this cpu core going down
1330 */ 1271 */
1331 if (cpus_weight(per_cpu(cpu_sibling_map, cpu)) == 1) 1272 if (cpumask_weight(cpu_sibling_mask(cpu)) == 1)
1332 cpu_data(sibling).booted_cores--; 1273 cpu_data(sibling).booted_cores--;
1333 } 1274 }
1334 1275
1335 for_each_cpu_mask_nr(sibling, per_cpu(cpu_sibling_map, cpu)) 1276 for_each_cpu(sibling, cpu_sibling_mask(cpu))
1336 cpu_clear(cpu, per_cpu(cpu_sibling_map, sibling)); 1277 cpumask_clear_cpu(cpu, cpu_sibling_mask(sibling));
1337 cpus_clear(per_cpu(cpu_sibling_map, cpu)); 1278 cpumask_clear(cpu_sibling_mask(cpu));
1338 cpus_clear(per_cpu(cpu_core_map, cpu)); 1279 cpumask_clear(cpu_core_mask(cpu));
1339 c->phys_proc_id = 0; 1280 c->phys_proc_id = 0;
1340 c->cpu_core_id = 0; 1281 c->cpu_core_id = 0;
1341 cpu_clear(cpu, cpu_sibling_setup_map); 1282 cpumask_clear_cpu(cpu, cpu_sibling_setup_mask);
1342} 1283}
1343 1284
1344static void __ref remove_cpu_from_maps(int cpu) 1285static void __ref remove_cpu_from_maps(int cpu)
1345{ 1286{
1346 cpu_clear(cpu, cpu_online_map); 1287 set_cpu_online(cpu, false);
1347 cpu_clear(cpu, cpu_callout_map); 1288 cpumask_clear_cpu(cpu, cpu_callout_mask);
1348 cpu_clear(cpu, cpu_callin_map); 1289 cpumask_clear_cpu(cpu, cpu_callin_mask);
1349 /* was set by cpu_init() */ 1290 /* was set by cpu_init() */
1350 cpu_clear(cpu, cpu_initialized); 1291 cpumask_clear_cpu(cpu, cpu_initialized_mask);
1351 numa_remove_cpu(cpu); 1292 numa_remove_cpu(cpu);
1352} 1293}
1353 1294
diff --git a/arch/x86/kernel/smpcommon.c b/arch/x86/kernel/smpcommon.c
deleted file mode 100644
index 397e309839dd..000000000000
--- a/arch/x86/kernel/smpcommon.c
+++ /dev/null
@@ -1,30 +0,0 @@
1/*
2 * SMP stuff which is common to all sub-architectures.
3 */
4#include <linux/module.h>
5#include <asm/smp.h>
6
7#ifdef CONFIG_X86_32
8DEFINE_PER_CPU(unsigned long, this_cpu_off);
9EXPORT_PER_CPU_SYMBOL(this_cpu_off);
10
11/*
12 * Initialize the CPU's GDT. This is either the boot CPU doing itself
13 * (still using the master per-cpu area), or a CPU doing it for a
14 * secondary which will soon come up.
15 */
16__cpuinit void init_gdt(int cpu)
17{
18 struct desc_struct gdt;
19
20 pack_descriptor(&gdt, __per_cpu_offset[cpu], 0xFFFFF,
21 0x2 | DESCTYPE_S, 0x8);
22 gdt.s = 1;
23
24 write_gdt_entry(get_cpu_gdt_table(cpu),
25 GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S);
26
27 per_cpu(this_cpu_off, cpu) = __per_cpu_offset[cpu];
28 per_cpu(cpu_number, cpu) = cpu;
29}
30#endif
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 10786af95545..f7bddc2e37d1 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Stack trace management functions 2 * Stack trace management functions
3 * 3 *
4 * Copyright (C) 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com> 4 * Copyright (C) 2006-2009 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
5 */ 5 */
6#include <linux/sched.h> 6#include <linux/sched.h>
7#include <linux/stacktrace.h> 7#include <linux/stacktrace.h>
diff --git a/arch/x86/kernel/summit_32.c b/arch/x86/kernel/summit_32.c
deleted file mode 100644
index 7b987852e876..000000000000
--- a/arch/x86/kernel/summit_32.c
+++ /dev/null
@@ -1,188 +0,0 @@
1/*
2 * IBM Summit-Specific Code
3 *
4 * Written By: Matthew Dobson, IBM Corporation
5 *
6 * Copyright (c) 2003 IBM Corp.
7 *
8 * All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or (at
13 * your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
18 * NON INFRINGEMENT. See the GNU General Public License for more
19 * details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 *
25 * Send feedback to <colpatch@us.ibm.com>
26 *
27 */
28
29#include <linux/mm.h>
30#include <linux/init.h>
31#include <asm/io.h>
32#include <asm/bios_ebda.h>
33#include <asm/summit/mpparse.h>
34
35static struct rio_table_hdr *rio_table_hdr __initdata;
36static struct scal_detail *scal_devs[MAX_NUMNODES] __initdata;
37static struct rio_detail *rio_devs[MAX_NUMNODES*4] __initdata;
38
39#ifndef CONFIG_X86_NUMAQ
40static int mp_bus_id_to_node[MAX_MP_BUSSES] __initdata;
41#endif
42
43static int __init setup_pci_node_map_for_wpeg(int wpeg_num, int last_bus)
44{
45 int twister = 0, node = 0;
46 int i, bus, num_buses;
47
48 for (i = 0; i < rio_table_hdr->num_rio_dev; i++) {
49 if (rio_devs[i]->node_id == rio_devs[wpeg_num]->owner_id) {
50 twister = rio_devs[i]->owner_id;
51 break;
52 }
53 }
54 if (i == rio_table_hdr->num_rio_dev) {
55 printk(KERN_ERR "%s: Couldn't find owner Cyclone for Winnipeg!\n", __func__);
56 return last_bus;
57 }
58
59 for (i = 0; i < rio_table_hdr->num_scal_dev; i++) {
60 if (scal_devs[i]->node_id == twister) {
61 node = scal_devs[i]->node_id;
62 break;
63 }
64 }
65 if (i == rio_table_hdr->num_scal_dev) {
66 printk(KERN_ERR "%s: Couldn't find owner Twister for Cyclone!\n", __func__);
67 return last_bus;
68 }
69
70 switch (rio_devs[wpeg_num]->type) {
71 case CompatWPEG:
72 /*
73 * The Compatibility Winnipeg controls the 2 legacy buses,
74 * the 66MHz PCI bus [2 slots] and the 2 "extra" buses in case
75 * a PCI-PCI bridge card is used in either slot: total 5 buses.
76 */
77 num_buses = 5;
78 break;
79 case AltWPEG:
80 /*
81 * The Alternate Winnipeg controls the 2 133MHz buses [1 slot
82 * each], their 2 "extra" buses, the 100MHz bus [2 slots] and
83 * the "extra" buses for each of those slots: total 7 buses.
84 */
85 num_buses = 7;
86 break;
87 case LookOutAWPEG:
88 case LookOutBWPEG:
89 /*
90 * A Lookout Winnipeg controls 3 100MHz buses [2 slots each]
91 * & the "extra" buses for each of those slots: total 9 buses.
92 */
93 num_buses = 9;
94 break;
95 default:
96 printk(KERN_INFO "%s: Unsupported Winnipeg type!\n", __func__);
97 return last_bus;
98 }
99
100 for (bus = last_bus; bus < last_bus + num_buses; bus++)
101 mp_bus_id_to_node[bus] = node;
102 return bus;
103}
104
105static int __init build_detail_arrays(void)
106{
107 unsigned long ptr;
108 int i, scal_detail_size, rio_detail_size;
109
110 if (rio_table_hdr->num_scal_dev > MAX_NUMNODES) {
111 printk(KERN_WARNING "%s: MAX_NUMNODES too low! Defined as %d, but system has %d nodes.\n", __func__, MAX_NUMNODES, rio_table_hdr->num_scal_dev);
112 return 0;
113 }
114
115 switch (rio_table_hdr->version) {
116 default:
117 printk(KERN_WARNING "%s: Invalid Rio Grande Table Version: %d\n", __func__, rio_table_hdr->version);
118 return 0;
119 case 2:
120 scal_detail_size = 11;
121 rio_detail_size = 13;
122 break;
123 case 3:
124 scal_detail_size = 12;
125 rio_detail_size = 15;
126 break;
127 }
128
129 ptr = (unsigned long)rio_table_hdr + 3;
130 for (i = 0; i < rio_table_hdr->num_scal_dev; i++, ptr += scal_detail_size)
131 scal_devs[i] = (struct scal_detail *)ptr;
132
133 for (i = 0; i < rio_table_hdr->num_rio_dev; i++, ptr += rio_detail_size)
134 rio_devs[i] = (struct rio_detail *)ptr;
135
136 return 1;
137}
138
139void __init setup_summit(void)
140{
141 unsigned long ptr;
142 unsigned short offset;
143 int i, next_wpeg, next_bus = 0;
144
145 /* The pointer to the EBDA is stored in the word @ phys 0x40E(40:0E) */
146 ptr = get_bios_ebda();
147 ptr = (unsigned long)phys_to_virt(ptr);
148
149 rio_table_hdr = NULL;
150 offset = 0x180;
151 while (offset) {
152 /* The block id is stored in the 2nd word */
153 if (*((unsigned short *)(ptr + offset + 2)) == 0x4752) {
154 /* set the pointer past the offset & block id */
155 rio_table_hdr = (struct rio_table_hdr *)(ptr + offset + 4);
156 break;
157 }
158 /* The next offset is stored in the 1st word. 0 means no more */
159 offset = *((unsigned short *)(ptr + offset));
160 }
161 if (!rio_table_hdr) {
162 printk(KERN_ERR "%s: Unable to locate Rio Grande Table in EBDA - bailing!\n", __func__);
163 return;
164 }
165
166 if (!build_detail_arrays())
167 return;
168
169 /* The first Winnipeg we're looking for has an index of 0 */
170 next_wpeg = 0;
171 do {
172 for (i = 0; i < rio_table_hdr->num_rio_dev; i++) {
173 if (is_WPEG(rio_devs[i]) && rio_devs[i]->WP_index == next_wpeg) {
174 /* It's the Winnipeg we're looking for! */
175 next_bus = setup_pci_node_map_for_wpeg(i, next_bus);
176 next_wpeg++;
177 break;
178 }
179 }
180 /*
181 * If we go through all Rio devices and don't find one with
182 * the next index, it means we've found all the Winnipegs,
183 * and thus all the PCI buses.
184 */
185 if (i == rio_table_hdr->num_rio_dev)
186 next_wpeg = 0;
187 } while (next_wpeg != 0);
188}
diff --git a/arch/x86/kernel/syscall_table_32.S b/arch/x86/kernel/syscall_table_32.S
index d44395ff34c3..3bdb64829b82 100644
--- a/arch/x86/kernel/syscall_table_32.S
+++ b/arch/x86/kernel/syscall_table_32.S
@@ -1,7 +1,7 @@
1ENTRY(sys_call_table) 1ENTRY(sys_call_table)
2 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ 2 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */
3 .long sys_exit 3 .long sys_exit
4 .long sys_fork 4 .long ptregs_fork
5 .long sys_read 5 .long sys_read
6 .long sys_write 6 .long sys_write
7 .long sys_open /* 5 */ 7 .long sys_open /* 5 */
@@ -10,7 +10,7 @@ ENTRY(sys_call_table)
10 .long sys_creat 10 .long sys_creat
11 .long sys_link 11 .long sys_link
12 .long sys_unlink /* 10 */ 12 .long sys_unlink /* 10 */
13 .long sys_execve 13 .long ptregs_execve
14 .long sys_chdir 14 .long sys_chdir
15 .long sys_time 15 .long sys_time
16 .long sys_mknod 16 .long sys_mknod
@@ -88,7 +88,7 @@ ENTRY(sys_call_table)
88 .long sys_uselib 88 .long sys_uselib
89 .long sys_swapon 89 .long sys_swapon
90 .long sys_reboot 90 .long sys_reboot
91 .long old_readdir 91 .long sys_old_readdir
92 .long old_mmap /* 90 */ 92 .long old_mmap /* 90 */
93 .long sys_munmap 93 .long sys_munmap
94 .long sys_truncate 94 .long sys_truncate
@@ -109,17 +109,17 @@ ENTRY(sys_call_table)
109 .long sys_newlstat 109 .long sys_newlstat
110 .long sys_newfstat 110 .long sys_newfstat
111 .long sys_uname 111 .long sys_uname
112 .long sys_iopl /* 110 */ 112 .long ptregs_iopl /* 110 */
113 .long sys_vhangup 113 .long sys_vhangup
114 .long sys_ni_syscall /* old "idle" system call */ 114 .long sys_ni_syscall /* old "idle" system call */
115 .long sys_vm86old 115 .long ptregs_vm86old
116 .long sys_wait4 116 .long sys_wait4
117 .long sys_swapoff /* 115 */ 117 .long sys_swapoff /* 115 */
118 .long sys_sysinfo 118 .long sys_sysinfo
119 .long sys_ipc 119 .long sys_ipc
120 .long sys_fsync 120 .long sys_fsync
121 .long sys_sigreturn 121 .long ptregs_sigreturn
122 .long sys_clone /* 120 */ 122 .long ptregs_clone /* 120 */
123 .long sys_setdomainname 123 .long sys_setdomainname
124 .long sys_newuname 124 .long sys_newuname
125 .long sys_modify_ldt 125 .long sys_modify_ldt
@@ -165,14 +165,14 @@ ENTRY(sys_call_table)
165 .long sys_mremap 165 .long sys_mremap
166 .long sys_setresuid16 166 .long sys_setresuid16
167 .long sys_getresuid16 /* 165 */ 167 .long sys_getresuid16 /* 165 */
168 .long sys_vm86 168 .long ptregs_vm86
169 .long sys_ni_syscall /* Old sys_query_module */ 169 .long sys_ni_syscall /* Old sys_query_module */
170 .long sys_poll 170 .long sys_poll
171 .long sys_nfsservctl 171 .long sys_nfsservctl
172 .long sys_setresgid16 /* 170 */ 172 .long sys_setresgid16 /* 170 */
173 .long sys_getresgid16 173 .long sys_getresgid16
174 .long sys_prctl 174 .long sys_prctl
175 .long sys_rt_sigreturn 175 .long ptregs_rt_sigreturn
176 .long sys_rt_sigaction 176 .long sys_rt_sigaction
177 .long sys_rt_sigprocmask /* 175 */ 177 .long sys_rt_sigprocmask /* 175 */
178 .long sys_rt_sigpending 178 .long sys_rt_sigpending
@@ -185,11 +185,11 @@ ENTRY(sys_call_table)
185 .long sys_getcwd 185 .long sys_getcwd
186 .long sys_capget 186 .long sys_capget
187 .long sys_capset /* 185 */ 187 .long sys_capset /* 185 */
188 .long sys_sigaltstack 188 .long ptregs_sigaltstack
189 .long sys_sendfile 189 .long sys_sendfile
190 .long sys_ni_syscall /* reserved for streams1 */ 190 .long sys_ni_syscall /* reserved for streams1 */
191 .long sys_ni_syscall /* reserved for streams2 */ 191 .long sys_ni_syscall /* reserved for streams2 */
192 .long sys_vfork /* 190 */ 192 .long ptregs_vfork /* 190 */
193 .long sys_getrlimit 193 .long sys_getrlimit
194 .long sys_mmap2 194 .long sys_mmap2
195 .long sys_truncate64 195 .long sys_truncate64
diff --git a/arch/x86/kernel/time_32.c b/arch/x86/kernel/time_32.c
index 65309e4cb1c0..5c5d87f0b2e1 100644
--- a/arch/x86/kernel/time_32.c
+++ b/arch/x86/kernel/time_32.c
@@ -33,12 +33,12 @@
33#include <linux/time.h> 33#include <linux/time.h>
34#include <linux/mca.h> 34#include <linux/mca.h>
35 35
36#include <asm/arch_hooks.h> 36#include <asm/setup.h>
37#include <asm/hpet.h> 37#include <asm/hpet.h>
38#include <asm/time.h> 38#include <asm/time.h>
39#include <asm/timer.h> 39#include <asm/timer.h>
40 40
41#include "do_timer.h" 41#include <asm/do_timer.h>
42 42
43int timer_ack; 43int timer_ack;
44 44
@@ -105,8 +105,8 @@ irqreturn_t timer_interrupt(int irq, void *dev_id)
105 high bit of the PPI port B (0x61). Note that some PS/2s, 105 high bit of the PPI port B (0x61). Note that some PS/2s,
106 notably the 55SX, work fine if this is removed. */ 106 notably the 55SX, work fine if this is removed. */
107 107
108 u8 irq_v = inb_p( 0x61 ); /* read the current state */ 108 u8 irq_v = inb_p(0x61); /* read the current state */
109 outb_p( irq_v|0x80, 0x61 ); /* reset the IRQ */ 109 outb_p(irq_v | 0x80, 0x61); /* reset the IRQ */
110 } 110 }
111#endif 111#endif
112 112
@@ -118,7 +118,7 @@ void __init hpet_time_init(void)
118{ 118{
119 if (!hpet_enable()) 119 if (!hpet_enable())
120 setup_pit_timer(); 120 setup_pit_timer();
121 time_init_hook(); 121 x86_quirk_time_init();
122} 122}
123 123
124/* 124/*
@@ -131,7 +131,7 @@ void __init hpet_time_init(void)
131 */ 131 */
132void __init time_init(void) 132void __init time_init(void)
133{ 133{
134 pre_time_init_hook(); 134 x86_quirk_pre_time_init();
135 tsc_init(); 135 tsc_init();
136 late_time_init = choose_time_init(); 136 late_time_init = choose_time_init();
137} 137}
diff --git a/arch/x86/kernel/time_64.c b/arch/x86/kernel/time_64.c
index 891e7a7c4334..241ec3923f61 100644
--- a/arch/x86/kernel/time_64.c
+++ b/arch/x86/kernel/time_64.c
@@ -17,10 +17,10 @@
17#include <linux/module.h> 17#include <linux/module.h>
18#include <linux/time.h> 18#include <linux/time.h>
19#include <linux/mca.h> 19#include <linux/mca.h>
20#include <linux/nmi.h>
20 21
21#include <asm/i8253.h> 22#include <asm/i8253.h>
22#include <asm/hpet.h> 23#include <asm/hpet.h>
23#include <asm/nmi.h>
24#include <asm/vgtod.h> 24#include <asm/vgtod.h>
25#include <asm/time.h> 25#include <asm/time.h>
26#include <asm/timer.h> 26#include <asm/timer.h>
@@ -115,7 +115,7 @@ unsigned long __init calibrate_cpu(void)
115 115
116static struct irqaction irq0 = { 116static struct irqaction irq0 = {
117 .handler = timer_interrupt, 117 .handler = timer_interrupt,
118 .flags = IRQF_DISABLED | IRQF_IRQPOLL | IRQF_NOBALANCING, 118 .flags = IRQF_DISABLED | IRQF_IRQPOLL | IRQF_NOBALANCING | IRQF_TIMER,
119 .mask = CPU_MASK_NONE, 119 .mask = CPU_MASK_NONE,
120 .name = "timer" 120 .name = "timer"
121}; 121};
diff --git a/arch/x86/kernel/tlb_32.c b/arch/x86/kernel/tlb_32.c
deleted file mode 100644
index ce5054642247..000000000000
--- a/arch/x86/kernel/tlb_32.c
+++ /dev/null
@@ -1,256 +0,0 @@
1#include <linux/spinlock.h>
2#include <linux/cpu.h>
3#include <linux/interrupt.h>
4
5#include <asm/tlbflush.h>
6
7DEFINE_PER_CPU(struct tlb_state, cpu_tlbstate)
8 ____cacheline_aligned = { &init_mm, 0, };
9
10/* must come after the send_IPI functions above for inlining */
11#include <mach_ipi.h>
12
13/*
14 * Smarter SMP flushing macros.
15 * c/o Linus Torvalds.
16 *
17 * These mean you can really definitely utterly forget about
18 * writing to user space from interrupts. (Its not allowed anyway).
19 *
20 * Optimizations Manfred Spraul <manfred@colorfullife.com>
21 */
22
23static cpumask_t flush_cpumask;
24static struct mm_struct *flush_mm;
25static unsigned long flush_va;
26static DEFINE_SPINLOCK(tlbstate_lock);
27
28/*
29 * We cannot call mmdrop() because we are in interrupt context,
30 * instead update mm->cpu_vm_mask.
31 *
32 * We need to reload %cr3 since the page tables may be going
33 * away from under us..
34 */
35void leave_mm(int cpu)
36{
37 BUG_ON(x86_read_percpu(cpu_tlbstate.state) == TLBSTATE_OK);
38 cpu_clear(cpu, x86_read_percpu(cpu_tlbstate.active_mm)->cpu_vm_mask);
39 load_cr3(swapper_pg_dir);
40}
41EXPORT_SYMBOL_GPL(leave_mm);
42
43/*
44 *
45 * The flush IPI assumes that a thread switch happens in this order:
46 * [cpu0: the cpu that switches]
47 * 1) switch_mm() either 1a) or 1b)
48 * 1a) thread switch to a different mm
49 * 1a1) cpu_clear(cpu, old_mm->cpu_vm_mask);
50 * Stop ipi delivery for the old mm. This is not synchronized with
51 * the other cpus, but smp_invalidate_interrupt ignore flush ipis
52 * for the wrong mm, and in the worst case we perform a superfluous
53 * tlb flush.
54 * 1a2) set cpu_tlbstate to TLBSTATE_OK
55 * Now the smp_invalidate_interrupt won't call leave_mm if cpu0
56 * was in lazy tlb mode.
57 * 1a3) update cpu_tlbstate[].active_mm
58 * Now cpu0 accepts tlb flushes for the new mm.
59 * 1a4) cpu_set(cpu, new_mm->cpu_vm_mask);
60 * Now the other cpus will send tlb flush ipis.
61 * 1a4) change cr3.
62 * 1b) thread switch without mm change
63 * cpu_tlbstate[].active_mm is correct, cpu0 already handles
64 * flush ipis.
65 * 1b1) set cpu_tlbstate to TLBSTATE_OK
66 * 1b2) test_and_set the cpu bit in cpu_vm_mask.
67 * Atomically set the bit [other cpus will start sending flush ipis],
68 * and test the bit.
69 * 1b3) if the bit was 0: leave_mm was called, flush the tlb.
70 * 2) switch %%esp, ie current
71 *
72 * The interrupt must handle 2 special cases:
73 * - cr3 is changed before %%esp, ie. it cannot use current->{active_,}mm.
74 * - the cpu performs speculative tlb reads, i.e. even if the cpu only
75 * runs in kernel space, the cpu could load tlb entries for user space
76 * pages.
77 *
78 * The good news is that cpu_tlbstate is local to each cpu, no
79 * write/read ordering problems.
80 */
81
82/*
83 * TLB flush IPI:
84 *
85 * 1) Flush the tlb entries if the cpu uses the mm that's being flushed.
86 * 2) Leave the mm if we are in the lazy tlb mode.
87 */
88
89void smp_invalidate_interrupt(struct pt_regs *regs)
90{
91 unsigned long cpu;
92
93 cpu = get_cpu();
94
95 if (!cpu_isset(cpu, flush_cpumask))
96 goto out;
97 /*
98 * This was a BUG() but until someone can quote me the
99 * line from the intel manual that guarantees an IPI to
100 * multiple CPUs is retried _only_ on the erroring CPUs
101 * its staying as a return
102 *
103 * BUG();
104 */
105
106 if (flush_mm == x86_read_percpu(cpu_tlbstate.active_mm)) {
107 if (x86_read_percpu(cpu_tlbstate.state) == TLBSTATE_OK) {
108 if (flush_va == TLB_FLUSH_ALL)
109 local_flush_tlb();
110 else
111 __flush_tlb_one(flush_va);
112 } else
113 leave_mm(cpu);
114 }
115 ack_APIC_irq();
116 smp_mb__before_clear_bit();
117 cpu_clear(cpu, flush_cpumask);
118 smp_mb__after_clear_bit();
119out:
120 put_cpu_no_resched();
121 inc_irq_stat(irq_tlb_count);
122}
123
124void native_flush_tlb_others(const cpumask_t *cpumaskp, struct mm_struct *mm,
125 unsigned long va)
126{
127 cpumask_t cpumask = *cpumaskp;
128
129 /*
130 * A couple of (to be removed) sanity checks:
131 *
132 * - current CPU must not be in mask
133 * - mask must exist :)
134 */
135 BUG_ON(cpus_empty(cpumask));
136 BUG_ON(cpu_isset(smp_processor_id(), cpumask));
137 BUG_ON(!mm);
138
139#ifdef CONFIG_HOTPLUG_CPU
140 /* If a CPU which we ran on has gone down, OK. */
141 cpus_and(cpumask, cpumask, cpu_online_map);
142 if (unlikely(cpus_empty(cpumask)))
143 return;
144#endif
145
146 /*
147 * i'm not happy about this global shared spinlock in the
148 * MM hot path, but we'll see how contended it is.
149 * AK: x86-64 has a faster method that could be ported.
150 */
151 spin_lock(&tlbstate_lock);
152
153 flush_mm = mm;
154 flush_va = va;
155 cpus_or(flush_cpumask, cpumask, flush_cpumask);
156
157 /*
158 * Make the above memory operations globally visible before
159 * sending the IPI.
160 */
161 smp_mb();
162 /*
163 * We have to send the IPI only to
164 * CPUs affected.
165 */
166 send_IPI_mask(&cpumask, INVALIDATE_TLB_VECTOR);
167
168 while (!cpus_empty(flush_cpumask))
169 /* nothing. lockup detection does not belong here */
170 cpu_relax();
171
172 flush_mm = NULL;
173 flush_va = 0;
174 spin_unlock(&tlbstate_lock);
175}
176
177void flush_tlb_current_task(void)
178{
179 struct mm_struct *mm = current->mm;
180 cpumask_t cpu_mask;
181
182 preempt_disable();
183 cpu_mask = mm->cpu_vm_mask;
184 cpu_clear(smp_processor_id(), cpu_mask);
185
186 local_flush_tlb();
187 if (!cpus_empty(cpu_mask))
188 flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL);
189 preempt_enable();
190}
191
192void flush_tlb_mm(struct mm_struct *mm)
193{
194 cpumask_t cpu_mask;
195
196 preempt_disable();
197 cpu_mask = mm->cpu_vm_mask;
198 cpu_clear(smp_processor_id(), cpu_mask);
199
200 if (current->active_mm == mm) {
201 if (current->mm)
202 local_flush_tlb();
203 else
204 leave_mm(smp_processor_id());
205 }
206 if (!cpus_empty(cpu_mask))
207 flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL);
208
209 preempt_enable();
210}
211
212void flush_tlb_page(struct vm_area_struct *vma, unsigned long va)
213{
214 struct mm_struct *mm = vma->vm_mm;
215 cpumask_t cpu_mask;
216
217 preempt_disable();
218 cpu_mask = mm->cpu_vm_mask;
219 cpu_clear(smp_processor_id(), cpu_mask);
220
221 if (current->active_mm == mm) {
222 if (current->mm)
223 __flush_tlb_one(va);
224 else
225 leave_mm(smp_processor_id());
226 }
227
228 if (!cpus_empty(cpu_mask))
229 flush_tlb_others(cpu_mask, mm, va);
230
231 preempt_enable();
232}
233EXPORT_SYMBOL(flush_tlb_page);
234
235static void do_flush_tlb_all(void *info)
236{
237 unsigned long cpu = smp_processor_id();
238
239 __flush_tlb_all();
240 if (x86_read_percpu(cpu_tlbstate.state) == TLBSTATE_LAZY)
241 leave_mm(cpu);
242}
243
244void flush_tlb_all(void)
245{
246 on_each_cpu(do_flush_tlb_all, NULL, 1);
247}
248
249void reset_lazy_tlbstate(void)
250{
251 int cpu = raw_smp_processor_id();
252
253 per_cpu(cpu_tlbstate, cpu).state = 0;
254 per_cpu(cpu_tlbstate, cpu).active_mm = &init_mm;
255}
256
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index f885023167e0..f04549afcfe9 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -11,16 +11,15 @@
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12 12
13#include <asm/mmu_context.h> 13#include <asm/mmu_context.h>
14#include <asm/uv/uv.h>
14#include <asm/uv/uv_mmrs.h> 15#include <asm/uv/uv_mmrs.h>
15#include <asm/uv/uv_hub.h> 16#include <asm/uv/uv_hub.h>
16#include <asm/uv/uv_bau.h> 17#include <asm/uv/uv_bau.h>
17#include <asm/genapic.h> 18#include <asm/apic.h>
18#include <asm/idle.h> 19#include <asm/idle.h>
19#include <asm/tsc.h> 20#include <asm/tsc.h>
20#include <asm/irq_vectors.h> 21#include <asm/irq_vectors.h>
21 22
22#include <mach_apic.h>
23
24static struct bau_control **uv_bau_table_bases __read_mostly; 23static struct bau_control **uv_bau_table_bases __read_mostly;
25static int uv_bau_retry_limit __read_mostly; 24static int uv_bau_retry_limit __read_mostly;
26 25
@@ -200,6 +199,7 @@ static int uv_wait_completion(struct bau_desc *bau_desc,
200 destination_timeouts = 0; 199 destination_timeouts = 0;
201 } 200 }
202 } 201 }
202 cpu_relax();
203 } 203 }
204 return FLUSH_COMPLETE; 204 return FLUSH_COMPLETE;
205} 205}
@@ -209,14 +209,15 @@ static int uv_wait_completion(struct bau_desc *bau_desc,
209 * 209 *
210 * Send a broadcast and wait for a broadcast message to complete. 210 * Send a broadcast and wait for a broadcast message to complete.
211 * 211 *
212 * The cpumaskp mask contains the cpus the broadcast was sent to. 212 * The flush_mask contains the cpus the broadcast was sent to.
213 * 213 *
214 * Returns 1 if all remote flushing was done. The mask is zeroed. 214 * Returns NULL if all remote flushing was done. The mask is zeroed.
215 * Returns 0 if some remote flushing remains to be done. The mask is left 215 * Returns @flush_mask if some remote flushing remains to be done. The
216 * unchanged. 216 * mask will have some bits still set.
217 */ 217 */
218int uv_flush_send_and_wait(int cpu, int this_blade, struct bau_desc *bau_desc, 218const struct cpumask *uv_flush_send_and_wait(int cpu, int this_blade,
219 cpumask_t *cpumaskp) 219 struct bau_desc *bau_desc,
220 struct cpumask *flush_mask)
220{ 221{
221 int completion_status = 0; 222 int completion_status = 0;
222 int right_shift; 223 int right_shift;
@@ -256,66 +257,76 @@ int uv_flush_send_and_wait(int cpu, int this_blade, struct bau_desc *bau_desc,
256 * the cpu's, all of which are still in the mask. 257 * the cpu's, all of which are still in the mask.
257 */ 258 */
258 __get_cpu_var(ptcstats).ptc_i++; 259 __get_cpu_var(ptcstats).ptc_i++;
259 return 0; 260 return flush_mask;
260 } 261 }
261 262
262 /* 263 /*
263 * Success, so clear the remote cpu's from the mask so we don't 264 * Success, so clear the remote cpu's from the mask so we don't
264 * use the IPI method of shootdown on them. 265 * use the IPI method of shootdown on them.
265 */ 266 */
266 for_each_cpu_mask(bit, *cpumaskp) { 267 for_each_cpu(bit, flush_mask) {
267 blade = uv_cpu_to_blade_id(bit); 268 blade = uv_cpu_to_blade_id(bit);
268 if (blade == this_blade) 269 if (blade == this_blade)
269 continue; 270 continue;
270 cpu_clear(bit, *cpumaskp); 271 cpumask_clear_cpu(bit, flush_mask);
271 } 272 }
272 if (!cpus_empty(*cpumaskp)) 273 if (!cpumask_empty(flush_mask))
273 return 0; 274 return flush_mask;
274 return 1; 275 return NULL;
275} 276}
276 277
277/** 278/**
278 * uv_flush_tlb_others - globally purge translation cache of a virtual 279 * uv_flush_tlb_others - globally purge translation cache of a virtual
279 * address or all TLB's 280 * address or all TLB's
280 * @cpumaskp: mask of all cpu's in which the address is to be removed 281 * @cpumask: mask of all cpu's in which the address is to be removed
281 * @mm: mm_struct containing virtual address range 282 * @mm: mm_struct containing virtual address range
282 * @va: virtual address to be removed (or TLB_FLUSH_ALL for all TLB's on cpu) 283 * @va: virtual address to be removed (or TLB_FLUSH_ALL for all TLB's on cpu)
284 * @cpu: the current cpu
283 * 285 *
284 * This is the entry point for initiating any UV global TLB shootdown. 286 * This is the entry point for initiating any UV global TLB shootdown.
285 * 287 *
286 * Purges the translation caches of all specified processors of the given 288 * Purges the translation caches of all specified processors of the given
287 * virtual address, or purges all TLB's on specified processors. 289 * virtual address, or purges all TLB's on specified processors.
288 * 290 *
289 * The caller has derived the cpumaskp from the mm_struct and has subtracted 291 * The caller has derived the cpumask from the mm_struct. This function
290 * the local cpu from the mask. This function is called only if there 292 * is called only if there are bits set in the mask. (e.g. flush_tlb_page())
291 * are bits set in the mask. (e.g. flush_tlb_page())
292 * 293 *
293 * The cpumaskp is converted into a nodemask of the nodes containing 294 * The cpumask is converted into a nodemask of the nodes containing
294 * the cpus. 295 * the cpus.
295 * 296 *
296 * Returns 1 if all remote flushing was done. 297 * Note that this function should be called with preemption disabled.
297 * Returns 0 if some remote flushing remains to be done. 298 *
299 * Returns NULL if all remote flushing was done.
300 * Returns pointer to cpumask if some remote flushing remains to be
301 * done. The returned pointer is valid till preemption is re-enabled.
298 */ 302 */
299int uv_flush_tlb_others(cpumask_t *cpumaskp, struct mm_struct *mm, 303const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
300 unsigned long va) 304 struct mm_struct *mm,
305 unsigned long va, unsigned int cpu)
301{ 306{
307 static DEFINE_PER_CPU(cpumask_t, flush_tlb_mask);
308 struct cpumask *flush_mask = &__get_cpu_var(flush_tlb_mask);
302 int i; 309 int i;
303 int bit; 310 int bit;
304 int blade; 311 int blade;
305 int cpu; 312 int uv_cpu;
306 int this_blade; 313 int this_blade;
307 int locals = 0; 314 int locals = 0;
308 struct bau_desc *bau_desc; 315 struct bau_desc *bau_desc;
309 316
310 cpu = uv_blade_processor_id(); 317 WARN_ON(!in_atomic());
318
319 cpumask_andnot(flush_mask, cpumask, cpumask_of(cpu));
320
321 uv_cpu = uv_blade_processor_id();
311 this_blade = uv_numa_blade_id(); 322 this_blade = uv_numa_blade_id();
312 bau_desc = __get_cpu_var(bau_control).descriptor_base; 323 bau_desc = __get_cpu_var(bau_control).descriptor_base;
313 bau_desc += UV_ITEMS_PER_DESCRIPTOR * cpu; 324 bau_desc += UV_ITEMS_PER_DESCRIPTOR * uv_cpu;
314 325
315 bau_nodes_clear(&bau_desc->distribution, UV_DISTRIBUTION_SIZE); 326 bau_nodes_clear(&bau_desc->distribution, UV_DISTRIBUTION_SIZE);
316 327
317 i = 0; 328 i = 0;
318 for_each_cpu_mask(bit, *cpumaskp) { 329 for_each_cpu(bit, flush_mask) {
319 blade = uv_cpu_to_blade_id(bit); 330 blade = uv_cpu_to_blade_id(bit);
320 BUG_ON(blade > (UV_DISTRIBUTION_SIZE - 1)); 331 BUG_ON(blade > (UV_DISTRIBUTION_SIZE - 1));
321 if (blade == this_blade) { 332 if (blade == this_blade) {
@@ -330,17 +341,17 @@ int uv_flush_tlb_others(cpumask_t *cpumaskp, struct mm_struct *mm,
330 * no off_node flushing; return status for local node 341 * no off_node flushing; return status for local node
331 */ 342 */
332 if (locals) 343 if (locals)
333 return 0; 344 return flush_mask;
334 else 345 else
335 return 1; 346 return NULL;
336 } 347 }
337 __get_cpu_var(ptcstats).requestor++; 348 __get_cpu_var(ptcstats).requestor++;
338 __get_cpu_var(ptcstats).ntargeted += i; 349 __get_cpu_var(ptcstats).ntargeted += i;
339 350
340 bau_desc->payload.address = va; 351 bau_desc->payload.address = va;
341 bau_desc->payload.sending_cpu = smp_processor_id(); 352 bau_desc->payload.sending_cpu = cpu;
342 353
343 return uv_flush_send_and_wait(cpu, this_blade, bau_desc, cpumaskp); 354 return uv_flush_send_and_wait(uv_cpu, this_blade, bau_desc, flush_mask);
344} 355}
345 356
346/* 357/*
diff --git a/arch/x86/kernel/trampoline_32.S b/arch/x86/kernel/trampoline_32.S
index d8ccc3c6552f..66d874e5404c 100644
--- a/arch/x86/kernel/trampoline_32.S
+++ b/arch/x86/kernel/trampoline_32.S
@@ -29,7 +29,7 @@
29 29
30#include <linux/linkage.h> 30#include <linux/linkage.h>
31#include <asm/segment.h> 31#include <asm/segment.h>
32#include <asm/page.h> 32#include <asm/page_types.h>
33 33
34/* We can free up trampoline after bootup if cpu hotplug is not supported. */ 34/* We can free up trampoline after bootup if cpu hotplug is not supported. */
35#ifndef CONFIG_HOTPLUG_CPU 35#ifndef CONFIG_HOTPLUG_CPU
diff --git a/arch/x86/kernel/trampoline_64.S b/arch/x86/kernel/trampoline_64.S
index 894293c598db..cddfb8d386b9 100644
--- a/arch/x86/kernel/trampoline_64.S
+++ b/arch/x86/kernel/trampoline_64.S
@@ -25,10 +25,11 @@
25 */ 25 */
26 26
27#include <linux/linkage.h> 27#include <linux/linkage.h>
28#include <asm/pgtable.h> 28#include <asm/pgtable_types.h>
29#include <asm/page.h> 29#include <asm/page_types.h>
30#include <asm/msr.h> 30#include <asm/msr.h>
31#include <asm/segment.h> 31#include <asm/segment.h>
32#include <asm/processor-flags.h>
32 33
33.section .rodata, "a", @progbits 34.section .rodata, "a", @progbits
34 35
@@ -37,7 +38,7 @@
37ENTRY(trampoline_data) 38ENTRY(trampoline_data)
38r_base = . 39r_base = .
39 cli # We should be safe anyway 40 cli # We should be safe anyway
40 wbinvd 41 wbinvd
41 mov %cs, %ax # Code and data in the same place 42 mov %cs, %ax # Code and data in the same place
42 mov %ax, %ds 43 mov %ax, %ds
43 mov %ax, %es 44 mov %ax, %es
@@ -73,9 +74,8 @@ r_base = .
73 lidtl tidt - r_base # load idt with 0, 0 74 lidtl tidt - r_base # load idt with 0, 0
74 lgdtl tgdt - r_base # load gdt with whatever is appropriate 75 lgdtl tgdt - r_base # load gdt with whatever is appropriate
75 76
76 xor %ax, %ax 77 mov $X86_CR0_PE, %ax # protected mode (PE) bit
77 inc %ax # protected mode (PE) bit 78 lmsw %ax # into protected mode
78 lmsw %ax # into protected mode
79 79
80 # flush prefetch and jump to startup_32 80 # flush prefetch and jump to startup_32
81 ljmpl *(startup_32_vector - r_base) 81 ljmpl *(startup_32_vector - r_base)
@@ -86,9 +86,8 @@ startup_32:
86 movl $__KERNEL_DS, %eax # Initialize the %ds segment register 86 movl $__KERNEL_DS, %eax # Initialize the %ds segment register
87 movl %eax, %ds 87 movl %eax, %ds
88 88
89 xorl %eax, %eax 89 movl $X86_CR4_PAE, %eax
90 btsl $5, %eax # Enable PAE mode 90 movl %eax, %cr4 # Enable PAE mode
91 movl %eax, %cr4
92 91
93 # Setup trampoline 4 level pagetables 92 # Setup trampoline 4 level pagetables
94 leal (trampoline_level4_pgt - r_base)(%esi), %eax 93 leal (trampoline_level4_pgt - r_base)(%esi), %eax
@@ -99,9 +98,9 @@ startup_32:
99 xorl %edx, %edx 98 xorl %edx, %edx
100 wrmsr 99 wrmsr
101 100
102 xorl %eax, %eax 101 # Enable paging and in turn activate Long Mode
103 btsl $31, %eax # Enable paging and in turn activate Long Mode 102 # Enable protected mode
104 btsl $0, %eax # Enable protected mode 103 movl $(X86_CR0_PG | X86_CR0_PE), %eax
105 movl %eax, %cr0 104 movl %eax, %cr0
106 105
107 /* 106 /*
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index c9a666cdd3db..a1d288327ff0 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -54,18 +54,14 @@
54#include <asm/desc.h> 54#include <asm/desc.h>
55#include <asm/i387.h> 55#include <asm/i387.h>
56 56
57#include <mach_traps.h> 57#include <asm/mach_traps.h>
58 58
59#ifdef CONFIG_X86_64 59#ifdef CONFIG_X86_64
60#include <asm/pgalloc.h> 60#include <asm/pgalloc.h>
61#include <asm/proto.h> 61#include <asm/proto.h>
62#include <asm/pda.h>
63#else 62#else
64#include <asm/processor-flags.h> 63#include <asm/processor-flags.h>
65#include <asm/arch_hooks.h> 64#include <asm/setup.h>
66#include <asm/nmi.h>
67#include <asm/smp.h>
68#include <asm/io.h>
69#include <asm/traps.h> 65#include <asm/traps.h>
70 66
71#include "cpu/mcheck/mce.h" 67#include "cpu/mcheck/mce.h"
@@ -102,6 +98,12 @@ static inline void preempt_conditional_sti(struct pt_regs *regs)
102 local_irq_enable(); 98 local_irq_enable();
103} 99}
104 100
101static inline void conditional_cli(struct pt_regs *regs)
102{
103 if (regs->flags & X86_EFLAGS_IF)
104 local_irq_disable();
105}
106
105static inline void preempt_conditional_cli(struct pt_regs *regs) 107static inline void preempt_conditional_cli(struct pt_regs *regs)
106{ 108{
107 if (regs->flags & X86_EFLAGS_IF) 109 if (regs->flags & X86_EFLAGS_IF)
@@ -116,47 +118,6 @@ die_if_kernel(const char *str, struct pt_regs *regs, long err)
116 if (!user_mode_vm(regs)) 118 if (!user_mode_vm(regs))
117 die(str, regs, err); 119 die(str, regs, err);
118} 120}
119
120/*
121 * Perform the lazy TSS's I/O bitmap copy. If the TSS has an
122 * invalid offset set (the LAZY one) and the faulting thread has
123 * a valid I/O bitmap pointer, we copy the I/O bitmap in the TSS,
124 * we set the offset field correctly and return 1.
125 */
126static int lazy_iobitmap_copy(void)
127{
128 struct thread_struct *thread;
129 struct tss_struct *tss;
130 int cpu;
131
132 cpu = get_cpu();
133 tss = &per_cpu(init_tss, cpu);
134 thread = &current->thread;
135
136 if (tss->x86_tss.io_bitmap_base == INVALID_IO_BITMAP_OFFSET_LAZY &&
137 thread->io_bitmap_ptr) {
138 memcpy(tss->io_bitmap, thread->io_bitmap_ptr,
139 thread->io_bitmap_max);
140 /*
141 * If the previously set map was extending to higher ports
142 * than the current one, pad extra space with 0xff (no access).
143 */
144 if (thread->io_bitmap_max < tss->io_bitmap_max) {
145 memset((char *) tss->io_bitmap +
146 thread->io_bitmap_max, 0xff,
147 tss->io_bitmap_max - thread->io_bitmap_max);
148 }
149 tss->io_bitmap_max = thread->io_bitmap_max;
150 tss->x86_tss.io_bitmap_base = IO_BITMAP_OFFSET;
151 tss->io_bitmap_owner = thread;
152 put_cpu();
153
154 return 1;
155 }
156 put_cpu();
157
158 return 0;
159}
160#endif 121#endif
161 122
162static void __kprobes 123static void __kprobes
@@ -307,11 +268,6 @@ do_general_protection(struct pt_regs *regs, long error_code)
307 conditional_sti(regs); 268 conditional_sti(regs);
308 269
309#ifdef CONFIG_X86_32 270#ifdef CONFIG_X86_32
310 if (lazy_iobitmap_copy()) {
311 /* restart the faulting instruction */
312 return;
313 }
314
315 if (regs->flags & X86_VM_MASK) 271 if (regs->flags & X86_VM_MASK)
316 goto gp_in_vm86; 272 goto gp_in_vm86;
317#endif 273#endif
@@ -629,8 +585,10 @@ clear_dr7:
629 585
630#ifdef CONFIG_X86_32 586#ifdef CONFIG_X86_32
631debug_vm86: 587debug_vm86:
588 /* reenable preemption: handle_vm86_trap() might sleep */
589 dec_preempt_count();
632 handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code, 1); 590 handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code, 1);
633 preempt_conditional_cli(regs); 591 conditional_cli(regs);
634 return; 592 return;
635#endif 593#endif
636 594
@@ -899,7 +857,7 @@ asmlinkage void math_state_restore(void)
899EXPORT_SYMBOL_GPL(math_state_restore); 857EXPORT_SYMBOL_GPL(math_state_restore);
900 858
901#ifndef CONFIG_MATH_EMULATION 859#ifndef CONFIG_MATH_EMULATION
902asmlinkage void math_emulate(long arg) 860void math_emulate(struct math_emu_info *info)
903{ 861{
904 printk(KERN_EMERG 862 printk(KERN_EMERG
905 "math-emulation not enabled and no coprocessor found.\n"); 863 "math-emulation not enabled and no coprocessor found.\n");
@@ -910,12 +868,16 @@ asmlinkage void math_emulate(long arg)
910#endif /* CONFIG_MATH_EMULATION */ 868#endif /* CONFIG_MATH_EMULATION */
911 869
912dotraplinkage void __kprobes 870dotraplinkage void __kprobes
913do_device_not_available(struct pt_regs *regs, long error) 871do_device_not_available(struct pt_regs *regs, long error_code)
914{ 872{
915#ifdef CONFIG_X86_32 873#ifdef CONFIG_X86_32
916 if (read_cr0() & X86_CR0_EM) { 874 if (read_cr0() & X86_CR0_EM) {
875 struct math_emu_info info = { };
876
917 conditional_sti(regs); 877 conditional_sti(regs);
918 math_emulate(0); 878
879 info.regs = regs;
880 math_emulate(&info);
919 } else { 881 } else {
920 math_state_restore(); /* interrupts still off */ 882 math_state_restore(); /* interrupts still off */
921 conditional_sti(regs); 883 conditional_sti(regs);
@@ -934,7 +896,7 @@ dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code)
934 info.si_signo = SIGILL; 896 info.si_signo = SIGILL;
935 info.si_errno = 0; 897 info.si_errno = 0;
936 info.si_code = ILL_BADSTK; 898 info.si_code = ILL_BADSTK;
937 info.si_addr = 0; 899 info.si_addr = NULL;
938 if (notify_die(DIE_TRAP, "iret exception", 900 if (notify_die(DIE_TRAP, "iret exception",
939 regs, error_code, 32, SIGILL) == NOTIFY_STOP) 901 regs, error_code, 32, SIGILL) == NOTIFY_STOP)
940 return; 902 return;
@@ -1018,6 +980,6 @@ void __init trap_init(void)
1018 cpu_init(); 980 cpu_init();
1019 981
1020#ifdef CONFIG_X86_32 982#ifdef CONFIG_X86_32
1021 trap_init_hook(); 983 x86_quirk_trap_init();
1022#endif 984#endif
1023} 985}
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 599e58168631..83d53ce5d4c4 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -773,7 +773,7 @@ __cpuinit int unsynchronized_tsc(void)
773 if (!cpu_has_tsc || tsc_unstable) 773 if (!cpu_has_tsc || tsc_unstable)
774 return 1; 774 return 1;
775 775
776#ifdef CONFIG_X86_SMP 776#ifdef CONFIG_SMP
777 if (apic_is_clustered_box()) 777 if (apic_is_clustered_box())
778 return 1; 778 return 1;
779#endif 779#endif
diff --git a/arch/x86/kernel/visws_quirks.c b/arch/x86/kernel/visws_quirks.c
index 0c9667f0752a..191a876e9e87 100644
--- a/arch/x86/kernel/visws_quirks.c
+++ b/arch/x86/kernel/visws_quirks.c
@@ -24,18 +24,14 @@
24 24
25#include <asm/visws/cobalt.h> 25#include <asm/visws/cobalt.h>
26#include <asm/visws/piix4.h> 26#include <asm/visws/piix4.h>
27#include <asm/arch_hooks.h>
28#include <asm/io_apic.h> 27#include <asm/io_apic.h>
29#include <asm/fixmap.h> 28#include <asm/fixmap.h>
30#include <asm/reboot.h> 29#include <asm/reboot.h>
31#include <asm/setup.h> 30#include <asm/setup.h>
31#include <asm/apic.h>
32#include <asm/e820.h> 32#include <asm/e820.h>
33#include <asm/io.h> 33#include <asm/io.h>
34 34
35#include <mach_ipi.h>
36
37#include "mach_apic.h"
38
39#include <linux/kernel_stat.h> 35#include <linux/kernel_stat.h>
40 36
41#include <asm/i8259.h> 37#include <asm/i8259.h>
@@ -49,8 +45,6 @@
49 45
50extern int no_broadcast; 46extern int no_broadcast;
51 47
52#include <asm/apic.h>
53
54char visws_board_type = -1; 48char visws_board_type = -1;
55char visws_board_rev = -1; 49char visws_board_rev = -1;
56 50
@@ -176,33 +170,31 @@ static int __init visws_get_smp_config(unsigned int early)
176 * No problem for Linux. 170 * No problem for Linux.
177 */ 171 */
178 172
179static void __init MP_processor_info(struct mpc_config_processor *m) 173static void __init MP_processor_info(struct mpc_cpu *m)
180{ 174{
181 int ver, logical_apicid; 175 int ver, logical_apicid;
182 physid_mask_t apic_cpus; 176 physid_mask_t apic_cpus;
183 177
184 if (!(m->mpc_cpuflag & CPU_ENABLED)) 178 if (!(m->cpuflag & CPU_ENABLED))
185 return; 179 return;
186 180
187 logical_apicid = m->mpc_apicid; 181 logical_apicid = m->apicid;
188 printk(KERN_INFO "%sCPU #%d %u:%u APIC version %d\n", 182 printk(KERN_INFO "%sCPU #%d %u:%u APIC version %d\n",
189 m->mpc_cpuflag & CPU_BOOTPROCESSOR ? "Bootup " : "", 183 m->cpuflag & CPU_BOOTPROCESSOR ? "Bootup " : "",
190 m->mpc_apicid, 184 m->apicid, (m->cpufeature & CPU_FAMILY_MASK) >> 8,
191 (m->mpc_cpufeature & CPU_FAMILY_MASK) >> 8, 185 (m->cpufeature & CPU_MODEL_MASK) >> 4, m->apicver);
192 (m->mpc_cpufeature & CPU_MODEL_MASK) >> 4,
193 m->mpc_apicver);
194 186
195 if (m->mpc_cpuflag & CPU_BOOTPROCESSOR) 187 if (m->cpuflag & CPU_BOOTPROCESSOR)
196 boot_cpu_physical_apicid = m->mpc_apicid; 188 boot_cpu_physical_apicid = m->apicid;
197 189
198 ver = m->mpc_apicver; 190 ver = m->apicver;
199 if ((ver >= 0x14 && m->mpc_apicid >= 0xff) || m->mpc_apicid >= 0xf) { 191 if ((ver >= 0x14 && m->apicid >= 0xff) || m->apicid >= 0xf) {
200 printk(KERN_ERR "Processor #%d INVALID. (Max ID: %d).\n", 192 printk(KERN_ERR "Processor #%d INVALID. (Max ID: %d).\n",
201 m->mpc_apicid, MAX_APICS); 193 m->apicid, MAX_APICS);
202 return; 194 return;
203 } 195 }
204 196
205 apic_cpus = apicid_to_cpu_present(m->mpc_apicid); 197 apic_cpus = apic->apicid_to_cpu_present(m->apicid);
206 physids_or(phys_cpu_present_map, phys_cpu_present_map, apic_cpus); 198 physids_or(phys_cpu_present_map, phys_cpu_present_map, apic_cpus);
207 /* 199 /*
208 * Validate version 200 * Validate version
@@ -210,15 +202,15 @@ static void __init MP_processor_info(struct mpc_config_processor *m)
210 if (ver == 0x0) { 202 if (ver == 0x0) {
211 printk(KERN_ERR "BIOS bug, APIC version is 0 for CPU#%d! " 203 printk(KERN_ERR "BIOS bug, APIC version is 0 for CPU#%d! "
212 "fixing up to 0x10. (tell your hw vendor)\n", 204 "fixing up to 0x10. (tell your hw vendor)\n",
213 m->mpc_apicid); 205 m->apicid);
214 ver = 0x10; 206 ver = 0x10;
215 } 207 }
216 apic_version[m->mpc_apicid] = ver; 208 apic_version[m->apicid] = ver;
217} 209}
218 210
219static int __init visws_find_smp_config(unsigned int reserve) 211static int __init visws_find_smp_config(unsigned int reserve)
220{ 212{
221 struct mpc_config_processor *mp = phys_to_virt(CO_CPU_TAB_PHYS); 213 struct mpc_cpu *mp = phys_to_virt(CO_CPU_TAB_PHYS);
222 unsigned short ncpus = readw(phys_to_virt(CO_CPU_NUM_PHYS)); 214 unsigned short ncpus = readw(phys_to_virt(CO_CPU_NUM_PHYS));
223 215
224 if (ncpus > CO_CPU_MAX) { 216 if (ncpus > CO_CPU_MAX) {
diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
index 4eeb5cf9720d..d7ac84e7fc1c 100644
--- a/arch/x86/kernel/vm86_32.c
+++ b/arch/x86/kernel/vm86_32.c
@@ -158,7 +158,7 @@ struct pt_regs *save_v86_state(struct kernel_vm86_regs *regs)
158 ret = KVM86->regs32; 158 ret = KVM86->regs32;
159 159
160 ret->fs = current->thread.saved_fs; 160 ret->fs = current->thread.saved_fs;
161 loadsegment(gs, current->thread.saved_gs); 161 set_user_gs(ret, current->thread.saved_gs);
162 162
163 return ret; 163 return ret;
164} 164}
@@ -197,9 +197,9 @@ out:
197static int do_vm86_irq_handling(int subfunction, int irqnumber); 197static int do_vm86_irq_handling(int subfunction, int irqnumber);
198static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk); 198static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk);
199 199
200asmlinkage int sys_vm86old(struct pt_regs regs) 200int sys_vm86old(struct pt_regs *regs)
201{ 201{
202 struct vm86_struct __user *v86 = (struct vm86_struct __user *)regs.bx; 202 struct vm86_struct __user *v86 = (struct vm86_struct __user *)regs->bx;
203 struct kernel_vm86_struct info; /* declare this _on top_, 203 struct kernel_vm86_struct info; /* declare this _on top_,
204 * this avoids wasting of stack space. 204 * this avoids wasting of stack space.
205 * This remains on the stack until we 205 * This remains on the stack until we
@@ -218,7 +218,7 @@ asmlinkage int sys_vm86old(struct pt_regs regs)
218 if (tmp) 218 if (tmp)
219 goto out; 219 goto out;
220 memset(&info.vm86plus, 0, (int)&info.regs32 - (int)&info.vm86plus); 220 memset(&info.vm86plus, 0, (int)&info.regs32 - (int)&info.vm86plus);
221 info.regs32 = &regs; 221 info.regs32 = regs;
222 tsk->thread.vm86_info = v86; 222 tsk->thread.vm86_info = v86;
223 do_sys_vm86(&info, tsk); 223 do_sys_vm86(&info, tsk);
224 ret = 0; /* we never return here */ 224 ret = 0; /* we never return here */
@@ -227,7 +227,7 @@ out:
227} 227}
228 228
229 229
230asmlinkage int sys_vm86(struct pt_regs regs) 230int sys_vm86(struct pt_regs *regs)
231{ 231{
232 struct kernel_vm86_struct info; /* declare this _on top_, 232 struct kernel_vm86_struct info; /* declare this _on top_,
233 * this avoids wasting of stack space. 233 * this avoids wasting of stack space.
@@ -239,12 +239,12 @@ asmlinkage int sys_vm86(struct pt_regs regs)
239 struct vm86plus_struct __user *v86; 239 struct vm86plus_struct __user *v86;
240 240
241 tsk = current; 241 tsk = current;
242 switch (regs.bx) { 242 switch (regs->bx) {
243 case VM86_REQUEST_IRQ: 243 case VM86_REQUEST_IRQ:
244 case VM86_FREE_IRQ: 244 case VM86_FREE_IRQ:
245 case VM86_GET_IRQ_BITS: 245 case VM86_GET_IRQ_BITS:
246 case VM86_GET_AND_RESET_IRQ: 246 case VM86_GET_AND_RESET_IRQ:
247 ret = do_vm86_irq_handling(regs.bx, (int)regs.cx); 247 ret = do_vm86_irq_handling(regs->bx, (int)regs->cx);
248 goto out; 248 goto out;
249 case VM86_PLUS_INSTALL_CHECK: 249 case VM86_PLUS_INSTALL_CHECK:
250 /* 250 /*
@@ -261,14 +261,14 @@ asmlinkage int sys_vm86(struct pt_regs regs)
261 ret = -EPERM; 261 ret = -EPERM;
262 if (tsk->thread.saved_sp0) 262 if (tsk->thread.saved_sp0)
263 goto out; 263 goto out;
264 v86 = (struct vm86plus_struct __user *)regs.cx; 264 v86 = (struct vm86plus_struct __user *)regs->cx;
265 tmp = copy_vm86_regs_from_user(&info.regs, &v86->regs, 265 tmp = copy_vm86_regs_from_user(&info.regs, &v86->regs,
266 offsetof(struct kernel_vm86_struct, regs32) - 266 offsetof(struct kernel_vm86_struct, regs32) -
267 sizeof(info.regs)); 267 sizeof(info.regs));
268 ret = -EFAULT; 268 ret = -EFAULT;
269 if (tmp) 269 if (tmp)
270 goto out; 270 goto out;
271 info.regs32 = &regs; 271 info.regs32 = regs;
272 info.vm86plus.is_vm86pus = 1; 272 info.vm86plus.is_vm86pus = 1;
273 tsk->thread.vm86_info = (struct vm86_struct __user *)v86; 273 tsk->thread.vm86_info = (struct vm86_struct __user *)v86;
274 do_sys_vm86(&info, tsk); 274 do_sys_vm86(&info, tsk);
@@ -323,7 +323,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk
323 info->regs32->ax = 0; 323 info->regs32->ax = 0;
324 tsk->thread.saved_sp0 = tsk->thread.sp0; 324 tsk->thread.saved_sp0 = tsk->thread.sp0;
325 tsk->thread.saved_fs = info->regs32->fs; 325 tsk->thread.saved_fs = info->regs32->fs;
326 savesegment(gs, tsk->thread.saved_gs); 326 tsk->thread.saved_gs = get_user_gs(info->regs32);
327 327
328 tss = &per_cpu(init_tss, get_cpu()); 328 tss = &per_cpu(init_tss, get_cpu());
329 tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0; 329 tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0;
diff --git a/arch/x86/kernel/vmi_32.c b/arch/x86/kernel/vmi_32.c
index 23206ba16874..2cc4a90e2cb3 100644
--- a/arch/x86/kernel/vmi_32.c
+++ b/arch/x86/kernel/vmi_32.c
@@ -321,6 +321,16 @@ static void vmi_release_pmd(unsigned long pfn)
321} 321}
322 322
323/* 323/*
324 * We use the pgd_free hook for releasing the pgd page:
325 */
326static void vmi_pgd_free(struct mm_struct *mm, pgd_t *pgd)
327{
328 unsigned long pfn = __pa(pgd) >> PAGE_SHIFT;
329
330 vmi_ops.release_page(pfn, VMI_PAGE_L2);
331}
332
333/*
324 * Helper macros for MMU update flags. We can defer updates until a flush 334 * Helper macros for MMU update flags. We can defer updates until a flush
325 * or page invalidation only if the update is to the current address space 335 * or page invalidation only if the update is to the current address space
326 * (otherwise, there is no flush). We must check against init_mm, since 336 * (otherwise, there is no flush). We must check against init_mm, since
@@ -670,10 +680,11 @@ static inline int __init activate_vmi(void)
670 para_fill(pv_mmu_ops.write_cr2, SetCR2); 680 para_fill(pv_mmu_ops.write_cr2, SetCR2);
671 para_fill(pv_mmu_ops.write_cr3, SetCR3); 681 para_fill(pv_mmu_ops.write_cr3, SetCR3);
672 para_fill(pv_cpu_ops.write_cr4, SetCR4); 682 para_fill(pv_cpu_ops.write_cr4, SetCR4);
673 para_fill(pv_irq_ops.save_fl, GetInterruptMask); 683
674 para_fill(pv_irq_ops.restore_fl, SetInterruptMask); 684 para_fill(pv_irq_ops.save_fl.func, GetInterruptMask);
675 para_fill(pv_irq_ops.irq_disable, DisableInterrupts); 685 para_fill(pv_irq_ops.restore_fl.func, SetInterruptMask);
676 para_fill(pv_irq_ops.irq_enable, EnableInterrupts); 686 para_fill(pv_irq_ops.irq_disable.func, DisableInterrupts);
687 para_fill(pv_irq_ops.irq_enable.func, EnableInterrupts);
677 688
678 para_fill(pv_cpu_ops.wbinvd, WBINVD); 689 para_fill(pv_cpu_ops.wbinvd, WBINVD);
679 para_fill(pv_cpu_ops.read_tsc, RDTSC); 690 para_fill(pv_cpu_ops.read_tsc, RDTSC);
@@ -762,6 +773,7 @@ static inline int __init activate_vmi(void)
762 if (vmi_ops.release_page) { 773 if (vmi_ops.release_page) {
763 pv_mmu_ops.release_pte = vmi_release_pte; 774 pv_mmu_ops.release_pte = vmi_release_pte;
764 pv_mmu_ops.release_pmd = vmi_release_pmd; 775 pv_mmu_ops.release_pmd = vmi_release_pmd;
776 pv_mmu_ops.pgd_free = vmi_pgd_free;
765 } 777 }
766 778
767 /* Set linear is needed in all cases */ 779 /* Set linear is needed in all cases */
@@ -786,8 +798,8 @@ static inline int __init activate_vmi(void)
786#endif 798#endif
787 799
788#ifdef CONFIG_X86_LOCAL_APIC 800#ifdef CONFIG_X86_LOCAL_APIC
789 para_fill(apic_ops->read, APICRead); 801 para_fill(apic->read, APICRead);
790 para_fill(apic_ops->write, APICWrite); 802 para_fill(apic->write, APICWrite);
791#endif 803#endif
792 804
793 /* 805 /*
@@ -858,7 +870,7 @@ void __init vmi_init(void)
858#endif 870#endif
859} 871}
860 872
861void vmi_activate(void) 873void __init vmi_activate(void)
862{ 874{
863 unsigned long flags; 875 unsigned long flags;
864 876
diff --git a/arch/x86/kernel/vmiclock_32.c b/arch/x86/kernel/vmiclock_32.c
index c4c1f9e09402..33a788d5879c 100644
--- a/arch/x86/kernel/vmiclock_32.c
+++ b/arch/x86/kernel/vmiclock_32.c
@@ -28,7 +28,6 @@
28 28
29#include <asm/vmi.h> 29#include <asm/vmi.h>
30#include <asm/vmi_time.h> 30#include <asm/vmi_time.h>
31#include <asm/arch_hooks.h>
32#include <asm/apicdef.h> 31#include <asm/apicdef.h>
33#include <asm/apic.h> 32#include <asm/apic.h>
34#include <asm/timer.h> 33#include <asm/timer.h>
@@ -202,7 +201,7 @@ static irqreturn_t vmi_timer_interrupt(int irq, void *dev_id)
202static struct irqaction vmi_clock_action = { 201static struct irqaction vmi_clock_action = {
203 .name = "vmi-timer", 202 .name = "vmi-timer",
204 .handler = vmi_timer_interrupt, 203 .handler = vmi_timer_interrupt,
205 .flags = IRQF_DISABLED | IRQF_NOBALANCING, 204 .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_TIMER,
206 .mask = CPU_MASK_ALL, 205 .mask = CPU_MASK_ALL,
207}; 206};
208 207
@@ -256,7 +255,7 @@ void __devinit vmi_time_bsp_init(void)
256 */ 255 */
257 clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL); 256 clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL);
258 local_irq_disable(); 257 local_irq_disable();
259#ifdef CONFIG_X86_SMP 258#ifdef CONFIG_SMP
260 /* 259 /*
261 * XXX handle_percpu_irq only defined for SMP; we need to switch over 260 * XXX handle_percpu_irq only defined for SMP; we need to switch over
262 * to using it, since this is a local interrupt, which each CPU must 261 * to using it, since this is a local interrupt, which each CPU must
@@ -283,10 +282,12 @@ void __devinit vmi_time_ap_init(void)
283#endif 282#endif
284 283
285/** vmi clocksource */ 284/** vmi clocksource */
285static struct clocksource clocksource_vmi;
286 286
287static cycle_t read_real_cycles(void) 287static cycle_t read_real_cycles(void)
288{ 288{
289 return vmi_timer_ops.get_cycle_counter(VMI_CYCLES_REAL); 289 cycle_t ret = (cycle_t)vmi_timer_ops.get_cycle_counter(VMI_CYCLES_REAL);
290 return max(ret, clocksource_vmi.cycle_last);
290} 291}
291 292
292static struct clocksource clocksource_vmi = { 293static struct clocksource clocksource_vmi = {
diff --git a/arch/x86/kernel/vmlinux_32.lds.S b/arch/x86/kernel/vmlinux_32.lds.S
index 82c67559dde7..0d860963f268 100644
--- a/arch/x86/kernel/vmlinux_32.lds.S
+++ b/arch/x86/kernel/vmlinux_32.lds.S
@@ -12,7 +12,7 @@
12 12
13#include <asm-generic/vmlinux.lds.h> 13#include <asm-generic/vmlinux.lds.h>
14#include <asm/thread_info.h> 14#include <asm/thread_info.h>
15#include <asm/page.h> 15#include <asm/page_types.h>
16#include <asm/cache.h> 16#include <asm/cache.h>
17#include <asm/boot.h> 17#include <asm/boot.h>
18 18
@@ -178,14 +178,7 @@ SECTIONS
178 __initramfs_end = .; 178 __initramfs_end = .;
179 } 179 }
180#endif 180#endif
181 . = ALIGN(PAGE_SIZE); 181 PERCPU(PAGE_SIZE)
182 .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) {
183 __per_cpu_start = .;
184 *(.data.percpu.page_aligned)
185 *(.data.percpu)
186 *(.data.percpu.shared_aligned)
187 __per_cpu_end = .;
188 }
189 . = ALIGN(PAGE_SIZE); 182 . = ALIGN(PAGE_SIZE);
190 /* freed after init ends here */ 183 /* freed after init ends here */
191 184
diff --git a/arch/x86/kernel/vmlinux_64.lds.S b/arch/x86/kernel/vmlinux_64.lds.S
index 1a614c0e6bef..fbfced6f6800 100644
--- a/arch/x86/kernel/vmlinux_64.lds.S
+++ b/arch/x86/kernel/vmlinux_64.lds.S
@@ -5,7 +5,8 @@
5#define LOAD_OFFSET __START_KERNEL_map 5#define LOAD_OFFSET __START_KERNEL_map
6 6
7#include <asm-generic/vmlinux.lds.h> 7#include <asm-generic/vmlinux.lds.h>
8#include <asm/page.h> 8#include <asm/asm-offsets.h>
9#include <asm/page_types.h>
9 10
10#undef i386 /* in case the preprocessor is a 32bit one */ 11#undef i386 /* in case the preprocessor is a 32bit one */
11 12
@@ -13,12 +14,15 @@ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
13OUTPUT_ARCH(i386:x86-64) 14OUTPUT_ARCH(i386:x86-64)
14ENTRY(phys_startup_64) 15ENTRY(phys_startup_64)
15jiffies_64 = jiffies; 16jiffies_64 = jiffies;
16_proxy_pda = 1;
17PHDRS { 17PHDRS {
18 text PT_LOAD FLAGS(5); /* R_E */ 18 text PT_LOAD FLAGS(5); /* R_E */
19 data PT_LOAD FLAGS(7); /* RWE */ 19 data PT_LOAD FLAGS(7); /* RWE */
20 user PT_LOAD FLAGS(7); /* RWE */ 20 user PT_LOAD FLAGS(7); /* RWE */
21 data.init PT_LOAD FLAGS(7); /* RWE */ 21 data.init PT_LOAD FLAGS(7); /* RWE */
22#ifdef CONFIG_SMP
23 percpu PT_LOAD FLAGS(7); /* RWE */
24#endif
25 data.init2 PT_LOAD FLAGS(7); /* RWE */
22 note PT_NOTE FLAGS(0); /* ___ */ 26 note PT_NOTE FLAGS(0); /* ___ */
23} 27}
24SECTIONS 28SECTIONS
@@ -208,14 +212,28 @@ SECTIONS
208 __initramfs_end = .; 212 __initramfs_end = .;
209#endif 213#endif
210 214
215#ifdef CONFIG_SMP
216 /*
217 * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the
218 * output PHDR, so the next output section - __data_nosave - should
219 * start another section data.init2. Also, pda should be at the head of
220 * percpu area. Preallocate it and define the percpu offset symbol
221 * so that it can be accessed as a percpu variable.
222 */
223 . = ALIGN(PAGE_SIZE);
224 PERCPU_VADDR(0, :percpu)
225#else
211 PERCPU(PAGE_SIZE) 226 PERCPU(PAGE_SIZE)
227#endif
212 228
213 . = ALIGN(PAGE_SIZE); 229 . = ALIGN(PAGE_SIZE);
214 __init_end = .; 230 __init_end = .;
215 231
216 . = ALIGN(PAGE_SIZE); 232 . = ALIGN(PAGE_SIZE);
217 __nosave_begin = .; 233 __nosave_begin = .;
218 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { *(.data.nosave) } 234 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
235 *(.data.nosave)
236 } :data.init2 /* use another section data.init2, see PERCPU_VADDR() above */
219 . = ALIGN(PAGE_SIZE); 237 . = ALIGN(PAGE_SIZE);
220 __nosave_end = .; 238 __nosave_end = .;
221 239
@@ -239,8 +257,21 @@ SECTIONS
239 DWARF_DEBUG 257 DWARF_DEBUG
240} 258}
241 259
260 /*
261 * Per-cpu symbols which need to be offset from __per_cpu_load
262 * for the boot processor.
263 */
264#define INIT_PER_CPU(x) init_per_cpu__##x = per_cpu__##x + __per_cpu_load
265INIT_PER_CPU(gdt_page);
266INIT_PER_CPU(irq_stack_union);
267
242/* 268/*
243 * Build-time check on the image size: 269 * Build-time check on the image size:
244 */ 270 */
245ASSERT((_end - _text <= KERNEL_IMAGE_SIZE), 271ASSERT((_end - _text <= KERNEL_IMAGE_SIZE),
246 "kernel image bigger than KERNEL_IMAGE_SIZE") 272 "kernel image bigger than KERNEL_IMAGE_SIZE")
273
274#ifdef CONFIG_SMP
275ASSERT((per_cpu__irq_stack_union == 0),
276 "irq_stack_union is not at start of per-cpu area");
277#endif
diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c
index a688f3bfaec2..74de562812cc 100644
--- a/arch/x86/kernel/vsmp_64.c
+++ b/arch/x86/kernel/vsmp_64.c
@@ -22,7 +22,7 @@
22#include <asm/paravirt.h> 22#include <asm/paravirt.h>
23#include <asm/setup.h> 23#include <asm/setup.h>
24 24
25#if defined CONFIG_PCI && defined CONFIG_PARAVIRT 25#ifdef CONFIG_PARAVIRT
26/* 26/*
27 * Interrupt control on vSMPowered systems: 27 * Interrupt control on vSMPowered systems:
28 * ~AC is a shadow of IF. If IF is 'on' AC should be 'off' 28 * ~AC is a shadow of IF. If IF is 'on' AC should be 'off'
@@ -37,6 +37,7 @@ static unsigned long vsmp_save_fl(void)
37 flags &= ~X86_EFLAGS_IF; 37 flags &= ~X86_EFLAGS_IF;
38 return flags; 38 return flags;
39} 39}
40PV_CALLEE_SAVE_REGS_THUNK(vsmp_save_fl);
40 41
41static void vsmp_restore_fl(unsigned long flags) 42static void vsmp_restore_fl(unsigned long flags)
42{ 43{
@@ -46,6 +47,7 @@ static void vsmp_restore_fl(unsigned long flags)
46 flags |= X86_EFLAGS_AC; 47 flags |= X86_EFLAGS_AC;
47 native_restore_fl(flags); 48 native_restore_fl(flags);
48} 49}
50PV_CALLEE_SAVE_REGS_THUNK(vsmp_restore_fl);
49 51
50static void vsmp_irq_disable(void) 52static void vsmp_irq_disable(void)
51{ 53{
@@ -53,6 +55,7 @@ static void vsmp_irq_disable(void)
53 55
54 native_restore_fl((flags & ~X86_EFLAGS_IF) | X86_EFLAGS_AC); 56 native_restore_fl((flags & ~X86_EFLAGS_IF) | X86_EFLAGS_AC);
55} 57}
58PV_CALLEE_SAVE_REGS_THUNK(vsmp_irq_disable);
56 59
57static void vsmp_irq_enable(void) 60static void vsmp_irq_enable(void)
58{ 61{
@@ -60,6 +63,7 @@ static void vsmp_irq_enable(void)
60 63
61 native_restore_fl((flags | X86_EFLAGS_IF) & (~X86_EFLAGS_AC)); 64 native_restore_fl((flags | X86_EFLAGS_IF) & (~X86_EFLAGS_AC));
62} 65}
66PV_CALLEE_SAVE_REGS_THUNK(vsmp_irq_enable);
63 67
64static unsigned __init_or_module vsmp_patch(u8 type, u16 clobbers, void *ibuf, 68static unsigned __init_or_module vsmp_patch(u8 type, u16 clobbers, void *ibuf,
65 unsigned long addr, unsigned len) 69 unsigned long addr, unsigned len)
@@ -90,10 +94,10 @@ static void __init set_vsmp_pv_ops(void)
90 cap, ctl); 94 cap, ctl);
91 if (cap & ctl & (1 << 4)) { 95 if (cap & ctl & (1 << 4)) {
92 /* Setup irq ops and turn on vSMP IRQ fastpath handling */ 96 /* Setup irq ops and turn on vSMP IRQ fastpath handling */
93 pv_irq_ops.irq_disable = vsmp_irq_disable; 97 pv_irq_ops.irq_disable = PV_CALLEE_SAVE(vsmp_irq_disable);
94 pv_irq_ops.irq_enable = vsmp_irq_enable; 98 pv_irq_ops.irq_enable = PV_CALLEE_SAVE(vsmp_irq_enable);
95 pv_irq_ops.save_fl = vsmp_save_fl; 99 pv_irq_ops.save_fl = PV_CALLEE_SAVE(vsmp_save_fl);
96 pv_irq_ops.restore_fl = vsmp_restore_fl; 100 pv_irq_ops.restore_fl = PV_CALLEE_SAVE(vsmp_restore_fl);
97 pv_init_ops.patch = vsmp_patch; 101 pv_init_ops.patch = vsmp_patch;
98 102
99 ctl &= ~(1 << 4); 103 ctl &= ~(1 << 4);
@@ -110,7 +114,6 @@ static void __init set_vsmp_pv_ops(void)
110} 114}
111#endif 115#endif
112 116
113#ifdef CONFIG_PCI
114static int is_vsmp = -1; 117static int is_vsmp = -1;
115 118
116static void __init detect_vsmp_box(void) 119static void __init detect_vsmp_box(void)
@@ -135,15 +138,6 @@ int is_vsmp_box(void)
135 return 0; 138 return 0;
136 } 139 }
137} 140}
138#else
139static void __init detect_vsmp_box(void)
140{
141}
142int is_vsmp_box(void)
143{
144 return 0;
145}
146#endif
147 141
148void __init vsmp_init(void) 142void __init vsmp_init(void)
149{ 143{
diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
index 695e426aa354..3909e3ba5ce3 100644
--- a/arch/x86/kernel/x8664_ksyms_64.c
+++ b/arch/x86/kernel/x8664_ksyms_64.c
@@ -58,5 +58,3 @@ EXPORT_SYMBOL(__memcpy);
58EXPORT_SYMBOL(empty_zero_page); 58EXPORT_SYMBOL(empty_zero_page);
59EXPORT_SYMBOL(init_level4_pgt); 59EXPORT_SYMBOL(init_level4_pgt);
60EXPORT_SYMBOL(load_gs_index); 60EXPORT_SYMBOL(load_gs_index);
61
62EXPORT_SYMBOL(_proxy_pda);
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c
index e665d1c623ca..72bd275a9b5c 100644
--- a/arch/x86/kvm/i8254.c
+++ b/arch/x86/kvm/i8254.c
@@ -207,7 +207,7 @@ static int __pit_timer_fn(struct kvm_kpit_state *ps)
207 hrtimer_add_expires_ns(&pt->timer, pt->period); 207 hrtimer_add_expires_ns(&pt->timer, pt->period);
208 pt->scheduled = hrtimer_get_expires_ns(&pt->timer); 208 pt->scheduled = hrtimer_get_expires_ns(&pt->timer);
209 if (pt->period) 209 if (pt->period)
210 ps->channels[0].count_load_time = hrtimer_get_expires(&pt->timer); 210 ps->channels[0].count_load_time = ktime_get();
211 211
212 return (pt->period == 0 ? 0 : 1); 212 return (pt->period == 0 ? 0 : 1);
213} 213}
diff --git a/arch/x86/kvm/irq.c b/arch/x86/kvm/irq.c
index c019b8edcdb7..cf17ed52f6fb 100644
--- a/arch/x86/kvm/irq.c
+++ b/arch/x86/kvm/irq.c
@@ -87,13 +87,6 @@ void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu)
87} 87}
88EXPORT_SYMBOL_GPL(kvm_inject_pending_timer_irqs); 88EXPORT_SYMBOL_GPL(kvm_inject_pending_timer_irqs);
89 89
90void kvm_timer_intr_post(struct kvm_vcpu *vcpu, int vec)
91{
92 kvm_apic_timer_intr_post(vcpu, vec);
93 /* TODO: PIT, RTC etc. */
94}
95EXPORT_SYMBOL_GPL(kvm_timer_intr_post);
96
97void __kvm_migrate_timers(struct kvm_vcpu *vcpu) 90void __kvm_migrate_timers(struct kvm_vcpu *vcpu)
98{ 91{
99 __kvm_migrate_apic_timer(vcpu); 92 __kvm_migrate_apic_timer(vcpu);
diff --git a/arch/x86/kvm/irq.h b/arch/x86/kvm/irq.h
index 2bf32a03ceec..82579ee538d0 100644
--- a/arch/x86/kvm/irq.h
+++ b/arch/x86/kvm/irq.h
@@ -89,7 +89,6 @@ static inline int irqchip_in_kernel(struct kvm *kvm)
89 89
90void kvm_pic_reset(struct kvm_kpic_state *s); 90void kvm_pic_reset(struct kvm_kpic_state *s);
91 91
92void kvm_timer_intr_post(struct kvm_vcpu *vcpu, int vec);
93void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu); 92void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu);
94void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu); 93void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu);
95void kvm_apic_nmi_wd_deliver(struct kvm_vcpu *vcpu); 94void kvm_apic_nmi_wd_deliver(struct kvm_vcpu *vcpu);
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index afac68c0815c..f0b67f2cdd69 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -35,6 +35,12 @@
35#include "kvm_cache_regs.h" 35#include "kvm_cache_regs.h"
36#include "irq.h" 36#include "irq.h"
37 37
38#ifndef CONFIG_X86_64
39#define mod_64(x, y) ((x) - (y) * div64_u64(x, y))
40#else
41#define mod_64(x, y) ((x) % (y))
42#endif
43
38#define PRId64 "d" 44#define PRId64 "d"
39#define PRIx64 "llx" 45#define PRIx64 "llx"
40#define PRIu64 "u" 46#define PRIu64 "u"
@@ -511,52 +517,22 @@ static void apic_send_ipi(struct kvm_lapic *apic)
511 517
512static u32 apic_get_tmcct(struct kvm_lapic *apic) 518static u32 apic_get_tmcct(struct kvm_lapic *apic)
513{ 519{
514 u64 counter_passed; 520 ktime_t remaining;
515 ktime_t passed, now; 521 s64 ns;
516 u32 tmcct; 522 u32 tmcct;
517 523
518 ASSERT(apic != NULL); 524 ASSERT(apic != NULL);
519 525
520 now = apic->timer.dev.base->get_time();
521 tmcct = apic_get_reg(apic, APIC_TMICT);
522
523 /* if initial count is 0, current count should also be 0 */ 526 /* if initial count is 0, current count should also be 0 */
524 if (tmcct == 0) 527 if (apic_get_reg(apic, APIC_TMICT) == 0)
525 return 0; 528 return 0;
526 529
527 if (unlikely(ktime_to_ns(now) <= 530 remaining = hrtimer_expires_remaining(&apic->timer.dev);
528 ktime_to_ns(apic->timer.last_update))) { 531 if (ktime_to_ns(remaining) < 0)
529 /* Wrap around */ 532 remaining = ktime_set(0, 0);
530 passed = ktime_add(( { 533
531 (ktime_t) { 534 ns = mod_64(ktime_to_ns(remaining), apic->timer.period);
532 .tv64 = KTIME_MAX - 535 tmcct = div64_u64(ns, (APIC_BUS_CYCLE_NS * apic->timer.divide_count));
533 (apic->timer.last_update).tv64}; }
534 ), now);
535 apic_debug("time elapsed\n");
536 } else
537 passed = ktime_sub(now, apic->timer.last_update);
538
539 counter_passed = div64_u64(ktime_to_ns(passed),
540 (APIC_BUS_CYCLE_NS * apic->timer.divide_count));
541
542 if (counter_passed > tmcct) {
543 if (unlikely(!apic_lvtt_period(apic))) {
544 /* one-shot timers stick at 0 until reset */
545 tmcct = 0;
546 } else {
547 /*
548 * periodic timers reset to APIC_TMICT when they
549 * hit 0. The while loop simulates this happening N
550 * times. (counter_passed %= tmcct) would also work,
551 * but might be slower or not work on 32-bit??
552 */
553 while (counter_passed > tmcct)
554 counter_passed -= tmcct;
555 tmcct -= counter_passed;
556 }
557 } else {
558 tmcct -= counter_passed;
559 }
560 536
561 return tmcct; 537 return tmcct;
562} 538}
@@ -653,8 +629,6 @@ static void start_apic_timer(struct kvm_lapic *apic)
653{ 629{
654 ktime_t now = apic->timer.dev.base->get_time(); 630 ktime_t now = apic->timer.dev.base->get_time();
655 631
656 apic->timer.last_update = now;
657
658 apic->timer.period = apic_get_reg(apic, APIC_TMICT) * 632 apic->timer.period = apic_get_reg(apic, APIC_TMICT) *
659 APIC_BUS_CYCLE_NS * apic->timer.divide_count; 633 APIC_BUS_CYCLE_NS * apic->timer.divide_count;
660 atomic_set(&apic->timer.pending, 0); 634 atomic_set(&apic->timer.pending, 0);
@@ -1110,16 +1084,6 @@ void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu)
1110 } 1084 }
1111} 1085}
1112 1086
1113void kvm_apic_timer_intr_post(struct kvm_vcpu *vcpu, int vec)
1114{
1115 struct kvm_lapic *apic = vcpu->arch.apic;
1116
1117 if (apic && apic_lvt_vector(apic, APIC_LVTT) == vec)
1118 apic->timer.last_update = ktime_add_ns(
1119 apic->timer.last_update,
1120 apic->timer.period);
1121}
1122
1123int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu) 1087int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu)
1124{ 1088{
1125 int vector = kvm_apic_has_interrupt(vcpu); 1089 int vector = kvm_apic_has_interrupt(vcpu);
diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
index 81858881287e..45ab6ee71209 100644
--- a/arch/x86/kvm/lapic.h
+++ b/arch/x86/kvm/lapic.h
@@ -12,7 +12,6 @@ struct kvm_lapic {
12 atomic_t pending; 12 atomic_t pending;
13 s64 period; /* unit: ns */ 13 s64 period; /* unit: ns */
14 u32 divide_count; 14 u32 divide_count;
15 ktime_t last_update;
16 struct hrtimer dev; 15 struct hrtimer dev;
17 } timer; 16 } timer;
18 struct kvm_vcpu *vcpu; 17 struct kvm_vcpu *vcpu;
@@ -42,7 +41,6 @@ void kvm_set_apic_base(struct kvm_vcpu *vcpu, u64 data);
42void kvm_apic_post_state_restore(struct kvm_vcpu *vcpu); 41void kvm_apic_post_state_restore(struct kvm_vcpu *vcpu);
43int kvm_lapic_enabled(struct kvm_vcpu *vcpu); 42int kvm_lapic_enabled(struct kvm_vcpu *vcpu);
44int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu); 43int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu);
45void kvm_apic_timer_intr_post(struct kvm_vcpu *vcpu, int vec);
46 44
47void kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr); 45void kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr);
48void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu); 46void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu);
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 83f11c7474a1..2d4477c71473 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1698,8 +1698,13 @@ static int set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte,
1698 if (largepage) 1698 if (largepage)
1699 spte |= PT_PAGE_SIZE_MASK; 1699 spte |= PT_PAGE_SIZE_MASK;
1700 if (mt_mask) { 1700 if (mt_mask) {
1701 mt_mask = get_memory_type(vcpu, gfn) << 1701 if (!kvm_is_mmio_pfn(pfn)) {
1702 kvm_x86_ops->get_mt_mask_shift(); 1702 mt_mask = get_memory_type(vcpu, gfn) <<
1703 kvm_x86_ops->get_mt_mask_shift();
1704 mt_mask |= VMX_EPT_IGMT_BIT;
1705 } else
1706 mt_mask = MTRR_TYPE_UNCACHABLE <<
1707 kvm_x86_ops->get_mt_mask_shift();
1703 spte |= mt_mask; 1708 spte |= mt_mask;
1704 } 1709 }
1705 1710
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 1452851ae258..a9e769e4e251 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1600,7 +1600,6 @@ static void svm_intr_assist(struct kvm_vcpu *vcpu)
1600 /* Okay, we can deliver the interrupt: grab it and update PIC state. */ 1600 /* Okay, we can deliver the interrupt: grab it and update PIC state. */
1601 intr_vector = kvm_cpu_get_interrupt(vcpu); 1601 intr_vector = kvm_cpu_get_interrupt(vcpu);
1602 svm_inject_irq(svm, intr_vector); 1602 svm_inject_irq(svm, intr_vector);
1603 kvm_timer_intr_post(vcpu, intr_vector);
1604out: 1603out:
1605 update_cr8_intercept(vcpu); 1604 update_cr8_intercept(vcpu);
1606} 1605}
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 6259d7467648..7611af576829 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -903,6 +903,7 @@ static int vmx_get_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata)
903 data = vmcs_readl(GUEST_SYSENTER_ESP); 903 data = vmcs_readl(GUEST_SYSENTER_ESP);
904 break; 904 break;
905 default: 905 default:
906 vmx_load_host_state(to_vmx(vcpu));
906 msr = find_msr_entry(to_vmx(vcpu), msr_index); 907 msr = find_msr_entry(to_vmx(vcpu), msr_index);
907 if (msr) { 908 if (msr) {
908 data = msr->data; 909 data = msr->data;
@@ -3285,7 +3286,6 @@ static void vmx_intr_assist(struct kvm_vcpu *vcpu)
3285 } 3286 }
3286 if (vcpu->arch.interrupt.pending) { 3287 if (vcpu->arch.interrupt.pending) {
3287 vmx_inject_irq(vcpu, vcpu->arch.interrupt.nr); 3288 vmx_inject_irq(vcpu, vcpu->arch.interrupt.nr);
3288 kvm_timer_intr_post(vcpu, vcpu->arch.interrupt.nr);
3289 if (kvm_cpu_has_interrupt(vcpu)) 3289 if (kvm_cpu_has_interrupt(vcpu))
3290 enable_irq_window(vcpu); 3290 enable_irq_window(vcpu);
3291 } 3291 }
@@ -3687,8 +3687,7 @@ static int __init vmx_init(void)
3687 if (vm_need_ept()) { 3687 if (vm_need_ept()) {
3688 bypass_guest_pf = 0; 3688 bypass_guest_pf = 0;
3689 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK | 3689 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK |
3690 VMX_EPT_WRITABLE_MASK | 3690 VMX_EPT_WRITABLE_MASK);
3691 VMX_EPT_IGMT_BIT);
3692 kvm_mmu_set_mask_ptes(0ull, 0ull, 0ull, 0ull, 3691 kvm_mmu_set_mask_ptes(0ull, 0ull, 0ull, 0ull,
3693 VMX_EPT_EXECUTABLE_MASK, 3692 VMX_EPT_EXECUTABLE_MASK,
3694 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT); 3693 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index cc17546a2406..758b7a155ae9 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -967,7 +967,6 @@ int kvm_dev_ioctl_check_extension(long ext)
967 case KVM_CAP_MMU_SHADOW_CACHE_CONTROL: 967 case KVM_CAP_MMU_SHADOW_CACHE_CONTROL:
968 case KVM_CAP_SET_TSS_ADDR: 968 case KVM_CAP_SET_TSS_ADDR:
969 case KVM_CAP_EXT_CPUID: 969 case KVM_CAP_EXT_CPUID:
970 case KVM_CAP_CLOCKSOURCE:
971 case KVM_CAP_PIT: 970 case KVM_CAP_PIT:
972 case KVM_CAP_NOP_IO_DELAY: 971 case KVM_CAP_NOP_IO_DELAY:
973 case KVM_CAP_MP_STATE: 972 case KVM_CAP_MP_STATE:
@@ -992,6 +991,9 @@ int kvm_dev_ioctl_check_extension(long ext)
992 case KVM_CAP_IOMMU: 991 case KVM_CAP_IOMMU:
993 r = iommu_found(); 992 r = iommu_found();
994 break; 993 break;
994 case KVM_CAP_CLOCKSOURCE:
995 r = boot_cpu_has(X86_FEATURE_CONSTANT_TSC);
996 break;
995 default: 997 default:
996 r = 0; 998 r = 0;
997 break; 999 break;
@@ -4127,9 +4129,13 @@ static void kvm_free_vcpus(struct kvm *kvm)
4127 4129
4128} 4130}
4129 4131
4130void kvm_arch_destroy_vm(struct kvm *kvm) 4132void kvm_arch_sync_events(struct kvm *kvm)
4131{ 4133{
4132 kvm_free_all_assigned_devices(kvm); 4134 kvm_free_all_assigned_devices(kvm);
4135}
4136
4137void kvm_arch_destroy_vm(struct kvm *kvm)
4138{
4133 kvm_iommu_unmap_guest(kvm); 4139 kvm_iommu_unmap_guest(kvm);
4134 kvm_free_pit(kvm); 4140 kvm_free_pit(kvm);
4135 kfree(kvm->arch.vpic); 4141 kfree(kvm->arch.vpic);
diff --git a/arch/x86/lguest/Kconfig b/arch/x86/lguest/Kconfig
index c70e12b1a637..8dab8f7844d3 100644
--- a/arch/x86/lguest/Kconfig
+++ b/arch/x86/lguest/Kconfig
@@ -3,7 +3,6 @@ config LGUEST_GUEST
3 select PARAVIRT 3 select PARAVIRT
4 depends on X86_32 4 depends on X86_32
5 depends on !X86_PAE 5 depends on !X86_PAE
6 depends on !X86_VOYAGER
7 select VIRTIO 6 select VIRTIO
8 select VIRTIO_RING 7 select VIRTIO_RING
9 select VIRTIO_CONSOLE 8 select VIRTIO_CONSOLE
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index a7ed208f81e3..f3a5305b8adf 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -173,24 +173,29 @@ static unsigned long save_fl(void)
173{ 173{
174 return lguest_data.irq_enabled; 174 return lguest_data.irq_enabled;
175} 175}
176PV_CALLEE_SAVE_REGS_THUNK(save_fl);
176 177
177/* restore_flags() just sets the flags back to the value given. */ 178/* restore_flags() just sets the flags back to the value given. */
178static void restore_fl(unsigned long flags) 179static void restore_fl(unsigned long flags)
179{ 180{
180 lguest_data.irq_enabled = flags; 181 lguest_data.irq_enabled = flags;
181} 182}
183PV_CALLEE_SAVE_REGS_THUNK(restore_fl);
182 184
183/* Interrupts go off... */ 185/* Interrupts go off... */
184static void irq_disable(void) 186static void irq_disable(void)
185{ 187{
186 lguest_data.irq_enabled = 0; 188 lguest_data.irq_enabled = 0;
187} 189}
190PV_CALLEE_SAVE_REGS_THUNK(irq_disable);
188 191
189/* Interrupts go on... */ 192/* Interrupts go on... */
190static void irq_enable(void) 193static void irq_enable(void)
191{ 194{
192 lguest_data.irq_enabled = X86_EFLAGS_IF; 195 lguest_data.irq_enabled = X86_EFLAGS_IF;
193} 196}
197PV_CALLEE_SAVE_REGS_THUNK(irq_enable);
198
194/*:*/ 199/*:*/
195/*M:003 Note that we don't check for outstanding interrupts when we re-enable 200/*M:003 Note that we don't check for outstanding interrupts when we re-enable
196 * them (or when we unmask an interrupt). This seems to work for the moment, 201 * them (or when we unmask an interrupt). This seems to work for the moment,
@@ -278,7 +283,7 @@ static void lguest_load_tls(struct thread_struct *t, unsigned int cpu)
278 /* There's one problem which normal hardware doesn't have: the Host 283 /* There's one problem which normal hardware doesn't have: the Host
279 * can't handle us removing entries we're currently using. So we clear 284 * can't handle us removing entries we're currently using. So we clear
280 * the GS register here: if it's needed it'll be reloaded anyway. */ 285 * the GS register here: if it's needed it'll be reloaded anyway. */
281 loadsegment(gs, 0); 286 lazy_load_gs(0);
282 lazy_hcall(LHCALL_LOAD_TLS, __pa(&t->tls_array), cpu, 0); 287 lazy_hcall(LHCALL_LOAD_TLS, __pa(&t->tls_array), cpu, 0);
283} 288}
284 289
@@ -823,13 +828,14 @@ static u32 lguest_apic_safe_wait_icr_idle(void)
823 return 0; 828 return 0;
824} 829}
825 830
826static struct apic_ops lguest_basic_apic_ops = { 831static void set_lguest_basic_apic_ops(void)
827 .read = lguest_apic_read, 832{
828 .write = lguest_apic_write, 833 apic->read = lguest_apic_read;
829 .icr_read = lguest_apic_icr_read, 834 apic->write = lguest_apic_write;
830 .icr_write = lguest_apic_icr_write, 835 apic->icr_read = lguest_apic_icr_read;
831 .wait_icr_idle = lguest_apic_wait_icr_idle, 836 apic->icr_write = lguest_apic_icr_write;
832 .safe_wait_icr_idle = lguest_apic_safe_wait_icr_idle, 837 apic->wait_icr_idle = lguest_apic_wait_icr_idle;
838 apic->safe_wait_icr_idle = lguest_apic_safe_wait_icr_idle;
833}; 839};
834#endif 840#endif
835 841
@@ -931,7 +937,7 @@ static void lguest_restart(char *reason)
931 * that we can fit comfortably. 937 * that we can fit comfortably.
932 * 938 *
933 * First we need assembly templates of each of the patchable Guest operations, 939 * First we need assembly templates of each of the patchable Guest operations,
934 * and these are in lguest_asm.S. */ 940 * and these are in i386_head.S. */
935 941
936/*G:060 We construct a table from the assembler templates: */ 942/*G:060 We construct a table from the assembler templates: */
937static const struct lguest_insns 943static const struct lguest_insns
@@ -984,10 +990,10 @@ __init void lguest_init(void)
984 990
985 /* interrupt-related operations */ 991 /* interrupt-related operations */
986 pv_irq_ops.init_IRQ = lguest_init_IRQ; 992 pv_irq_ops.init_IRQ = lguest_init_IRQ;
987 pv_irq_ops.save_fl = save_fl; 993 pv_irq_ops.save_fl = PV_CALLEE_SAVE(save_fl);
988 pv_irq_ops.restore_fl = restore_fl; 994 pv_irq_ops.restore_fl = PV_CALLEE_SAVE(restore_fl);
989 pv_irq_ops.irq_disable = irq_disable; 995 pv_irq_ops.irq_disable = PV_CALLEE_SAVE(irq_disable);
990 pv_irq_ops.irq_enable = irq_enable; 996 pv_irq_ops.irq_enable = PV_CALLEE_SAVE(irq_enable);
991 pv_irq_ops.safe_halt = lguest_safe_halt; 997 pv_irq_ops.safe_halt = lguest_safe_halt;
992 998
993 /* init-time operations */ 999 /* init-time operations */
@@ -1030,7 +1036,7 @@ __init void lguest_init(void)
1030 1036
1031#ifdef CONFIG_X86_LOCAL_APIC 1037#ifdef CONFIG_X86_LOCAL_APIC
1032 /* apic read/write intercepts */ 1038 /* apic read/write intercepts */
1033 apic_ops = &lguest_basic_apic_ops; 1039 set_lguest_basic_apic_ops();
1034#endif 1040#endif
1035 1041
1036 /* time operations */ 1042 /* time operations */
@@ -1093,7 +1099,7 @@ __init void lguest_init(void)
1093 acpi_ht = 0; 1099 acpi_ht = 0;
1094#endif 1100#endif
1095 1101
1096 /* We set the perferred console to "hvc". This is the "hypervisor 1102 /* We set the preferred console to "hvc". This is the "hypervisor
1097 * virtual console" driver written by the PowerPC people, which we also 1103 * virtual console" driver written by the PowerPC people, which we also
1098 * adapted for lguest's use. */ 1104 * adapted for lguest's use. */
1099 add_preferred_console("hvc", 0, NULL); 1105 add_preferred_console("hvc", 0, NULL);
diff --git a/arch/x86/lib/getuser.S b/arch/x86/lib/getuser.S
index ad374003742f..51f1504cddd9 100644
--- a/arch/x86/lib/getuser.S
+++ b/arch/x86/lib/getuser.S
@@ -28,7 +28,7 @@
28 28
29#include <linux/linkage.h> 29#include <linux/linkage.h>
30#include <asm/dwarf2.h> 30#include <asm/dwarf2.h>
31#include <asm/page.h> 31#include <asm/page_types.h>
32#include <asm/errno.h> 32#include <asm/errno.h>
33#include <asm/asm-offsets.h> 33#include <asm/asm-offsets.h>
34#include <asm/thread_info.h> 34#include <asm/thread_info.h>
diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
index 4a20b2f9a381..7c8ca91bb9ec 100644
--- a/arch/x86/lib/usercopy_32.c
+++ b/arch/x86/lib/usercopy_32.c
@@ -56,7 +56,7 @@ do { \
56 " jmp 2b\n" \ 56 " jmp 2b\n" \
57 ".previous\n" \ 57 ".previous\n" \
58 _ASM_EXTABLE(0b,3b) \ 58 _ASM_EXTABLE(0b,3b) \
59 : "=d"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \ 59 : "=&d"(res), "=&c"(count), "=&a" (__d0), "=&S" (__d1), \
60 "=&D" (__d2) \ 60 "=&D" (__d2) \
61 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ 61 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \
62 : "memory"); \ 62 : "memory"); \
@@ -218,7 +218,7 @@ long strnlen_user(const char __user *s, long n)
218 " .align 4\n" 218 " .align 4\n"
219 " .long 0b,2b\n" 219 " .long 0b,2b\n"
220 ".previous" 220 ".previous"
221 :"=r" (n), "=D" (s), "=a" (res), "=c" (tmp) 221 :"=&r" (n), "=&D" (s), "=&a" (res), "=&c" (tmp)
222 :"0" (n), "1" (s), "2" (0), "3" (mask) 222 :"0" (n), "1" (s), "2" (0), "3" (mask)
223 :"cc"); 223 :"cc");
224 return res & mask; 224 return res & mask;
diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
index 64d6c84e6353..ec13cb5f17ed 100644
--- a/arch/x86/lib/usercopy_64.c
+++ b/arch/x86/lib/usercopy_64.c
@@ -32,7 +32,7 @@ do { \
32 " jmp 2b\n" \ 32 " jmp 2b\n" \
33 ".previous\n" \ 33 ".previous\n" \
34 _ASM_EXTABLE(0b,3b) \ 34 _ASM_EXTABLE(0b,3b) \
35 : "=r"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \ 35 : "=&r"(res), "=&c"(count), "=&a" (__d0), "=&S" (__d1), \
36 "=&D" (__d2) \ 36 "=&D" (__d2) \
37 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ 37 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \
38 : "memory"); \ 38 : "memory"); \
@@ -86,7 +86,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
86 ".previous\n" 86 ".previous\n"
87 _ASM_EXTABLE(0b,3b) 87 _ASM_EXTABLE(0b,3b)
88 _ASM_EXTABLE(1b,2b) 88 _ASM_EXTABLE(1b,2b)
89 : [size8] "=c"(size), [dst] "=&D" (__d0) 89 : [size8] "=&c"(size), [dst] "=&D" (__d0)
90 : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr), 90 : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr),
91 [zero] "r" (0UL), [eight] "r" (8UL)); 91 [zero] "r" (0UL), [eight] "r" (8UL));
92 return size; 92 return size;
diff --git a/arch/x86/mach-default/Makefile b/arch/x86/mach-default/Makefile
deleted file mode 100644
index 012fe34459e6..000000000000
--- a/arch/x86/mach-default/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
1#
2# Makefile for the linux kernel.
3#
4
5obj-y := setup.o
diff --git a/arch/x86/mach-default/setup.c b/arch/x86/mach-default/setup.c
deleted file mode 100644
index df167f265622..000000000000
--- a/arch/x86/mach-default/setup.c
+++ /dev/null
@@ -1,162 +0,0 @@
1/*
2 * Machine specific setup for generic
3 */
4
5#include <linux/smp.h>
6#include <linux/init.h>
7#include <linux/interrupt.h>
8#include <asm/acpi.h>
9#include <asm/arch_hooks.h>
10#include <asm/e820.h>
11#include <asm/setup.h>
12
13#include <mach_ipi.h>
14
15#ifdef CONFIG_HOTPLUG_CPU
16#define DEFAULT_SEND_IPI (1)
17#else
18#define DEFAULT_SEND_IPI (0)
19#endif
20
21int no_broadcast = DEFAULT_SEND_IPI;
22
23/**
24 * pre_intr_init_hook - initialisation prior to setting up interrupt vectors
25 *
26 * Description:
27 * Perform any necessary interrupt initialisation prior to setting up
28 * the "ordinary" interrupt call gates. For legacy reasons, the ISA
29 * interrupts should be initialised here if the machine emulates a PC
30 * in any way.
31 **/
32void __init pre_intr_init_hook(void)
33{
34 if (x86_quirks->arch_pre_intr_init) {
35 if (x86_quirks->arch_pre_intr_init())
36 return;
37 }
38 init_ISA_irqs();
39}
40
41/**
42 * intr_init_hook - post gate setup interrupt initialisation
43 *
44 * Description:
45 * Fill in any interrupts that may have been left out by the general
46 * init_IRQ() routine. interrupts having to do with the machine rather
47 * than the devices on the I/O bus (like APIC interrupts in intel MP
48 * systems) are started here.
49 **/
50void __init intr_init_hook(void)
51{
52 if (x86_quirks->arch_intr_init) {
53 if (x86_quirks->arch_intr_init())
54 return;
55 }
56}
57
58/**
59 * pre_setup_arch_hook - hook called prior to any setup_arch() execution
60 *
61 * Description:
62 * generally used to activate any machine specific identification
63 * routines that may be needed before setup_arch() runs. On Voyager
64 * this is used to get the board revision and type.
65 **/
66void __init pre_setup_arch_hook(void)
67{
68}
69
70/**
71 * trap_init_hook - initialise system specific traps
72 *
73 * Description:
74 * Called as the final act of trap_init(). Used in VISWS to initialise
75 * the various board specific APIC traps.
76 **/
77void __init trap_init_hook(void)
78{
79 if (x86_quirks->arch_trap_init) {
80 if (x86_quirks->arch_trap_init())
81 return;
82 }
83}
84
85static struct irqaction irq0 = {
86 .handler = timer_interrupt,
87 .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_IRQPOLL,
88 .mask = CPU_MASK_NONE,
89 .name = "timer"
90};
91
92/**
93 * pre_time_init_hook - do any specific initialisations before.
94 *
95 **/
96void __init pre_time_init_hook(void)
97{
98 if (x86_quirks->arch_pre_time_init)
99 x86_quirks->arch_pre_time_init();
100}
101
102/**
103 * time_init_hook - do any specific initialisations for the system timer.
104 *
105 * Description:
106 * Must plug the system timer interrupt source at HZ into the IRQ listed
107 * in irq_vectors.h:TIMER_IRQ
108 **/
109void __init time_init_hook(void)
110{
111 if (x86_quirks->arch_time_init) {
112 /*
113 * A nonzero return code does not mean failure, it means
114 * that the architecture quirk does not want any
115 * generic (timer) setup to be performed after this:
116 */
117 if (x86_quirks->arch_time_init())
118 return;
119 }
120
121 irq0.mask = cpumask_of_cpu(0);
122 setup_irq(0, &irq0);
123}
124
125#ifdef CONFIG_MCA
126/**
127 * mca_nmi_hook - hook into MCA specific NMI chain
128 *
129 * Description:
130 * The MCA (Microchannel Architecture) has an NMI chain for NMI sources
131 * along the MCA bus. Use this to hook into that chain if you will need
132 * it.
133 **/
134void mca_nmi_hook(void)
135{
136 /*
137 * If I recall correctly, there's a whole bunch of other things that
138 * we can do to check for NMI problems, but that's all I know about
139 * at the moment.
140 */
141 pr_warning("NMI generated from unknown source!\n");
142}
143#endif
144
145static __init int no_ipi_broadcast(char *str)
146{
147 get_option(&str, &no_broadcast);
148 pr_info("Using %s mode\n",
149 no_broadcast ? "No IPI Broadcast" : "IPI Broadcast");
150 return 1;
151}
152__setup("no_ipi_broadcast=", no_ipi_broadcast);
153
154static int __init print_ipi_mode(void)
155{
156 pr_info("Using IPI %s mode\n",
157 no_broadcast ? "No-Shortcut" : "Shortcut");
158 return 0;
159}
160
161late_initcall(print_ipi_mode);
162
diff --git a/arch/x86/mach-generic/Makefile b/arch/x86/mach-generic/Makefile
deleted file mode 100644
index 6730f4e7c744..000000000000
--- a/arch/x86/mach-generic/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
1#
2# Makefile for the generic architecture
3#
4
5EXTRA_CFLAGS := -Iarch/x86/kernel
6
7obj-y := probe.o default.o
8obj-$(CONFIG_X86_NUMAQ) += numaq.o
9obj-$(CONFIG_X86_SUMMIT) += summit.o
10obj-$(CONFIG_X86_BIGSMP) += bigsmp.o
11obj-$(CONFIG_X86_ES7000) += es7000.o
diff --git a/arch/x86/mach-generic/bigsmp.c b/arch/x86/mach-generic/bigsmp.c
deleted file mode 100644
index bc4c7840b2a8..000000000000
--- a/arch/x86/mach-generic/bigsmp.c
+++ /dev/null
@@ -1,60 +0,0 @@
1/*
2 * APIC driver for "bigsmp" XAPIC machines with more than 8 virtual CPUs.
3 * Drives the local APIC in "clustered mode".
4 */
5#define APIC_DEFINITION 1
6#include <linux/threads.h>
7#include <linux/cpumask.h>
8#include <asm/mpspec.h>
9#include <asm/genapic.h>
10#include <asm/fixmap.h>
11#include <asm/apicdef.h>
12#include <linux/kernel.h>
13#include <linux/init.h>
14#include <linux/dmi.h>
15#include <asm/bigsmp/apicdef.h>
16#include <linux/smp.h>
17#include <asm/bigsmp/apic.h>
18#include <asm/bigsmp/ipi.h>
19#include <asm/mach-default/mach_mpparse.h>
20#include <asm/mach-default/mach_wakecpu.h>
21
22static int dmi_bigsmp; /* can be set by dmi scanners */
23
24static int hp_ht_bigsmp(const struct dmi_system_id *d)
25{
26 printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident);
27 dmi_bigsmp = 1;
28 return 0;
29}
30
31
32static const struct dmi_system_id bigsmp_dmi_table[] = {
33 { hp_ht_bigsmp, "HP ProLiant DL760 G2",
34 { DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
35 DMI_MATCH(DMI_BIOS_VERSION, "P44-"),}
36 },
37
38 { hp_ht_bigsmp, "HP ProLiant DL740",
39 { DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
40 DMI_MATCH(DMI_BIOS_VERSION, "P47-"),}
41 },
42 { }
43};
44
45static void vector_allocation_domain(int cpu, cpumask_t *retmask)
46{
47 cpus_clear(*retmask);
48 cpu_set(cpu, *retmask);
49}
50
51static int probe_bigsmp(void)
52{
53 if (def_to_bigsmp)
54 dmi_bigsmp = 1;
55 else
56 dmi_check_system(bigsmp_dmi_table);
57 return dmi_bigsmp;
58}
59
60struct genapic apic_bigsmp = APIC_INIT("bigsmp", probe_bigsmp);
diff --git a/arch/x86/mach-generic/default.c b/arch/x86/mach-generic/default.c
deleted file mode 100644
index e63a4a76d8cd..000000000000
--- a/arch/x86/mach-generic/default.c
+++ /dev/null
@@ -1,27 +0,0 @@
1/*
2 * Default generic APIC driver. This handles up to 8 CPUs.
3 */
4#define APIC_DEFINITION 1
5#include <linux/threads.h>
6#include <linux/cpumask.h>
7#include <asm/mpspec.h>
8#include <asm/mach-default/mach_apicdef.h>
9#include <asm/genapic.h>
10#include <asm/fixmap.h>
11#include <asm/apicdef.h>
12#include <linux/kernel.h>
13#include <linux/string.h>
14#include <linux/smp.h>
15#include <linux/init.h>
16#include <asm/mach-default/mach_apic.h>
17#include <asm/mach-default/mach_ipi.h>
18#include <asm/mach-default/mach_mpparse.h>
19#include <asm/mach-default/mach_wakecpu.h>
20
21/* should be called last. */
22static int probe_default(void)
23{
24 return 1;
25}
26
27struct genapic apic_default = APIC_INIT("default", probe_default);
diff --git a/arch/x86/mach-generic/es7000.c b/arch/x86/mach-generic/es7000.c
deleted file mode 100644
index 4ba5ccaa1584..000000000000
--- a/arch/x86/mach-generic/es7000.c
+++ /dev/null
@@ -1,103 +0,0 @@
1/*
2 * APIC driver for the Unisys ES7000 chipset.
3 */
4#define APIC_DEFINITION 1
5#include <linux/threads.h>
6#include <linux/cpumask.h>
7#include <asm/mpspec.h>
8#include <asm/genapic.h>
9#include <asm/fixmap.h>
10#include <asm/apicdef.h>
11#include <linux/kernel.h>
12#include <linux/string.h>
13#include <linux/init.h>
14#include <asm/es7000/apicdef.h>
15#include <linux/smp.h>
16#include <asm/es7000/apic.h>
17#include <asm/es7000/ipi.h>
18#include <asm/es7000/mpparse.h>
19#include <asm/mach-default/mach_wakecpu.h>
20
21void __init es7000_update_genapic_to_cluster(void)
22{
23 genapic->target_cpus = target_cpus_cluster;
24 genapic->int_delivery_mode = INT_DELIVERY_MODE_CLUSTER;
25 genapic->int_dest_mode = INT_DEST_MODE_CLUSTER;
26 genapic->no_balance_irq = NO_BALANCE_IRQ_CLUSTER;
27
28 genapic->init_apic_ldr = init_apic_ldr_cluster;
29
30 genapic->cpu_mask_to_apicid = cpu_mask_to_apicid_cluster;
31}
32
33static int probe_es7000(void)
34{
35 /* probed later in mptable/ACPI hooks */
36 return 0;
37}
38
39extern void es7000_sw_apic(void);
40static void __init enable_apic_mode(void)
41{
42 es7000_sw_apic();
43 return;
44}
45
46static __init int mps_oem_check(struct mp_config_table *mpc, char *oem,
47 char *productid)
48{
49 if (mpc->mpc_oemptr) {
50 struct mp_config_oemtable *oem_table =
51 (struct mp_config_oemtable *)mpc->mpc_oemptr;
52 if (!strncmp(oem, "UNISYS", 6))
53 return parse_unisys_oem((char *)oem_table);
54 }
55 return 0;
56}
57
58#ifdef CONFIG_ACPI
59/* Hook from generic ACPI tables.c */
60static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
61{
62 unsigned long oem_addr = 0;
63 int check_dsdt;
64 int ret = 0;
65
66 /* check dsdt at first to avoid clear fix_map for oem_addr */
67 check_dsdt = es7000_check_dsdt();
68
69 if (!find_unisys_acpi_oem_table(&oem_addr)) {
70 if (check_dsdt)
71 ret = parse_unisys_oem((char *)oem_addr);
72 else {
73 setup_unisys();
74 ret = 1;
75 }
76 /*
77 * we need to unmap it
78 */
79 unmap_unisys_acpi_oem_table(oem_addr);
80 }
81 return ret;
82}
83#else
84static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
85{
86 return 0;
87}
88#endif
89
90static void vector_allocation_domain(int cpu, cpumask_t *retmask)
91{
92 /* Careful. Some cpus do not strictly honor the set of cpus
93 * specified in the interrupt destination when using lowest
94 * priority interrupt delivery mode.
95 *
96 * In particular there was a hyperthreading cpu observed to
97 * deliver interrupts to the wrong hyperthread when only one
98 * hyperthread was specified in the interrupt desitination.
99 */
100 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
101}
102
103struct genapic __initdata_refok apic_es7000 = APIC_INIT("es7000", probe_es7000);
diff --git a/arch/x86/mach-generic/numaq.c b/arch/x86/mach-generic/numaq.c
deleted file mode 100644
index 511d7941364f..000000000000
--- a/arch/x86/mach-generic/numaq.c
+++ /dev/null
@@ -1,54 +0,0 @@
1/*
2 * APIC driver for the IBM NUMAQ chipset.
3 */
4#define APIC_DEFINITION 1
5#include <linux/threads.h>
6#include <linux/cpumask.h>
7#include <asm/mpspec.h>
8#include <asm/genapic.h>
9#include <asm/fixmap.h>
10#include <asm/apicdef.h>
11#include <linux/kernel.h>
12#include <linux/string.h>
13#include <linux/init.h>
14#include <asm/numaq/apicdef.h>
15#include <linux/smp.h>
16#include <asm/numaq/apic.h>
17#include <asm/numaq/ipi.h>
18#include <asm/numaq/mpparse.h>
19#include <asm/numaq/wakecpu.h>
20#include <asm/numaq.h>
21
22static int mps_oem_check(struct mp_config_table *mpc, char *oem,
23 char *productid)
24{
25 numaq_mps_oem_check(mpc, oem, productid);
26 return found_numaq;
27}
28
29static int probe_numaq(void)
30{
31 /* already know from get_memcfg_numaq() */
32 return found_numaq;
33}
34
35/* Hook from generic ACPI tables.c */
36static int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
37{
38 return 0;
39}
40
41static void vector_allocation_domain(int cpu, cpumask_t *retmask)
42{
43 /* Careful. Some cpus do not strictly honor the set of cpus
44 * specified in the interrupt destination when using lowest
45 * priority interrupt delivery mode.
46 *
47 * In particular there was a hyperthreading cpu observed to
48 * deliver interrupts to the wrong hyperthread when only one
49 * hyperthread was specified in the interrupt desitination.
50 */
51 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
52}
53
54struct genapic apic_numaq = APIC_INIT("NUMAQ", probe_numaq);
diff --git a/arch/x86/mach-generic/probe.c b/arch/x86/mach-generic/probe.c
deleted file mode 100644
index c346d9d0226f..000000000000
--- a/arch/x86/mach-generic/probe.c
+++ /dev/null
@@ -1,153 +0,0 @@
1/*
2 * Copyright 2003 Andi Kleen, SuSE Labs.
3 * Subject to the GNU Public License, v.2
4 *
5 * Generic x86 APIC driver probe layer.
6 */
7#include <linux/threads.h>
8#include <linux/cpumask.h>
9#include <linux/string.h>
10#include <linux/kernel.h>
11#include <linux/ctype.h>
12#include <linux/init.h>
13#include <linux/errno.h>
14#include <asm/fixmap.h>
15#include <asm/mpspec.h>
16#include <asm/apicdef.h>
17#include <asm/genapic.h>
18#include <asm/setup.h>
19
20extern struct genapic apic_numaq;
21extern struct genapic apic_summit;
22extern struct genapic apic_bigsmp;
23extern struct genapic apic_es7000;
24extern struct genapic apic_default;
25
26struct genapic *genapic = &apic_default;
27
28static struct genapic *apic_probe[] __initdata = {
29#ifdef CONFIG_X86_NUMAQ
30 &apic_numaq,
31#endif
32#ifdef CONFIG_X86_SUMMIT
33 &apic_summit,
34#endif
35#ifdef CONFIG_X86_BIGSMP
36 &apic_bigsmp,
37#endif
38#ifdef CONFIG_X86_ES7000
39 &apic_es7000,
40#endif
41 &apic_default, /* must be last */
42 NULL,
43};
44
45static int cmdline_apic __initdata;
46static int __init parse_apic(char *arg)
47{
48 int i;
49
50 if (!arg)
51 return -EINVAL;
52
53 for (i = 0; apic_probe[i]; i++) {
54 if (!strcmp(apic_probe[i]->name, arg)) {
55 genapic = apic_probe[i];
56 cmdline_apic = 1;
57 return 0;
58 }
59 }
60
61 if (x86_quirks->update_genapic)
62 x86_quirks->update_genapic();
63
64 /* Parsed again by __setup for debug/verbose */
65 return 0;
66}
67early_param("apic", parse_apic);
68
69void __init generic_bigsmp_probe(void)
70{
71#ifdef CONFIG_X86_BIGSMP
72 /*
73 * This routine is used to switch to bigsmp mode when
74 * - There is no apic= option specified by the user
75 * - generic_apic_probe() has chosen apic_default as the sub_arch
76 * - we find more than 8 CPUs in acpi LAPIC listing with xAPIC support
77 */
78
79 if (!cmdline_apic && genapic == &apic_default) {
80 if (apic_bigsmp.probe()) {
81 genapic = &apic_bigsmp;
82 if (x86_quirks->update_genapic)
83 x86_quirks->update_genapic();
84 printk(KERN_INFO "Overriding APIC driver with %s\n",
85 genapic->name);
86 }
87 }
88#endif
89}
90
91void __init generic_apic_probe(void)
92{
93 if (!cmdline_apic) {
94 int i;
95 for (i = 0; apic_probe[i]; i++) {
96 if (apic_probe[i]->probe()) {
97 genapic = apic_probe[i];
98 break;
99 }
100 }
101 /* Not visible without early console */
102 if (!apic_probe[i])
103 panic("Didn't find an APIC driver");
104
105 if (x86_quirks->update_genapic)
106 x86_quirks->update_genapic();
107 }
108 printk(KERN_INFO "Using APIC driver %s\n", genapic->name);
109}
110
111/* These functions can switch the APIC even after the initial ->probe() */
112
113int __init mps_oem_check(struct mp_config_table *mpc, char *oem,
114 char *productid)
115{
116 int i;
117 for (i = 0; apic_probe[i]; ++i) {
118 if (apic_probe[i]->mps_oem_check(mpc, oem, productid)) {
119 if (!cmdline_apic) {
120 genapic = apic_probe[i];
121 if (x86_quirks->update_genapic)
122 x86_quirks->update_genapic();
123 printk(KERN_INFO "Switched to APIC driver `%s'.\n",
124 genapic->name);
125 }
126 return 1;
127 }
128 }
129 return 0;
130}
131
132int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
133{
134 int i;
135 for (i = 0; apic_probe[i]; ++i) {
136 if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) {
137 if (!cmdline_apic) {
138 genapic = apic_probe[i];
139 if (x86_quirks->update_genapic)
140 x86_quirks->update_genapic();
141 printk(KERN_INFO "Switched to APIC driver `%s'.\n",
142 genapic->name);
143 }
144 return 1;
145 }
146 }
147 return 0;
148}
149
150int hard_smp_processor_id(void)
151{
152 return genapic->get_apic_id(*(unsigned long *)(APIC_BASE+APIC_ID));
153}
diff --git a/arch/x86/mach-generic/summit.c b/arch/x86/mach-generic/summit.c
deleted file mode 100644
index 2821ffc188b5..000000000000
--- a/arch/x86/mach-generic/summit.c
+++ /dev/null
@@ -1,40 +0,0 @@
1/*
2 * APIC driver for the IBM "Summit" chipset.
3 */
4#define APIC_DEFINITION 1
5#include <linux/threads.h>
6#include <linux/cpumask.h>
7#include <asm/mpspec.h>
8#include <asm/genapic.h>
9#include <asm/fixmap.h>
10#include <asm/apicdef.h>
11#include <linux/kernel.h>
12#include <linux/string.h>
13#include <linux/init.h>
14#include <asm/summit/apicdef.h>
15#include <linux/smp.h>
16#include <asm/summit/apic.h>
17#include <asm/summit/ipi.h>
18#include <asm/summit/mpparse.h>
19#include <asm/mach-default/mach_wakecpu.h>
20
21static int probe_summit(void)
22{
23 /* probed later in mptable/ACPI hooks */
24 return 0;
25}
26
27static void vector_allocation_domain(int cpu, cpumask_t *retmask)
28{
29 /* Careful. Some cpus do not strictly honor the set of cpus
30 * specified in the interrupt destination when using lowest
31 * priority interrupt delivery mode.
32 *
33 * In particular there was a hyperthreading cpu observed to
34 * deliver interrupts to the wrong hyperthread when only one
35 * hyperthread was specified in the interrupt desitination.
36 */
37 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
38}
39
40struct genapic apic_summit = APIC_INIT("summit", probe_summit);
diff --git a/arch/x86/mach-rdc321x/Makefile b/arch/x86/mach-rdc321x/Makefile
deleted file mode 100644
index 8325b4ca431c..000000000000
--- a/arch/x86/mach-rdc321x/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
1#
2# Makefile for the RDC321x specific parts of the kernel
3#
4obj-$(CONFIG_X86_RDC321X) := gpio.o platform.o
5
diff --git a/arch/x86/mach-rdc321x/gpio.c b/arch/x86/mach-rdc321x/gpio.c
deleted file mode 100644
index 247f33d3a407..000000000000
--- a/arch/x86/mach-rdc321x/gpio.c
+++ /dev/null
@@ -1,194 +0,0 @@
1/*
2 * GPIO support for RDC SoC R3210/R8610
3 *
4 * Copyright (C) 2007, Florian Fainelli <florian@openwrt.org>
5 * Copyright (C) 2008, Volker Weiss <dev@tintuc.de>
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., 675 Mass Ave, Cambridge, MA 02139, USA.
20 *
21 */
22
23
24#include <linux/spinlock.h>
25#include <linux/io.h>
26#include <linux/types.h>
27#include <linux/module.h>
28
29#include <asm/gpio.h>
30#include <asm/mach-rdc321x/rdc321x_defs.h>
31
32
33/* spin lock to protect our private copy of GPIO data register plus
34 the access to PCI conf registers. */
35static DEFINE_SPINLOCK(gpio_lock);
36
37/* copy of GPIO data registers */
38static u32 gpio_data_reg1;
39static u32 gpio_data_reg2;
40
41static u32 gpio_request_data[2];
42
43
44static inline void rdc321x_conf_write(unsigned addr, u32 value)
45{
46 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
47 outl(value, RDC3210_CFGREG_DATA);
48}
49
50static inline void rdc321x_conf_or(unsigned addr, u32 value)
51{
52 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
53 value |= inl(RDC3210_CFGREG_DATA);
54 outl(value, RDC3210_CFGREG_DATA);
55}
56
57static inline u32 rdc321x_conf_read(unsigned addr)
58{
59 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
60
61 return inl(RDC3210_CFGREG_DATA);
62}
63
64/* configure pin as GPIO */
65static void rdc321x_configure_gpio(unsigned gpio)
66{
67 unsigned long flags;
68
69 spin_lock_irqsave(&gpio_lock, flags);
70 rdc321x_conf_or(gpio < 32
71 ? RDC321X_GPIO_CTRL_REG1 : RDC321X_GPIO_CTRL_REG2,
72 1 << (gpio & 0x1f));
73 spin_unlock_irqrestore(&gpio_lock, flags);
74}
75
76/* initially setup the 2 copies of the gpio data registers.
77 This function must be called by the platform setup code. */
78void __init rdc321x_gpio_setup()
79{
80 /* this might not be, what others (BIOS, bootloader, etc.)
81 wrote to these registers before, but it's a good guess. Still
82 better than just using 0xffffffff. */
83
84 gpio_data_reg1 = rdc321x_conf_read(RDC321X_GPIO_DATA_REG1);
85 gpio_data_reg2 = rdc321x_conf_read(RDC321X_GPIO_DATA_REG2);
86}
87
88/* determine, if gpio number is valid */
89static inline int rdc321x_is_gpio(unsigned gpio)
90{
91 return gpio <= RDC321X_MAX_GPIO;
92}
93
94/* request GPIO */
95int rdc_gpio_request(unsigned gpio, const char *label)
96{
97 unsigned long flags;
98
99 if (!rdc321x_is_gpio(gpio))
100 return -EINVAL;
101
102 spin_lock_irqsave(&gpio_lock, flags);
103 if (gpio_request_data[(gpio & 0x20) ? 1 : 0] & (1 << (gpio & 0x1f)))
104 goto inuse;
105 gpio_request_data[(gpio & 0x20) ? 1 : 0] |= (1 << (gpio & 0x1f));
106 spin_unlock_irqrestore(&gpio_lock, flags);
107
108 return 0;
109inuse:
110 spin_unlock_irqrestore(&gpio_lock, flags);
111 return -EINVAL;
112}
113EXPORT_SYMBOL(rdc_gpio_request);
114
115/* release previously-claimed GPIO */
116void rdc_gpio_free(unsigned gpio)
117{
118 unsigned long flags;
119
120 if (!rdc321x_is_gpio(gpio))
121 return;
122
123 spin_lock_irqsave(&gpio_lock, flags);
124 gpio_request_data[(gpio & 0x20) ? 1 : 0] &= ~(1 << (gpio & 0x1f));
125 spin_unlock_irqrestore(&gpio_lock, flags);
126}
127EXPORT_SYMBOL(rdc_gpio_free);
128
129/* read GPIO pin */
130int rdc_gpio_get_value(unsigned gpio)
131{
132 u32 reg;
133 unsigned long flags;
134
135 spin_lock_irqsave(&gpio_lock, flags);
136 reg = rdc321x_conf_read(gpio < 32
137 ? RDC321X_GPIO_DATA_REG1 : RDC321X_GPIO_DATA_REG2);
138 spin_unlock_irqrestore(&gpio_lock, flags);
139
140 return (1 << (gpio & 0x1f)) & reg ? 1 : 0;
141}
142EXPORT_SYMBOL(rdc_gpio_get_value);
143
144/* set GPIO pin to value */
145void rdc_gpio_set_value(unsigned gpio, int value)
146{
147 unsigned long flags;
148 u32 reg;
149
150 reg = 1 << (gpio & 0x1f);
151 if (gpio < 32) {
152 spin_lock_irqsave(&gpio_lock, flags);
153 if (value)
154 gpio_data_reg1 |= reg;
155 else
156 gpio_data_reg1 &= ~reg;
157 rdc321x_conf_write(RDC321X_GPIO_DATA_REG1, gpio_data_reg1);
158 spin_unlock_irqrestore(&gpio_lock, flags);
159 } else {
160 spin_lock_irqsave(&gpio_lock, flags);
161 if (value)
162 gpio_data_reg2 |= reg;
163 else
164 gpio_data_reg2 &= ~reg;
165 rdc321x_conf_write(RDC321X_GPIO_DATA_REG2, gpio_data_reg2);
166 spin_unlock_irqrestore(&gpio_lock, flags);
167 }
168}
169EXPORT_SYMBOL(rdc_gpio_set_value);
170
171/* configure GPIO pin as input */
172int rdc_gpio_direction_input(unsigned gpio)
173{
174 if (!rdc321x_is_gpio(gpio))
175 return -EINVAL;
176
177 rdc321x_configure_gpio(gpio);
178
179 return 0;
180}
181EXPORT_SYMBOL(rdc_gpio_direction_input);
182
183/* configure GPIO pin as output and set value */
184int rdc_gpio_direction_output(unsigned gpio, int value)
185{
186 if (!rdc321x_is_gpio(gpio))
187 return -EINVAL;
188
189 gpio_set_value(gpio, value);
190 rdc321x_configure_gpio(gpio);
191
192 return 0;
193}
194EXPORT_SYMBOL(rdc_gpio_direction_output);
diff --git a/arch/x86/mach-rdc321x/platform.c b/arch/x86/mach-rdc321x/platform.c
deleted file mode 100644
index 4f4e50c3ad3b..000000000000
--- a/arch/x86/mach-rdc321x/platform.c
+++ /dev/null
@@ -1,69 +0,0 @@
1/*
2 * Generic RDC321x platform devices
3 *
4 * Copyright (C) 2007 Florian Fainelli <florian@openwrt.org>
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (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
18 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
20 *
21 */
22
23#include <linux/init.h>
24#include <linux/kernel.h>
25#include <linux/list.h>
26#include <linux/device.h>
27#include <linux/platform_device.h>
28#include <linux/leds.h>
29
30#include <asm/gpio.h>
31
32/* LEDS */
33static struct gpio_led default_leds[] = {
34 { .name = "rdc:dmz", .gpio = 1, },
35};
36
37static struct gpio_led_platform_data rdc321x_led_data = {
38 .num_leds = ARRAY_SIZE(default_leds),
39 .leds = default_leds,
40};
41
42static struct platform_device rdc321x_leds = {
43 .name = "leds-gpio",
44 .id = -1,
45 .dev = {
46 .platform_data = &rdc321x_led_data,
47 }
48};
49
50/* Watchdog */
51static struct platform_device rdc321x_wdt = {
52 .name = "rdc321x-wdt",
53 .id = -1,
54 .num_resources = 0,
55};
56
57static struct platform_device *rdc321x_devs[] = {
58 &rdc321x_leds,
59 &rdc321x_wdt
60};
61
62static int __init rdc_board_setup(void)
63{
64 rdc321x_gpio_setup();
65
66 return platform_add_devices(rdc321x_devs, ARRAY_SIZE(rdc321x_devs));
67}
68
69arch_initcall(rdc_board_setup);
diff --git a/arch/x86/mach-voyager/Makefile b/arch/x86/mach-voyager/Makefile
deleted file mode 100644
index 15c250b371d3..000000000000
--- a/arch/x86/mach-voyager/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
1#
2# Makefile for the linux kernel.
3#
4
5EXTRA_CFLAGS := -Iarch/x86/kernel
6obj-y := setup.o voyager_basic.o voyager_thread.o
7
8obj-$(CONFIG_SMP) += voyager_smp.o voyager_cat.o
diff --git a/arch/x86/mach-voyager/setup.c b/arch/x86/mach-voyager/setup.c
deleted file mode 100644
index a580b9562e76..000000000000
--- a/arch/x86/mach-voyager/setup.c
+++ /dev/null
@@ -1,108 +0,0 @@
1/*
2 * Machine specific setup for generic
3 */
4
5#include <linux/init.h>
6#include <linux/interrupt.h>
7#include <asm/arch_hooks.h>
8#include <asm/voyager.h>
9#include <asm/e820.h>
10#include <asm/io.h>
11#include <asm/setup.h>
12
13void __init pre_intr_init_hook(void)
14{
15 init_ISA_irqs();
16}
17
18/*
19 * IRQ2 is cascade interrupt to second interrupt controller
20 */
21static struct irqaction irq2 = {
22 .handler = no_action,
23 .mask = CPU_MASK_NONE,
24 .name = "cascade",
25};
26
27void __init intr_init_hook(void)
28{
29#ifdef CONFIG_SMP
30 voyager_smp_intr_init();
31#endif
32
33 setup_irq(2, &irq2);
34}
35
36void __init pre_setup_arch_hook(void)
37{
38 /* Voyagers run their CPUs from independent clocks, so disable
39 * the TSC code because we can't sync them */
40 setup_clear_cpu_cap(X86_FEATURE_TSC);
41}
42
43void __init trap_init_hook(void)
44{
45}
46
47static struct irqaction irq0 = {
48 .handler = timer_interrupt,
49 .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_IRQPOLL,
50 .mask = CPU_MASK_NONE,
51 .name = "timer"
52};
53
54void __init time_init_hook(void)
55{
56 irq0.mask = cpumask_of_cpu(safe_smp_processor_id());
57 setup_irq(0, &irq0);
58}
59
60/* Hook for machine specific memory setup. */
61
62char *__init machine_specific_memory_setup(void)
63{
64 char *who;
65 int new_nr;
66
67 who = "NOT VOYAGER";
68
69 if (voyager_level == 5) {
70 __u32 addr, length;
71 int i;
72
73 who = "Voyager-SUS";
74
75 e820.nr_map = 0;
76 for (i = 0; voyager_memory_detect(i, &addr, &length); i++) {
77 e820_add_region(addr, length, E820_RAM);
78 }
79 return who;
80 } else if (voyager_level == 4) {
81 __u32 tom;
82 __u16 catbase = inb(VOYAGER_SSPB_RELOCATION_PORT) << 8;
83 /* select the DINO config space */
84 outb(VOYAGER_DINO, VOYAGER_CAT_CONFIG_PORT);
85 /* Read DINO top of memory register */
86 tom = ((inb(catbase + 0x4) & 0xf0) << 16)
87 + ((inb(catbase + 0x5) & 0x7f) << 24);
88
89 if (inb(catbase) != VOYAGER_DINO) {
90 printk(KERN_ERR
91 "Voyager: Failed to get DINO for L4, setting tom to EXT_MEM_K\n");
92 tom = (boot_params.screen_info.ext_mem_k) << 10;
93 }
94 who = "Voyager-TOM";
95 e820_add_region(0, 0x9f000, E820_RAM);
96 /* map from 1M to top of memory */
97 e820_add_region(1 * 1024 * 1024, tom - 1 * 1024 * 1024,
98 E820_RAM);
99 /* FIXME: Should check the ASICs to see if I need to
100 * take out the 8M window. Just do it at the moment
101 * */
102 e820_add_region(8 * 1024 * 1024, 8 * 1024 * 1024,
103 E820_RESERVED);
104 return who;
105 }
106
107 return default_machine_specific_memory_setup();
108}
diff --git a/arch/x86/mach-voyager/voyager_basic.c b/arch/x86/mach-voyager/voyager_basic.c
deleted file mode 100644
index 46d6f8067690..000000000000
--- a/arch/x86/mach-voyager/voyager_basic.c
+++ /dev/null
@@ -1,317 +0,0 @@
1/* Copyright (C) 1999,2001
2 *
3 * Author: J.E.J.Bottomley@HansenPartnership.com
4 *
5 * This file contains all the voyager specific routines for getting
6 * initialisation of the architecture to function. For additional
7 * features see:
8 *
9 * voyager_cat.c - Voyager CAT bus interface
10 * voyager_smp.c - Voyager SMP hal (emulates linux smp.c)
11 */
12
13#include <linux/module.h>
14#include <linux/types.h>
15#include <linux/sched.h>
16#include <linux/ptrace.h>
17#include <linux/ioport.h>
18#include <linux/interrupt.h>
19#include <linux/init.h>
20#include <linux/delay.h>
21#include <linux/reboot.h>
22#include <linux/sysrq.h>
23#include <linux/smp.h>
24#include <linux/nodemask.h>
25#include <asm/io.h>
26#include <asm/voyager.h>
27#include <asm/vic.h>
28#include <linux/pm.h>
29#include <asm/tlbflush.h>
30#include <asm/arch_hooks.h>
31#include <asm/i8253.h>
32
33/*
34 * Power off function, if any
35 */
36void (*pm_power_off) (void);
37EXPORT_SYMBOL(pm_power_off);
38
39int voyager_level = 0;
40
41struct voyager_SUS *voyager_SUS = NULL;
42
43#ifdef CONFIG_SMP
44static void voyager_dump(int dummy1, struct tty_struct *dummy3)
45{
46 /* get here via a sysrq */
47 voyager_smp_dump();
48}
49
50static struct sysrq_key_op sysrq_voyager_dump_op = {
51 .handler = voyager_dump,
52 .help_msg = "Voyager",
53 .action_msg = "Dump Voyager Status",
54};
55#endif
56
57void voyager_detect(struct voyager_bios_info *bios)
58{
59 if (bios->len != 0xff) {
60 int class = (bios->class_1 << 8)
61 | (bios->class_2 & 0xff);
62
63 printk("Voyager System detected.\n"
64 " Class %x, Revision %d.%d\n",
65 class, bios->major, bios->minor);
66 if (class == VOYAGER_LEVEL4)
67 voyager_level = 4;
68 else if (class < VOYAGER_LEVEL5_AND_ABOVE)
69 voyager_level = 3;
70 else
71 voyager_level = 5;
72 printk(" Architecture Level %d\n", voyager_level);
73 if (voyager_level < 4)
74 printk
75 ("\n**WARNING**: Voyager HAL only supports Levels 4 and 5 Architectures at the moment\n\n");
76 /* install the power off handler */
77 pm_power_off = voyager_power_off;
78#ifdef CONFIG_SMP
79 register_sysrq_key('v', &sysrq_voyager_dump_op);
80#endif
81 } else {
82 printk("\n\n**WARNING**: No Voyager Subsystem Found\n");
83 }
84}
85
86void voyager_system_interrupt(int cpl, void *dev_id)
87{
88 printk("Voyager: detected system interrupt\n");
89}
90
91/* Routine to read information from the extended CMOS area */
92__u8 voyager_extended_cmos_read(__u16 addr)
93{
94 outb(addr & 0xff, 0x74);
95 outb((addr >> 8) & 0xff, 0x75);
96 return inb(0x76);
97}
98
99/* internal definitions for the SUS Click Map of memory */
100
101#define CLICK_ENTRIES 16
102#define CLICK_SIZE 4096 /* click to byte conversion for Length */
103
104typedef struct ClickMap {
105 struct Entry {
106 __u32 Address;
107 __u32 Length;
108 } Entry[CLICK_ENTRIES];
109} ClickMap_t;
110
111/* This routine is pretty much an awful hack to read the bios clickmap by
112 * mapping it into page 0. There are usually three regions in the map:
113 * Base Memory
114 * Extended Memory
115 * zero length marker for end of map
116 *
117 * Returns are 0 for failure and 1 for success on extracting region.
118 */
119int __init voyager_memory_detect(int region, __u32 * start, __u32 * length)
120{
121 int i;
122 int retval = 0;
123 __u8 cmos[4];
124 ClickMap_t *map;
125 unsigned long map_addr;
126 unsigned long old;
127
128 if (region >= CLICK_ENTRIES) {
129 printk("Voyager: Illegal ClickMap region %d\n", region);
130 return 0;
131 }
132
133 for (i = 0; i < sizeof(cmos); i++)
134 cmos[i] =
135 voyager_extended_cmos_read(VOYAGER_MEMORY_CLICKMAP + i);
136
137 map_addr = *(unsigned long *)cmos;
138
139 /* steal page 0 for this */
140 old = pg0[0];
141 pg0[0] = ((map_addr & PAGE_MASK) | _PAGE_RW | _PAGE_PRESENT);
142 local_flush_tlb();
143 /* now clear everything out but page 0 */
144 map = (ClickMap_t *) (map_addr & (~PAGE_MASK));
145
146 /* zero length is the end of the clickmap */
147 if (map->Entry[region].Length != 0) {
148 *length = map->Entry[region].Length * CLICK_SIZE;
149 *start = map->Entry[region].Address;
150 retval = 1;
151 }
152
153 /* replace the mapping */
154 pg0[0] = old;
155 local_flush_tlb();
156 return retval;
157}
158
159/* voyager specific handling code for timer interrupts. Used to hand
160 * off the timer tick to the SMP code, since the VIC doesn't have an
161 * internal timer (The QIC does, but that's another story). */
162void voyager_timer_interrupt(void)
163{
164 if ((jiffies & 0x3ff) == 0) {
165
166 /* There seems to be something flaky in either
167 * hardware or software that is resetting the timer 0
168 * count to something much higher than it should be
169 * This seems to occur in the boot sequence, just
170 * before root is mounted. Therefore, every 10
171 * seconds or so, we sanity check the timer zero count
172 * and kick it back to where it should be.
173 *
174 * FIXME: This is the most awful hack yet seen. I
175 * should work out exactly what is interfering with
176 * the timer count settings early in the boot sequence
177 * and swiftly introduce it to something sharp and
178 * pointy. */
179 __u16 val;
180
181 spin_lock(&i8253_lock);
182
183 outb_p(0x00, 0x43);
184 val = inb_p(0x40);
185 val |= inb(0x40) << 8;
186 spin_unlock(&i8253_lock);
187
188 if (val > LATCH) {
189 printk
190 ("\nVOYAGER: countdown timer value too high (%d), resetting\n\n",
191 val);
192 spin_lock(&i8253_lock);
193 outb(0x34, 0x43);
194 outb_p(LATCH & 0xff, 0x40); /* LSB */
195 outb(LATCH >> 8, 0x40); /* MSB */
196 spin_unlock(&i8253_lock);
197 }
198 }
199#ifdef CONFIG_SMP
200 smp_vic_timer_interrupt();
201#endif
202}
203
204void voyager_power_off(void)
205{
206 printk("VOYAGER Power Off\n");
207
208 if (voyager_level == 5) {
209 voyager_cat_power_off();
210 } else if (voyager_level == 4) {
211 /* This doesn't apparently work on most L4 machines,
212 * but the specs say to do this to get automatic power
213 * off. Unfortunately, if it doesn't power off the
214 * machine, it ends up doing a cold restart, which
215 * isn't really intended, so comment out the code */
216#if 0
217 int port;
218
219 /* enable the voyager Configuration Space */
220 outb((inb(VOYAGER_MC_SETUP) & 0xf0) | 0x8, VOYAGER_MC_SETUP);
221 /* the port for the power off flag is an offset from the
222 floating base */
223 port = (inb(VOYAGER_SSPB_RELOCATION_PORT) << 8) + 0x21;
224 /* set the power off flag */
225 outb(inb(port) | 0x1, port);
226#endif
227 }
228 /* and wait for it to happen */
229 local_irq_disable();
230 for (;;)
231 halt();
232}
233
234/* copied from process.c */
235static inline void kb_wait(void)
236{
237 int i;
238
239 for (i = 0; i < 0x10000; i++)
240 if ((inb_p(0x64) & 0x02) == 0)
241 break;
242}
243
244void machine_shutdown(void)
245{
246 /* Architecture specific shutdown needed before a kexec */
247}
248
249void machine_restart(char *cmd)
250{
251 printk("Voyager Warm Restart\n");
252 kb_wait();
253
254 if (voyager_level == 5) {
255 /* write magic values to the RTC to inform system that
256 * shutdown is beginning */
257 outb(0x8f, 0x70);
258 outb(0x5, 0x71);
259
260 udelay(50);
261 outb(0xfe, 0x64); /* pull reset low */
262 } else if (voyager_level == 4) {
263 __u16 catbase = inb(VOYAGER_SSPB_RELOCATION_PORT) << 8;
264 __u8 basebd = inb(VOYAGER_MC_SETUP);
265
266 outb(basebd | 0x08, VOYAGER_MC_SETUP);
267 outb(0x02, catbase + 0x21);
268 }
269 local_irq_disable();
270 for (;;)
271 halt();
272}
273
274void machine_emergency_restart(void)
275{
276 /*for now, just hook this to a warm restart */
277 machine_restart(NULL);
278}
279
280void mca_nmi_hook(void)
281{
282 __u8 dumpval __maybe_unused = inb(0xf823);
283 __u8 swnmi __maybe_unused = inb(0xf813);
284
285 /* FIXME: assume dump switch pressed */
286 /* check to see if the dump switch was pressed */
287 VDEBUG(("VOYAGER: dumpval = 0x%x, swnmi = 0x%x\n", dumpval, swnmi));
288 /* clear swnmi */
289 outb(0xff, 0xf813);
290 /* tell SUS to ignore dump */
291 if (voyager_level == 5 && voyager_SUS != NULL) {
292 if (voyager_SUS->SUS_mbox == VOYAGER_DUMP_BUTTON_NMI) {
293 voyager_SUS->kernel_mbox = VOYAGER_NO_COMMAND;
294 voyager_SUS->kernel_flags |= VOYAGER_OS_IN_PROGRESS;
295 udelay(1000);
296 voyager_SUS->kernel_mbox = VOYAGER_IGNORE_DUMP;
297 voyager_SUS->kernel_flags &= ~VOYAGER_OS_IN_PROGRESS;
298 }
299 }
300 printk(KERN_ERR
301 "VOYAGER: Dump switch pressed, printing CPU%d tracebacks\n",
302 smp_processor_id());
303 show_stack(NULL, NULL);
304 show_state();
305}
306
307void machine_halt(void)
308{
309 /* treat a halt like a power off */
310 machine_power_off();
311}
312
313void machine_power_off(void)
314{
315 if (pm_power_off)
316 pm_power_off();
317}
diff --git a/arch/x86/mach-voyager/voyager_cat.c b/arch/x86/mach-voyager/voyager_cat.c
deleted file mode 100644
index 2ad598c104af..000000000000
--- a/arch/x86/mach-voyager/voyager_cat.c
+++ /dev/null
@@ -1,1197 +0,0 @@
1/* -*- mode: c; c-basic-offset: 8 -*- */
2
3/* Copyright (C) 1999,2001
4 *
5 * Author: J.E.J.Bottomley@HansenPartnership.com
6 *
7 * This file contains all the logic for manipulating the CAT bus
8 * in a level 5 machine.
9 *
10 * The CAT bus is a serial configuration and test bus. Its primary
11 * uses are to probe the initial configuration of the system and to
12 * diagnose error conditions when a system interrupt occurs. The low
13 * level interface is fairly primitive, so most of this file consists
14 * of bit shift manipulations to send and receive packets on the
15 * serial bus */
16
17#include <linux/types.h>
18#include <linux/completion.h>
19#include <linux/sched.h>
20#include <asm/voyager.h>
21#include <asm/vic.h>
22#include <linux/ioport.h>
23#include <linux/init.h>
24#include <linux/slab.h>
25#include <linux/delay.h>
26#include <asm/io.h>
27
28#ifdef VOYAGER_CAT_DEBUG
29#define CDEBUG(x) printk x
30#else
31#define CDEBUG(x)
32#endif
33
34/* the CAT command port */
35#define CAT_CMD (sspb + 0xe)
36/* the CAT data port */
37#define CAT_DATA (sspb + 0xd)
38
39/* the internal cat functions */
40static void cat_pack(__u8 * msg, __u16 start_bit, __u8 * data, __u16 num_bits);
41static void cat_unpack(__u8 * msg, __u16 start_bit, __u8 * data,
42 __u16 num_bits);
43static void cat_build_header(__u8 * header, const __u16 len,
44 const __u16 smallest_reg_bits,
45 const __u16 longest_reg_bits);
46static int cat_sendinst(voyager_module_t * modp, voyager_asic_t * asicp,
47 __u8 reg, __u8 op);
48static int cat_getdata(voyager_module_t * modp, voyager_asic_t * asicp,
49 __u8 reg, __u8 * value);
50static int cat_shiftout(__u8 * data, __u16 data_bytes, __u16 header_bytes,
51 __u8 pad_bits);
52static int cat_write(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg,
53 __u8 value);
54static int cat_read(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg,
55 __u8 * value);
56static int cat_subread(voyager_module_t * modp, voyager_asic_t * asicp,
57 __u16 offset, __u16 len, void *buf);
58static int cat_senddata(voyager_module_t * modp, voyager_asic_t * asicp,
59 __u8 reg, __u8 value);
60static int cat_disconnect(voyager_module_t * modp, voyager_asic_t * asicp);
61static int cat_connect(voyager_module_t * modp, voyager_asic_t * asicp);
62
63static inline const char *cat_module_name(int module_id)
64{
65 switch (module_id) {
66 case 0x10:
67 return "Processor Slot 0";
68 case 0x11:
69 return "Processor Slot 1";
70 case 0x12:
71 return "Processor Slot 2";
72 case 0x13:
73 return "Processor Slot 4";
74 case 0x14:
75 return "Memory Slot 0";
76 case 0x15:
77 return "Memory Slot 1";
78 case 0x18:
79 return "Primary Microchannel";
80 case 0x19:
81 return "Secondary Microchannel";
82 case 0x1a:
83 return "Power Supply Interface";
84 case 0x1c:
85 return "Processor Slot 5";
86 case 0x1d:
87 return "Processor Slot 6";
88 case 0x1e:
89 return "Processor Slot 7";
90 case 0x1f:
91 return "Processor Slot 8";
92 default:
93 return "Unknown Module";
94 }
95}
96
97static int sspb = 0; /* stores the super port location */
98int voyager_8slot = 0; /* set to true if a 51xx monster */
99
100voyager_module_t *voyager_cat_list;
101
102/* the I/O port assignments for the VIC and QIC */
103static struct resource vic_res = {
104 .name = "Voyager Interrupt Controller",
105 .start = 0xFC00,
106 .end = 0xFC6F
107};
108static struct resource qic_res = {
109 .name = "Quad Interrupt Controller",
110 .start = 0xFC70,
111 .end = 0xFCFF
112};
113
114/* This function is used to pack a data bit stream inside a message.
115 * It writes num_bits of the data buffer in msg starting at start_bit.
116 * Note: This function assumes that any unused bit in the data stream
117 * is set to zero so that the ors will work correctly */
118static void
119cat_pack(__u8 * msg, const __u16 start_bit, __u8 * data, const __u16 num_bits)
120{
121 /* compute initial shift needed */
122 const __u16 offset = start_bit % BITS_PER_BYTE;
123 __u16 len = num_bits / BITS_PER_BYTE;
124 __u16 byte = start_bit / BITS_PER_BYTE;
125 __u16 residue = (num_bits % BITS_PER_BYTE) + offset;
126 int i;
127
128 /* adjust if we have more than a byte of residue */
129 if (residue >= BITS_PER_BYTE) {
130 residue -= BITS_PER_BYTE;
131 len++;
132 }
133
134 /* clear out the bits. We assume here that if len==0 then
135 * residue >= offset. This is always true for the catbus
136 * operations */
137 msg[byte] &= 0xff << (BITS_PER_BYTE - offset);
138 msg[byte++] |= data[0] >> offset;
139 if (len == 0)
140 return;
141 for (i = 1; i < len; i++)
142 msg[byte++] = (data[i - 1] << (BITS_PER_BYTE - offset))
143 | (data[i] >> offset);
144 if (residue != 0) {
145 __u8 mask = 0xff >> residue;
146 __u8 last_byte = data[i - 1] << (BITS_PER_BYTE - offset)
147 | (data[i] >> offset);
148
149 last_byte &= ~mask;
150 msg[byte] &= mask;
151 msg[byte] |= last_byte;
152 }
153 return;
154}
155
156/* unpack the data again (same arguments as cat_pack()). data buffer
157 * must be zero populated.
158 *
159 * Function: given a message string move to start_bit and copy num_bits into
160 * data (starting at bit 0 in data).
161 */
162static void
163cat_unpack(__u8 * msg, const __u16 start_bit, __u8 * data, const __u16 num_bits)
164{
165 /* compute initial shift needed */
166 const __u16 offset = start_bit % BITS_PER_BYTE;
167 __u16 len = num_bits / BITS_PER_BYTE;
168 const __u8 last_bits = num_bits % BITS_PER_BYTE;
169 __u16 byte = start_bit / BITS_PER_BYTE;
170 int i;
171
172 if (last_bits != 0)
173 len++;
174
175 /* special case: want < 8 bits from msg and we can get it from
176 * a single byte of the msg */
177 if (len == 0 && BITS_PER_BYTE - offset >= num_bits) {
178 data[0] = msg[byte] << offset;
179 data[0] &= 0xff >> (BITS_PER_BYTE - num_bits);
180 return;
181 }
182 for (i = 0; i < len; i++) {
183 /* this annoying if has to be done just in case a read of
184 * msg one beyond the array causes a panic */
185 if (offset != 0) {
186 data[i] = msg[byte++] << offset;
187 data[i] |= msg[byte] >> (BITS_PER_BYTE - offset);
188 } else {
189 data[i] = msg[byte++];
190 }
191 }
192 /* do we need to truncate the final byte */
193 if (last_bits != 0) {
194 data[i - 1] &= 0xff << (BITS_PER_BYTE - last_bits);
195 }
196 return;
197}
198
199static void
200cat_build_header(__u8 * header, const __u16 len, const __u16 smallest_reg_bits,
201 const __u16 longest_reg_bits)
202{
203 int i;
204 __u16 start_bit = (smallest_reg_bits - 1) % BITS_PER_BYTE;
205 __u8 *last_byte = &header[len - 1];
206
207 if (start_bit == 0)
208 start_bit = 1; /* must have at least one bit in the hdr */
209
210 for (i = 0; i < len; i++)
211 header[i] = 0;
212
213 for (i = start_bit; i > 0; i--)
214 *last_byte = ((*last_byte) << 1) + 1;
215
216}
217
218static int
219cat_sendinst(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg, __u8 op)
220{
221 __u8 parity, inst, inst_buf[4] = { 0 };
222 __u8 iseq[VOYAGER_MAX_SCAN_PATH], hseq[VOYAGER_MAX_REG_SIZE];
223 __u16 ibytes, hbytes, padbits;
224 int i;
225
226 /*
227 * Parity is the parity of the register number + 1 (READ_REGISTER
228 * and WRITE_REGISTER always add '1' to the number of bits == 1)
229 */
230 parity = (__u8) (1 + (reg & 0x01) +
231 ((__u8) (reg & 0x02) >> 1) +
232 ((__u8) (reg & 0x04) >> 2) +
233 ((__u8) (reg & 0x08) >> 3)) % 2;
234
235 inst = ((parity << 7) | (reg << 2) | op);
236
237 outb(VOYAGER_CAT_IRCYC, CAT_CMD);
238 if (!modp->scan_path_connected) {
239 if (asicp->asic_id != VOYAGER_CAT_ID) {
240 printk
241 ("**WARNING***: cat_sendinst has disconnected scan path not to CAT asic\n");
242 return 1;
243 }
244 outb(VOYAGER_CAT_HEADER, CAT_DATA);
245 outb(inst, CAT_DATA);
246 if (inb(CAT_DATA) != VOYAGER_CAT_HEADER) {
247 CDEBUG(("VOYAGER CAT: cat_sendinst failed to get CAT_HEADER\n"));
248 return 1;
249 }
250 return 0;
251 }
252 ibytes = modp->inst_bits / BITS_PER_BYTE;
253 if ((padbits = modp->inst_bits % BITS_PER_BYTE) != 0) {
254 padbits = BITS_PER_BYTE - padbits;
255 ibytes++;
256 }
257 hbytes = modp->largest_reg / BITS_PER_BYTE;
258 if (modp->largest_reg % BITS_PER_BYTE)
259 hbytes++;
260 CDEBUG(("cat_sendinst: ibytes=%d, hbytes=%d\n", ibytes, hbytes));
261 /* initialise the instruction sequence to 0xff */
262 for (i = 0; i < ibytes + hbytes; i++)
263 iseq[i] = 0xff;
264 cat_build_header(hseq, hbytes, modp->smallest_reg, modp->largest_reg);
265 cat_pack(iseq, modp->inst_bits, hseq, hbytes * BITS_PER_BYTE);
266 inst_buf[0] = inst;
267 inst_buf[1] = 0xFF >> (modp->largest_reg % BITS_PER_BYTE);
268 cat_pack(iseq, asicp->bit_location, inst_buf, asicp->ireg_length);
269#ifdef VOYAGER_CAT_DEBUG
270 printk("ins = 0x%x, iseq: ", inst);
271 for (i = 0; i < ibytes + hbytes; i++)
272 printk("0x%x ", iseq[i]);
273 printk("\n");
274#endif
275 if (cat_shiftout(iseq, ibytes, hbytes, padbits)) {
276 CDEBUG(("VOYAGER CAT: cat_sendinst: cat_shiftout failed\n"));
277 return 1;
278 }
279 CDEBUG(("CAT SHIFTOUT DONE\n"));
280 return 0;
281}
282
283static int
284cat_getdata(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg,
285 __u8 * value)
286{
287 if (!modp->scan_path_connected) {
288 if (asicp->asic_id != VOYAGER_CAT_ID) {
289 CDEBUG(("VOYAGER CAT: ERROR: cat_getdata to CAT asic with scan path connected\n"));
290 return 1;
291 }
292 if (reg > VOYAGER_SUBADDRHI)
293 outb(VOYAGER_CAT_RUN, CAT_CMD);
294 outb(VOYAGER_CAT_DRCYC, CAT_CMD);
295 outb(VOYAGER_CAT_HEADER, CAT_DATA);
296 *value = inb(CAT_DATA);
297 outb(0xAA, CAT_DATA);
298 if (inb(CAT_DATA) != VOYAGER_CAT_HEADER) {
299 CDEBUG(("cat_getdata: failed to get VOYAGER_CAT_HEADER\n"));
300 return 1;
301 }
302 return 0;
303 } else {
304 __u16 sbits = modp->num_asics - 1 + asicp->ireg_length;
305 __u16 sbytes = sbits / BITS_PER_BYTE;
306 __u16 tbytes;
307 __u8 string[VOYAGER_MAX_SCAN_PATH],
308 trailer[VOYAGER_MAX_REG_SIZE];
309 __u8 padbits;
310 int i;
311
312 outb(VOYAGER_CAT_DRCYC, CAT_CMD);
313
314 if ((padbits = sbits % BITS_PER_BYTE) != 0) {
315 padbits = BITS_PER_BYTE - padbits;
316 sbytes++;
317 }
318 tbytes = asicp->ireg_length / BITS_PER_BYTE;
319 if (asicp->ireg_length % BITS_PER_BYTE)
320 tbytes++;
321 CDEBUG(("cat_getdata: tbytes = %d, sbytes = %d, padbits = %d\n",
322 tbytes, sbytes, padbits));
323 cat_build_header(trailer, tbytes, 1, asicp->ireg_length);
324
325 for (i = tbytes - 1; i >= 0; i--) {
326 outb(trailer[i], CAT_DATA);
327 string[sbytes + i] = inb(CAT_DATA);
328 }
329
330 for (i = sbytes - 1; i >= 0; i--) {
331 outb(0xaa, CAT_DATA);
332 string[i] = inb(CAT_DATA);
333 }
334 *value = 0;
335 cat_unpack(string,
336 padbits + (tbytes * BITS_PER_BYTE) +
337 asicp->asic_location, value, asicp->ireg_length);
338#ifdef VOYAGER_CAT_DEBUG
339 printk("value=0x%x, string: ", *value);
340 for (i = 0; i < tbytes + sbytes; i++)
341 printk("0x%x ", string[i]);
342 printk("\n");
343#endif
344
345 /* sanity check the rest of the return */
346 for (i = 0; i < tbytes; i++) {
347 __u8 input = 0;
348
349 cat_unpack(string, padbits + (i * BITS_PER_BYTE),
350 &input, BITS_PER_BYTE);
351 if (trailer[i] != input) {
352 CDEBUG(("cat_getdata: failed to sanity check rest of ret(%d) 0x%x != 0x%x\n", i, input, trailer[i]));
353 return 1;
354 }
355 }
356 CDEBUG(("cat_getdata DONE\n"));
357 return 0;
358 }
359}
360
361static int
362cat_shiftout(__u8 * data, __u16 data_bytes, __u16 header_bytes, __u8 pad_bits)
363{
364 int i;
365
366 for (i = data_bytes + header_bytes - 1; i >= header_bytes; i--)
367 outb(data[i], CAT_DATA);
368
369 for (i = header_bytes - 1; i >= 0; i--) {
370 __u8 header = 0;
371 __u8 input;
372
373 outb(data[i], CAT_DATA);
374 input = inb(CAT_DATA);
375 CDEBUG(("cat_shiftout: returned 0x%x\n", input));
376 cat_unpack(data, ((data_bytes + i) * BITS_PER_BYTE) - pad_bits,
377 &header, BITS_PER_BYTE);
378 if (input != header) {
379 CDEBUG(("VOYAGER CAT: cat_shiftout failed to return header 0x%x != 0x%x\n", input, header));
380 return 1;
381 }
382 }
383 return 0;
384}
385
386static int
387cat_senddata(voyager_module_t * modp, voyager_asic_t * asicp,
388 __u8 reg, __u8 value)
389{
390 outb(VOYAGER_CAT_DRCYC, CAT_CMD);
391 if (!modp->scan_path_connected) {
392 if (asicp->asic_id != VOYAGER_CAT_ID) {
393 CDEBUG(("VOYAGER CAT: ERROR: scan path disconnected when asic != CAT\n"));
394 return 1;
395 }
396 outb(VOYAGER_CAT_HEADER, CAT_DATA);
397 outb(value, CAT_DATA);
398 if (inb(CAT_DATA) != VOYAGER_CAT_HEADER) {
399 CDEBUG(("cat_senddata: failed to get correct header response to sent data\n"));
400 return 1;
401 }
402 if (reg > VOYAGER_SUBADDRHI) {
403 outb(VOYAGER_CAT_RUN, CAT_CMD);
404 outb(VOYAGER_CAT_END, CAT_CMD);
405 outb(VOYAGER_CAT_RUN, CAT_CMD);
406 }
407
408 return 0;
409 } else {
410 __u16 hbytes = asicp->ireg_length / BITS_PER_BYTE;
411 __u16 dbytes =
412 (modp->num_asics - 1 + asicp->ireg_length) / BITS_PER_BYTE;
413 __u8 padbits, dseq[VOYAGER_MAX_SCAN_PATH],
414 hseq[VOYAGER_MAX_REG_SIZE];
415 int i;
416
417 if ((padbits = (modp->num_asics - 1
418 + asicp->ireg_length) % BITS_PER_BYTE) != 0) {
419 padbits = BITS_PER_BYTE - padbits;
420 dbytes++;
421 }
422 if (asicp->ireg_length % BITS_PER_BYTE)
423 hbytes++;
424
425 cat_build_header(hseq, hbytes, 1, asicp->ireg_length);
426
427 for (i = 0; i < dbytes + hbytes; i++)
428 dseq[i] = 0xff;
429 CDEBUG(("cat_senddata: dbytes=%d, hbytes=%d, padbits=%d\n",
430 dbytes, hbytes, padbits));
431 cat_pack(dseq, modp->num_asics - 1 + asicp->ireg_length,
432 hseq, hbytes * BITS_PER_BYTE);
433 cat_pack(dseq, asicp->asic_location, &value,
434 asicp->ireg_length);
435#ifdef VOYAGER_CAT_DEBUG
436 printk("dseq ");
437 for (i = 0; i < hbytes + dbytes; i++) {
438 printk("0x%x ", dseq[i]);
439 }
440 printk("\n");
441#endif
442 return cat_shiftout(dseq, dbytes, hbytes, padbits);
443 }
444}
445
446static int
447cat_write(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg, __u8 value)
448{
449 if (cat_sendinst(modp, asicp, reg, VOYAGER_WRITE_CONFIG))
450 return 1;
451 return cat_senddata(modp, asicp, reg, value);
452}
453
454static int
455cat_read(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg,
456 __u8 * value)
457{
458 if (cat_sendinst(modp, asicp, reg, VOYAGER_READ_CONFIG))
459 return 1;
460 return cat_getdata(modp, asicp, reg, value);
461}
462
463static int
464cat_subaddrsetup(voyager_module_t * modp, voyager_asic_t * asicp, __u16 offset,
465 __u16 len)
466{
467 __u8 val;
468
469 if (len > 1) {
470 /* set auto increment */
471 __u8 newval;
472
473 if (cat_read(modp, asicp, VOYAGER_AUTO_INC_REG, &val)) {
474 CDEBUG(("cat_subaddrsetup: read of VOYAGER_AUTO_INC_REG failed\n"));
475 return 1;
476 }
477 CDEBUG(("cat_subaddrsetup: VOYAGER_AUTO_INC_REG = 0x%x\n",
478 val));
479 newval = val | VOYAGER_AUTO_INC;
480 if (newval != val) {
481 if (cat_write(modp, asicp, VOYAGER_AUTO_INC_REG, val)) {
482 CDEBUG(("cat_subaddrsetup: write to VOYAGER_AUTO_INC_REG failed\n"));
483 return 1;
484 }
485 }
486 }
487 if (cat_write(modp, asicp, VOYAGER_SUBADDRLO, (__u8) (offset & 0xff))) {
488 CDEBUG(("cat_subaddrsetup: write to SUBADDRLO failed\n"));
489 return 1;
490 }
491 if (asicp->subaddr > VOYAGER_SUBADDR_LO) {
492 if (cat_write
493 (modp, asicp, VOYAGER_SUBADDRHI, (__u8) (offset >> 8))) {
494 CDEBUG(("cat_subaddrsetup: write to SUBADDRHI failed\n"));
495 return 1;
496 }
497 cat_read(modp, asicp, VOYAGER_SUBADDRHI, &val);
498 CDEBUG(("cat_subaddrsetup: offset = %d, hi = %d\n", offset,
499 val));
500 }
501 cat_read(modp, asicp, VOYAGER_SUBADDRLO, &val);
502 CDEBUG(("cat_subaddrsetup: offset = %d, lo = %d\n", offset, val));
503 return 0;
504}
505
506static int
507cat_subwrite(voyager_module_t * modp, voyager_asic_t * asicp, __u16 offset,
508 __u16 len, void *buf)
509{
510 int i, retval;
511
512 /* FIXME: need special actions for VOYAGER_CAT_ID here */
513 if (asicp->asic_id == VOYAGER_CAT_ID) {
514 CDEBUG(("cat_subwrite: ATTEMPT TO WRITE TO CAT ASIC\n"));
515 /* FIXME -- This is supposed to be handled better
516 * There is a problem writing to the cat asic in the
517 * PSI. The 30us delay seems to work, though */
518 udelay(30);
519 }
520
521 if ((retval = cat_subaddrsetup(modp, asicp, offset, len)) != 0) {
522 printk("cat_subwrite: cat_subaddrsetup FAILED\n");
523 return retval;
524 }
525
526 if (cat_sendinst
527 (modp, asicp, VOYAGER_SUBADDRDATA, VOYAGER_WRITE_CONFIG)) {
528 printk("cat_subwrite: cat_sendinst FAILED\n");
529 return 1;
530 }
531 for (i = 0; i < len; i++) {
532 if (cat_senddata(modp, asicp, 0xFF, ((__u8 *) buf)[i])) {
533 printk
534 ("cat_subwrite: cat_sendata element at %d FAILED\n",
535 i);
536 return 1;
537 }
538 }
539 return 0;
540}
541static int
542cat_subread(voyager_module_t * modp, voyager_asic_t * asicp, __u16 offset,
543 __u16 len, void *buf)
544{
545 int i, retval;
546
547 if ((retval = cat_subaddrsetup(modp, asicp, offset, len)) != 0) {
548 CDEBUG(("cat_subread: cat_subaddrsetup FAILED\n"));
549 return retval;
550 }
551
552 if (cat_sendinst(modp, asicp, VOYAGER_SUBADDRDATA, VOYAGER_READ_CONFIG)) {
553 CDEBUG(("cat_subread: cat_sendinst failed\n"));
554 return 1;
555 }
556 for (i = 0; i < len; i++) {
557 if (cat_getdata(modp, asicp, 0xFF, &((__u8 *) buf)[i])) {
558 CDEBUG(("cat_subread: cat_getdata element %d failed\n",
559 i));
560 return 1;
561 }
562 }
563 return 0;
564}
565
566/* buffer for storing EPROM data read in during initialisation */
567static __initdata __u8 eprom_buf[0xFFFF];
568static voyager_module_t *voyager_initial_module;
569
570/* Initialise the cat bus components. We assume this is called by the
571 * boot cpu *after* all memory initialisation has been done (so we can
572 * use kmalloc) but before smp initialisation, so we can probe the SMP
573 * configuration and pick up necessary information. */
574void __init voyager_cat_init(void)
575{
576 voyager_module_t **modpp = &voyager_initial_module;
577 voyager_asic_t **asicpp;
578 voyager_asic_t *qabc_asic = NULL;
579 int i, j;
580 unsigned long qic_addr = 0;
581 __u8 qabc_data[0x20];
582 __u8 num_submodules, val;
583 voyager_eprom_hdr_t *eprom_hdr = (voyager_eprom_hdr_t *) & eprom_buf[0];
584
585 __u8 cmos[4];
586 unsigned long addr;
587
588 /* initiallise the SUS mailbox */
589 for (i = 0; i < sizeof(cmos); i++)
590 cmos[i] = voyager_extended_cmos_read(VOYAGER_DUMP_LOCATION + i);
591 addr = *(unsigned long *)cmos;
592 if ((addr & 0xff000000) != 0xff000000) {
593 printk(KERN_ERR
594 "Voyager failed to get SUS mailbox (addr = 0x%lx\n",
595 addr);
596 } else {
597 static struct resource res;
598
599 res.name = "voyager SUS";
600 res.start = addr;
601 res.end = addr + 0x3ff;
602
603 request_resource(&iomem_resource, &res);
604 voyager_SUS = (struct voyager_SUS *)
605 ioremap(addr, 0x400);
606 printk(KERN_NOTICE "Voyager SUS mailbox version 0x%x\n",
607 voyager_SUS->SUS_version);
608 voyager_SUS->kernel_version = VOYAGER_MAILBOX_VERSION;
609 voyager_SUS->kernel_flags = VOYAGER_OS_HAS_SYSINT;
610 }
611
612 /* clear the processor counts */
613 voyager_extended_vic_processors = 0;
614 voyager_quad_processors = 0;
615
616 printk("VOYAGER: beginning CAT bus probe\n");
617 /* set up the SuperSet Port Block which tells us where the
618 * CAT communication port is */
619 sspb = inb(VOYAGER_SSPB_RELOCATION_PORT) * 0x100;
620 VDEBUG(("VOYAGER DEBUG: sspb = 0x%x\n", sspb));
621
622 /* now find out if were 8 slot or normal */
623 if ((inb(VIC_PROC_WHO_AM_I) & EIGHT_SLOT_IDENTIFIER)
624 == EIGHT_SLOT_IDENTIFIER) {
625 voyager_8slot = 1;
626 printk(KERN_NOTICE
627 "Voyager: Eight slot 51xx configuration detected\n");
628 }
629
630 for (i = VOYAGER_MIN_MODULE; i <= VOYAGER_MAX_MODULE; i++) {
631 __u8 input;
632 int asic;
633 __u16 eprom_size;
634 __u16 sp_offset;
635
636 outb(VOYAGER_CAT_DESELECT, VOYAGER_CAT_CONFIG_PORT);
637 outb(i, VOYAGER_CAT_CONFIG_PORT);
638
639 /* check the presence of the module */
640 outb(VOYAGER_CAT_RUN, CAT_CMD);
641 outb(VOYAGER_CAT_IRCYC, CAT_CMD);
642 outb(VOYAGER_CAT_HEADER, CAT_DATA);
643 /* stream series of alternating 1's and 0's to stimulate
644 * response */
645 outb(0xAA, CAT_DATA);
646 input = inb(CAT_DATA);
647 outb(VOYAGER_CAT_END, CAT_CMD);
648 if (input != VOYAGER_CAT_HEADER) {
649 continue;
650 }
651 CDEBUG(("VOYAGER DEBUG: found module id 0x%x, %s\n", i,
652 cat_module_name(i)));
653 *modpp = kmalloc(sizeof(voyager_module_t), GFP_KERNEL); /*&voyager_module_storage[cat_count++]; */
654 if (*modpp == NULL) {
655 printk("**WARNING** kmalloc failure in cat_init\n");
656 continue;
657 }
658 memset(*modpp, 0, sizeof(voyager_module_t));
659 /* need temporary asic for cat_subread. It will be
660 * filled in correctly later */
661 (*modpp)->asic = kmalloc(sizeof(voyager_asic_t), GFP_KERNEL); /*&voyager_asic_storage[asic_count]; */
662 if ((*modpp)->asic == NULL) {
663 printk("**WARNING** kmalloc failure in cat_init\n");
664 continue;
665 }
666 memset((*modpp)->asic, 0, sizeof(voyager_asic_t));
667 (*modpp)->asic->asic_id = VOYAGER_CAT_ID;
668 (*modpp)->asic->subaddr = VOYAGER_SUBADDR_HI;
669 (*modpp)->module_addr = i;
670 (*modpp)->scan_path_connected = 0;
671 if (i == VOYAGER_PSI) {
672 /* Exception leg for modules with no EEPROM */
673 printk("Module \"%s\"\n", cat_module_name(i));
674 continue;
675 }
676
677 CDEBUG(("cat_init: Reading eeprom for module 0x%x at offset %d\n", i, VOYAGER_XSUM_END_OFFSET));
678 outb(VOYAGER_CAT_RUN, CAT_CMD);
679 cat_disconnect(*modpp, (*modpp)->asic);
680 if (cat_subread(*modpp, (*modpp)->asic,
681 VOYAGER_XSUM_END_OFFSET, sizeof(eprom_size),
682 &eprom_size)) {
683 printk
684 ("**WARNING**: Voyager couldn't read EPROM size for module 0x%x\n",
685 i);
686 outb(VOYAGER_CAT_END, CAT_CMD);
687 continue;
688 }
689 if (eprom_size > sizeof(eprom_buf)) {
690 printk
691 ("**WARNING**: Voyager insufficient size to read EPROM data, module 0x%x. Need %d\n",
692 i, eprom_size);
693 outb(VOYAGER_CAT_END, CAT_CMD);
694 continue;
695 }
696 outb(VOYAGER_CAT_END, CAT_CMD);
697 outb(VOYAGER_CAT_RUN, CAT_CMD);
698 CDEBUG(("cat_init: module 0x%x, eeprom_size %d\n", i,
699 eprom_size));
700 if (cat_subread
701 (*modpp, (*modpp)->asic, 0, eprom_size, eprom_buf)) {
702 outb(VOYAGER_CAT_END, CAT_CMD);
703 continue;
704 }
705 outb(VOYAGER_CAT_END, CAT_CMD);
706 printk("Module \"%s\", version 0x%x, tracer 0x%x, asics %d\n",
707 cat_module_name(i), eprom_hdr->version_id,
708 *((__u32 *) eprom_hdr->tracer), eprom_hdr->num_asics);
709 (*modpp)->ee_size = eprom_hdr->ee_size;
710 (*modpp)->num_asics = eprom_hdr->num_asics;
711 asicpp = &((*modpp)->asic);
712 sp_offset = eprom_hdr->scan_path_offset;
713 /* All we really care about are the Quad cards. We
714 * identify them because they are in a processor slot
715 * and have only four asics */
716 if ((i < 0x10 || (i >= 0x14 && i < 0x1c) || i > 0x1f)) {
717 modpp = &((*modpp)->next);
718 continue;
719 }
720 /* Now we know it's in a processor slot, does it have
721 * a quad baseboard submodule */
722 outb(VOYAGER_CAT_RUN, CAT_CMD);
723 cat_read(*modpp, (*modpp)->asic, VOYAGER_SUBMODPRESENT,
724 &num_submodules);
725 /* lowest two bits, active low */
726 num_submodules = ~(0xfc | num_submodules);
727 CDEBUG(("VOYAGER CAT: %d submodules present\n",
728 num_submodules));
729 if (num_submodules == 0) {
730 /* fill in the dyadic extended processors */
731 __u8 cpu = i & 0x07;
732
733 printk("Module \"%s\": Dyadic Processor Card\n",
734 cat_module_name(i));
735 voyager_extended_vic_processors |= (1 << cpu);
736 cpu += 4;
737 voyager_extended_vic_processors |= (1 << cpu);
738 outb(VOYAGER_CAT_END, CAT_CMD);
739 continue;
740 }
741
742 /* now we want to read the asics on the first submodule,
743 * which should be the quad base board */
744
745 cat_read(*modpp, (*modpp)->asic, VOYAGER_SUBMODSELECT, &val);
746 CDEBUG(("cat_init: SUBMODSELECT value = 0x%x\n", val));
747 val = (val & 0x7c) | VOYAGER_QUAD_BASEBOARD;
748 cat_write(*modpp, (*modpp)->asic, VOYAGER_SUBMODSELECT, val);
749
750 outb(VOYAGER_CAT_END, CAT_CMD);
751
752 CDEBUG(("cat_init: Reading eeprom for module 0x%x at offset %d\n", i, VOYAGER_XSUM_END_OFFSET));
753 outb(VOYAGER_CAT_RUN, CAT_CMD);
754 cat_disconnect(*modpp, (*modpp)->asic);
755 if (cat_subread(*modpp, (*modpp)->asic,
756 VOYAGER_XSUM_END_OFFSET, sizeof(eprom_size),
757 &eprom_size)) {
758 printk
759 ("**WARNING**: Voyager couldn't read EPROM size for module 0x%x\n",
760 i);
761 outb(VOYAGER_CAT_END, CAT_CMD);
762 continue;
763 }
764 if (eprom_size > sizeof(eprom_buf)) {
765 printk
766 ("**WARNING**: Voyager insufficient size to read EPROM data, module 0x%x. Need %d\n",
767 i, eprom_size);
768 outb(VOYAGER_CAT_END, CAT_CMD);
769 continue;
770 }
771 outb(VOYAGER_CAT_END, CAT_CMD);
772 outb(VOYAGER_CAT_RUN, CAT_CMD);
773 CDEBUG(("cat_init: module 0x%x, eeprom_size %d\n", i,
774 eprom_size));
775 if (cat_subread
776 (*modpp, (*modpp)->asic, 0, eprom_size, eprom_buf)) {
777 outb(VOYAGER_CAT_END, CAT_CMD);
778 continue;
779 }
780 outb(VOYAGER_CAT_END, CAT_CMD);
781 /* Now do everything for the QBB submodule 1 */
782 (*modpp)->ee_size = eprom_hdr->ee_size;
783 (*modpp)->num_asics = eprom_hdr->num_asics;
784 asicpp = &((*modpp)->asic);
785 sp_offset = eprom_hdr->scan_path_offset;
786 /* get rid of the dummy CAT asic and read the real one */
787 kfree((*modpp)->asic);
788 for (asic = 0; asic < (*modpp)->num_asics; asic++) {
789 int j;
790 voyager_asic_t *asicp = *asicpp = kzalloc(sizeof(voyager_asic_t), GFP_KERNEL); /*&voyager_asic_storage[asic_count++]; */
791 voyager_sp_table_t *sp_table;
792 voyager_at_t *asic_table;
793 voyager_jtt_t *jtag_table;
794
795 if (asicp == NULL) {
796 printk
797 ("**WARNING** kmalloc failure in cat_init\n");
798 continue;
799 }
800 asicpp = &(asicp->next);
801 asicp->asic_location = asic;
802 sp_table =
803 (voyager_sp_table_t *) (eprom_buf + sp_offset);
804 asicp->asic_id = sp_table->asic_id;
805 asic_table =
806 (voyager_at_t *) (eprom_buf +
807 sp_table->asic_data_offset);
808 for (j = 0; j < 4; j++)
809 asicp->jtag_id[j] = asic_table->jtag_id[j];
810 jtag_table =
811 (voyager_jtt_t *) (eprom_buf +
812 asic_table->jtag_offset);
813 asicp->ireg_length = jtag_table->ireg_len;
814 asicp->bit_location = (*modpp)->inst_bits;
815 (*modpp)->inst_bits += asicp->ireg_length;
816 if (asicp->ireg_length > (*modpp)->largest_reg)
817 (*modpp)->largest_reg = asicp->ireg_length;
818 if (asicp->ireg_length < (*modpp)->smallest_reg ||
819 (*modpp)->smallest_reg == 0)
820 (*modpp)->smallest_reg = asicp->ireg_length;
821 CDEBUG(("asic 0x%x, ireg_length=%d, bit_location=%d\n",
822 asicp->asic_id, asicp->ireg_length,
823 asicp->bit_location));
824 if (asicp->asic_id == VOYAGER_QUAD_QABC) {
825 CDEBUG(("VOYAGER CAT: QABC ASIC found\n"));
826 qabc_asic = asicp;
827 }
828 sp_offset += sizeof(voyager_sp_table_t);
829 }
830 CDEBUG(("Module inst_bits = %d, largest_reg = %d, smallest_reg=%d\n", (*modpp)->inst_bits, (*modpp)->largest_reg, (*modpp)->smallest_reg));
831 /* OK, now we have the QUAD ASICs set up, use them.
832 * we need to:
833 *
834 * 1. Find the Memory area for the Quad CPIs.
835 * 2. Find the Extended VIC processor
836 * 3. Configure a second extended VIC processor (This
837 * cannot be done for the 51xx.
838 * */
839 outb(VOYAGER_CAT_RUN, CAT_CMD);
840 cat_connect(*modpp, (*modpp)->asic);
841 CDEBUG(("CAT CONNECTED!!\n"));
842 cat_subread(*modpp, qabc_asic, 0, sizeof(qabc_data), qabc_data);
843 qic_addr = qabc_data[5] << 8;
844 qic_addr = (qic_addr | qabc_data[6]) << 8;
845 qic_addr = (qic_addr | qabc_data[7]) << 8;
846 printk
847 ("Module \"%s\": Quad Processor Card; CPI 0x%lx, SET=0x%x\n",
848 cat_module_name(i), qic_addr, qabc_data[8]);
849#if 0 /* plumbing fails---FIXME */
850 if ((qabc_data[8] & 0xf0) == 0) {
851 /* FIXME: 32 way 8 CPU slot monster cannot be
852 * plumbed this way---need to check for it */
853
854 printk("Plumbing second Extended Quad Processor\n");
855 /* second VIC line hardwired to Quad CPU 1 */
856 qabc_data[8] |= 0x20;
857 cat_subwrite(*modpp, qabc_asic, 8, 1, &qabc_data[8]);
858#ifdef VOYAGER_CAT_DEBUG
859 /* verify plumbing */
860 cat_subread(*modpp, qabc_asic, 8, 1, &qabc_data[8]);
861 if ((qabc_data[8] & 0xf0) == 0) {
862 CDEBUG(("PLUMBING FAILED: 0x%x\n",
863 qabc_data[8]));
864 }
865#endif
866 }
867#endif
868
869 {
870 struct resource *res =
871 kzalloc(sizeof(struct resource), GFP_KERNEL);
872 res->name = kmalloc(128, GFP_KERNEL);
873 sprintf((char *)res->name, "Voyager %s Quad CPI",
874 cat_module_name(i));
875 res->start = qic_addr;
876 res->end = qic_addr + 0x3ff;
877 request_resource(&iomem_resource, res);
878 }
879
880 qic_addr = (unsigned long)ioremap_cache(qic_addr, 0x400);
881
882 for (j = 0; j < 4; j++) {
883 __u8 cpu;
884
885 if (voyager_8slot) {
886 /* 8 slot has a different mapping,
887 * each slot has only one vic line, so
888 * 1 cpu in each slot must be < 8 */
889 cpu = (i & 0x07) + j * 8;
890 } else {
891 cpu = (i & 0x03) + j * 4;
892 }
893 if ((qabc_data[8] & (1 << j))) {
894 voyager_extended_vic_processors |= (1 << cpu);
895 }
896 if (qabc_data[8] & (1 << (j + 4))) {
897 /* Second SET register plumbed: Quad
898 * card has two VIC connected CPUs.
899 * Secondary cannot be booted as a VIC
900 * CPU */
901 voyager_extended_vic_processors |= (1 << cpu);
902 voyager_allowed_boot_processors &=
903 (~(1 << cpu));
904 }
905
906 voyager_quad_processors |= (1 << cpu);
907 voyager_quad_cpi_addr[cpu] = (struct voyager_qic_cpi *)
908 (qic_addr + (j << 8));
909 CDEBUG(("CPU%d: CPI address 0x%lx\n", cpu,
910 (unsigned long)voyager_quad_cpi_addr[cpu]));
911 }
912 outb(VOYAGER_CAT_END, CAT_CMD);
913
914 *asicpp = NULL;
915 modpp = &((*modpp)->next);
916 }
917 *modpp = NULL;
918 printk
919 ("CAT Bus Initialisation finished: extended procs 0x%x, quad procs 0x%x, allowed vic boot = 0x%x\n",
920 voyager_extended_vic_processors, voyager_quad_processors,
921 voyager_allowed_boot_processors);
922 request_resource(&ioport_resource, &vic_res);
923 if (voyager_quad_processors)
924 request_resource(&ioport_resource, &qic_res);
925 /* set up the front power switch */
926}
927
928int voyager_cat_readb(__u8 module, __u8 asic, int reg)
929{
930 return 0;
931}
932
933static int cat_disconnect(voyager_module_t * modp, voyager_asic_t * asicp)
934{
935 __u8 val;
936 int err = 0;
937
938 if (!modp->scan_path_connected)
939 return 0;
940 if (asicp->asic_id != VOYAGER_CAT_ID) {
941 CDEBUG(("cat_disconnect: ASIC is not CAT\n"));
942 return 1;
943 }
944 err = cat_read(modp, asicp, VOYAGER_SCANPATH, &val);
945 if (err) {
946 CDEBUG(("cat_disconnect: failed to read SCANPATH\n"));
947 return err;
948 }
949 val &= VOYAGER_DISCONNECT_ASIC;
950 err = cat_write(modp, asicp, VOYAGER_SCANPATH, val);
951 if (err) {
952 CDEBUG(("cat_disconnect: failed to write SCANPATH\n"));
953 return err;
954 }
955 outb(VOYAGER_CAT_END, CAT_CMD);
956 outb(VOYAGER_CAT_RUN, CAT_CMD);
957 modp->scan_path_connected = 0;
958
959 return 0;
960}
961
962static int cat_connect(voyager_module_t * modp, voyager_asic_t * asicp)
963{
964 __u8 val;
965 int err = 0;
966
967 if (modp->scan_path_connected)
968 return 0;
969 if (asicp->asic_id != VOYAGER_CAT_ID) {
970 CDEBUG(("cat_connect: ASIC is not CAT\n"));
971 return 1;
972 }
973
974 err = cat_read(modp, asicp, VOYAGER_SCANPATH, &val);
975 if (err) {
976 CDEBUG(("cat_connect: failed to read SCANPATH\n"));
977 return err;
978 }
979 val |= VOYAGER_CONNECT_ASIC;
980 err = cat_write(modp, asicp, VOYAGER_SCANPATH, val);
981 if (err) {
982 CDEBUG(("cat_connect: failed to write SCANPATH\n"));
983 return err;
984 }
985 outb(VOYAGER_CAT_END, CAT_CMD);
986 outb(VOYAGER_CAT_RUN, CAT_CMD);
987 modp->scan_path_connected = 1;
988
989 return 0;
990}
991
992void voyager_cat_power_off(void)
993{
994 /* Power the machine off by writing to the PSI over the CAT
995 * bus */
996 __u8 data;
997 voyager_module_t psi = { 0 };
998 voyager_asic_t psi_asic = { 0 };
999
1000 psi.asic = &psi_asic;
1001 psi.asic->asic_id = VOYAGER_CAT_ID;
1002 psi.asic->subaddr = VOYAGER_SUBADDR_HI;
1003 psi.module_addr = VOYAGER_PSI;
1004 psi.scan_path_connected = 0;
1005
1006 outb(VOYAGER_CAT_END, CAT_CMD);
1007 /* Connect the PSI to the CAT Bus */
1008 outb(VOYAGER_CAT_DESELECT, VOYAGER_CAT_CONFIG_PORT);
1009 outb(VOYAGER_PSI, VOYAGER_CAT_CONFIG_PORT);
1010 outb(VOYAGER_CAT_RUN, CAT_CMD);
1011 cat_disconnect(&psi, &psi_asic);
1012 /* Read the status */
1013 cat_subread(&psi, &psi_asic, VOYAGER_PSI_GENERAL_REG, 1, &data);
1014 outb(VOYAGER_CAT_END, CAT_CMD);
1015 CDEBUG(("PSI STATUS 0x%x\n", data));
1016 /* These two writes are power off prep and perform */
1017 data = PSI_CLEAR;
1018 outb(VOYAGER_CAT_RUN, CAT_CMD);
1019 cat_subwrite(&psi, &psi_asic, VOYAGER_PSI_GENERAL_REG, 1, &data);
1020 outb(VOYAGER_CAT_END, CAT_CMD);
1021 data = PSI_POWER_DOWN;
1022 outb(VOYAGER_CAT_RUN, CAT_CMD);
1023 cat_subwrite(&psi, &psi_asic, VOYAGER_PSI_GENERAL_REG, 1, &data);
1024 outb(VOYAGER_CAT_END, CAT_CMD);
1025}
1026
1027struct voyager_status voyager_status = { 0 };
1028
1029void voyager_cat_psi(__u8 cmd, __u16 reg, __u8 * data)
1030{
1031 voyager_module_t psi = { 0 };
1032 voyager_asic_t psi_asic = { 0 };
1033
1034 psi.asic = &psi_asic;
1035 psi.asic->asic_id = VOYAGER_CAT_ID;
1036 psi.asic->subaddr = VOYAGER_SUBADDR_HI;
1037 psi.module_addr = VOYAGER_PSI;
1038 psi.scan_path_connected = 0;
1039
1040 outb(VOYAGER_CAT_END, CAT_CMD);
1041 /* Connect the PSI to the CAT Bus */
1042 outb(VOYAGER_CAT_DESELECT, VOYAGER_CAT_CONFIG_PORT);
1043 outb(VOYAGER_PSI, VOYAGER_CAT_CONFIG_PORT);
1044 outb(VOYAGER_CAT_RUN, CAT_CMD);
1045 cat_disconnect(&psi, &psi_asic);
1046 switch (cmd) {
1047 case VOYAGER_PSI_READ:
1048 cat_read(&psi, &psi_asic, reg, data);
1049 break;
1050 case VOYAGER_PSI_WRITE:
1051 cat_write(&psi, &psi_asic, reg, *data);
1052 break;
1053 case VOYAGER_PSI_SUBREAD:
1054 cat_subread(&psi, &psi_asic, reg, 1, data);
1055 break;
1056 case VOYAGER_PSI_SUBWRITE:
1057 cat_subwrite(&psi, &psi_asic, reg, 1, data);
1058 break;
1059 default:
1060 printk(KERN_ERR "Voyager PSI, unrecognised command %d\n", cmd);
1061 break;
1062 }
1063 outb(VOYAGER_CAT_END, CAT_CMD);
1064}
1065
1066void voyager_cat_do_common_interrupt(void)
1067{
1068 /* This is caused either by a memory parity error or something
1069 * in the PSI */
1070 __u8 data;
1071 voyager_module_t psi = { 0 };
1072 voyager_asic_t psi_asic = { 0 };
1073 struct voyager_psi psi_reg;
1074 int i;
1075 re_read:
1076 psi.asic = &psi_asic;
1077 psi.asic->asic_id = VOYAGER_CAT_ID;
1078 psi.asic->subaddr = VOYAGER_SUBADDR_HI;
1079 psi.module_addr = VOYAGER_PSI;
1080 psi.scan_path_connected = 0;
1081
1082 outb(VOYAGER_CAT_END, CAT_CMD);
1083 /* Connect the PSI to the CAT Bus */
1084 outb(VOYAGER_CAT_DESELECT, VOYAGER_CAT_CONFIG_PORT);
1085 outb(VOYAGER_PSI, VOYAGER_CAT_CONFIG_PORT);
1086 outb(VOYAGER_CAT_RUN, CAT_CMD);
1087 cat_disconnect(&psi, &psi_asic);
1088 /* Read the status. NOTE: Need to read *all* the PSI regs here
1089 * otherwise the cmn int will be reasserted */
1090 for (i = 0; i < sizeof(psi_reg.regs); i++) {
1091 cat_read(&psi, &psi_asic, i, &((__u8 *) & psi_reg.regs)[i]);
1092 }
1093 outb(VOYAGER_CAT_END, CAT_CMD);
1094 if ((psi_reg.regs.checkbit & 0x02) == 0) {
1095 psi_reg.regs.checkbit |= 0x02;
1096 cat_write(&psi, &psi_asic, 5, psi_reg.regs.checkbit);
1097 printk("VOYAGER RE-READ PSI\n");
1098 goto re_read;
1099 }
1100 outb(VOYAGER_CAT_RUN, CAT_CMD);
1101 for (i = 0; i < sizeof(psi_reg.subregs); i++) {
1102 /* This looks strange, but the PSI doesn't do auto increment
1103 * correctly */
1104 cat_subread(&psi, &psi_asic, VOYAGER_PSI_SUPPLY_REG + i,
1105 1, &((__u8 *) & psi_reg.subregs)[i]);
1106 }
1107 outb(VOYAGER_CAT_END, CAT_CMD);
1108#ifdef VOYAGER_CAT_DEBUG
1109 printk("VOYAGER PSI: ");
1110 for (i = 0; i < sizeof(psi_reg.regs); i++)
1111 printk("%02x ", ((__u8 *) & psi_reg.regs)[i]);
1112 printk("\n ");
1113 for (i = 0; i < sizeof(psi_reg.subregs); i++)
1114 printk("%02x ", ((__u8 *) & psi_reg.subregs)[i]);
1115 printk("\n");
1116#endif
1117 if (psi_reg.regs.intstatus & PSI_MON) {
1118 /* switch off or power fail */
1119
1120 if (psi_reg.subregs.supply & PSI_SWITCH_OFF) {
1121 if (voyager_status.switch_off) {
1122 printk(KERN_ERR
1123 "Voyager front panel switch turned off again---Immediate power off!\n");
1124 voyager_cat_power_off();
1125 /* not reached */
1126 } else {
1127 printk(KERN_ERR
1128 "Voyager front panel switch turned off\n");
1129 voyager_status.switch_off = 1;
1130 voyager_status.request_from_kernel = 1;
1131 wake_up_process(voyager_thread);
1132 }
1133 /* Tell the hardware we're taking care of the
1134 * shutdown, otherwise it will power the box off
1135 * within 3 seconds of the switch being pressed and,
1136 * which is much more important to us, continue to
1137 * assert the common interrupt */
1138 data = PSI_CLR_SWITCH_OFF;
1139 outb(VOYAGER_CAT_RUN, CAT_CMD);
1140 cat_subwrite(&psi, &psi_asic, VOYAGER_PSI_SUPPLY_REG,
1141 1, &data);
1142 outb(VOYAGER_CAT_END, CAT_CMD);
1143 } else {
1144
1145 VDEBUG(("Voyager ac fail reg 0x%x\n",
1146 psi_reg.subregs.ACfail));
1147 if ((psi_reg.subregs.ACfail & AC_FAIL_STAT_CHANGE) == 0) {
1148 /* No further update */
1149 return;
1150 }
1151#if 0
1152 /* Don't bother trying to find out who failed.
1153 * FIXME: This probably makes the code incorrect on
1154 * anything other than a 345x */
1155 for (i = 0; i < 5; i++) {
1156 if (psi_reg.subregs.ACfail & (1 << i)) {
1157 break;
1158 }
1159 }
1160 printk(KERN_NOTICE "AC FAIL IN SUPPLY %d\n", i);
1161#endif
1162 /* DON'T do this: it shuts down the AC PSI
1163 outb(VOYAGER_CAT_RUN, CAT_CMD);
1164 data = PSI_MASK_MASK | i;
1165 cat_subwrite(&psi, &psi_asic, VOYAGER_PSI_MASK,
1166 1, &data);
1167 outb(VOYAGER_CAT_END, CAT_CMD);
1168 */
1169 printk(KERN_ERR "Voyager AC power failure\n");
1170 outb(VOYAGER_CAT_RUN, CAT_CMD);
1171 data = PSI_COLD_START;
1172 cat_subwrite(&psi, &psi_asic, VOYAGER_PSI_GENERAL_REG,
1173 1, &data);
1174 outb(VOYAGER_CAT_END, CAT_CMD);
1175 voyager_status.power_fail = 1;
1176 voyager_status.request_from_kernel = 1;
1177 wake_up_process(voyager_thread);
1178 }
1179
1180 } else if (psi_reg.regs.intstatus & PSI_FAULT) {
1181 /* Major fault! */
1182 printk(KERN_ERR
1183 "Voyager PSI Detected major fault, immediate power off!\n");
1184 voyager_cat_power_off();
1185 /* not reached */
1186 } else if (psi_reg.regs.intstatus & (PSI_DC_FAIL | PSI_ALARM
1187 | PSI_CURRENT | PSI_DVM
1188 | PSI_PSCFAULT | PSI_STAT_CHG)) {
1189 /* other psi fault */
1190
1191 printk(KERN_WARNING "Voyager PSI status 0x%x\n", data);
1192 /* clear the PSI fault */
1193 outb(VOYAGER_CAT_RUN, CAT_CMD);
1194 cat_write(&psi, &psi_asic, VOYAGER_PSI_STATUS_REG, 0);
1195 outb(VOYAGER_CAT_END, CAT_CMD);
1196 }
1197}
diff --git a/arch/x86/mach-voyager/voyager_smp.c b/arch/x86/mach-voyager/voyager_smp.c
deleted file mode 100644
index 9840b7ec749a..000000000000
--- a/arch/x86/mach-voyager/voyager_smp.c
+++ /dev/null
@@ -1,1808 +0,0 @@
1/* -*- mode: c; c-basic-offset: 8 -*- */
2
3/* Copyright (C) 1999,2001
4 *
5 * Author: J.E.J.Bottomley@HansenPartnership.com
6 *
7 * This file provides all the same external entries as smp.c but uses
8 * the voyager hal to provide the functionality
9 */
10#include <linux/cpu.h>
11#include <linux/module.h>
12#include <linux/mm.h>
13#include <linux/kernel_stat.h>
14#include <linux/delay.h>
15#include <linux/mc146818rtc.h>
16#include <linux/cache.h>
17#include <linux/interrupt.h>
18#include <linux/init.h>
19#include <linux/kernel.h>
20#include <linux/bootmem.h>
21#include <linux/completion.h>
22#include <asm/desc.h>
23#include <asm/voyager.h>
24#include <asm/vic.h>
25#include <asm/mtrr.h>
26#include <asm/pgalloc.h>
27#include <asm/tlbflush.h>
28#include <asm/arch_hooks.h>
29#include <asm/trampoline.h>
30
31/* TLB state -- visible externally, indexed physically */
32DEFINE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate) = { &init_mm, 0 };
33
34/* CPU IRQ affinity -- set to all ones initially */
35static unsigned long cpu_irq_affinity[NR_CPUS] __cacheline_aligned =
36 {[0 ... NR_CPUS-1] = ~0UL };
37
38/* per CPU data structure (for /proc/cpuinfo et al), visible externally
39 * indexed physically */
40DEFINE_PER_CPU_SHARED_ALIGNED(struct cpuinfo_x86, cpu_info);
41EXPORT_PER_CPU_SYMBOL(cpu_info);
42
43/* physical ID of the CPU used to boot the system */
44unsigned char boot_cpu_id;
45
46/* The memory line addresses for the Quad CPIs */
47struct voyager_qic_cpi *voyager_quad_cpi_addr[NR_CPUS] __cacheline_aligned;
48
49/* The masks for the Extended VIC processors, filled in by cat_init */
50__u32 voyager_extended_vic_processors = 0;
51
52/* Masks for the extended Quad processors which cannot be VIC booted */
53__u32 voyager_allowed_boot_processors = 0;
54
55/* The mask for the Quad Processors (both extended and non-extended) */
56__u32 voyager_quad_processors = 0;
57
58/* Total count of live CPUs, used in process.c to display
59 * the CPU information and in irq.c for the per CPU irq
60 * activity count. Finally exported by i386_ksyms.c */
61static int voyager_extended_cpus = 1;
62
63/* Used for the invalidate map that's also checked in the spinlock */
64static volatile unsigned long smp_invalidate_needed;
65
66/* Bitmask of CPUs present in the system - exported by i386_syms.c, used
67 * by scheduler but indexed physically */
68cpumask_t phys_cpu_present_map = CPU_MASK_NONE;
69
70/* The internal functions */
71static void send_CPI(__u32 cpuset, __u8 cpi);
72static void ack_CPI(__u8 cpi);
73static int ack_QIC_CPI(__u8 cpi);
74static void ack_special_QIC_CPI(__u8 cpi);
75static void ack_VIC_CPI(__u8 cpi);
76static void send_CPI_allbutself(__u8 cpi);
77static void mask_vic_irq(unsigned int irq);
78static void unmask_vic_irq(unsigned int irq);
79static unsigned int startup_vic_irq(unsigned int irq);
80static void enable_local_vic_irq(unsigned int irq);
81static void disable_local_vic_irq(unsigned int irq);
82static void before_handle_vic_irq(unsigned int irq);
83static void after_handle_vic_irq(unsigned int irq);
84static void set_vic_irq_affinity(unsigned int irq, cpumask_t mask);
85static void ack_vic_irq(unsigned int irq);
86static void vic_enable_cpi(void);
87static void do_boot_cpu(__u8 cpuid);
88static void do_quad_bootstrap(void);
89static void initialize_secondary(void);
90
91int hard_smp_processor_id(void);
92int safe_smp_processor_id(void);
93
94/* Inline functions */
95static inline void send_one_QIC_CPI(__u8 cpu, __u8 cpi)
96{
97 voyager_quad_cpi_addr[cpu]->qic_cpi[cpi].cpi =
98 (smp_processor_id() << 16) + cpi;
99}
100
101static inline void send_QIC_CPI(__u32 cpuset, __u8 cpi)
102{
103 int cpu;
104
105 for_each_online_cpu(cpu) {
106 if (cpuset & (1 << cpu)) {
107#ifdef VOYAGER_DEBUG
108 if (!cpu_online(cpu))
109 VDEBUG(("CPU%d sending cpi %d to CPU%d not in "
110 "cpu_online_map\n",
111 hard_smp_processor_id(), cpi, cpu));
112#endif
113 send_one_QIC_CPI(cpu, cpi - QIC_CPI_OFFSET);
114 }
115 }
116}
117
118static inline void wrapper_smp_local_timer_interrupt(void)
119{
120 irq_enter();
121 smp_local_timer_interrupt();
122 irq_exit();
123}
124
125static inline void send_one_CPI(__u8 cpu, __u8 cpi)
126{
127 if (voyager_quad_processors & (1 << cpu))
128 send_one_QIC_CPI(cpu, cpi - QIC_CPI_OFFSET);
129 else
130 send_CPI(1 << cpu, cpi);
131}
132
133static inline void send_CPI_allbutself(__u8 cpi)
134{
135 __u8 cpu = smp_processor_id();
136 __u32 mask = cpus_addr(cpu_online_map)[0] & ~(1 << cpu);
137 send_CPI(mask, cpi);
138}
139
140static inline int is_cpu_quad(void)
141{
142 __u8 cpumask = inb(VIC_PROC_WHO_AM_I);
143 return ((cpumask & QUAD_IDENTIFIER) == QUAD_IDENTIFIER);
144}
145
146static inline int is_cpu_extended(void)
147{
148 __u8 cpu = hard_smp_processor_id();
149
150 return (voyager_extended_vic_processors & (1 << cpu));
151}
152
153static inline int is_cpu_vic_boot(void)
154{
155 __u8 cpu = hard_smp_processor_id();
156
157 return (voyager_extended_vic_processors
158 & voyager_allowed_boot_processors & (1 << cpu));
159}
160
161static inline void ack_CPI(__u8 cpi)
162{
163 switch (cpi) {
164 case VIC_CPU_BOOT_CPI:
165 if (is_cpu_quad() && !is_cpu_vic_boot())
166 ack_QIC_CPI(cpi);
167 else
168 ack_VIC_CPI(cpi);
169 break;
170 case VIC_SYS_INT:
171 case VIC_CMN_INT:
172 /* These are slightly strange. Even on the Quad card,
173 * They are vectored as VIC CPIs */
174 if (is_cpu_quad())
175 ack_special_QIC_CPI(cpi);
176 else
177 ack_VIC_CPI(cpi);
178 break;
179 default:
180 printk("VOYAGER ERROR: CPI%d is in common CPI code\n", cpi);
181 break;
182 }
183}
184
185/* local variables */
186
187/* The VIC IRQ descriptors -- these look almost identical to the
188 * 8259 IRQs except that masks and things must be kept per processor
189 */
190static struct irq_chip vic_chip = {
191 .name = "VIC",
192 .startup = startup_vic_irq,
193 .mask = mask_vic_irq,
194 .unmask = unmask_vic_irq,
195 .set_affinity = set_vic_irq_affinity,
196};
197
198/* used to count up as CPUs are brought on line (starts at 0) */
199static int cpucount = 0;
200
201/* The per cpu profile stuff - used in smp_local_timer_interrupt */
202static DEFINE_PER_CPU(int, prof_multiplier) = 1;
203static DEFINE_PER_CPU(int, prof_old_multiplier) = 1;
204static DEFINE_PER_CPU(int, prof_counter) = 1;
205
206/* the map used to check if a CPU has booted */
207static __u32 cpu_booted_map;
208
209/* the synchronize flag used to hold all secondary CPUs spinning in
210 * a tight loop until the boot sequence is ready for them */
211static cpumask_t smp_commenced_mask = CPU_MASK_NONE;
212
213/* This is for the new dynamic CPU boot code */
214cpumask_t cpu_callin_map = CPU_MASK_NONE;
215cpumask_t cpu_callout_map = CPU_MASK_NONE;
216
217/* The per processor IRQ masks (these are usually kept in sync) */
218static __u16 vic_irq_mask[NR_CPUS] __cacheline_aligned;
219
220/* the list of IRQs to be enabled by the VIC_ENABLE_IRQ_CPI */
221static __u16 vic_irq_enable_mask[NR_CPUS] __cacheline_aligned = { 0 };
222
223/* Lock for enable/disable of VIC interrupts */
224static __cacheline_aligned DEFINE_SPINLOCK(vic_irq_lock);
225
226/* The boot processor is correctly set up in PC mode when it
227 * comes up, but the secondaries need their master/slave 8259
228 * pairs initializing correctly */
229
230/* Interrupt counters (per cpu) and total - used to try to
231 * even up the interrupt handling routines */
232static long vic_intr_total = 0;
233static long vic_intr_count[NR_CPUS] __cacheline_aligned = { 0 };
234static unsigned long vic_tick[NR_CPUS] __cacheline_aligned = { 0 };
235
236/* Since we can only use CPI0, we fake all the other CPIs */
237static unsigned long vic_cpi_mailbox[NR_CPUS] __cacheline_aligned;
238
239/* debugging routine to read the isr of the cpu's pic */
240static inline __u16 vic_read_isr(void)
241{
242 __u16 isr;
243
244 outb(0x0b, 0xa0);
245 isr = inb(0xa0) << 8;
246 outb(0x0b, 0x20);
247 isr |= inb(0x20);
248
249 return isr;
250}
251
252static __init void qic_setup(void)
253{
254 if (!is_cpu_quad()) {
255 /* not a quad, no setup */
256 return;
257 }
258 outb(QIC_DEFAULT_MASK0, QIC_MASK_REGISTER0);
259 outb(QIC_CPI_ENABLE, QIC_MASK_REGISTER1);
260
261 if (is_cpu_extended()) {
262 /* the QIC duplicate of the VIC base register */
263 outb(VIC_DEFAULT_CPI_BASE, QIC_VIC_CPI_BASE_REGISTER);
264 outb(QIC_DEFAULT_CPI_BASE, QIC_CPI_BASE_REGISTER);
265
266 /* FIXME: should set up the QIC timer and memory parity
267 * error vectors here */
268 }
269}
270
271static __init void vic_setup_pic(void)
272{
273 outb(1, VIC_REDIRECT_REGISTER_1);
274 /* clear the claim registers for dynamic routing */
275 outb(0, VIC_CLAIM_REGISTER_0);
276 outb(0, VIC_CLAIM_REGISTER_1);
277
278 outb(0, VIC_PRIORITY_REGISTER);
279 /* Set the Primary and Secondary Microchannel vector
280 * bases to be the same as the ordinary interrupts
281 *
282 * FIXME: This would be more efficient using separate
283 * vectors. */
284 outb(FIRST_EXTERNAL_VECTOR, VIC_PRIMARY_MC_BASE);
285 outb(FIRST_EXTERNAL_VECTOR, VIC_SECONDARY_MC_BASE);
286 /* Now initiallise the master PIC belonging to this CPU by
287 * sending the four ICWs */
288
289 /* ICW1: level triggered, ICW4 needed */
290 outb(0x19, 0x20);
291
292 /* ICW2: vector base */
293 outb(FIRST_EXTERNAL_VECTOR, 0x21);
294
295 /* ICW3: slave at line 2 */
296 outb(0x04, 0x21);
297
298 /* ICW4: 8086 mode */
299 outb(0x01, 0x21);
300
301 /* now the same for the slave PIC */
302
303 /* ICW1: level trigger, ICW4 needed */
304 outb(0x19, 0xA0);
305
306 /* ICW2: slave vector base */
307 outb(FIRST_EXTERNAL_VECTOR + 8, 0xA1);
308
309 /* ICW3: slave ID */
310 outb(0x02, 0xA1);
311
312 /* ICW4: 8086 mode */
313 outb(0x01, 0xA1);
314}
315
316static void do_quad_bootstrap(void)
317{
318 if (is_cpu_quad() && is_cpu_vic_boot()) {
319 int i;
320 unsigned long flags;
321 __u8 cpuid = hard_smp_processor_id();
322
323 local_irq_save(flags);
324
325 for (i = 0; i < 4; i++) {
326 /* FIXME: this would be >>3 &0x7 on the 32 way */
327 if (((cpuid >> 2) & 0x03) == i)
328 /* don't lower our own mask! */
329 continue;
330
331 /* masquerade as local Quad CPU */
332 outb(QIC_CPUID_ENABLE | i, QIC_PROCESSOR_ID);
333 /* enable the startup CPI */
334 outb(QIC_BOOT_CPI_MASK, QIC_MASK_REGISTER1);
335 /* restore cpu id */
336 outb(0, QIC_PROCESSOR_ID);
337 }
338 local_irq_restore(flags);
339 }
340}
341
342void prefill_possible_map(void)
343{
344 /* This is empty on voyager because we need a much
345 * earlier detection which is done in find_smp_config */
346}
347
348/* Set up all the basic stuff: read the SMP config and make all the
349 * SMP information reflect only the boot cpu. All others will be
350 * brought on-line later. */
351void __init find_smp_config(void)
352{
353 int i;
354
355 boot_cpu_id = hard_smp_processor_id();
356
357 printk("VOYAGER SMP: Boot cpu is %d\n", boot_cpu_id);
358
359 /* initialize the CPU structures (moved from smp_boot_cpus) */
360 for (i = 0; i < nr_cpu_ids; i++)
361 cpu_irq_affinity[i] = ~0;
362 cpu_online_map = cpumask_of_cpu(boot_cpu_id);
363
364 /* The boot CPU must be extended */
365 voyager_extended_vic_processors = 1 << boot_cpu_id;
366 /* initially, all of the first 8 CPUs can boot */
367 voyager_allowed_boot_processors = 0xff;
368 /* set up everything for just this CPU, we can alter
369 * this as we start the other CPUs later */
370 /* now get the CPU disposition from the extended CMOS */
371 cpus_addr(phys_cpu_present_map)[0] =
372 voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK);
373 cpus_addr(phys_cpu_present_map)[0] |=
374 voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 1) << 8;
375 cpus_addr(phys_cpu_present_map)[0] |=
376 voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK +
377 2) << 16;
378 cpus_addr(phys_cpu_present_map)[0] |=
379 voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK +
380 3) << 24;
381 cpu_possible_map = phys_cpu_present_map;
382 printk("VOYAGER SMP: phys_cpu_present_map = 0x%lx\n",
383 cpus_addr(phys_cpu_present_map)[0]);
384 /* Here we set up the VIC to enable SMP */
385 /* enable the CPIs by writing the base vector to their register */
386 outb(VIC_DEFAULT_CPI_BASE, VIC_CPI_BASE_REGISTER);
387 outb(1, VIC_REDIRECT_REGISTER_1);
388 /* set the claim registers for static routing --- Boot CPU gets
389 * all interrupts untill all other CPUs started */
390 outb(0xff, VIC_CLAIM_REGISTER_0);
391 outb(0xff, VIC_CLAIM_REGISTER_1);
392 /* Set the Primary and Secondary Microchannel vector
393 * bases to be the same as the ordinary interrupts
394 *
395 * FIXME: This would be more efficient using separate
396 * vectors. */
397 outb(FIRST_EXTERNAL_VECTOR, VIC_PRIMARY_MC_BASE);
398 outb(FIRST_EXTERNAL_VECTOR, VIC_SECONDARY_MC_BASE);
399
400 /* Finally tell the firmware that we're driving */
401 outb(inb(VOYAGER_SUS_IN_CONTROL_PORT) | VOYAGER_IN_CONTROL_FLAG,
402 VOYAGER_SUS_IN_CONTROL_PORT);
403
404 current_thread_info()->cpu = boot_cpu_id;
405 x86_write_percpu(cpu_number, boot_cpu_id);
406}
407
408/*
409 * The bootstrap kernel entry code has set these up. Save them
410 * for a given CPU, id is physical */
411void __init smp_store_cpu_info(int id)
412{
413 struct cpuinfo_x86 *c = &cpu_data(id);
414
415 *c = boot_cpu_data;
416 c->cpu_index = id;
417
418 identify_secondary_cpu(c);
419}
420
421/* Routine initially called when a non-boot CPU is brought online */
422static void __init start_secondary(void *unused)
423{
424 __u8 cpuid = hard_smp_processor_id();
425
426 cpu_init();
427
428 /* OK, we're in the routine */
429 ack_CPI(VIC_CPU_BOOT_CPI);
430
431 /* setup the 8259 master slave pair belonging to this CPU ---
432 * we won't actually receive any until the boot CPU
433 * relinquishes it's static routing mask */
434 vic_setup_pic();
435
436 qic_setup();
437
438 if (is_cpu_quad() && !is_cpu_vic_boot()) {
439 /* clear the boot CPI */
440 __u8 dummy;
441
442 dummy =
443 voyager_quad_cpi_addr[cpuid]->qic_cpi[VIC_CPU_BOOT_CPI].cpi;
444 printk("read dummy %d\n", dummy);
445 }
446
447 /* lower the mask to receive CPIs */
448 vic_enable_cpi();
449
450 VDEBUG(("VOYAGER SMP: CPU%d, stack at about %p\n", cpuid, &cpuid));
451
452 notify_cpu_starting(cpuid);
453
454 /* enable interrupts */
455 local_irq_enable();
456
457 /* get our bogomips */
458 calibrate_delay();
459
460 /* save our processor parameters */
461 smp_store_cpu_info(cpuid);
462
463 /* if we're a quad, we may need to bootstrap other CPUs */
464 do_quad_bootstrap();
465
466 /* FIXME: this is rather a poor hack to prevent the CPU
467 * activating softirqs while it's supposed to be waiting for
468 * permission to proceed. Without this, the new per CPU stuff
469 * in the softirqs will fail */
470 local_irq_disable();
471 cpu_set(cpuid, cpu_callin_map);
472
473 /* signal that we're done */
474 cpu_booted_map = 1;
475
476 while (!cpu_isset(cpuid, smp_commenced_mask))
477 rep_nop();
478 local_irq_enable();
479
480 local_flush_tlb();
481
482 cpu_set(cpuid, cpu_online_map);
483 wmb();
484 cpu_idle();
485}
486
487/* Routine to kick start the given CPU and wait for it to report ready
488 * (or timeout in startup). When this routine returns, the requested
489 * CPU is either fully running and configured or known to be dead.
490 *
491 * We call this routine sequentially 1 CPU at a time, so no need for
492 * locking */
493
494static void __init do_boot_cpu(__u8 cpu)
495{
496 struct task_struct *idle;
497 int timeout;
498 unsigned long flags;
499 int quad_boot = (1 << cpu) & voyager_quad_processors
500 & ~(voyager_extended_vic_processors
501 & voyager_allowed_boot_processors);
502
503 /* This is the format of the CPI IDT gate (in real mode) which
504 * we're hijacking to boot the CPU */
505 union IDTFormat {
506 struct seg {
507 __u16 Offset;
508 __u16 Segment;
509 } idt;
510 __u32 val;
511 } hijack_source;
512
513 __u32 *hijack_vector;
514 __u32 start_phys_address = setup_trampoline();
515
516 /* There's a clever trick to this: The linux trampoline is
517 * compiled to begin at absolute location zero, so make the
518 * address zero but have the data segment selector compensate
519 * for the actual address */
520 hijack_source.idt.Offset = start_phys_address & 0x000F;
521 hijack_source.idt.Segment = (start_phys_address >> 4) & 0xFFFF;
522
523 cpucount++;
524 alternatives_smp_switch(1);
525
526 idle = fork_idle(cpu);
527 if (IS_ERR(idle))
528 panic("failed fork for CPU%d", cpu);
529 idle->thread.ip = (unsigned long)start_secondary;
530 /* init_tasks (in sched.c) is indexed logically */
531 stack_start.sp = (void *)idle->thread.sp;
532
533 init_gdt(cpu);
534 per_cpu(current_task, cpu) = idle;
535 early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
536 irq_ctx_init(cpu);
537
538 /* Note: Don't modify initial ss override */
539 VDEBUG(("VOYAGER SMP: Booting CPU%d at 0x%lx[%x:%x], stack %p\n", cpu,
540 (unsigned long)hijack_source.val, hijack_source.idt.Segment,
541 hijack_source.idt.Offset, stack_start.sp));
542
543 /* init lowmem identity mapping */
544 clone_pgd_range(swapper_pg_dir, swapper_pg_dir + KERNEL_PGD_BOUNDARY,
545 min_t(unsigned long, KERNEL_PGD_PTRS, KERNEL_PGD_BOUNDARY));
546 flush_tlb_all();
547
548 if (quad_boot) {
549 printk("CPU %d: non extended Quad boot\n", cpu);
550 hijack_vector =
551 (__u32 *)
552 phys_to_virt((VIC_CPU_BOOT_CPI + QIC_DEFAULT_CPI_BASE) * 4);
553 *hijack_vector = hijack_source.val;
554 } else {
555 printk("CPU%d: extended VIC boot\n", cpu);
556 hijack_vector =
557 (__u32 *)
558 phys_to_virt((VIC_CPU_BOOT_CPI + VIC_DEFAULT_CPI_BASE) * 4);
559 *hijack_vector = hijack_source.val;
560 /* VIC errata, may also receive interrupt at this address */
561 hijack_vector =
562 (__u32 *)
563 phys_to_virt((VIC_CPU_BOOT_ERRATA_CPI +
564 VIC_DEFAULT_CPI_BASE) * 4);
565 *hijack_vector = hijack_source.val;
566 }
567 /* All non-boot CPUs start with interrupts fully masked. Need
568 * to lower the mask of the CPI we're about to send. We do
569 * this in the VIC by masquerading as the processor we're
570 * about to boot and lowering its interrupt mask */
571 local_irq_save(flags);
572 if (quad_boot) {
573 send_one_QIC_CPI(cpu, VIC_CPU_BOOT_CPI);
574 } else {
575 outb(VIC_CPU_MASQUERADE_ENABLE | cpu, VIC_PROCESSOR_ID);
576 /* here we're altering registers belonging to `cpu' */
577
578 outb(VIC_BOOT_INTERRUPT_MASK, 0x21);
579 /* now go back to our original identity */
580 outb(boot_cpu_id, VIC_PROCESSOR_ID);
581
582 /* and boot the CPU */
583
584 send_CPI((1 << cpu), VIC_CPU_BOOT_CPI);
585 }
586 cpu_booted_map = 0;
587 local_irq_restore(flags);
588
589 /* now wait for it to become ready (or timeout) */
590 for (timeout = 0; timeout < 50000; timeout++) {
591 if (cpu_booted_map)
592 break;
593 udelay(100);
594 }
595 /* reset the page table */
596 zap_low_mappings();
597
598 if (cpu_booted_map) {
599 VDEBUG(("CPU%d: Booted successfully, back in CPU %d\n",
600 cpu, smp_processor_id()));
601
602 printk("CPU%d: ", cpu);
603 print_cpu_info(&cpu_data(cpu));
604 wmb();
605 cpu_set(cpu, cpu_callout_map);
606 cpu_set(cpu, cpu_present_map);
607 } else {
608 printk("CPU%d FAILED TO BOOT: ", cpu);
609 if (*
610 ((volatile unsigned char *)phys_to_virt(start_phys_address))
611 == 0xA5)
612 printk("Stuck.\n");
613 else
614 printk("Not responding.\n");
615
616 cpucount--;
617 }
618}
619
620void __init smp_boot_cpus(void)
621{
622 int i;
623
624 /* CAT BUS initialisation must be done after the memory */
625 /* FIXME: The L4 has a catbus too, it just needs to be
626 * accessed in a totally different way */
627 if (voyager_level == 5) {
628 voyager_cat_init();
629
630 /* now that the cat has probed the Voyager System Bus, sanity
631 * check the cpu map */
632 if (((voyager_quad_processors | voyager_extended_vic_processors)
633 & cpus_addr(phys_cpu_present_map)[0]) !=
634 cpus_addr(phys_cpu_present_map)[0]) {
635 /* should panic */
636 printk("\n\n***WARNING*** "
637 "Sanity check of CPU present map FAILED\n");
638 }
639 } else if (voyager_level == 4)
640 voyager_extended_vic_processors =
641 cpus_addr(phys_cpu_present_map)[0];
642
643 /* this sets up the idle task to run on the current cpu */
644 voyager_extended_cpus = 1;
645 /* Remove the global_irq_holder setting, it triggers a BUG() on
646 * schedule at the moment */
647 //global_irq_holder = boot_cpu_id;
648
649 /* FIXME: Need to do something about this but currently only works
650 * on CPUs with a tsc which none of mine have.
651 smp_tune_scheduling();
652 */
653 smp_store_cpu_info(boot_cpu_id);
654 /* setup the jump vector */
655 initial_code = (unsigned long)initialize_secondary;
656 printk("CPU%d: ", boot_cpu_id);
657 print_cpu_info(&cpu_data(boot_cpu_id));
658
659 if (is_cpu_quad()) {
660 /* booting on a Quad CPU */
661 printk("VOYAGER SMP: Boot CPU is Quad\n");
662 qic_setup();
663 do_quad_bootstrap();
664 }
665
666 /* enable our own CPIs */
667 vic_enable_cpi();
668
669 cpu_set(boot_cpu_id, cpu_online_map);
670 cpu_set(boot_cpu_id, cpu_callout_map);
671
672 /* loop over all the extended VIC CPUs and boot them. The
673 * Quad CPUs must be bootstrapped by their extended VIC cpu */
674 for (i = 0; i < nr_cpu_ids; i++) {
675 if (i == boot_cpu_id || !cpu_isset(i, phys_cpu_present_map))
676 continue;
677 do_boot_cpu(i);
678 /* This udelay seems to be needed for the Quad boots
679 * don't remove unless you know what you're doing */
680 udelay(1000);
681 }
682 /* we could compute the total bogomips here, but why bother?,
683 * Code added from smpboot.c */
684 {
685 unsigned long bogosum = 0;
686
687 for_each_online_cpu(i)
688 bogosum += cpu_data(i).loops_per_jiffy;
689 printk(KERN_INFO "Total of %d processors activated "
690 "(%lu.%02lu BogoMIPS).\n",
691 cpucount + 1, bogosum / (500000 / HZ),
692 (bogosum / (5000 / HZ)) % 100);
693 }
694 voyager_extended_cpus = hweight32(voyager_extended_vic_processors);
695 printk("VOYAGER: Extended (interrupt handling CPUs): "
696 "%d, non-extended: %d\n", voyager_extended_cpus,
697 num_booting_cpus() - voyager_extended_cpus);
698 /* that's it, switch to symmetric mode */
699 outb(0, VIC_PRIORITY_REGISTER);
700 outb(0, VIC_CLAIM_REGISTER_0);
701 outb(0, VIC_CLAIM_REGISTER_1);
702
703 VDEBUG(("VOYAGER SMP: Booted with %d CPUs\n", num_booting_cpus()));
704}
705
706/* Reload the secondary CPUs task structure (this function does not
707 * return ) */
708static void __init initialize_secondary(void)
709{
710#if 0
711 // AC kernels only
712 set_current(hard_get_current());
713#endif
714
715 /*
716 * We don't actually need to load the full TSS,
717 * basically just the stack pointer and the eip.
718 */
719
720 asm volatile ("movl %0,%%esp\n\t"
721 "jmp *%1"::"r" (current->thread.sp),
722 "r"(current->thread.ip));
723}
724
725/* handle a Voyager SYS_INT -- If we don't, the base board will
726 * panic the system.
727 *
728 * System interrupts occur because some problem was detected on the
729 * various busses. To find out what you have to probe all the
730 * hardware via the CAT bus. FIXME: At the moment we do nothing. */
731void smp_vic_sys_interrupt(struct pt_regs *regs)
732{
733 ack_CPI(VIC_SYS_INT);
734 printk("Voyager SYSTEM INTERRUPT\n");
735}
736
737/* Handle a voyager CMN_INT; These interrupts occur either because of
738 * a system status change or because a single bit memory error
739 * occurred. FIXME: At the moment, ignore all this. */
740void smp_vic_cmn_interrupt(struct pt_regs *regs)
741{
742 static __u8 in_cmn_int = 0;
743 static DEFINE_SPINLOCK(cmn_int_lock);
744
745 /* common ints are broadcast, so make sure we only do this once */
746 _raw_spin_lock(&cmn_int_lock);
747 if (in_cmn_int)
748 goto unlock_end;
749
750 in_cmn_int++;
751 _raw_spin_unlock(&cmn_int_lock);
752
753 VDEBUG(("Voyager COMMON INTERRUPT\n"));
754
755 if (voyager_level == 5)
756 voyager_cat_do_common_interrupt();
757
758 _raw_spin_lock(&cmn_int_lock);
759 in_cmn_int = 0;
760 unlock_end:
761 _raw_spin_unlock(&cmn_int_lock);
762 ack_CPI(VIC_CMN_INT);
763}
764
765/*
766 * Reschedule call back. Nothing to do, all the work is done
767 * automatically when we return from the interrupt. */
768static void smp_reschedule_interrupt(void)
769{
770 /* do nothing */
771}
772
773static struct mm_struct *flush_mm;
774static unsigned long flush_va;
775static DEFINE_SPINLOCK(tlbstate_lock);
776
777/*
778 * We cannot call mmdrop() because we are in interrupt context,
779 * instead update mm->cpu_vm_mask.
780 *
781 * We need to reload %cr3 since the page tables may be going
782 * away from under us..
783 */
784static inline void voyager_leave_mm(unsigned long cpu)
785{
786 if (per_cpu(cpu_tlbstate, cpu).state == TLBSTATE_OK)
787 BUG();
788 cpu_clear(cpu, per_cpu(cpu_tlbstate, cpu).active_mm->cpu_vm_mask);
789 load_cr3(swapper_pg_dir);
790}
791
792/*
793 * Invalidate call-back
794 */
795static void smp_invalidate_interrupt(void)
796{
797 __u8 cpu = smp_processor_id();
798
799 if (!test_bit(cpu, &smp_invalidate_needed))
800 return;
801 /* This will flood messages. Don't uncomment unless you see
802 * Problems with cross cpu invalidation
803 VDEBUG(("VOYAGER SMP: CPU%d received INVALIDATE_CPI\n",
804 smp_processor_id()));
805 */
806
807 if (flush_mm == per_cpu(cpu_tlbstate, cpu).active_mm) {
808 if (per_cpu(cpu_tlbstate, cpu).state == TLBSTATE_OK) {
809 if (flush_va == TLB_FLUSH_ALL)
810 local_flush_tlb();
811 else
812 __flush_tlb_one(flush_va);
813 } else
814 voyager_leave_mm(cpu);
815 }
816 smp_mb__before_clear_bit();
817 clear_bit(cpu, &smp_invalidate_needed);
818 smp_mb__after_clear_bit();
819}
820
821/* All the new flush operations for 2.4 */
822
823/* This routine is called with a physical cpu mask */
824static void
825voyager_flush_tlb_others(unsigned long cpumask, struct mm_struct *mm,
826 unsigned long va)
827{
828 int stuck = 50000;
829
830 if (!cpumask)
831 BUG();
832 if ((cpumask & cpus_addr(cpu_online_map)[0]) != cpumask)
833 BUG();
834 if (cpumask & (1 << smp_processor_id()))
835 BUG();
836 if (!mm)
837 BUG();
838
839 spin_lock(&tlbstate_lock);
840
841 flush_mm = mm;
842 flush_va = va;
843 atomic_set_mask(cpumask, &smp_invalidate_needed);
844 /*
845 * We have to send the CPI only to
846 * CPUs affected.
847 */
848 send_CPI(cpumask, VIC_INVALIDATE_CPI);
849
850 while (smp_invalidate_needed) {
851 mb();
852 if (--stuck == 0) {
853 printk("***WARNING*** Stuck doing invalidate CPI "
854 "(CPU%d)\n", smp_processor_id());
855 break;
856 }
857 }
858
859 /* Uncomment only to debug invalidation problems
860 VDEBUG(("VOYAGER SMP: Completed invalidate CPI (CPU%d)\n", cpu));
861 */
862
863 flush_mm = NULL;
864 flush_va = 0;
865 spin_unlock(&tlbstate_lock);
866}
867
868void flush_tlb_current_task(void)
869{
870 struct mm_struct *mm = current->mm;
871 unsigned long cpu_mask;
872
873 preempt_disable();
874
875 cpu_mask = cpus_addr(mm->cpu_vm_mask)[0] & ~(1 << smp_processor_id());
876 local_flush_tlb();
877 if (cpu_mask)
878 voyager_flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL);
879
880 preempt_enable();
881}
882
883void flush_tlb_mm(struct mm_struct *mm)
884{
885 unsigned long cpu_mask;
886
887 preempt_disable();
888
889 cpu_mask = cpus_addr(mm->cpu_vm_mask)[0] & ~(1 << smp_processor_id());
890
891 if (current->active_mm == mm) {
892 if (current->mm)
893 local_flush_tlb();
894 else
895 voyager_leave_mm(smp_processor_id());
896 }
897 if (cpu_mask)
898 voyager_flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL);
899
900 preempt_enable();
901}
902
903void flush_tlb_page(struct vm_area_struct *vma, unsigned long va)
904{
905 struct mm_struct *mm = vma->vm_mm;
906 unsigned long cpu_mask;
907
908 preempt_disable();
909
910 cpu_mask = cpus_addr(mm->cpu_vm_mask)[0] & ~(1 << smp_processor_id());
911 if (current->active_mm == mm) {
912 if (current->mm)
913 __flush_tlb_one(va);
914 else
915 voyager_leave_mm(smp_processor_id());
916 }
917
918 if (cpu_mask)
919 voyager_flush_tlb_others(cpu_mask, mm, va);
920
921 preempt_enable();
922}
923
924EXPORT_SYMBOL(flush_tlb_page);
925
926/* enable the requested IRQs */
927static void smp_enable_irq_interrupt(void)
928{
929 __u8 irq;
930 __u8 cpu = get_cpu();
931
932 VDEBUG(("VOYAGER SMP: CPU%d enabling irq mask 0x%x\n", cpu,
933 vic_irq_enable_mask[cpu]));
934
935 spin_lock(&vic_irq_lock);
936 for (irq = 0; irq < 16; irq++) {
937 if (vic_irq_enable_mask[cpu] & (1 << irq))
938 enable_local_vic_irq(irq);
939 }
940 vic_irq_enable_mask[cpu] = 0;
941 spin_unlock(&vic_irq_lock);
942
943 put_cpu_no_resched();
944}
945
946/*
947 * CPU halt call-back
948 */
949static void smp_stop_cpu_function(void *dummy)
950{
951 VDEBUG(("VOYAGER SMP: CPU%d is STOPPING\n", smp_processor_id()));
952 cpu_clear(smp_processor_id(), cpu_online_map);
953 local_irq_disable();
954 for (;;)
955 halt();
956}
957
958/* execute a thread on a new CPU. The function to be called must be
959 * previously set up. This is used to schedule a function for
960 * execution on all CPUs - set up the function then broadcast a
961 * function_interrupt CPI to come here on each CPU */
962static void smp_call_function_interrupt(void)
963{
964 irq_enter();
965 generic_smp_call_function_interrupt();
966 __get_cpu_var(irq_stat).irq_call_count++;
967 irq_exit();
968}
969
970static void smp_call_function_single_interrupt(void)
971{
972 irq_enter();
973 generic_smp_call_function_single_interrupt();
974 __get_cpu_var(irq_stat).irq_call_count++;
975 irq_exit();
976}
977
978/* Sorry about the name. In an APIC based system, the APICs
979 * themselves are programmed to send a timer interrupt. This is used
980 * by linux to reschedule the processor. Voyager doesn't have this,
981 * so we use the system clock to interrupt one processor, which in
982 * turn, broadcasts a timer CPI to all the others --- we receive that
983 * CPI here. We don't use this actually for counting so losing
984 * ticks doesn't matter
985 *
986 * FIXME: For those CPUs which actually have a local APIC, we could
987 * try to use it to trigger this interrupt instead of having to
988 * broadcast the timer tick. Unfortunately, all my pentium DYADs have
989 * no local APIC, so I can't do this
990 *
991 * This function is currently a placeholder and is unused in the code */
992void smp_apic_timer_interrupt(struct pt_regs *regs)
993{
994 struct pt_regs *old_regs = set_irq_regs(regs);
995 wrapper_smp_local_timer_interrupt();
996 set_irq_regs(old_regs);
997}
998
999/* All of the QUAD interrupt GATES */
1000void smp_qic_timer_interrupt(struct pt_regs *regs)
1001{
1002 struct pt_regs *old_regs = set_irq_regs(regs);
1003 ack_QIC_CPI(QIC_TIMER_CPI);
1004 wrapper_smp_local_timer_interrupt();
1005 set_irq_regs(old_regs);
1006}
1007
1008void smp_qic_invalidate_interrupt(struct pt_regs *regs)
1009{
1010 ack_QIC_CPI(QIC_INVALIDATE_CPI);
1011 smp_invalidate_interrupt();
1012}
1013
1014void smp_qic_reschedule_interrupt(struct pt_regs *regs)
1015{
1016 ack_QIC_CPI(QIC_RESCHEDULE_CPI);
1017 smp_reschedule_interrupt();
1018}
1019
1020void smp_qic_enable_irq_interrupt(struct pt_regs *regs)
1021{
1022 ack_QIC_CPI(QIC_ENABLE_IRQ_CPI);
1023 smp_enable_irq_interrupt();
1024}
1025
1026void smp_qic_call_function_interrupt(struct pt_regs *regs)
1027{
1028 ack_QIC_CPI(QIC_CALL_FUNCTION_CPI);
1029 smp_call_function_interrupt();
1030}
1031
1032void smp_qic_call_function_single_interrupt(struct pt_regs *regs)
1033{
1034 ack_QIC_CPI(QIC_CALL_FUNCTION_SINGLE_CPI);
1035 smp_call_function_single_interrupt();
1036}
1037
1038void smp_vic_cpi_interrupt(struct pt_regs *regs)
1039{
1040 struct pt_regs *old_regs = set_irq_regs(regs);
1041 __u8 cpu = smp_processor_id();
1042
1043 if (is_cpu_quad())
1044 ack_QIC_CPI(VIC_CPI_LEVEL0);
1045 else
1046 ack_VIC_CPI(VIC_CPI_LEVEL0);
1047
1048 if (test_and_clear_bit(VIC_TIMER_CPI, &vic_cpi_mailbox[cpu]))
1049 wrapper_smp_local_timer_interrupt();
1050 if (test_and_clear_bit(VIC_INVALIDATE_CPI, &vic_cpi_mailbox[cpu]))
1051 smp_invalidate_interrupt();
1052 if (test_and_clear_bit(VIC_RESCHEDULE_CPI, &vic_cpi_mailbox[cpu]))
1053 smp_reschedule_interrupt();
1054 if (test_and_clear_bit(VIC_ENABLE_IRQ_CPI, &vic_cpi_mailbox[cpu]))
1055 smp_enable_irq_interrupt();
1056 if (test_and_clear_bit(VIC_CALL_FUNCTION_CPI, &vic_cpi_mailbox[cpu]))
1057 smp_call_function_interrupt();
1058 if (test_and_clear_bit(VIC_CALL_FUNCTION_SINGLE_CPI, &vic_cpi_mailbox[cpu]))
1059 smp_call_function_single_interrupt();
1060 set_irq_regs(old_regs);
1061}
1062
1063static void do_flush_tlb_all(void *info)
1064{
1065 unsigned long cpu = smp_processor_id();
1066
1067 __flush_tlb_all();
1068 if (per_cpu(cpu_tlbstate, cpu).state == TLBSTATE_LAZY)
1069 voyager_leave_mm(cpu);
1070}
1071
1072/* flush the TLB of every active CPU in the system */
1073void flush_tlb_all(void)
1074{
1075 on_each_cpu(do_flush_tlb_all, 0, 1);
1076}
1077
1078/* send a reschedule CPI to one CPU by physical CPU number*/
1079static void voyager_smp_send_reschedule(int cpu)
1080{
1081 send_one_CPI(cpu, VIC_RESCHEDULE_CPI);
1082}
1083
1084int hard_smp_processor_id(void)
1085{
1086 __u8 i;
1087 __u8 cpumask = inb(VIC_PROC_WHO_AM_I);
1088 if ((cpumask & QUAD_IDENTIFIER) == QUAD_IDENTIFIER)
1089 return cpumask & 0x1F;
1090
1091 for (i = 0; i < 8; i++) {
1092 if (cpumask & (1 << i))
1093 return i;
1094 }
1095 printk("** WARNING ** Illegal cpuid returned by VIC: %d", cpumask);
1096 return 0;
1097}
1098
1099int safe_smp_processor_id(void)
1100{
1101 return hard_smp_processor_id();
1102}
1103
1104/* broadcast a halt to all other CPUs */
1105static void voyager_smp_send_stop(void)
1106{
1107 smp_call_function(smp_stop_cpu_function, NULL, 1);
1108}
1109
1110/* this function is triggered in time.c when a clock tick fires
1111 * we need to re-broadcast the tick to all CPUs */
1112void smp_vic_timer_interrupt(void)
1113{
1114 send_CPI_allbutself(VIC_TIMER_CPI);
1115 smp_local_timer_interrupt();
1116}
1117
1118/* local (per CPU) timer interrupt. It does both profiling and
1119 * process statistics/rescheduling.
1120 *
1121 * We do profiling in every local tick, statistics/rescheduling
1122 * happen only every 'profiling multiplier' ticks. The default
1123 * multiplier is 1 and it can be changed by writing the new multiplier
1124 * value into /proc/profile.
1125 */
1126void smp_local_timer_interrupt(void)
1127{
1128 int cpu = smp_processor_id();
1129 long weight;
1130
1131 profile_tick(CPU_PROFILING);
1132 if (--per_cpu(prof_counter, cpu) <= 0) {
1133 /*
1134 * The multiplier may have changed since the last time we got
1135 * to this point as a result of the user writing to
1136 * /proc/profile. In this case we need to adjust the APIC
1137 * timer accordingly.
1138 *
1139 * Interrupts are already masked off at this point.
1140 */
1141 per_cpu(prof_counter, cpu) = per_cpu(prof_multiplier, cpu);
1142 if (per_cpu(prof_counter, cpu) !=
1143 per_cpu(prof_old_multiplier, cpu)) {
1144 /* FIXME: need to update the vic timer tick here */
1145 per_cpu(prof_old_multiplier, cpu) =
1146 per_cpu(prof_counter, cpu);
1147 }
1148
1149 update_process_times(user_mode_vm(get_irq_regs()));
1150 }
1151
1152 if (((1 << cpu) & voyager_extended_vic_processors) == 0)
1153 /* only extended VIC processors participate in
1154 * interrupt distribution */
1155 return;
1156
1157 /*
1158 * We take the 'long' return path, and there every subsystem
1159 * grabs the appropriate locks (kernel lock/ irq lock).
1160 *
1161 * we might want to decouple profiling from the 'long path',
1162 * and do the profiling totally in assembly.
1163 *
1164 * Currently this isn't too much of an issue (performance wise),
1165 * we can take more than 100K local irqs per second on a 100 MHz P5.
1166 */
1167
1168 if ((++vic_tick[cpu] & 0x7) != 0)
1169 return;
1170 /* get here every 16 ticks (about every 1/6 of a second) */
1171
1172 /* Change our priority to give someone else a chance at getting
1173 * the IRQ. The algorithm goes like this:
1174 *
1175 * In the VIC, the dynamically routed interrupt is always
1176 * handled by the lowest priority eligible (i.e. receiving
1177 * interrupts) CPU. If >1 eligible CPUs are equal lowest, the
1178 * lowest processor number gets it.
1179 *
1180 * The priority of a CPU is controlled by a special per-CPU
1181 * VIC priority register which is 3 bits wide 0 being lowest
1182 * and 7 highest priority..
1183 *
1184 * Therefore we subtract the average number of interrupts from
1185 * the number we've fielded. If this number is negative, we
1186 * lower the activity count and if it is positive, we raise
1187 * it.
1188 *
1189 * I'm afraid this still leads to odd looking interrupt counts:
1190 * the totals are all roughly equal, but the individual ones
1191 * look rather skewed.
1192 *
1193 * FIXME: This algorithm is total crap when mixed with SMP
1194 * affinity code since we now try to even up the interrupt
1195 * counts when an affinity binding is keeping them on a
1196 * particular CPU*/
1197 weight = (vic_intr_count[cpu] * voyager_extended_cpus
1198 - vic_intr_total) >> 4;
1199 weight += 4;
1200 if (weight > 7)
1201 weight = 7;
1202 if (weight < 0)
1203 weight = 0;
1204
1205 outb((__u8) weight, VIC_PRIORITY_REGISTER);
1206
1207#ifdef VOYAGER_DEBUG
1208 if ((vic_tick[cpu] & 0xFFF) == 0) {
1209 /* print this message roughly every 25 secs */
1210 printk("VOYAGER SMP: vic_tick[%d] = %lu, weight = %ld\n",
1211 cpu, vic_tick[cpu], weight);
1212 }
1213#endif
1214}
1215
1216/* setup the profiling timer */
1217int setup_profiling_timer(unsigned int multiplier)
1218{
1219 int i;
1220
1221 if ((!multiplier))
1222 return -EINVAL;
1223
1224 /*
1225 * Set the new multiplier for each CPU. CPUs don't start using the
1226 * new values until the next timer interrupt in which they do process
1227 * accounting.
1228 */
1229 for (i = 0; i < nr_cpu_ids; ++i)
1230 per_cpu(prof_multiplier, i) = multiplier;
1231
1232 return 0;
1233}
1234
1235/* This is a bit of a mess, but forced on us by the genirq changes
1236 * there's no genirq handler that really does what voyager wants
1237 * so hack it up with the simple IRQ handler */
1238static void handle_vic_irq(unsigned int irq, struct irq_desc *desc)
1239{
1240 before_handle_vic_irq(irq);
1241 handle_simple_irq(irq, desc);
1242 after_handle_vic_irq(irq);
1243}
1244
1245/* The CPIs are handled in the per cpu 8259s, so they must be
1246 * enabled to be received: FIX: enabling the CPIs in the early
1247 * boot sequence interferes with bug checking; enable them later
1248 * on in smp_init */
1249#define VIC_SET_GATE(cpi, vector) \
1250 set_intr_gate((cpi) + VIC_DEFAULT_CPI_BASE, (vector))
1251#define QIC_SET_GATE(cpi, vector) \
1252 set_intr_gate((cpi) + QIC_DEFAULT_CPI_BASE, (vector))
1253
1254void __init voyager_smp_intr_init(void)
1255{
1256 int i;
1257
1258 /* initialize the per cpu irq mask to all disabled */
1259 for (i = 0; i < nr_cpu_ids; i++)
1260 vic_irq_mask[i] = 0xFFFF;
1261
1262 VIC_SET_GATE(VIC_CPI_LEVEL0, vic_cpi_interrupt);
1263
1264 VIC_SET_GATE(VIC_SYS_INT, vic_sys_interrupt);
1265 VIC_SET_GATE(VIC_CMN_INT, vic_cmn_interrupt);
1266
1267 QIC_SET_GATE(QIC_TIMER_CPI, qic_timer_interrupt);
1268 QIC_SET_GATE(QIC_INVALIDATE_CPI, qic_invalidate_interrupt);
1269 QIC_SET_GATE(QIC_RESCHEDULE_CPI, qic_reschedule_interrupt);
1270 QIC_SET_GATE(QIC_ENABLE_IRQ_CPI, qic_enable_irq_interrupt);
1271 QIC_SET_GATE(QIC_CALL_FUNCTION_CPI, qic_call_function_interrupt);
1272
1273 /* now put the VIC descriptor into the first 48 IRQs
1274 *
1275 * This is for later: first 16 correspond to PC IRQs; next 16
1276 * are Primary MC IRQs and final 16 are Secondary MC IRQs */
1277 for (i = 0; i < 48; i++)
1278 set_irq_chip_and_handler(i, &vic_chip, handle_vic_irq);
1279}
1280
1281/* send a CPI at level cpi to a set of cpus in cpuset (set 1 bit per
1282 * processor to receive CPI */
1283static void send_CPI(__u32 cpuset, __u8 cpi)
1284{
1285 int cpu;
1286 __u32 quad_cpuset = (cpuset & voyager_quad_processors);
1287
1288 if (cpi < VIC_START_FAKE_CPI) {
1289 /* fake CPI are only used for booting, so send to the
1290 * extended quads as well---Quads must be VIC booted */
1291 outb((__u8) (cpuset), VIC_CPI_Registers[cpi]);
1292 return;
1293 }
1294 if (quad_cpuset)
1295 send_QIC_CPI(quad_cpuset, cpi);
1296 cpuset &= ~quad_cpuset;
1297 cpuset &= 0xff; /* only first 8 CPUs vaild for VIC CPI */
1298 if (cpuset == 0)
1299 return;
1300 for_each_online_cpu(cpu) {
1301 if (cpuset & (1 << cpu))
1302 set_bit(cpi, &vic_cpi_mailbox[cpu]);
1303 }
1304 if (cpuset)
1305 outb((__u8) cpuset, VIC_CPI_Registers[VIC_CPI_LEVEL0]);
1306}
1307
1308/* Acknowledge receipt of CPI in the QIC, clear in QIC hardware and
1309 * set the cache line to shared by reading it.
1310 *
1311 * DON'T make this inline otherwise the cache line read will be
1312 * optimised away
1313 * */
1314static int ack_QIC_CPI(__u8 cpi)
1315{
1316 __u8 cpu = hard_smp_processor_id();
1317
1318 cpi &= 7;
1319
1320 outb(1 << cpi, QIC_INTERRUPT_CLEAR1);
1321 return voyager_quad_cpi_addr[cpu]->qic_cpi[cpi].cpi;
1322}
1323
1324static void ack_special_QIC_CPI(__u8 cpi)
1325{
1326 switch (cpi) {
1327 case VIC_CMN_INT:
1328 outb(QIC_CMN_INT, QIC_INTERRUPT_CLEAR0);
1329 break;
1330 case VIC_SYS_INT:
1331 outb(QIC_SYS_INT, QIC_INTERRUPT_CLEAR0);
1332 break;
1333 }
1334 /* also clear at the VIC, just in case (nop for non-extended proc) */
1335 ack_VIC_CPI(cpi);
1336}
1337
1338/* Acknowledge receipt of CPI in the VIC (essentially an EOI) */
1339static void ack_VIC_CPI(__u8 cpi)
1340{
1341#ifdef VOYAGER_DEBUG
1342 unsigned long flags;
1343 __u16 isr;
1344 __u8 cpu = smp_processor_id();
1345
1346 local_irq_save(flags);
1347 isr = vic_read_isr();
1348 if ((isr & (1 << (cpi & 7))) == 0) {
1349 printk("VOYAGER SMP: CPU%d lost CPI%d\n", cpu, cpi);
1350 }
1351#endif
1352 /* send specific EOI; the two system interrupts have
1353 * bit 4 set for a separate vector but behave as the
1354 * corresponding 3 bit intr */
1355 outb_p(0x60 | (cpi & 7), 0x20);
1356
1357#ifdef VOYAGER_DEBUG
1358 if ((vic_read_isr() & (1 << (cpi & 7))) != 0) {
1359 printk("VOYAGER SMP: CPU%d still asserting CPI%d\n", cpu, cpi);
1360 }
1361 local_irq_restore(flags);
1362#endif
1363}
1364
1365/* cribbed with thanks from irq.c */
1366#define __byte(x,y) (((unsigned char *)&(y))[x])
1367#define cached_21(cpu) (__byte(0,vic_irq_mask[cpu]))
1368#define cached_A1(cpu) (__byte(1,vic_irq_mask[cpu]))
1369
1370static unsigned int startup_vic_irq(unsigned int irq)
1371{
1372 unmask_vic_irq(irq);
1373
1374 return 0;
1375}
1376
1377/* The enable and disable routines. This is where we run into
1378 * conflicting architectural philosophy. Fundamentally, the voyager
1379 * architecture does not expect to have to disable interrupts globally
1380 * (the IRQ controllers belong to each CPU). The processor masquerade
1381 * which is used to start the system shouldn't be used in a running OS
1382 * since it will cause great confusion if two separate CPUs drive to
1383 * the same IRQ controller (I know, I've tried it).
1384 *
1385 * The solution is a variant on the NCR lazy SPL design:
1386 *
1387 * 1) To disable an interrupt, do nothing (other than set the
1388 * IRQ_DISABLED flag). This dares the interrupt actually to arrive.
1389 *
1390 * 2) If the interrupt dares to come in, raise the local mask against
1391 * it (this will result in all the CPU masks being raised
1392 * eventually).
1393 *
1394 * 3) To enable the interrupt, lower the mask on the local CPU and
1395 * broadcast an Interrupt enable CPI which causes all other CPUs to
1396 * adjust their masks accordingly. */
1397
1398static void unmask_vic_irq(unsigned int irq)
1399{
1400 /* linux doesn't to processor-irq affinity, so enable on
1401 * all CPUs we know about */
1402 int cpu = smp_processor_id(), real_cpu;
1403 __u16 mask = (1 << irq);
1404 __u32 processorList = 0;
1405 unsigned long flags;
1406
1407 VDEBUG(("VOYAGER: unmask_vic_irq(%d) CPU%d affinity 0x%lx\n",
1408 irq, cpu, cpu_irq_affinity[cpu]));
1409 spin_lock_irqsave(&vic_irq_lock, flags);
1410 for_each_online_cpu(real_cpu) {
1411 if (!(voyager_extended_vic_processors & (1 << real_cpu)))
1412 continue;
1413 if (!(cpu_irq_affinity[real_cpu] & mask)) {
1414 /* irq has no affinity for this CPU, ignore */
1415 continue;
1416 }
1417 if (real_cpu == cpu) {
1418 enable_local_vic_irq(irq);
1419 } else if (vic_irq_mask[real_cpu] & mask) {
1420 vic_irq_enable_mask[real_cpu] |= mask;
1421 processorList |= (1 << real_cpu);
1422 }
1423 }
1424 spin_unlock_irqrestore(&vic_irq_lock, flags);
1425 if (processorList)
1426 send_CPI(processorList, VIC_ENABLE_IRQ_CPI);
1427}
1428
1429static void mask_vic_irq(unsigned int irq)
1430{
1431 /* lazy disable, do nothing */
1432}
1433
1434static void enable_local_vic_irq(unsigned int irq)
1435{
1436 __u8 cpu = smp_processor_id();
1437 __u16 mask = ~(1 << irq);
1438 __u16 old_mask = vic_irq_mask[cpu];
1439
1440 vic_irq_mask[cpu] &= mask;
1441 if (vic_irq_mask[cpu] == old_mask)
1442 return;
1443
1444 VDEBUG(("VOYAGER DEBUG: Enabling irq %d in hardware on CPU %d\n",
1445 irq, cpu));
1446
1447 if (irq & 8) {
1448 outb_p(cached_A1(cpu), 0xA1);
1449 (void)inb_p(0xA1);
1450 } else {
1451 outb_p(cached_21(cpu), 0x21);
1452 (void)inb_p(0x21);
1453 }
1454}
1455
1456static void disable_local_vic_irq(unsigned int irq)
1457{
1458 __u8 cpu = smp_processor_id();
1459 __u16 mask = (1 << irq);
1460 __u16 old_mask = vic_irq_mask[cpu];
1461
1462 if (irq == 7)
1463 return;
1464
1465 vic_irq_mask[cpu] |= mask;
1466 if (old_mask == vic_irq_mask[cpu])
1467 return;
1468
1469 VDEBUG(("VOYAGER DEBUG: Disabling irq %d in hardware on CPU %d\n",
1470 irq, cpu));
1471
1472 if (irq & 8) {
1473 outb_p(cached_A1(cpu), 0xA1);
1474 (void)inb_p(0xA1);
1475 } else {
1476 outb_p(cached_21(cpu), 0x21);
1477 (void)inb_p(0x21);
1478 }
1479}
1480
1481/* The VIC is level triggered, so the ack can only be issued after the
1482 * interrupt completes. However, we do Voyager lazy interrupt
1483 * handling here: It is an extremely expensive operation to mask an
1484 * interrupt in the vic, so we merely set a flag (IRQ_DISABLED). If
1485 * this interrupt actually comes in, then we mask and ack here to push
1486 * the interrupt off to another CPU */
1487static void before_handle_vic_irq(unsigned int irq)
1488{
1489 irq_desc_t *desc = irq_to_desc(irq);
1490 __u8 cpu = smp_processor_id();
1491
1492 _raw_spin_lock(&vic_irq_lock);
1493 vic_intr_total++;
1494 vic_intr_count[cpu]++;
1495
1496 if (!(cpu_irq_affinity[cpu] & (1 << irq))) {
1497 /* The irq is not in our affinity mask, push it off
1498 * onto another CPU */
1499 VDEBUG(("VOYAGER DEBUG: affinity triggered disable of irq %d "
1500 "on cpu %d\n", irq, cpu));
1501 disable_local_vic_irq(irq);
1502 /* set IRQ_INPROGRESS to prevent the handler in irq.c from
1503 * actually calling the interrupt routine */
1504 desc->status |= IRQ_REPLAY | IRQ_INPROGRESS;
1505 } else if (desc->status & IRQ_DISABLED) {
1506 /* Damn, the interrupt actually arrived, do the lazy
1507 * disable thing. The interrupt routine in irq.c will
1508 * not handle a IRQ_DISABLED interrupt, so nothing more
1509 * need be done here */
1510 VDEBUG(("VOYAGER DEBUG: lazy disable of irq %d on CPU %d\n",
1511 irq, cpu));
1512 disable_local_vic_irq(irq);
1513 desc->status |= IRQ_REPLAY;
1514 } else {
1515 desc->status &= ~IRQ_REPLAY;
1516 }
1517
1518 _raw_spin_unlock(&vic_irq_lock);
1519}
1520
1521/* Finish the VIC interrupt: basically mask */
1522static void after_handle_vic_irq(unsigned int irq)
1523{
1524 irq_desc_t *desc = irq_to_desc(irq);
1525
1526 _raw_spin_lock(&vic_irq_lock);
1527 {
1528 unsigned int status = desc->status & ~IRQ_INPROGRESS;
1529#ifdef VOYAGER_DEBUG
1530 __u16 isr;
1531#endif
1532
1533 desc->status = status;
1534 if ((status & IRQ_DISABLED))
1535 disable_local_vic_irq(irq);
1536#ifdef VOYAGER_DEBUG
1537 /* DEBUG: before we ack, check what's in progress */
1538 isr = vic_read_isr();
1539 if ((isr & (1 << irq) && !(status & IRQ_REPLAY)) == 0) {
1540 int i;
1541 __u8 cpu = smp_processor_id();
1542 __u8 real_cpu;
1543 int mask; /* Um... initialize me??? --RR */
1544
1545 printk("VOYAGER SMP: CPU%d lost interrupt %d\n",
1546 cpu, irq);
1547 for_each_possible_cpu(real_cpu, mask) {
1548
1549 outb(VIC_CPU_MASQUERADE_ENABLE | real_cpu,
1550 VIC_PROCESSOR_ID);
1551 isr = vic_read_isr();
1552 if (isr & (1 << irq)) {
1553 printk
1554 ("VOYAGER SMP: CPU%d ack irq %d\n",
1555 real_cpu, irq);
1556 ack_vic_irq(irq);
1557 }
1558 outb(cpu, VIC_PROCESSOR_ID);
1559 }
1560 }
1561#endif /* VOYAGER_DEBUG */
1562 /* as soon as we ack, the interrupt is eligible for
1563 * receipt by another CPU so everything must be in
1564 * order here */
1565 ack_vic_irq(irq);
1566 if (status & IRQ_REPLAY) {
1567 /* replay is set if we disable the interrupt
1568 * in the before_handle_vic_irq() routine, so
1569 * clear the in progress bit here to allow the
1570 * next CPU to handle this correctly */
1571 desc->status &= ~(IRQ_REPLAY | IRQ_INPROGRESS);
1572 }
1573#ifdef VOYAGER_DEBUG
1574 isr = vic_read_isr();
1575 if ((isr & (1 << irq)) != 0)
1576 printk("VOYAGER SMP: after_handle_vic_irq() after "
1577 "ack irq=%d, isr=0x%x\n", irq, isr);
1578#endif /* VOYAGER_DEBUG */
1579 }
1580 _raw_spin_unlock(&vic_irq_lock);
1581
1582 /* All code after this point is out of the main path - the IRQ
1583 * may be intercepted by another CPU if reasserted */
1584}
1585
1586/* Linux processor - interrupt affinity manipulations.
1587 *
1588 * For each processor, we maintain a 32 bit irq affinity mask.
1589 * Initially it is set to all 1's so every processor accepts every
1590 * interrupt. In this call, we change the processor's affinity mask:
1591 *
1592 * Change from enable to disable:
1593 *
1594 * If the interrupt ever comes in to the processor, we will disable it
1595 * and ack it to push it off to another CPU, so just accept the mask here.
1596 *
1597 * Change from disable to enable:
1598 *
1599 * change the mask and then do an interrupt enable CPI to re-enable on
1600 * the selected processors */
1601
1602void set_vic_irq_affinity(unsigned int irq, cpumask_t mask)
1603{
1604 /* Only extended processors handle interrupts */
1605 unsigned long real_mask;
1606 unsigned long irq_mask = 1 << irq;
1607 int cpu;
1608
1609 real_mask = cpus_addr(mask)[0] & voyager_extended_vic_processors;
1610
1611 if (cpus_addr(mask)[0] == 0)
1612 /* can't have no CPUs to accept the interrupt -- extremely
1613 * bad things will happen */
1614 return;
1615
1616 if (irq == 0)
1617 /* can't change the affinity of the timer IRQ. This
1618 * is due to the constraint in the voyager
1619 * architecture that the CPI also comes in on and IRQ
1620 * line and we have chosen IRQ0 for this. If you
1621 * raise the mask on this interrupt, the processor
1622 * will no-longer be able to accept VIC CPIs */
1623 return;
1624
1625 if (irq >= 32)
1626 /* You can only have 32 interrupts in a voyager system
1627 * (and 32 only if you have a secondary microchannel
1628 * bus) */
1629 return;
1630
1631 for_each_online_cpu(cpu) {
1632 unsigned long cpu_mask = 1 << cpu;
1633
1634 if (cpu_mask & real_mask) {
1635 /* enable the interrupt for this cpu */
1636 cpu_irq_affinity[cpu] |= irq_mask;
1637 } else {
1638 /* disable the interrupt for this cpu */
1639 cpu_irq_affinity[cpu] &= ~irq_mask;
1640 }
1641 }
1642 /* this is magic, we now have the correct affinity maps, so
1643 * enable the interrupt. This will send an enable CPI to
1644 * those CPUs who need to enable it in their local masks,
1645 * causing them to correct for the new affinity . If the
1646 * interrupt is currently globally disabled, it will simply be
1647 * disabled again as it comes in (voyager lazy disable). If
1648 * the affinity map is tightened to disable the interrupt on a
1649 * cpu, it will be pushed off when it comes in */
1650 unmask_vic_irq(irq);
1651}
1652
1653static void ack_vic_irq(unsigned int irq)
1654{
1655 if (irq & 8) {
1656 outb(0x62, 0x20); /* Specific EOI to cascade */
1657 outb(0x60 | (irq & 7), 0xA0);
1658 } else {
1659 outb(0x60 | (irq & 7), 0x20);
1660 }
1661}
1662
1663/* enable the CPIs. In the VIC, the CPIs are delivered by the 8259
1664 * but are not vectored by it. This means that the 8259 mask must be
1665 * lowered to receive them */
1666static __init void vic_enable_cpi(void)
1667{
1668 __u8 cpu = smp_processor_id();
1669
1670 /* just take a copy of the current mask (nop for boot cpu) */
1671 vic_irq_mask[cpu] = vic_irq_mask[boot_cpu_id];
1672
1673 enable_local_vic_irq(VIC_CPI_LEVEL0);
1674 enable_local_vic_irq(VIC_CPI_LEVEL1);
1675 /* for sys int and cmn int */
1676 enable_local_vic_irq(7);
1677
1678 if (is_cpu_quad()) {
1679 outb(QIC_DEFAULT_MASK0, QIC_MASK_REGISTER0);
1680 outb(QIC_CPI_ENABLE, QIC_MASK_REGISTER1);
1681 VDEBUG(("VOYAGER SMP: QIC ENABLE CPI: CPU%d: MASK 0x%x\n",
1682 cpu, QIC_CPI_ENABLE));
1683 }
1684
1685 VDEBUG(("VOYAGER SMP: ENABLE CPI: CPU%d: MASK 0x%x\n",
1686 cpu, vic_irq_mask[cpu]));
1687}
1688
1689void voyager_smp_dump()
1690{
1691 int old_cpu = smp_processor_id(), cpu;
1692
1693 /* dump the interrupt masks of each processor */
1694 for_each_online_cpu(cpu) {
1695 __u16 imr, isr, irr;
1696 unsigned long flags;
1697
1698 local_irq_save(flags);
1699 outb(VIC_CPU_MASQUERADE_ENABLE | cpu, VIC_PROCESSOR_ID);
1700 imr = (inb(0xa1) << 8) | inb(0x21);
1701 outb(0x0a, 0xa0);
1702 irr = inb(0xa0) << 8;
1703 outb(0x0a, 0x20);
1704 irr |= inb(0x20);
1705 outb(0x0b, 0xa0);
1706 isr = inb(0xa0) << 8;
1707 outb(0x0b, 0x20);
1708 isr |= inb(0x20);
1709 outb(old_cpu, VIC_PROCESSOR_ID);
1710 local_irq_restore(flags);
1711 printk("\tCPU%d: mask=0x%x, IMR=0x%x, IRR=0x%x, ISR=0x%x\n",
1712 cpu, vic_irq_mask[cpu], imr, irr, isr);
1713#if 0
1714 /* These lines are put in to try to unstick an un ack'd irq */
1715 if (isr != 0) {
1716 int irq;
1717 for (irq = 0; irq < 16; irq++) {
1718 if (isr & (1 << irq)) {
1719 printk("\tCPU%d: ack irq %d\n",
1720 cpu, irq);
1721 local_irq_save(flags);
1722 outb(VIC_CPU_MASQUERADE_ENABLE | cpu,
1723 VIC_PROCESSOR_ID);
1724 ack_vic_irq(irq);
1725 outb(old_cpu, VIC_PROCESSOR_ID);
1726 local_irq_restore(flags);
1727 }
1728 }
1729 }
1730#endif
1731 }
1732}
1733
1734void smp_voyager_power_off(void *dummy)
1735{
1736 if (smp_processor_id() == boot_cpu_id)
1737 voyager_power_off();
1738 else
1739 smp_stop_cpu_function(NULL);
1740}
1741
1742static void __init voyager_smp_prepare_cpus(unsigned int max_cpus)
1743{
1744 /* FIXME: ignore max_cpus for now */
1745 smp_boot_cpus();
1746}
1747
1748static void __cpuinit voyager_smp_prepare_boot_cpu(void)
1749{
1750 init_gdt(smp_processor_id());
1751 switch_to_new_gdt();
1752
1753 cpu_set(smp_processor_id(), cpu_online_map);
1754 cpu_set(smp_processor_id(), cpu_callout_map);
1755 cpu_set(smp_processor_id(), cpu_possible_map);
1756 cpu_set(smp_processor_id(), cpu_present_map);
1757}
1758
1759static int __cpuinit voyager_cpu_up(unsigned int cpu)
1760{
1761 /* This only works at boot for x86. See "rewrite" above. */
1762 if (cpu_isset(cpu, smp_commenced_mask))
1763 return -ENOSYS;
1764
1765 /* In case one didn't come up */
1766 if (!cpu_isset(cpu, cpu_callin_map))
1767 return -EIO;
1768 /* Unleash the CPU! */
1769 cpu_set(cpu, smp_commenced_mask);
1770 while (!cpu_online(cpu))
1771 mb();
1772 return 0;
1773}
1774
1775static void __init voyager_smp_cpus_done(unsigned int max_cpus)
1776{
1777 zap_low_mappings();
1778}
1779
1780void __init smp_setup_processor_id(void)
1781{
1782 current_thread_info()->cpu = hard_smp_processor_id();
1783 x86_write_percpu(cpu_number, hard_smp_processor_id());
1784}
1785
1786static void voyager_send_call_func(cpumask_t callmask)
1787{
1788 __u32 mask = cpus_addr(callmask)[0] & ~(1 << smp_processor_id());
1789 send_CPI(mask, VIC_CALL_FUNCTION_CPI);
1790}
1791
1792static void voyager_send_call_func_single(int cpu)
1793{
1794 send_CPI(1 << cpu, VIC_CALL_FUNCTION_SINGLE_CPI);
1795}
1796
1797struct smp_ops smp_ops = {
1798 .smp_prepare_boot_cpu = voyager_smp_prepare_boot_cpu,
1799 .smp_prepare_cpus = voyager_smp_prepare_cpus,
1800 .cpu_up = voyager_cpu_up,
1801 .smp_cpus_done = voyager_smp_cpus_done,
1802
1803 .smp_send_stop = voyager_smp_send_stop,
1804 .smp_send_reschedule = voyager_smp_send_reschedule,
1805
1806 .send_call_func_ipi = voyager_send_call_func,
1807 .send_call_func_single_ipi = voyager_send_call_func_single,
1808};
diff --git a/arch/x86/mach-voyager/voyager_thread.c b/arch/x86/mach-voyager/voyager_thread.c
deleted file mode 100644
index 15464a20fb38..000000000000
--- a/arch/x86/mach-voyager/voyager_thread.c
+++ /dev/null
@@ -1,128 +0,0 @@
1/* -*- mode: c; c-basic-offset: 8 -*- */
2
3/* Copyright (C) 2001
4 *
5 * Author: J.E.J.Bottomley@HansenPartnership.com
6 *
7 * This module provides the machine status monitor thread for the
8 * voyager architecture. This allows us to monitor the machine
9 * environment (temp, voltage, fan function) and the front panel and
10 * internal UPS. If a fault is detected, this thread takes corrective
11 * action (usually just informing init)
12 * */
13
14#include <linux/module.h>
15#include <linux/mm.h>
16#include <linux/kernel_stat.h>
17#include <linux/delay.h>
18#include <linux/mc146818rtc.h>
19#include <linux/init.h>
20#include <linux/bootmem.h>
21#include <linux/kmod.h>
22#include <linux/completion.h>
23#include <linux/sched.h>
24#include <linux/kthread.h>
25#include <asm/desc.h>
26#include <asm/voyager.h>
27#include <asm/vic.h>
28#include <asm/mtrr.h>
29#include <asm/msr.h>
30
31struct task_struct *voyager_thread;
32static __u8 set_timeout;
33
34static int execute(const char *string)
35{
36 int ret;
37
38 char *envp[] = {
39 "HOME=/",
40 "TERM=linux",
41 "PATH=/sbin:/usr/sbin:/bin:/usr/bin",
42 NULL,
43 };
44 char *argv[] = {
45 "/bin/bash",
46 "-c",
47 (char *)string,
48 NULL,
49 };
50
51 if ((ret =
52 call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC)) != 0) {
53 printk(KERN_ERR "Voyager failed to run \"%s\": %i\n", string,
54 ret);
55 }
56 return ret;
57}
58
59static void check_from_kernel(void)
60{
61 if (voyager_status.switch_off) {
62
63 /* FIXME: This should be configurable via proc */
64 execute("umask 600; echo 0 > /etc/initrunlvl; kill -HUP 1");
65 } else if (voyager_status.power_fail) {
66 VDEBUG(("Voyager daemon detected AC power failure\n"));
67
68 /* FIXME: This should be configureable via proc */
69 execute("umask 600; echo F > /etc/powerstatus; kill -PWR 1");
70 set_timeout = 1;
71 }
72}
73
74static void check_continuing_condition(void)
75{
76 if (voyager_status.power_fail) {
77 __u8 data;
78 voyager_cat_psi(VOYAGER_PSI_SUBREAD,
79 VOYAGER_PSI_AC_FAIL_REG, &data);
80 if ((data & 0x1f) == 0) {
81 /* all power restored */
82 printk(KERN_NOTICE
83 "VOYAGER AC power restored, cancelling shutdown\n");
84 /* FIXME: should be user configureable */
85 execute
86 ("umask 600; echo O > /etc/powerstatus; kill -PWR 1");
87 set_timeout = 0;
88 }
89 }
90}
91
92static int thread(void *unused)
93{
94 printk(KERN_NOTICE "Voyager starting monitor thread\n");
95
96 for (;;) {
97 set_current_state(TASK_INTERRUPTIBLE);
98 schedule_timeout(set_timeout ? HZ : MAX_SCHEDULE_TIMEOUT);
99
100 VDEBUG(("Voyager Daemon awoken\n"));
101 if (voyager_status.request_from_kernel == 0) {
102 /* probably awoken from timeout */
103 check_continuing_condition();
104 } else {
105 check_from_kernel();
106 voyager_status.request_from_kernel = 0;
107 }
108 }
109}
110
111static int __init voyager_thread_start(void)
112{
113 voyager_thread = kthread_run(thread, NULL, "kvoyagerd");
114 if (IS_ERR(voyager_thread)) {
115 printk(KERN_ERR
116 "Voyager: Failed to create system monitor thread.\n");
117 return PTR_ERR(voyager_thread);
118 }
119 return 0;
120}
121
122static void __exit voyager_thread_stop(void)
123{
124 kthread_stop(voyager_thread);
125}
126
127module_init(voyager_thread_start);
128module_exit(voyager_thread_stop);
diff --git a/arch/x86/math-emu/fpu_entry.c b/arch/x86/math-emu/fpu_entry.c
index c7b06feb139b..5d87f586f8d7 100644
--- a/arch/x86/math-emu/fpu_entry.c
+++ b/arch/x86/math-emu/fpu_entry.c
@@ -131,7 +131,7 @@ u_char emulating = 0;
131static int valid_prefix(u_char *Byte, u_char __user ** fpu_eip, 131static int valid_prefix(u_char *Byte, u_char __user ** fpu_eip,
132 overrides * override); 132 overrides * override);
133 133
134asmlinkage void math_emulate(long arg) 134void math_emulate(struct math_emu_info *info)
135{ 135{
136 u_char FPU_modrm, byte1; 136 u_char FPU_modrm, byte1;
137 unsigned short code; 137 unsigned short code;
@@ -161,7 +161,7 @@ asmlinkage void math_emulate(long arg)
161 RE_ENTRANT_CHECK_ON; 161 RE_ENTRANT_CHECK_ON;
162#endif /* RE_ENTRANT_CHECKING */ 162#endif /* RE_ENTRANT_CHECKING */
163 163
164 SETUP_DATA_AREA(arg); 164 FPU_info = info;
165 165
166 FPU_ORIG_EIP = FPU_EIP; 166 FPU_ORIG_EIP = FPU_EIP;
167 167
@@ -659,7 +659,7 @@ static int valid_prefix(u_char *Byte, u_char __user **fpu_eip,
659 } 659 }
660} 660}
661 661
662void math_abort(struct info *info, unsigned int signal) 662void math_abort(struct math_emu_info *info, unsigned int signal)
663{ 663{
664 FPU_EIP = FPU_ORIG_EIP; 664 FPU_EIP = FPU_ORIG_EIP;
665 current->thread.trap_no = 16; 665 current->thread.trap_no = 16;
diff --git a/arch/x86/math-emu/fpu_proto.h b/arch/x86/math-emu/fpu_proto.h
index aa49b6a0d850..9779df436b7d 100644
--- a/arch/x86/math-emu/fpu_proto.h
+++ b/arch/x86/math-emu/fpu_proto.h
@@ -51,8 +51,8 @@ extern void ffreep(void);
51extern void fst_i_(void); 51extern void fst_i_(void);
52extern void fstp_i(void); 52extern void fstp_i(void);
53/* fpu_entry.c */ 53/* fpu_entry.c */
54asmlinkage extern void math_emulate(long arg); 54extern void math_emulate(struct math_emu_info *info);
55extern void math_abort(struct info *info, unsigned int signal); 55extern void math_abort(struct math_emu_info *info, unsigned int signal);
56/* fpu_etc.c */ 56/* fpu_etc.c */
57extern void FPU_etc(void); 57extern void FPU_etc(void);
58/* fpu_tags.c */ 58/* fpu_tags.c */
diff --git a/arch/x86/math-emu/fpu_system.h b/arch/x86/math-emu/fpu_system.h
index 13488fa153e0..50fa0ec2c8a5 100644
--- a/arch/x86/math-emu/fpu_system.h
+++ b/arch/x86/math-emu/fpu_system.h
@@ -16,10 +16,6 @@
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/mm.h> 17#include <linux/mm.h>
18 18
19/* This sets the pointer FPU_info to point to the argument part
20 of the stack frame of math_emulate() */
21#define SETUP_DATA_AREA(arg) FPU_info = (struct info *) &arg
22
23/* s is always from a cpu register, and the cpu does bounds checking 19/* s is always from a cpu register, and the cpu does bounds checking
24 * during register load --> no further bounds checks needed */ 20 * during register load --> no further bounds checks needed */
25#define LDT_DESCRIPTOR(s) (((struct desc_struct *)current->mm->context.ldt)[(s) >> 3]) 21#define LDT_DESCRIPTOR(s) (((struct desc_struct *)current->mm->context.ldt)[(s) >> 3])
@@ -38,12 +34,12 @@
38#define I387 (current->thread.xstate) 34#define I387 (current->thread.xstate)
39#define FPU_info (I387->soft.info) 35#define FPU_info (I387->soft.info)
40 36
41#define FPU_CS (*(unsigned short *) &(FPU_info->___cs)) 37#define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs))
42#define FPU_SS (*(unsigned short *) &(FPU_info->___ss)) 38#define FPU_SS (*(unsigned short *) &(FPU_info->regs->ss))
43#define FPU_DS (*(unsigned short *) &(FPU_info->___ds)) 39#define FPU_DS (*(unsigned short *) &(FPU_info->regs->ds))
44#define FPU_EAX (FPU_info->___eax) 40#define FPU_EAX (FPU_info->regs->ax)
45#define FPU_EFLAGS (FPU_info->___eflags) 41#define FPU_EFLAGS (FPU_info->regs->flags)
46#define FPU_EIP (FPU_info->___eip) 42#define FPU_EIP (FPU_info->regs->ip)
47#define FPU_ORIG_EIP (FPU_info->___orig_eip) 43#define FPU_ORIG_EIP (FPU_info->___orig_eip)
48 44
49#define FPU_lookahead (I387->soft.lookahead) 45#define FPU_lookahead (I387->soft.lookahead)
diff --git a/arch/x86/math-emu/get_address.c b/arch/x86/math-emu/get_address.c
index d701e2b39e44..6ef5e99380f9 100644
--- a/arch/x86/math-emu/get_address.c
+++ b/arch/x86/math-emu/get_address.c
@@ -29,46 +29,43 @@
29#define FPU_WRITE_BIT 0x10 29#define FPU_WRITE_BIT 0x10
30 30
31static int reg_offset[] = { 31static int reg_offset[] = {
32 offsetof(struct info, ___eax), 32 offsetof(struct pt_regs, ax),
33 offsetof(struct info, ___ecx), 33 offsetof(struct pt_regs, cx),
34 offsetof(struct info, ___edx), 34 offsetof(struct pt_regs, dx),
35 offsetof(struct info, ___ebx), 35 offsetof(struct pt_regs, bx),
36 offsetof(struct info, ___esp), 36 offsetof(struct pt_regs, sp),
37 offsetof(struct info, ___ebp), 37 offsetof(struct pt_regs, bp),
38 offsetof(struct info, ___esi), 38 offsetof(struct pt_regs, si),
39 offsetof(struct info, ___edi) 39 offsetof(struct pt_regs, di)
40}; 40};
41 41
42#define REG_(x) (*(long *)(reg_offset[(x)]+(u_char *) FPU_info)) 42#define REG_(x) (*(long *)(reg_offset[(x)] + (u_char *)FPU_info->regs))
43 43
44static int reg_offset_vm86[] = { 44static int reg_offset_vm86[] = {
45 offsetof(struct info, ___cs), 45 offsetof(struct pt_regs, cs),
46 offsetof(struct info, ___vm86_ds), 46 offsetof(struct kernel_vm86_regs, ds),
47 offsetof(struct info, ___vm86_es), 47 offsetof(struct kernel_vm86_regs, es),
48 offsetof(struct info, ___vm86_fs), 48 offsetof(struct kernel_vm86_regs, fs),
49 offsetof(struct info, ___vm86_gs), 49 offsetof(struct kernel_vm86_regs, gs),
50 offsetof(struct info, ___ss), 50 offsetof(struct pt_regs, ss),
51 offsetof(struct info, ___vm86_ds) 51 offsetof(struct kernel_vm86_regs, ds)
52}; 52};
53 53
54#define VM86_REG_(x) (*(unsigned short *) \ 54#define VM86_REG_(x) (*(unsigned short *) \
55 (reg_offset_vm86[((unsigned)x)]+(u_char *) FPU_info)) 55 (reg_offset_vm86[((unsigned)x)] + (u_char *)FPU_info->regs))
56
57/* This dummy, gs is not saved on the stack. */
58#define ___GS ___ds
59 56
60static int reg_offset_pm[] = { 57static int reg_offset_pm[] = {
61 offsetof(struct info, ___cs), 58 offsetof(struct pt_regs, cs),
62 offsetof(struct info, ___ds), 59 offsetof(struct pt_regs, ds),
63 offsetof(struct info, ___es), 60 offsetof(struct pt_regs, es),
64 offsetof(struct info, ___fs), 61 offsetof(struct pt_regs, fs),
65 offsetof(struct info, ___GS), 62 offsetof(struct pt_regs, ds), /* dummy, not saved on stack */
66 offsetof(struct info, ___ss), 63 offsetof(struct pt_regs, ss),
67 offsetof(struct info, ___ds) 64 offsetof(struct pt_regs, ds)
68}; 65};
69 66
70#define PM_REG_(x) (*(unsigned short *) \ 67#define PM_REG_(x) (*(unsigned short *) \
71 (reg_offset_pm[((unsigned)x)]+(u_char *) FPU_info)) 68 (reg_offset_pm[((unsigned)x)] + (u_char *)FPU_info->regs))
72 69
73/* Decode the SIB byte. This function assumes mod != 0 */ 70/* Decode the SIB byte. This function assumes mod != 0 */
74static int sib(int mod, unsigned long *fpu_eip) 71static int sib(int mod, unsigned long *fpu_eip)
@@ -153,11 +150,9 @@ static long pm_address(u_char FPU_modrm, u_char segment,
153#endif /* PARANOID */ 150#endif /* PARANOID */
154 151
155 switch (segment) { 152 switch (segment) {
156 /* gs isn't used by the kernel, so it still has its
157 user-space value. */
158 case PREFIX_GS_ - 1: 153 case PREFIX_GS_ - 1:
159 /* N.B. - movl %seg, mem is a 2 byte write regardless of prefix */ 154 /* user gs handling can be lazy, use special accessors */
160 savesegment(gs, addr->selector); 155 addr->selector = get_user_gs(FPU_info->regs);
161 break; 156 break;
162 default: 157 default:
163 addr->selector = PM_REG_(segment); 158 addr->selector = PM_REG_(segment);
@@ -349,34 +344,34 @@ void __user *FPU_get_address_16(u_char FPU_modrm, unsigned long *fpu_eip,
349 } 344 }
350 switch (rm) { 345 switch (rm) {
351 case 0: 346 case 0:
352 address += FPU_info->___ebx + FPU_info->___esi; 347 address += FPU_info->regs->bx + FPU_info->regs->si;
353 break; 348 break;
354 case 1: 349 case 1:
355 address += FPU_info->___ebx + FPU_info->___edi; 350 address += FPU_info->regs->bx + FPU_info->regs->di;
356 break; 351 break;
357 case 2: 352 case 2:
358 address += FPU_info->___ebp + FPU_info->___esi; 353 address += FPU_info->regs->bp + FPU_info->regs->si;
359 if (addr_modes.override.segment == PREFIX_DEFAULT) 354 if (addr_modes.override.segment == PREFIX_DEFAULT)
360 addr_modes.override.segment = PREFIX_SS_; 355 addr_modes.override.segment = PREFIX_SS_;
361 break; 356 break;
362 case 3: 357 case 3:
363 address += FPU_info->___ebp + FPU_info->___edi; 358 address += FPU_info->regs->bp + FPU_info->regs->di;
364 if (addr_modes.override.segment == PREFIX_DEFAULT) 359 if (addr_modes.override.segment == PREFIX_DEFAULT)
365 addr_modes.override.segment = PREFIX_SS_; 360 addr_modes.override.segment = PREFIX_SS_;
366 break; 361 break;
367 case 4: 362 case 4:
368 address += FPU_info->___esi; 363 address += FPU_info->regs->si;
369 break; 364 break;
370 case 5: 365 case 5:
371 address += FPU_info->___edi; 366 address += FPU_info->regs->di;
372 break; 367 break;
373 case 6: 368 case 6:
374 address += FPU_info->___ebp; 369 address += FPU_info->regs->bp;
375 if (addr_modes.override.segment == PREFIX_DEFAULT) 370 if (addr_modes.override.segment == PREFIX_DEFAULT)
376 addr_modes.override.segment = PREFIX_SS_; 371 addr_modes.override.segment = PREFIX_SS_;
377 break; 372 break;
378 case 7: 373 case 7:
379 address += FPU_info->___ebx; 374 address += FPU_info->regs->bx;
380 break; 375 break;
381 } 376 }
382 377
diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
index d8cc96a2738f..08537747cb58 100644
--- a/arch/x86/mm/Makefile
+++ b/arch/x86/mm/Makefile
@@ -1,6 +1,8 @@
1obj-y := init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \ 1obj-y := init.o init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \
2 pat.o pgtable.o gup.o 2 pat.o pgtable.o gup.o
3 3
4obj-$(CONFIG_SMP) += tlb.o
5
4obj-$(CONFIG_X86_32) += pgtable_32.o iomap_32.o 6obj-$(CONFIG_X86_32) += pgtable_32.o iomap_32.o
5 7
6obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o 8obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
index 7e8db53528a7..61b41ca3b5a2 100644
--- a/arch/x86/mm/extable.c
+++ b/arch/x86/mm/extable.c
@@ -23,6 +23,12 @@ int fixup_exception(struct pt_regs *regs)
23 23
24 fixup = search_exception_tables(regs->ip); 24 fixup = search_exception_tables(regs->ip);
25 if (fixup) { 25 if (fixup) {
26 /* If fixup is less than 16, it means uaccess error */
27 if (fixup->fixup < 16) {
28 current_thread_info()->uaccess_err = -EFAULT;
29 regs->ip += fixup->fixup;
30 return 1;
31 }
26 regs->ip = fixup->fixup; 32 regs->ip = fixup->fixup;
27 return 1; 33 return 1;
28 } 34 }
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 9e268b6b204e..a03b7279efa0 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -1,73 +1,79 @@
1/* 1/*
2 * Copyright (C) 1995 Linus Torvalds 2 * Copyright (C) 1995 Linus Torvalds
3 * Copyright (C) 2001,2002 Andi Kleen, SuSE Labs. 3 * Copyright (C) 2001, 2002 Andi Kleen, SuSE Labs.
4 * Copyright (C) 2008-2009, Red Hat Inc., Ingo Molnar
4 */ 5 */
5
6#include <linux/signal.h>
7#include <linux/sched.h>
8#include <linux/kernel.h>
9#include <linux/errno.h>
10#include <linux/string.h>
11#include <linux/types.h>
12#include <linux/ptrace.h>
13#include <linux/mmiotrace.h>
14#include <linux/mman.h>
15#include <linux/mm.h>
16#include <linux/smp.h>
17#include <linux/interrupt.h> 6#include <linux/interrupt.h>
18#include <linux/init.h> 7#include <linux/mmiotrace.h>
19#include <linux/tty.h> 8#include <linux/bootmem.h>
20#include <linux/vt_kern.h> /* For unblank_screen() */
21#include <linux/compiler.h> 9#include <linux/compiler.h>
22#include <linux/highmem.h> 10#include <linux/highmem.h>
23#include <linux/bootmem.h> /* for max_low_pfn */
24#include <linux/vmalloc.h>
25#include <linux/module.h>
26#include <linux/kprobes.h> 11#include <linux/kprobes.h>
27#include <linux/uaccess.h> 12#include <linux/uaccess.h>
13#include <linux/vmalloc.h>
14#include <linux/vt_kern.h>
15#include <linux/signal.h>
16#include <linux/kernel.h>
17#include <linux/ptrace.h>
18#include <linux/string.h>
19#include <linux/module.h>
28#include <linux/kdebug.h> 20#include <linux/kdebug.h>
21#include <linux/errno.h>
22#include <linux/magic.h>
23#include <linux/sched.h>
24#include <linux/types.h>
25#include <linux/init.h>
26#include <linux/mman.h>
27#include <linux/tty.h>
28#include <linux/smp.h>
29#include <linux/mm.h>
30
31#include <asm-generic/sections.h>
29 32
30#include <asm/system.h>
31#include <asm/desc.h>
32#include <asm/segment.h>
33#include <asm/pgalloc.h>
34#include <asm/smp.h>
35#include <asm/tlbflush.h> 33#include <asm/tlbflush.h>
34#include <asm/pgalloc.h>
35#include <asm/segment.h>
36#include <asm/system.h>
36#include <asm/proto.h> 37#include <asm/proto.h>
37#include <asm-generic/sections.h>
38#include <asm/traps.h> 38#include <asm/traps.h>
39#include <asm/desc.h>
39 40
40/* 41/*
41 * Page fault error code bits 42 * Page fault error code bits:
42 * bit 0 == 0 means no page found, 1 means protection fault 43 *
43 * bit 1 == 0 means read, 1 means write 44 * bit 0 == 0: no page found 1: protection fault
44 * bit 2 == 0 means kernel, 1 means user-mode 45 * bit 1 == 0: read access 1: write access
45 * bit 3 == 1 means use of reserved bit detected 46 * bit 2 == 0: kernel-mode access 1: user-mode access
46 * bit 4 == 1 means fault was an instruction fetch 47 * bit 3 == 1: use of reserved bit detected
48 * bit 4 == 1: fault was an instruction fetch
47 */ 49 */
48#define PF_PROT (1<<0) 50enum x86_pf_error_code {
49#define PF_WRITE (1<<1) 51
50#define PF_USER (1<<2) 52 PF_PROT = 1 << 0,
51#define PF_RSVD (1<<3) 53 PF_WRITE = 1 << 1,
52#define PF_INSTR (1<<4) 54 PF_USER = 1 << 2,
55 PF_RSVD = 1 << 3,
56 PF_INSTR = 1 << 4,
57};
53 58
59/*
60 * Returns 0 if mmiotrace is disabled, or if the fault is not
61 * handled by mmiotrace:
62 */
54static inline int kmmio_fault(struct pt_regs *regs, unsigned long addr) 63static inline int kmmio_fault(struct pt_regs *regs, unsigned long addr)
55{ 64{
56#ifdef CONFIG_MMIOTRACE
57 if (unlikely(is_kmmio_active())) 65 if (unlikely(is_kmmio_active()))
58 if (kmmio_handler(regs, addr) == 1) 66 if (kmmio_handler(regs, addr) == 1)
59 return -1; 67 return -1;
60#endif
61 return 0; 68 return 0;
62} 69}
63 70
64static inline int notify_page_fault(struct pt_regs *regs) 71static inline int notify_page_fault(struct pt_regs *regs)
65{ 72{
66#ifdef CONFIG_KPROBES
67 int ret = 0; 73 int ret = 0;
68 74
69 /* kprobe_running() needs smp_processor_id() */ 75 /* kprobe_running() needs smp_processor_id() */
70 if (!user_mode_vm(regs)) { 76 if (kprobes_built_in() && !user_mode_vm(regs)) {
71 preempt_disable(); 77 preempt_disable();
72 if (kprobe_running() && kprobe_fault_handler(regs, 14)) 78 if (kprobe_running() && kprobe_fault_handler(regs, 14))
73 ret = 1; 79 ret = 1;
@@ -75,29 +81,76 @@ static inline int notify_page_fault(struct pt_regs *regs)
75 } 81 }
76 82
77 return ret; 83 return ret;
78#else
79 return 0;
80#endif
81} 84}
82 85
83/* 86/*
84 * X86_32 87 * Prefetch quirks:
85 * Sometimes AMD Athlon/Opteron CPUs report invalid exceptions on prefetch. 88 *
86 * Check that here and ignore it. 89 * 32-bit mode:
90 *
91 * Sometimes AMD Athlon/Opteron CPUs report invalid exceptions on prefetch.
92 * Check that here and ignore it.
93 *
94 * 64-bit mode:
87 * 95 *
88 * X86_64 96 * Sometimes the CPU reports invalid exceptions on prefetch.
89 * Sometimes the CPU reports invalid exceptions on prefetch. 97 * Check that here and ignore it.
90 * Check that here and ignore it.
91 * 98 *
92 * Opcode checker based on code by Richard Brunner 99 * Opcode checker based on code by Richard Brunner.
93 */ 100 */
94static int is_prefetch(struct pt_regs *regs, unsigned long addr, 101static inline int
95 unsigned long error_code) 102check_prefetch_opcode(struct pt_regs *regs, unsigned char *instr,
103 unsigned char opcode, int *prefetch)
96{ 104{
105 unsigned char instr_hi = opcode & 0xf0;
106 unsigned char instr_lo = opcode & 0x0f;
107
108 switch (instr_hi) {
109 case 0x20:
110 case 0x30:
111 /*
112 * Values 0x26,0x2E,0x36,0x3E are valid x86 prefixes.
113 * In X86_64 long mode, the CPU will signal invalid
114 * opcode if some of these prefixes are present so
115 * X86_64 will never get here anyway
116 */
117 return ((instr_lo & 7) == 0x6);
118#ifdef CONFIG_X86_64
119 case 0x40:
120 /*
121 * In AMD64 long mode 0x40..0x4F are valid REX prefixes
122 * Need to figure out under what instruction mode the
123 * instruction was issued. Could check the LDT for lm,
124 * but for now it's good enough to assume that long
125 * mode only uses well known segments or kernel.
126 */
127 return (!user_mode(regs)) || (regs->cs == __USER_CS);
128#endif
129 case 0x60:
130 /* 0x64 thru 0x67 are valid prefixes in all modes. */
131 return (instr_lo & 0xC) == 0x4;
132 case 0xF0:
133 /* 0xF0, 0xF2, 0xF3 are valid prefixes in all modes. */
134 return !instr_lo || (instr_lo>>1) == 1;
135 case 0x00:
136 /* Prefetch instruction is 0x0F0D or 0x0F18 */
137 if (probe_kernel_address(instr, opcode))
138 return 0;
139
140 *prefetch = (instr_lo == 0xF) &&
141 (opcode == 0x0D || opcode == 0x18);
142 return 0;
143 default:
144 return 0;
145 }
146}
147
148static int
149is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr)
150{
151 unsigned char *max_instr;
97 unsigned char *instr; 152 unsigned char *instr;
98 int scan_more = 1;
99 int prefetch = 0; 153 int prefetch = 0;
100 unsigned char *max_instr;
101 154
102 /* 155 /*
103 * If it was a exec (instruction fetch) fault on NX page, then 156 * If it was a exec (instruction fetch) fault on NX page, then
@@ -106,106 +159,170 @@ static int is_prefetch(struct pt_regs *regs, unsigned long addr,
106 if (error_code & PF_INSTR) 159 if (error_code & PF_INSTR)
107 return 0; 160 return 0;
108 161
109 instr = (unsigned char *)convert_ip_to_linear(current, regs); 162 instr = (void *)convert_ip_to_linear(current, regs);
110 max_instr = instr + 15; 163 max_instr = instr + 15;
111 164
112 if (user_mode(regs) && instr >= (unsigned char *)TASK_SIZE) 165 if (user_mode(regs) && instr >= (unsigned char *)TASK_SIZE)
113 return 0; 166 return 0;
114 167
115 while (scan_more && instr < max_instr) { 168 while (instr < max_instr) {
116 unsigned char opcode; 169 unsigned char opcode;
117 unsigned char instr_hi;
118 unsigned char instr_lo;
119 170
120 if (probe_kernel_address(instr, opcode)) 171 if (probe_kernel_address(instr, opcode))
121 break; 172 break;
122 173
123 instr_hi = opcode & 0xf0;
124 instr_lo = opcode & 0x0f;
125 instr++; 174 instr++;
126 175
127 switch (instr_hi) { 176 if (!check_prefetch_opcode(regs, instr, opcode, &prefetch))
128 case 0x20:
129 case 0x30:
130 /*
131 * Values 0x26,0x2E,0x36,0x3E are valid x86 prefixes.
132 * In X86_64 long mode, the CPU will signal invalid
133 * opcode if some of these prefixes are present so
134 * X86_64 will never get here anyway
135 */
136 scan_more = ((instr_lo & 7) == 0x6);
137 break; 177 break;
138#ifdef CONFIG_X86_64
139 case 0x40:
140 /*
141 * In AMD64 long mode 0x40..0x4F are valid REX prefixes
142 * Need to figure out under what instruction mode the
143 * instruction was issued. Could check the LDT for lm,
144 * but for now it's good enough to assume that long
145 * mode only uses well known segments or kernel.
146 */
147 scan_more = (!user_mode(regs)) || (regs->cs == __USER_CS);
148 break;
149#endif
150 case 0x60:
151 /* 0x64 thru 0x67 are valid prefixes in all modes. */
152 scan_more = (instr_lo & 0xC) == 0x4;
153 break;
154 case 0xF0:
155 /* 0xF0, 0xF2, 0xF3 are valid prefixes in all modes. */
156 scan_more = !instr_lo || (instr_lo>>1) == 1;
157 break;
158 case 0x00:
159 /* Prefetch instruction is 0x0F0D or 0x0F18 */
160 scan_more = 0;
161
162 if (probe_kernel_address(instr, opcode))
163 break;
164 prefetch = (instr_lo == 0xF) &&
165 (opcode == 0x0D || opcode == 0x18);
166 break;
167 default:
168 scan_more = 0;
169 break;
170 }
171 } 178 }
172 return prefetch; 179 return prefetch;
173} 180}
174 181
175static void force_sig_info_fault(int si_signo, int si_code, 182static void
176 unsigned long address, struct task_struct *tsk) 183force_sig_info_fault(int si_signo, int si_code, unsigned long address,
184 struct task_struct *tsk)
177{ 185{
178 siginfo_t info; 186 siginfo_t info;
179 187
180 info.si_signo = si_signo; 188 info.si_signo = si_signo;
181 info.si_errno = 0; 189 info.si_errno = 0;
182 info.si_code = si_code; 190 info.si_code = si_code;
183 info.si_addr = (void __user *)address; 191 info.si_addr = (void __user *)address;
192
184 force_sig_info(si_signo, &info, tsk); 193 force_sig_info(si_signo, &info, tsk);
185} 194}
186 195
187#ifdef CONFIG_X86_64 196DEFINE_SPINLOCK(pgd_lock);
188static int bad_address(void *p) 197LIST_HEAD(pgd_list);
198
199#ifdef CONFIG_X86_32
200static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address)
189{ 201{
190 unsigned long dummy; 202 unsigned index = pgd_index(address);
191 return probe_kernel_address((unsigned long *)p, dummy); 203 pgd_t *pgd_k;
204 pud_t *pud, *pud_k;
205 pmd_t *pmd, *pmd_k;
206
207 pgd += index;
208 pgd_k = init_mm.pgd + index;
209
210 if (!pgd_present(*pgd_k))
211 return NULL;
212
213 /*
214 * set_pgd(pgd, *pgd_k); here would be useless on PAE
215 * and redundant with the set_pmd() on non-PAE. As would
216 * set_pud.
217 */
218 pud = pud_offset(pgd, address);
219 pud_k = pud_offset(pgd_k, address);
220 if (!pud_present(*pud_k))
221 return NULL;
222
223 pmd = pmd_offset(pud, address);
224 pmd_k = pmd_offset(pud_k, address);
225 if (!pmd_present(*pmd_k))
226 return NULL;
227
228 if (!pmd_present(*pmd)) {
229 set_pmd(pmd, *pmd_k);
230 arch_flush_lazy_mmu_mode();
231 } else {
232 BUG_ON(pmd_page(*pmd) != pmd_page(*pmd_k));
233 }
234
235 return pmd_k;
236}
237
238void vmalloc_sync_all(void)
239{
240 unsigned long address;
241
242 if (SHARED_KERNEL_PMD)
243 return;
244
245 for (address = VMALLOC_START & PMD_MASK;
246 address >= TASK_SIZE && address < FIXADDR_TOP;
247 address += PMD_SIZE) {
248
249 unsigned long flags;
250 struct page *page;
251
252 spin_lock_irqsave(&pgd_lock, flags);
253 list_for_each_entry(page, &pgd_list, lru) {
254 if (!vmalloc_sync_one(page_address(page), address))
255 break;
256 }
257 spin_unlock_irqrestore(&pgd_lock, flags);
258 }
259}
260
261/*
262 * 32-bit:
263 *
264 * Handle a fault on the vmalloc or module mapping area
265 */
266static noinline int vmalloc_fault(unsigned long address)
267{
268 unsigned long pgd_paddr;
269 pmd_t *pmd_k;
270 pte_t *pte_k;
271
272 /* Make sure we are in vmalloc area: */
273 if (!(address >= VMALLOC_START && address < VMALLOC_END))
274 return -1;
275
276 /*
277 * Synchronize this task's top level page-table
278 * with the 'reference' page table.
279 *
280 * Do _not_ use "current" here. We might be inside
281 * an interrupt in the middle of a task switch..
282 */
283 pgd_paddr = read_cr3();
284 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address);
285 if (!pmd_k)
286 return -1;
287
288 pte_k = pte_offset_kernel(pmd_k, address);
289 if (!pte_present(*pte_k))
290 return -1;
291
292 return 0;
293}
294
295/*
296 * Did it hit the DOS screen memory VA from vm86 mode?
297 */
298static inline void
299check_v8086_mode(struct pt_regs *regs, unsigned long address,
300 struct task_struct *tsk)
301{
302 unsigned long bit;
303
304 if (!v8086_mode(regs))
305 return;
306
307 bit = (address - 0xA0000) >> PAGE_SHIFT;
308 if (bit < 32)
309 tsk->thread.screen_bitmap |= 1 << bit;
192} 310}
193#endif
194 311
195static void dump_pagetable(unsigned long address) 312static void dump_pagetable(unsigned long address)
196{ 313{
197#ifdef CONFIG_X86_32
198 __typeof__(pte_val(__pte(0))) page; 314 __typeof__(pte_val(__pte(0))) page;
199 315
200 page = read_cr3(); 316 page = read_cr3();
201 page = ((__typeof__(page) *) __va(page))[address >> PGDIR_SHIFT]; 317 page = ((__typeof__(page) *) __va(page))[address >> PGDIR_SHIFT];
318
202#ifdef CONFIG_X86_PAE 319#ifdef CONFIG_X86_PAE
203 printk("*pdpt = %016Lx ", page); 320 printk("*pdpt = %016Lx ", page);
204 if ((page >> PAGE_SHIFT) < max_low_pfn 321 if ((page >> PAGE_SHIFT) < max_low_pfn
205 && page & _PAGE_PRESENT) { 322 && page & _PAGE_PRESENT) {
206 page &= PAGE_MASK; 323 page &= PAGE_MASK;
207 page = ((__typeof__(page) *) __va(page))[(address >> PMD_SHIFT) 324 page = ((__typeof__(page) *) __va(page))[(address >> PMD_SHIFT)
208 & (PTRS_PER_PMD - 1)]; 325 & (PTRS_PER_PMD - 1)];
209 printk(KERN_CONT "*pde = %016Lx ", page); 326 printk(KERN_CONT "*pde = %016Lx ", page);
210 page &= ~_PAGE_NX; 327 page &= ~_PAGE_NX;
211 } 328 }
@@ -217,19 +334,145 @@ static void dump_pagetable(unsigned long address)
217 * We must not directly access the pte in the highpte 334 * We must not directly access the pte in the highpte
218 * case if the page table is located in highmem. 335 * case if the page table is located in highmem.
219 * And let's rather not kmap-atomic the pte, just in case 336 * And let's rather not kmap-atomic the pte, just in case
220 * it's allocated already. 337 * it's allocated already:
221 */ 338 */
222 if ((page >> PAGE_SHIFT) < max_low_pfn 339 if ((page >> PAGE_SHIFT) < max_low_pfn
223 && (page & _PAGE_PRESENT) 340 && (page & _PAGE_PRESENT)
224 && !(page & _PAGE_PSE)) { 341 && !(page & _PAGE_PSE)) {
342
225 page &= PAGE_MASK; 343 page &= PAGE_MASK;
226 page = ((__typeof__(page) *) __va(page))[(address >> PAGE_SHIFT) 344 page = ((__typeof__(page) *) __va(page))[(address >> PAGE_SHIFT)
227 & (PTRS_PER_PTE - 1)]; 345 & (PTRS_PER_PTE - 1)];
228 printk("*pte = %0*Lx ", sizeof(page)*2, (u64)page); 346 printk("*pte = %0*Lx ", sizeof(page)*2, (u64)page);
229 } 347 }
230 348
231 printk("\n"); 349 printk("\n");
232#else /* CONFIG_X86_64 */ 350}
351
352#else /* CONFIG_X86_64: */
353
354void vmalloc_sync_all(void)
355{
356 unsigned long address;
357
358 for (address = VMALLOC_START & PGDIR_MASK; address <= VMALLOC_END;
359 address += PGDIR_SIZE) {
360
361 const pgd_t *pgd_ref = pgd_offset_k(address);
362 unsigned long flags;
363 struct page *page;
364
365 if (pgd_none(*pgd_ref))
366 continue;
367
368 spin_lock_irqsave(&pgd_lock, flags);
369 list_for_each_entry(page, &pgd_list, lru) {
370 pgd_t *pgd;
371 pgd = (pgd_t *)page_address(page) + pgd_index(address);
372 if (pgd_none(*pgd))
373 set_pgd(pgd, *pgd_ref);
374 else
375 BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref));
376 }
377 spin_unlock_irqrestore(&pgd_lock, flags);
378 }
379}
380
381/*
382 * 64-bit:
383 *
384 * Handle a fault on the vmalloc area
385 *
386 * This assumes no large pages in there.
387 */
388static noinline int vmalloc_fault(unsigned long address)
389{
390 pgd_t *pgd, *pgd_ref;
391 pud_t *pud, *pud_ref;
392 pmd_t *pmd, *pmd_ref;
393 pte_t *pte, *pte_ref;
394
395 /* Make sure we are in vmalloc area: */
396 if (!(address >= VMALLOC_START && address < VMALLOC_END))
397 return -1;
398
399 /*
400 * Copy kernel mappings over when needed. This can also
401 * happen within a race in page table update. In the later
402 * case just flush:
403 */
404 pgd = pgd_offset(current->active_mm, address);
405 pgd_ref = pgd_offset_k(address);
406 if (pgd_none(*pgd_ref))
407 return -1;
408
409 if (pgd_none(*pgd))
410 set_pgd(pgd, *pgd_ref);
411 else
412 BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref));
413
414 /*
415 * Below here mismatches are bugs because these lower tables
416 * are shared:
417 */
418
419 pud = pud_offset(pgd, address);
420 pud_ref = pud_offset(pgd_ref, address);
421 if (pud_none(*pud_ref))
422 return -1;
423
424 if (pud_none(*pud) || pud_page_vaddr(*pud) != pud_page_vaddr(*pud_ref))
425 BUG();
426
427 pmd = pmd_offset(pud, address);
428 pmd_ref = pmd_offset(pud_ref, address);
429 if (pmd_none(*pmd_ref))
430 return -1;
431
432 if (pmd_none(*pmd) || pmd_page(*pmd) != pmd_page(*pmd_ref))
433 BUG();
434
435 pte_ref = pte_offset_kernel(pmd_ref, address);
436 if (!pte_present(*pte_ref))
437 return -1;
438
439 pte = pte_offset_kernel(pmd, address);
440
441 /*
442 * Don't use pte_page here, because the mappings can point
443 * outside mem_map, and the NUMA hash lookup cannot handle
444 * that:
445 */
446 if (!pte_present(*pte) || pte_pfn(*pte) != pte_pfn(*pte_ref))
447 BUG();
448
449 return 0;
450}
451
452static const char errata93_warning[] =
453KERN_ERR "******* Your BIOS seems to not contain a fix for K8 errata #93\n"
454KERN_ERR "******* Working around it, but it may cause SEGVs or burn power.\n"
455KERN_ERR "******* Please consider a BIOS update.\n"
456KERN_ERR "******* Disabling USB legacy in the BIOS may also help.\n";
457
458/*
459 * No vm86 mode in 64-bit mode:
460 */
461static inline void
462check_v8086_mode(struct pt_regs *regs, unsigned long address,
463 struct task_struct *tsk)
464{
465}
466
467static int bad_address(void *p)
468{
469 unsigned long dummy;
470
471 return probe_kernel_address((unsigned long *)p, dummy);
472}
473
474static void dump_pagetable(unsigned long address)
475{
233 pgd_t *pgd; 476 pgd_t *pgd;
234 pud_t *pud; 477 pud_t *pud;
235 pmd_t *pmd; 478 pmd_t *pmd;
@@ -238,102 +481,77 @@ static void dump_pagetable(unsigned long address)
238 pgd = (pgd_t *)read_cr3(); 481 pgd = (pgd_t *)read_cr3();
239 482
240 pgd = __va((unsigned long)pgd & PHYSICAL_PAGE_MASK); 483 pgd = __va((unsigned long)pgd & PHYSICAL_PAGE_MASK);
484
241 pgd += pgd_index(address); 485 pgd += pgd_index(address);
242 if (bad_address(pgd)) goto bad; 486 if (bad_address(pgd))
487 goto bad;
488
243 printk("PGD %lx ", pgd_val(*pgd)); 489 printk("PGD %lx ", pgd_val(*pgd));
244 if (!pgd_present(*pgd)) goto ret; 490
491 if (!pgd_present(*pgd))
492 goto out;
245 493
246 pud = pud_offset(pgd, address); 494 pud = pud_offset(pgd, address);
247 if (bad_address(pud)) goto bad; 495 if (bad_address(pud))
496 goto bad;
497
248 printk("PUD %lx ", pud_val(*pud)); 498 printk("PUD %lx ", pud_val(*pud));
249 if (!pud_present(*pud) || pud_large(*pud)) 499 if (!pud_present(*pud) || pud_large(*pud))
250 goto ret; 500 goto out;
251 501
252 pmd = pmd_offset(pud, address); 502 pmd = pmd_offset(pud, address);
253 if (bad_address(pmd)) goto bad; 503 if (bad_address(pmd))
504 goto bad;
505
254 printk("PMD %lx ", pmd_val(*pmd)); 506 printk("PMD %lx ", pmd_val(*pmd));
255 if (!pmd_present(*pmd) || pmd_large(*pmd)) goto ret; 507 if (!pmd_present(*pmd) || pmd_large(*pmd))
508 goto out;
256 509
257 pte = pte_offset_kernel(pmd, address); 510 pte = pte_offset_kernel(pmd, address);
258 if (bad_address(pte)) goto bad; 511 if (bad_address(pte))
512 goto bad;
513
259 printk("PTE %lx", pte_val(*pte)); 514 printk("PTE %lx", pte_val(*pte));
260ret: 515out:
261 printk("\n"); 516 printk("\n");
262 return; 517 return;
263bad: 518bad:
264 printk("BAD\n"); 519 printk("BAD\n");
265#endif
266} 520}
267 521
268#ifdef CONFIG_X86_32 522#endif /* CONFIG_X86_64 */
269static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address)
270{
271 unsigned index = pgd_index(address);
272 pgd_t *pgd_k;
273 pud_t *pud, *pud_k;
274 pmd_t *pmd, *pmd_k;
275
276 pgd += index;
277 pgd_k = init_mm.pgd + index;
278 523
279 if (!pgd_present(*pgd_k)) 524/*
280 return NULL; 525 * Workaround for K8 erratum #93 & buggy BIOS.
281 526 *
282 /* 527 * BIOS SMM functions are required to use a specific workaround
283 * set_pgd(pgd, *pgd_k); here would be useless on PAE 528 * to avoid corruption of the 64bit RIP register on C stepping K8.
284 * and redundant with the set_pmd() on non-PAE. As would 529 *
285 * set_pud. 530 * A lot of BIOS that didn't get tested properly miss this.
286 */ 531 *
287 532 * The OS sees this as a page fault with the upper 32bits of RIP cleared.
288 pud = pud_offset(pgd, address); 533 * Try to work around it here.
289 pud_k = pud_offset(pgd_k, address); 534 *
290 if (!pud_present(*pud_k)) 535 * Note we only handle faults in kernel here.
291 return NULL; 536 * Does nothing on 32-bit.
292
293 pmd = pmd_offset(pud, address);
294 pmd_k = pmd_offset(pud_k, address);
295 if (!pmd_present(*pmd_k))
296 return NULL;
297 if (!pmd_present(*pmd)) {
298 set_pmd(pmd, *pmd_k);
299 arch_flush_lazy_mmu_mode();
300 } else
301 BUG_ON(pmd_page(*pmd) != pmd_page(*pmd_k));
302 return pmd_k;
303}
304#endif
305
306#ifdef CONFIG_X86_64
307static const char errata93_warning[] =
308KERN_ERR "******* Your BIOS seems to not contain a fix for K8 errata #93\n"
309KERN_ERR "******* Working around it, but it may cause SEGVs or burn power.\n"
310KERN_ERR "******* Please consider a BIOS update.\n"
311KERN_ERR "******* Disabling USB legacy in the BIOS may also help.\n";
312#endif
313
314/* Workaround for K8 erratum #93 & buggy BIOS.
315 BIOS SMM functions are required to use a specific workaround
316 to avoid corruption of the 64bit RIP register on C stepping K8.
317 A lot of BIOS that didn't get tested properly miss this.
318 The OS sees this as a page fault with the upper 32bits of RIP cleared.
319 Try to work around it here.
320 Note we only handle faults in kernel here.
321 Does nothing for X86_32
322 */ 537 */
323static int is_errata93(struct pt_regs *regs, unsigned long address) 538static int is_errata93(struct pt_regs *regs, unsigned long address)
324{ 539{
325#ifdef CONFIG_X86_64 540#ifdef CONFIG_X86_64
326 static int warned; 541 static int once;
542
327 if (address != regs->ip) 543 if (address != regs->ip)
328 return 0; 544 return 0;
545
329 if ((address >> 32) != 0) 546 if ((address >> 32) != 0)
330 return 0; 547 return 0;
548
331 address |= 0xffffffffUL << 32; 549 address |= 0xffffffffUL << 32;
332 if ((address >= (u64)_stext && address <= (u64)_etext) || 550 if ((address >= (u64)_stext && address <= (u64)_etext) ||
333 (address >= MODULES_VADDR && address <= MODULES_END)) { 551 (address >= MODULES_VADDR && address <= MODULES_END)) {
334 if (!warned) { 552 if (!once) {
335 printk(errata93_warning); 553 printk(errata93_warning);
336 warned = 1; 554 once = 1;
337 } 555 }
338 regs->ip = address; 556 regs->ip = address;
339 return 1; 557 return 1;
@@ -343,16 +561,17 @@ static int is_errata93(struct pt_regs *regs, unsigned long address)
343} 561}
344 562
345/* 563/*
346 * Work around K8 erratum #100 K8 in compat mode occasionally jumps to illegal 564 * Work around K8 erratum #100 K8 in compat mode occasionally jumps
347 * addresses >4GB. We catch this in the page fault handler because these 565 * to illegal addresses >4GB.
348 * addresses are not reachable. Just detect this case and return. Any code 566 *
567 * We catch this in the page fault handler because these addresses
568 * are not reachable. Just detect this case and return. Any code
349 * segment in LDT is compatibility mode. 569 * segment in LDT is compatibility mode.
350 */ 570 */
351static int is_errata100(struct pt_regs *regs, unsigned long address) 571static int is_errata100(struct pt_regs *regs, unsigned long address)
352{ 572{
353#ifdef CONFIG_X86_64 573#ifdef CONFIG_X86_64
354 if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && 574 if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32))
355 (address >> 32))
356 return 1; 575 return 1;
357#endif 576#endif
358 return 0; 577 return 0;
@@ -362,8 +581,9 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
362{ 581{
363#ifdef CONFIG_X86_F00F_BUG 582#ifdef CONFIG_X86_F00F_BUG
364 unsigned long nr; 583 unsigned long nr;
584
365 /* 585 /*
366 * Pentium F0 0F C7 C8 bug workaround. 586 * Pentium F0 0F C7 C8 bug workaround:
367 */ 587 */
368 if (boot_cpu_data.f00f_bug) { 588 if (boot_cpu_data.f00f_bug) {
369 nr = (address - idt_descr.address) >> 3; 589 nr = (address - idt_descr.address) >> 3;
@@ -377,62 +597,277 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
377 return 0; 597 return 0;
378} 598}
379 599
380static void show_fault_oops(struct pt_regs *regs, unsigned long error_code, 600static const char nx_warning[] = KERN_CRIT
381 unsigned long address) 601"kernel tried to execute NX-protected page - exploit attempt? (uid: %d)\n";
602
603static void
604show_fault_oops(struct pt_regs *regs, unsigned long error_code,
605 unsigned long address)
382{ 606{
383#ifdef CONFIG_X86_32
384 if (!oops_may_print()) 607 if (!oops_may_print())
385 return; 608 return;
386#endif
387 609
388#ifdef CONFIG_X86_PAE
389 if (error_code & PF_INSTR) { 610 if (error_code & PF_INSTR) {
390 unsigned int level; 611 unsigned int level;
612
391 pte_t *pte = lookup_address(address, &level); 613 pte_t *pte = lookup_address(address, &level);
392 614
393 if (pte && pte_present(*pte) && !pte_exec(*pte)) 615 if (pte && pte_present(*pte) && !pte_exec(*pte))
394 printk(KERN_CRIT "kernel tried to execute " 616 printk(nx_warning, current_uid());
395 "NX-protected page - exploit attempt? "
396 "(uid: %d)\n", current_uid());
397 } 617 }
398#endif
399 618
400 printk(KERN_ALERT "BUG: unable to handle kernel "); 619 printk(KERN_ALERT "BUG: unable to handle kernel ");
401 if (address < PAGE_SIZE) 620 if (address < PAGE_SIZE)
402 printk(KERN_CONT "NULL pointer dereference"); 621 printk(KERN_CONT "NULL pointer dereference");
403 else 622 else
404 printk(KERN_CONT "paging request"); 623 printk(KERN_CONT "paging request");
624
405 printk(KERN_CONT " at %p\n", (void *) address); 625 printk(KERN_CONT " at %p\n", (void *) address);
406 printk(KERN_ALERT "IP:"); 626 printk(KERN_ALERT "IP:");
407 printk_address(regs->ip, 1); 627 printk_address(regs->ip, 1);
628
408 dump_pagetable(address); 629 dump_pagetable(address);
409} 630}
410 631
411#ifdef CONFIG_X86_64 632static noinline void
412static noinline void pgtable_bad(unsigned long address, struct pt_regs *regs, 633pgtable_bad(struct pt_regs *regs, unsigned long error_code,
413 unsigned long error_code) 634 unsigned long address)
414{ 635{
415 unsigned long flags = oops_begin();
416 int sig = SIGKILL;
417 struct task_struct *tsk; 636 struct task_struct *tsk;
637 unsigned long flags;
638 int sig;
639
640 flags = oops_begin();
641 tsk = current;
642 sig = SIGKILL;
418 643
419 printk(KERN_ALERT "%s: Corrupted page table at address %lx\n", 644 printk(KERN_ALERT "%s: Corrupted page table at address %lx\n",
420 current->comm, address); 645 tsk->comm, address);
421 dump_pagetable(address); 646 dump_pagetable(address);
422 tsk = current; 647
423 tsk->thread.cr2 = address; 648 tsk->thread.cr2 = address;
424 tsk->thread.trap_no = 14; 649 tsk->thread.trap_no = 14;
425 tsk->thread.error_code = error_code; 650 tsk->thread.error_code = error_code;
651
426 if (__die("Bad pagetable", regs, error_code)) 652 if (__die("Bad pagetable", regs, error_code))
427 sig = 0; 653 sig = 0;
654
428 oops_end(flags, regs, sig); 655 oops_end(flags, regs, sig);
429} 656}
430#endif 657
658static noinline void
659no_context(struct pt_regs *regs, unsigned long error_code,
660 unsigned long address)
661{
662 struct task_struct *tsk = current;
663 unsigned long *stackend;
664 unsigned long flags;
665 int sig;
666
667 /* Are we prepared to handle this kernel fault? */
668 if (fixup_exception(regs))
669 return;
670
671 /*
672 * 32-bit:
673 *
674 * Valid to do another page fault here, because if this fault
675 * had been triggered by is_prefetch fixup_exception would have
676 * handled it.
677 *
678 * 64-bit:
679 *
680 * Hall of shame of CPU/BIOS bugs.
681 */
682 if (is_prefetch(regs, error_code, address))
683 return;
684
685 if (is_errata93(regs, address))
686 return;
687
688 /*
689 * Oops. The kernel tried to access some bad page. We'll have to
690 * terminate things with extreme prejudice:
691 */
692 flags = oops_begin();
693
694 show_fault_oops(regs, error_code, address);
695
696 stackend = end_of_stack(tsk);
697 if (*stackend != STACK_END_MAGIC)
698 printk(KERN_ALERT "Thread overran stack, or stack corrupted\n");
699
700 tsk->thread.cr2 = address;
701 tsk->thread.trap_no = 14;
702 tsk->thread.error_code = error_code;
703
704 sig = SIGKILL;
705 if (__die("Oops", regs, error_code))
706 sig = 0;
707
708 /* Executive summary in case the body of the oops scrolled away */
709 printk(KERN_EMERG "CR2: %016lx\n", address);
710
711 oops_end(flags, regs, sig);
712}
713
714/*
715 * Print out info about fatal segfaults, if the show_unhandled_signals
716 * sysctl is set:
717 */
718static inline void
719show_signal_msg(struct pt_regs *regs, unsigned long error_code,
720 unsigned long address, struct task_struct *tsk)
721{
722 if (!unhandled_signal(tsk, SIGSEGV))
723 return;
724
725 if (!printk_ratelimit())
726 return;
727
728 printk(KERN_CONT "%s%s[%d]: segfault at %lx ip %p sp %p error %lx",
729 task_pid_nr(tsk) > 1 ? KERN_INFO : KERN_EMERG,
730 tsk->comm, task_pid_nr(tsk), address,
731 (void *)regs->ip, (void *)regs->sp, error_code);
732
733 print_vma_addr(KERN_CONT " in ", regs->ip);
734
735 printk(KERN_CONT "\n");
736}
737
738static void
739__bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
740 unsigned long address, int si_code)
741{
742 struct task_struct *tsk = current;
743
744 /* User mode accesses just cause a SIGSEGV */
745 if (error_code & PF_USER) {
746 /*
747 * It's possible to have interrupts off here:
748 */
749 local_irq_enable();
750
751 /*
752 * Valid to do another page fault here because this one came
753 * from user space:
754 */
755 if (is_prefetch(regs, error_code, address))
756 return;
757
758 if (is_errata100(regs, address))
759 return;
760
761 if (unlikely(show_unhandled_signals))
762 show_signal_msg(regs, error_code, address, tsk);
763
764 /* Kernel addresses are always protection faults: */
765 tsk->thread.cr2 = address;
766 tsk->thread.error_code = error_code | (address >= TASK_SIZE);
767 tsk->thread.trap_no = 14;
768
769 force_sig_info_fault(SIGSEGV, si_code, address, tsk);
770
771 return;
772 }
773
774 if (is_f00f_bug(regs, address))
775 return;
776
777 no_context(regs, error_code, address);
778}
779
780static noinline void
781bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
782 unsigned long address)
783{
784 __bad_area_nosemaphore(regs, error_code, address, SEGV_MAPERR);
785}
786
787static void
788__bad_area(struct pt_regs *regs, unsigned long error_code,
789 unsigned long address, int si_code)
790{
791 struct mm_struct *mm = current->mm;
792
793 /*
794 * Something tried to access memory that isn't in our memory map..
795 * Fix it, but check if it's kernel or user first..
796 */
797 up_read(&mm->mmap_sem);
798
799 __bad_area_nosemaphore(regs, error_code, address, si_code);
800}
801
802static noinline void
803bad_area(struct pt_regs *regs, unsigned long error_code, unsigned long address)
804{
805 __bad_area(regs, error_code, address, SEGV_MAPERR);
806}
807
808static noinline void
809bad_area_access_error(struct pt_regs *regs, unsigned long error_code,
810 unsigned long address)
811{
812 __bad_area(regs, error_code, address, SEGV_ACCERR);
813}
814
815/* TODO: fixup for "mm-invoke-oom-killer-from-page-fault.patch" */
816static void
817out_of_memory(struct pt_regs *regs, unsigned long error_code,
818 unsigned long address)
819{
820 /*
821 * We ran out of memory, call the OOM killer, and return the userspace
822 * (which will retry the fault, or kill us if we got oom-killed):
823 */
824 up_read(&current->mm->mmap_sem);
825
826 pagefault_out_of_memory();
827}
828
829static void
830do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address)
831{
832 struct task_struct *tsk = current;
833 struct mm_struct *mm = tsk->mm;
834
835 up_read(&mm->mmap_sem);
836
837 /* Kernel mode? Handle exceptions or die: */
838 if (!(error_code & PF_USER))
839 no_context(regs, error_code, address);
840
841 /* User-space => ok to do another page fault: */
842 if (is_prefetch(regs, error_code, address))
843 return;
844
845 tsk->thread.cr2 = address;
846 tsk->thread.error_code = error_code;
847 tsk->thread.trap_no = 14;
848
849 force_sig_info_fault(SIGBUS, BUS_ADRERR, address, tsk);
850}
851
852static noinline void
853mm_fault_error(struct pt_regs *regs, unsigned long error_code,
854 unsigned long address, unsigned int fault)
855{
856 if (fault & VM_FAULT_OOM) {
857 out_of_memory(regs, error_code, address);
858 } else {
859 if (fault & VM_FAULT_SIGBUS)
860 do_sigbus(regs, error_code, address);
861 else
862 BUG();
863 }
864}
431 865
432static int spurious_fault_check(unsigned long error_code, pte_t *pte) 866static int spurious_fault_check(unsigned long error_code, pte_t *pte)
433{ 867{
434 if ((error_code & PF_WRITE) && !pte_write(*pte)) 868 if ((error_code & PF_WRITE) && !pte_write(*pte))
435 return 0; 869 return 0;
870
436 if ((error_code & PF_INSTR) && !pte_exec(*pte)) 871 if ((error_code & PF_INSTR) && !pte_exec(*pte))
437 return 0; 872 return 0;
438 873
@@ -440,21 +875,25 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
440} 875}
441 876
442/* 877/*
443 * Handle a spurious fault caused by a stale TLB entry. This allows 878 * Handle a spurious fault caused by a stale TLB entry.
444 * us to lazily refresh the TLB when increasing the permissions of a 879 *
445 * kernel page (RO -> RW or NX -> X). Doing it eagerly is very 880 * This allows us to lazily refresh the TLB when increasing the
446 * expensive since that implies doing a full cross-processor TLB 881 * permissions of a kernel page (RO -> RW or NX -> X). Doing it
447 * flush, even if no stale TLB entries exist on other processors. 882 * eagerly is very expensive since that implies doing a full
883 * cross-processor TLB flush, even if no stale TLB entries exist
884 * on other processors.
885 *
448 * There are no security implications to leaving a stale TLB when 886 * There are no security implications to leaving a stale TLB when
449 * increasing the permissions on a page. 887 * increasing the permissions on a page.
450 */ 888 */
451static int spurious_fault(unsigned long address, 889static noinline int
452 unsigned long error_code) 890spurious_fault(unsigned long error_code, unsigned long address)
453{ 891{
454 pgd_t *pgd; 892 pgd_t *pgd;
455 pud_t *pud; 893 pud_t *pud;
456 pmd_t *pmd; 894 pmd_t *pmd;
457 pte_t *pte; 895 pte_t *pte;
896 int ret;
458 897
459 /* Reserved-bit violation or user access to kernel space? */ 898 /* Reserved-bit violation or user access to kernel space? */
460 if (error_code & (PF_USER | PF_RSVD)) 899 if (error_code & (PF_USER | PF_RSVD))
@@ -482,129 +921,71 @@ static int spurious_fault(unsigned long address,
482 if (!pte_present(*pte)) 921 if (!pte_present(*pte))
483 return 0; 922 return 0;
484 923
485 return spurious_fault_check(error_code, pte); 924 ret = spurious_fault_check(error_code, pte);
486} 925 if (!ret)
487 926 return 0;
488/*
489 * X86_32
490 * Handle a fault on the vmalloc or module mapping area
491 *
492 * X86_64
493 * Handle a fault on the vmalloc area
494 *
495 * This assumes no large pages in there.
496 */
497static int vmalloc_fault(unsigned long address)
498{
499#ifdef CONFIG_X86_32
500 unsigned long pgd_paddr;
501 pmd_t *pmd_k;
502 pte_t *pte_k;
503
504 /* Make sure we are in vmalloc area */
505 if (!(address >= VMALLOC_START && address < VMALLOC_END))
506 return -1;
507 927
508 /* 928 /*
509 * Synchronize this task's top level page-table 929 * Make sure we have permissions in PMD.
510 * with the 'reference' page table. 930 * If not, then there's a bug in the page tables:
511 *
512 * Do _not_ use "current" here. We might be inside
513 * an interrupt in the middle of a task switch..
514 */ 931 */
515 pgd_paddr = read_cr3(); 932 ret = spurious_fault_check(error_code, (pte_t *) pmd);
516 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address); 933 WARN_ONCE(!ret, "PMD has incorrect permission bits\n");
517 if (!pmd_k)
518 return -1;
519 pte_k = pte_offset_kernel(pmd_k, address);
520 if (!pte_present(*pte_k))
521 return -1;
522 return 0;
523#else
524 pgd_t *pgd, *pgd_ref;
525 pud_t *pud, *pud_ref;
526 pmd_t *pmd, *pmd_ref;
527 pte_t *pte, *pte_ref;
528 934
529 /* Make sure we are in vmalloc area */ 935 return ret;
530 if (!(address >= VMALLOC_START && address < VMALLOC_END)) 936}
531 return -1;
532 937
533 /* Copy kernel mappings over when needed. This can also 938int show_unhandled_signals = 1;
534 happen within a race in page table update. In the later
535 case just flush. */
536 939
537 pgd = pgd_offset(current->mm ?: &init_mm, address); 940static inline int
538 pgd_ref = pgd_offset_k(address); 941access_error(unsigned long error_code, int write, struct vm_area_struct *vma)
539 if (pgd_none(*pgd_ref)) 942{
540 return -1; 943 if (write) {
541 if (pgd_none(*pgd)) 944 /* write, present and write, not present: */
542 set_pgd(pgd, *pgd_ref); 945 if (unlikely(!(vma->vm_flags & VM_WRITE)))
543 else 946 return 1;
544 BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref)); 947 return 0;
948 }
545 949
546 /* Below here mismatches are bugs because these lower tables 950 /* read, present: */
547 are shared */ 951 if (unlikely(error_code & PF_PROT))
952 return 1;
953
954 /* read, not present: */
955 if (unlikely(!(vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE))))
956 return 1;
548 957
549 pud = pud_offset(pgd, address);
550 pud_ref = pud_offset(pgd_ref, address);
551 if (pud_none(*pud_ref))
552 return -1;
553 if (pud_none(*pud) || pud_page_vaddr(*pud) != pud_page_vaddr(*pud_ref))
554 BUG();
555 pmd = pmd_offset(pud, address);
556 pmd_ref = pmd_offset(pud_ref, address);
557 if (pmd_none(*pmd_ref))
558 return -1;
559 if (pmd_none(*pmd) || pmd_page(*pmd) != pmd_page(*pmd_ref))
560 BUG();
561 pte_ref = pte_offset_kernel(pmd_ref, address);
562 if (!pte_present(*pte_ref))
563 return -1;
564 pte = pte_offset_kernel(pmd, address);
565 /* Don't use pte_page here, because the mappings can point
566 outside mem_map, and the NUMA hash lookup cannot handle
567 that. */
568 if (!pte_present(*pte) || pte_pfn(*pte) != pte_pfn(*pte_ref))
569 BUG();
570 return 0; 958 return 0;
571#endif
572} 959}
573 960
574int show_unhandled_signals = 1; 961static int fault_in_kernel_space(unsigned long address)
962{
963 return address >= TASK_SIZE_MAX;
964}
575 965
576/* 966/*
577 * This routine handles page faults. It determines the address, 967 * This routine handles page faults. It determines the address,
578 * and the problem, and then passes it off to one of the appropriate 968 * and the problem, and then passes it off to one of the appropriate
579 * routines. 969 * routines.
580 */ 970 */
581#ifdef CONFIG_X86_64 971dotraplinkage void __kprobes
582asmlinkage 972do_page_fault(struct pt_regs *regs, unsigned long error_code)
583#endif
584void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code)
585{ 973{
586 struct task_struct *tsk;
587 struct mm_struct *mm;
588 struct vm_area_struct *vma; 974 struct vm_area_struct *vma;
975 struct task_struct *tsk;
589 unsigned long address; 976 unsigned long address;
590 int write, si_code; 977 struct mm_struct *mm;
978 int write;
591 int fault; 979 int fault;
592#ifdef CONFIG_X86_64
593 unsigned long flags;
594 int sig;
595#endif
596 980
597 tsk = current; 981 tsk = current;
598 mm = tsk->mm; 982 mm = tsk->mm;
983
599 prefetchw(&mm->mmap_sem); 984 prefetchw(&mm->mmap_sem);
600 985
601 /* get the address */ 986 /* Get the faulting address: */
602 address = read_cr2(); 987 address = read_cr2();
603 988
604 si_code = SEGV_MAPERR;
605
606 if (notify_page_fault(regs))
607 return;
608 if (unlikely(kmmio_fault(regs, address))) 989 if (unlikely(kmmio_fault(regs, address)))
609 return; 990 return;
610 991
@@ -621,313 +1002,147 @@ void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code)
621 * (error_code & 4) == 0, and that the fault was not a 1002 * (error_code & 4) == 0, and that the fault was not a
622 * protection error (error_code & 9) == 0. 1003 * protection error (error_code & 9) == 0.
623 */ 1004 */
624#ifdef CONFIG_X86_32 1005 if (unlikely(fault_in_kernel_space(address))) {
625 if (unlikely(address >= TASK_SIZE)) {
626#else
627 if (unlikely(address >= TASK_SIZE64)) {
628#endif
629 if (!(error_code & (PF_RSVD|PF_USER|PF_PROT)) && 1006 if (!(error_code & (PF_RSVD|PF_USER|PF_PROT)) &&
630 vmalloc_fault(address) >= 0) 1007 vmalloc_fault(address) >= 0)
631 return; 1008 return;
632 1009
633 /* Can handle a stale RO->RW TLB */ 1010 /* Can handle a stale RO->RW TLB: */
634 if (spurious_fault(address, error_code)) 1011 if (spurious_fault(error_code, address))
635 return; 1012 return;
636 1013
1014 /* kprobes don't want to hook the spurious faults: */
1015 if (notify_page_fault(regs))
1016 return;
637 /* 1017 /*
638 * Don't take the mm semaphore here. If we fixup a prefetch 1018 * Don't take the mm semaphore here. If we fixup a prefetch
639 * fault we could otherwise deadlock. 1019 * fault we could otherwise deadlock:
640 */ 1020 */
641 goto bad_area_nosemaphore; 1021 bad_area_nosemaphore(regs, error_code, address);
642 }
643 1022
1023 return;
1024 }
644 1025
1026 /* kprobes don't want to hook the spurious faults: */
1027 if (unlikely(notify_page_fault(regs)))
1028 return;
645 /* 1029 /*
646 * It's safe to allow irq's after cr2 has been saved and the 1030 * It's safe to allow irq's after cr2 has been saved and the
647 * vmalloc fault has been handled. 1031 * vmalloc fault has been handled.
648 * 1032 *
649 * User-mode registers count as a user access even for any 1033 * User-mode registers count as a user access even for any
650 * potential system fault or CPU buglet. 1034 * potential system fault or CPU buglet:
651 */ 1035 */
652 if (user_mode_vm(regs)) { 1036 if (user_mode_vm(regs)) {
653 local_irq_enable(); 1037 local_irq_enable();
654 error_code |= PF_USER; 1038 error_code |= PF_USER;
655 } else if (regs->flags & X86_EFLAGS_IF) 1039 } else {
656 local_irq_enable(); 1040 if (regs->flags & X86_EFLAGS_IF)
1041 local_irq_enable();
1042 }
657 1043
658#ifdef CONFIG_X86_64
659 if (unlikely(error_code & PF_RSVD)) 1044 if (unlikely(error_code & PF_RSVD))
660 pgtable_bad(address, regs, error_code); 1045 pgtable_bad(regs, error_code, address);
661#endif
662 1046
663 /* 1047 /*
664 * If we're in an interrupt, have no user context or are running in an 1048 * If we're in an interrupt, have no user context or are running
665 * atomic region then we must not take the fault. 1049 * in an atomic region then we must not take the fault:
666 */ 1050 */
667 if (unlikely(in_atomic() || !mm)) 1051 if (unlikely(in_atomic() || !mm)) {
668 goto bad_area_nosemaphore; 1052 bad_area_nosemaphore(regs, error_code, address);
1053 return;
1054 }
669 1055
670 /* 1056 /*
671 * When running in the kernel we expect faults to occur only to 1057 * When running in the kernel we expect faults to occur only to
672 * addresses in user space. All other faults represent errors in the 1058 * addresses in user space. All other faults represent errors in
673 * kernel and should generate an OOPS. Unfortunately, in the case of an 1059 * the kernel and should generate an OOPS. Unfortunately, in the
674 * erroneous fault occurring in a code path which already holds mmap_sem 1060 * case of an erroneous fault occurring in a code path which already
675 * we will deadlock attempting to validate the fault against the 1061 * holds mmap_sem we will deadlock attempting to validate the fault
676 * address space. Luckily the kernel only validly references user 1062 * against the address space. Luckily the kernel only validly
677 * space from well defined areas of code, which are listed in the 1063 * references user space from well defined areas of code, which are
678 * exceptions table. 1064 * listed in the exceptions table.
679 * 1065 *
680 * As the vast majority of faults will be valid we will only perform 1066 * As the vast majority of faults will be valid we will only perform
681 * the source reference check when there is a possibility of a deadlock. 1067 * the source reference check when there is a possibility of a
682 * Attempt to lock the address space, if we cannot we then validate the 1068 * deadlock. Attempt to lock the address space, if we cannot we then
683 * source. If this is invalid we can skip the address space check, 1069 * validate the source. If this is invalid we can skip the address
684 * thus avoiding the deadlock. 1070 * space check, thus avoiding the deadlock:
685 */ 1071 */
686 if (!down_read_trylock(&mm->mmap_sem)) { 1072 if (unlikely(!down_read_trylock(&mm->mmap_sem))) {
687 if ((error_code & PF_USER) == 0 && 1073 if ((error_code & PF_USER) == 0 &&
688 !search_exception_tables(regs->ip)) 1074 !search_exception_tables(regs->ip)) {
689 goto bad_area_nosemaphore; 1075 bad_area_nosemaphore(regs, error_code, address);
1076 return;
1077 }
690 down_read(&mm->mmap_sem); 1078 down_read(&mm->mmap_sem);
1079 } else {
1080 /*
1081 * The above down_read_trylock() might have succeeded in
1082 * which case we'll have missed the might_sleep() from
1083 * down_read():
1084 */
1085 might_sleep();
691 } 1086 }
692 1087
693 vma = find_vma(mm, address); 1088 vma = find_vma(mm, address);
694 if (!vma) 1089 if (unlikely(!vma)) {
695 goto bad_area; 1090 bad_area(regs, error_code, address);
696 if (vma->vm_start <= address) 1091 return;
1092 }
1093 if (likely(vma->vm_start <= address))
697 goto good_area; 1094 goto good_area;
698 if (!(vma->vm_flags & VM_GROWSDOWN)) 1095 if (unlikely(!(vma->vm_flags & VM_GROWSDOWN))) {
699 goto bad_area; 1096 bad_area(regs, error_code, address);
1097 return;
1098 }
700 if (error_code & PF_USER) { 1099 if (error_code & PF_USER) {
701 /* 1100 /*
702 * Accessing the stack below %sp is always a bug. 1101 * Accessing the stack below %sp is always a bug.
703 * The large cushion allows instructions like enter 1102 * The large cushion allows instructions like enter
704 * and pusha to work. ("enter $65535,$31" pushes 1103 * and pusha to work. ("enter $65535, $31" pushes
705 * 32 pointers and then decrements %sp by 65535.) 1104 * 32 pointers and then decrements %sp by 65535.)
706 */ 1105 */
707 if (address + 65536 + 32 * sizeof(unsigned long) < regs->sp) 1106 if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) {
708 goto bad_area; 1107 bad_area(regs, error_code, address);
1108 return;
1109 }
709 } 1110 }
710 if (expand_stack(vma, address)) 1111 if (unlikely(expand_stack(vma, address))) {
711 goto bad_area; 1112 bad_area(regs, error_code, address);
712/* 1113 return;
713 * Ok, we have a good vm_area for this memory access, so 1114 }
714 * we can handle it.. 1115
715 */ 1116 /*
1117 * Ok, we have a good vm_area for this memory access, so
1118 * we can handle it..
1119 */
716good_area: 1120good_area:
717 si_code = SEGV_ACCERR; 1121 write = error_code & PF_WRITE;
718 write = 0; 1122
719 switch (error_code & (PF_PROT|PF_WRITE)) { 1123 if (unlikely(access_error(error_code, write, vma))) {
720 default: /* 3: write, present */ 1124 bad_area_access_error(regs, error_code, address);
721 /* fall through */ 1125 return;
722 case PF_WRITE: /* write, not present */
723 if (!(vma->vm_flags & VM_WRITE))
724 goto bad_area;
725 write++;
726 break;
727 case PF_PROT: /* read, present */
728 goto bad_area;
729 case 0: /* read, not present */
730 if (!(vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE)))
731 goto bad_area;
732 } 1126 }
733 1127
734 /* 1128 /*
735 * If for any reason at all we couldn't handle the fault, 1129 * If for any reason at all we couldn't handle the fault,
736 * make sure we exit gracefully rather than endlessly redo 1130 * make sure we exit gracefully rather than endlessly redo
737 * the fault. 1131 * the fault:
738 */ 1132 */
739 fault = handle_mm_fault(mm, vma, address, write); 1133 fault = handle_mm_fault(mm, vma, address, write);
1134
740 if (unlikely(fault & VM_FAULT_ERROR)) { 1135 if (unlikely(fault & VM_FAULT_ERROR)) {
741 if (fault & VM_FAULT_OOM) 1136 mm_fault_error(regs, error_code, address, fault);
742 goto out_of_memory; 1137 return;
743 else if (fault & VM_FAULT_SIGBUS)
744 goto do_sigbus;
745 BUG();
746 } 1138 }
1139
747 if (fault & VM_FAULT_MAJOR) 1140 if (fault & VM_FAULT_MAJOR)
748 tsk->maj_flt++; 1141 tsk->maj_flt++;
749 else 1142 else
750 tsk->min_flt++; 1143 tsk->min_flt++;
751 1144
752#ifdef CONFIG_X86_32 1145 check_v8086_mode(regs, address, tsk);
753 /*
754 * Did it hit the DOS screen memory VA from vm86 mode?
755 */
756 if (v8086_mode(regs)) {
757 unsigned long bit = (address - 0xA0000) >> PAGE_SHIFT;
758 if (bit < 32)
759 tsk->thread.screen_bitmap |= 1 << bit;
760 }
761#endif
762 up_read(&mm->mmap_sem);
763 return;
764 1146
765/*
766 * Something tried to access memory that isn't in our memory map..
767 * Fix it, but check if it's kernel or user first..
768 */
769bad_area:
770 up_read(&mm->mmap_sem); 1147 up_read(&mm->mmap_sem);
771
772bad_area_nosemaphore:
773 /* User mode accesses just cause a SIGSEGV */
774 if (error_code & PF_USER) {
775 /*
776 * It's possible to have interrupts off here.
777 */
778 local_irq_enable();
779
780 /*
781 * Valid to do another page fault here because this one came
782 * from user space.
783 */
784 if (is_prefetch(regs, address, error_code))
785 return;
786
787 if (is_errata100(regs, address))
788 return;
789
790 if (show_unhandled_signals && unhandled_signal(tsk, SIGSEGV) &&
791 printk_ratelimit()) {
792 printk(
793 "%s%s[%d]: segfault at %lx ip %p sp %p error %lx",
794 task_pid_nr(tsk) > 1 ? KERN_INFO : KERN_EMERG,
795 tsk->comm, task_pid_nr(tsk), address,
796 (void *) regs->ip, (void *) regs->sp, error_code);
797 print_vma_addr(" in ", regs->ip);
798 printk("\n");
799 }
800
801 tsk->thread.cr2 = address;
802 /* Kernel addresses are always protection faults */
803 tsk->thread.error_code = error_code | (address >= TASK_SIZE);
804 tsk->thread.trap_no = 14;
805 force_sig_info_fault(SIGSEGV, si_code, address, tsk);
806 return;
807 }
808
809 if (is_f00f_bug(regs, address))
810 return;
811
812no_context:
813 /* Are we prepared to handle this kernel fault? */
814 if (fixup_exception(regs))
815 return;
816
817 /*
818 * X86_32
819 * Valid to do another page fault here, because if this fault
820 * had been triggered by is_prefetch fixup_exception would have
821 * handled it.
822 *
823 * X86_64
824 * Hall of shame of CPU/BIOS bugs.
825 */
826 if (is_prefetch(regs, address, error_code))
827 return;
828
829 if (is_errata93(regs, address))
830 return;
831
832/*
833 * Oops. The kernel tried to access some bad page. We'll have to
834 * terminate things with extreme prejudice.
835 */
836#ifdef CONFIG_X86_32
837 bust_spinlocks(1);
838#else
839 flags = oops_begin();
840#endif
841
842 show_fault_oops(regs, error_code, address);
843
844 tsk->thread.cr2 = address;
845 tsk->thread.trap_no = 14;
846 tsk->thread.error_code = error_code;
847
848#ifdef CONFIG_X86_32
849 die("Oops", regs, error_code);
850 bust_spinlocks(0);
851 do_exit(SIGKILL);
852#else
853 sig = SIGKILL;
854 if (__die("Oops", regs, error_code))
855 sig = 0;
856 /* Executive summary in case the body of the oops scrolled away */
857 printk(KERN_EMERG "CR2: %016lx\n", address);
858 oops_end(flags, regs, sig);
859#endif
860
861out_of_memory:
862 /*
863 * We ran out of memory, call the OOM killer, and return the userspace
864 * (which will retry the fault, or kill us if we got oom-killed).
865 */
866 up_read(&mm->mmap_sem);
867 pagefault_out_of_memory();
868 return;
869
870do_sigbus:
871 up_read(&mm->mmap_sem);
872
873 /* Kernel mode? Handle exceptions or die */
874 if (!(error_code & PF_USER))
875 goto no_context;
876#ifdef CONFIG_X86_32
877 /* User space => ok to do another page fault */
878 if (is_prefetch(regs, address, error_code))
879 return;
880#endif
881 tsk->thread.cr2 = address;
882 tsk->thread.error_code = error_code;
883 tsk->thread.trap_no = 14;
884 force_sig_info_fault(SIGBUS, BUS_ADRERR, address, tsk);
885}
886
887DEFINE_SPINLOCK(pgd_lock);
888LIST_HEAD(pgd_list);
889
890void vmalloc_sync_all(void)
891{
892 unsigned long address;
893
894#ifdef CONFIG_X86_32
895 if (SHARED_KERNEL_PMD)
896 return;
897
898 for (address = VMALLOC_START & PMD_MASK;
899 address >= TASK_SIZE && address < FIXADDR_TOP;
900 address += PMD_SIZE) {
901 unsigned long flags;
902 struct page *page;
903
904 spin_lock_irqsave(&pgd_lock, flags);
905 list_for_each_entry(page, &pgd_list, lru) {
906 if (!vmalloc_sync_one(page_address(page),
907 address))
908 break;
909 }
910 spin_unlock_irqrestore(&pgd_lock, flags);
911 }
912#else /* CONFIG_X86_64 */
913 for (address = VMALLOC_START & PGDIR_MASK; address <= VMALLOC_END;
914 address += PGDIR_SIZE) {
915 const pgd_t *pgd_ref = pgd_offset_k(address);
916 unsigned long flags;
917 struct page *page;
918
919 if (pgd_none(*pgd_ref))
920 continue;
921 spin_lock_irqsave(&pgd_lock, flags);
922 list_for_each_entry(page, &pgd_list, lru) {
923 pgd_t *pgd;
924 pgd = (pgd_t *)page_address(page) + pgd_index(address);
925 if (pgd_none(*pgd))
926 set_pgd(pgd, *pgd_ref);
927 else
928 BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref));
929 }
930 spin_unlock_irqrestore(&pgd_lock, flags);
931 }
932#endif
933} 1148}
diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
index bcc079c282dd..00f127c80b0e 100644
--- a/arch/x86/mm/highmem_32.c
+++ b/arch/x86/mm/highmem_32.c
@@ -1,5 +1,6 @@
1#include <linux/highmem.h> 1#include <linux/highmem.h>
2#include <linux/module.h> 2#include <linux/module.h>
3#include <linux/swap.h> /* for totalram_pages */
3 4
4void *kmap(struct page *page) 5void *kmap(struct page *page)
5{ 6{
@@ -156,3 +157,36 @@ EXPORT_SYMBOL(kmap);
156EXPORT_SYMBOL(kunmap); 157EXPORT_SYMBOL(kunmap);
157EXPORT_SYMBOL(kmap_atomic); 158EXPORT_SYMBOL(kmap_atomic);
158EXPORT_SYMBOL(kunmap_atomic); 159EXPORT_SYMBOL(kunmap_atomic);
160
161#ifdef CONFIG_NUMA
162void __init set_highmem_pages_init(void)
163{
164 struct zone *zone;
165 int nid;
166
167 for_each_zone(zone) {
168 unsigned long zone_start_pfn, zone_end_pfn;
169
170 if (!is_highmem(zone))
171 continue;
172
173 zone_start_pfn = zone->zone_start_pfn;
174 zone_end_pfn = zone_start_pfn + zone->spanned_pages;
175
176 nid = zone_to_nid(zone);
177 printk(KERN_INFO "Initializing %s for node %d (%08lx:%08lx)\n",
178 zone->name, nid, zone_start_pfn, zone_end_pfn);
179
180 add_highpages_with_active_regions(nid, zone_start_pfn,
181 zone_end_pfn);
182 }
183 totalram_pages += totalhigh_pages;
184}
185#else
186void __init set_highmem_pages_init(void)
187{
188 add_highpages_with_active_regions(0, highstart_pfn, highend_pfn);
189
190 totalram_pages += totalhigh_pages;
191}
192#endif /* CONFIG_NUMA */
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
new file mode 100644
index 000000000000..ce6a722587d8
--- /dev/null
+++ b/arch/x86/mm/init.c
@@ -0,0 +1,49 @@
1#include <linux/swap.h>
2#include <asm/cacheflush.h>
3#include <asm/page.h>
4#include <asm/sections.h>
5#include <asm/system.h>
6
7void free_init_pages(char *what, unsigned long begin, unsigned long end)
8{
9 unsigned long addr = begin;
10
11 if (addr >= end)
12 return;
13
14 /*
15 * If debugging page accesses then do not free this memory but
16 * mark them not present - any buggy init-section access will
17 * create a kernel page fault:
18 */
19#ifdef CONFIG_DEBUG_PAGEALLOC
20 printk(KERN_INFO "debug: unmapping init memory %08lx..%08lx\n",
21 begin, PAGE_ALIGN(end));
22 set_memory_np(begin, (end - begin) >> PAGE_SHIFT);
23#else
24 /*
25 * We just marked the kernel text read only above, now that
26 * we are going to free part of that, we need to make that
27 * writeable first.
28 */
29 set_memory_rw(begin, (end - begin) >> PAGE_SHIFT);
30
31 printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10);
32
33 for (; addr < end; addr += PAGE_SIZE) {
34 ClearPageReserved(virt_to_page(addr));
35 init_page_count(virt_to_page(addr));
36 memset((void *)(addr & ~(PAGE_SIZE-1)),
37 POISON_FREE_INITMEM, PAGE_SIZE);
38 free_page(addr);
39 totalram_pages++;
40 }
41#endif
42}
43
44void free_initmem(void)
45{
46 free_init_pages("unused kernel memory",
47 (unsigned long)(&__init_begin),
48 (unsigned long)(&__init_end));
49}
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 88f1b10de3be..0b087dcd2c18 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -49,9 +49,6 @@
49#include <asm/paravirt.h> 49#include <asm/paravirt.h>
50#include <asm/setup.h> 50#include <asm/setup.h>
51#include <asm/cacheflush.h> 51#include <asm/cacheflush.h>
52#include <asm/smp.h>
53
54unsigned int __VMALLOC_RESERVE = 128 << 20;
55 52
56unsigned long max_low_pfn_mapped; 53unsigned long max_low_pfn_mapped;
57unsigned long max_pfn_mapped; 54unsigned long max_pfn_mapped;
@@ -138,6 +135,47 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
138 return pte_offset_kernel(pmd, 0); 135 return pte_offset_kernel(pmd, 0);
139} 136}
140 137
138static pte_t *__init page_table_kmap_check(pte_t *pte, pmd_t *pmd,
139 unsigned long vaddr, pte_t *lastpte)
140{
141#ifdef CONFIG_HIGHMEM
142 /*
143 * Something (early fixmap) may already have put a pte
144 * page here, which causes the page table allocation
145 * to become nonlinear. Attempt to fix it, and if it
146 * is still nonlinear then we have to bug.
147 */
148 int pmd_idx_kmap_begin = fix_to_virt(FIX_KMAP_END) >> PMD_SHIFT;
149 int pmd_idx_kmap_end = fix_to_virt(FIX_KMAP_BEGIN) >> PMD_SHIFT;
150
151 if (pmd_idx_kmap_begin != pmd_idx_kmap_end
152 && (vaddr >> PMD_SHIFT) >= pmd_idx_kmap_begin
153 && (vaddr >> PMD_SHIFT) <= pmd_idx_kmap_end
154 && ((__pa(pte) >> PAGE_SHIFT) < table_start
155 || (__pa(pte) >> PAGE_SHIFT) >= table_end)) {
156 pte_t *newpte;
157 int i;
158
159 BUG_ON(after_init_bootmem);
160 newpte = alloc_low_page();
161 for (i = 0; i < PTRS_PER_PTE; i++)
162 set_pte(newpte + i, pte[i]);
163
164 paravirt_alloc_pte(&init_mm, __pa(newpte) >> PAGE_SHIFT);
165 set_pmd(pmd, __pmd(__pa(newpte)|_PAGE_TABLE));
166 BUG_ON(newpte != pte_offset_kernel(pmd, 0));
167 __flush_tlb_all();
168
169 paravirt_release_pte(__pa(pte) >> PAGE_SHIFT);
170 pte = newpte;
171 }
172 BUG_ON(vaddr < fix_to_virt(FIX_KMAP_BEGIN - 1)
173 && vaddr > fix_to_virt(FIX_KMAP_END)
174 && lastpte && lastpte + PTRS_PER_PTE != pte);
175#endif
176 return pte;
177}
178
141/* 179/*
142 * This function initializes a certain range of kernel virtual memory 180 * This function initializes a certain range of kernel virtual memory
143 * with new bootmem page tables, everywhere page tables are missing in 181 * with new bootmem page tables, everywhere page tables are missing in
@@ -154,6 +192,7 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
154 unsigned long vaddr; 192 unsigned long vaddr;
155 pgd_t *pgd; 193 pgd_t *pgd;
156 pmd_t *pmd; 194 pmd_t *pmd;
195 pte_t *pte = NULL;
157 196
158 vaddr = start; 197 vaddr = start;
159 pgd_idx = pgd_index(vaddr); 198 pgd_idx = pgd_index(vaddr);
@@ -165,7 +204,8 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
165 pmd = pmd + pmd_index(vaddr); 204 pmd = pmd + pmd_index(vaddr);
166 for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end); 205 for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end);
167 pmd++, pmd_idx++) { 206 pmd++, pmd_idx++) {
168 one_page_table_init(pmd); 207 pte = page_table_kmap_check(one_page_table_init(pmd),
208 pmd, vaddr, pte);
169 209
170 vaddr += PMD_SIZE; 210 vaddr += PMD_SIZE;
171 } 211 }
@@ -427,22 +467,10 @@ void __init add_highpages_with_active_regions(int nid, unsigned long start_pfn,
427 work_with_active_regions(nid, add_highpages_work_fn, &data); 467 work_with_active_regions(nid, add_highpages_work_fn, &data);
428} 468}
429 469
430#ifndef CONFIG_NUMA
431static void __init set_highmem_pages_init(void)
432{
433 add_highpages_with_active_regions(0, highstart_pfn, highend_pfn);
434
435 totalram_pages += totalhigh_pages;
436}
437#endif /* !CONFIG_NUMA */
438
439#else 470#else
440static inline void permanent_kmaps_init(pgd_t *pgd_base) 471static inline void permanent_kmaps_init(pgd_t *pgd_base)
441{ 472{
442} 473}
443static inline void set_highmem_pages_init(void)
444{
445}
446#endif /* CONFIG_HIGHMEM */ 474#endif /* CONFIG_HIGHMEM */
447 475
448void __init native_pagetable_setup_start(pgd_t *base) 476void __init native_pagetable_setup_start(pgd_t *base)
@@ -508,7 +536,6 @@ static void __init early_ioremap_page_table_range_init(pgd_t *pgd_base)
508 * Fixed mappings, only the page table structure has to be 536 * Fixed mappings, only the page table structure has to be
509 * created - mappings will be set by set_fixmap(): 537 * created - mappings will be set by set_fixmap():
510 */ 538 */
511 early_ioremap_clear();
512 vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK; 539 vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK;
513 end = (FIXADDR_TOP + PMD_SIZE - 1) & PMD_MASK; 540 end = (FIXADDR_TOP + PMD_SIZE - 1) & PMD_MASK;
514 page_table_range_init(vaddr, end, pgd_base); 541 page_table_range_init(vaddr, end, pgd_base);
@@ -633,75 +660,97 @@ static int __init parse_highmem(char *arg)
633} 660}
634early_param("highmem", parse_highmem); 661early_param("highmem", parse_highmem);
635 662
663#define MSG_HIGHMEM_TOO_BIG \
664 "highmem size (%luMB) is bigger than pages available (%luMB)!\n"
665
666#define MSG_LOWMEM_TOO_SMALL \
667 "highmem size (%luMB) results in <64MB lowmem, ignoring it!\n"
636/* 668/*
637 * Determine low and high memory ranges: 669 * All of RAM fits into lowmem - but if user wants highmem
670 * artificially via the highmem=x boot parameter then create
671 * it:
638 */ 672 */
639void __init find_low_pfn_range(void) 673void __init lowmem_pfn_init(void)
640{ 674{
641 /* it could update max_pfn */
642
643 /* max_low_pfn is 0, we already have early_res support */ 675 /* max_low_pfn is 0, we already have early_res support */
644
645 max_low_pfn = max_pfn; 676 max_low_pfn = max_pfn;
646 if (max_low_pfn > MAXMEM_PFN) { 677
647 if (highmem_pages == -1) 678 if (highmem_pages == -1)
648 highmem_pages = max_pfn - MAXMEM_PFN; 679 highmem_pages = 0;
649 if (highmem_pages + MAXMEM_PFN < max_pfn) 680#ifdef CONFIG_HIGHMEM
650 max_pfn = MAXMEM_PFN + highmem_pages; 681 if (highmem_pages >= max_pfn) {
651 if (highmem_pages + MAXMEM_PFN > max_pfn) { 682 printk(KERN_ERR MSG_HIGHMEM_TOO_BIG,
652 printk(KERN_WARNING "only %luMB highmem pages " 683 pages_to_mb(highmem_pages), pages_to_mb(max_pfn));
653 "available, ignoring highmem size of %uMB.\n", 684 highmem_pages = 0;
654 pages_to_mb(max_pfn - MAXMEM_PFN), 685 }
686 if (highmem_pages) {
687 if (max_low_pfn - highmem_pages < 64*1024*1024/PAGE_SIZE) {
688 printk(KERN_ERR MSG_LOWMEM_TOO_SMALL,
655 pages_to_mb(highmem_pages)); 689 pages_to_mb(highmem_pages));
656 highmem_pages = 0; 690 highmem_pages = 0;
657 } 691 }
658 max_low_pfn = MAXMEM_PFN; 692 max_low_pfn -= highmem_pages;
693 }
694#else
695 if (highmem_pages)
696 printk(KERN_ERR "ignoring highmem size on non-highmem kernel!\n");
697#endif
698}
699
700#define MSG_HIGHMEM_TOO_SMALL \
701 "only %luMB highmem pages available, ignoring highmem size of %luMB!\n"
702
703#define MSG_HIGHMEM_TRIMMED \
704 "Warning: only 4GB will be used. Use a HIGHMEM64G enabled kernel!\n"
705/*
706 * We have more RAM than fits into lowmem - we try to put it into
707 * highmem, also taking the highmem=x boot parameter into account:
708 */
709void __init highmem_pfn_init(void)
710{
711 max_low_pfn = MAXMEM_PFN;
712
713 if (highmem_pages == -1)
714 highmem_pages = max_pfn - MAXMEM_PFN;
715
716 if (highmem_pages + MAXMEM_PFN < max_pfn)
717 max_pfn = MAXMEM_PFN + highmem_pages;
718
719 if (highmem_pages + MAXMEM_PFN > max_pfn) {
720 printk(KERN_WARNING MSG_HIGHMEM_TOO_SMALL,
721 pages_to_mb(max_pfn - MAXMEM_PFN),
722 pages_to_mb(highmem_pages));
723 highmem_pages = 0;
724 }
659#ifndef CONFIG_HIGHMEM 725#ifndef CONFIG_HIGHMEM
660 /* Maximum memory usable is what is directly addressable */ 726 /* Maximum memory usable is what is directly addressable */
661 printk(KERN_WARNING "Warning only %ldMB will be used.\n", 727 printk(KERN_WARNING "Warning only %ldMB will be used.\n", MAXMEM>>20);
662 MAXMEM>>20); 728 if (max_pfn > MAX_NONPAE_PFN)
663 if (max_pfn > MAX_NONPAE_PFN) 729 printk(KERN_WARNING "Use a HIGHMEM64G enabled kernel.\n");
664 printk(KERN_WARNING 730 else
665 "Use a HIGHMEM64G enabled kernel.\n"); 731 printk(KERN_WARNING "Use a HIGHMEM enabled kernel.\n");
666 else 732 max_pfn = MAXMEM_PFN;
667 printk(KERN_WARNING "Use a HIGHMEM enabled kernel.\n");
668 max_pfn = MAXMEM_PFN;
669#else /* !CONFIG_HIGHMEM */ 733#else /* !CONFIG_HIGHMEM */
670#ifndef CONFIG_HIGHMEM64G 734#ifndef CONFIG_HIGHMEM64G
671 if (max_pfn > MAX_NONPAE_PFN) { 735 if (max_pfn > MAX_NONPAE_PFN) {
672 max_pfn = MAX_NONPAE_PFN; 736 max_pfn = MAX_NONPAE_PFN;
673 printk(KERN_WARNING "Warning only 4GB will be used." 737 printk(KERN_WARNING MSG_HIGHMEM_TRIMMED);
674 "Use a HIGHMEM64G enabled kernel.\n"); 738 }
675 }
676#endif /* !CONFIG_HIGHMEM64G */ 739#endif /* !CONFIG_HIGHMEM64G */
677#endif /* !CONFIG_HIGHMEM */ 740#endif /* !CONFIG_HIGHMEM */
678 } else { 741}
679 if (highmem_pages == -1) 742
680 highmem_pages = 0; 743/*
681#ifdef CONFIG_HIGHMEM 744 * Determine low and high memory ranges:
682 if (highmem_pages >= max_pfn) { 745 */
683 printk(KERN_ERR "highmem size specified (%uMB) is " 746void __init find_low_pfn_range(void)
684 "bigger than pages available (%luMB)!.\n", 747{
685 pages_to_mb(highmem_pages), 748 /* it could update max_pfn */
686 pages_to_mb(max_pfn)); 749
687 highmem_pages = 0; 750 if (max_pfn <= MAXMEM_PFN)
688 } 751 lowmem_pfn_init();
689 if (highmem_pages) { 752 else
690 if (max_low_pfn - highmem_pages < 753 highmem_pfn_init();
691 64*1024*1024/PAGE_SIZE){
692 printk(KERN_ERR "highmem size %uMB results in "
693 "smaller than 64MB lowmem, ignoring it.\n"
694 , pages_to_mb(highmem_pages));
695 highmem_pages = 0;
696 }
697 max_low_pfn -= highmem_pages;
698 }
699#else
700 if (highmem_pages)
701 printk(KERN_ERR "ignoring highmem size on non-highmem"
702 " kernel!\n");
703#endif
704 }
705} 754}
706 755
707#ifndef CONFIG_NEED_MULTIPLE_NODES 756#ifndef CONFIG_NEED_MULTIPLE_NODES
@@ -784,10 +833,10 @@ static void __init find_early_table_space(unsigned long end, int use_pse)
784 unsigned long puds, pmds, ptes, tables, start; 833 unsigned long puds, pmds, ptes, tables, start;
785 834
786 puds = (end + PUD_SIZE - 1) >> PUD_SHIFT; 835 puds = (end + PUD_SIZE - 1) >> PUD_SHIFT;
787 tables = PAGE_ALIGN(puds * sizeof(pud_t)); 836 tables = roundup(puds * sizeof(pud_t), PAGE_SIZE);
788 837
789 pmds = (end + PMD_SIZE - 1) >> PMD_SHIFT; 838 pmds = (end + PMD_SIZE - 1) >> PMD_SHIFT;
790 tables += PAGE_ALIGN(pmds * sizeof(pmd_t)); 839 tables += roundup(pmds * sizeof(pmd_t), PAGE_SIZE);
791 840
792 if (use_pse) { 841 if (use_pse) {
793 unsigned long extra; 842 unsigned long extra;
@@ -798,10 +847,10 @@ static void __init find_early_table_space(unsigned long end, int use_pse)
798 } else 847 } else
799 ptes = (end + PAGE_SIZE - 1) >> PAGE_SHIFT; 848 ptes = (end + PAGE_SIZE - 1) >> PAGE_SHIFT;
800 849
801 tables += PAGE_ALIGN(ptes * sizeof(pte_t)); 850 tables += roundup(ptes * sizeof(pte_t), PAGE_SIZE);
802 851
803 /* for fixmap */ 852 /* for fixmap */
804 tables += PAGE_SIZE * 2; 853 tables += roundup(__end_of_fixed_addresses * sizeof(pte_t), PAGE_SIZE);
805 854
806 /* 855 /*
807 * RED-PEN putting page tables only on node 0 could 856 * RED-PEN putting page tables only on node 0 could
@@ -1151,45 +1200,6 @@ void mark_rodata_ro(void)
1151} 1200}
1152#endif 1201#endif
1153 1202
1154void free_init_pages(char *what, unsigned long begin, unsigned long end)
1155{
1156#ifdef CONFIG_DEBUG_PAGEALLOC
1157 /*
1158 * If debugging page accesses then do not free this memory but
1159 * mark them not present - any buggy init-section access will
1160 * create a kernel page fault:
1161 */
1162 printk(KERN_INFO "debug: unmapping init memory %08lx..%08lx\n",
1163 begin, PAGE_ALIGN(end));
1164 set_memory_np(begin, (end - begin) >> PAGE_SHIFT);
1165#else
1166 unsigned long addr;
1167
1168 /*
1169 * We just marked the kernel text read only above, now that
1170 * we are going to free part of that, we need to make that
1171 * writeable first.
1172 */
1173 set_memory_rw(begin, (end - begin) >> PAGE_SHIFT);
1174
1175 for (addr = begin; addr < end; addr += PAGE_SIZE) {
1176 ClearPageReserved(virt_to_page(addr));
1177 init_page_count(virt_to_page(addr));
1178 memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE);
1179 free_page(addr);
1180 totalram_pages++;
1181 }
1182 printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10);
1183#endif
1184}
1185
1186void free_initmem(void)
1187{
1188 free_init_pages("unused kernel memory",
1189 (unsigned long)(&__init_begin),
1190 (unsigned long)(&__init_end));
1191}
1192
1193#ifdef CONFIG_BLK_DEV_INITRD 1203#ifdef CONFIG_BLK_DEV_INITRD
1194void free_initrd_mem(unsigned long start, unsigned long end) 1204void free_initrd_mem(unsigned long start, unsigned long end)
1195{ 1205{
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 23f68e77ad1f..724e537432e7 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -596,7 +596,7 @@ static void __init init_gbpages(void)
596 direct_gbpages = 0; 596 direct_gbpages = 0;
597} 597}
598 598
599static unsigned long __init kernel_physical_mapping_init(unsigned long start, 599static unsigned long __meminit kernel_physical_mapping_init(unsigned long start,
600 unsigned long end, 600 unsigned long end,
601 unsigned long page_size_mask) 601 unsigned long page_size_mask)
602{ 602{
@@ -714,6 +714,8 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
714 pos = start_pfn << PAGE_SHIFT; 714 pos = start_pfn << PAGE_SHIFT;
715 end_pfn = ((pos + (PMD_SIZE - 1)) >> PMD_SHIFT) 715 end_pfn = ((pos + (PMD_SIZE - 1)) >> PMD_SHIFT)
716 << (PMD_SHIFT - PAGE_SHIFT); 716 << (PMD_SHIFT - PAGE_SHIFT);
717 if (end_pfn > (end >> PAGE_SHIFT))
718 end_pfn = end >> PAGE_SHIFT;
717 if (start_pfn < end_pfn) { 719 if (start_pfn < end_pfn) {
718 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, 0); 720 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, 0);
719 pos = end_pfn << PAGE_SHIFT; 721 pos = end_pfn << PAGE_SHIFT;
@@ -945,43 +947,6 @@ void __init mem_init(void)
945 initsize >> 10); 947 initsize >> 10);
946} 948}
947 949
948void free_init_pages(char *what, unsigned long begin, unsigned long end)
949{
950 unsigned long addr = begin;
951
952 if (addr >= end)
953 return;
954
955 /*
956 * If debugging page accesses then do not free this memory but
957 * mark them not present - any buggy init-section access will
958 * create a kernel page fault:
959 */
960#ifdef CONFIG_DEBUG_PAGEALLOC
961 printk(KERN_INFO "debug: unmapping init memory %08lx..%08lx\n",
962 begin, PAGE_ALIGN(end));
963 set_memory_np(begin, (end - begin) >> PAGE_SHIFT);
964#else
965 printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10);
966
967 for (; addr < end; addr += PAGE_SIZE) {
968 ClearPageReserved(virt_to_page(addr));
969 init_page_count(virt_to_page(addr));
970 memset((void *)(addr & ~(PAGE_SIZE-1)),
971 POISON_FREE_INITMEM, PAGE_SIZE);
972 free_page(addr);
973 totalram_pages++;
974 }
975#endif
976}
977
978void free_initmem(void)
979{
980 free_init_pages("unused kernel memory",
981 (unsigned long)(&__init_begin),
982 (unsigned long)(&__init_end));
983}
984
985#ifdef CONFIG_DEBUG_RODATA 950#ifdef CONFIG_DEBUG_RODATA
986const int rodata_test_data = 0xC3; 951const int rodata_test_data = 0xC3;
987EXPORT_SYMBOL_GPL(rodata_test_data); 952EXPORT_SYMBOL_GPL(rodata_test_data);
diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
index d0151d8ce452..04102d42ff42 100644
--- a/arch/x86/mm/iomap_32.c
+++ b/arch/x86/mm/iomap_32.c
@@ -17,8 +17,20 @@
17 */ 17 */
18 18
19#include <asm/iomap.h> 19#include <asm/iomap.h>
20#include <asm/pat.h>
20#include <linux/module.h> 21#include <linux/module.h>
21 22
23int is_io_mapping_possible(resource_size_t base, unsigned long size)
24{
25#ifndef CONFIG_X86_PAE
26 /* There is no way to map greater than 1 << 32 address without PAE */
27 if (base + size > 0x100000000ULL)
28 return 0;
29#endif
30 return 1;
31}
32EXPORT_SYMBOL_GPL(is_io_mapping_possible);
33
22/* Map 'pfn' using fixed map 'type' and protections 'prot' 34/* Map 'pfn' using fixed map 'type' and protections 'prot'
23 */ 35 */
24void * 36void *
@@ -29,6 +41,15 @@ iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot)
29 41
30 pagefault_disable(); 42 pagefault_disable();
31 43
44 /*
45 * For non-PAT systems, promote PAGE_KERNEL_WC to PAGE_KERNEL_UC_MINUS.
46 * PAGE_KERNEL_WC maps to PWT, which translates to uncached if the
47 * MTRR is UC or WC. UC_MINUS gets the real intention, of the
48 * user, which is "WC if the MTRR is WC, UC if you can't do that."
49 */
50 if (!pat_enabled && pgprot_val(prot) == pgprot_val(PAGE_KERNEL_WC))
51 prot = PAGE_KERNEL_UC_MINUS;
52
32 idx = type + KM_TYPE_NR*smp_processor_id(); 53 idx = type + KM_TYPE_NR*smp_processor_id();
33 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 54 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
34 set_pte(kmap_pte-idx, pfn_pte(pfn, prot)); 55 set_pte(kmap_pte-idx, pfn_pte(pfn, prot));
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index bd85d42819e1..433f7bd4648a 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -134,25 +134,6 @@ int page_is_ram(unsigned long pagenr)
134 return 0; 134 return 0;
135} 135}
136 136
137int pagerange_is_ram(unsigned long start, unsigned long end)
138{
139 int ram_page = 0, not_rampage = 0;
140 unsigned long page_nr;
141
142 for (page_nr = (start >> PAGE_SHIFT); page_nr < (end >> PAGE_SHIFT);
143 ++page_nr) {
144 if (page_is_ram(page_nr))
145 ram_page = 1;
146 else
147 not_rampage = 1;
148
149 if (ram_page == not_rampage)
150 return -1;
151 }
152
153 return ram_page;
154}
155
156/* 137/*
157 * Fix up the linear direct mapping of the kernel to avoid cache attribute 138 * Fix up the linear direct mapping of the kernel to avoid cache attribute
158 * conflicts. 139 * conflicts.
@@ -367,7 +348,7 @@ EXPORT_SYMBOL(ioremap_nocache);
367 * 348 *
368 * Must be freed with iounmap. 349 * Must be freed with iounmap.
369 */ 350 */
370void __iomem *ioremap_wc(unsigned long phys_addr, unsigned long size) 351void __iomem *ioremap_wc(resource_size_t phys_addr, unsigned long size)
371{ 352{
372 if (pat_enabled) 353 if (pat_enabled)
373 return __ioremap_caller(phys_addr, size, _PAGE_CACHE_WC, 354 return __ioremap_caller(phys_addr, size, _PAGE_CACHE_WC,
@@ -557,34 +538,9 @@ void __init early_ioremap_init(void)
557 } 538 }
558} 539}
559 540
560void __init early_ioremap_clear(void)
561{
562 pmd_t *pmd;
563
564 if (early_ioremap_debug)
565 printk(KERN_INFO "early_ioremap_clear()\n");
566
567 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
568 pmd_clear(pmd);
569 paravirt_release_pte(__pa(bm_pte) >> PAGE_SHIFT);
570 __flush_tlb_all();
571}
572
573void __init early_ioremap_reset(void) 541void __init early_ioremap_reset(void)
574{ 542{
575 enum fixed_addresses idx;
576 unsigned long addr, phys;
577 pte_t *pte;
578
579 after_paging_init = 1; 543 after_paging_init = 1;
580 for (idx = FIX_BTMAP_BEGIN; idx >= FIX_BTMAP_END; idx--) {
581 addr = fix_to_virt(idx);
582 pte = early_ioremap_pte(addr);
583 if (pte_present(*pte)) {
584 phys = pte_val(*pte) & PAGE_MASK;
585 set_fixmap(idx, phys);
586 }
587 }
588} 544}
589 545
590static void __init __early_set_fixmap(enum fixed_addresses idx, 546static void __init __early_set_fixmap(enum fixed_addresses idx,
diff --git a/arch/x86/mm/k8topology_64.c b/arch/x86/mm/k8topology_64.c
index 41f1b5c00a1d..268f8255280f 100644
--- a/arch/x86/mm/k8topology_64.c
+++ b/arch/x86/mm/k8topology_64.c
@@ -81,7 +81,6 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)
81 unsigned numnodes, cores, bits, apicid_base; 81 unsigned numnodes, cores, bits, apicid_base;
82 unsigned long prevbase; 82 unsigned long prevbase;
83 struct bootnode nodes[8]; 83 struct bootnode nodes[8];
84 unsigned char nodeids[8];
85 int i, j, nb, found = 0; 84 int i, j, nb, found = 0;
86 u32 nodeid, reg; 85 u32 nodeid, reg;
87 86
@@ -110,7 +109,6 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)
110 limit = read_pci_config(0, nb, 1, 0x44 + i*8); 109 limit = read_pci_config(0, nb, 1, 0x44 + i*8);
111 110
112 nodeid = limit & 7; 111 nodeid = limit & 7;
113 nodeids[i] = nodeid;
114 if ((base & 3) == 0) { 112 if ((base & 3) == 0) {
115 if (i < numnodes) 113 if (i < numnodes)
116 printk("Skipping disabled node %d\n", i); 114 printk("Skipping disabled node %d\n", i);
@@ -179,9 +177,6 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)
179 177
180 nodes[nodeid].start = base; 178 nodes[nodeid].start = base;
181 nodes[nodeid].end = limit; 179 nodes[nodeid].end = limit;
182 e820_register_active_regions(nodeid,
183 nodes[nodeid].start >> PAGE_SHIFT,
184 nodes[nodeid].end >> PAGE_SHIFT);
185 180
186 prevbase = base; 181 prevbase = base;
187 182
@@ -211,12 +206,15 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)
211 } 206 }
212 207
213 for (i = 0; i < 8; i++) { 208 for (i = 0; i < 8; i++) {
214 if (nodes[i].start != nodes[i].end) { 209 if (nodes[i].start == nodes[i].end)
215 nodeid = nodeids[i]; 210 continue;
216 for (j = apicid_base; j < cores + apicid_base; j++) 211
217 apicid_to_node[(nodeid << bits) + j] = i; 212 e820_register_active_regions(i,
218 setup_node_bootmem(i, nodes[i].start, nodes[i].end); 213 nodes[i].start >> PAGE_SHIFT,
219 } 214 nodes[i].end >> PAGE_SHIFT);
215 for (j = apicid_base; j < cores + apicid_base; j++)
216 apicid_to_node[(i << bits) + j] = i;
217 setup_node_bootmem(i, nodes[i].start, nodes[i].end);
220 } 218 }
221 219
222 numa_init_array(); 220 numa_init_array();
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c
index 9cab18b0b857..0bcd7883d036 100644
--- a/arch/x86/mm/memtest.c
+++ b/arch/x86/mm/memtest.c
@@ -9,44 +9,44 @@
9 9
10#include <asm/e820.h> 10#include <asm/e820.h>
11 11
12static void __init memtest(unsigned long start_phys, unsigned long size, 12static u64 patterns[] __initdata = {
13 unsigned pattern) 13 0,
14 0xffffffffffffffffULL,
15 0x5555555555555555ULL,
16 0xaaaaaaaaaaaaaaaaULL,
17 0x1111111111111111ULL,
18 0x2222222222222222ULL,
19 0x4444444444444444ULL,
20 0x8888888888888888ULL,
21 0x3333333333333333ULL,
22 0x6666666666666666ULL,
23 0x9999999999999999ULL,
24 0xccccccccccccccccULL,
25 0x7777777777777777ULL,
26 0xbbbbbbbbbbbbbbbbULL,
27 0xddddddddddddddddULL,
28 0xeeeeeeeeeeeeeeeeULL,
29 0x7a6c7258554e494cULL, /* yeah ;-) */
30};
31
32static void __init reserve_bad_mem(u64 pattern, u64 start_bad, u64 end_bad)
14{ 33{
15 unsigned long i; 34 printk(KERN_INFO " %016llx bad mem addr %010llx - %010llx reserved\n",
16 unsigned long *start; 35 (unsigned long long) pattern,
17 unsigned long start_bad; 36 (unsigned long long) start_bad,
18 unsigned long last_bad; 37 (unsigned long long) end_bad);
19 unsigned long val; 38 reserve_early(start_bad, end_bad, "BAD RAM");
20 unsigned long start_phys_aligned; 39}
21 unsigned long count;
22 unsigned long incr;
23
24 switch (pattern) {
25 case 0:
26 val = 0UL;
27 break;
28 case 1:
29 val = -1UL;
30 break;
31 case 2:
32#ifdef CONFIG_X86_64
33 val = 0x5555555555555555UL;
34#else
35 val = 0x55555555UL;
36#endif
37 break;
38 case 3:
39#ifdef CONFIG_X86_64
40 val = 0xaaaaaaaaaaaaaaaaUL;
41#else
42 val = 0xaaaaaaaaUL;
43#endif
44 break;
45 default:
46 return;
47 }
48 40
49 incr = sizeof(unsigned long); 41static void __init memtest(u64 pattern, u64 start_phys, u64 size)
42{
43 u64 i, count;
44 u64 *start;
45 u64 start_bad, last_bad;
46 u64 start_phys_aligned;
47 size_t incr;
48
49 incr = sizeof(pattern);
50 start_phys_aligned = ALIGN(start_phys, incr); 50 start_phys_aligned = ALIGN(start_phys, incr);
51 count = (size - (start_phys_aligned - start_phys))/incr; 51 count = (size - (start_phys_aligned - start_phys))/incr;
52 start = __va(start_phys_aligned); 52 start = __va(start_phys_aligned);
@@ -54,25 +54,42 @@ static void __init memtest(unsigned long start_phys, unsigned long size,
54 last_bad = 0; 54 last_bad = 0;
55 55
56 for (i = 0; i < count; i++) 56 for (i = 0; i < count; i++)
57 start[i] = val; 57 start[i] = pattern;
58 for (i = 0; i < count; i++, start++, start_phys_aligned += incr) { 58 for (i = 0; i < count; i++, start++, start_phys_aligned += incr) {
59 if (*start != val) { 59 if (*start == pattern)
60 if (start_phys_aligned == last_bad + incr) { 60 continue;
61 last_bad += incr; 61 if (start_phys_aligned == last_bad + incr) {
62 } else { 62 last_bad += incr;
63 if (start_bad) { 63 continue;
64 printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved",
65 val, start_bad, last_bad + incr);
66 reserve_early(start_bad, last_bad + incr, "BAD RAM");
67 }
68 start_bad = last_bad = start_phys_aligned;
69 }
70 } 64 }
65 if (start_bad)
66 reserve_bad_mem(pattern, start_bad, last_bad + incr);
67 start_bad = last_bad = start_phys_aligned;
71 } 68 }
72 if (start_bad) { 69 if (start_bad)
73 printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved", 70 reserve_bad_mem(pattern, start_bad, last_bad + incr);
74 val, start_bad, last_bad + incr); 71}
75 reserve_early(start_bad, last_bad + incr, "BAD RAM"); 72
73static void __init do_one_pass(u64 pattern, u64 start, u64 end)
74{
75 u64 size = 0;
76
77 while (start < end) {
78 start = find_e820_area_size(start, &size, 1);
79
80 /* done ? */
81 if (start >= end)
82 break;
83 if (start + size > end)
84 size = end - start;
85
86 printk(KERN_INFO " %010llx - %010llx pattern %016llx\n",
87 (unsigned long long) start,
88 (unsigned long long) start + size,
89 (unsigned long long) cpu_to_be64(pattern));
90 memtest(pattern, start, size);
91
92 start += size;
76 } 93 }
77} 94}
78 95
@@ -90,33 +107,22 @@ early_param("memtest", parse_memtest);
90 107
91void __init early_memtest(unsigned long start, unsigned long end) 108void __init early_memtest(unsigned long start, unsigned long end)
92{ 109{
93 u64 t_start, t_size; 110 unsigned int i;
94 unsigned pattern; 111 unsigned int idx = 0;
95 112
96 if (!memtest_pattern) 113 if (!memtest_pattern)
97 return; 114 return;
98 115
99 printk(KERN_INFO "early_memtest: pattern num %d", memtest_pattern); 116 printk(KERN_INFO "early_memtest: # of tests: %d\n", memtest_pattern);
100 for (pattern = 0; pattern < memtest_pattern; pattern++) { 117 for (i = 0; i < memtest_pattern; i++) {
101 t_start = start; 118 idx = i % ARRAY_SIZE(patterns);
102 t_size = 0; 119 do_one_pass(patterns[idx], start, end);
103 while (t_start < end) { 120 }
104 t_start = find_e820_area_size(t_start, &t_size, 1);
105
106 /* done ? */
107 if (t_start >= end)
108 break;
109 if (t_start + t_size > end)
110 t_size = end - t_start;
111
112 printk(KERN_CONT "\n %010llx - %010llx pattern %d",
113 (unsigned long long)t_start,
114 (unsigned long long)t_start + t_size, pattern);
115
116 memtest(t_start, t_size, pattern);
117 121
118 t_start += t_size; 122 if (idx > 0) {
119 } 123 printk(KERN_INFO "early_memtest: wipe out "
124 "test pattern from memory\n");
125 /* additional test with pattern 0 will do this */
126 do_one_pass(0, start, end);
120 } 127 }
121 printk(KERN_CONT "\n");
122} 128}
diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
index 56fe7124fbec..165829600566 100644
--- a/arch/x86/mm/mmap.c
+++ b/arch/x86/mm/mmap.c
@@ -4,7 +4,7 @@
4 * Based on code by Ingo Molnar and Andi Kleen, copyrighted 4 * Based on code by Ingo Molnar and Andi Kleen, copyrighted
5 * as follows: 5 * as follows:
6 * 6 *
7 * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina. 7 * Copyright 2003-2009 Red Hat Inc.
8 * All Rights Reserved. 8 * All Rights Reserved.
9 * Copyright 2005 Andi Kleen, SUSE Labs. 9 * Copyright 2005 Andi Kleen, SUSE Labs.
10 * Copyright 2007 Jiri Kosina, SUSE Labs. 10 * Copyright 2007 Jiri Kosina, SUSE Labs.
diff --git a/arch/x86/mm/numa_32.c b/arch/x86/mm/numa_32.c
index d1f7439d173c..451fe95a0352 100644
--- a/arch/x86/mm/numa_32.c
+++ b/arch/x86/mm/numa_32.c
@@ -194,7 +194,7 @@ void *alloc_remap(int nid, unsigned long size)
194 size = ALIGN(size, L1_CACHE_BYTES); 194 size = ALIGN(size, L1_CACHE_BYTES);
195 195
196 if (!allocation || (allocation + size) >= node_remap_end_vaddr[nid]) 196 if (!allocation || (allocation + size) >= node_remap_end_vaddr[nid])
197 return 0; 197 return NULL;
198 198
199 node_remap_alloc_vaddr[nid] += size; 199 node_remap_alloc_vaddr[nid] += size;
200 memset(allocation, 0, size); 200 memset(allocation, 0, size);
@@ -423,32 +423,6 @@ void __init initmem_init(unsigned long start_pfn,
423 setup_bootmem_allocator(); 423 setup_bootmem_allocator();
424} 424}
425 425
426void __init set_highmem_pages_init(void)
427{
428#ifdef CONFIG_HIGHMEM
429 struct zone *zone;
430 int nid;
431
432 for_each_zone(zone) {
433 unsigned long zone_start_pfn, zone_end_pfn;
434
435 if (!is_highmem(zone))
436 continue;
437
438 zone_start_pfn = zone->zone_start_pfn;
439 zone_end_pfn = zone_start_pfn + zone->spanned_pages;
440
441 nid = zone_to_nid(zone);
442 printk(KERN_INFO "Initializing %s for node %d (%08lx:%08lx)\n",
443 zone->name, nid, zone_start_pfn, zone_end_pfn);
444
445 add_highpages_with_active_regions(nid, zone_start_pfn,
446 zone_end_pfn);
447 }
448 totalram_pages += totalhigh_pages;
449#endif
450}
451
452#ifdef CONFIG_MEMORY_HOTPLUG 426#ifdef CONFIG_MEMORY_HOTPLUG
453static int paddr_to_nid(u64 addr) 427static int paddr_to_nid(u64 addr)
454{ 428{
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c
index 71a14f89f89e..64c9cf043cdd 100644
--- a/arch/x86/mm/numa_64.c
+++ b/arch/x86/mm/numa_64.c
@@ -20,6 +20,12 @@
20#include <asm/acpi.h> 20#include <asm/acpi.h>
21#include <asm/k8.h> 21#include <asm/k8.h>
22 22
23#ifdef CONFIG_DEBUG_PER_CPU_MAPS
24# define DBG(x...) printk(KERN_DEBUG x)
25#else
26# define DBG(x...)
27#endif
28
23struct pglist_data *node_data[MAX_NUMNODES] __read_mostly; 29struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
24EXPORT_SYMBOL(node_data); 30EXPORT_SYMBOL(node_data);
25 31
@@ -33,6 +39,21 @@ int numa_off __initdata;
33static unsigned long __initdata nodemap_addr; 39static unsigned long __initdata nodemap_addr;
34static unsigned long __initdata nodemap_size; 40static unsigned long __initdata nodemap_size;
35 41
42DEFINE_PER_CPU(int, node_number) = 0;
43EXPORT_PER_CPU_SYMBOL(node_number);
44
45/*
46 * Map cpu index to node index
47 */
48DEFINE_EARLY_PER_CPU(int, x86_cpu_to_node_map, NUMA_NO_NODE);
49EXPORT_EARLY_PER_CPU_SYMBOL(x86_cpu_to_node_map);
50
51/*
52 * Which logical CPUs are on which nodes
53 */
54cpumask_t *node_to_cpumask_map;
55EXPORT_SYMBOL(node_to_cpumask_map);
56
36/* 57/*
37 * Given a shift value, try to populate memnodemap[] 58 * Given a shift value, try to populate memnodemap[]
38 * Returns : 59 * Returns :
@@ -145,7 +166,7 @@ int __init compute_hash_shift(struct bootnode *nodes, int numnodes,
145 return shift; 166 return shift;
146} 167}
147 168
148int early_pfn_to_nid(unsigned long pfn) 169int __meminit __early_pfn_to_nid(unsigned long pfn)
149{ 170{
150 return phys_to_nid(pfn << PAGE_SHIFT); 171 return phys_to_nid(pfn << PAGE_SHIFT);
151} 172}
@@ -640,3 +661,199 @@ void __init init_cpu_to_node(void)
640#endif 661#endif
641 662
642 663
664/*
665 * Allocate node_to_cpumask_map based on number of available nodes
666 * Requires node_possible_map to be valid.
667 *
668 * Note: node_to_cpumask() is not valid until after this is done.
669 * (Use CONFIG_DEBUG_PER_CPU_MAPS to check this.)
670 */
671void __init setup_node_to_cpumask_map(void)
672{
673 unsigned int node, num = 0;
674 cpumask_t *map;
675
676 /* setup nr_node_ids if not done yet */
677 if (nr_node_ids == MAX_NUMNODES) {
678 for_each_node_mask(node, node_possible_map)
679 num = node;
680 nr_node_ids = num + 1;
681 }
682
683 /* allocate the map */
684 map = alloc_bootmem_low(nr_node_ids * sizeof(cpumask_t));
685 DBG("node_to_cpumask_map at %p for %d nodes\n", map, nr_node_ids);
686
687 pr_debug("Node to cpumask map at %p for %d nodes\n",
688 map, nr_node_ids);
689
690 /* node_to_cpumask() will now work */
691 node_to_cpumask_map = map;
692}
693
694void __cpuinit numa_set_node(int cpu, int node)
695{
696 int *cpu_to_node_map = early_per_cpu_ptr(x86_cpu_to_node_map);
697
698 /* early setting, no percpu area yet */
699 if (cpu_to_node_map) {
700 cpu_to_node_map[cpu] = node;
701 return;
702 }
703
704#ifdef CONFIG_DEBUG_PER_CPU_MAPS
705 if (cpu >= nr_cpu_ids || !cpu_possible(cpu)) {
706 printk(KERN_ERR "numa_set_node: invalid cpu# (%d)\n", cpu);
707 dump_stack();
708 return;
709 }
710#endif
711 per_cpu(x86_cpu_to_node_map, cpu) = node;
712
713 if (node != NUMA_NO_NODE)
714 per_cpu(node_number, cpu) = node;
715}
716
717void __cpuinit numa_clear_node(int cpu)
718{
719 numa_set_node(cpu, NUMA_NO_NODE);
720}
721
722#ifndef CONFIG_DEBUG_PER_CPU_MAPS
723
724void __cpuinit numa_add_cpu(int cpu)
725{
726 cpu_set(cpu, node_to_cpumask_map[early_cpu_to_node(cpu)]);
727}
728
729void __cpuinit numa_remove_cpu(int cpu)
730{
731 cpu_clear(cpu, node_to_cpumask_map[early_cpu_to_node(cpu)]);
732}
733
734#else /* CONFIG_DEBUG_PER_CPU_MAPS */
735
736/*
737 * --------- debug versions of the numa functions ---------
738 */
739static void __cpuinit numa_set_cpumask(int cpu, int enable)
740{
741 int node = early_cpu_to_node(cpu);
742 cpumask_t *mask;
743 char buf[64];
744
745 if (node_to_cpumask_map == NULL) {
746 printk(KERN_ERR "node_to_cpumask_map NULL\n");
747 dump_stack();
748 return;
749 }
750
751 mask = &node_to_cpumask_map[node];
752 if (enable)
753 cpu_set(cpu, *mask);
754 else
755 cpu_clear(cpu, *mask);
756
757 cpulist_scnprintf(buf, sizeof(buf), mask);
758 printk(KERN_DEBUG "%s cpu %d node %d: mask now %s\n",
759 enable ? "numa_add_cpu" : "numa_remove_cpu", cpu, node, buf);
760}
761
762void __cpuinit numa_add_cpu(int cpu)
763{
764 numa_set_cpumask(cpu, 1);
765}
766
767void __cpuinit numa_remove_cpu(int cpu)
768{
769 numa_set_cpumask(cpu, 0);
770}
771
772int cpu_to_node(int cpu)
773{
774 if (early_per_cpu_ptr(x86_cpu_to_node_map)) {
775 printk(KERN_WARNING
776 "cpu_to_node(%d): usage too early!\n", cpu);
777 dump_stack();
778 return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu];
779 }
780 return per_cpu(x86_cpu_to_node_map, cpu);
781}
782EXPORT_SYMBOL(cpu_to_node);
783
784/*
785 * Same function as cpu_to_node() but used if called before the
786 * per_cpu areas are setup.
787 */
788int early_cpu_to_node(int cpu)
789{
790 if (early_per_cpu_ptr(x86_cpu_to_node_map))
791 return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu];
792
793 if (!cpu_possible(cpu)) {
794 printk(KERN_WARNING
795 "early_cpu_to_node(%d): no per_cpu area!\n", cpu);
796 dump_stack();
797 return NUMA_NO_NODE;
798 }
799 return per_cpu(x86_cpu_to_node_map, cpu);
800}
801
802
803/* empty cpumask */
804static const cpumask_t cpu_mask_none;
805
806/*
807 * Returns a pointer to the bitmask of CPUs on Node 'node'.
808 */
809const cpumask_t *cpumask_of_node(int node)
810{
811 if (node_to_cpumask_map == NULL) {
812 printk(KERN_WARNING
813 "cpumask_of_node(%d): no node_to_cpumask_map!\n",
814 node);
815 dump_stack();
816 return (const cpumask_t *)&cpu_online_map;
817 }
818 if (node >= nr_node_ids) {
819 printk(KERN_WARNING
820 "cpumask_of_node(%d): node > nr_node_ids(%d)\n",
821 node, nr_node_ids);
822 dump_stack();
823 return &cpu_mask_none;
824 }
825 return &node_to_cpumask_map[node];
826}
827EXPORT_SYMBOL(cpumask_of_node);
828
829/*
830 * Returns a bitmask of CPUs on Node 'node'.
831 *
832 * Side note: this function creates the returned cpumask on the stack
833 * so with a high NR_CPUS count, excessive stack space is used. The
834 * node_to_cpumask_ptr function should be used whenever possible.
835 */
836cpumask_t node_to_cpumask(int node)
837{
838 if (node_to_cpumask_map == NULL) {
839 printk(KERN_WARNING
840 "node_to_cpumask(%d): no node_to_cpumask_map!\n", node);
841 dump_stack();
842 return cpu_online_map;
843 }
844 if (node >= nr_node_ids) {
845 printk(KERN_WARNING
846 "node_to_cpumask(%d): node > nr_node_ids(%d)\n",
847 node, nr_node_ids);
848 dump_stack();
849 return cpu_mask_none;
850 }
851 return node_to_cpumask_map[node];
852}
853EXPORT_SYMBOL(node_to_cpumask);
854
855/*
856 * --------- end of debug versions of the numa functions ---------
857 */
858
859#endif /* CONFIG_DEBUG_PER_CPU_MAPS */
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index e89d24815f26..8253bc97587e 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -482,6 +482,13 @@ static int split_large_page(pte_t *kpte, unsigned long address)
482 pbase = (pte_t *)page_address(base); 482 pbase = (pte_t *)page_address(base);
483 paravirt_alloc_pte(&init_mm, page_to_pfn(base)); 483 paravirt_alloc_pte(&init_mm, page_to_pfn(base));
484 ref_prot = pte_pgprot(pte_clrhuge(*kpte)); 484 ref_prot = pte_pgprot(pte_clrhuge(*kpte));
485 /*
486 * If we ever want to utilize the PAT bit, we need to
487 * update this function to make sure it's converted from
488 * bit 12 to bit 7 when we cross from the 2MB level to
489 * the 4K level:
490 */
491 WARN_ON_ONCE(pgprot_val(ref_prot) & _PAGE_PAT_LARGE);
485 492
486#ifdef CONFIG_X86_64 493#ifdef CONFIG_X86_64
487 if (level == PG_LEVEL_1G) { 494 if (level == PG_LEVEL_1G) {
@@ -508,18 +515,13 @@ static int split_large_page(pte_t *kpte, unsigned long address)
508#endif 515#endif
509 516
510 /* 517 /*
511 * Install the new, split up pagetable. Important details here: 518 * Install the new, split up pagetable.
512 * 519 *
513 * On Intel the NX bit of all levels must be cleared to make a 520 * We use the standard kernel pagetable protections for the new
514 * page executable. See section 4.13.2 of Intel 64 and IA-32 521 * pagetable protections, the actual ptes set above control the
515 * Architectures Software Developer's Manual). 522 * primary protection behavior:
516 *
517 * Mark the entry present. The current mapping might be
518 * set to not present, which we preserved above.
519 */ 523 */
520 ref_prot = pte_pgprot(pte_mkexec(pte_clrhuge(*kpte))); 524 __set_pmd_pte(kpte, address, mk_pte(base, __pgprot(_KERNPG_TABLE)));
521 pgprot_val(ref_prot) |= _PAGE_PRESENT;
522 __set_pmd_pte(kpte, address, mk_pte(base, ref_prot));
523 base = NULL; 525 base = NULL;
524 526
525out_unlock: 527out_unlock:
@@ -534,6 +536,36 @@ out_unlock:
534 return 0; 536 return 0;
535} 537}
536 538
539static int __cpa_process_fault(struct cpa_data *cpa, unsigned long vaddr,
540 int primary)
541{
542 /*
543 * Ignore all non primary paths.
544 */
545 if (!primary)
546 return 0;
547
548 /*
549 * Ignore the NULL PTE for kernel identity mapping, as it is expected
550 * to have holes.
551 * Also set numpages to '1' indicating that we processed cpa req for
552 * one virtual address page and its pfn. TBD: numpages can be set based
553 * on the initial value and the level returned by lookup_address().
554 */
555 if (within(vaddr, PAGE_OFFSET,
556 PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT))) {
557 cpa->numpages = 1;
558 cpa->pfn = __pa(vaddr) >> PAGE_SHIFT;
559 return 0;
560 } else {
561 WARN(1, KERN_WARNING "CPA: called for zero pte. "
562 "vaddr = %lx cpa->vaddr = %lx\n", vaddr,
563 *cpa->vaddr);
564
565 return -EFAULT;
566 }
567}
568
537static int __change_page_attr(struct cpa_data *cpa, int primary) 569static int __change_page_attr(struct cpa_data *cpa, int primary)
538{ 570{
539 unsigned long address; 571 unsigned long address;
@@ -545,21 +577,14 @@ static int __change_page_attr(struct cpa_data *cpa, int primary)
545 address = cpa->vaddr[cpa->curpage]; 577 address = cpa->vaddr[cpa->curpage];
546 else 578 else
547 address = *cpa->vaddr; 579 address = *cpa->vaddr;
548
549repeat: 580repeat:
550 kpte = lookup_address(address, &level); 581 kpte = lookup_address(address, &level);
551 if (!kpte) 582 if (!kpte)
552 return 0; 583 return __cpa_process_fault(cpa, address, primary);
553 584
554 old_pte = *kpte; 585 old_pte = *kpte;
555 if (!pte_val(old_pte)) { 586 if (!pte_val(old_pte))
556 if (!primary) 587 return __cpa_process_fault(cpa, address, primary);
557 return 0;
558 WARN(1, KERN_WARNING "CPA: called for zero pte. "
559 "vaddr = %lx cpa->vaddr = %lx\n", address,
560 *cpa->vaddr);
561 return -EINVAL;
562 }
563 588
564 if (level == PG_LEVEL_4K) { 589 if (level == PG_LEVEL_4K) {
565 pte_t new_pte; 590 pte_t new_pte;
@@ -657,12 +682,7 @@ static int cpa_process_alias(struct cpa_data *cpa)
657 vaddr = *cpa->vaddr; 682 vaddr = *cpa->vaddr;
658 683
659 if (!(within(vaddr, PAGE_OFFSET, 684 if (!(within(vaddr, PAGE_OFFSET,
660 PAGE_OFFSET + (max_low_pfn_mapped << PAGE_SHIFT)) 685 PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT)))) {
661#ifdef CONFIG_X86_64
662 || within(vaddr, PAGE_OFFSET + (1UL<<32),
663 PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT))
664#endif
665 )) {
666 686
667 alias_cpa = *cpa; 687 alias_cpa = *cpa;
668 temp_cpa_vaddr = (unsigned long) __va(cpa->pfn << PAGE_SHIFT); 688 temp_cpa_vaddr = (unsigned long) __va(cpa->pfn << PAGE_SHIFT);
@@ -793,6 +813,13 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages,
793 813
794 vm_unmap_aliases(); 814 vm_unmap_aliases();
795 815
816 /*
817 * If we're called with lazy mmu updates enabled, the
818 * in-memory pte state may be stale. Flush pending updates to
819 * bring them up to date.
820 */
821 arch_flush_lazy_mmu_mode();
822
796 cpa.vaddr = addr; 823 cpa.vaddr = addr;
797 cpa.numpages = numpages; 824 cpa.numpages = numpages;
798 cpa.mask_set = mask_set; 825 cpa.mask_set = mask_set;
@@ -835,6 +862,13 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages,
835 } else 862 } else
836 cpa_flush_all(cache); 863 cpa_flush_all(cache);
837 864
865 /*
866 * If we've been called with lazy mmu updates enabled, then
867 * make sure that everything gets flushed out before we
868 * return.
869 */
870 arch_flush_lazy_mmu_mode();
871
838out: 872out:
839 return ret; 873 return ret;
840} 874}
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index 85cbd3cd3723..2ed37158012d 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -11,6 +11,7 @@
11#include <linux/bootmem.h> 11#include <linux/bootmem.h>
12#include <linux/debugfs.h> 12#include <linux/debugfs.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/module.h>
14#include <linux/gfp.h> 15#include <linux/gfp.h>
15#include <linux/mm.h> 16#include <linux/mm.h>
16#include <linux/fs.h> 17#include <linux/fs.h>
@@ -30,7 +31,7 @@
30#ifdef CONFIG_X86_PAT 31#ifdef CONFIG_X86_PAT
31int __read_mostly pat_enabled = 1; 32int __read_mostly pat_enabled = 1;
32 33
33void __cpuinit pat_disable(char *reason) 34void __cpuinit pat_disable(const char *reason)
34{ 35{
35 pat_enabled = 0; 36 pat_enabled = 0;
36 printk(KERN_INFO "%s\n", reason); 37 printk(KERN_INFO "%s\n", reason);
@@ -42,6 +43,11 @@ static int __init nopat(char *str)
42 return 0; 43 return 0;
43} 44}
44early_param("nopat", nopat); 45early_param("nopat", nopat);
46#else
47static inline void pat_disable(const char *reason)
48{
49 (void)reason;
50}
45#endif 51#endif
46 52
47 53
@@ -78,16 +84,20 @@ void pat_init(void)
78 if (!pat_enabled) 84 if (!pat_enabled)
79 return; 85 return;
80 86
81 /* Paranoia check. */ 87 if (!cpu_has_pat) {
82 if (!cpu_has_pat && boot_pat_state) { 88 if (!boot_pat_state) {
83 /* 89 pat_disable("PAT not supported by CPU.");
84 * If this happens we are on a secondary CPU, but 90 return;
85 * switched to PAT on the boot CPU. We have no way to 91 } else {
86 * undo PAT. 92 /*
87 */ 93 * If this happens we are on a secondary CPU, but
88 printk(KERN_ERR "PAT enabled, " 94 * switched to PAT on the boot CPU. We have no way to
89 "but not supported by secondary CPU\n"); 95 * undo PAT.
90 BUG(); 96 */
97 printk(KERN_ERR "PAT enabled, "
98 "but not supported by secondary CPU\n");
99 BUG();
100 }
91 } 101 }
92 102
93 /* Set PWT to Write-Combining. All other bits stay the same */ 103 /* Set PWT to Write-Combining. All other bits stay the same */
@@ -211,6 +221,33 @@ chk_conflict(struct memtype *new, struct memtype *entry, unsigned long *type)
211static struct memtype *cached_entry; 221static struct memtype *cached_entry;
212static u64 cached_start; 222static u64 cached_start;
213 223
224static int pat_pagerange_is_ram(unsigned long start, unsigned long end)
225{
226 int ram_page = 0, not_rampage = 0;
227 unsigned long page_nr;
228
229 for (page_nr = (start >> PAGE_SHIFT); page_nr < (end >> PAGE_SHIFT);
230 ++page_nr) {
231 /*
232 * For legacy reasons, physical address range in the legacy ISA
233 * region is tracked as non-RAM. This will allow users of
234 * /dev/mem to map portions of legacy ISA region, even when
235 * some of those portions are listed(or not even listed) with
236 * different e820 types(RAM/reserved/..)
237 */
238 if (page_nr >= (ISA_END_ADDRESS >> PAGE_SHIFT) &&
239 page_is_ram(page_nr))
240 ram_page = 1;
241 else
242 not_rampage = 1;
243
244 if (ram_page == not_rampage)
245 return -1;
246 }
247
248 return ram_page;
249}
250
214/* 251/*
215 * For RAM pages, mark the pages as non WB memory type using 252 * For RAM pages, mark the pages as non WB memory type using
216 * PageNonWB (PG_arch_1). We allow only one set_memory_uc() or 253 * PageNonWB (PG_arch_1). We allow only one set_memory_uc() or
@@ -333,9 +370,13 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
333 req_type & _PAGE_CACHE_MASK); 370 req_type & _PAGE_CACHE_MASK);
334 } 371 }
335 372
336 is_range_ram = pagerange_is_ram(start, end); 373 if (new_type)
374 *new_type = actual_type;
375
376 is_range_ram = pat_pagerange_is_ram(start, end);
337 if (is_range_ram == 1) 377 if (is_range_ram == 1)
338 return reserve_ram_pages_type(start, end, req_type, new_type); 378 return reserve_ram_pages_type(start, end, req_type,
379 new_type);
339 else if (is_range_ram < 0) 380 else if (is_range_ram < 0)
340 return -EINVAL; 381 return -EINVAL;
341 382
@@ -347,9 +388,6 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
347 new->end = end; 388 new->end = end;
348 new->type = actual_type; 389 new->type = actual_type;
349 390
350 if (new_type)
351 *new_type = actual_type;
352
353 spin_lock(&memtype_lock); 391 spin_lock(&memtype_lock);
354 392
355 if (cached_entry && start >= cached_start) 393 if (cached_entry && start >= cached_start)
@@ -437,7 +475,7 @@ int free_memtype(u64 start, u64 end)
437 if (is_ISA_range(start, end - 1)) 475 if (is_ISA_range(start, end - 1))
438 return 0; 476 return 0;
439 477
440 is_range_ram = pagerange_is_ram(start, end); 478 is_range_ram = pat_pagerange_is_ram(start, end);
441 if (is_range_ram == 1) 479 if (is_range_ram == 1)
442 return free_ram_pages_type(start, end); 480 return free_ram_pages_type(start, end);
443 else if (is_range_ram < 0) 481 else if (is_range_ram < 0)
@@ -597,62 +635,80 @@ void unmap_devmem(unsigned long pfn, unsigned long size, pgprot_t vma_prot)
597} 635}
598 636
599/* 637/*
638 * Change the memory type for the physial address range in kernel identity
639 * mapping space if that range is a part of identity map.
640 */
641int kernel_map_sync_memtype(u64 base, unsigned long size, unsigned long flags)
642{
643 unsigned long id_sz;
644
645 if (!pat_enabled || base >= __pa(high_memory))
646 return 0;
647
648 id_sz = (__pa(high_memory) < base + size) ?
649 __pa(high_memory) - base :
650 size;
651
652 if (ioremap_change_attr((unsigned long)__va(base), id_sz, flags) < 0) {
653 printk(KERN_INFO
654 "%s:%d ioremap_change_attr failed %s "
655 "for %Lx-%Lx\n",
656 current->comm, current->pid,
657 cattr_name(flags),
658 base, (unsigned long long)(base + size));
659 return -EINVAL;
660 }
661 return 0;
662}
663
664/*
600 * Internal interface to reserve a range of physical memory with prot. 665 * Internal interface to reserve a range of physical memory with prot.
601 * Reserved non RAM regions only and after successful reserve_memtype, 666 * Reserved non RAM regions only and after successful reserve_memtype,
602 * this func also keeps identity mapping (if any) in sync with this new prot. 667 * this func also keeps identity mapping (if any) in sync with this new prot.
603 */ 668 */
604static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t vma_prot) 669static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
670 int strict_prot)
605{ 671{
606 int is_ram = 0; 672 int is_ram = 0;
607 int id_sz, ret; 673 int ret;
608 unsigned long flags; 674 unsigned long flags;
609 unsigned long want_flags = (pgprot_val(vma_prot) & _PAGE_CACHE_MASK); 675 unsigned long want_flags = (pgprot_val(*vma_prot) & _PAGE_CACHE_MASK);
610 676
611 is_ram = pagerange_is_ram(paddr, paddr + size); 677 is_ram = pat_pagerange_is_ram(paddr, paddr + size);
612 678
613 if (is_ram != 0) { 679 /*
614 /* 680 * reserve_pfn_range() doesn't support RAM pages.
615 * For mapping RAM pages, drivers need to call 681 */
616 * set_memory_[uc|wc|wb] directly, for reserve and free, before 682 if (is_ram != 0)
617 * setting up the PTE. 683 return -EINVAL;
618 */
619 WARN_ON_ONCE(1);
620 return 0;
621 }
622 684
623 ret = reserve_memtype(paddr, paddr + size, want_flags, &flags); 685 ret = reserve_memtype(paddr, paddr + size, want_flags, &flags);
624 if (ret) 686 if (ret)
625 return ret; 687 return ret;
626 688
627 if (flags != want_flags) { 689 if (flags != want_flags) {
628 free_memtype(paddr, paddr + size); 690 if (strict_prot || !is_new_memtype_allowed(want_flags, flags)) {
629 printk(KERN_ERR 691 free_memtype(paddr, paddr + size);
630 "%s:%d map pfn expected mapping type %s for %Lx-%Lx, got %s\n", 692 printk(KERN_ERR "%s:%d map pfn expected mapping type %s"
631 current->comm, current->pid, 693 " for %Lx-%Lx, got %s\n",
632 cattr_name(want_flags), 694 current->comm, current->pid,
633 (unsigned long long)paddr, 695 cattr_name(want_flags),
634 (unsigned long long)(paddr + size), 696 (unsigned long long)paddr,
635 cattr_name(flags)); 697 (unsigned long long)(paddr + size),
636 return -EINVAL; 698 cattr_name(flags));
699 return -EINVAL;
700 }
701 /*
702 * We allow returning different type than the one requested in
703 * non strict case.
704 */
705 *vma_prot = __pgprot((pgprot_val(*vma_prot) &
706 (~_PAGE_CACHE_MASK)) |
707 flags);
637 } 708 }
638 709
639 /* Need to keep identity mapping in sync */ 710 if (kernel_map_sync_memtype(paddr, size, flags) < 0) {
640 if (paddr >= __pa(high_memory))
641 return 0;
642
643 id_sz = (__pa(high_memory) < paddr + size) ?
644 __pa(high_memory) - paddr :
645 size;
646
647 if (ioremap_change_attr((unsigned long)__va(paddr), id_sz, flags) < 0) {
648 free_memtype(paddr, paddr + size); 711 free_memtype(paddr, paddr + size);
649 printk(KERN_ERR
650 "%s:%d reserve_pfn_range ioremap_change_attr failed %s "
651 "for %Lx-%Lx\n",
652 current->comm, current->pid,
653 cattr_name(flags),
654 (unsigned long long)paddr,
655 (unsigned long long)(paddr + size));
656 return -EINVAL; 712 return -EINVAL;
657 } 713 }
658 return 0; 714 return 0;
@@ -666,7 +722,7 @@ static void free_pfn_range(u64 paddr, unsigned long size)
666{ 722{
667 int is_ram; 723 int is_ram;
668 724
669 is_ram = pagerange_is_ram(paddr, paddr + size); 725 is_ram = pat_pagerange_is_ram(paddr, paddr + size);
670 if (is_ram == 0) 726 if (is_ram == 0)
671 free_memtype(paddr, paddr + size); 727 free_memtype(paddr, paddr + size);
672} 728}
@@ -689,6 +745,7 @@ int track_pfn_vma_copy(struct vm_area_struct *vma)
689 unsigned long vma_start = vma->vm_start; 745 unsigned long vma_start = vma->vm_start;
690 unsigned long vma_end = vma->vm_end; 746 unsigned long vma_end = vma->vm_end;
691 unsigned long vma_size = vma_end - vma_start; 747 unsigned long vma_size = vma_end - vma_start;
748 pgprot_t pgprot;
692 749
693 if (!pat_enabled) 750 if (!pat_enabled)
694 return 0; 751 return 0;
@@ -702,7 +759,8 @@ int track_pfn_vma_copy(struct vm_area_struct *vma)
702 WARN_ON_ONCE(1); 759 WARN_ON_ONCE(1);
703 return -EINVAL; 760 return -EINVAL;
704 } 761 }
705 return reserve_pfn_range(paddr, vma_size, __pgprot(prot)); 762 pgprot = __pgprot(prot);
763 return reserve_pfn_range(paddr, vma_size, &pgprot, 1);
706 } 764 }
707 765
708 /* reserve entire vma page by page, using pfn and prot from pte */ 766 /* reserve entire vma page by page, using pfn and prot from pte */
@@ -710,7 +768,8 @@ int track_pfn_vma_copy(struct vm_area_struct *vma)
710 if (follow_phys(vma, vma_start + i, 0, &prot, &paddr)) 768 if (follow_phys(vma, vma_start + i, 0, &prot, &paddr))
711 continue; 769 continue;
712 770
713 retval = reserve_pfn_range(paddr, PAGE_SIZE, __pgprot(prot)); 771 pgprot = __pgprot(prot);
772 retval = reserve_pfn_range(paddr, PAGE_SIZE, &pgprot, 1);
714 if (retval) 773 if (retval)
715 goto cleanup_ret; 774 goto cleanup_ret;
716 } 775 }
@@ -741,7 +800,7 @@ cleanup_ret:
741 * Note that this function can be called with caller trying to map only a 800 * Note that this function can be called with caller trying to map only a
742 * subrange/page inside the vma. 801 * subrange/page inside the vma.
743 */ 802 */
744int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t prot, 803int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t *prot,
745 unsigned long pfn, unsigned long size) 804 unsigned long pfn, unsigned long size)
746{ 805{
747 int retval = 0; 806 int retval = 0;
@@ -758,14 +817,14 @@ int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t prot,
758 if (is_linear_pfn_mapping(vma)) { 817 if (is_linear_pfn_mapping(vma)) {
759 /* reserve the whole chunk starting from vm_pgoff */ 818 /* reserve the whole chunk starting from vm_pgoff */
760 paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT; 819 paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT;
761 return reserve_pfn_range(paddr, vma_size, prot); 820 return reserve_pfn_range(paddr, vma_size, prot, 0);
762 } 821 }
763 822
764 /* reserve page by page using pfn and size */ 823 /* reserve page by page using pfn and size */
765 base_paddr = (resource_size_t)pfn << PAGE_SHIFT; 824 base_paddr = (resource_size_t)pfn << PAGE_SHIFT;
766 for (i = 0; i < size; i += PAGE_SIZE) { 825 for (i = 0; i < size; i += PAGE_SIZE) {
767 paddr = base_paddr + i; 826 paddr = base_paddr + i;
768 retval = reserve_pfn_range(paddr, PAGE_SIZE, prot); 827 retval = reserve_pfn_range(paddr, PAGE_SIZE, prot, 0);
769 if (retval) 828 if (retval)
770 goto cleanup_ret; 829 goto cleanup_ret;
771 } 830 }
@@ -831,6 +890,7 @@ pgprot_t pgprot_writecombine(pgprot_t prot)
831 else 890 else
832 return pgprot_noncached(prot); 891 return pgprot_noncached(prot);
833} 892}
893EXPORT_SYMBOL_GPL(pgprot_writecombine);
834 894
835#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_X86_PAT) 895#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_X86_PAT)
836 896
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index 86f2ffc43c3d..5b7c7c8464fe 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -313,6 +313,24 @@ int ptep_clear_flush_young(struct vm_area_struct *vma,
313 return young; 313 return young;
314} 314}
315 315
316/**
317 * reserve_top_address - reserves a hole in the top of kernel address space
318 * @reserve - size of hole to reserve
319 *
320 * Can be used to relocate the fixmap area and poke a hole in the top
321 * of kernel address space to make room for a hypervisor.
322 */
323void __init reserve_top_address(unsigned long reserve)
324{
325#ifdef CONFIG_X86_32
326 BUG_ON(fixmaps_set > 0);
327 printk(KERN_INFO "Reserving virtual address space above 0x%08x\n",
328 (int)-reserve);
329 __FIXADDR_TOP = -reserve - PAGE_SIZE;
330 __VMALLOC_RESERVE += reserve;
331#endif
332}
333
316int fixmaps_set; 334int fixmaps_set;
317 335
318void __native_set_fixmap(enum fixed_addresses idx, pte_t pte) 336void __native_set_fixmap(enum fixed_addresses idx, pte_t pte)
diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
index 0951db9ee519..f2e477c91c1b 100644
--- a/arch/x86/mm/pgtable_32.c
+++ b/arch/x86/mm/pgtable_32.c
@@ -20,6 +20,8 @@
20#include <asm/tlb.h> 20#include <asm/tlb.h>
21#include <asm/tlbflush.h> 21#include <asm/tlbflush.h>
22 22
23unsigned int __VMALLOC_RESERVE = 128 << 20;
24
23/* 25/*
24 * Associate a virtual page frame with a given physical page frame 26 * Associate a virtual page frame with a given physical page frame
25 * and protection flags for that frame. 27 * and protection flags for that frame.
@@ -97,22 +99,6 @@ void set_pmd_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags)
97unsigned long __FIXADDR_TOP = 0xfffff000; 99unsigned long __FIXADDR_TOP = 0xfffff000;
98EXPORT_SYMBOL(__FIXADDR_TOP); 100EXPORT_SYMBOL(__FIXADDR_TOP);
99 101
100/**
101 * reserve_top_address - reserves a hole in the top of kernel address space
102 * @reserve - size of hole to reserve
103 *
104 * Can be used to relocate the fixmap area and poke a hole in the top
105 * of kernel address space to make room for a hypervisor.
106 */
107void __init reserve_top_address(unsigned long reserve)
108{
109 BUG_ON(fixmaps_set > 0);
110 printk(KERN_INFO "Reserving virtual address space above 0x%08x\n",
111 (int)-reserve);
112 __FIXADDR_TOP = -reserve - PAGE_SIZE;
113 __VMALLOC_RESERVE += reserve;
114}
115
116/* 102/*
117 * vmalloc=size forces the vmalloc area to be exactly 'size' 103 * vmalloc=size forces the vmalloc area to be exactly 'size'
118 * bytes. This can be used to increase (or decrease) the 104 * bytes. This can be used to increase (or decrease) the
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c
index 09737c8af074..574c8bc95ef0 100644
--- a/arch/x86/mm/srat_64.c
+++ b/arch/x86/mm/srat_64.c
@@ -20,7 +20,8 @@
20#include <asm/proto.h> 20#include <asm/proto.h>
21#include <asm/numa.h> 21#include <asm/numa.h>
22#include <asm/e820.h> 22#include <asm/e820.h>
23#include <asm/genapic.h> 23#include <asm/apic.h>
24#include <asm/uv/uv.h>
24 25
25int acpi_numa __initdata; 26int acpi_numa __initdata;
26 27
diff --git a/arch/x86/kernel/tlb_64.c b/arch/x86/mm/tlb.c
index f8be6f1d2e48..a654d59e4483 100644
--- a/arch/x86/kernel/tlb_64.c
+++ b/arch/x86/mm/tlb.c
@@ -1,24 +1,19 @@
1#include <linux/init.h> 1#include <linux/init.h>
2 2
3#include <linux/mm.h> 3#include <linux/mm.h>
4#include <linux/delay.h>
5#include <linux/spinlock.h> 4#include <linux/spinlock.h>
6#include <linux/smp.h> 5#include <linux/smp.h>
7#include <linux/kernel_stat.h>
8#include <linux/mc146818rtc.h>
9#include <linux/interrupt.h> 6#include <linux/interrupt.h>
7#include <linux/module.h>
10 8
11#include <asm/mtrr.h>
12#include <asm/pgalloc.h>
13#include <asm/tlbflush.h> 9#include <asm/tlbflush.h>
14#include <asm/mmu_context.h> 10#include <asm/mmu_context.h>
15#include <asm/proto.h> 11#include <asm/apic.h>
16#include <asm/apicdef.h> 12#include <asm/uv/uv.h>
17#include <asm/idle.h> 13
18#include <asm/uv/uv_hub.h> 14DEFINE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate)
19#include <asm/uv/uv_bau.h> 15 = { &init_mm, 0, };
20 16
21#include <mach_ipi.h>
22/* 17/*
23 * Smarter SMP flushing macros. 18 * Smarter SMP flushing macros.
24 * c/o Linus Torvalds. 19 * c/o Linus Torvalds.
@@ -33,7 +28,7 @@
33 * To avoid global state use 8 different call vectors. 28 * To avoid global state use 8 different call vectors.
34 * Each CPU uses a specific vector to trigger flushes on other 29 * Each CPU uses a specific vector to trigger flushes on other
35 * CPUs. Depending on the received vector the target CPUs look into 30 * CPUs. Depending on the received vector the target CPUs look into
36 * the right per cpu variable for the flush data. 31 * the right array slot for the flush data.
37 * 32 *
38 * With more than 8 CPUs they are hashed to the 8 available 33 * With more than 8 CPUs they are hashed to the 8 available
39 * vectors. The limited global vector space forces us to this right now. 34 * vectors. The limited global vector space forces us to this right now.
@@ -43,18 +38,18 @@
43 38
44union smp_flush_state { 39union smp_flush_state {
45 struct { 40 struct {
46 cpumask_t flush_cpumask;
47 struct mm_struct *flush_mm; 41 struct mm_struct *flush_mm;
48 unsigned long flush_va; 42 unsigned long flush_va;
49 spinlock_t tlbstate_lock; 43 spinlock_t tlbstate_lock;
44 DECLARE_BITMAP(flush_cpumask, NR_CPUS);
50 }; 45 };
51 char pad[SMP_CACHE_BYTES]; 46 char pad[CONFIG_X86_INTERNODE_CACHE_BYTES];
52} ____cacheline_aligned; 47} ____cacheline_internodealigned_in_smp;
53 48
54/* State is put into the per CPU data section, but padded 49/* State is put into the per CPU data section, but padded
55 to a full cache line because other CPUs can access it and we don't 50 to a full cache line because other CPUs can access it and we don't
56 want false sharing in the per cpu data segment. */ 51 want false sharing in the per cpu data segment. */
57static DEFINE_PER_CPU(union smp_flush_state, flush_state); 52static union smp_flush_state flush_state[NUM_INVALIDATE_TLB_VECTORS];
58 53
59/* 54/*
60 * We cannot call mmdrop() because we are in interrupt context, 55 * We cannot call mmdrop() because we are in interrupt context,
@@ -62,9 +57,9 @@ static DEFINE_PER_CPU(union smp_flush_state, flush_state);
62 */ 57 */
63void leave_mm(int cpu) 58void leave_mm(int cpu)
64{ 59{
65 if (read_pda(mmu_state) == TLBSTATE_OK) 60 if (percpu_read(cpu_tlbstate.state) == TLBSTATE_OK)
66 BUG(); 61 BUG();
67 cpu_clear(cpu, read_pda(active_mm)->cpu_vm_mask); 62 cpu_clear(cpu, percpu_read(cpu_tlbstate.active_mm)->cpu_vm_mask);
68 load_cr3(swapper_pg_dir); 63 load_cr3(swapper_pg_dir);
69} 64}
70EXPORT_SYMBOL_GPL(leave_mm); 65EXPORT_SYMBOL_GPL(leave_mm);
@@ -117,10 +112,20 @@ EXPORT_SYMBOL_GPL(leave_mm);
117 * Interrupts are disabled. 112 * Interrupts are disabled.
118 */ 113 */
119 114
120asmlinkage void smp_invalidate_interrupt(struct pt_regs *regs) 115/*
116 * FIXME: use of asmlinkage is not consistent. On x86_64 it's noop
117 * but still used for documentation purpose but the usage is slightly
118 * inconsistent. On x86_32, asmlinkage is regparm(0) but interrupt
119 * entry calls in with the first parameter in %eax. Maybe define
120 * intrlinkage?
121 */
122#ifdef CONFIG_X86_64
123asmlinkage
124#endif
125void smp_invalidate_interrupt(struct pt_regs *regs)
121{ 126{
122 int cpu; 127 unsigned int cpu;
123 int sender; 128 unsigned int sender;
124 union smp_flush_state *f; 129 union smp_flush_state *f;
125 130
126 cpu = smp_processor_id(); 131 cpu = smp_processor_id();
@@ -129,9 +134,9 @@ asmlinkage void smp_invalidate_interrupt(struct pt_regs *regs)
129 * Use that to determine where the sender put the data. 134 * Use that to determine where the sender put the data.
130 */ 135 */
131 sender = ~regs->orig_ax - INVALIDATE_TLB_VECTOR_START; 136 sender = ~regs->orig_ax - INVALIDATE_TLB_VECTOR_START;
132 f = &per_cpu(flush_state, sender); 137 f = &flush_state[sender];
133 138
134 if (!cpu_isset(cpu, f->flush_cpumask)) 139 if (!cpumask_test_cpu(cpu, to_cpumask(f->flush_cpumask)))
135 goto out; 140 goto out;
136 /* 141 /*
137 * This was a BUG() but until someone can quote me the 142 * This was a BUG() but until someone can quote me the
@@ -142,8 +147,8 @@ asmlinkage void smp_invalidate_interrupt(struct pt_regs *regs)
142 * BUG(); 147 * BUG();
143 */ 148 */
144 149
145 if (f->flush_mm == read_pda(active_mm)) { 150 if (f->flush_mm == percpu_read(cpu_tlbstate.active_mm)) {
146 if (read_pda(mmu_state) == TLBSTATE_OK) { 151 if (percpu_read(cpu_tlbstate.state) == TLBSTATE_OK) {
147 if (f->flush_va == TLB_FLUSH_ALL) 152 if (f->flush_va == TLB_FLUSH_ALL)
148 local_flush_tlb(); 153 local_flush_tlb();
149 else 154 else
@@ -153,23 +158,21 @@ asmlinkage void smp_invalidate_interrupt(struct pt_regs *regs)
153 } 158 }
154out: 159out:
155 ack_APIC_irq(); 160 ack_APIC_irq();
156 cpu_clear(cpu, f->flush_cpumask); 161 smp_mb__before_clear_bit();
162 cpumask_clear_cpu(cpu, to_cpumask(f->flush_cpumask));
163 smp_mb__after_clear_bit();
157 inc_irq_stat(irq_tlb_count); 164 inc_irq_stat(irq_tlb_count);
158} 165}
159 166
160void native_flush_tlb_others(const cpumask_t *cpumaskp, struct mm_struct *mm, 167static void flush_tlb_others_ipi(const struct cpumask *cpumask,
161 unsigned long va) 168 struct mm_struct *mm, unsigned long va)
162{ 169{
163 int sender; 170 unsigned int sender;
164 union smp_flush_state *f; 171 union smp_flush_state *f;
165 cpumask_t cpumask = *cpumaskp;
166
167 if (is_uv_system() && uv_flush_tlb_others(&cpumask, mm, va))
168 return;
169 172
170 /* Caller has disabled preemption */ 173 /* Caller has disabled preemption */
171 sender = smp_processor_id() % NUM_INVALIDATE_TLB_VECTORS; 174 sender = smp_processor_id() % NUM_INVALIDATE_TLB_VECTORS;
172 f = &per_cpu(flush_state, sender); 175 f = &flush_state[sender];
173 176
174 /* 177 /*
175 * Could avoid this lock when 178 * Could avoid this lock when
@@ -180,7 +183,8 @@ void native_flush_tlb_others(const cpumask_t *cpumaskp, struct mm_struct *mm,
180 183
181 f->flush_mm = mm; 184 f->flush_mm = mm;
182 f->flush_va = va; 185 f->flush_va = va;
183 cpus_or(f->flush_cpumask, cpumask, f->flush_cpumask); 186 cpumask_andnot(to_cpumask(f->flush_cpumask),
187 cpumask, cpumask_of(smp_processor_id()));
184 188
185 /* 189 /*
186 * Make the above memory operations globally visible before 190 * Make the above memory operations globally visible before
@@ -191,9 +195,10 @@ void native_flush_tlb_others(const cpumask_t *cpumaskp, struct mm_struct *mm,
191 * We have to send the IPI only to 195 * We have to send the IPI only to
192 * CPUs affected. 196 * CPUs affected.
193 */ 197 */
194 send_IPI_mask(&cpumask, INVALIDATE_TLB_VECTOR_START + sender); 198 apic->send_IPI_mask(to_cpumask(f->flush_cpumask),
199 INVALIDATE_TLB_VECTOR_START + sender);
195 200
196 while (!cpus_empty(f->flush_cpumask)) 201 while (!cpumask_empty(to_cpumask(f->flush_cpumask)))
197 cpu_relax(); 202 cpu_relax();
198 203
199 f->flush_mm = NULL; 204 f->flush_mm = NULL;
@@ -201,12 +206,28 @@ void native_flush_tlb_others(const cpumask_t *cpumaskp, struct mm_struct *mm,
201 spin_unlock(&f->tlbstate_lock); 206 spin_unlock(&f->tlbstate_lock);
202} 207}
203 208
209void native_flush_tlb_others(const struct cpumask *cpumask,
210 struct mm_struct *mm, unsigned long va)
211{
212 if (is_uv_system()) {
213 unsigned int cpu;
214
215 cpu = get_cpu();
216 cpumask = uv_flush_tlb_others(cpumask, mm, va, cpu);
217 if (cpumask)
218 flush_tlb_others_ipi(cpumask, mm, va);
219 put_cpu();
220 return;
221 }
222 flush_tlb_others_ipi(cpumask, mm, va);
223}
224
204static int __cpuinit init_smp_flush(void) 225static int __cpuinit init_smp_flush(void)
205{ 226{
206 int i; 227 int i;
207 228
208 for_each_possible_cpu(i) 229 for (i = 0; i < ARRAY_SIZE(flush_state); i++)
209 spin_lock_init(&per_cpu(flush_state, i).tlbstate_lock); 230 spin_lock_init(&flush_state[i].tlbstate_lock);
210 231
211 return 0; 232 return 0;
212} 233}
@@ -215,25 +236,18 @@ core_initcall(init_smp_flush);
215void flush_tlb_current_task(void) 236void flush_tlb_current_task(void)
216{ 237{
217 struct mm_struct *mm = current->mm; 238 struct mm_struct *mm = current->mm;
218 cpumask_t cpu_mask;
219 239
220 preempt_disable(); 240 preempt_disable();
221 cpu_mask = mm->cpu_vm_mask;
222 cpu_clear(smp_processor_id(), cpu_mask);
223 241
224 local_flush_tlb(); 242 local_flush_tlb();
225 if (!cpus_empty(cpu_mask)) 243 if (cpumask_any_but(&mm->cpu_vm_mask, smp_processor_id()) < nr_cpu_ids)
226 flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL); 244 flush_tlb_others(&mm->cpu_vm_mask, mm, TLB_FLUSH_ALL);
227 preempt_enable(); 245 preempt_enable();
228} 246}
229 247
230void flush_tlb_mm(struct mm_struct *mm) 248void flush_tlb_mm(struct mm_struct *mm)
231{ 249{
232 cpumask_t cpu_mask;
233
234 preempt_disable(); 250 preempt_disable();
235 cpu_mask = mm->cpu_vm_mask;
236 cpu_clear(smp_processor_id(), cpu_mask);
237 251
238 if (current->active_mm == mm) { 252 if (current->active_mm == mm) {
239 if (current->mm) 253 if (current->mm)
@@ -241,8 +255,8 @@ void flush_tlb_mm(struct mm_struct *mm)
241 else 255 else
242 leave_mm(smp_processor_id()); 256 leave_mm(smp_processor_id());
243 } 257 }
244 if (!cpus_empty(cpu_mask)) 258 if (cpumask_any_but(&mm->cpu_vm_mask, smp_processor_id()) < nr_cpu_ids)
245 flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL); 259 flush_tlb_others(&mm->cpu_vm_mask, mm, TLB_FLUSH_ALL);
246 260
247 preempt_enable(); 261 preempt_enable();
248} 262}
@@ -250,11 +264,8 @@ void flush_tlb_mm(struct mm_struct *mm)
250void flush_tlb_page(struct vm_area_struct *vma, unsigned long va) 264void flush_tlb_page(struct vm_area_struct *vma, unsigned long va)
251{ 265{
252 struct mm_struct *mm = vma->vm_mm; 266 struct mm_struct *mm = vma->vm_mm;
253 cpumask_t cpu_mask;
254 267
255 preempt_disable(); 268 preempt_disable();
256 cpu_mask = mm->cpu_vm_mask;
257 cpu_clear(smp_processor_id(), cpu_mask);
258 269
259 if (current->active_mm == mm) { 270 if (current->active_mm == mm) {
260 if (current->mm) 271 if (current->mm)
@@ -263,8 +274,8 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long va)
263 leave_mm(smp_processor_id()); 274 leave_mm(smp_processor_id());
264 } 275 }
265 276
266 if (!cpus_empty(cpu_mask)) 277 if (cpumask_any_but(&mm->cpu_vm_mask, smp_processor_id()) < nr_cpu_ids)
267 flush_tlb_others(cpu_mask, mm, va); 278 flush_tlb_others(&mm->cpu_vm_mask, mm, va);
268 279
269 preempt_enable(); 280 preempt_enable();
270} 281}
@@ -274,7 +285,7 @@ static void do_flush_tlb_all(void *info)
274 unsigned long cpu = smp_processor_id(); 285 unsigned long cpu = smp_processor_id();
275 286
276 __flush_tlb_all(); 287 __flush_tlb_all();
277 if (read_pda(mmu_state) == TLBSTATE_LAZY) 288 if (percpu_read(cpu_tlbstate.state) == TLBSTATE_LAZY)
278 leave_mm(cpu); 289 leave_mm(cpu);
279} 290}
280 291
diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c
index e9f80c744cf3..10131fbdaada 100644
--- a/arch/x86/oprofile/op_model_ppro.c
+++ b/arch/x86/oprofile/op_model_ppro.c
@@ -78,8 +78,18 @@ static void ppro_setup_ctrs(struct op_msrs const * const msrs)
78 if (cpu_has_arch_perfmon) { 78 if (cpu_has_arch_perfmon) {
79 union cpuid10_eax eax; 79 union cpuid10_eax eax;
80 eax.full = cpuid_eax(0xa); 80 eax.full = cpuid_eax(0xa);
81 if (counter_width < eax.split.bit_width) 81
82 counter_width = eax.split.bit_width; 82 /*
83 * For Core2 (family 6, model 15), don't reset the
84 * counter width:
85 */
86 if (!(eax.split.version_id == 0 &&
87 current_cpu_data.x86 == 6 &&
88 current_cpu_data.x86_model == 15)) {
89
90 if (counter_width < eax.split.bit_width)
91 counter_width = eax.split.bit_width;
92 }
83 } 93 }
84 94
85 /* clear all counters */ 95 /* clear all counters */
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index f884740da318..5ead808dd70c 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -314,17 +314,7 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
314 return retval; 314 return retval;
315 315
316 if (flags != new_flags) { 316 if (flags != new_flags) {
317 /* 317 if (!is_new_memtype_allowed(flags, new_flags)) {
318 * Do not fallback to certain memory types with certain
319 * requested type:
320 * - request is uncached, return cannot be write-back
321 * - request is uncached, return cannot be write-combine
322 * - request is write-combine, return cannot be write-back
323 */
324 if ((flags == _PAGE_CACHE_UC_MINUS &&
325 (new_flags == _PAGE_CACHE_WB)) ||
326 (flags == _PAGE_CACHE_WC &&
327 new_flags == _PAGE_CACHE_WB)) {
328 free_memtype(addr, addr+len); 318 free_memtype(addr, addr+len);
329 return -EINVAL; 319 return -EINVAL;
330 } 320 }
diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
index 4064345cf144..fecbce6e7d7c 100644
--- a/arch/x86/pci/irq.c
+++ b/arch/x86/pci/irq.c
@@ -572,6 +572,7 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
572 case PCI_DEVICE_ID_INTEL_ICH7_1: 572 case PCI_DEVICE_ID_INTEL_ICH7_1:
573 case PCI_DEVICE_ID_INTEL_ICH7_30: 573 case PCI_DEVICE_ID_INTEL_ICH7_30:
574 case PCI_DEVICE_ID_INTEL_ICH7_31: 574 case PCI_DEVICE_ID_INTEL_ICH7_31:
575 case PCI_DEVICE_ID_INTEL_TGP_LPC:
575 case PCI_DEVICE_ID_INTEL_ESB2_0: 576 case PCI_DEVICE_ID_INTEL_ESB2_0:
576 case PCI_DEVICE_ID_INTEL_ICH8_0: 577 case PCI_DEVICE_ID_INTEL_ICH8_0:
577 case PCI_DEVICE_ID_INTEL_ICH8_1: 578 case PCI_DEVICE_ID_INTEL_ICH8_1:
diff --git a/arch/x86/pci/numaq_32.c b/arch/x86/pci/numaq_32.c
index 2089354968a2..8eb295e116f6 100644
--- a/arch/x86/pci/numaq_32.c
+++ b/arch/x86/pci/numaq_32.c
@@ -5,7 +5,7 @@
5#include <linux/pci.h> 5#include <linux/pci.h>
6#include <linux/init.h> 6#include <linux/init.h>
7#include <linux/nodemask.h> 7#include <linux/nodemask.h>
8#include <mach_apic.h> 8#include <asm/apic.h>
9#include <asm/mpspec.h> 9#include <asm/mpspec.h>
10#include <asm/pci_x86.h> 10#include <asm/pci_x86.h>
11 11
@@ -18,10 +18,6 @@
18 18
19#define QUADLOCAL2BUS(quad,local) (quad_local_to_mp_bus_id[quad][local]) 19#define QUADLOCAL2BUS(quad,local) (quad_local_to_mp_bus_id[quad][local])
20 20
21/* Where the IO area was mapped on multiquad, always 0 otherwise */
22void *xquad_portio;
23EXPORT_SYMBOL(xquad_portio);
24
25#define XQUAD_PORT_ADDR(port, quad) (xquad_portio + (XQUAD_PORTIO_QUAD*quad) + port) 21#define XQUAD_PORT_ADDR(port, quad) (xquad_portio + (XQUAD_PORTIO_QUAD*quad) + port)
26 22
27#define PCI_CONF1_MQ_ADDRESS(bus, devfn, reg) \ 23#define PCI_CONF1_MQ_ADDRESS(bus, devfn, reg) \
diff --git a/arch/x86/pci/pcbios.c b/arch/x86/pci/pcbios.c
index b82cae970dfd..1c975cc9839e 100644
--- a/arch/x86/pci/pcbios.c
+++ b/arch/x86/pci/pcbios.c
@@ -7,7 +7,7 @@
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/uaccess.h> 8#include <linux/uaccess.h>
9#include <asm/pci_x86.h> 9#include <asm/pci_x86.h>
10#include <asm/mach-default/pci-functions.h> 10#include <asm/pci-functions.h>
11 11
12/* BIOS32 signature: "_32_" */ 12/* BIOS32 signature: "_32_" */
13#define BIOS32_SIGNATURE (('_' << 0) + ('3' << 8) + ('2' << 16) + ('_' << 24)) 13#define BIOS32_SIGNATURE (('_' << 0) + ('3' << 8) + ('2' << 16) + ('_' << 24))
diff --git a/arch/x86/power/hibernate_asm_32.S b/arch/x86/power/hibernate_asm_32.S
index d1e9b53f9d33..b641388d8286 100644
--- a/arch/x86/power/hibernate_asm_32.S
+++ b/arch/x86/power/hibernate_asm_32.S
@@ -8,7 +8,7 @@
8 8
9#include <linux/linkage.h> 9#include <linux/linkage.h>
10#include <asm/segment.h> 10#include <asm/segment.h>
11#include <asm/page.h> 11#include <asm/page_types.h>
12#include <asm/asm-offsets.h> 12#include <asm/asm-offsets.h>
13#include <asm/processor-flags.h> 13#include <asm/processor-flags.h>
14 14
diff --git a/arch/x86/power/hibernate_asm_64.S b/arch/x86/power/hibernate_asm_64.S
index 000415947d93..9356547d8c01 100644
--- a/arch/x86/power/hibernate_asm_64.S
+++ b/arch/x86/power/hibernate_asm_64.S
@@ -18,7 +18,7 @@
18 .text 18 .text
19#include <linux/linkage.h> 19#include <linux/linkage.h>
20#include <asm/segment.h> 20#include <asm/segment.h>
21#include <asm/page.h> 21#include <asm/page_types.h>
22#include <asm/asm-offsets.h> 22#include <asm/asm-offsets.h>
23#include <asm/processor-flags.h> 23#include <asm/processor-flags.h>
24 24
diff --git a/arch/x86/scripts/strip-symbols b/arch/x86/scripts/strip-symbols
deleted file mode 100644
index a2f1ccb827c7..000000000000
--- a/arch/x86/scripts/strip-symbols
+++ /dev/null
@@ -1 +0,0 @@
1__cpu_vendor_dev_X86_VENDOR_*
diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
index 4d6ef0a336d6..16a9020c8f11 100644
--- a/arch/x86/vdso/Makefile
+++ b/arch/x86/vdso/Makefile
@@ -38,7 +38,7 @@ $(obj)/%.so: $(obj)/%.so.dbg FORCE
38 $(call if_changed,objcopy) 38 $(call if_changed,objcopy)
39 39
40CFL := $(PROFILING) -mcmodel=small -fPIC -O2 -fasynchronous-unwind-tables -m64 \ 40CFL := $(PROFILING) -mcmodel=small -fPIC -O2 -fasynchronous-unwind-tables -m64 \
41 $(filter -g%,$(KBUILD_CFLAGS)) 41 $(filter -g%,$(KBUILD_CFLAGS)) $(call cc-option, -fno-stack-protector)
42 42
43$(vobjs): KBUILD_CFLAGS += $(CFL) 43$(vobjs): KBUILD_CFLAGS += $(CFL)
44 44
diff --git a/arch/x86/vdso/vma.c b/arch/x86/vdso/vma.c
index 9c98cc6ba978..7133cdf9098b 100644
--- a/arch/x86/vdso/vma.c
+++ b/arch/x86/vdso/vma.c
@@ -85,8 +85,8 @@ static unsigned long vdso_addr(unsigned long start, unsigned len)
85 unsigned long addr, end; 85 unsigned long addr, end;
86 unsigned offset; 86 unsigned offset;
87 end = (start + PMD_SIZE - 1) & PMD_MASK; 87 end = (start + PMD_SIZE - 1) & PMD_MASK;
88 if (end >= TASK_SIZE64) 88 if (end >= TASK_SIZE_MAX)
89 end = TASK_SIZE64; 89 end = TASK_SIZE_MAX;
90 end -= len; 90 end -= len;
91 /* This loses some more bits than a modulo, but is cheaper */ 91 /* This loses some more bits than a modulo, but is cheaper */
92 offset = get_random_int() & (PTRS_PER_PTE - 1); 92 offset = get_random_int() & (PTRS_PER_PTE - 1);
diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
index 87b9ab166423..b83e119fbeb0 100644
--- a/arch/x86/xen/Kconfig
+++ b/arch/x86/xen/Kconfig
@@ -6,7 +6,7 @@ config XEN
6 bool "Xen guest support" 6 bool "Xen guest support"
7 select PARAVIRT 7 select PARAVIRT
8 select PARAVIRT_CLOCK 8 select PARAVIRT_CLOCK
9 depends on X86_64 || (X86_32 && X86_PAE && !(X86_VISWS || X86_VOYAGER)) 9 depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS)
10 depends on X86_CMPXCHG && X86_TSC 10 depends on X86_CMPXCHG && X86_TSC
11 help 11 help
12 This is the Linux Xen port. Enabling this will allow the 12 This is the Linux Xen port. Enabling this will allow the
diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile
index 6dcefba7836f..3b767d03fd6a 100644
--- a/arch/x86/xen/Makefile
+++ b/arch/x86/xen/Makefile
@@ -6,7 +6,8 @@ CFLAGS_REMOVE_irq.o = -pg
6endif 6endif
7 7
8obj-y := enlighten.o setup.o multicalls.o mmu.o irq.o \ 8obj-y := enlighten.o setup.o multicalls.o mmu.o irq.o \
9 time.o xen-asm_$(BITS).o grant-table.o suspend.o 9 time.o xen-asm.o xen-asm_$(BITS).o \
10 grant-table.o suspend.o
10 11
11obj-$(CONFIG_SMP) += smp.o spinlock.o 12obj-$(CONFIG_SMP) += smp.o spinlock.o
12obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o \ No newline at end of file 13obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o \ No newline at end of file
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index bea215230b20..c52f4034c7fd 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -61,40 +61,13 @@ DEFINE_PER_CPU(struct vcpu_info, xen_vcpu_info);
61enum xen_domain_type xen_domain_type = XEN_NATIVE; 61enum xen_domain_type xen_domain_type = XEN_NATIVE;
62EXPORT_SYMBOL_GPL(xen_domain_type); 62EXPORT_SYMBOL_GPL(xen_domain_type);
63 63
64/*
65 * Identity map, in addition to plain kernel map. This needs to be
66 * large enough to allocate page table pages to allocate the rest.
67 * Each page can map 2MB.
68 */
69static pte_t level1_ident_pgt[PTRS_PER_PTE * 4] __page_aligned_bss;
70
71#ifdef CONFIG_X86_64
72/* l3 pud for userspace vsyscall mapping */
73static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
74#endif /* CONFIG_X86_64 */
75
76/*
77 * Note about cr3 (pagetable base) values:
78 *
79 * xen_cr3 contains the current logical cr3 value; it contains the
80 * last set cr3. This may not be the current effective cr3, because
81 * its update may be being lazily deferred. However, a vcpu looking
82 * at its own cr3 can use this value knowing that it everything will
83 * be self-consistent.
84 *
85 * xen_current_cr3 contains the actual vcpu cr3; it is set once the
86 * hypercall to set the vcpu cr3 is complete (so it may be a little
87 * out of date, but it will never be set early). If one vcpu is
88 * looking at another vcpu's cr3 value, it should use this variable.
89 */
90DEFINE_PER_CPU(unsigned long, xen_cr3); /* cr3 stored as physaddr */
91DEFINE_PER_CPU(unsigned long, xen_current_cr3); /* actual vcpu cr3 */
92
93struct start_info *xen_start_info; 64struct start_info *xen_start_info;
94EXPORT_SYMBOL_GPL(xen_start_info); 65EXPORT_SYMBOL_GPL(xen_start_info);
95 66
96struct shared_info xen_dummy_shared_info; 67struct shared_info xen_dummy_shared_info;
97 68
69void *xen_initial_gdt;
70
98/* 71/*
99 * Point at some empty memory to start with. We map the real shared_info 72 * Point at some empty memory to start with. We map the real shared_info
100 * page as soon as fixmap is up and running. 73 * page as soon as fixmap is up and running.
@@ -114,14 +87,7 @@ struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
114 * 87 *
115 * 0: not available, 1: available 88 * 0: not available, 1: available
116 */ 89 */
117static int have_vcpu_info_placement = 90static int have_vcpu_info_placement = 1;
118#ifdef CONFIG_X86_32
119 1
120#else
121 0
122#endif
123 ;
124
125 91
126static void xen_vcpu_setup(int cpu) 92static void xen_vcpu_setup(int cpu)
127{ 93{
@@ -237,7 +203,7 @@ static unsigned long xen_get_debugreg(int reg)
237 return HYPERVISOR_get_debugreg(reg); 203 return HYPERVISOR_get_debugreg(reg);
238} 204}
239 205
240static void xen_leave_lazy(void) 206void xen_leave_lazy(void)
241{ 207{
242 paravirt_leave_lazy(paravirt_get_lazy_mode()); 208 paravirt_leave_lazy(paravirt_get_lazy_mode());
243 xen_mc_flush(); 209 xen_mc_flush();
@@ -357,13 +323,14 @@ static void load_TLS_descriptor(struct thread_struct *t,
357static void xen_load_tls(struct thread_struct *t, unsigned int cpu) 323static void xen_load_tls(struct thread_struct *t, unsigned int cpu)
358{ 324{
359 /* 325 /*
360 * XXX sleazy hack: If we're being called in a lazy-cpu zone, 326 * XXX sleazy hack: If we're being called in a lazy-cpu zone
361 * it means we're in a context switch, and %gs has just been 327 * and lazy gs handling is enabled, it means we're in a
362 * saved. This means we can zero it out to prevent faults on 328 * context switch, and %gs has just been saved. This means we
363 * exit from the hypervisor if the next process has no %gs. 329 * can zero it out to prevent faults on exit from the
364 * Either way, it has been saved, and the new value will get 330 * hypervisor if the next process has no %gs. Either way, it
365 * loaded properly. This will go away as soon as Xen has been 331 * has been saved, and the new value will get loaded properly.
366 * modified to not save/restore %gs for normal hypercalls. 332 * This will go away as soon as Xen has been modified to not
333 * save/restore %gs for normal hypercalls.
367 * 334 *
368 * On x86_64, this hack is not used for %gs, because gs points 335 * On x86_64, this hack is not used for %gs, because gs points
369 * to KERNEL_GS_BASE (and uses it for PDA references), so we 336 * to KERNEL_GS_BASE (and uses it for PDA references), so we
@@ -375,7 +342,7 @@ static void xen_load_tls(struct thread_struct *t, unsigned int cpu)
375 */ 342 */
376 if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU) { 343 if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU) {
377#ifdef CONFIG_X86_32 344#ifdef CONFIG_X86_32
378 loadsegment(gs, 0); 345 lazy_load_gs(0);
379#else 346#else
380 loadsegment(fs, 0); 347 loadsegment(fs, 0);
381#endif 348#endif
@@ -587,94 +554,18 @@ static u32 xen_safe_apic_wait_icr_idle(void)
587 return 0; 554 return 0;
588} 555}
589 556
590static struct apic_ops xen_basic_apic_ops = { 557static void set_xen_basic_apic_ops(void)
591 .read = xen_apic_read,
592 .write = xen_apic_write,
593 .icr_read = xen_apic_icr_read,
594 .icr_write = xen_apic_icr_write,
595 .wait_icr_idle = xen_apic_wait_icr_idle,
596 .safe_wait_icr_idle = xen_safe_apic_wait_icr_idle,
597};
598
599#endif
600
601static void xen_flush_tlb(void)
602{
603 struct mmuext_op *op;
604 struct multicall_space mcs;
605
606 preempt_disable();
607
608 mcs = xen_mc_entry(sizeof(*op));
609
610 op = mcs.args;
611 op->cmd = MMUEXT_TLB_FLUSH_LOCAL;
612 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
613
614 xen_mc_issue(PARAVIRT_LAZY_MMU);
615
616 preempt_enable();
617}
618
619static void xen_flush_tlb_single(unsigned long addr)
620{ 558{
621 struct mmuext_op *op; 559 apic->read = xen_apic_read;
622 struct multicall_space mcs; 560 apic->write = xen_apic_write;
623 561 apic->icr_read = xen_apic_icr_read;
624 preempt_disable(); 562 apic->icr_write = xen_apic_icr_write;
625 563 apic->wait_icr_idle = xen_apic_wait_icr_idle;
626 mcs = xen_mc_entry(sizeof(*op)); 564 apic->safe_wait_icr_idle = xen_safe_apic_wait_icr_idle;
627 op = mcs.args;
628 op->cmd = MMUEXT_INVLPG_LOCAL;
629 op->arg1.linear_addr = addr & PAGE_MASK;
630 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
631
632 xen_mc_issue(PARAVIRT_LAZY_MMU);
633
634 preempt_enable();
635} 565}
636 566
637static void xen_flush_tlb_others(const cpumask_t *cpus, struct mm_struct *mm, 567#endif
638 unsigned long va)
639{
640 struct {
641 struct mmuext_op op;
642 cpumask_t mask;
643 } *args;
644 cpumask_t cpumask = *cpus;
645 struct multicall_space mcs;
646
647 /*
648 * A couple of (to be removed) sanity checks:
649 *
650 * - current CPU must not be in mask
651 * - mask must exist :)
652 */
653 BUG_ON(cpus_empty(cpumask));
654 BUG_ON(cpu_isset(smp_processor_id(), cpumask));
655 BUG_ON(!mm);
656
657 /* If a CPU which we ran on has gone down, OK. */
658 cpus_and(cpumask, cpumask, cpu_online_map);
659 if (cpus_empty(cpumask))
660 return;
661
662 mcs = xen_mc_entry(sizeof(*args));
663 args = mcs.args;
664 args->mask = cpumask;
665 args->op.arg2.vcpumask = &args->mask;
666
667 if (va == TLB_FLUSH_ALL) {
668 args->op.cmd = MMUEXT_TLB_FLUSH_MULTI;
669 } else {
670 args->op.cmd = MMUEXT_INVLPG_MULTI;
671 args->op.arg1.linear_addr = va;
672 }
673
674 MULTI_mmuext_op(mcs.mc, &args->op, 1, NULL, DOMID_SELF);
675 568
676 xen_mc_issue(PARAVIRT_LAZY_MMU);
677}
678 569
679static void xen_clts(void) 570static void xen_clts(void)
680{ 571{
@@ -700,21 +591,6 @@ static void xen_write_cr0(unsigned long cr0)
700 xen_mc_issue(PARAVIRT_LAZY_CPU); 591 xen_mc_issue(PARAVIRT_LAZY_CPU);
701} 592}
702 593
703static void xen_write_cr2(unsigned long cr2)
704{
705 x86_read_percpu(xen_vcpu)->arch.cr2 = cr2;
706}
707
708static unsigned long xen_read_cr2(void)
709{
710 return x86_read_percpu(xen_vcpu)->arch.cr2;
711}
712
713static unsigned long xen_read_cr2_direct(void)
714{
715 return x86_read_percpu(xen_vcpu_info.arch.cr2);
716}
717
718static void xen_write_cr4(unsigned long cr4) 594static void xen_write_cr4(unsigned long cr4)
719{ 595{
720 cr4 &= ~X86_CR4_PGE; 596 cr4 &= ~X86_CR4_PGE;
@@ -723,71 +599,6 @@ static void xen_write_cr4(unsigned long cr4)
723 native_write_cr4(cr4); 599 native_write_cr4(cr4);
724} 600}
725 601
726static unsigned long xen_read_cr3(void)
727{
728 return x86_read_percpu(xen_cr3);
729}
730
731static void set_current_cr3(void *v)
732{
733 x86_write_percpu(xen_current_cr3, (unsigned long)v);
734}
735
736static void __xen_write_cr3(bool kernel, unsigned long cr3)
737{
738 struct mmuext_op *op;
739 struct multicall_space mcs;
740 unsigned long mfn;
741
742 if (cr3)
743 mfn = pfn_to_mfn(PFN_DOWN(cr3));
744 else
745 mfn = 0;
746
747 WARN_ON(mfn == 0 && kernel);
748
749 mcs = __xen_mc_entry(sizeof(*op));
750
751 op = mcs.args;
752 op->cmd = kernel ? MMUEXT_NEW_BASEPTR : MMUEXT_NEW_USER_BASEPTR;
753 op->arg1.mfn = mfn;
754
755 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
756
757 if (kernel) {
758 x86_write_percpu(xen_cr3, cr3);
759
760 /* Update xen_current_cr3 once the batch has actually
761 been submitted. */
762 xen_mc_callback(set_current_cr3, (void *)cr3);
763 }
764}
765
766static void xen_write_cr3(unsigned long cr3)
767{
768 BUG_ON(preemptible());
769
770 xen_mc_batch(); /* disables interrupts */
771
772 /* Update while interrupts are disabled, so its atomic with
773 respect to ipis */
774 x86_write_percpu(xen_cr3, cr3);
775
776 __xen_write_cr3(true, cr3);
777
778#ifdef CONFIG_X86_64
779 {
780 pgd_t *user_pgd = xen_get_user_pgd(__va(cr3));
781 if (user_pgd)
782 __xen_write_cr3(false, __pa(user_pgd));
783 else
784 __xen_write_cr3(false, 0);
785 }
786#endif
787
788 xen_mc_issue(PARAVIRT_LAZY_CPU); /* interrupts restored */
789}
790
791static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high) 602static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
792{ 603{
793 int ret; 604 int ret;
@@ -829,185 +640,6 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
829 return ret; 640 return ret;
830} 641}
831 642
832/* Early in boot, while setting up the initial pagetable, assume
833 everything is pinned. */
834static __init void xen_alloc_pte_init(struct mm_struct *mm, unsigned long pfn)
835{
836#ifdef CONFIG_FLATMEM
837 BUG_ON(mem_map); /* should only be used early */
838#endif
839 make_lowmem_page_readonly(__va(PFN_PHYS(pfn)));
840}
841
842/* Early release_pte assumes that all pts are pinned, since there's
843 only init_mm and anything attached to that is pinned. */
844static void xen_release_pte_init(unsigned long pfn)
845{
846 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
847}
848
849static void pin_pagetable_pfn(unsigned cmd, unsigned long pfn)
850{
851 struct mmuext_op op;
852 op.cmd = cmd;
853 op.arg1.mfn = pfn_to_mfn(pfn);
854 if (HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF))
855 BUG();
856}
857
858/* This needs to make sure the new pte page is pinned iff its being
859 attached to a pinned pagetable. */
860static void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn, unsigned level)
861{
862 struct page *page = pfn_to_page(pfn);
863
864 if (PagePinned(virt_to_page(mm->pgd))) {
865 SetPagePinned(page);
866
867 vm_unmap_aliases();
868 if (!PageHighMem(page)) {
869 make_lowmem_page_readonly(__va(PFN_PHYS((unsigned long)pfn)));
870 if (level == PT_PTE && USE_SPLIT_PTLOCKS)
871 pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
872 } else {
873 /* make sure there are no stray mappings of
874 this page */
875 kmap_flush_unused();
876 }
877 }
878}
879
880static void xen_alloc_pte(struct mm_struct *mm, unsigned long pfn)
881{
882 xen_alloc_ptpage(mm, pfn, PT_PTE);
883}
884
885static void xen_alloc_pmd(struct mm_struct *mm, unsigned long pfn)
886{
887 xen_alloc_ptpage(mm, pfn, PT_PMD);
888}
889
890static int xen_pgd_alloc(struct mm_struct *mm)
891{
892 pgd_t *pgd = mm->pgd;
893 int ret = 0;
894
895 BUG_ON(PagePinned(virt_to_page(pgd)));
896
897#ifdef CONFIG_X86_64
898 {
899 struct page *page = virt_to_page(pgd);
900 pgd_t *user_pgd;
901
902 BUG_ON(page->private != 0);
903
904 ret = -ENOMEM;
905
906 user_pgd = (pgd_t *)__get_free_page(GFP_KERNEL | __GFP_ZERO);
907 page->private = (unsigned long)user_pgd;
908
909 if (user_pgd != NULL) {
910 user_pgd[pgd_index(VSYSCALL_START)] =
911 __pgd(__pa(level3_user_vsyscall) | _PAGE_TABLE);
912 ret = 0;
913 }
914
915 BUG_ON(PagePinned(virt_to_page(xen_get_user_pgd(pgd))));
916 }
917#endif
918
919 return ret;
920}
921
922static void xen_pgd_free(struct mm_struct *mm, pgd_t *pgd)
923{
924#ifdef CONFIG_X86_64
925 pgd_t *user_pgd = xen_get_user_pgd(pgd);
926
927 if (user_pgd)
928 free_page((unsigned long)user_pgd);
929#endif
930}
931
932/* This should never happen until we're OK to use struct page */
933static void xen_release_ptpage(unsigned long pfn, unsigned level)
934{
935 struct page *page = pfn_to_page(pfn);
936
937 if (PagePinned(page)) {
938 if (!PageHighMem(page)) {
939 if (level == PT_PTE && USE_SPLIT_PTLOCKS)
940 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, pfn);
941 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
942 }
943 ClearPagePinned(page);
944 }
945}
946
947static void xen_release_pte(unsigned long pfn)
948{
949 xen_release_ptpage(pfn, PT_PTE);
950}
951
952static void xen_release_pmd(unsigned long pfn)
953{
954 xen_release_ptpage(pfn, PT_PMD);
955}
956
957#if PAGETABLE_LEVELS == 4
958static void xen_alloc_pud(struct mm_struct *mm, unsigned long pfn)
959{
960 xen_alloc_ptpage(mm, pfn, PT_PUD);
961}
962
963static void xen_release_pud(unsigned long pfn)
964{
965 xen_release_ptpage(pfn, PT_PUD);
966}
967#endif
968
969#ifdef CONFIG_HIGHPTE
970static void *xen_kmap_atomic_pte(struct page *page, enum km_type type)
971{
972 pgprot_t prot = PAGE_KERNEL;
973
974 if (PagePinned(page))
975 prot = PAGE_KERNEL_RO;
976
977 if (0 && PageHighMem(page))
978 printk("mapping highpte %lx type %d prot %s\n",
979 page_to_pfn(page), type,
980 (unsigned long)pgprot_val(prot) & _PAGE_RW ? "WRITE" : "READ");
981
982 return kmap_atomic_prot(page, type, prot);
983}
984#endif
985
986#ifdef CONFIG_X86_32
987static __init pte_t mask_rw_pte(pte_t *ptep, pte_t pte)
988{
989 /* If there's an existing pte, then don't allow _PAGE_RW to be set */
990 if (pte_val_ma(*ptep) & _PAGE_PRESENT)
991 pte = __pte_ma(((pte_val_ma(*ptep) & _PAGE_RW) | ~_PAGE_RW) &
992 pte_val_ma(pte));
993
994 return pte;
995}
996
997/* Init-time set_pte while constructing initial pagetables, which
998 doesn't allow RO pagetable pages to be remapped RW */
999static __init void xen_set_pte_init(pte_t *ptep, pte_t pte)
1000{
1001 pte = mask_rw_pte(ptep, pte);
1002
1003 xen_set_pte(ptep, pte);
1004}
1005#endif
1006
1007static __init void xen_pagetable_setup_start(pgd_t *base)
1008{
1009}
1010
1011void xen_setup_shared_info(void) 643void xen_setup_shared_info(void)
1012{ 644{
1013 if (!xen_feature(XENFEAT_auto_translated_physmap)) { 645 if (!xen_feature(XENFEAT_auto_translated_physmap)) {
@@ -1028,37 +660,6 @@ void xen_setup_shared_info(void)
1028 xen_setup_mfn_list_list(); 660 xen_setup_mfn_list_list();
1029} 661}
1030 662
1031static __init void xen_pagetable_setup_done(pgd_t *base)
1032{
1033 xen_setup_shared_info();
1034}
1035
1036static __init void xen_post_allocator_init(void)
1037{
1038 pv_mmu_ops.set_pte = xen_set_pte;
1039 pv_mmu_ops.set_pmd = xen_set_pmd;
1040 pv_mmu_ops.set_pud = xen_set_pud;
1041#if PAGETABLE_LEVELS == 4
1042 pv_mmu_ops.set_pgd = xen_set_pgd;
1043#endif
1044
1045 /* This will work as long as patching hasn't happened yet
1046 (which it hasn't) */
1047 pv_mmu_ops.alloc_pte = xen_alloc_pte;
1048 pv_mmu_ops.alloc_pmd = xen_alloc_pmd;
1049 pv_mmu_ops.release_pte = xen_release_pte;
1050 pv_mmu_ops.release_pmd = xen_release_pmd;
1051#if PAGETABLE_LEVELS == 4
1052 pv_mmu_ops.alloc_pud = xen_alloc_pud;
1053 pv_mmu_ops.release_pud = xen_release_pud;
1054#endif
1055
1056#ifdef CONFIG_X86_64
1057 SetPagePinned(virt_to_page(level3_user_vsyscall));
1058#endif
1059 xen_mark_init_mm_pinned();
1060}
1061
1062/* This is called once we have the cpu_possible_map */ 663/* This is called once we have the cpu_possible_map */
1063void xen_setup_vcpu_info_placement(void) 664void xen_setup_vcpu_info_placement(void)
1064{ 665{
@@ -1072,10 +673,10 @@ void xen_setup_vcpu_info_placement(void)
1072 if (have_vcpu_info_placement) { 673 if (have_vcpu_info_placement) {
1073 printk(KERN_INFO "Xen: using vcpu_info placement\n"); 674 printk(KERN_INFO "Xen: using vcpu_info placement\n");
1074 675
1075 pv_irq_ops.save_fl = xen_save_fl_direct; 676 pv_irq_ops.save_fl = __PV_IS_CALLEE_SAVE(xen_save_fl_direct);
1076 pv_irq_ops.restore_fl = xen_restore_fl_direct; 677 pv_irq_ops.restore_fl = __PV_IS_CALLEE_SAVE(xen_restore_fl_direct);
1077 pv_irq_ops.irq_disable = xen_irq_disable_direct; 678 pv_irq_ops.irq_disable = __PV_IS_CALLEE_SAVE(xen_irq_disable_direct);
1078 pv_irq_ops.irq_enable = xen_irq_enable_direct; 679 pv_irq_ops.irq_enable = __PV_IS_CALLEE_SAVE(xen_irq_enable_direct);
1079 pv_mmu_ops.read_cr2 = xen_read_cr2_direct; 680 pv_mmu_ops.read_cr2 = xen_read_cr2_direct;
1080 } 681 }
1081} 682}
@@ -1133,49 +734,6 @@ static unsigned xen_patch(u8 type, u16 clobbers, void *insnbuf,
1133 return ret; 734 return ret;
1134} 735}
1135 736
1136static void xen_set_fixmap(unsigned idx, unsigned long phys, pgprot_t prot)
1137{
1138 pte_t pte;
1139
1140 phys >>= PAGE_SHIFT;
1141
1142 switch (idx) {
1143 case FIX_BTMAP_END ... FIX_BTMAP_BEGIN:
1144#ifdef CONFIG_X86_F00F_BUG
1145 case FIX_F00F_IDT:
1146#endif
1147#ifdef CONFIG_X86_32
1148 case FIX_WP_TEST:
1149 case FIX_VDSO:
1150# ifdef CONFIG_HIGHMEM
1151 case FIX_KMAP_BEGIN ... FIX_KMAP_END:
1152# endif
1153#else
1154 case VSYSCALL_LAST_PAGE ... VSYSCALL_FIRST_PAGE:
1155#endif
1156#ifdef CONFIG_X86_LOCAL_APIC
1157 case FIX_APIC_BASE: /* maps dummy local APIC */
1158#endif
1159 pte = pfn_pte(phys, prot);
1160 break;
1161
1162 default:
1163 pte = mfn_pte(phys, prot);
1164 break;
1165 }
1166
1167 __native_set_fixmap(idx, pte);
1168
1169#ifdef CONFIG_X86_64
1170 /* Replicate changes to map the vsyscall page into the user
1171 pagetable vsyscall mapping. */
1172 if (idx >= VSYSCALL_LAST_PAGE && idx <= VSYSCALL_FIRST_PAGE) {
1173 unsigned long vaddr = __fix_to_virt(idx);
1174 set_pte_vaddr_pud(level3_user_vsyscall, vaddr, pte);
1175 }
1176#endif
1177}
1178
1179static const struct pv_info xen_info __initdata = { 737static const struct pv_info xen_info __initdata = {
1180 .paravirt_enabled = 1, 738 .paravirt_enabled = 1,
1181 .shared_kernel_pmd = 0, 739 .shared_kernel_pmd = 0,
@@ -1271,87 +829,6 @@ static const struct pv_apic_ops xen_apic_ops __initdata = {
1271#endif 829#endif
1272}; 830};
1273 831
1274static const struct pv_mmu_ops xen_mmu_ops __initdata = {
1275 .pagetable_setup_start = xen_pagetable_setup_start,
1276 .pagetable_setup_done = xen_pagetable_setup_done,
1277
1278 .read_cr2 = xen_read_cr2,
1279 .write_cr2 = xen_write_cr2,
1280
1281 .read_cr3 = xen_read_cr3,
1282 .write_cr3 = xen_write_cr3,
1283
1284 .flush_tlb_user = xen_flush_tlb,
1285 .flush_tlb_kernel = xen_flush_tlb,
1286 .flush_tlb_single = xen_flush_tlb_single,
1287 .flush_tlb_others = xen_flush_tlb_others,
1288
1289 .pte_update = paravirt_nop,
1290 .pte_update_defer = paravirt_nop,
1291
1292 .pgd_alloc = xen_pgd_alloc,
1293 .pgd_free = xen_pgd_free,
1294
1295 .alloc_pte = xen_alloc_pte_init,
1296 .release_pte = xen_release_pte_init,
1297 .alloc_pmd = xen_alloc_pte_init,
1298 .alloc_pmd_clone = paravirt_nop,
1299 .release_pmd = xen_release_pte_init,
1300
1301#ifdef CONFIG_HIGHPTE
1302 .kmap_atomic_pte = xen_kmap_atomic_pte,
1303#endif
1304
1305#ifdef CONFIG_X86_64
1306 .set_pte = xen_set_pte,
1307#else
1308 .set_pte = xen_set_pte_init,
1309#endif
1310 .set_pte_at = xen_set_pte_at,
1311 .set_pmd = xen_set_pmd_hyper,
1312
1313 .ptep_modify_prot_start = __ptep_modify_prot_start,
1314 .ptep_modify_prot_commit = __ptep_modify_prot_commit,
1315
1316 .pte_val = xen_pte_val,
1317 .pte_flags = native_pte_flags,
1318 .pgd_val = xen_pgd_val,
1319
1320 .make_pte = xen_make_pte,
1321 .make_pgd = xen_make_pgd,
1322
1323#ifdef CONFIG_X86_PAE
1324 .set_pte_atomic = xen_set_pte_atomic,
1325 .set_pte_present = xen_set_pte_at,
1326 .pte_clear = xen_pte_clear,
1327 .pmd_clear = xen_pmd_clear,
1328#endif /* CONFIG_X86_PAE */
1329 .set_pud = xen_set_pud_hyper,
1330
1331 .make_pmd = xen_make_pmd,
1332 .pmd_val = xen_pmd_val,
1333
1334#if PAGETABLE_LEVELS == 4
1335 .pud_val = xen_pud_val,
1336 .make_pud = xen_make_pud,
1337 .set_pgd = xen_set_pgd_hyper,
1338
1339 .alloc_pud = xen_alloc_pte_init,
1340 .release_pud = xen_release_pte_init,
1341#endif /* PAGETABLE_LEVELS == 4 */
1342
1343 .activate_mm = xen_activate_mm,
1344 .dup_mmap = xen_dup_mmap,
1345 .exit_mmap = xen_exit_mmap,
1346
1347 .lazy_mode = {
1348 .enter = paravirt_enter_lazy_mmu,
1349 .leave = xen_leave_lazy,
1350 },
1351
1352 .set_fixmap = xen_set_fixmap,
1353};
1354
1355static void xen_reboot(int reason) 832static void xen_reboot(int reason)
1356{ 833{
1357 struct sched_shutdown r = { .reason = reason }; 834 struct sched_shutdown r = { .reason = reason };
@@ -1394,223 +871,6 @@ static const struct machine_ops __initdata xen_machine_ops = {
1394}; 871};
1395 872
1396 873
1397static void __init xen_reserve_top(void)
1398{
1399#ifdef CONFIG_X86_32
1400 unsigned long top = HYPERVISOR_VIRT_START;
1401 struct xen_platform_parameters pp;
1402
1403 if (HYPERVISOR_xen_version(XENVER_platform_parameters, &pp) == 0)
1404 top = pp.virt_start;
1405
1406 reserve_top_address(-top);
1407#endif /* CONFIG_X86_32 */
1408}
1409
1410/*
1411 * Like __va(), but returns address in the kernel mapping (which is
1412 * all we have until the physical memory mapping has been set up.
1413 */
1414static void *__ka(phys_addr_t paddr)
1415{
1416#ifdef CONFIG_X86_64
1417 return (void *)(paddr + __START_KERNEL_map);
1418#else
1419 return __va(paddr);
1420#endif
1421}
1422
1423/* Convert a machine address to physical address */
1424static unsigned long m2p(phys_addr_t maddr)
1425{
1426 phys_addr_t paddr;
1427
1428 maddr &= PTE_PFN_MASK;
1429 paddr = mfn_to_pfn(maddr >> PAGE_SHIFT) << PAGE_SHIFT;
1430
1431 return paddr;
1432}
1433
1434/* Convert a machine address to kernel virtual */
1435static void *m2v(phys_addr_t maddr)
1436{
1437 return __ka(m2p(maddr));
1438}
1439
1440static void set_page_prot(void *addr, pgprot_t prot)
1441{
1442 unsigned long pfn = __pa(addr) >> PAGE_SHIFT;
1443 pte_t pte = pfn_pte(pfn, prot);
1444
1445 if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
1446 BUG();
1447}
1448
1449static __init void xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
1450{
1451 unsigned pmdidx, pteidx;
1452 unsigned ident_pte;
1453 unsigned long pfn;
1454
1455 ident_pte = 0;
1456 pfn = 0;
1457 for (pmdidx = 0; pmdidx < PTRS_PER_PMD && pfn < max_pfn; pmdidx++) {
1458 pte_t *pte_page;
1459
1460 /* Reuse or allocate a page of ptes */
1461 if (pmd_present(pmd[pmdidx]))
1462 pte_page = m2v(pmd[pmdidx].pmd);
1463 else {
1464 /* Check for free pte pages */
1465 if (ident_pte == ARRAY_SIZE(level1_ident_pgt))
1466 break;
1467
1468 pte_page = &level1_ident_pgt[ident_pte];
1469 ident_pte += PTRS_PER_PTE;
1470
1471 pmd[pmdidx] = __pmd(__pa(pte_page) | _PAGE_TABLE);
1472 }
1473
1474 /* Install mappings */
1475 for (pteidx = 0; pteidx < PTRS_PER_PTE; pteidx++, pfn++) {
1476 pte_t pte;
1477
1478 if (pfn > max_pfn_mapped)
1479 max_pfn_mapped = pfn;
1480
1481 if (!pte_none(pte_page[pteidx]))
1482 continue;
1483
1484 pte = pfn_pte(pfn, PAGE_KERNEL_EXEC);
1485 pte_page[pteidx] = pte;
1486 }
1487 }
1488
1489 for (pteidx = 0; pteidx < ident_pte; pteidx += PTRS_PER_PTE)
1490 set_page_prot(&level1_ident_pgt[pteidx], PAGE_KERNEL_RO);
1491
1492 set_page_prot(pmd, PAGE_KERNEL_RO);
1493}
1494
1495#ifdef CONFIG_X86_64
1496static void convert_pfn_mfn(void *v)
1497{
1498 pte_t *pte = v;
1499 int i;
1500
1501 /* All levels are converted the same way, so just treat them
1502 as ptes. */
1503 for (i = 0; i < PTRS_PER_PTE; i++)
1504 pte[i] = xen_make_pte(pte[i].pte);
1505}
1506
1507/*
1508 * Set up the inital kernel pagetable.
1509 *
1510 * We can construct this by grafting the Xen provided pagetable into
1511 * head_64.S's preconstructed pagetables. We copy the Xen L2's into
1512 * level2_ident_pgt, level2_kernel_pgt and level2_fixmap_pgt. This
1513 * means that only the kernel has a physical mapping to start with -
1514 * but that's enough to get __va working. We need to fill in the rest
1515 * of the physical mapping once some sort of allocator has been set
1516 * up.
1517 */
1518static __init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
1519 unsigned long max_pfn)
1520{
1521 pud_t *l3;
1522 pmd_t *l2;
1523
1524 /* Zap identity mapping */
1525 init_level4_pgt[0] = __pgd(0);
1526
1527 /* Pre-constructed entries are in pfn, so convert to mfn */
1528 convert_pfn_mfn(init_level4_pgt);
1529 convert_pfn_mfn(level3_ident_pgt);
1530 convert_pfn_mfn(level3_kernel_pgt);
1531
1532 l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
1533 l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
1534
1535 memcpy(level2_ident_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1536 memcpy(level2_kernel_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1537
1538 l3 = m2v(pgd[pgd_index(__START_KERNEL_map + PMD_SIZE)].pgd);
1539 l2 = m2v(l3[pud_index(__START_KERNEL_map + PMD_SIZE)].pud);
1540 memcpy(level2_fixmap_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1541
1542 /* Set up identity map */
1543 xen_map_identity_early(level2_ident_pgt, max_pfn);
1544
1545 /* Make pagetable pieces RO */
1546 set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
1547 set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
1548 set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
1549 set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
1550 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
1551 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
1552
1553 /* Pin down new L4 */
1554 pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE,
1555 PFN_DOWN(__pa_symbol(init_level4_pgt)));
1556
1557 /* Unpin Xen-provided one */
1558 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
1559
1560 /* Switch over */
1561 pgd = init_level4_pgt;
1562
1563 /*
1564 * At this stage there can be no user pgd, and no page
1565 * structure to attach it to, so make sure we just set kernel
1566 * pgd.
1567 */
1568 xen_mc_batch();
1569 __xen_write_cr3(true, __pa(pgd));
1570 xen_mc_issue(PARAVIRT_LAZY_CPU);
1571
1572 reserve_early(__pa(xen_start_info->pt_base),
1573 __pa(xen_start_info->pt_base +
1574 xen_start_info->nr_pt_frames * PAGE_SIZE),
1575 "XEN PAGETABLES");
1576
1577 return pgd;
1578}
1579#else /* !CONFIG_X86_64 */
1580static pmd_t level2_kernel_pgt[PTRS_PER_PMD] __page_aligned_bss;
1581
1582static __init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
1583 unsigned long max_pfn)
1584{
1585 pmd_t *kernel_pmd;
1586
1587 init_pg_tables_start = __pa(pgd);
1588 init_pg_tables_end = __pa(pgd) + xen_start_info->nr_pt_frames*PAGE_SIZE;
1589 max_pfn_mapped = PFN_DOWN(init_pg_tables_end + 512*1024);
1590
1591 kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd);
1592 memcpy(level2_kernel_pgt, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD);
1593
1594 xen_map_identity_early(level2_kernel_pgt, max_pfn);
1595
1596 memcpy(swapper_pg_dir, pgd, sizeof(pgd_t) * PTRS_PER_PGD);
1597 set_pgd(&swapper_pg_dir[KERNEL_PGD_BOUNDARY],
1598 __pgd(__pa(level2_kernel_pgt) | _PAGE_PRESENT));
1599
1600 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
1601 set_page_prot(swapper_pg_dir, PAGE_KERNEL_RO);
1602 set_page_prot(empty_zero_page, PAGE_KERNEL_RO);
1603
1604 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
1605
1606 xen_write_cr3(__pa(swapper_pg_dir));
1607
1608 pin_pagetable_pfn(MMUEXT_PIN_L3_TABLE, PFN_DOWN(__pa(swapper_pg_dir)));
1609
1610 return swapper_pg_dir;
1611}
1612#endif /* CONFIG_X86_64 */
1613
1614/* First C function to be called on Xen boot */ 874/* First C function to be called on Xen boot */
1615asmlinkage void __init xen_start_kernel(void) 875asmlinkage void __init xen_start_kernel(void)
1616{ 876{
@@ -1639,7 +899,7 @@ asmlinkage void __init xen_start_kernel(void)
1639 /* 899 /*
1640 * set up the basic apic ops. 900 * set up the basic apic ops.
1641 */ 901 */
1642 apic_ops = &xen_basic_apic_ops; 902 set_xen_basic_apic_ops();
1643#endif 903#endif
1644 904
1645 if (xen_feature(XENFEAT_mmu_pt_update_preserve_ad)) { 905 if (xen_feature(XENFEAT_mmu_pt_update_preserve_ad)) {
@@ -1650,10 +910,18 @@ asmlinkage void __init xen_start_kernel(void)
1650 machine_ops = xen_machine_ops; 910 machine_ops = xen_machine_ops;
1651 911
1652#ifdef CONFIG_X86_64 912#ifdef CONFIG_X86_64
1653 /* Disable until direct per-cpu data access. */ 913 /*
1654 have_vcpu_info_placement = 0; 914 * Setup percpu state. We only need to do this for 64-bit
1655 x86_64_init_pda(); 915 * because 32-bit already has %fs set properly.
916 */
917 load_percpu_segment(0);
1656#endif 918#endif
919 /*
920 * The only reliable way to retain the initial address of the
921 * percpu gdt_page is to remember it here, so we can go and
922 * mark it RW later, when the initial percpu area is freed.
923 */
924 xen_initial_gdt = &per_cpu(gdt_page, 0);
1657 925
1658 xen_smp_init(); 926 xen_smp_init();
1659 927
@@ -1672,6 +940,9 @@ asmlinkage void __init xen_start_kernel(void)
1672 possible map and a non-dummy shared_info. */ 940 possible map and a non-dummy shared_info. */
1673 per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0]; 941 per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
1674 942
943 local_irq_disable();
944 early_boot_irqs_off();
945
1675 xen_raw_console_write("mapping kernel into physical memory\n"); 946 xen_raw_console_write("mapping kernel into physical memory\n");
1676 pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages); 947 pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
1677 948
diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
index bb042608c602..cfd17799bd6d 100644
--- a/arch/x86/xen/irq.c
+++ b/arch/x86/xen/irq.c
@@ -19,27 +19,12 @@ void xen_force_evtchn_callback(void)
19 (void)HYPERVISOR_xen_version(0, NULL); 19 (void)HYPERVISOR_xen_version(0, NULL);
20} 20}
21 21
22static void __init __xen_init_IRQ(void)
23{
24 int i;
25
26 /* Create identity vector->irq map */
27 for(i = 0; i < NR_VECTORS; i++) {
28 int cpu;
29
30 for_each_possible_cpu(cpu)
31 per_cpu(vector_irq, cpu)[i] = i;
32 }
33
34 xen_init_IRQ();
35}
36
37static unsigned long xen_save_fl(void) 22static unsigned long xen_save_fl(void)
38{ 23{
39 struct vcpu_info *vcpu; 24 struct vcpu_info *vcpu;
40 unsigned long flags; 25 unsigned long flags;
41 26
42 vcpu = x86_read_percpu(xen_vcpu); 27 vcpu = percpu_read(xen_vcpu);
43 28
44 /* flag has opposite sense of mask */ 29 /* flag has opposite sense of mask */
45 flags = !vcpu->evtchn_upcall_mask; 30 flags = !vcpu->evtchn_upcall_mask;
@@ -50,6 +35,7 @@ static unsigned long xen_save_fl(void)
50 */ 35 */
51 return (-flags) & X86_EFLAGS_IF; 36 return (-flags) & X86_EFLAGS_IF;
52} 37}
38PV_CALLEE_SAVE_REGS_THUNK(xen_save_fl);
53 39
54static void xen_restore_fl(unsigned long flags) 40static void xen_restore_fl(unsigned long flags)
55{ 41{
@@ -62,7 +48,7 @@ static void xen_restore_fl(unsigned long flags)
62 make sure we're don't switch CPUs between getting the vcpu 48 make sure we're don't switch CPUs between getting the vcpu
63 pointer and updating the mask. */ 49 pointer and updating the mask. */
64 preempt_disable(); 50 preempt_disable();
65 vcpu = x86_read_percpu(xen_vcpu); 51 vcpu = percpu_read(xen_vcpu);
66 vcpu->evtchn_upcall_mask = flags; 52 vcpu->evtchn_upcall_mask = flags;
67 preempt_enable_no_resched(); 53 preempt_enable_no_resched();
68 54
@@ -76,6 +62,7 @@ static void xen_restore_fl(unsigned long flags)
76 xen_force_evtchn_callback(); 62 xen_force_evtchn_callback();
77 } 63 }
78} 64}
65PV_CALLEE_SAVE_REGS_THUNK(xen_restore_fl);
79 66
80static void xen_irq_disable(void) 67static void xen_irq_disable(void)
81{ 68{
@@ -83,9 +70,10 @@ static void xen_irq_disable(void)
83 make sure we're don't switch CPUs between getting the vcpu 70 make sure we're don't switch CPUs between getting the vcpu
84 pointer and updating the mask. */ 71 pointer and updating the mask. */
85 preempt_disable(); 72 preempt_disable();
86 x86_read_percpu(xen_vcpu)->evtchn_upcall_mask = 1; 73 percpu_read(xen_vcpu)->evtchn_upcall_mask = 1;
87 preempt_enable_no_resched(); 74 preempt_enable_no_resched();
88} 75}
76PV_CALLEE_SAVE_REGS_THUNK(xen_irq_disable);
89 77
90static void xen_irq_enable(void) 78static void xen_irq_enable(void)
91{ 79{
@@ -96,7 +84,7 @@ static void xen_irq_enable(void)
96 the caller is confused and is trying to re-enable interrupts 84 the caller is confused and is trying to re-enable interrupts
97 on an indeterminate processor. */ 85 on an indeterminate processor. */
98 86
99 vcpu = x86_read_percpu(xen_vcpu); 87 vcpu = percpu_read(xen_vcpu);
100 vcpu->evtchn_upcall_mask = 0; 88 vcpu->evtchn_upcall_mask = 0;
101 89
102 /* Doesn't matter if we get preempted here, because any 90 /* Doesn't matter if we get preempted here, because any
@@ -106,6 +94,7 @@ static void xen_irq_enable(void)
106 if (unlikely(vcpu->evtchn_upcall_pending)) 94 if (unlikely(vcpu->evtchn_upcall_pending))
107 xen_force_evtchn_callback(); 95 xen_force_evtchn_callback();
108} 96}
97PV_CALLEE_SAVE_REGS_THUNK(xen_irq_enable);
109 98
110static void xen_safe_halt(void) 99static void xen_safe_halt(void)
111{ 100{
@@ -123,11 +112,13 @@ static void xen_halt(void)
123} 112}
124 113
125static const struct pv_irq_ops xen_irq_ops __initdata = { 114static const struct pv_irq_ops xen_irq_ops __initdata = {
126 .init_IRQ = __xen_init_IRQ, 115 .init_IRQ = xen_init_IRQ,
127 .save_fl = xen_save_fl, 116
128 .restore_fl = xen_restore_fl, 117 .save_fl = PV_CALLEE_SAVE(xen_save_fl),
129 .irq_disable = xen_irq_disable, 118 .restore_fl = PV_CALLEE_SAVE(xen_restore_fl),
130 .irq_enable = xen_irq_enable, 119 .irq_disable = PV_CALLEE_SAVE(xen_irq_disable),
120 .irq_enable = PV_CALLEE_SAVE(xen_irq_enable),
121
131 .safe_halt = xen_safe_halt, 122 .safe_halt = xen_safe_halt,
132 .halt = xen_halt, 123 .halt = xen_halt,
133#ifdef CONFIG_X86_64 124#ifdef CONFIG_X86_64
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 503c240e26c7..319bd40a57c2 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -47,6 +47,7 @@
47#include <asm/tlbflush.h> 47#include <asm/tlbflush.h>
48#include <asm/fixmap.h> 48#include <asm/fixmap.h>
49#include <asm/mmu_context.h> 49#include <asm/mmu_context.h>
50#include <asm/setup.h>
50#include <asm/paravirt.h> 51#include <asm/paravirt.h>
51#include <asm/linkage.h> 52#include <asm/linkage.h>
52 53
@@ -55,6 +56,8 @@
55 56
56#include <xen/page.h> 57#include <xen/page.h>
57#include <xen/interface/xen.h> 58#include <xen/interface/xen.h>
59#include <xen/interface/version.h>
60#include <xen/hvc-console.h>
58 61
59#include "multicalls.h" 62#include "multicalls.h"
60#include "mmu.h" 63#include "mmu.h"
@@ -114,6 +117,37 @@ static inline void check_zero(void)
114 117
115#endif /* CONFIG_XEN_DEBUG_FS */ 118#endif /* CONFIG_XEN_DEBUG_FS */
116 119
120
121/*
122 * Identity map, in addition to plain kernel map. This needs to be
123 * large enough to allocate page table pages to allocate the rest.
124 * Each page can map 2MB.
125 */
126static pte_t level1_ident_pgt[PTRS_PER_PTE * 4] __page_aligned_bss;
127
128#ifdef CONFIG_X86_64
129/* l3 pud for userspace vsyscall mapping */
130static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
131#endif /* CONFIG_X86_64 */
132
133/*
134 * Note about cr3 (pagetable base) values:
135 *
136 * xen_cr3 contains the current logical cr3 value; it contains the
137 * last set cr3. This may not be the current effective cr3, because
138 * its update may be being lazily deferred. However, a vcpu looking
139 * at its own cr3 can use this value knowing that it everything will
140 * be self-consistent.
141 *
142 * xen_current_cr3 contains the actual vcpu cr3; it is set once the
143 * hypercall to set the vcpu cr3 is complete (so it may be a little
144 * out of date, but it will never be set early). If one vcpu is
145 * looking at another vcpu's cr3 value, it should use this variable.
146 */
147DEFINE_PER_CPU(unsigned long, xen_cr3); /* cr3 stored as physaddr */
148DEFINE_PER_CPU(unsigned long, xen_current_cr3); /* actual vcpu cr3 */
149
150
117/* 151/*
118 * Just beyond the highest usermode address. STACK_TOP_MAX has a 152 * Just beyond the highest usermode address. STACK_TOP_MAX has a
119 * redzone above it, so round it up to a PGD boundary. 153 * redzone above it, so round it up to a PGD boundary.
@@ -458,28 +492,33 @@ pteval_t xen_pte_val(pte_t pte)
458{ 492{
459 return pte_mfn_to_pfn(pte.pte); 493 return pte_mfn_to_pfn(pte.pte);
460} 494}
495PV_CALLEE_SAVE_REGS_THUNK(xen_pte_val);
461 496
462pgdval_t xen_pgd_val(pgd_t pgd) 497pgdval_t xen_pgd_val(pgd_t pgd)
463{ 498{
464 return pte_mfn_to_pfn(pgd.pgd); 499 return pte_mfn_to_pfn(pgd.pgd);
465} 500}
501PV_CALLEE_SAVE_REGS_THUNK(xen_pgd_val);
466 502
467pte_t xen_make_pte(pteval_t pte) 503pte_t xen_make_pte(pteval_t pte)
468{ 504{
469 pte = pte_pfn_to_mfn(pte); 505 pte = pte_pfn_to_mfn(pte);
470 return native_make_pte(pte); 506 return native_make_pte(pte);
471} 507}
508PV_CALLEE_SAVE_REGS_THUNK(xen_make_pte);
472 509
473pgd_t xen_make_pgd(pgdval_t pgd) 510pgd_t xen_make_pgd(pgdval_t pgd)
474{ 511{
475 pgd = pte_pfn_to_mfn(pgd); 512 pgd = pte_pfn_to_mfn(pgd);
476 return native_make_pgd(pgd); 513 return native_make_pgd(pgd);
477} 514}
515PV_CALLEE_SAVE_REGS_THUNK(xen_make_pgd);
478 516
479pmdval_t xen_pmd_val(pmd_t pmd) 517pmdval_t xen_pmd_val(pmd_t pmd)
480{ 518{
481 return pte_mfn_to_pfn(pmd.pmd); 519 return pte_mfn_to_pfn(pmd.pmd);
482} 520}
521PV_CALLEE_SAVE_REGS_THUNK(xen_pmd_val);
483 522
484void xen_set_pud_hyper(pud_t *ptr, pud_t val) 523void xen_set_pud_hyper(pud_t *ptr, pud_t val)
485{ 524{
@@ -556,12 +595,14 @@ pmd_t xen_make_pmd(pmdval_t pmd)
556 pmd = pte_pfn_to_mfn(pmd); 595 pmd = pte_pfn_to_mfn(pmd);
557 return native_make_pmd(pmd); 596 return native_make_pmd(pmd);
558} 597}
598PV_CALLEE_SAVE_REGS_THUNK(xen_make_pmd);
559 599
560#if PAGETABLE_LEVELS == 4 600#if PAGETABLE_LEVELS == 4
561pudval_t xen_pud_val(pud_t pud) 601pudval_t xen_pud_val(pud_t pud)
562{ 602{
563 return pte_mfn_to_pfn(pud.pud); 603 return pte_mfn_to_pfn(pud.pud);
564} 604}
605PV_CALLEE_SAVE_REGS_THUNK(xen_pud_val);
565 606
566pud_t xen_make_pud(pudval_t pud) 607pud_t xen_make_pud(pudval_t pud)
567{ 608{
@@ -569,6 +610,7 @@ pud_t xen_make_pud(pudval_t pud)
569 610
570 return native_make_pud(pud); 611 return native_make_pud(pud);
571} 612}
613PV_CALLEE_SAVE_REGS_THUNK(xen_make_pud);
572 614
573pgd_t *xen_get_user_pgd(pgd_t *pgd) 615pgd_t *xen_get_user_pgd(pgd_t *pgd)
574{ 616{
@@ -1063,18 +1105,14 @@ static void drop_other_mm_ref(void *info)
1063 struct mm_struct *mm = info; 1105 struct mm_struct *mm = info;
1064 struct mm_struct *active_mm; 1106 struct mm_struct *active_mm;
1065 1107
1066#ifdef CONFIG_X86_64 1108 active_mm = percpu_read(cpu_tlbstate.active_mm);
1067 active_mm = read_pda(active_mm);
1068#else
1069 active_mm = __get_cpu_var(cpu_tlbstate).active_mm;
1070#endif
1071 1109
1072 if (active_mm == mm) 1110 if (active_mm == mm)
1073 leave_mm(smp_processor_id()); 1111 leave_mm(smp_processor_id());
1074 1112
1075 /* If this cpu still has a stale cr3 reference, then make sure 1113 /* If this cpu still has a stale cr3 reference, then make sure
1076 it has been flushed. */ 1114 it has been flushed. */
1077 if (x86_read_percpu(xen_current_cr3) == __pa(mm->pgd)) { 1115 if (percpu_read(xen_current_cr3) == __pa(mm->pgd)) {
1078 load_cr3(swapper_pg_dir); 1116 load_cr3(swapper_pg_dir);
1079 arch_flush_lazy_cpu_mode(); 1117 arch_flush_lazy_cpu_mode();
1080 } 1118 }
@@ -1156,6 +1194,706 @@ void xen_exit_mmap(struct mm_struct *mm)
1156 spin_unlock(&mm->page_table_lock); 1194 spin_unlock(&mm->page_table_lock);
1157} 1195}
1158 1196
1197static __init void xen_pagetable_setup_start(pgd_t *base)
1198{
1199}
1200
1201static __init void xen_pagetable_setup_done(pgd_t *base)
1202{
1203 xen_setup_shared_info();
1204}
1205
1206static void xen_write_cr2(unsigned long cr2)
1207{
1208 percpu_read(xen_vcpu)->arch.cr2 = cr2;
1209}
1210
1211static unsigned long xen_read_cr2(void)
1212{
1213 return percpu_read(xen_vcpu)->arch.cr2;
1214}
1215
1216unsigned long xen_read_cr2_direct(void)
1217{
1218 return percpu_read(xen_vcpu_info.arch.cr2);
1219}
1220
1221static void xen_flush_tlb(void)
1222{
1223 struct mmuext_op *op;
1224 struct multicall_space mcs;
1225
1226 preempt_disable();
1227
1228 mcs = xen_mc_entry(sizeof(*op));
1229
1230 op = mcs.args;
1231 op->cmd = MMUEXT_TLB_FLUSH_LOCAL;
1232 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
1233
1234 xen_mc_issue(PARAVIRT_LAZY_MMU);
1235
1236 preempt_enable();
1237}
1238
1239static void xen_flush_tlb_single(unsigned long addr)
1240{
1241 struct mmuext_op *op;
1242 struct multicall_space mcs;
1243
1244 preempt_disable();
1245
1246 mcs = xen_mc_entry(sizeof(*op));
1247 op = mcs.args;
1248 op->cmd = MMUEXT_INVLPG_LOCAL;
1249 op->arg1.linear_addr = addr & PAGE_MASK;
1250 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
1251
1252 xen_mc_issue(PARAVIRT_LAZY_MMU);
1253
1254 preempt_enable();
1255}
1256
1257static void xen_flush_tlb_others(const struct cpumask *cpus,
1258 struct mm_struct *mm, unsigned long va)
1259{
1260 struct {
1261 struct mmuext_op op;
1262 DECLARE_BITMAP(mask, NR_CPUS);
1263 } *args;
1264 struct multicall_space mcs;
1265
1266 BUG_ON(cpumask_empty(cpus));
1267 BUG_ON(!mm);
1268
1269 mcs = xen_mc_entry(sizeof(*args));
1270 args = mcs.args;
1271 args->op.arg2.vcpumask = to_cpumask(args->mask);
1272
1273 /* Remove us, and any offline CPUS. */
1274 cpumask_and(to_cpumask(args->mask), cpus, cpu_online_mask);
1275 cpumask_clear_cpu(smp_processor_id(), to_cpumask(args->mask));
1276
1277 if (va == TLB_FLUSH_ALL) {
1278 args->op.cmd = MMUEXT_TLB_FLUSH_MULTI;
1279 } else {
1280 args->op.cmd = MMUEXT_INVLPG_MULTI;
1281 args->op.arg1.linear_addr = va;
1282 }
1283
1284 MULTI_mmuext_op(mcs.mc, &args->op, 1, NULL, DOMID_SELF);
1285
1286 xen_mc_issue(PARAVIRT_LAZY_MMU);
1287}
1288
1289static unsigned long xen_read_cr3(void)
1290{
1291 return percpu_read(xen_cr3);
1292}
1293
1294static void set_current_cr3(void *v)
1295{
1296 percpu_write(xen_current_cr3, (unsigned long)v);
1297}
1298
1299static void __xen_write_cr3(bool kernel, unsigned long cr3)
1300{
1301 struct mmuext_op *op;
1302 struct multicall_space mcs;
1303 unsigned long mfn;
1304
1305 if (cr3)
1306 mfn = pfn_to_mfn(PFN_DOWN(cr3));
1307 else
1308 mfn = 0;
1309
1310 WARN_ON(mfn == 0 && kernel);
1311
1312 mcs = __xen_mc_entry(sizeof(*op));
1313
1314 op = mcs.args;
1315 op->cmd = kernel ? MMUEXT_NEW_BASEPTR : MMUEXT_NEW_USER_BASEPTR;
1316 op->arg1.mfn = mfn;
1317
1318 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
1319
1320 if (kernel) {
1321 percpu_write(xen_cr3, cr3);
1322
1323 /* Update xen_current_cr3 once the batch has actually
1324 been submitted. */
1325 xen_mc_callback(set_current_cr3, (void *)cr3);
1326 }
1327}
1328
1329static void xen_write_cr3(unsigned long cr3)
1330{
1331 BUG_ON(preemptible());
1332
1333 xen_mc_batch(); /* disables interrupts */
1334
1335 /* Update while interrupts are disabled, so its atomic with
1336 respect to ipis */
1337 percpu_write(xen_cr3, cr3);
1338
1339 __xen_write_cr3(true, cr3);
1340
1341#ifdef CONFIG_X86_64
1342 {
1343 pgd_t *user_pgd = xen_get_user_pgd(__va(cr3));
1344 if (user_pgd)
1345 __xen_write_cr3(false, __pa(user_pgd));
1346 else
1347 __xen_write_cr3(false, 0);
1348 }
1349#endif
1350
1351 xen_mc_issue(PARAVIRT_LAZY_CPU); /* interrupts restored */
1352}
1353
1354static int xen_pgd_alloc(struct mm_struct *mm)
1355{
1356 pgd_t *pgd = mm->pgd;
1357 int ret = 0;
1358
1359 BUG_ON(PagePinned(virt_to_page(pgd)));
1360
1361#ifdef CONFIG_X86_64
1362 {
1363 struct page *page = virt_to_page(pgd);
1364 pgd_t *user_pgd;
1365
1366 BUG_ON(page->private != 0);
1367
1368 ret = -ENOMEM;
1369
1370 user_pgd = (pgd_t *)__get_free_page(GFP_KERNEL | __GFP_ZERO);
1371 page->private = (unsigned long)user_pgd;
1372
1373 if (user_pgd != NULL) {
1374 user_pgd[pgd_index(VSYSCALL_START)] =
1375 __pgd(__pa(level3_user_vsyscall) | _PAGE_TABLE);
1376 ret = 0;
1377 }
1378
1379 BUG_ON(PagePinned(virt_to_page(xen_get_user_pgd(pgd))));
1380 }
1381#endif
1382
1383 return ret;
1384}
1385
1386static void xen_pgd_free(struct mm_struct *mm, pgd_t *pgd)
1387{
1388#ifdef CONFIG_X86_64
1389 pgd_t *user_pgd = xen_get_user_pgd(pgd);
1390
1391 if (user_pgd)
1392 free_page((unsigned long)user_pgd);
1393#endif
1394}
1395
1396#ifdef CONFIG_HIGHPTE
1397static void *xen_kmap_atomic_pte(struct page *page, enum km_type type)
1398{
1399 pgprot_t prot = PAGE_KERNEL;
1400
1401 if (PagePinned(page))
1402 prot = PAGE_KERNEL_RO;
1403
1404 if (0 && PageHighMem(page))
1405 printk("mapping highpte %lx type %d prot %s\n",
1406 page_to_pfn(page), type,
1407 (unsigned long)pgprot_val(prot) & _PAGE_RW ? "WRITE" : "READ");
1408
1409 return kmap_atomic_prot(page, type, prot);
1410}
1411#endif
1412
1413#ifdef CONFIG_X86_32
1414static __init pte_t mask_rw_pte(pte_t *ptep, pte_t pte)
1415{
1416 /* If there's an existing pte, then don't allow _PAGE_RW to be set */
1417 if (pte_val_ma(*ptep) & _PAGE_PRESENT)
1418 pte = __pte_ma(((pte_val_ma(*ptep) & _PAGE_RW) | ~_PAGE_RW) &
1419 pte_val_ma(pte));
1420
1421 return pte;
1422}
1423
1424/* Init-time set_pte while constructing initial pagetables, which
1425 doesn't allow RO pagetable pages to be remapped RW */
1426static __init void xen_set_pte_init(pte_t *ptep, pte_t pte)
1427{
1428 pte = mask_rw_pte(ptep, pte);
1429
1430 xen_set_pte(ptep, pte);
1431}
1432#endif
1433
1434/* Early in boot, while setting up the initial pagetable, assume
1435 everything is pinned. */
1436static __init void xen_alloc_pte_init(struct mm_struct *mm, unsigned long pfn)
1437{
1438#ifdef CONFIG_FLATMEM
1439 BUG_ON(mem_map); /* should only be used early */
1440#endif
1441 make_lowmem_page_readonly(__va(PFN_PHYS(pfn)));
1442}
1443
1444/* Early release_pte assumes that all pts are pinned, since there's
1445 only init_mm and anything attached to that is pinned. */
1446static void xen_release_pte_init(unsigned long pfn)
1447{
1448 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
1449}
1450
1451static void pin_pagetable_pfn(unsigned cmd, unsigned long pfn)
1452{
1453 struct mmuext_op op;
1454 op.cmd = cmd;
1455 op.arg1.mfn = pfn_to_mfn(pfn);
1456 if (HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF))
1457 BUG();
1458}
1459
1460/* This needs to make sure the new pte page is pinned iff its being
1461 attached to a pinned pagetable. */
1462static void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn, unsigned level)
1463{
1464 struct page *page = pfn_to_page(pfn);
1465
1466 if (PagePinned(virt_to_page(mm->pgd))) {
1467 SetPagePinned(page);
1468
1469 vm_unmap_aliases();
1470 if (!PageHighMem(page)) {
1471 make_lowmem_page_readonly(__va(PFN_PHYS((unsigned long)pfn)));
1472 if (level == PT_PTE && USE_SPLIT_PTLOCKS)
1473 pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
1474 } else {
1475 /* make sure there are no stray mappings of
1476 this page */
1477 kmap_flush_unused();
1478 }
1479 }
1480}
1481
1482static void xen_alloc_pte(struct mm_struct *mm, unsigned long pfn)
1483{
1484 xen_alloc_ptpage(mm, pfn, PT_PTE);
1485}
1486
1487static void xen_alloc_pmd(struct mm_struct *mm, unsigned long pfn)
1488{
1489 xen_alloc_ptpage(mm, pfn, PT_PMD);
1490}
1491
1492/* This should never happen until we're OK to use struct page */
1493static void xen_release_ptpage(unsigned long pfn, unsigned level)
1494{
1495 struct page *page = pfn_to_page(pfn);
1496
1497 if (PagePinned(page)) {
1498 if (!PageHighMem(page)) {
1499 if (level == PT_PTE && USE_SPLIT_PTLOCKS)
1500 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, pfn);
1501 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
1502 }
1503 ClearPagePinned(page);
1504 }
1505}
1506
1507static void xen_release_pte(unsigned long pfn)
1508{
1509 xen_release_ptpage(pfn, PT_PTE);
1510}
1511
1512static void xen_release_pmd(unsigned long pfn)
1513{
1514 xen_release_ptpage(pfn, PT_PMD);
1515}
1516
1517#if PAGETABLE_LEVELS == 4
1518static void xen_alloc_pud(struct mm_struct *mm, unsigned long pfn)
1519{
1520 xen_alloc_ptpage(mm, pfn, PT_PUD);
1521}
1522
1523static void xen_release_pud(unsigned long pfn)
1524{
1525 xen_release_ptpage(pfn, PT_PUD);
1526}
1527#endif
1528
1529void __init xen_reserve_top(void)
1530{
1531#ifdef CONFIG_X86_32
1532 unsigned long top = HYPERVISOR_VIRT_START;
1533 struct xen_platform_parameters pp;
1534
1535 if (HYPERVISOR_xen_version(XENVER_platform_parameters, &pp) == 0)
1536 top = pp.virt_start;
1537
1538 reserve_top_address(-top);
1539#endif /* CONFIG_X86_32 */
1540}
1541
1542/*
1543 * Like __va(), but returns address in the kernel mapping (which is
1544 * all we have until the physical memory mapping has been set up.
1545 */
1546static void *__ka(phys_addr_t paddr)
1547{
1548#ifdef CONFIG_X86_64
1549 return (void *)(paddr + __START_KERNEL_map);
1550#else
1551 return __va(paddr);
1552#endif
1553}
1554
1555/* Convert a machine address to physical address */
1556static unsigned long m2p(phys_addr_t maddr)
1557{
1558 phys_addr_t paddr;
1559
1560 maddr &= PTE_PFN_MASK;
1561 paddr = mfn_to_pfn(maddr >> PAGE_SHIFT) << PAGE_SHIFT;
1562
1563 return paddr;
1564}
1565
1566/* Convert a machine address to kernel virtual */
1567static void *m2v(phys_addr_t maddr)
1568{
1569 return __ka(m2p(maddr));
1570}
1571
1572static void set_page_prot(void *addr, pgprot_t prot)
1573{
1574 unsigned long pfn = __pa(addr) >> PAGE_SHIFT;
1575 pte_t pte = pfn_pte(pfn, prot);
1576
1577 if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
1578 BUG();
1579}
1580
1581static __init void xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
1582{
1583 unsigned pmdidx, pteidx;
1584 unsigned ident_pte;
1585 unsigned long pfn;
1586
1587 ident_pte = 0;
1588 pfn = 0;
1589 for (pmdidx = 0; pmdidx < PTRS_PER_PMD && pfn < max_pfn; pmdidx++) {
1590 pte_t *pte_page;
1591
1592 /* Reuse or allocate a page of ptes */
1593 if (pmd_present(pmd[pmdidx]))
1594 pte_page = m2v(pmd[pmdidx].pmd);
1595 else {
1596 /* Check for free pte pages */
1597 if (ident_pte == ARRAY_SIZE(level1_ident_pgt))
1598 break;
1599
1600 pte_page = &level1_ident_pgt[ident_pte];
1601 ident_pte += PTRS_PER_PTE;
1602
1603 pmd[pmdidx] = __pmd(__pa(pte_page) | _PAGE_TABLE);
1604 }
1605
1606 /* Install mappings */
1607 for (pteidx = 0; pteidx < PTRS_PER_PTE; pteidx++, pfn++) {
1608 pte_t pte;
1609
1610 if (pfn > max_pfn_mapped)
1611 max_pfn_mapped = pfn;
1612
1613 if (!pte_none(pte_page[pteidx]))
1614 continue;
1615
1616 pte = pfn_pte(pfn, PAGE_KERNEL_EXEC);
1617 pte_page[pteidx] = pte;
1618 }
1619 }
1620
1621 for (pteidx = 0; pteidx < ident_pte; pteidx += PTRS_PER_PTE)
1622 set_page_prot(&level1_ident_pgt[pteidx], PAGE_KERNEL_RO);
1623
1624 set_page_prot(pmd, PAGE_KERNEL_RO);
1625}
1626
1627#ifdef CONFIG_X86_64
1628static void convert_pfn_mfn(void *v)
1629{
1630 pte_t *pte = v;
1631 int i;
1632
1633 /* All levels are converted the same way, so just treat them
1634 as ptes. */
1635 for (i = 0; i < PTRS_PER_PTE; i++)
1636 pte[i] = xen_make_pte(pte[i].pte);
1637}
1638
1639/*
1640 * Set up the inital kernel pagetable.
1641 *
1642 * We can construct this by grafting the Xen provided pagetable into
1643 * head_64.S's preconstructed pagetables. We copy the Xen L2's into
1644 * level2_ident_pgt, level2_kernel_pgt and level2_fixmap_pgt. This
1645 * means that only the kernel has a physical mapping to start with -
1646 * but that's enough to get __va working. We need to fill in the rest
1647 * of the physical mapping once some sort of allocator has been set
1648 * up.
1649 */
1650__init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
1651 unsigned long max_pfn)
1652{
1653 pud_t *l3;
1654 pmd_t *l2;
1655
1656 /* Zap identity mapping */
1657 init_level4_pgt[0] = __pgd(0);
1658
1659 /* Pre-constructed entries are in pfn, so convert to mfn */
1660 convert_pfn_mfn(init_level4_pgt);
1661 convert_pfn_mfn(level3_ident_pgt);
1662 convert_pfn_mfn(level3_kernel_pgt);
1663
1664 l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
1665 l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
1666
1667 memcpy(level2_ident_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1668 memcpy(level2_kernel_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1669
1670 l3 = m2v(pgd[pgd_index(__START_KERNEL_map + PMD_SIZE)].pgd);
1671 l2 = m2v(l3[pud_index(__START_KERNEL_map + PMD_SIZE)].pud);
1672 memcpy(level2_fixmap_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1673
1674 /* Set up identity map */
1675 xen_map_identity_early(level2_ident_pgt, max_pfn);
1676
1677 /* Make pagetable pieces RO */
1678 set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
1679 set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
1680 set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
1681 set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
1682 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
1683 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
1684
1685 /* Pin down new L4 */
1686 pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE,
1687 PFN_DOWN(__pa_symbol(init_level4_pgt)));
1688
1689 /* Unpin Xen-provided one */
1690 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
1691
1692 /* Switch over */
1693 pgd = init_level4_pgt;
1694
1695 /*
1696 * At this stage there can be no user pgd, and no page
1697 * structure to attach it to, so make sure we just set kernel
1698 * pgd.
1699 */
1700 xen_mc_batch();
1701 __xen_write_cr3(true, __pa(pgd));
1702 xen_mc_issue(PARAVIRT_LAZY_CPU);
1703
1704 reserve_early(__pa(xen_start_info->pt_base),
1705 __pa(xen_start_info->pt_base +
1706 xen_start_info->nr_pt_frames * PAGE_SIZE),
1707 "XEN PAGETABLES");
1708
1709 return pgd;
1710}
1711#else /* !CONFIG_X86_64 */
1712static pmd_t level2_kernel_pgt[PTRS_PER_PMD] __page_aligned_bss;
1713
1714__init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
1715 unsigned long max_pfn)
1716{
1717 pmd_t *kernel_pmd;
1718
1719 init_pg_tables_start = __pa(pgd);
1720 init_pg_tables_end = __pa(pgd) + xen_start_info->nr_pt_frames*PAGE_SIZE;
1721 max_pfn_mapped = PFN_DOWN(init_pg_tables_end + 512*1024);
1722
1723 kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd);
1724 memcpy(level2_kernel_pgt, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD);
1725
1726 xen_map_identity_early(level2_kernel_pgt, max_pfn);
1727
1728 memcpy(swapper_pg_dir, pgd, sizeof(pgd_t) * PTRS_PER_PGD);
1729 set_pgd(&swapper_pg_dir[KERNEL_PGD_BOUNDARY],
1730 __pgd(__pa(level2_kernel_pgt) | _PAGE_PRESENT));
1731
1732 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
1733 set_page_prot(swapper_pg_dir, PAGE_KERNEL_RO);
1734 set_page_prot(empty_zero_page, PAGE_KERNEL_RO);
1735
1736 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
1737
1738 xen_write_cr3(__pa(swapper_pg_dir));
1739
1740 pin_pagetable_pfn(MMUEXT_PIN_L3_TABLE, PFN_DOWN(__pa(swapper_pg_dir)));
1741
1742 return swapper_pg_dir;
1743}
1744#endif /* CONFIG_X86_64 */
1745
1746static void xen_set_fixmap(unsigned idx, unsigned long phys, pgprot_t prot)
1747{
1748 pte_t pte;
1749
1750 phys >>= PAGE_SHIFT;
1751
1752 switch (idx) {
1753 case FIX_BTMAP_END ... FIX_BTMAP_BEGIN:
1754#ifdef CONFIG_X86_F00F_BUG
1755 case FIX_F00F_IDT:
1756#endif
1757#ifdef CONFIG_X86_32
1758 case FIX_WP_TEST:
1759 case FIX_VDSO:
1760# ifdef CONFIG_HIGHMEM
1761 case FIX_KMAP_BEGIN ... FIX_KMAP_END:
1762# endif
1763#else
1764 case VSYSCALL_LAST_PAGE ... VSYSCALL_FIRST_PAGE:
1765#endif
1766#ifdef CONFIG_X86_LOCAL_APIC
1767 case FIX_APIC_BASE: /* maps dummy local APIC */
1768#endif
1769 pte = pfn_pte(phys, prot);
1770 break;
1771
1772 default:
1773 pte = mfn_pte(phys, prot);
1774 break;
1775 }
1776
1777 __native_set_fixmap(idx, pte);
1778
1779#ifdef CONFIG_X86_64
1780 /* Replicate changes to map the vsyscall page into the user
1781 pagetable vsyscall mapping. */
1782 if (idx >= VSYSCALL_LAST_PAGE && idx <= VSYSCALL_FIRST_PAGE) {
1783 unsigned long vaddr = __fix_to_virt(idx);
1784 set_pte_vaddr_pud(level3_user_vsyscall, vaddr, pte);
1785 }
1786#endif
1787}
1788
1789__init void xen_post_allocator_init(void)
1790{
1791 pv_mmu_ops.set_pte = xen_set_pte;
1792 pv_mmu_ops.set_pmd = xen_set_pmd;
1793 pv_mmu_ops.set_pud = xen_set_pud;
1794#if PAGETABLE_LEVELS == 4
1795 pv_mmu_ops.set_pgd = xen_set_pgd;
1796#endif
1797
1798 /* This will work as long as patching hasn't happened yet
1799 (which it hasn't) */
1800 pv_mmu_ops.alloc_pte = xen_alloc_pte;
1801 pv_mmu_ops.alloc_pmd = xen_alloc_pmd;
1802 pv_mmu_ops.release_pte = xen_release_pte;
1803 pv_mmu_ops.release_pmd = xen_release_pmd;
1804#if PAGETABLE_LEVELS == 4
1805 pv_mmu_ops.alloc_pud = xen_alloc_pud;
1806 pv_mmu_ops.release_pud = xen_release_pud;
1807#endif
1808
1809#ifdef CONFIG_X86_64
1810 SetPagePinned(virt_to_page(level3_user_vsyscall));
1811#endif
1812 xen_mark_init_mm_pinned();
1813}
1814
1815
1816const struct pv_mmu_ops xen_mmu_ops __initdata = {
1817 .pagetable_setup_start = xen_pagetable_setup_start,
1818 .pagetable_setup_done = xen_pagetable_setup_done,
1819
1820 .read_cr2 = xen_read_cr2,
1821 .write_cr2 = xen_write_cr2,
1822
1823 .read_cr3 = xen_read_cr3,
1824 .write_cr3 = xen_write_cr3,
1825
1826 .flush_tlb_user = xen_flush_tlb,
1827 .flush_tlb_kernel = xen_flush_tlb,
1828 .flush_tlb_single = xen_flush_tlb_single,
1829 .flush_tlb_others = xen_flush_tlb_others,
1830
1831 .pte_update = paravirt_nop,
1832 .pte_update_defer = paravirt_nop,
1833
1834 .pgd_alloc = xen_pgd_alloc,
1835 .pgd_free = xen_pgd_free,
1836
1837 .alloc_pte = xen_alloc_pte_init,
1838 .release_pte = xen_release_pte_init,
1839 .alloc_pmd = xen_alloc_pte_init,
1840 .alloc_pmd_clone = paravirt_nop,
1841 .release_pmd = xen_release_pte_init,
1842
1843#ifdef CONFIG_HIGHPTE
1844 .kmap_atomic_pte = xen_kmap_atomic_pte,
1845#endif
1846
1847#ifdef CONFIG_X86_64
1848 .set_pte = xen_set_pte,
1849#else
1850 .set_pte = xen_set_pte_init,
1851#endif
1852 .set_pte_at = xen_set_pte_at,
1853 .set_pmd = xen_set_pmd_hyper,
1854
1855 .ptep_modify_prot_start = __ptep_modify_prot_start,
1856 .ptep_modify_prot_commit = __ptep_modify_prot_commit,
1857
1858 .pte_val = PV_CALLEE_SAVE(xen_pte_val),
1859 .pgd_val = PV_CALLEE_SAVE(xen_pgd_val),
1860
1861 .make_pte = PV_CALLEE_SAVE(xen_make_pte),
1862 .make_pgd = PV_CALLEE_SAVE(xen_make_pgd),
1863
1864#ifdef CONFIG_X86_PAE
1865 .set_pte_atomic = xen_set_pte_atomic,
1866 .set_pte_present = xen_set_pte_at,
1867 .pte_clear = xen_pte_clear,
1868 .pmd_clear = xen_pmd_clear,
1869#endif /* CONFIG_X86_PAE */
1870 .set_pud = xen_set_pud_hyper,
1871
1872 .make_pmd = PV_CALLEE_SAVE(xen_make_pmd),
1873 .pmd_val = PV_CALLEE_SAVE(xen_pmd_val),
1874
1875#if PAGETABLE_LEVELS == 4
1876 .pud_val = PV_CALLEE_SAVE(xen_pud_val),
1877 .make_pud = PV_CALLEE_SAVE(xen_make_pud),
1878 .set_pgd = xen_set_pgd_hyper,
1879
1880 .alloc_pud = xen_alloc_pte_init,
1881 .release_pud = xen_release_pte_init,
1882#endif /* PAGETABLE_LEVELS == 4 */
1883
1884 .activate_mm = xen_activate_mm,
1885 .dup_mmap = xen_dup_mmap,
1886 .exit_mmap = xen_exit_mmap,
1887
1888 .lazy_mode = {
1889 .enter = paravirt_enter_lazy_mmu,
1890 .leave = xen_leave_lazy,
1891 },
1892
1893 .set_fixmap = xen_set_fixmap,
1894};
1895
1896
1159#ifdef CONFIG_XEN_DEBUG_FS 1897#ifdef CONFIG_XEN_DEBUG_FS
1160 1898
1161static struct dentry *d_mmu_debug; 1899static struct dentry *d_mmu_debug;
diff --git a/arch/x86/xen/mmu.h b/arch/x86/xen/mmu.h
index 98d71659da5a..24d1b44a337d 100644
--- a/arch/x86/xen/mmu.h
+++ b/arch/x86/xen/mmu.h
@@ -54,4 +54,7 @@ pte_t xen_ptep_modify_prot_start(struct mm_struct *mm, unsigned long addr, pte_t
54void xen_ptep_modify_prot_commit(struct mm_struct *mm, unsigned long addr, 54void xen_ptep_modify_prot_commit(struct mm_struct *mm, unsigned long addr,
55 pte_t *ptep, pte_t pte); 55 pte_t *ptep, pte_t pte);
56 56
57unsigned long xen_read_cr2_direct(void);
58
59extern const struct pv_mmu_ops xen_mmu_ops;
57#endif /* _XEN_MMU_H */ 60#endif /* _XEN_MMU_H */
diff --git a/arch/x86/xen/multicalls.c b/arch/x86/xen/multicalls.c
index c738644b5435..8bff7e7c290b 100644
--- a/arch/x86/xen/multicalls.c
+++ b/arch/x86/xen/multicalls.c
@@ -39,6 +39,7 @@ struct mc_buffer {
39 struct multicall_entry entries[MC_BATCH]; 39 struct multicall_entry entries[MC_BATCH];
40#if MC_DEBUG 40#if MC_DEBUG
41 struct multicall_entry debug[MC_BATCH]; 41 struct multicall_entry debug[MC_BATCH];
42 void *caller[MC_BATCH];
42#endif 43#endif
43 unsigned char args[MC_ARGS]; 44 unsigned char args[MC_ARGS];
44 struct callback { 45 struct callback {
@@ -154,11 +155,12 @@ void xen_mc_flush(void)
154 ret, smp_processor_id()); 155 ret, smp_processor_id());
155 dump_stack(); 156 dump_stack();
156 for (i = 0; i < b->mcidx; i++) { 157 for (i = 0; i < b->mcidx; i++) {
157 printk(KERN_DEBUG " call %2d/%d: op=%lu arg=[%lx] result=%ld\n", 158 printk(KERN_DEBUG " call %2d/%d: op=%lu arg=[%lx] result=%ld\t%pF\n",
158 i+1, b->mcidx, 159 i+1, b->mcidx,
159 b->debug[i].op, 160 b->debug[i].op,
160 b->debug[i].args[0], 161 b->debug[i].args[0],
161 b->entries[i].result); 162 b->entries[i].result,
163 b->caller[i]);
162 } 164 }
163 } 165 }
164#endif 166#endif
@@ -168,8 +170,6 @@ void xen_mc_flush(void)
168 } else 170 } else
169 BUG_ON(b->argidx != 0); 171 BUG_ON(b->argidx != 0);
170 172
171 local_irq_restore(flags);
172
173 for (i = 0; i < b->cbidx; i++) { 173 for (i = 0; i < b->cbidx; i++) {
174 struct callback *cb = &b->callbacks[i]; 174 struct callback *cb = &b->callbacks[i];
175 175
@@ -177,7 +177,9 @@ void xen_mc_flush(void)
177 } 177 }
178 b->cbidx = 0; 178 b->cbidx = 0;
179 179
180 BUG_ON(ret); 180 local_irq_restore(flags);
181
182 WARN_ON(ret);
181} 183}
182 184
183struct multicall_space __xen_mc_entry(size_t args) 185struct multicall_space __xen_mc_entry(size_t args)
@@ -197,6 +199,9 @@ struct multicall_space __xen_mc_entry(size_t args)
197 } 199 }
198 200
199 ret.mc = &b->entries[b->mcidx]; 201 ret.mc = &b->entries[b->mcidx];
202#ifdef MC_DEBUG
203 b->caller[b->mcidx] = __builtin_return_address(0);
204#endif
200 b->mcidx++; 205 b->mcidx++;
201 ret.args = &b->args[argidx]; 206 ret.args = &b->args[argidx];
202 b->argidx = argidx + args; 207 b->argidx = argidx + args;
diff --git a/arch/x86/xen/multicalls.h b/arch/x86/xen/multicalls.h
index 858938241616..9e565da5d1f7 100644
--- a/arch/x86/xen/multicalls.h
+++ b/arch/x86/xen/multicalls.h
@@ -19,8 +19,10 @@ DECLARE_PER_CPU(unsigned long, xen_mc_irq_flags);
19 paired with xen_mc_issue() */ 19 paired with xen_mc_issue() */
20static inline void xen_mc_batch(void) 20static inline void xen_mc_batch(void)
21{ 21{
22 unsigned long flags;
22 /* need to disable interrupts until this entry is complete */ 23 /* need to disable interrupts until this entry is complete */
23 local_irq_save(__get_cpu_var(xen_mc_irq_flags)); 24 local_irq_save(flags);
25 __get_cpu_var(xen_mc_irq_flags) = flags;
24} 26}
25 27
26static inline struct multicall_space xen_mc_entry(size_t args) 28static inline struct multicall_space xen_mc_entry(size_t args)
@@ -39,7 +41,7 @@ static inline void xen_mc_issue(unsigned mode)
39 xen_mc_flush(); 41 xen_mc_flush();
40 42
41 /* restore flags saved in xen_mc_batch */ 43 /* restore flags saved in xen_mc_batch */
42 local_irq_restore(x86_read_percpu(xen_mc_irq_flags)); 44 local_irq_restore(percpu_read(xen_mc_irq_flags));
43} 45}
44 46
45/* Set up a callback to be called when the current batch is flushed */ 47/* Set up a callback to be called when the current batch is flushed */
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
index c44e2069c7c7..035582ae815d 100644
--- a/arch/x86/xen/smp.c
+++ b/arch/x86/xen/smp.c
@@ -50,11 +50,7 @@ static irqreturn_t xen_call_function_single_interrupt(int irq, void *dev_id);
50 */ 50 */
51static irqreturn_t xen_reschedule_interrupt(int irq, void *dev_id) 51static irqreturn_t xen_reschedule_interrupt(int irq, void *dev_id)
52{ 52{
53#ifdef CONFIG_X86_32 53 inc_irq_stat(irq_resched_count);
54 __get_cpu_var(irq_stat).irq_resched_count++;
55#else
56 add_pda(irq_resched_count, 1);
57#endif
58 54
59 return IRQ_HANDLED; 55 return IRQ_HANDLED;
60} 56}
@@ -78,7 +74,7 @@ static __cpuinit void cpu_bringup(void)
78 xen_setup_cpu_clockevents(); 74 xen_setup_cpu_clockevents();
79 75
80 cpu_set(cpu, cpu_online_map); 76 cpu_set(cpu, cpu_online_map);
81 x86_write_percpu(cpu_state, CPU_ONLINE); 77 percpu_write(cpu_state, CPU_ONLINE);
82 wmb(); 78 wmb();
83 79
84 /* We can take interrupts now: we're officially "up". */ 80 /* We can take interrupts now: we're officially "up". */
@@ -174,7 +170,7 @@ static void __init xen_smp_prepare_boot_cpu(void)
174 170
175 /* We've switched to the "real" per-cpu gdt, so make sure the 171 /* We've switched to the "real" per-cpu gdt, so make sure the
176 old memory can be recycled */ 172 old memory can be recycled */
177 make_lowmem_page_readwrite(&per_cpu_var(gdt_page)); 173 make_lowmem_page_readwrite(xen_initial_gdt);
178 174
179 xen_setup_vcpu_info_placement(); 175 xen_setup_vcpu_info_placement();
180} 176}
@@ -239,6 +235,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
239 ctxt->user_regs.ss = __KERNEL_DS; 235 ctxt->user_regs.ss = __KERNEL_DS;
240#ifdef CONFIG_X86_32 236#ifdef CONFIG_X86_32
241 ctxt->user_regs.fs = __KERNEL_PERCPU; 237 ctxt->user_regs.fs = __KERNEL_PERCPU;
238#else
239 ctxt->gs_base_kernel = per_cpu_offset(cpu);
242#endif 240#endif
243 ctxt->user_regs.eip = (unsigned long)cpu_bringup_and_idle; 241 ctxt->user_regs.eip = (unsigned long)cpu_bringup_and_idle;
244 ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */ 242 ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */
@@ -283,23 +281,14 @@ static int __cpuinit xen_cpu_up(unsigned int cpu)
283 struct task_struct *idle = idle_task(cpu); 281 struct task_struct *idle = idle_task(cpu);
284 int rc; 282 int rc;
285 283
286#ifdef CONFIG_X86_64
287 /* Allocate node local memory for AP pdas */
288 WARN_ON(cpu == 0);
289 if (cpu > 0) {
290 rc = get_local_pda(cpu);
291 if (rc)
292 return rc;
293 }
294#endif
295
296#ifdef CONFIG_X86_32
297 init_gdt(cpu);
298 per_cpu(current_task, cpu) = idle; 284 per_cpu(current_task, cpu) = idle;
285#ifdef CONFIG_X86_32
299 irq_ctx_init(cpu); 286 irq_ctx_init(cpu);
300#else 287#else
301 cpu_pda(cpu)->pcurrent = idle;
302 clear_tsk_thread_flag(idle, TIF_FORK); 288 clear_tsk_thread_flag(idle, TIF_FORK);
289 per_cpu(kernel_stack, cpu) =
290 (unsigned long)task_stack_page(idle) -
291 KERNEL_STACK_OFFSET + THREAD_SIZE;
303#endif 292#endif
304 xen_setup_timer(cpu); 293 xen_setup_timer(cpu);
305 xen_init_lock_cpu(cpu); 294 xen_init_lock_cpu(cpu);
@@ -445,11 +434,7 @@ static irqreturn_t xen_call_function_interrupt(int irq, void *dev_id)
445{ 434{
446 irq_enter(); 435 irq_enter();
447 generic_smp_call_function_interrupt(); 436 generic_smp_call_function_interrupt();
448#ifdef CONFIG_X86_32 437 inc_irq_stat(irq_call_count);
449 __get_cpu_var(irq_stat).irq_call_count++;
450#else
451 add_pda(irq_call_count, 1);
452#endif
453 irq_exit(); 438 irq_exit();
454 439
455 return IRQ_HANDLED; 440 return IRQ_HANDLED;
@@ -459,11 +444,7 @@ static irqreturn_t xen_call_function_single_interrupt(int irq, void *dev_id)
459{ 444{
460 irq_enter(); 445 irq_enter();
461 generic_smp_call_function_single_interrupt(); 446 generic_smp_call_function_single_interrupt();
462#ifdef CONFIG_X86_32 447 inc_irq_stat(irq_call_count);
463 __get_cpu_var(irq_stat).irq_call_count++;
464#else
465 add_pda(irq_call_count, 1);
466#endif
467 irq_exit(); 448 irq_exit();
468 449
469 return IRQ_HANDLED; 450 return IRQ_HANDLED;
diff --git a/arch/x86/xen/suspend.c b/arch/x86/xen/suspend.c
index 212ffe012b76..95be7b434724 100644
--- a/arch/x86/xen/suspend.c
+++ b/arch/x86/xen/suspend.c
@@ -6,6 +6,7 @@
6 6
7#include <asm/xen/hypercall.h> 7#include <asm/xen/hypercall.h>
8#include <asm/xen/page.h> 8#include <asm/xen/page.h>
9#include <asm/fixmap.h>
9 10
10#include "xen-ops.h" 11#include "xen-ops.h"
11#include "mmu.h" 12#include "mmu.h"
diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
new file mode 100644
index 000000000000..79d7362ad6d1
--- /dev/null
+++ b/arch/x86/xen/xen-asm.S
@@ -0,0 +1,142 @@
1/*
2 * Asm versions of Xen pv-ops, suitable for either direct use or
3 * inlining. The inline versions are the same as the direct-use
4 * versions, with the pre- and post-amble chopped off.
5 *
6 * This code is encoded for size rather than absolute efficiency, with
7 * a view to being able to inline as much as possible.
8 *
9 * We only bother with direct forms (ie, vcpu in percpu data) of the
10 * operations here; the indirect forms are better handled in C, since
11 * they're generally too large to inline anyway.
12 */
13
14#include <asm/asm-offsets.h>
15#include <asm/percpu.h>
16#include <asm/processor-flags.h>
17
18#include "xen-asm.h"
19
20/*
21 * Enable events. This clears the event mask and tests the pending
22 * event status with one and operation. If there are pending events,
23 * then enter the hypervisor to get them handled.
24 */
25ENTRY(xen_irq_enable_direct)
26 /* Unmask events */
27 movb $0, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask
28
29 /*
30 * Preempt here doesn't matter because that will deal with any
31 * pending interrupts. The pending check may end up being run
32 * on the wrong CPU, but that doesn't hurt.
33 */
34
35 /* Test for pending */
36 testb $0xff, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_pending
37 jz 1f
38
392: call check_events
401:
41ENDPATCH(xen_irq_enable_direct)
42 ret
43 ENDPROC(xen_irq_enable_direct)
44 RELOC(xen_irq_enable_direct, 2b+1)
45
46
47/*
48 * Disabling events is simply a matter of making the event mask
49 * non-zero.
50 */
51ENTRY(xen_irq_disable_direct)
52 movb $1, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask
53ENDPATCH(xen_irq_disable_direct)
54 ret
55 ENDPROC(xen_irq_disable_direct)
56 RELOC(xen_irq_disable_direct, 0)
57
58/*
59 * (xen_)save_fl is used to get the current interrupt enable status.
60 * Callers expect the status to be in X86_EFLAGS_IF, and other bits
61 * may be set in the return value. We take advantage of this by
62 * making sure that X86_EFLAGS_IF has the right value (and other bits
63 * in that byte are 0), but other bits in the return value are
64 * undefined. We need to toggle the state of the bit, because Xen and
65 * x86 use opposite senses (mask vs enable).
66 */
67ENTRY(xen_save_fl_direct)
68 testb $0xff, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask
69 setz %ah
70 addb %ah, %ah
71ENDPATCH(xen_save_fl_direct)
72 ret
73 ENDPROC(xen_save_fl_direct)
74 RELOC(xen_save_fl_direct, 0)
75
76
77/*
78 * In principle the caller should be passing us a value return from
79 * xen_save_fl_direct, but for robustness sake we test only the
80 * X86_EFLAGS_IF flag rather than the whole byte. After setting the
81 * interrupt mask state, it checks for unmasked pending events and
82 * enters the hypervisor to get them delivered if so.
83 */
84ENTRY(xen_restore_fl_direct)
85#ifdef CONFIG_X86_64
86 testw $X86_EFLAGS_IF, %di
87#else
88 testb $X86_EFLAGS_IF>>8, %ah
89#endif
90 setz PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask
91 /*
92 * Preempt here doesn't matter because that will deal with any
93 * pending interrupts. The pending check may end up being run
94 * on the wrong CPU, but that doesn't hurt.
95 */
96
97 /* check for unmasked and pending */
98 cmpw $0x0001, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_pending
99 jz 1f
1002: call check_events
1011:
102ENDPATCH(xen_restore_fl_direct)
103 ret
104 ENDPROC(xen_restore_fl_direct)
105 RELOC(xen_restore_fl_direct, 2b+1)
106
107
108/*
109 * Force an event check by making a hypercall, but preserve regs
110 * before making the call.
111 */
112check_events:
113#ifdef CONFIG_X86_32
114 push %eax
115 push %ecx
116 push %edx
117 call xen_force_evtchn_callback
118 pop %edx
119 pop %ecx
120 pop %eax
121#else
122 push %rax
123 push %rcx
124 push %rdx
125 push %rsi
126 push %rdi
127 push %r8
128 push %r9
129 push %r10
130 push %r11
131 call xen_force_evtchn_callback
132 pop %r11
133 pop %r10
134 pop %r9
135 pop %r8
136 pop %rdi
137 pop %rsi
138 pop %rdx
139 pop %rcx
140 pop %rax
141#endif
142 ret
diff --git a/arch/x86/xen/xen-asm.h b/arch/x86/xen/xen-asm.h
new file mode 100644
index 000000000000..465276467a47
--- /dev/null
+++ b/arch/x86/xen/xen-asm.h
@@ -0,0 +1,12 @@
1#ifndef _XEN_XEN_ASM_H
2#define _XEN_XEN_ASM_H
3
4#include <linux/linkage.h>
5
6#define RELOC(x, v) .globl x##_reloc; x##_reloc=v
7#define ENDPATCH(x) .globl x##_end; x##_end=.
8
9/* Pseudo-flag used for virtual NMI, which we don't implement yet */
10#define XEN_EFLAGS_NMI 0x80000000
11
12#endif
diff --git a/arch/x86/xen/xen-asm_32.S b/arch/x86/xen/xen-asm_32.S
index 42786f59d9c0..88e15deb8b82 100644
--- a/arch/x86/xen/xen-asm_32.S
+++ b/arch/x86/xen/xen-asm_32.S
@@ -1,117 +1,43 @@
1/* 1/*
2 Asm versions of Xen pv-ops, suitable for either direct use or inlining. 2 * Asm versions of Xen pv-ops, suitable for either direct use or
3 The inline versions are the same as the direct-use versions, with the 3 * inlining. The inline versions are the same as the direct-use
4 pre- and post-amble chopped off. 4 * versions, with the pre- and post-amble chopped off.
5 5 *
6 This code is encoded for size rather than absolute efficiency, 6 * This code is encoded for size rather than absolute efficiency, with
7 with a view to being able to inline as much as possible. 7 * a view to being able to inline as much as possible.
8 8 *
9 We only bother with direct forms (ie, vcpu in pda) of the operations 9 * We only bother with direct forms (ie, vcpu in pda) of the
10 here; the indirect forms are better handled in C, since they're 10 * operations here; the indirect forms are better handled in C, since
11 generally too large to inline anyway. 11 * they're generally too large to inline anyway.
12 */ 12 */
13 13
14#include <linux/linkage.h>
15
16#include <asm/asm-offsets.h>
17#include <asm/thread_info.h> 14#include <asm/thread_info.h>
18#include <asm/percpu.h>
19#include <asm/processor-flags.h> 15#include <asm/processor-flags.h>
20#include <asm/segment.h> 16#include <asm/segment.h>
21 17
22#include <xen/interface/xen.h> 18#include <xen/interface/xen.h>
23 19
24#define RELOC(x, v) .globl x##_reloc; x##_reloc=v 20#include "xen-asm.h"
25#define ENDPATCH(x) .globl x##_end; x##_end=.
26
27/* Pseudo-flag used for virtual NMI, which we don't implement yet */
28#define XEN_EFLAGS_NMI 0x80000000
29
30/*
31 Enable events. This clears the event mask and tests the pending
32 event status with one and operation. If there are pending
33 events, then enter the hypervisor to get them handled.
34 */
35ENTRY(xen_irq_enable_direct)
36 /* Unmask events */
37 movb $0, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_mask
38
39 /* Preempt here doesn't matter because that will deal with
40 any pending interrupts. The pending check may end up being
41 run on the wrong CPU, but that doesn't hurt. */
42
43 /* Test for pending */
44 testb $0xff, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_pending
45 jz 1f
46
472: call check_events
481:
49ENDPATCH(xen_irq_enable_direct)
50 ret
51 ENDPROC(xen_irq_enable_direct)
52 RELOC(xen_irq_enable_direct, 2b+1)
53
54
55/*
56 Disabling events is simply a matter of making the event mask
57 non-zero.
58 */
59ENTRY(xen_irq_disable_direct)
60 movb $1, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_mask
61ENDPATCH(xen_irq_disable_direct)
62 ret
63 ENDPROC(xen_irq_disable_direct)
64 RELOC(xen_irq_disable_direct, 0)
65 21
66/* 22/*
67 (xen_)save_fl is used to get the current interrupt enable status. 23 * Force an event check by making a hypercall, but preserve regs
68 Callers expect the status to be in X86_EFLAGS_IF, and other bits 24 * before making the call.
69 may be set in the return value. We take advantage of this by
70 making sure that X86_EFLAGS_IF has the right value (and other bits
71 in that byte are 0), but other bits in the return value are
72 undefined. We need to toggle the state of the bit, because
73 Xen and x86 use opposite senses (mask vs enable).
74 */ 25 */
75ENTRY(xen_save_fl_direct) 26check_events:
76 testb $0xff, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_mask 27 push %eax
77 setz %ah 28 push %ecx
78 addb %ah,%ah 29 push %edx
79ENDPATCH(xen_save_fl_direct) 30 call xen_force_evtchn_callback
80 ret 31 pop %edx
81 ENDPROC(xen_save_fl_direct) 32 pop %ecx
82 RELOC(xen_save_fl_direct, 0) 33 pop %eax
83
84
85/*
86 In principle the caller should be passing us a value return
87 from xen_save_fl_direct, but for robustness sake we test only
88 the X86_EFLAGS_IF flag rather than the whole byte. After
89 setting the interrupt mask state, it checks for unmasked
90 pending events and enters the hypervisor to get them delivered
91 if so.
92 */
93ENTRY(xen_restore_fl_direct)
94 testb $X86_EFLAGS_IF>>8, %ah
95 setz PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_mask
96 /* Preempt here doesn't matter because that will deal with
97 any pending interrupts. The pending check may end up being
98 run on the wrong CPU, but that doesn't hurt. */
99
100 /* check for unmasked and pending */
101 cmpw $0x0001, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_pending
102 jz 1f
1032: call check_events
1041:
105ENDPATCH(xen_restore_fl_direct)
106 ret 34 ret
107 ENDPROC(xen_restore_fl_direct)
108 RELOC(xen_restore_fl_direct, 2b+1)
109 35
110/* 36/*
111 We can't use sysexit directly, because we're not running in ring0. 37 * We can't use sysexit directly, because we're not running in ring0.
112 But we can easily fake it up using iret. Assuming xen_sysexit 38 * But we can easily fake it up using iret. Assuming xen_sysexit is
113 is jumped to with a standard stack frame, we can just strip it 39 * jumped to with a standard stack frame, we can just strip it back to
114 back to a standard iret frame and use iret. 40 * a standard iret frame and use iret.
115 */ 41 */
116ENTRY(xen_sysexit) 42ENTRY(xen_sysexit)
117 movl PT_EAX(%esp), %eax /* Shouldn't be necessary? */ 43 movl PT_EAX(%esp), %eax /* Shouldn't be necessary? */
@@ -122,33 +48,31 @@ ENTRY(xen_sysexit)
122ENDPROC(xen_sysexit) 48ENDPROC(xen_sysexit)
123 49
124/* 50/*
125 This is run where a normal iret would be run, with the same stack setup: 51 * This is run where a normal iret would be run, with the same stack setup:
126 8: eflags 52 * 8: eflags
127 4: cs 53 * 4: cs
128 esp-> 0: eip 54 * esp-> 0: eip
129 55 *
130 This attempts to make sure that any pending events are dealt 56 * This attempts to make sure that any pending events are dealt with
131 with on return to usermode, but there is a small window in 57 * on return to usermode, but there is a small window in which an
132 which an event can happen just before entering usermode. If 58 * event can happen just before entering usermode. If the nested
133 the nested interrupt ends up setting one of the TIF_WORK_MASK 59 * interrupt ends up setting one of the TIF_WORK_MASK pending work
134 pending work flags, they will not be tested again before 60 * flags, they will not be tested again before returning to
135 returning to usermode. This means that a process can end up 61 * usermode. This means that a process can end up with pending work,
136 with pending work, which will be unprocessed until the process 62 * which will be unprocessed until the process enters and leaves the
137 enters and leaves the kernel again, which could be an 63 * kernel again, which could be an unbounded amount of time. This
138 unbounded amount of time. This means that a pending signal or 64 * means that a pending signal or reschedule event could be
139 reschedule event could be indefinitely delayed. 65 * indefinitely delayed.
140 66 *
141 The fix is to notice a nested interrupt in the critical 67 * The fix is to notice a nested interrupt in the critical window, and
142 window, and if one occurs, then fold the nested interrupt into 68 * if one occurs, then fold the nested interrupt into the current
143 the current interrupt stack frame, and re-process it 69 * interrupt stack frame, and re-process it iteratively rather than
144 iteratively rather than recursively. This means that it will 70 * recursively. This means that it will exit via the normal path, and
145 exit via the normal path, and all pending work will be dealt 71 * all pending work will be dealt with appropriately.
146 with appropriately. 72 *
147 73 * Because the nested interrupt handler needs to deal with the current
148 Because the nested interrupt handler needs to deal with the 74 * stack state in whatever form its in, we keep things simple by only
149 current stack state in whatever form its in, we keep things 75 * using a single register which is pushed/popped on the stack.
150 simple by only using a single register which is pushed/popped
151 on the stack.
152 */ 76 */
153ENTRY(xen_iret) 77ENTRY(xen_iret)
154 /* test eflags for special cases */ 78 /* test eflags for special cases */
@@ -158,13 +82,15 @@ ENTRY(xen_iret)
158 push %eax 82 push %eax
159 ESP_OFFSET=4 # bytes pushed onto stack 83 ESP_OFFSET=4 # bytes pushed onto stack
160 84
161 /* Store vcpu_info pointer for easy access. Do it this 85 /*
162 way to avoid having to reload %fs */ 86 * Store vcpu_info pointer for easy access. Do it this way to
87 * avoid having to reload %fs
88 */
163#ifdef CONFIG_SMP 89#ifdef CONFIG_SMP
164 GET_THREAD_INFO(%eax) 90 GET_THREAD_INFO(%eax)
165 movl TI_cpu(%eax),%eax 91 movl TI_cpu(%eax), %eax
166 movl __per_cpu_offset(,%eax,4),%eax 92 movl __per_cpu_offset(,%eax,4), %eax
167 mov per_cpu__xen_vcpu(%eax),%eax 93 mov per_cpu__xen_vcpu(%eax), %eax
168#else 94#else
169 movl per_cpu__xen_vcpu, %eax 95 movl per_cpu__xen_vcpu, %eax
170#endif 96#endif
@@ -172,37 +98,46 @@ ENTRY(xen_iret)
172 /* check IF state we're restoring */ 98 /* check IF state we're restoring */
173 testb $X86_EFLAGS_IF>>8, 8+1+ESP_OFFSET(%esp) 99 testb $X86_EFLAGS_IF>>8, 8+1+ESP_OFFSET(%esp)
174 100
175 /* Maybe enable events. Once this happens we could get a 101 /*
176 recursive event, so the critical region starts immediately 102 * Maybe enable events. Once this happens we could get a
177 afterwards. However, if that happens we don't end up 103 * recursive event, so the critical region starts immediately
178 resuming the code, so we don't have to be worried about 104 * afterwards. However, if that happens we don't end up
179 being preempted to another CPU. */ 105 * resuming the code, so we don't have to be worried about
106 * being preempted to another CPU.
107 */
180 setz XEN_vcpu_info_mask(%eax) 108 setz XEN_vcpu_info_mask(%eax)
181xen_iret_start_crit: 109xen_iret_start_crit:
182 110
183 /* check for unmasked and pending */ 111 /* check for unmasked and pending */
184 cmpw $0x0001, XEN_vcpu_info_pending(%eax) 112 cmpw $0x0001, XEN_vcpu_info_pending(%eax)
185 113
186 /* If there's something pending, mask events again so we 114 /*
187 can jump back into xen_hypervisor_callback */ 115 * If there's something pending, mask events again so we can
116 * jump back into xen_hypervisor_callback
117 */
188 sete XEN_vcpu_info_mask(%eax) 118 sete XEN_vcpu_info_mask(%eax)
189 119
190 popl %eax 120 popl %eax
191 121
192 /* From this point on the registers are restored and the stack 122 /*
193 updated, so we don't need to worry about it if we're preempted */ 123 * From this point on the registers are restored and the stack
124 * updated, so we don't need to worry about it if we're
125 * preempted
126 */
194iret_restore_end: 127iret_restore_end:
195 128
196 /* Jump to hypervisor_callback after fixing up the stack. 129 /*
197 Events are masked, so jumping out of the critical 130 * Jump to hypervisor_callback after fixing up the stack.
198 region is OK. */ 131 * Events are masked, so jumping out of the critical region is
132 * OK.
133 */
199 je xen_hypervisor_callback 134 je xen_hypervisor_callback
200 135
2011: iret 1361: iret
202xen_iret_end_crit: 137xen_iret_end_crit:
203.section __ex_table,"a" 138.section __ex_table, "a"
204 .align 4 139 .align 4
205 .long 1b,iret_exc 140 .long 1b, iret_exc
206.previous 141.previous
207 142
208hyper_iret: 143hyper_iret:
@@ -212,55 +147,55 @@ hyper_iret:
212 .globl xen_iret_start_crit, xen_iret_end_crit 147 .globl xen_iret_start_crit, xen_iret_end_crit
213 148
214/* 149/*
215 This is called by xen_hypervisor_callback in entry.S when it sees 150 * This is called by xen_hypervisor_callback in entry.S when it sees
216 that the EIP at the time of interrupt was between xen_iret_start_crit 151 * that the EIP at the time of interrupt was between
217 and xen_iret_end_crit. We're passed the EIP in %eax so we can do 152 * xen_iret_start_crit and xen_iret_end_crit. We're passed the EIP in
218 a more refined determination of what to do. 153 * %eax so we can do a more refined determination of what to do.
219 154 *
220 The stack format at this point is: 155 * The stack format at this point is:
221 ---------------- 156 * ----------------
222 ss : (ss/esp may be present if we came from usermode) 157 * ss : (ss/esp may be present if we came from usermode)
223 esp : 158 * esp :
224 eflags } outer exception info 159 * eflags } outer exception info
225 cs } 160 * cs }
226 eip } 161 * eip }
227 ---------------- <- edi (copy dest) 162 * ---------------- <- edi (copy dest)
228 eax : outer eax if it hasn't been restored 163 * eax : outer eax if it hasn't been restored
229 ---------------- 164 * ----------------
230 eflags } nested exception info 165 * eflags } nested exception info
231 cs } (no ss/esp because we're nested 166 * cs } (no ss/esp because we're nested
232 eip } from the same ring) 167 * eip } from the same ring)
233 orig_eax }<- esi (copy src) 168 * orig_eax }<- esi (copy src)
234 - - - - - - - - 169 * - - - - - - - -
235 fs } 170 * fs }
236 es } 171 * es }
237 ds } SAVE_ALL state 172 * ds } SAVE_ALL state
238 eax } 173 * eax }
239 : : 174 * : :
240 ebx }<- esp 175 * ebx }<- esp
241 ---------------- 176 * ----------------
242 177 *
243 In order to deliver the nested exception properly, we need to shift 178 * In order to deliver the nested exception properly, we need to shift
244 everything from the return addr up to the error code so it 179 * everything from the return addr up to the error code so it sits
245 sits just under the outer exception info. This means that when we 180 * just under the outer exception info. This means that when we
246 handle the exception, we do it in the context of the outer exception 181 * handle the exception, we do it in the context of the outer
247 rather than starting a new one. 182 * exception rather than starting a new one.
248 183 *
249 The only caveat is that if the outer eax hasn't been 184 * The only caveat is that if the outer eax hasn't been restored yet
250 restored yet (ie, it's still on stack), we need to insert 185 * (ie, it's still on stack), we need to insert its value into the
251 its value into the SAVE_ALL state before going on, since 186 * SAVE_ALL state before going on, since it's usermode state which we
252 it's usermode state which we eventually need to restore. 187 * eventually need to restore.
253 */ 188 */
254ENTRY(xen_iret_crit_fixup) 189ENTRY(xen_iret_crit_fixup)
255 /* 190 /*
256 Paranoia: Make sure we're really coming from kernel space. 191 * Paranoia: Make sure we're really coming from kernel space.
257 One could imagine a case where userspace jumps into the 192 * One could imagine a case where userspace jumps into the
258 critical range address, but just before the CPU delivers a GP, 193 * critical range address, but just before the CPU delivers a
259 it decides to deliver an interrupt instead. Unlikely? 194 * GP, it decides to deliver an interrupt instead. Unlikely?
260 Definitely. Easy to avoid? Yes. The Intel documents 195 * Definitely. Easy to avoid? Yes. The Intel documents
261 explicitly say that the reported EIP for a bad jump is the 196 * explicitly say that the reported EIP for a bad jump is the
262 jump instruction itself, not the destination, but some virtual 197 * jump instruction itself, not the destination, but some
263 environments get this wrong. 198 * virtual environments get this wrong.
264 */ 199 */
265 movl PT_CS(%esp), %ecx 200 movl PT_CS(%esp), %ecx
266 andl $SEGMENT_RPL_MASK, %ecx 201 andl $SEGMENT_RPL_MASK, %ecx
@@ -270,15 +205,17 @@ ENTRY(xen_iret_crit_fixup)
270 lea PT_ORIG_EAX(%esp), %esi 205 lea PT_ORIG_EAX(%esp), %esi
271 lea PT_EFLAGS(%esp), %edi 206 lea PT_EFLAGS(%esp), %edi
272 207
273 /* If eip is before iret_restore_end then stack 208 /*
274 hasn't been restored yet. */ 209 * If eip is before iret_restore_end then stack
210 * hasn't been restored yet.
211 */
275 cmp $iret_restore_end, %eax 212 cmp $iret_restore_end, %eax
276 jae 1f 213 jae 1f
277 214
278 movl 0+4(%edi),%eax /* copy EAX (just above top of frame) */ 215 movl 0+4(%edi), %eax /* copy EAX (just above top of frame) */
279 movl %eax, PT_EAX(%esp) 216 movl %eax, PT_EAX(%esp)
280 217
281 lea ESP_OFFSET(%edi),%edi /* move dest up over saved regs */ 218 lea ESP_OFFSET(%edi), %edi /* move dest up over saved regs */
282 219
283 /* set up the copy */ 220 /* set up the copy */
2841: std 2211: std
@@ -286,20 +223,6 @@ ENTRY(xen_iret_crit_fixup)
286 rep movsl 223 rep movsl
287 cld 224 cld
288 225
289 lea 4(%edi),%esp /* point esp to new frame */ 226 lea 4(%edi), %esp /* point esp to new frame */
2902: jmp xen_do_upcall 2272: jmp xen_do_upcall
291 228
292
293/*
294 Force an event check by making a hypercall,
295 but preserve regs before making the call.
296 */
297check_events:
298 push %eax
299 push %ecx
300 push %edx
301 call xen_force_evtchn_callback
302 pop %edx
303 pop %ecx
304 pop %eax
305 ret
diff --git a/arch/x86/xen/xen-asm_64.S b/arch/x86/xen/xen-asm_64.S
index 05794c566e87..02f496a8dbaa 100644
--- a/arch/x86/xen/xen-asm_64.S
+++ b/arch/x86/xen/xen-asm_64.S
@@ -1,174 +1,45 @@
1/* 1/*
2 Asm versions of Xen pv-ops, suitable for either direct use or inlining. 2 * Asm versions of Xen pv-ops, suitable for either direct use or
3 The inline versions are the same as the direct-use versions, with the 3 * inlining. The inline versions are the same as the direct-use
4 pre- and post-amble chopped off. 4 * versions, with the pre- and post-amble chopped off.
5 5 *
6 This code is encoded for size rather than absolute efficiency, 6 * This code is encoded for size rather than absolute efficiency, with
7 with a view to being able to inline as much as possible. 7 * a view to being able to inline as much as possible.
8 8 *
9 We only bother with direct forms (ie, vcpu in pda) of the operations 9 * We only bother with direct forms (ie, vcpu in pda) of the
10 here; the indirect forms are better handled in C, since they're 10 * operations here; the indirect forms are better handled in C, since
11 generally too large to inline anyway. 11 * they're generally too large to inline anyway.
12 */ 12 */
13 13
14#include <linux/linkage.h>
15
16#include <asm/asm-offsets.h>
17#include <asm/processor-flags.h>
18#include <asm/errno.h> 14#include <asm/errno.h>
15#include <asm/percpu.h>
16#include <asm/processor-flags.h>
19#include <asm/segment.h> 17#include <asm/segment.h>
20 18
21#include <xen/interface/xen.h> 19#include <xen/interface/xen.h>
22 20
23#define RELOC(x, v) .globl x##_reloc; x##_reloc=v 21#include "xen-asm.h"
24#define ENDPATCH(x) .globl x##_end; x##_end=.
25
26/* Pseudo-flag used for virtual NMI, which we don't implement yet */
27#define XEN_EFLAGS_NMI 0x80000000
28
29#if 1
30/*
31 x86-64 does not yet support direct access to percpu variables
32 via a segment override, so we just need to make sure this code
33 never gets used
34 */
35#define BUG ud2a
36#define PER_CPU_VAR(var, off) 0xdeadbeef
37#endif
38
39/*
40 Enable events. This clears the event mask and tests the pending
41 event status with one and operation. If there are pending
42 events, then enter the hypervisor to get them handled.
43 */
44ENTRY(xen_irq_enable_direct)
45 BUG
46
47 /* Unmask events */
48 movb $0, PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_mask)
49
50 /* Preempt here doesn't matter because that will deal with
51 any pending interrupts. The pending check may end up being
52 run on the wrong CPU, but that doesn't hurt. */
53
54 /* Test for pending */
55 testb $0xff, PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_pending)
56 jz 1f
57
582: call check_events
591:
60ENDPATCH(xen_irq_enable_direct)
61 ret
62 ENDPROC(xen_irq_enable_direct)
63 RELOC(xen_irq_enable_direct, 2b+1)
64
65/*
66 Disabling events is simply a matter of making the event mask
67 non-zero.
68 */
69ENTRY(xen_irq_disable_direct)
70 BUG
71
72 movb $1, PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_mask)
73ENDPATCH(xen_irq_disable_direct)
74 ret
75 ENDPROC(xen_irq_disable_direct)
76 RELOC(xen_irq_disable_direct, 0)
77
78/*
79 (xen_)save_fl is used to get the current interrupt enable status.
80 Callers expect the status to be in X86_EFLAGS_IF, and other bits
81 may be set in the return value. We take advantage of this by
82 making sure that X86_EFLAGS_IF has the right value (and other bits
83 in that byte are 0), but other bits in the return value are
84 undefined. We need to toggle the state of the bit, because
85 Xen and x86 use opposite senses (mask vs enable).
86 */
87ENTRY(xen_save_fl_direct)
88 BUG
89
90 testb $0xff, PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_mask)
91 setz %ah
92 addb %ah,%ah
93ENDPATCH(xen_save_fl_direct)
94 ret
95 ENDPROC(xen_save_fl_direct)
96 RELOC(xen_save_fl_direct, 0)
97
98/*
99 In principle the caller should be passing us a value return
100 from xen_save_fl_direct, but for robustness sake we test only
101 the X86_EFLAGS_IF flag rather than the whole byte. After
102 setting the interrupt mask state, it checks for unmasked
103 pending events and enters the hypervisor to get them delivered
104 if so.
105 */
106ENTRY(xen_restore_fl_direct)
107 BUG
108
109 testb $X86_EFLAGS_IF>>8, %ah
110 setz PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_mask)
111 /* Preempt here doesn't matter because that will deal with
112 any pending interrupts. The pending check may end up being
113 run on the wrong CPU, but that doesn't hurt. */
114
115 /* check for unmasked and pending */
116 cmpw $0x0001, PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_pending)
117 jz 1f
1182: call check_events
1191:
120ENDPATCH(xen_restore_fl_direct)
121 ret
122 ENDPROC(xen_restore_fl_direct)
123 RELOC(xen_restore_fl_direct, 2b+1)
124
125
126/*
127 Force an event check by making a hypercall,
128 but preserve regs before making the call.
129 */
130check_events:
131 push %rax
132 push %rcx
133 push %rdx
134 push %rsi
135 push %rdi
136 push %r8
137 push %r9
138 push %r10
139 push %r11
140 call xen_force_evtchn_callback
141 pop %r11
142 pop %r10
143 pop %r9
144 pop %r8
145 pop %rdi
146 pop %rsi
147 pop %rdx
148 pop %rcx
149 pop %rax
150 ret
151 22
152ENTRY(xen_adjust_exception_frame) 23ENTRY(xen_adjust_exception_frame)
153 mov 8+0(%rsp),%rcx 24 mov 8+0(%rsp), %rcx
154 mov 8+8(%rsp),%r11 25 mov 8+8(%rsp), %r11
155 ret $16 26 ret $16
156 27
157hypercall_iret = hypercall_page + __HYPERVISOR_iret * 32 28hypercall_iret = hypercall_page + __HYPERVISOR_iret * 32
158/* 29/*
159 Xen64 iret frame: 30 * Xen64 iret frame:
160 31 *
161 ss 32 * ss
162 rsp 33 * rsp
163 rflags 34 * rflags
164 cs 35 * cs
165 rip <-- standard iret frame 36 * rip <-- standard iret frame
166 37 *
167 flags 38 * flags
168 39 *
169 rcx } 40 * rcx }
170 r11 }<-- pushed by hypercall page 41 * r11 }<-- pushed by hypercall page
171rsp -> rax } 42 * rsp->rax }
172 */ 43 */
173ENTRY(xen_iret) 44ENTRY(xen_iret)
174 pushq $0 45 pushq $0
@@ -177,8 +48,8 @@ ENDPATCH(xen_iret)
177RELOC(xen_iret, 1b+1) 48RELOC(xen_iret, 1b+1)
178 49
179/* 50/*
180 sysexit is not used for 64-bit processes, so it's 51 * sysexit is not used for 64-bit processes, so it's only ever used to
181 only ever used to return to 32-bit compat userspace. 52 * return to 32-bit compat userspace.
182 */ 53 */
183ENTRY(xen_sysexit) 54ENTRY(xen_sysexit)
184 pushq $__USER32_DS 55 pushq $__USER32_DS
@@ -193,13 +64,15 @@ ENDPATCH(xen_sysexit)
193RELOC(xen_sysexit, 1b+1) 64RELOC(xen_sysexit, 1b+1)
194 65
195ENTRY(xen_sysret64) 66ENTRY(xen_sysret64)
196 /* We're already on the usermode stack at this point, but still 67 /*
197 with the kernel gs, so we can easily switch back */ 68 * We're already on the usermode stack at this point, but
198 movq %rsp, %gs:pda_oldrsp 69 * still with the kernel gs, so we can easily switch back
199 movq %gs:pda_kernelstack,%rsp 70 */
71 movq %rsp, PER_CPU_VAR(old_rsp)
72 movq PER_CPU_VAR(kernel_stack), %rsp
200 73
201 pushq $__USER_DS 74 pushq $__USER_DS
202 pushq %gs:pda_oldrsp 75 pushq PER_CPU_VAR(old_rsp)
203 pushq %r11 76 pushq %r11
204 pushq $__USER_CS 77 pushq $__USER_CS
205 pushq %rcx 78 pushq %rcx
@@ -210,13 +83,15 @@ ENDPATCH(xen_sysret64)
210RELOC(xen_sysret64, 1b+1) 83RELOC(xen_sysret64, 1b+1)
211 84
212ENTRY(xen_sysret32) 85ENTRY(xen_sysret32)
213 /* We're already on the usermode stack at this point, but still 86 /*
214 with the kernel gs, so we can easily switch back */ 87 * We're already on the usermode stack at this point, but
215 movq %rsp, %gs:pda_oldrsp 88 * still with the kernel gs, so we can easily switch back
216 movq %gs:pda_kernelstack, %rsp 89 */
90 movq %rsp, PER_CPU_VAR(old_rsp)
91 movq PER_CPU_VAR(kernel_stack), %rsp
217 92
218 pushq $__USER32_DS 93 pushq $__USER32_DS
219 pushq %gs:pda_oldrsp 94 pushq PER_CPU_VAR(old_rsp)
220 pushq %r11 95 pushq %r11
221 pushq $__USER32_CS 96 pushq $__USER32_CS
222 pushq %rcx 97 pushq %rcx
@@ -227,28 +102,27 @@ ENDPATCH(xen_sysret32)
227RELOC(xen_sysret32, 1b+1) 102RELOC(xen_sysret32, 1b+1)
228 103
229/* 104/*
230 Xen handles syscall callbacks much like ordinary exceptions, 105 * Xen handles syscall callbacks much like ordinary exceptions, which
231 which means we have: 106 * means we have:
232 - kernel gs 107 * - kernel gs
233 - kernel rsp 108 * - kernel rsp
234 - an iret-like stack frame on the stack (including rcx and r11): 109 * - an iret-like stack frame on the stack (including rcx and r11):
235 ss 110 * ss
236 rsp 111 * rsp
237 rflags 112 * rflags
238 cs 113 * cs
239 rip 114 * rip
240 r11 115 * r11
241 rsp-> rcx 116 * rsp->rcx
242 117 *
243 In all the entrypoints, we undo all that to make it look 118 * In all the entrypoints, we undo all that to make it look like a
244 like a CPU-generated syscall/sysenter and jump to the normal 119 * CPU-generated syscall/sysenter and jump to the normal entrypoint.
245 entrypoint.
246 */ 120 */
247 121
248.macro undo_xen_syscall 122.macro undo_xen_syscall
249 mov 0*8(%rsp),%rcx 123 mov 0*8(%rsp), %rcx
250 mov 1*8(%rsp),%r11 124 mov 1*8(%rsp), %r11
251 mov 5*8(%rsp),%rsp 125 mov 5*8(%rsp), %rsp
252.endm 126.endm
253 127
254/* Normal 64-bit system call target */ 128/* Normal 64-bit system call target */
@@ -275,7 +149,7 @@ ENDPROC(xen_sysenter_target)
275 149
276ENTRY(xen_syscall32_target) 150ENTRY(xen_syscall32_target)
277ENTRY(xen_sysenter_target) 151ENTRY(xen_sysenter_target)
278 lea 16(%rsp), %rsp /* strip %rcx,%r11 */ 152 lea 16(%rsp), %rsp /* strip %rcx, %r11 */
279 mov $-ENOSYS, %rax 153 mov $-ENOSYS, %rax
280 pushq $VGCF_in_syscall 154 pushq $VGCF_in_syscall
281 jmp hypercall_iret 155 jmp hypercall_iret
diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
index 63d49a523ed3..1a5ff24e29c0 100644
--- a/arch/x86/xen/xen-head.S
+++ b/arch/x86/xen/xen-head.S
@@ -8,7 +8,7 @@
8 8
9#include <asm/boot.h> 9#include <asm/boot.h>
10#include <asm/asm.h> 10#include <asm/asm.h>
11#include <asm/page.h> 11#include <asm/page_types.h>
12 12
13#include <xen/interface/elfnote.h> 13#include <xen/interface/elfnote.h>
14#include <asm/xen/interface.h> 14#include <asm/xen/interface.h>
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index c1f8faf0a2c5..2f5ef2632ea2 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -10,9 +10,12 @@
10extern const char xen_hypervisor_callback[]; 10extern const char xen_hypervisor_callback[];
11extern const char xen_failsafe_callback[]; 11extern const char xen_failsafe_callback[];
12 12
13extern void *xen_initial_gdt;
14
13struct trap_info; 15struct trap_info;
14void xen_copy_trap_info(struct trap_info *traps); 16void xen_copy_trap_info(struct trap_info *traps);
15 17
18DECLARE_PER_CPU(struct vcpu_info, xen_vcpu_info);
16DECLARE_PER_CPU(unsigned long, xen_cr3); 19DECLARE_PER_CPU(unsigned long, xen_cr3);
17DECLARE_PER_CPU(unsigned long, xen_current_cr3); 20DECLARE_PER_CPU(unsigned long, xen_current_cr3);
18 21
@@ -22,6 +25,13 @@ extern struct shared_info *HYPERVISOR_shared_info;
22 25
23void xen_setup_mfn_list_list(void); 26void xen_setup_mfn_list_list(void);
24void xen_setup_shared_info(void); 27void xen_setup_shared_info(void);
28void xen_setup_machphys_mapping(void);
29pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn);
30void xen_ident_map_ISA(void);
31void xen_reserve_top(void);
32
33void xen_leave_lazy(void);
34void xen_post_allocator_init(void);
25 35
26char * __init xen_memory_setup(void); 36char * __init xen_memory_setup(void);
27void __init xen_arch_setup(void); 37void __init xen_arch_setup(void);
diff --git a/arch/xtensa/include/asm/Kbuild b/arch/xtensa/include/asm/Kbuild
index 58c02a454130..c68e1680da01 100644
--- a/arch/xtensa/include/asm/Kbuild
+++ b/arch/xtensa/include/asm/Kbuild
@@ -1,3 +1 @@
1include include/asm-generic/Kbuild.asm include include/asm-generic/Kbuild.asm
2
3unifdef-y += swab.h
diff --git a/arch/xtensa/include/asm/byteorder.h b/arch/xtensa/include/asm/byteorder.h
index 329b94591ca4..54eb6315349c 100644
--- a/arch/xtensa/include/asm/byteorder.h
+++ b/arch/xtensa/include/asm/byteorder.h
@@ -1,8 +1,6 @@
1#ifndef _XTENSA_BYTEORDER_H 1#ifndef _XTENSA_BYTEORDER_H
2#define _XTENSA_BYTEORDER_H 2#define _XTENSA_BYTEORDER_H
3 3
4#include <asm/swab.h>
5
6#ifdef __XTENSA_EL__ 4#ifdef __XTENSA_EL__
7#include <linux/byteorder/little_endian.h> 5#include <linux/byteorder/little_endian.h>
8#elif defined(__XTENSA_EB__) 6#elif defined(__XTENSA_EB__)
diff --git a/arch/xtensa/include/asm/swab.h b/arch/xtensa/include/asm/swab.h
index f50b697eb601..226a39162310 100644
--- a/arch/xtensa/include/asm/swab.h
+++ b/arch/xtensa/include/asm/swab.h
@@ -11,7 +11,7 @@
11#ifndef _XTENSA_SWAB_H 11#ifndef _XTENSA_SWAB_H
12#define _XTENSA_SWAB_H 12#define _XTENSA_SWAB_H
13 13
14#include <asm/types.h> 14#include <linux/types.h>
15#include <linux/compiler.h> 15#include <linux/compiler.h>
16 16
17#define __SWAB_64_THRU_32__ 17#define __SWAB_64_THRU_32__